Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Schnittstellen

Informationen zu Schnittstellen in RELion ONE

Dieser Abschnitt enthält Information zu den Schnittstellen in RELion ONE.

1 - Default API

Die RELion Default API ist eine Standard-API für die Kommunikation zwischen Systemen.

Was ist die RELion Default API?

Die RELion Default API ist eine vorgefertigte, standardisierte Programmierschnittstelle, die speziell für RELion ONE entwickelt wurde. Sie fungiert als Brücke zwischen RELion ONE und externen Systemen, Anwendungen oder Diensten und ermöglicht es, bestimmte Funktionen des Systems einfach zu nutzen. Die klar definierten Methoden, Datenformate und Kommunikationsprotokolle machen die Integration effizient und benutzerfreundlich, ohne dass tiefgehende Systemkenntnisse erforderlich sind.

Installation

Die RELion Default API ermöglicht den Entwicklern, bestimmte Funktionen eines Systems, einer Anwendung oder eines Dienstes auf eine vorher festgelegte und standardisierte Weise zu nutzen. Die Default API definiert Methoden, Datenformate und Kommunikationsprotokolle, die Entwickler verwenden können, um auf Funktionen zuzugreifen und mit ihnen zu interagieren, ohne tiefergehende Kenntnisse über die interne Funktionsweise des zugrunde liegenden Systems zu benötigen.

In den AppSource von Microsoft wird die RELion Default API bereitgestellt.

Wir unterstützen Sie gerne bei der Integration. Kontaktieren Sie dazu unseren Support.

GetFileContent – Dateien einfach und zentral abrufen

Mit der Funktion GetFileContent können Dateien direkt abgerufen werden. Die Dateien liegen entweder in RELion oder im Archivsystem Archiv kompakt. Der Zugriff erfolgt über eine einheitliche Schnittstelle (API).

Was bringt das für Anwender?

  • Dokumente sind leicht und schnell erreichbar.
  • Es ist kein Wechsel zwischen verschiedenen Systemen nötig.
  • Prozesse laufen einfacher und schneller, besonders bei Portalen oder automatischen Abläufen.

Vorteile im Überblick

Ein Zugriff für alle Dateien: Egal, ob die Datei in RELion oder im Archiv liegt. Weniger manueller Aufwand: Systeme rufen Dateien automatisch ab. Einfachere Nutzung für Drittsysteme: Externe Portale können Dokumente direkt anzeigen.

Wichtiger Hinweis bei Archiv kompakt

Wenn Dateien aus Archiv kompakt abgerufen werden, sind technische Vorbereitungen nötig:

  • Für den Drittanbieter muss ein technischer Benutzer in Archiv kompakt eingerichtet werden.
  • Dieser Benutzer
  • benötigt kein Passwort
  • hat Administratorrechte
  • darf auf alle Archive und Dokumente zugreifen

Außerdem muss der Drittanbieter die Berechtigung RelAAK Basic erhalten, wenn auch RELion‑Dokumente über die API abgerufen werden.

Technische Dokumentation für Requests

relApiTabApiAllocGroupParticip


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiAllocGroupParticip
Entity (Plural/Endpunkt) relApiTabApiAllocGroupParticip
Quell-Tabelle RelC Unit Allocation
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiAllocGroupParticip

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter-Kennung
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
allocationCode Code Allocation Code Umlageschlüssel-Code
startDate Date Start Date Gültig ab
endDate Date End Date Gültig bis
description Text Description Beschreibung
reasonChange Text Reason for Change Änderungsgrund
factor Decimal Factor Faktor
accounting Boolean Accounting Buchhaltungsrelevanz
entryGrossNet Enum Entry Gross Net Brutto/Netto-Buchung
entryFactor Decimal Entry Factor Buchungsfaktor
noObjectTotaling Boolean No object totaling Kein Objektsummenbildung
tradeUnitTax Boolean Trade unit tax Gewerbesteuer Einheit
vatRate Decimal VAT Rate MwSt.-Satz
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressource (SubPage)
Navigation Beschreibung
RelApiTabApiUnitAllocation Zugehörige Einheitenzuweisungen

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiBudgetDebitPos


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiBudgetDebitPos
Entity (Plural/Endpunkt) relApiTabApiBudgetDebitPos
Quell-Tabelle RelC Budget Debit Position
Schlüsselfeld SystemId (GUID)
Schreibschutz Ja — nur Lesezugriff (GET)

Basis-URL

GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiBudgetDebitPos

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von (Benutzer-GUID)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von (Benutzer-GUID)
ownerTenant Code Owner / Tenant Eigentümer/Mieter-Kennung
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
accountNo Code Account No. Kontonummer
startDate Date Start date Startdatum
contractNo Code Contract No. Vertragsnummer
contractCategory Code Contract Category Vertragskategorie
description Text Description Beschreibung
amount Decimal Amount Betrag

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiCompanyInformation


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiCompanyInformation
Entity (Plural/Endpunkt) relApiTabApiCompanyInformation
Quell-Tabelle Company Information (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiCompanyInformation

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key), nur lesbar
displayName Text Name Firmenname
addressLine1 Text Address Adresszeile 1
addressLine2 Text Address 2 Adresszeile 2
city Text City Stadt
state Text County Bundesland / Kanton
country Code Country/Region Code Ländercode
postalCode Code Post Code Postleitzahl
phoneNumber Text Phone No. Telefonnummer
faxNumber Text Fax No. Faxnummer
email Text E-Mail E-Mail-Adresse
website Text Home Page Webseite
taxRegistrationNumber Text VAT Registration No. Steuernummer / USt-IdNr. (berechnet)
currencyCode Code Berechnet Währungscode der Landeswährung (nur lesbar)
currentFiscalYearStartDate Date Berechnet Beginn des aktuellen Geschäftsjahres (nur lesbar)
industry Text Industrial Classification Branche
picture Blob Picture Firmenlogo (nur lesbar)
lastModifiedDateTime DateTime SystemModifiedAt Letztes Änderungsdatum

Hinweise für Entwickler

taxRegistrationNumber (berechnet)

Das Feld liefert je nach BC-Lokalisierung entweder die VAT Registration No. oder die belgische Enterprise No. (Feld 11310). Beim PATCH wird das Feld entsprechend zurückgeschrieben.

currencyCode und currentFiscalYearStartDate

Beide Felder sind schreibgeschützt und werden über OnAfterGetRecord befüllt.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiContact


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiContact
Entity (Plural/Endpunkt) relApiTabApiContact
Quell-Tabelle Contact (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiContact

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
contactNo Code No. Kontaktnummer
satuationCode Code Salutation Code Anredecode
jobTitle Text Job Title Berufsbezeichnung
firstName Text First Name Vorname
firstName2 Text Middle Name Zweiter Vorname
surName Text Surname Nachname
name Text Name Vollständiger Name
name2 Text Name 2 Namenszusatz
address Text Address Adresse
address2 Text Address 2 Adresszusatz
postCode Code Post Code Postleitzahl
city Text City Stadt
phoneNo Text Phone No. Telefonnummer
mobileNo Text Mobile Phone No. Mobilnummer
email Text E-Mail E-Mail-Adresse
partnerJobTitle Text RelC Partner Title Berufsbezeichnung Partner
partnerFirstName Text RelC Partner first name Vorname Partner
partnerFirstName2 Text RelC Partner first name 2 Zweiter Vorname Partner
partnerSurName Text RelC Partner last name Nachname Partner
dateOfBirth Date RelC Date of birth Geburtsdatum
nameAtBirth Text RelC Name at birth Geburtsname
partnerDateOfBirth Date RelC Partner Date of birth Geburtsdatum Partner
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiCustomer


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiCustomer
Entity (Plural/Endpunkt) relApiTabApiCustomer
Quell-Tabelle Customer (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiCustomer

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
customerNo Code No. Kundennummer
name Text Name Name
name2 Text Name 2 Namenszusatz
address Text Address Adresse
address2 Text Address 2 Adresszusatz
postCode Code Post Code Postleitzahl
city Text City Stadt
phoneNo Text Phone No. Telefonnummer
mobileNo Text Mobile Phone No. Mobilnummer
email Text E-Mail E-Mail-Adresse
vatBusPostingGroup Code VAT Bus. Posting Group MwSt.-Geschäftsbuchungsgruppe
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiDebitPosition


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiDebitPosition
Entity (Plural/Endpunkt) relApiTabApiDebitPosition
Quell-Tabelle RelC Debit Position
Schlüsselfeld SystemId (GUID)
Schreibschutz Ja — nur Lesezugriff (GET)

Basis-URL

GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiDebitPosition

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
ownerTenant Code Owner / Tenant Eigentümer/Mieter-Kennung
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
unitHistory Integer Unit history Einheitenhistorie
accountNo Code Account No. Kontonummer
startDate Date Start date Startdatum
contractCategory Code Contract Category Vertragskategorie
contractNo Code Contract No. Vertragsnummer
amount Decimal Amount Betrag
description Text Description Beschreibung

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiDocument


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiDocument
Entity (Plural/Endpunkt) relApiTabApiDocument
Quell-Tabelle RelC Document
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiDocument

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Auswahl der wichtigsten Felder

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
archiveFileName Text ArchiveFileName Dateiname im Archiv
archiveFileExtension Text ArchiveFileExtension Dateiendung
archiveFileSize Integer ArchiveFileSize Dateigröße
attachment Blob Attachment Anhang (Dateiinhalt)
archivID Code ArchivID Archiv-ID
archivename Text Archivename_ Archivname
archiveSystem Code Archive System Archivsystem
archivedAt DateTime Archived at Archivierungsdatum
archivedByUserID Code Archived by User ID Archiviert von
archivingProcess Code Archiving process Archivierungsprozess
contactNo Code Contact No. Kontaktnummer
contactName Text ContactName_ Kontaktname
customerNo Code Customer No. Kundennummer
customerName Text CustomerName_ Kundenname
createdAt DateTime Created at Erstellt am
createdByUserID Code Created by User ID Erstellt von
deleteAt DateTime Delete at Löschzeitpunkt
deletePlannedAt DateTime Delete planned at Geplanter Löschzeitpunkt
aakDocumentID Text AAK_DocumentID AAK-Dokument-ID
aakFileID Text AAK_FileID AAK-Datei-ID
aakFileVersion Text AAK_FileVersion AAK-Versionsnummer
aakFileVersionID Text AAK_FileVersionID AAK-Versions-ID
aakCatchword Text AAK_Catchword AAK-Stichwort
aakCreationDate Date AAK_CreationDate AAK-Erstellungsdatum
aakCreator Text AAK_Creator AAK-Ersteller
aakArcRetentionDate Date AAKArcRetentionDate AAK-Aufbewahrungsfrist
aakIndexValues Text AAKIndexValues_ AAK-Indexwerte
accountHolder Text Account holder Kontoinhaber
accountingCode Code Accounting code Buchhaltungscode
accountingNo Code Accounting No. Buchhaltungsnummer
accountingFrom Date Accounting from Abrechnungszeitraum von
accountingUntil Date Accounting until Abrechnungszeitraum bis
accountingYear Integer Accounting year Abrechnungsjahr
bankAccount Code Bank Account Bankkonto
bankname Text Bankname Bankname
barcodeID Text Barcode ID Barcode-ID
bic Text BIC BIC
cancellationNo Code Cancellation No. Stornierungsnummer

Hinweis Die Tabelle zeigt eine Auswahl. Das vollständige Feldset ist umfangreich – bitte $select für minimale Datenmengen nutzen.


Hinweise für Entwickler

attachment (Blob)

Enthält den binären Dateiinhalt. Wird nur bei expliziter Anforderung übertragen. $select verwenden, um unnötige Datenmengen zu vermeiden.

Change Tracking

ChangeTrackingAllowed = true — OData $deltatoken wird unterstützt für inkrementellen Datenabruf.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiDocumentArchiv


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiDocumentArchiv
Entity (Plural/Endpunkt) relApiTabApiDocumentArchiv
Quell-Tabelle RelC Document AAK-Archive
Schlüsselfeld SystemId (GUID)
Schreibschutz Ja — nur Lesezugriff (GET)
Change Tracking Aktiviert

Basis-URL

GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiDocumentArchiv

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
aakTBStructIndex Text AAK-TBStructIndex_ AAK-Strukturindex
archivID Code ArchivID Archiv-Code
archivname Text Archivname Archivname
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiDocumentIndexValue


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiDocumentIndexValue
Entity (Plural/Endpunkt) relApiTabApiDocumentIndexValue
Quell-Tabelle RelC AAK-IndexValues
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiDocumentIndexValue

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
entryNo Integer Entry No. Laufende Nummer
lineNo Integer Line No. Zeilennummer
fieldNo Integer FieldNo Feldnummer
indexValue Text IndexValue Indexwert
dataType Text DataType_ Datentyp
positionNo Integer Position No. Positionsnummer
multipleIndexNo Integer Multiple Index No. Mehrfachindex-Nr.
aakIndexExists Boolean AAK-IndexExists AAK-Index vorhanden
aakTBStructCatchwordListName Text AAK-TBStructCatchwordListName_ Name der Stichwortliste
aakTBStructCatchwords Text AAK-TBStructCatchwords_ Stichwörter
numArchivID Integer num_archivID Archiv-ID (numerisch)
numIndexID Integer num_indexID Index-ID
numListID Integer num_listID_ Listen-ID
strIndexName Text str_indexName Indexname
strDefault Text str_default_ Standardwert
boolMandatory Boolean bool_mandatory_ Pflichtfeld
boolHidden Boolean bool_hidden_ Ausgeblendet
boolAutoDate Boolean bool_autoDate_ Automatisches Datum
boolCatchWordsOnly Boolean bool_catchWordsOnly_ Nur Stichwörter
numDecimalPlaces Integer num_decimalPlaces_ Dezimalstellen
numMaxLength Integer num_maxLength_ Maximale Länge
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiEditor


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiEditor
Entity (Plural/Endpunkt) relApiTabApiEditor
Quell-Tabelle RelC Editor
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiEditor

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
ownerTenant Code Owner / Tenant Eigentümer/Mieter-Kennung
objectNo Code Object No. Objektnummer
partCode Code Part code Teilcode
name Text Name_ Name des Bearbeiters
description Text Description_ Beschreibung
competenceUnitCode Code Competence unit code Zuständigkeitseinheitscode
mainAgent Code Main agent Hauptverantwortlicher
personResponsible Code Person responsible Verantwortliche Person
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressourcen (SubPages)
Navigation Beschreibung
RelApiTabApiSalespersonPurch Verknüpfter Verkäufer/Einkäufer (via partCode)
RelApiTabApiEditorPart Editor-Teile (via partCode)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiEditorPart


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiEditorPart
Entity (Plural/Endpunkt) relApiTabApiEditorPart
Quell-Tabelle RelC Editor Part
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiEditorPart

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
partCode Code Part code Teilcode
description Text Description Beschreibung
recordId RecordId RecordId Datensatz-ID

Hinweise für Entwickler

Diese Ressource wird in der Regel als SubPage von relApiTabApiEditor konsumiert. Ein Direktabruf ist ebenfalls möglich.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiExploitationMethod


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiExploitationMethod
Entity (Plural/Endpunkt) relApiTabApiExploitationMethod
Quell-Tabelle RelC Exploitation Method
Schlüsselfeld SystemId (GUID)
Schreibzugriff Lesend (GET) — keine expliziten Schreibrechte gesetzt
Change Tracking Aktiviert

Basis-URL

GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiExploitationMethod

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
exploitationMethodCode Code Exploitation method code Nutzungsart-Code
exploitationMethodType Enum Exploitation method type Nutzungsart-Typ (z. B. Einheit, Objekt)
exploitationMethodClass Code Exploitation Method Class Nutzungsart-Kategorie
description Text Description Beschreibung
standardAllocationCodeFArea Code StandardAllocationCode f. area Standard-Umlageschlüssel für Fläche
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiRelCIFOContractLine


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiRelCIFOContractLine
Entity (Plural/Endpunkt) relApiTabApiRelCIFOContractLine
Quell-Tabelle RelC IFO Contract Line
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiRelCIFOContractLine

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
contractNo Code Contract No. Vertragsnummer
supplementNo Integer Supplement No. Nachtragnummer
startDate Date Start Date Startdatum
completionDate Date Completion date Abschlussdatum
ownersAssociationCompany Code Owners Association Company Gesellschaft WEG
ownersAssocOwnerTenant Code Owners Assoc. Owner/Tenant WEG Eigentümer/Mieter
ownersAssocObjectNo Code Owners Assoc. Object No. WEG Objektnummer
ownersAssocUnitNo Code Owners Assoc. Unit No. WEG Einheitennummer
iFOCompany Code IFO Company IFO-Gesellschaft
iFOOwnerTenant Code IFO Owner/Tenant IFO Eigentümer/Mieter
iFOObjectNo Code IFO Object No. IFO Objektnummer
iFOUnitNo Code IFO Unit No. IFO Einheitennummer
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressource (SubPage)
Navigation Beschreibung
RelApiTabApiReObject Verknüpftes Objekt (IFO Eigentümer/Mieter + Objektnr.)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiIssuedReminders


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiIssuedReminder
Entity (Plural/Endpunkt) relApiTabApiIssuedReminders
Quell-Tabelle Issued Reminder Header (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiIssuedReminders

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
no Code No. Mahnnummer
customerNo Code Customer No. Kundennummer
name Text Name Name
name2 Text Name 2 Namenszusatz
address Text Address Adresse
address2 Text Address 2 Adresszusatz
postCode Code Post Code Postleitzahl
city Text City Stadt
county Text County Bundesland
countryRegionCode Code Country/Region Code Ländercode
contact Text Contact Ansprechpartner
documentDate Date Document Date Belegdatum
dueDate Date Due Date Fälligkeitsdatum
reminderTermsCode Code Reminder Terms Code Mahnbedingungscode
reminderLevel Integer Reminder Level Mahnstufe
remainingAmount Decimal Remaining Amount Restbetrag
interestAmount Decimal Interest Amount Zinsbetrag
vatAmount Decimal VAT Amount MwSt.-Betrag
relCMemberNo Code RelC Member No. Mitgliedsnummer
relCGrouping Code RelC Grouping Gruppierung
relCObjectBankAccount Code RelC Object Bank Account Objekt-Bankkonto
relCReminderProcessNo Code RelC Reminder Process No. Mahnprozessnummer
relCContractNo Code RelC Contract No. Vertragsnummer
relCPersonResponsible Code RelC Person Responsible Verantwortliche Person
relCInstallmentPayer Code RelC Installment Payer Ratenzahler
relCCancellationReason Text RelC Cancellation Reason Stornierungsgrund
relCReminderDescription Text RelC Reminder Description Mahnbeschreibung
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressource (SubPage)
Navigation Beschreibung
RelApiTabApiReminderTerms Mahnbedingungen (via reminderTermsCode)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiLocationFloor


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiLocationFloor
Entity (Plural/Endpunkt) relApiTabApiLocationFloor
Quell-Tabelle RelC Location / Floor
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiLocationFloor

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
kind Enum Kind Art (Lage oder Etage)
code Code Code Code
description Text Description Beschreibung
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiMeterMasterData


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiMeterMasterData
Entity (Plural/Endpunkt) relApiTabApiMeterMasterData
Quell-Tabelle RelC Meter Master Data
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiMeterMasterData

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
meterNo Code Meter no. Zählernummer
meterSerialNo Code Master Data No. Seriennummer / Stammdatennummer
kindOfMeter Code Kind of Meter Zählerart
unitOfConsumption Code Unit of consumption Verbrauchseinheit
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
building Code Building Gebäude
house Code House Haus
unitNo Code Unit No. Einheitennummer
unitLocation Code Unit Location Einheitenlage
unitFloor Code Unit Floor Einheitenetage
meterLocation Text Meter Location Zählerstandort
installationDate Date Date of installation Installationsdatum
calibrationDate Date Year of calibration Eichjahr
initialReading Decimal Opening Score Anfangsstand
manufacturer Text Manufacturer Hersteller
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiMeterReading


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiMeterReading
Entity (Plural/Endpunkt) relApiTabApiMeterReading
Quell-Tabelle RelC Meter Reading
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiMeterReading

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
meterSerialNo Code Master Data No. Seriennummer / Stammdatennummer
lineNo Integer Line No. Zeilennummer
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
unitHistory Integer Unit history Einheitenhistorie
readingDate Date Reading date Ablesedatum
openingReading Decimal Opening Score Anfangsstand
finalReading Decimal Final Score Endstand
recordId RecordId RecordId Datensatz-ID

Typischer Anwendungsfall

// Alle Ablesungen für einen bestimmten Zähler
GET .../relApiTabApiMeterReading?$filter=meterSerialNo eq 'Z-0001'&$orderby=readingDate desc

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiObjectBuilding


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiObjectBuilding
Entity (Plural/Endpunkt) relApiTabApiObjectBuilding
Quell-Tabelle RelC Object Building
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiObjectBuilding

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
code Code Code Gebäudecode
description Text Description Beschreibung
type Enum Type Gebäudetyp
buildingCode Code Building Code Gebäudeclassifizierungscode
address Text Address Straße
houseEntranceText Text Address Number Hausnummer (Text)
houseNumberInt Integer House number Hausnummer (Zahl)
houseNumberText Text House number letter Hausnummernzusatz
postCode Code Post Code Postleitzahl
city Text City Stadt
districtCode Code District departmentcode Bezirkscode
geoCode Text Geo Code Geokoordinate
exploitationMethodCode Code Exploitation Method Code Nutzungsart-Code
numberOfFloors Integer Number of floors Anzahl Stockwerke
startOfUsage Date Start Of Usage Nutzungsbeginn
endOfUsage Date End Of Usage Nutzungsende
completionDate Date Finish Date Fertigstellungsdatum
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiObjectTax


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiObjectTax
Entity (Plural/Endpunkt) relApiTabApiObjectTax
Quell-Tabelle RelC Object tax
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiObjectTax

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
asOfDate Date As of date Gültig ab
accountingGroup Code Accounting Group Buchhaltungsgruppe
inputTaxShare Decimal Input Tax Share Vorsteueranteil %
calculatedInputTaxShare Decimal Calculated Input Tax Share Berechneter Vorsteueranteil %
description Text Description Beschreibung
vatBusPostingGroupTax Code VAT Bus. Posting Group Tax MwSt.-Geschäftsbuchungsgruppe (Steuer)
vatBusPostingGroupUnreal Code VAT Bus. Posting Group Unreal MwSt.-Buchungsgruppe (unecht steuerfrei)
modifiedCreatedOn DateTime Modified/created on Erstellt/Geändert am
modifiedCreatedByUserID Code Modified/created by User ID Erstellt/Geändert von
apartmentShare Decimal Apartment share % Wohnungsanteil %
tradeQuota Decimal Trade quota % Gewerbeanteil %
parkingShare Decimal Parking share % Stellplatzanteil %
quotaUnrealTaxExempt Decimal Quota unreal tax-exempt % Anteil unecht steuerfrei %
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseCreditMemos


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseCreditMemo
Entity (Plural/Endpunkt) relApiTabApiPurchaseCreditMemos
Quell-Tabelle Purch. Cr. Memo Entity Buffer (Business Central Standard)
Schlüsselfeld Id (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseCreditMemos

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Wichtigste Felder

Feldname Typ Quelle Beschreibung
id GUID Id Eindeutiger Schlüssel (OData-Key)
number Code No. Belegnummer (nur lesbar)
creditMemoDate Date Document Date Gutschriftsdatum
postingDate Date Posting Date Buchungsdatum
dueDate Date Due Date Fälligkeitsdatum
vendorId GUID Vendor Id Lieferanten-ID
vendorNumber Code Buy-from Vendor No. Lieferantennummer
vendorName Text Buy-from Vendor Name Lieferantenname (nur lesbar)
vendorCreditMemoNumber Text Vendor Cr. Memo No. Lieferanten-Gutschriftsnummer
payToVendorId GUID Pay-to Vendor Id Zahlung-an-Lieferanten-ID
payToVendorNumber Code Pay-to Vendor No. Zahlung-an-Lieferantennummer
payToName Text Pay-to Name Zahlung-an-Name (nur lesbar)
buyFromAddressLine1 Text Buy-from Address Lieferantenadresse Zeile 1
buyFromAddressLine2 Text Buy-from Address 2 Lieferantenadresse Zeile 2
buyFromCity Text Buy-from City Stadt (Lieferant)
buyFromCountry Code Buy-from Country/Region Code Land (Lieferant)

Das vollständige Feldset ist umfangreich (BC Standard-API). Bitte $select für optimierte Abfragen verwenden.


Hinweise für Entwickler

Vendor-Verlinkung

Beim Anlegen per POST kann entweder vendorId (GUID) oder vendorNumber (Code) angegeben werden. Beide Felder werden automatisch synchronisiert.

Verknüpfte Positionen

Zeilenpositionen werden über die API relApiTabApiPurchaseCreditMemoLines abgerufen (separate Ressource).


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseInvoices


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseInvoice
Entity (Plural/Endpunkt) relApiTabApiPurchaseInvoices
Quell-Tabelle Purch. Inv. Entity Aggregate (Business Central Standard)
Schlüsselfeld Id (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseInvoices

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Wichtigste Felder

Feldname Typ Quelle Beschreibung
id GUID Id Eindeutiger Schlüssel (OData-Key)
number Code No. Rechnungsnummer (nur lesbar)
postingDate Date Posting Date Buchungsdatum
invoiceDate Date Document Date Rechnungsdatum
dueDate Date Due Date Fälligkeitsdatum
vendorInvoiceNumber Text Vendor Invoice No. Lieferantenrechnungsnummer
vendorId GUID Vendor Id Lieferanten-ID
vendorNumber Code Buy-from Vendor No. Lieferantennummer
vendorName Text Buy-from Vendor Name Lieferantenname (nur lesbar)
payToName Text Pay-to Name Zahlung-an-Name (nur lesbar)
payToContact Text Pay-to Contact Zahlung-an-Ansprechpartner
payToVendorId GUID Pay-to Vendor Id Zahlung-an-Lieferanten-ID
payToVendorNumber Code Pay-to Vendor No. Zahlung-an-Lieferantennummer
shipToName Text Ship-to Name Lieferadresse Name
buyFromAddressLine1 Text Buy-from Address Lieferantenadresse Zeile 1
buyFromAddressLine2 Text Buy-from Address 2 Lieferantenadresse Zeile 2
buyFromCity Text Buy-from City Stadt (Lieferant)
buyFromCountry Code Buy-from Country/Region Code Land (Lieferant)
buyFromPostCode Code Buy-from Post Code PLZ (Lieferant)

Das vollständige Feldset entspricht dem BC-Standard-API. Bitte $select für optimierte Abfragen verwenden.


Verknüpfte Ressource

Rechnungszeilen werden über relApiTabApiPurchaseInvoiceLines abgerufen (separate Ressource, verknüpft via documentId).


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseOrder


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseOrder
Entity (Plural/Endpunkt) relApiTabApiPurchaseOrder
Quell-Tabelle Purchase Order Entity Buffer (Business Central Standard)
Schlüsselfeld Id (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseOrder

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Wichtigste Felder

Feldname Typ Quelle Beschreibung
id GUID Id Eindeutiger Schlüssel (OData-Key)
number Code No. Bestellnummer (nur lesbar)
orderDate Date Document Date Bestelldatum
postingDate Date Posting Date Buchungsdatum
vendorId GUID Vendor Id Lieferanten-ID
vendorNumber Code Buy-from Vendor No. Lieferantennummer
vendorName Text Buy-from Vendor Name Lieferantenname (nur lesbar)
payToName Text Pay-to Name Zahlung-an-Name (nur lesbar)
payToVendorId GUID Pay-to Vendor Id Zahlung-an-Lieferanten-ID
payToVendorNumber Code Pay-to Vendor No. Zahlung-an-Lieferantennummer
shipToName Text Ship-to Name Lieferadresse Name
shipToContact Text Ship-to Contact Lieferadresse Ansprechpartner
buyFromAddressLine1 Text Buy-from Address Lieferantenadresse Zeile 1
buyFromAddressLine2 Text Buy-from Address 2 Lieferantenadresse Zeile 2
buyFromCity Text Buy-from City Stadt (Lieferant)

Das vollständige Feldset entspricht dem BC-Standard-API. Bitte $select für optimierte Abfragen verwenden.


Verknüpfte Ressource

Bestellpositionen werden über relApiTabApiPurchaseOrderLine abgerufen (separate Ressource, verknüpft via documentId).


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseOrderLine


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseOrderLine
Entity (Plural/Endpunkt) relApiTabApiPurchaseOrderLine
Quell-Tabelle Purch. Inv. Line Aggregate (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseOrderLine

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Schlüssel (OData-Key)
documentId GUID Document Id Verknüpfung zum Bestellkopf
sequence Integer Line No. Positionsnummer
itemId GUID Item Id Artikel-ID
accountId GUID Account Id Sachkonto-ID
lineType Enum API Type Positionstyp (Item / Account)
lineObjectNumber Code No. Artikel- oder Kontonummer
description Text Description Beschreibung
description2 Text Description 2 Beschreibung 2
unitOfMeasureId GUID Unit of Measure Id Maßeinheit-ID
unitOfMeasureCode Code Unit of Measure Code Maßeinheitscode
quantity Decimal Quantity Menge
directUnitCost Decimal Direct Unit Cost Einstandspreis
discountAmount Decimal Line Discount Amount Rabattbetrag
discountPercent Decimal Line Discount % Rabattprozent

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseCreditMemoLines


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseCreditMemoLine
Entity (Plural/Endpunkt) relApiTabApiPurchaseCreditMemoLines
Quell-Tabelle Purch. Inv. Line Aggregate (temporär, Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert
Erlaubte

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseCreditMemoLines

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Schlüssel (OData-Key)
documentId GUID Document Id Verknüpfung zum Gutschriftskopf
sequence Integer Line No. Positionsnummer
itemId GUID Item Id Artikel-ID
accountId GUID Account Id Sachkonto-ID
lineType Enum API Type Positionstyp (Item / Account)
lineObjectNumber Code No. Artikel- oder Kontonummer
description Text Description Beschreibung
unitOfMeasureId GUID Unit of Measure Id Maßeinheit-ID
unitOfMeasureCode Code Unit of Measure Code Maßeinheitscode
unitCost Decimal Direct Unit Cost Stückkosten
quantity Decimal Quantity Menge
discountAmount Decimal Line Discount Amount Rabattbetrag
discountPercent Decimal Line Discount % Rabattprozent
discountAppliedBeforeTax Boolean Discount Applied Before Tax Rabatt vor Steuer (nur lesbar)
amountExcludingTax Decimal Line Amount Excluding Tax Betrag ohne Steuer (nur lesbar)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiPurchaseInvoiceLines


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiPurchaseInvoiceLine
Entity (Plural/Endpunkt) relApiTabApiPurchaseInvoiceLines
Quell-Tabelle Purch. Inv. Line Aggregate (temporär, Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiPurchaseInvoiceLines

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Schlüssel (OData-Key)
documentId GUID Document Id Verknüpfung zum Rechnungskopf
sequence Integer Line No. Positionsnummer
itemId GUID Item Id Artikel-ID
accountId GUID Account Id Sachkonto-ID
lineType Enum API Type Positionstyp (Item / Account)
lineObjectNumber Code No. Artikel- oder Kontonummer
description Text Description Beschreibung
description2 Text Description 2 Beschreibung 2
unitOfMeasureId GUID Unit of Measure Id Maßeinheit-ID
unitOfMeasureCode Code Unit of Measure Code Maßeinheitscode
unitCost Decimal Direct Unit Cost Stückkosten
quantity Decimal Quantity Menge
discountAmount Decimal Line Discount Amount Rabattbetrag
discountPercent Decimal Line Discount % Rabattprozent

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReContactBusinessRelation


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReContactBusinessRelation
Entity (Plural/Endpunkt) relApiTabApiReContactBusinessRelation
Quell-Tabelle RelC Contact Business Relation
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReContactBusinessRelation

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
unitHistory Integer Unit history Einheitenhistorie
businessRelation Code Business Relation Geschäftsbeziehungsart
contactNo Code Contact No. Kontaktnummer
contractNo Code Contract No. Vertragsnummer
sectorMember Code Sector/Member Sektor/Mitglied
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReContract


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReContract
Entity (Plural/Endpunkt) relApiTabApiReContract
Quell-Tabelle RelC Contract
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReContract

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
no Code No. Vertragsnummer
supplementNo Integer Supplement No. Nachtragnummer
supplementDate Date Supplement Date Nachtragsdatum
contractCategory Code Contract Category Vertragskategorie
tenancyAgreementType Enum Tenancy agreement type Mietvertragsart
customerVendorNo Code Customer/Vendor No. Kunden-/Lieferantennummer
contactType Enum Contact Type Kontaktart
contactNo Code Contact No. Kontaktnummer
contractStart Date Beginning of contract Vertragsbeginn
contractEnd Date Expiration date of contract Vertragsablauf
terminatedOn Date Terminated on Gekündigt am
terminatedAsOf Date Terminated as of Kündigung zum
terminationReceiptDate Date Date receipt of termination Eingang Kündigung
terminationConfirmDate Date Date termination confirmation Kündigungsbestätigung
signatureTenant Date Signature tenant Unterschrift Mieter
signatureLandlord Date Signature landlord Unterschrift Vermieter
moveInDate Date Delivery date Einzugsdatum
moveOutDate Date Taking back date Auszugsdatum
externalContractNo Code External contract no. Externe Vertragsnummer
preferredMoveOutDate Date Desired return date Gewünschter Auszugstermin
preferredInspectionDate Date Desired date of acceptance Gewünschter Abnahmedatum
acceptedBy Code Accepted by Abgenommen von
actualInspectionDate Date Date of acceptance Tatsächliches Abnahmedatum
plannedInspectionDate Date Acceptance deadline Geplantes Abnahmedatum
plannedInspectionTime Time Time of acceptance Abnahmezeit
recordId RecordId RecordId Datensatz-ID

Typische Anwendungsfälle

// Aktive Verträge
GET .../relApiTabApiReContract?$filter=contractEnd eq null or contractEnd gt 2026-01-01

// Verträge eines bestimmten Kontakts
GET .../relApiTabApiReContract?$filter=contactNo eq 'K-0001'

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiRelCMEXARecord


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiRelCMEXARecord
Entity (Plural/Endpunkt) relApiTabApiRelCMEXARecord
Quell-Tabelle RelC MEX A-Record
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiRelCMEXARecord

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
mexAKeyBillingCompany Code MexAKey Billing Company MEX-Schlüssel Abrechnungsgesellschaft
serviceCompName Text Service Comp. Name$ Name der Servicegesellschaft
mexAOurAccountNo Code MexAOur Account No. Unser MEX-Kontonummer
externalID Text External ID Externe ID (Auftragsterm Abrechnungsgesellschaft)
version Text Version$ Version
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReminderLevels


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReminderLevel
Entity (Plural/Endpunkt) relApiTabApiReminderLevels
Quell-Tabelle Reminder Level (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReminderLevels

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
reminderTermsCode Code Reminder Terms Code Mahnbedingungscode (Verknüpfung zu relApiTabApiReminderTerms)
no Integer No. Mahnstufe (1, 2, 3, …)
gracePeriod DateFormula Grace Period Karenzzeit
dueDateCalculation DateFormula Due Date Calculation Fälligkeitsberechnung
relCReminderTitle1 Text RelC Reminder Title 1 Mahntitel 1
relCReminderTitle2 Text RelC Reminder Title 2 Mahntitel 2
relCAddFeeDescription Text RelC Add. Fee Description Beschreibung Zusatzgebühr

Hinweise für Entwickler

Diese Ressource wird in der Regel als SubPage von relApiTabApiReminderTerms konsumiert. Ein Direktabruf ist ebenfalls möglich.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReminderTerms


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReminderTerms
Entity (Plural/Endpunkt) relApiTabApiReminderTerms
Quell-Tabelle Reminder Terms (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReminderTerms

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
code Code Code Mahnbedingungscode
description Text Description Beschreibung
maxNoOfReminders Integer Max. No. of Reminders Maximale Anzahl Mahnungen
postAdditionalFee Boolean Post Additional Fee Zusatzgebühr buchen
Verknüpfte Ressource (SubPage)
Navigation Beschreibung
RelApiTabApiReminderLevel (EntitySet: relApiTabApiReminderLevels) Zugehörige Mahnstufen (via code)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReObject


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReObject
Entity (Plural/Endpunkt) relApiTabApiReObject
Quell-Tabelle RelC Object
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReObject

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code No. Objektnummer
description Text Description Objektbeschreibung
address Text Address Adresse
postCode Code Post Code Postleitzahl
city Text City Stadt
countryRegion Code Country/Region Code Ländercode
countyCode Code County Code Kreis-/Bezirkscode
yearOfConstruction Integer Year Of Construction Baujahr
completionDate Date Finish Date Fertigstellungsdatum
responsibilityCenterOwnerNo Code Responsibility Center Owner Zuständigkeitscenter Eigentümer (Code)
responsibilityCenterOwnerId GUID OwnerRespID Zuständigkeitscenter Eigentümer (GUID)
responsibilityCenterManagerNo Code Responsibility Center Manager Zuständigkeitscenter Verwalter (Code)
responsibilityCenterManagerId GUID ManagerRespID Zuständigkeitscenter Verwalter (GUID)
managementStartDate Date Management Start Date Verwaltungsbeginn
managementEndDate Date Management End Date Verwaltungsende
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressourcen (SubPages)
Navigation Beschreibung
RelApiTabApiUnitMasterData Einheitenstammdaten des Objekts
RelApiTabApiEditor Bearbeiter/Verwalter des Objekts

Typische Anwendungsfälle

// Alle Objekte eines Eigentümers
GET .../relApiTabApiReObject?$filter=ownerTenant eq 'OT-001'

// Einzelnes Objekt per ID
GET .../relApiTabApiReObject({id})

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiReportInboxes


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiReportInbox
Entity (Plural/Endpunkt) relApiTabApiReportInboxes
Quell-Tabelle Report Inbox (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibschutz Ja — nur Lesezugriff (GET)

Basis-URL

GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReportInboxes

Erlaubte HTTP-Methoden

Methode Erlaubt Beschreibung
GET Einträge abrufen (Liste oder einzeln)
POST Nicht erlaubt
PATCH Nicht erlaubt
DELETE Nicht erlaubt

Endpunkte

Alle Einträge abrufen
GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReportInboxes
Einzelnen Eintrag abrufen (via SystemId)
GET /api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiReportInboxes({id})

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel des Datensatzes (OData-Key)
reportId Integer Report ID ID des Reports in Business Central
reportName Text Report Name Name des Reports
description Text Description Beschreibung des Berichtseintrags
createdDateTime DateTime Created Date-Time Zeitstempel der Erstellung des Eintrags
entryNo Integer Entry No. Fortlaufende Eintragsnummer
jobQueueLogEntryID GUID Job Queue Log Entry ID Verknüpfung zum Job-Queue-Logeintrag
outputType Enum Output Type Ausgabeformat (z. B. PDF, Word, Excel)
read Boolean Read Gibt an, ob der Eintrag bereits gelesen wurde
reportOutput Blob Report Output Binärer Inhalt des generierten Reports
fileName Text Berechnet Dateiname: reportName + . + outputType (Kleinbuchstaben), z. B. Rechnung.pdf
userID Text User ID BC-Benutzer, dem der Bericht zugeordnet ist
systemCreatedAt DateTime Systemfeld Zeitstempel der Datensatzerstellung (BC intern)
systemCreatedBy GUID Systemfeld Benutzer-GUID, der den Datensatz erstellt hat
systemModifiedAt DateTime Systemfeld Zeitstempel der letzten Änderung
systemModifiedBy GUID Systemfeld Benutzer-GUID, der zuletzt geändert hat

Hinweise für Entwickler

reportOutput (Blob)

Das Feld enthält die binären Rohdaten des Reports. Es wird per CalcFields auf Anfrage befüllt (OnAfterGetRecord-Trigger). Beim Abrufen über OData wird dieses Feld standardmäßig nicht mitgeliefert — es muss explizit per $expand oder direktem Abruf angefordert werden, sofern die BC-Version dies unterstützt. Alternativ kann der Blob-Inhalt über einen separaten Stream-Endpunkt abgerufen werden.

fileName (berechnet)

Dieses Feld ist nicht in der Datenbank gespeichert. Es wird zur Laufzeit zusammengesetzt:

FileNameTxt := Rec."Report Name" + '.' + LowerCase(Format(Rec."Output Type"));

Beispiel: Report Name = "Jahresabrechnung", Output Type = PDFfileName = "Jahresabrechnung.pdf"


OData-Filterung

Typische Filter-Beispiele:

// Nur ungelesene Einträge
GET .../relApiTabApiReportInboxes?$filter=read eq false

// Berichte eines bestimmten Benutzers
GET .../relApiTabApiReportInboxes?$filter=userID eq 'MUSTER'

// PDF-Berichte nach Erstellungsdatum sortiert
GET .../relApiTabApiReportInboxes?$filter=outputType eq 'PDF'&$orderby=createdDateTime desc

// Felder einschränken
GET .../relApiTabApiReportInboxes?$select=id,fileName,createdDateTime,read

Beispiel-Response (JSON)

{
  "@odata.context": "...",
  "value": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "reportId": 1306,
      "reportName": "Jahresabrechnung",
      "description": "Jahresabrechnung 2025 - Objekt 0815",
      "createdDateTime": "2026-01-15T08:30:00Z",
      "entryNo": 42,
      "jobQueueLogEntryID": "8e3f1a2b-0000-0000-0000-000000000000",
      "outputType": "PDF",
      "read": false,
      "fileName": "Jahresabrechnung.pdf",
      "userID": "MUSTER",
      "reportOutput": "<base64-encoded-blob>",
      "systemCreatedAt": "2026-01-15T08:30:00Z",
      "systemCreatedBy": "00000000-0000-0000-0000-000000000001",
      "systemModifiedAt": "2026-01-15T08:30:00Z",
      "systemModifiedBy": "00000000-0000-0000-0000-000000000001"
    }
  ]
}

Für Frontend-Entwickler: Typische Anwendungsfälle

Szenario Empfehlung
Posteingang anzeigen $filter=read eq false, $orderby=createdDateTime desc
Report herunterladen reportOutput (Blob) dekodieren, fileName als Dateinamen verwenden
Benutzer-spezifische Berichte $filter=userID eq '{BC-Username}'
Paginierung $top und $skip verwenden
Minimale Datenmenge laden $select verwenden, reportOutput nur bei Bedarf laden

Authentifizierung

Die API folgt dem Standard-Authentifizierungsverfahren von Business Central:

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud-Umgebungen
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiResponsabilityCenter


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiResponsabilityCenter
Entity (Plural/Endpunkt) relApiTabApiResponsabilityCenter
Quell-Tabelle Responsibility Center (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiResponsabilityCenter

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
code Code Code Zuständigkeitscenter-Code
name Text Name Name
address Text Address Adresse
postCode Code Post Code Postleitzahl
city Text City Stadt
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSalesCreditMemos


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSalesCreditMemo
Entity (Plural/Endpunkt) relApiTabApiSalesCreditMemos
Quell-Tabelle Sales Cr. Memo Entity Buffer (Business Central Standard)
Schlüsselfeld Id (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSalesCreditMemos

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Wichtigste Felder

Feldname Typ Quelle Beschreibung
id GUID Id Eindeutiger Schlüssel (OData-Key)
number Code No. Belegnummer (nur lesbar)
externalDocumentNumber Text External Document No. Externe Belegnummer
creditMemoDate Date Document Date Gutschriftsdatum
postingDate Date Posting Date Buchungsdatum
dueDate Date Due Date Fälligkeitsdatum
customerId GUID Customer Id Kunden-ID
customerNumber Code Sell-to Customer No. Kundennummer
customerName Text Sell-to Customer Name Kundenname (nur lesbar)
billToName Text Bill-to Name Rechnungsempfänger Name (nur lesbar)
billToCustomerId GUID Bill-to Customer Id Rechnungsempfänger-ID
billToCustomerNumber Code Bill-to Customer No. Rechnungsempfängernummer
sellToAddressLine1 Text Sell-to Address Lieferadresse Zeile 1
sellToAddressLine2 Text Sell-to Address 2 Lieferadresse Zeile 2
sellToCity Text Sell-to City Stadt (Lieferadresse)
sellToCountry Code Sell-to Country/Region Code Land (Lieferadresse)

Zeilenpositionen werden über relApiTabApiSalesCreditMemoLines abgerufen.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSalesCreditMemoLines


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSalesCreditMemoLine
Entity (Plural/Endpunkt) relApiTabApiSalesCreditMemoLines
Quell-Tabelle Sales Invoice Line Aggregate (temporär, Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSalesCreditMemoLines

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Schlüssel (OData-Key)
documentId GUID Document Id Verknüpfung zum Gutschriftskopf
sequence Integer Line No. Positionsnummer
itemId GUID Item Id Artikel-ID
accountId GUID Account Id Sachkonto-ID
lineType Enum API Type Positionstyp (Item / Account)
lineObjectNumber Code No. Artikel- oder Kontonummer
description Text Description Beschreibung
description2 Text Description 2 Beschreibung 2
unitOfMeasureId GUID Unit of Measure Id Maßeinheit-ID
unitOfMeasureCode Code Unit of Measure Code Maßeinheitscode
unitPrice Decimal Unit Price Einzelpreis
quantity Decimal Quantity Menge
discountAmount Decimal Line Discount Amount Rabattbetrag
discountPercent Decimal Line Discount % Rabattprozent
discountAppliedBeforeTax Boolean Discount Applied Before Tax Rabatt vor Steuer (nur lesbar)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSalesInvoice


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSalesInvoice
Entity (Plural/Endpunkt) relApiTabApiSalesInvoice
Quell-Tabelle Sales Invoice Entity Aggregate (Business Central Standard)
Schlüsselfeld Id (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSalesInvoice

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema) — Wichtigste Felder

Feldname Typ Quelle Beschreibung
id GUID Id Eindeutiger Schlüssel (OData-Key)
number Code No. Rechnungsnummer (nur lesbar)
externalDocumentNumber Text External Document No. Externe Belegnummer
invoiceDate Date Document Date Rechnungsdatum
postingDate Date Posting Date Buchungsdatum
dueDate Date Due Date Fälligkeitsdatum
customerPurchaseOrderReference Text Your Reference Bestellreferenz des Kunden
customerId GUID Customer Id Kunden-ID
customerNumber Code Sell-to Customer No. Kundennummer
customerName Text Sell-to Customer Name Kundenname (nur lesbar)
billToName Text Bill-to Name Rechnungsempfänger Name (nur lesbar)
billToCustomerId GUID Bill-to Customer Id Rechnungsempfänger-ID
billToCustomerNumber Code Bill-to Customer No. Rechnungsempfängernummer
shipToName Text Ship-to Name Lieferadresse Name
shipToContact Text Ship-to Contact Lieferadresse Ansprechpartner
sellToAddressLine1 Text Sell-to Address Lieferadresse Zeile 1
sellToAddressLine2 Text Sell-to Address 2 Lieferadresse Zeile 2
sellToCity Text Sell-to City Stadt (Lieferadresse)
sellToCountry Code Sell-to Country/Region Code Land (Lieferadresse)

Das vollständige Feldset entspricht dem BC-Standard-API. Rechnungspositionen über relApiTabApiSalesInvoiceLine.


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSalesInvoiceLine


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSalesInvoiceLine
Entity (Plural/Endpunkt) relApiTabApiSalesInvoiceLine
Quell-Tabelle Sales Invoice Line Aggregate (temporär, Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSalesInvoiceLine

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Schlüssel (OData-Key)
documentId GUID Document Id Verknüpfung zum Rechnungskopf
sequence Integer Line No. Positionsnummer
itemId GUID Item Id Artikel-ID
accountId GUID Account Id Sachkonto-ID
lineType Enum API Type Positionstyp (Item / Account)
lineObjectNumber Code No. Artikel- oder Kontonummer
description Text Description Beschreibung
description2 Text Description 2 Beschreibung 2
unitOfMeasureId GUID Unit of Measure Id Maßeinheit-ID
unitOfMeasureCode Code Unit of Measure Code Maßeinheitscode
quantity Decimal Quantity Menge
unitPrice Decimal Unit Price Einzelpreis
discountAmount Decimal Line Discount Amount Rabattbetrag
discountPercent Decimal Line Discount % Rabattprozent

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSalespersonPurchaser


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSalespersonPurchaser
Entity (Plural/Endpunkt) relApiTabApiSalespersonPurchaser
Quell-Tabelle Salesperson/Purchaser (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSalespersonPurchaser

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
code Code Code Verkäufer/Einkäufer-Code
name Text Name Name
jobTitle Text Job Title Berufsbezeichnung
eMail Text E-Mail E-Mail
eMail2 Text E-Mail 2 E-Mail 2
phoneNo Text Phone No. Telefon
blocked Boolean Blocked Gesperrt
commission Decimal Commission % Provision %
relCContactNo Code RelC Contact No. Kontaktnummer (RELion)
relCFaxNo Text RelC Fax No. Faxnummer (RELion)
relCMobilePhoneNo Text RelC Mobile Phone No. Mobilnummer (RELion)
relCRepresentative Boolean RelC Representative Vertreter
relCSignature Text RelC Signature Unterschrift
globalDimension1Code Code Global Dimension 1 Code Globale Dimension 1
globalDimension2Code Code Global Dimension 2 Code Globale Dimension 2
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSecurityForRent


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v1.0
Entity (Singular) relApiTabApiSecurityForRent
Entity (Plural/Endpunkt) relApiTabApiSecurityForRent
Quell-Tabelle RelC Security For Rent
Schlüsselfeld SystemId (GUID)
Schreibschutz Ja — nur Lesezugriff (GET)

Hinweis: Diese API verwendet Version v1.0 (abweichend von den meisten anderen Endpunkten mit v2.0).


Basis-URL

GET /api/aareon/relionBaseApi/v1.0/companies({companyId})/relApiTabApiSecurityForRent

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemCreatedAt DateTime SystemCreatedAt Erstellungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemModifiedBy GUID SystemModifiedBy Zuletzt geändert von
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
unitHistory Integer Unit history Einheitenhistorie
no Code No. Mietkautionsnummer
contractNo Code Contract No. Vertragsnummer
kindOfSecurityForRent Code Kind of security for rent Art der Mietkaution
rentSecurityAmountUpdated Decimal Rent security amount updated Aktualisierter Kautionsbetrag

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiSpaceAndSurface


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiSpaceAndSurface
Entity (Plural/Endpunkt) relApiTabApiSpaceAndSurface
Quell-Tabelle RelC Space and surface
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiSpaceAndSurface

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
code Code Area code Flächencode
startDate Date Valid as of Gültig ab
endDate Date Valid to Gültig bis
roomNo Code Room no. Raumnummer
roomName Text Room name Raumname
building Code Building Gebäude
house Code House Haus
quantity Decimal Quantity Anzahl
areaSqm Decimal Area in sqm Fläche in m²
unitCode Code Unit code Einheitencode
exploitationMethod Code Exploitation method Nutzungsart
recordId RecordId RecordId Datensatz-ID

Typische Anwendungsfälle

// Flächen einer bestimmten Einheit
GET .../relApiTabApiSpaceAndSurface?$filter=ownerTenant eq 'OT-001' and objectNo eq 'OBJ-001' and unitNo eq 'E-001'

// Aktuelle Flächen (Gültigkeitsprüfung)
GET .../relApiTabApiSpaceAndSurface?$filter=startDate le 2026-04-24 and (endDate eq null or endDate ge 2026-04-24)

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiTenantContractDraft


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiTenantContractDraft
Entity (Plural/Endpunkt) relApiTabApiTenantContractDraft
Quell-Tabelle RelC Tenant Contract Draft
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiTenantContractDraft

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
address Text Address Adresse
postCode Code Post Code Postleitzahl
city Text City Stadt
importDateTime DateTime Import DateTime Import-Zeitstempel
importSource Text Import Source Importquelle
beginningOfContract Date Beginning of Contract Vertragsbeginn
salutationCode Code Salutation Code Anredecode
jobTitle Text Job Title Berufsbezeichnung
firstName Text First Name Vorname
surname Text Surname Nachname
phoneNo Text Phone No. Telefon
remarkPhoneNo Text Remark Phone No. Bemerkung Telefon
phoneCompany Text Phone Company Firmentelefon
mobilePhoneNo Text Mobile Phone No. Mobilnummer
remarkMobilePhoneNo Text Remark Mobile Phone No. Bemerkung Mobilnummer
faxNo Text Fax No. Faxnummer
eMail Text E-Mail E-Mail-Adresse
dateOfBirth Date Date of Birth Geburtsdatum
nameAtBirth Text Name at Birth Geburtsname
occupation Text Occupation Beruf
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiRelCTicketInput


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiRelCTicketInput
Entity (Plural/Endpunkt) relApiTabApiRelCTicketInput
Quell-Tabelle RelC Ticket Input
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiRelCTicketInput

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
systemCreatedBy GUID SystemCreatedBy Erstellt von
status Enum Status Ticketstatus
issue Text Issue Problem/Störung
description Text Description Beschreibung
priority Enum Priority Priorität
contactNo Code Contact No. Kontaktnummer
contactName Text Contact Name Kontaktname
contractNo Code Contract No. Vertragsnummer
completedDate Date Completed Date Erledigungsdatum
ticketReportedByName Code Ticket Reported By Name Gemeldet von (Kontakt)
ticketTypeCode Code Ticket Type Code Tickettyp-Code
ticketType Text Ticket Type Tickettyp
assignedPerson Code Assigned Person Zugewiesene Person
ticketProcessorPerson Code Ticket processor Person Bearbeitender Benutzer
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressourcen (SubPages)
Navigation Beschreibung
RelApiTabApiSalespersonPurch Verknüpfter Sachbearbeiter (via assignedPerson)
RelApiTabApiTicketInputMessage Nachrichten/Kommentare zum Ticket

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiRelCTicketInputMessage


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiRelCTicketInputMessage
Entity (Plural/Endpunkt) relApiTabApiRelCTicketInputMessage
Quell-Tabelle RelC Ticket Input Message
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiRelCTicketInputMessage

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ticketInputNo Code Ticket Input No. Ticket-Nummer (Verknüpfung)
noticeNo Integer Notice No. Hinweisnummer
lineNo Integer Line No. Zeilennummer
headLine Text Headline Betreff/Überschrift
comment Text Comment Kommentartext

Hinweise für Entwickler

Diese Ressource wird in der Regel als SubPage von relApiTabApiRelCTicketInput konsumiert. Ein Direktabruf mit Filter auf ticketInputNo ist ebenfalls möglich.

// Alle Nachrichten zu einem Ticket
GET .../relApiTabApiRelCTicketInputMessage?$filter=ticketInputNo eq 'TICKET-0001'

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiRelCTicketType


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiRelCTicketType
Entity (Plural/Endpunkt) relApiTabApiRelCTicketType
Quell-Tabelle RelC Ticket Type
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiRelCTicketType

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
code Code Code Tickettyp-Code
type Enum Type Typ
level Integer Level Hierarchieebene
codeFault Code Code Fault Fehlercode
belongsToCode Code Belongs to Code Übergeordneter Code
description Text Description Beschreibung
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiUnitAllocation


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiUnitAllocation
Entity (Plural/Endpunkt) relApiTabApiUnitAllocation
Quell-Tabelle RelC Unit Allocation
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiUnitAllocation

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
allocationCode Code Allocation Code Umlageschlüssel-Code
startDate Date Start Date Gültig ab
endDate Date End Date Gültig bis
description Text Description Beschreibung
reasonChange Text Reason for Change Änderungsgrund
factor Decimal Factor Faktor
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiUnitEquipment


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiUnitEquipment
Entity (Plural/Endpunkt) relApiTabApiUnitEquipment
Quell-Tabelle RelC Unit Equipment
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiUnitEquipment

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
unitEquipmentSerialNo Code Unit Equipment Serial No. Seriennummer der Ausstattung
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
building Code Building Gebäude
house Code House Haus
unitNo Code Unit No. Einheitennummer
room Code Room Raum
code Code Code Ausstattungscode
equipmentCategory Code Equipment category Ausstattungskategorie
typeOfDesign Text Type of design Designtyp
material Text Material Material
colour Text Color Farbe
description Text Description Beschreibung
description2KeyId Text Description 2 Beschreibung 2 / Schlüssel-ID
installationDate Date Installation date Installationsdatum
removeDate Date Addition date Hinzufügungsdatum
isKey Boolean Key Ist Schlüssel (Hinweis: Feldname key ist AL-Keyword)
numberOfKeys Integer Number Anzahl Schlüssel
quantity Decimal Quantity Menge
quantityUnit Code Quantity unit Mengeneinheit
inventoryNo Code Inventory No Inventarnummer
attribute1 Text Attribute1 Attribut 1
attribute2 Text Attribute2 Attribut 2
attribute3 Text Attribute3 Attribut 3
lastTestDate Date Last test date Letztes Prüfdatum
nextTestDate Date Next test date Nächstes Prüfdatum
length Decimal Length Länge
width Decimal Width Breite
height Decimal Height Höhe
areaSquareMeters Decimal Area Fläche m² (Feldname area ist AL-Keyword)
propertyOf Code PropertyOf Eigentum von
costTakeover Decimal Cost Takeover Kostenübernahme
manufacturingDate Date Manufacturing date Herstellungsdatum
recordId RecordId RecordId Datensatz-ID

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiUnitMasterData


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiUnitMasterData
Entity (Plural/Endpunkt) relApiTabApiUnitMasterData
Quell-Tabelle RelC Unit Master Data
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiUnitMasterData

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
address Text Address Adresse
address2 Text Address 2 Adresszusatz
postCode Code Post Code Postleitzahl
city Text City Stadt
description Text Description Beschreibung
building Code Building Gebäude
house Code House Haus
location Code Location Lage
floor Code Floor Etage
mgtStartDate Date Management Start Verwaltungsbeginn
mgtEndDate Date Management End Verwaltungsende
exploitationMethod Code Exploitation Method Nutzungsart
vatBusinessPostingGroup Code Vat business posting group MwSt.-Geschäftsbuchungsgruppe
numberOfRoomsText Text Number rooms (text) Anzahl Zimmer (Text)
numberOfWholeRooms Decimal Number whole rooms Anzahl ganze Zimmer
numberOfHalfRooms Decimal Number half rooms Anzahl halbe Zimmer
areaAllocationCode Code Area allocation code Flächenverteilungscode
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressourcen (SubPages)
Navigation Beschreibung
RelApiTabApiExploitationMethod Nutzungsart-Details (via exploitationMethod)
RelApiTabApiUnitAllocation Einheitenzuweisungen (via areaAllocationCode)
Service-Prozedur
Prozedur Rückgabe Beschreibung
VacanciesExportXml() Text Gibt OpenImmo-konformes XML für Leerstandsexporte zurück

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiUnitsContract


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiUnitsContract
Entity (Plural/Endpunkt) relApiTabApiUnitsContract
Quell-Tabelle RelC Unit Contract
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiUnitsContract

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
systemModifiedAt DateTime SystemModifiedAt Letztes Änderungsdatum
ownerTenant Code Owner / Tenant Eigentümer/Mieter
objectNo Code Object No. Objektnummer
unitNo Code Unit No. Einheitennummer
history Integer History Historiennummer
serialNo Integer Serial No. Laufende Nummer
contractNo Code Contract No. Vertragsnummer
description Text Description Beschreibung
customerNo Code Customer No. Kundennummer
unitContractStart Date Beginning of contract Vertragsbeginn
unitContractEnd Date Exp. date of contr. Vertragsablauf
dateMoveIn Date Date move-in Einzugsdatum
dateMoveOut Date Date excerpt Auszugsdatum
vacancy Boolean Vacancy Leerstand
externalUnitNo Code External Unit No. Externe Einheitennummer
vatBusinessPostingGroup Code VAT business posting group MwSt.-Buchungsgruppe
reasonForTermination Code Reason for termination Kündigungsgrund
reasonForVacancy Code Reason for vacancy Leerstandsgrund
areaAllocationCode Code Area Allocation Code Flächenverteilungscode
areaAllocationSqm Decimal Area Allocation Sqm Flächenverteilung m²
recordId RecordId RecordId Datensatz-ID
Verknüpfte Ressourcen (SubPages)
Navigation Beschreibung
RelApiTabApiRelCMexARecord MEX A-Records der Einheit
RelApiTabApiAllocGroupParticip Umlagegruppenverteilungen (via areaAllocationCode)

Typische Anwendungsfälle

// Leerstände abrufen
GET .../relApiTabApiUnitsContract?$filter=vacancy eq true

// Aktive Verträge einer Einheit
GET .../relApiTabApiUnitsContract?$filter=ownerTenant eq 'OT-001' and objectNo eq 'OBJ-001' and unitContractEnd eq null

Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

relApiTabApiVendor


Übersicht

Eigenschaft Wert
Publisher aareon
API-Gruppe relionBaseApi
Version v2.0
Entity (Singular) relApiTabApiVendor
Entity (Plural/Endpunkt) relApiTabApiVendor
Quell-Tabelle Vendor (Business Central Standard)
Schlüsselfeld SystemId (GUID)
Schreibzugriff Ja — GET, POST, PATCH
Change Tracking Aktiviert

Basis-URL

/api/aareon/relionBaseApi/v2.0/companies({companyId})/relApiTabApiVendor

Erlaubte HTTP-Methoden

Methode Erlaubt
GET
POST
PATCH
DELETE

Felder (Response-Schema)

Feldname Typ Quelle Beschreibung
id GUID SystemId Eindeutiger Systemschlüssel (OData-Key)
number Code No. Lieferantennummer
displayName Text Name Name
addressLine1 Text Address Adresse Zeile 1
addressLine2 Text Address 2 Adresse Zeile 2
city Text City Stadt
state Text County Bundesland
country Code Country/Region Code Ländercode
postalCode Code Post Code Postleitzahl
phoneNumber Text Phone No. Telefon
email Text E-Mail E-Mail
website Text Home Page Webseite
taxRegistrationNumber Text VAT Registration No. Steuernummer / USt-IdNr. (berechnet)
currencyId GUID Currency Id Währungs-ID
currencyCode Code Berechnet Währungscode

Das vollständige Feldset ist umfangreich (BC Standard-API). Bitte $select für optimierte Abfragen verwenden.


Hinweise für Entwickler

taxRegistrationNumber (berechnet)

Je nach Lokalisierung wird entweder VAT Registration No. oder die belgische Enterprise No. zurückgeliefert. Beim PATCH wird das Feld entsprechend zurückgeschrieben.

currencyCode

Beim PATCH kann entweder currencyId (GUID) oder currencyCode (Code) angegeben werden. Beide Felder werden synchronisiert. Ein leeres currencyId setzt die Währung auf Leer (Landeswährung).


Authentifizierung

  • OAuth 2.0 (Azure AD / Entra ID) für Cloud
  • Basic Auth / Windows Auth für On-Premises

2 - Schnittstellen - Installation und Einrichtung

Anleitung zur allgemeinen Installation und Einrichtung der Schnittstellen

Schnittstellen - Installation und Einrichtung

Überblick und Zuständigkeiten

flowchart TD
    classDef Aareon_blue fill:#051163,stroke:#051163,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Bright_blue fill:#086DFB,stroke:#086DFB,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Sand        fill:#F7F3F0,stroke:#F7F3F0,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Stone       fill:#EBE3DC,stroke:#EBE3DC,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Coral       fill:#FF7F62,stroke:#FF7F62,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Peach       fill:#FFD8CA,stroke:#FFD8CA,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Green       fill:#50B214,stroke:#50B214,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Light_green fill:#B9E99C,stroke:#B9E99C,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Baby_blue   fill:#A4CBFF,stroke:#A4CBFF,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Burgundy    fill:#550000,stroke:#550000,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Dark_green  fill:#2F630E,stroke:#2F630E,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif

    E[Microsoft Entra ID]:::Coral
    RP[RELion<br>Produktiv]:::Green
    RS[RELion<br>Sandbox]:::Green
    NSTP[Business Central Dienst<br>Produktiv]:::Bright_blue
    NSTS[Business Central Dienst<br>Sandbox]:::Bright_blue

    subgraph SGE["`**Kunde - Entra-Admin**`"]
        E
    end
    class SGE Peach

    subgraph SGR["`**Kunde - Super-User**`"]
        E --> RP
        E --> RS
    end
    class SGR Light_green

    subgraph SGNST["`**Aareon RELion - Dev-Ops**`"]
        RP --> NSTP
        RS --> NSTS
    end
    class SGNST Aareon_blue

3 - URA (Universal REST API)

Informationen zur URA-Schnittstelle

Mit der Universal REST API bietet RELion eine Möglichkeit, auf jede Tabelle über einen REST API Aufruf zuzugreifen. Der schematische Aufbau des Calls ist für jede Tabelle identisch und eine Ausführung der RELion Business Logik gewährleistet. Es stehen Standardfunktionen für die Interaktion mit RELion zur Verfügung:

  • Einfügen
  • Ändern
  • Kombiniertes Einfügen und Ändern
  • Löschen eines Datensatzes
  • Lesen (einzelner Datensatz oder mehrere Daten)
  • Ändern des Primärschlüssels eines Datensatzes


Weitere ergänzende Funktionen sind:

  • der Bulk Modus
  • die Verwendung von verschiedenen Konfigurationen

Universal REST API in sechs Schritten

  1. Identifizierung der RELion Tabelle in der GUI
  2. BC Tabellen Nummer und Feldnummern heraussuchen
  3. Erstellen des REST Requests, bestehend aus oa. Nummern und dem Payload
  4. Senden des Requests an die universal REST API
  5. Verarbeitung des Request durch RELion
  6. Rückmeldung der Verarbeitung
    a. Verarbeitung war fehlerfrei, Rückmeldung mit dem angelegten oder geänderten Datensatz
    b. Verarbeitung lief auf einen Fehler, Rückmeldung des Fehlers in Klartext

Die Business Logik in BC basiert stark auf der Reihenfolge, wie der Anwender Felder in einer Tabelle füllt, auch diesen Umstand berücksichtig die REST API, die Reihenfolge der Felder im JSON Body entsprechen der Reihenfolge, indem die API die Daten in die RELion Tabelle schreibt. Eine Umstellung ist jederzeit durch eine Umsortierung der Felder im Request möglich. Mit weiteren Parametern kann die REST API auch komplexe Einfügeoperationen in RELion abbilden (z. B. kombinierte Einfüge und Update Anweisungen oder das Überspringen von Validierungen).

Anders als bei SQL-Abfragen auf BC-Tabellen, kann die universal REST API auch die Flow Fields einer Tabelle zurückgeben. Dies bezieht sich auf Tabellenfelder, berechnete Felder, welche nur auf den Pages oder in Infoboxen vorhanden sind, berücksichtigt die API nicht. Durch die mögliche Verwendung von verschiedenen Konfigurationen pro REST API Aufruf, kann die API, je nach Anwendungszweck, diese Daten in die Antwort aufnehmen oder nicht.

Darüber hinaus sind auch gebündelte Operationen möglich. In einem REST API Aufruf sind dann mehrere Datensätze zum Einfügen oder Ändern enthalten, dies spart dann die Zeit für dem Aufbau der Webserviceverbindung pro Datensatz und kann die Laufzeit bei einer großen Menge an Daten senken. Auch diese Bulk-Übertragungen haben die identischen Möglichkeiten eines Aufrufes pro Datensatz.

In dem Beispiel wird der Übertrag eines Debitors aus einem Fremdsystem nach RELion dargestellt, vor allem die Ableitung aus der RELion Tabelle und den daraus resultierenden Request.

Das Auslösen der Kommunikation und der Abgleich der Tabellen und Felder ist nicht Bestandteil dieser Dokumentation.

Insert Record with URA

3.1 - Request Aufbau

Aufbau eines Request

Base URL

Die Requests sind an die Adresse der URA zu senden. Diese ist

SaaS - BC Online:
https://api.businesscentral.dynamics.com/v2.0/{{user domain id}}/{{environment name}}/api/aareon/universalapi/v1.0/companies({{Company-Id}})/universalRequests?$expand=entitySet

SaaS - Companial:
https://{{kunde}}.dynamicstocloud.com:{{port}}/{{serverinstance}}/api/aareon/universalapi/v1.0/companies({{Company-Id}})/universalRequests?$expand=entitySet

OnPrem:
https://{{base URL}}:{{port}}/{{serverinstance}}/api/aareon/universalapi/v1.0/companies({{Company-Id}})/universalRequests?$expand=entitySet

URA GET

Die GET-Methode zeigt lediglich die Verfügbarkeit der API an, die Universal REST API steht für alle Mandaten zur Verfügung und benötigt zur Identifikation des Mandanten noch die Mandanten ID in der URL. Die Prüfung, ob die API verfügbar ist benötigt diesen Zusatz nicht.

Die Adresse für die GET-Methode setzt sich aus vier Komponenten zusammen:

  1. Webadresse des Servicetiers
  2. Port der BC OData Services
  3. BC Dienstnamen
  4. restliche Pfad: /api/aareon/universalapi/v1.0/$metadata

Eine vollständige Adresse für einen GET Aufruf wäre somit:
http://MeinServer:14048/MeinServiceTier/api/aareon/universalapi/v1.0/$metadata
Zurück kommt ein XML-File mit allen aktiven API’s:

Insert Record with URA

URA POST

Für einen Request wird immer ein POST-Request an den Endpunkt geschickt. Dieser enthält einen Body mit einem JSON. Das JSON besteht aus zwei Teilen, der Definition der Tabelle und den Daten, welche auf die Tabelle anzuwenden sind. Die verschiedenen Ausprägungen des Bodys sind in JSON Body beschrieben.

Beispiel:

Lesen aus der Tabelle mit der ID 5050. Es werden die Felder mit der ID 1 und ID 2. Die ersten 620 Datensätze werden übersprungen und dann werden 100 Datensätze geliefert.

Request:

{
    "tableNo":  "5050",
    "operation":  "READ",
    "top": "100",
    "skip":"620",
    "entitySet":  [
                      {
                          "subOperation":  "Done",
                          "responseFields":  "1|2"
                      }
                  ]
}

Response:

{
  "@odata.etag": "W/\"JzIwOzE2Mjg3NjY1MDI0ODQ3NzE5ODM0MTswMDsn\"",
  "headerId": "8804c1b9-444c-42cb-809c-6ea49e0dc91e",
  "lineNo": "10000",
  "fieldNo": 0,
  "filter": false,
  "dimensionSetId": false,
  "dimensionSetIdMutation": 0,
  "dimension": false,
  "dimensionCode": "",
  "validate": false,
  "value": "",
  "subOperation": "DONE",
  "resetFilter": false,
  "singleCommit": false,
  "responseFields": "1|2",
  "totalCount": 625,
  "skippedRows": 620,
  "numberOfRows": 625,
  "moreRows": false,
  "done": false,
  "countOfReturnRows": 5,
  "ResponseJson2": "eyJEYXRhIjpbeyJOby4iOiJLMDEwMDA0IiwiTmFtZSI6IkRldXRzY2hlIFRlbGVjb20gQUcifSx7Ik5vLiI6IkswMTAwMDUiLCJOYW1lIjoiRGViaXRvIFJlc2VzIn0seyJOby4iOiJLMDEwMDA2IiwiTmFtZSI6IlRydWRlbCBXZXJlcyJ9LHsiTm8uIjoiSzAxMDAwNyIsIk5hbWUiOiJEZWxvcmVzIDEwMDAifSx7Ik5vLiI6IkxFRVIiLCJOYW1lIjoiTGVlciJ9XX0="
}

Im Feld ResponseJson2 gibt die REST API den angelegten Datensatz in Base64 Kodierung zurück. Encodiert ist es JSON. Sie können die Anzahl der Felder, welche die API zurückgibt, über den Parameter responseFields einschränken. Ohne den Eintrag gibt die API immer alle Felder aus der Tabelle zurück.

Decodiert steht nun da:

{
  "Data": [
    {
      "No.": "K010004",
      "Name": "Deutsche Telecom AG"
    },
    {
      "No.": "K010005",
      "Name": "Debito Reses"
    },
    {
      "No.": "K010006",
      "Name": "Trudel Weres"
    },
    {
      "No.": "K010007",
      "Name": "Delores 1000"
    },
    {
      "No.": "LEER",
      "Name": "Leer"
    }
  ]
}

Die Prüfung der Datenfelder erfolgt durch Business Central. Bei nicht passenden Kombinationen (z. B. Text in ein Zahlenfeld zu schreiben oder nicht vorhandene Werte in verbundenen Tabellen), beendet die API den Request mit einer Fehlermeldung.

URA JSON Body

Json Header

Der Body besteht aus einem “Kopf”, dem universalRequest und dann einen Array von zusammenhängenden Befehlsblöcken, dem entitySet. Eine Suboperation schließt jeweils einen Befehlsblock logisch ab.

Die Befehlsblöcke setzen sich aus verschiedenen Attributen zusammen, je nach Verwendungszweck des Blockes. Die API arbeitet die Blöcke sequenziell ab, die Reihenfolge legt somit auch die Filter und Validierungsreihenfolge in BC fest.

Die BC Tabelle ist pro Aufruf konstant, alle Operationen führt die API nur auf dieser Tabelle durch, Kopf und Zeilen Strukturen benötigen zwei API-Aufrufe. Die benötigten Daten liefert die API nach Abschluss der gesamten Operation zurück.

Die API liefert als Antwort nochmals den gesamten Aufruf als Body mit, dies ist technisch begründet und kann nicht unterbunden werden. In jedem Suboperation Block ist das Attribut response vorhanden, in diesem Attribut kann die API den neuen / geänderten Datensatz nach der jeweiligen Operation zurückliefern, je nach Suboperation und Anwendungsfall.

Das Feld response ist BASE64 codiert und enthält ein JSON mit den Daten der Tabelle, ein Filter kann die zurückgegebenen Felder einschränken.

Der Aufbau des entitySet Bereiches ist variabel, um die verschiedensten Konstellationen in BC abzubilden, die drei am meisten genutzten Anwendungsbereiche sind dabei:

  1. Einzelanweisung, ein Datensatz ohne komplexe Trigger und Validierungen über die API einfügen oder verändern.
  2. Kombinierte Anweisung, INSERT und UPDATE in einem Aufruf. Komplexe Trigger und Validierungen über die API. simulieren, beispielsweise setzt der Inserttrigger beim Einfügen eines Debitors die Debitorennummer und einige Defaultwerte, diese können dann im folgenden UPDATE Teil, innerhalb eines Aufrufes, auf die gewünschten Werte angepasst werden.
  3. Einfügen einer großen Datenmenge mit wenigen Aufrufen (BULK – Modus). Ziel ist es, die Minimierung des Overheads für die Kommunikation über die API. In einem Aufruf sind 30 bis 50 Datensätze enthalten, welche die API in einer Datenbank Transaktion verarbeitet.

Es gibt folgede Parameter:
  • tableNo - Tabellen Nummer
    Das Attribut tableNo spezifiert die Tabellen in BC auf welche die Operation angewendet werden soll. Es ist die Nummer der Tabelle aus BC anzugeben. Diese ist abrufbar unter anderem über den Punkt Info zu der Seite.

  • operation - Funktionen auf BC Tabellen
    Es stehen diese Funktionen zur Verfügung: Einer dieser Operationen ist in der Ebene universalRequest anzugeben, sie definiert den übergeordneten Anwendungsfall. Reicht eine Operation pro Webrequest, so ist dieser mit der subOperation DONE in der Ebene entitySet zu bestätigen. Verschiedene Anwendungsfälle, wie ein INSERT gefolgt von einem UPDATE oder BULK Operationen, lassen sich mit den subOperationen in der Ebene entitySet abbilden.

    • INSERT
      Mit der INSERT – Operation fügt die API die im Bereich entitySet definierten Daten der definierten BC Tabelle hinzu, ob der BC Insert Trigger dabei zur Ausführung kommt, bestimmt ein weiterer Parameter. Die Reihenfolge in der die API die einzelnen Felder in die BC Tabelle einfügt, ist durch die Reihenfolge der Daten in entitySet Bereich festgelegt, über diesen Mechanismus sind verschiedene Feldvalidierungsreihenfolgen abbildbar.
    • UPDATE
      Mithilfe der UPDATE – Operation, kann die API Daten eines bestehenden Datensatzes verändern. Filterkriterien um den Datensatz zu bestimmen sind im entitySet Bereich zu definieren.
    • DELETE
      Der DELETE-Operator benötigt einen Filter, der nur einen Datensatz als Ergebnis liefert, bei mehr als ein Datensatz pro Operation liefert die API einen Fehler, damit sind Löschvorgänge auf einen ganzen Bereich in einer Operation ausgeschlossen.
    • RENAME
      BC unterscheidet zwischen einer Änderung von Daten und einem Umbenennen von Daten, bei der Änderung sind keine Felder des Primärschlüssel, den eindeutigen Identifier des Datensatzes in der Tabelle, betroffen. Ein Primärschlüssel (PS) kann mehrere Felder einschließen, ist nur ein Feld von einer Änderung betroffen, so geht BC und damit auch die API von einem Rename aus.
    • READ
      Die API kann zusätzlich zu den Schreiboperationen auch Datensätze aus Tabellen zurückliefern. Die READ-Operation liefert je nach mitgegeben Filter 0 bis alle Datensätze einer Tabelle zurück. Die maximale Anzahl der zurückgelieferten Daten bestimmt der Wert numberOfEntitiesToRead in der Konfiguration, im Standard 100.
    • READLAST
      Die API kann zusätzlich zu den Schreiboperationen auch Datensätze aus Tabellen zurückliefern. Die READLAST Operation liefert je nach mitgegeben Filter keinen oder den letzten Datensatz passend zu dem Filter aus einer Tabelle zurück. Der Request ist immer mit der “subOperation”:“DONE” abzuschließen. Mehrfache Operationen sind nicht zulässig.
  • runTrigger – Attribut
    BC Tabellen haben für jede Art der Änderung an Tabellen Trigger, welche Code ausführen können. Dieses Attribut steuert, ob die API den jeweiligen Triggers ausführt (true) oder nicht (false). Der Insert-Trigger auf der Debitorentabelle (18) führt verschiedene Prüfungen durch, unter anderem prüft er, ob eine Debitorennummer vorhanden ist, sollte dies nicht der Fall sein, holt sich der Trigger diese aus den Nummernserien.

  • setupCode – Attribut
    Ohne die Angabe oder mit der Angabe eines nicht definierten setupCode’s verwendet die API immer die Konfiguration mit leeren Code Feld.

  • entitySet – Attribute
    Attribute teilen sich in MUSS und KANN Attribute auf, fehlt ein MUSS Attribut quittiert dies die API mit einem Fehler. KANN Attribute haben Standardwerte, diese sind in dem entsprechenden Kapitel erläutert. Die verschiedenen Attribute sind sechs Gruppen zuzuordnen und nur in diesen Gruppen zu verwenden:

    1. Abschluss einer Operation oder Suboperation
    2. Einfügen von Daten
    3. Ändern von Daten
    4. Löschen von Daten
    5. Lesen von Daten
    6. obsolete Attribute
  • Operation und Suboperation
    Jeder Request ist mit einer Suboperation abzuschließen, diese löst die Verarbeitung der Daten in der API aus. Ein Aufruf mit Blöcken ohne eine Suboperation am Ende hat keine Auswirkung auf das System, RELion speichert den Aufruf ohne diesen auszuführen.

    Die Anordnung der Blöcke entspricht der Verarbeitungsreihenfolge, dies hat direkte Auswirkung auf die Validierungsreihenfolge in RELion. Das Einfügen einer Objektnummer ohne vorheriges Füllen des Eigentümer/Mieter Kennzeichens löst beispielsweise eine Fehlermeldung aus. Oft sind die Feldreihenfolgen auf den BC Pages eine Orientierung für die korrekte Reihenfolge der Felder für die API.

    Auch Suboperationen beziehen sich auf die im tableNo Attribut definierte Tabelle, es ist nicht möglich Daten durch Suboperationen in unterschiedliche Tabellen zu schreiben.

    Die Anwendung von Suboperationen ist in drei Bereich aufzuteilen:

    1. Insert – Update Aufrufe, um Daten, welche RELion bei der Ausführung des Insert Triggers durch Default Werte ersetzt mit einem anschließenden Update Teil in einem Aufruf einzufügen.
    2. Insert - …… -Insert (BULK) Einfügeoperationen, ein Aufruf schreibt mehrere Datensätze in die Datenbank.
    3. Update - …… - Update Änderungsoperationen, ein Aufruf ändert verschiedene Datensätze.

    Der kombinierte Aufruf von Insert – Update vereinfacht das Einfügen von Daten, wenn der RELion Insert Trigger, beispielsweise die Nummer aus der Nummernserie holt und dann weitere Default Werte setzt, aber die Daten genau diese Default Werte ändern. Hier sind dann nicht mehr zwei Aufrufe mit der Verarbeitung der Antwort nötig. Die API behält den neu angelegten Datensatz im Fokus und führt dann die gewünschte Änderung nach dem Einfügen der Daten in die Datenbank in einem API Aufruf durch.

    Die BULK Bereiche Insert und Update, dazu gehört auch eine mehrfach kombinierte Insert – Update Anweisung, ist vor allem für große Datenmengen konzipiert. Der Overhead für den Aufbau und Abbau der Verbindung fällt nur einmal für die Anzahl der gemeinsam übertragenden Daten an, nicht für jede Operation.

    • Gültige Attribute für den Suboperationsbereich
      Vier Attribute sind zulässig:

      "subOperation": "DONE….",
      "resetFilter": false, 
      "singleCommit": false, 
      "responseFields": "1|2"
      

      Das Attribut subOperation ist zwingend und beschreibt die Vorgehensweise mit welcher die API die vorher übergebenen Blöcke verarbeitet. Die möglichen Ausprägungen sind:

      1. DONE
        Schließt die im Attribut operation definierte Operation ab und füllt das Attribut response. DONE beachtet die Option responseFields, alle anderen Optionen bleiben unbeachtet. Die Operationen READ sind immer mit einem DONE abzuschließen, ebenso bei Aufrufen mit einer Operation.

      2. INSERT
        Mittels INSERT fügt die API einen Datensatz mit den übergebenen Werten in die spezifizierte Tabelle ein. Ein INSERT erstellt keinen Inhalt im Attribut response. Für weitere Operationen speichert die API eine Referenz auf den neuen Datensatz. Diese Suboperation macht keinen Gebrauch von weitere Attributen. Beispiel für zwei Inserts, einmal der Wert 10 und einmal der Wert 20 in das Feld 100:

        { 
          "tableNo": "5358944", 
          "operation": "INSERT", 
          "runTrigger": true, 
          "entitySet": [
            {
               "fieldNo": 100,
               "validate": true, 
               "value": 
               "10" 
             },
             { 
               "subOperation": "INSERT" 
             }, 
             {
               "fieldNo": 100, 
               "validate": true, 
               "value": "20" 
             }, 
             { 
               "subOperation": "INSERT"
             }
           ]
         }
        
      3. INSERT_RESPONSE
        Zusätzlich zum Einfügen der Daten in die Datenbank, erstellt ein INSERT_RESPONSE auch das Rückgabe-JSON in dem Attribut response. Für jeden Datensatz erstellt die API den Rückgabewert in dem zugehörigen Suboperationsbereich. Mit dem Attribut responseFields lassen sich die Felder in dem Rückgabewert einschränken. Das gleiche Beispiel wie im Beispiel Suboperation INSERT, nur diesmal mit INSERT_RESPONSE:

        { 
            "tableNo": "5358944", 
            "operation": "INSERT", 
            "runTrigger": true, 
            "entitySet": [ 
                { 
                    "fieldNo": 100, 
                    "validate": true, 
                    "value": "10" 
                }, 
                { 
                    "subOperation": 
                    "INSERT_RESPONSE", 
                    "responseFields": "1|100" 
                }, 
                { 
                    "fieldNo": 100, 
                    "validate": true, 
                    "value": "20" 
                }, 
                {
                    "responseFields": "1|100", 
                    "subOperation": 
                    "INSERT_RESPONSE" 
                }
            ] 
        }
        

        In der Antwort ist aber nun auch das ResponseJson2 wie beim READ gefüllt.

      4. UPDATE
        Ein UPDATE ändert einen bestehenden Datensatz, Anpassungen von mehreren Datensätzen in einer Suboperation, über einen Filter, der mehr als einen Datensatz liefert, unterstütz die API nicht. Eine Update Anweisung, ohne vorheriges Einfügen eines Datensatzes, benötigt einen Filter zur Identifizierung. Ein Filter besteht aus dem Tripel von Attributen fieldNo, value und filter, diese sind vor der Suboperation zu definieren. Das Attribut value nimmt Werte eines Standard BC Filters, wie “>10” oder “1|2”, entgegen. Bei der Suboperation UPDATE erzeugt die API keine Antwort wie auch beim INSERT.

        Bei kombinierten Anweisungen behält die API den Fokus auf dem vorherigen Datensatz. Damit ist es möglich weitere Anweisungen auf dem identischen Datensatz auszuführen ohne einen neuen Filter zu definieren. Um Updates auf verschiedenen Datensätzen kombiniert durchzuführen, setzt das Attribut resetfilter den Filter nach der Suboperation zurück.

      5. UPDATE_RESPONSE
        Die Vorbedingungen für die Suboperation UPDATE_RESPONSE sind identisch mit den aus SubOperation UPDATE, im Unterschied zum UPDATE erzeugt die API beim UPDATE_RESPONSE eine Antwort im response Attribut.
        Mittels dieser Operation sind Konstellationen wie Einfügen und Ändern von Datensätzen mit Rückmeldung möglich, auch mehrfache Updates mit einem UPDATE_RESPONSE am Ende liefern dann den endgültigen Datensatz zurück, der Overhead eine Rückmeldung für jede Suboperation zu erstellen und auszuwerten entfällt. Beispiel:

        {
            "tableNo": 5358944", 
            "operation": "INSERT", 
            "runTrigger": true, 
            "setupCode": "", 
            "entitySet": [ 
                {
                    "fieldNo": 100, 
                    "validate": true, 
                    "value": "10" 
                }, 
                { 
                    "fieldNo": 2,
                    "validate": true, 
                    "value": "99"
                }, 
                { 
                    "subOperation": "INSERT" 
                }, 
                { 
                    "fieldNo": 3, 
                    "validate": true, 
                    "value": "99" 
                }, 
                { 
                    "subOperation": "UPDATE" 
                }, 
                { 
                    "fieldNo": 2, 
                    "validate": true, 
                    "value": "199" 
                }, 
                { 
                    "responseFields": "100|2|3", 
                    "subOperation": "UPDATE_RESPONSE" 
                }
            ] 
        }
        

        Die API fügt einen neuen Datensatz in die Tabelle ein, dabei ist der Wert des Feldes 2 = 99 und das Feld 3 ist leer. Im zweiten Schritt erfolgt ein Update auf den eingefügten Datensatz, da die Definition eines neuen Filters für die Update Operation fehlt. Im letzten Schritt überschreibt die API das Feld 2 mit dem Wert 199, die Operation erfolgt immer noch auf dem eingefügten Datensatz. Schließlich erzeugt die Suboperation UPDATE_RESPONSE eine Antwort mit den Feldern 100,2 und 3.

      6. RENAME
        Analog zu der Operation RENAME, ist die serielle Verarbeitung mehrere Umbenennungen über die Suboperation RENAME möglich.

        { 
            "tableNo": "5358944", 
            "operation": 
            "RENAME", 
            "runTrigger": true, 
            "setupCode": "", 
            "entitySet": 
            [ 
                { 
                    "fieldNo": 1,
                    "filter": true, 
                    "value": "{53cd97b6-cc44-40ce-8f6b-4a8167f9422c}" 
                }, 
                { 
                    "fieldNo": 1, 
                    "validate": true, 
                    "value": "{53cd97b6-cc44-40ce-8f6b-4a8167f9422d}" 
                }, 
                { 
                    "responseFields": "1|2|100", 
                    "subOperation": "RENAME" 
                }, 
                { 
                    "fieldNo": 1, 
                    "filter": true, 
                    "value": "{68cd97b6-cc44-40ce-8f6b-4a8167f9422c}" 
                }, 
                { 
                    "fieldNo": 1, 
                    "validate": true, 
                    "value": "{68cd97b6-cc44-40ce-8f6b-4a8167f9422d}" 
                }, 
                { 
                    "responseFields": "1|2|100", 
                    "subOperation": "RENAME" 
                }
            ] 
        }
        

        Die API berücksichtigt Tablerelations, somit ist zu berücksichtigen, dass mehrfach Umbenennungen durchaus in einen Timeout der API laufen können.

      7. READ
        Die Suboperation kann zur Anwendung kommen, wenn zwei oder mehr Datensätze in einem Request aus BC zu lesen sind und dies nicht über einen Filter möglich ist oder das aufrufende System keine mehrfachen Datensätze im responseJson Attribut verarbeiten kann.

      8. DELETE
        Analog zu der RENAME Suboperation, kann der DELETE Suboperator mehrere Datensätze in einem REST API Call löschen, pro Operation jedoch nur einen Datensatz. So könnte man Zeilen zu einem spezifischen Kopf löschen. Zuerst die Zeilen per READ auslesen und dann alle Zeilen in ein DELETE Request aufnehmen. Beispiel für das löschen mehrerer Datensätzen in einem Request:

        { 
            "tableNo": "5358944", 
            "operation": "DELETE", 
            "runTrigger": true, 
            "setupCode": "", 
            "entitySet": [
                { 
                    "fieldNo": 1, 
                    "filter": true, 
                    "value": "{7df044ad-e5a8-4f61-83cc-0014e8837af8}" 
                }, 
                { 
                    "subOperation": "DELETE" 
                }, 
                { 
                    "fieldNo": 1, 
                    "filter": true, 
                    "value": "{576044cd-e7a8-4c61-82cc-001cdedd7af8}" 
                }, 
                { 
                    "subOperation": "DELETE" 
                }
            ] 
        }
        

      Die API speichert den Verweis auf den Datensatz, welche bei der Ausführung der Suboperation im Zugriff war. Soll die API auf ein anderer Datensatz mit einem folgenden Bereich zugreifen, so löst "resetFilter": true den Filter auf den Datensatz auf und eine neue Definition eines Filters ist möglich. Das Attribut ist im Standard false und nur bei Bedarf zu füllen.

      Im Standard ist ein API Aufruf auch eine Transaktion. Dabei schreibt BC alle Änderungen gesammelt am Ende in die Datenbank, tritt ein Fehler bei der Verarbeitung auf, dann speichert BC keine Änderung. Mit dem Attribut “singleCommit”: true ändert die API das Verhalten und schreibt jeden abgeschlossenen Bereich in die Datenbank. Dem Vorteil, jeden Block sofort in der Datenbank zu speichern, stehen eine wesentlich geringere Performance und aufwendigere Aufbereitung der fehlerhaften Daten gegenüber. Bis auf besondere Fälle ist das Standardverhalten ein Aufruf gleich einer Transaktion dem singleCommit vorzuziehen.

      Die Fehlerbehandlung bei mehreren Insert Bereichen ist je nach dem Attribut singleCommit anzupassen. Da die Daten mit aktivierten singleCommit bis zum Fehler in der Datenbank vorhanden sind, bei deaktivierten hingegen nicht.

      Ohne das Attribut responseFields gibt die Schnittstelle immer alle Felder der Tabelle im response JSON zurück. Um die Anzahl der Felder einzuschränken, nimmt die API im Attribut responseFields einen BC Filterstring mit den Feldnummern der Tabelle auf. Soll im response nur die Felder 3,5,50001 und 5358755 enthalten sein, so ist das Attribut “responseFields”: “3|5|50001|5358755” der Suboperation hinzuzufügen. Jeder Suboperation kann eine unterschiedliche Ausprägung des Attributes zugeordnet sein.

3.2 - Einrichtung und Konfiguration Universal REST API

Einrichtung

Um eine sichere Verbindung zwischen den Systemen aufbauen zu können, wird der Standard OpenID Connect verwendet. In Bezug auf Microsoft Dynamics 365 Business Central lautet das Stichwort hier “Service-to-Service” Authentication (S2S): https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/automation-apis-using-s2s-authentication

Somit sind grundsätzlich Tätigkeiten in drei Ebenen nötig.

flowchart TD
    classDef Aareon_blue fill:#051163,stroke:#051163,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Bright_blue fill:#086DFB,stroke:#086DFB,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Sand        fill:#F7F3F0,stroke:#F7F3F0,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Stone       fill:#EBE3DC,stroke:#EBE3DC,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Coral       fill:#FF7F62,stroke:#FF7F62,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Peach       fill:#FFD8CA,stroke:#FFD8CA,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Green       fill:#50B214,stroke:#50B214,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Light_green fill:#B9E99C,stroke:#B9E99C,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Baby_blue   fill:#A4CBFF,stroke:#A4CBFF,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Burgundy    fill:#550000,stroke:#550000,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Dark_green  fill:#2F630E,stroke:#2F630E,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif

    E[Microsoft Entra ID]:::Coral
    RP[RELion<br>Produktiv]:::Green
    RS[RELion<br>Sandbox]:::Green
    NSTP[Business Central Dienst<br>Produktiv]:::Bright_blue
    NSTS[Business Central Dienst<br>Sandbox]:::Bright_blue

    subgraph SGE["`**Kunde - Entra-Admin**`"]
        E
    end
    class SGE Peach

    subgraph SGR["`**Kunde - Super-User**`"]
        E --> RP
        E --> RS
    end
    class SGR Light_green

    subgraph SGNST["`**Aareon RELion - Dev-Ops**`"]
        RP --> NSTP
        RS --> NSTS
    end
    class SGNST Aareon_blue
  1. Registrieren Sie in Ihrem Entra ID-Tenant muss durch Ihren Entra-Admin eine zusätzliche Unternehmensanwendung je zugreifendem Programm registriert werden.

    1. Beispiel

      1. Eine Applikation für das RELion Consulting zur Einrichtungskontrolle
      2. Eine Applikation für das DMS
      3. Eine Applikation für das Vermietungsportal
    2. Die entsprechende Anleitung zum Registrieren der Anwendung finden Sie hier: https://learn.microsoft.com/de-de/dynamics365/business-central/dev-itpro/administration/automation-apis-using-s2s-authentication#task-1-register-a-microsoft-entra-application-for-authentication-to-business-central

      1. In “Task 1” der Microsoft Dokumentation wird die Anwendung in Ihrem Entra ID Tenant registriert.
      2. Als API-Berechtigungen werden folgende Dynamics 365 Business Central Anwendungsberechtigungen benötigt
        1. API.ReadWrite.All
        2. Automation.ReadWrite.All
      3. Bitte teilen Sie uns Tenant ID, Client ID und Client Secret (zufallsgeneriertes Passwort, 40 Stellen) für die Applikation zur Einrichtungskontrolle durch das RELion Consulting über einen verschlüsselten Weg mit.
  2. Jede unter Punkt 1 angelegt Applikation muss durch Ihren RELion-Super-User jeweils in beiden Instanzen (Produktiv und Sandbox) auf der Seite Microsoft Entra-Anwendungen separat angelegt, aktiviert und berechtigt werden.

    1. Folgende Berechtigungssätze sind für die Ersteinrichtung sinnvoll.
      1. RE URA
      2. SUPER (DATA)
      3. D365 AUTOMATION
    2. Eine Einschränkung bzw. feinere Einrichtung kann und soll im Laufe der Anbindung des jeweiligen zugreifenden Programms vorgenommen werden.
    3. Bitte teilen Sie uns die grundlegende ODataV4-URL der jeweiligen Instanz mit. Sie finden diese auf der Seite Webdienst und sieht zum Beispiel so aus: https://kunde.dynamicstocloud.com:1103/ST-123456
  3. Von Seiten Aareon RELion wird die Installation der Universal REST API-Extension vorgenommen und die notwendigen Einstellungen an den beiden Instanzen (Produktiv und Sandbox) vorgenommen.

Konfiguration

Hier werden alle Einrichtungen mit deren Verhalten beschrieben. Die Obsolete Einrichtungen werden zwar in der Einrichtungsoberfläche noch angezeigt, haben aber keine Auswirkung mehr und werden hier auch nicht mehr näher beschrieben.

Es können pro Mandant verschiedene Einrichtungen vorgenommen werden. Wenn der von uns empfohlene Standard genutzt werden möchte, dann brauchen die Einstellungen nicht angepasst zu werden.

Empfehlung: In allen Mandanten die gleiche Einrichtung zu verwenden.

Code

Code – Feld, über den Wert dieses Feldes kann bei einem Request eine bestimmte Konfiguration gewählt werden. Die Konfiguration mit einem leeren Code Feld ist die Konfiguration, die als Standard zur Anwendung kommt, wenn keine Konfiguration bei einem Request enthalten ist.

Debug

Aktivert das Dugging. Folgende Einstellungen sind hier möglich:

  • Off: kein Logging von eingehenden Aufrufen und Antworten
  • Full: Logging von Aufrufe und Antworten
  • Request: nur Logging der Aufrufe
  • Response: nur Logging der Antworten

ACHTUNG: Nicht unnötg aktivieren, da hierdurch zum einem Daten und damit Speicher belegt wird und zum anderen dadurch die Performance eines Request deutlich vermindert wird.

Response Format

Es kann zwischen den Standard Formaten 0,1,2 und 9 gewählt werden. Es kann nur ein Responseformat für alle Datentypen gewählt werden. Die unterschiede zwischen den Format Typen kann der Microsoft Doku entnommen werden: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-format-property

Wir empfehlen das Format 9 zu verwenden, da es Regions und Sprachunabhängig immer Eindeutig ist. Auch wenn Microsoft es als “XML” Format bezeichnet, wird selbstverständlich ein JSON zurück geliefert. Mit XML-Format ist gemeint, dass es so formatiert wird, dass es auch in einer XML-Datei genau so formatiert ist.
Beispiel: es gibt bei Zahlen keinen Tausender Trennzeichen und das “Komma” ist immer in allen Sprachen ein “Punkt”.

Enum Possible Values

Manchmal benötigt ein System, die Information, welche Options/Enum-Werte möglich sind bei einem Feld. Wird dies Einstellung auf true gesetzt, so wird das Response Object immer so erweitert, das zu einem Enum/Option auch die dazu gehörigen Möglichkeiten geliefert werden.


Empfehlung: Diese Einstellung nur in der Entwicklung auf true lassen. Eventuel ein Setup “DEV” anlegen, wo dieser Wert auch true ist. Ansonsten werden hier sonst unnötige Datenmengen im Trafik erzeugt werden.

Number of Entities To Read

Gibt die maximale Anzahl an Datensätzen an, die in einem request übertragen werden sollen. Dieser Wert kann im Request über den “top” Parameter übersteuert werden.

Field Name Replace From/To Char

Mit diesen beiden Werten kann ein allgemeines Suchen und Ersetzen im Feldnamen umgesetzt werden. Wenn also Als Beispiel die Leerzeichen durch ein Unterstrich im Feldnamen ersetzt ode rganz entfernt werden sollen.

3.3 - GUI-Tool

Anleitung zum GUI-Tool für die Universal REST API-Schnittstelle.

Übersicht

Dieses PowerShell-Skript stellt eine grafische Benutzeroberfläche (GUI) zur Verfügung, um das Erstellen von JSON-Anfragen für die Universal REST API zu erleichtern. Es ist darauf ausgelegt, Systemadministratoren und Entwicklern durch interaktive GUI-Elemente den Prozess des korrekten Aufbaus einer Anfrage zu führen.

GUI-Komponenten

Server-Informationen

  • RELion Server: Geben Sie hier die Adresse des RELion-Servers ein. Dieser kann in apiConfig.json im Parameter server gespeichert werden.
  • RELion API Service: Geben Sie den spezifischen Dienstnamen für den RELion-Server ein. Dieser kann in apiConfig.json im Parameter service gespeichert werden.
  • Service Protokoll: Wählen Sie https, um eine sichere Datenübertragung zu gewährleisten. Dieser kann in apiConfig.json im Parameter protocol gespeichert werden.
  • Zertifikat Prüfung: Aktivieren Sie dieses Kästchen, um die Zertifikatüberprüfung für zusätzliche Sicherheit zu aktivieren. Dieser kann in apiConfig.json im Parameter checkCert gespeichert werden.
  • Mandant GUID: Geben Sie hier die GUID des Mandanten zur Identifizierung ein oder verwenden Sie den ⭮-Button um die vorhandenen Mandanten per WebService einzulesen und danach einen auszuwählen. Die GUID kann in apiConfig.json im Parameter companyGuid gespeichert werden.

Zugangsdaten

  • Credentials: Wählen Sie über dieses Dropdown-Menü die Authentifizierungsmethode aus, die am RELion-Dienst eingerichtet ist.
    • Windows: Steht für RELion ONE nicht zur Verfügung.
    • User & Password
      • Benutzer: Geben Sie den Benutzernamen ein. Dieser kann in apiConfig.json im Parameter user gespeichert werden.
      • Passwort: Geben Sie das Passwort ein. Dieses kann nicht in apiConfig.json gespeichert werden.
    • OAuth 2.0
      • Tenant-Id: Die eindeutige Kennung Ihres Microsoft-Tenants muss hier eingegeben werden. Diese kann in apiConfig.json im Parameter tenant gespeichert werden.
      • Client-Id: Geben Sie die Anwendungsidentifikation ein. Diese kann in apiConfig.json im Parameter app gespeichert werden.
      • Client-Secret: Geben Sie das Anwendungsgeheimnis ein. Dieses kann nicht in apiConfig.json gespeichert werden.

URA-Kopfdaten

  • RELion Tabelle: Wählen Sie die gewünschte Tabelle anhand ihres internen (englischen) Namens aus. Sie können in dem Feld auch schreiben und per Pfeil-runter-Taste die Tabelle auswählen.
  • Operation: Wählen Sie die Art der Operation, wie zum Beispiel READ, aus diesem Dropdown-Menü. Weitere Informationen zu den einzelnen Optionen entnehmen Sie bitte der Dokumentation zur Universal REST API.

URA-Suboperationen

  • Feld hinzufügen: Ein neues Feld zur Anfrage hinzufügen.
  • Typ ergänzen: Zeigt den Datentyp und ggf. die Optionen zu den hinzugefügten Felder an.
  • Operation hinzufügen: Eine neue Operation in die Anfrage einfügen.
  • Antwortfeld hinzufügen: Ein neues Antwortfeld für die Anfrage hinzufügen.
  • Body erstellen: Den JSON-Body für die Anfrage konstruieren.
  • Senden: Die Anfrage an den Server senden.
  • Alles Zurücksetzen: Alle Felder und Auswahlmöglichkeiten im Bereich der uRA-Suboperationen auf den Standardzustand zurücksetzen.

Bedienprozess

flowchart TD
    classDef Aareon_blue fill:#051163,stroke:#051163,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Bright_blue fill:#086DFB,stroke:#086DFB,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Sand        fill:#F7F3F0,stroke:#F7F3F0,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Stone       fill:#EBE3DC,stroke:#EBE3DC,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Coral       fill:#FF7F62,stroke:#FF7F62,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Peach       fill:#FFD8CA,stroke:#FFD8CA,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Green       fill:#50B214,stroke:#50B214,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Light_green fill:#B9E99C,stroke:#B9E99C,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Baby_blue   fill:#A4CBFF,stroke:#A4CBFF,color:#081326,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Burgundy    fill:#550000,stroke:#550000,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif
    classDef Dark_green  fill:#2F630E,stroke:#2F630E,color:#FFFFFF,font-family:Segoe UI, Arial, Helvetica,sans-serif

    %% linkStyle default color:#ffffff

    A["Skript (neu) starten"]:::Aareon_blue
    B["Server-Informationen erfassen"]:::Aareon_blue
    C["Zugangsdaten erfassen"]:::Aareon_blue
    D1["Mandanten einlesen und auswählen"]:::Aareon_blue
    D2["Mandanten-Guid erfassen"]:::Aareon_blue
    E["Tabelle und Operation auswählen"]:::Bright_blue
    F1["Benötigte Anzahl Felder hinzufügen"]:::Stone
    F2{"Alle Felder definiert?"}:::Stone
    F3["Feld auswählen"]:::Stone
    F4["Falls Filterfeld, entsprechend markieren"]:::Stone
    F5["Wert angeben"]:::Stone
    G1["Operation hinzufügen"]:::Stone
    G2["Operation 'DONE' auswählen"]:::Stone
    H["Reiter 'Antwortfelder' auswählen"]:::Sand
    I1["Benötigte Anzahl Antwortfelder hinzufügen"]:::Sand
    I2{"Alle Antwortfelder definiert?"}:::Sand
    I3["Antwortfeld auswählen"]:::Sand
    J["Reiter 'Body' auswählen"]:::Coral
    K["Body erstellen"]:::Coral
    L["Reiter 'Result' auswählen"]:::Peach
    M["Senden"]:::Peach

    A --> B
    B --> C
    C --> D1
    C --> D2
    D1 --> E
    D2 --> E
    E --> F1
    F1 --> F2
    F2 -->|"Nein"| F3
    F3 --> F4
    F4 --> F5
    F5 --> F2
    F2 -->|"Ja"| G1
    G1 --> G2
    G2 --> H
    H --> I1
    I1 --> I2
    I2 -->|"Nein"| I3
    I3 --> I2
    I2 -->|"Ja"| J
    J --> K
    K --> L
    L --> M

Versionsgeschichte und Änderungsprotokoll

v1.0.1.3 (Vorab-Version)

  • Erhöhung der Parse-Tiefe in der JSON-Verarbeitung, um die möglichen Optionswerte zu unterstützen
  • Umbau auf Auswahl der Authentifizierungsmethode per ComboBox
  • Hinzufügen der Unterstützung von OAuth 2.0
  • Added RENAME-operation

v1.0.1.0

  • Umstellung auf vollständig dynamische Parameter bei Invoke-RestMethod. Dadurch auch abwärtskompatible Verwendung von -AllowUnencryptedAuthentication.
  • Leeren der Ergebnisbox bei erfolgreichem Aufrufen des Mandanten- bzw. Feld-WebService
  • Speicherung der per WebService erhaltenen Feld-Informationen. Dazu werden die im Tool ausgelieferten Informationen mit den neu erhaltenen überschrieben und in einer neuen Datei abgespeichert.
  • Mandantennamen werden anstelle leerer Mandanten-Anzeigenamen verwendet.

v1.0.0.0

  • Erstveröffentlichung mit vollständiger Funktionalität für das Erstellen von JSON-Anfragebodies über die GUI.

Hinweis

Dieses Dokument wird aktualisiert, sobald neue Funktionen hinzugefügt oder Änderungen am Skript vorgenommen werden.

3.4 - Beispiele

Beispiele für die Universal REST API-Schnittstelle.

Einfache Beispiele

Lesen

Kreditor lesen

REQUEST

{
   "tableNo": "23",
   "operation": "READ",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "1",
         "filter": true,
         "value": "*"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|2"
      }
   ]
}

RESPONSE (Auszug)

{
    "Data": [
        {
            "No.": "700001",
            "Name": "Hausmeisterei"
        },
        {
            "No.": "700002",
            "Name": "Tischlerei Markus Wratschko e.U."
        },
        {
            "No.": "700003",
            "Name": "Gemeinde St. Georgen am Kreischberg"
        },
        ...
    ]
}

Schreiben

Einkaufsrechnung schreiben

REQUEST

{
   "tableNo":  "38",
   "operation":  "INSERT",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "validate":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "2",
         "validate":  true,
         "value":  "700001"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "2|3"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "Buy-from Vendor No.": "700001",
            "No.": "10R20-00013"
        }
    ]
}

Aktualisieren

In diesem Beispiel wird das Update der in obigem Beispiel übermittelten Einkaufsrechnung dargestellt. Das kann zum Beispiel interessant sein, wenn die Rechnung erneut an RELion übermitteln werden soll.

Dazu werden zwei Arten von Felder übergeben: Filter-Felder (filter = true) und Schreib-Felder (validate = true/false).

Wichtig ist dabei, dass genügend Filter-Felder angegeben werden, um den zu aktualisierenden Datensatz eindeutig zu identifizieren. Hierzu empfiehlt sich die Angabe aller Primärschlüsselfelder.

REQUEST

{
   "tableNo":  "38",
   "operation":  "UPDATE",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "3",
         "filter":  true,
         "value":  "10R20-00013"
      },
      {
         "fieldNo":  "99",
         "validate":  true,
         "value":  "2024-02-28"
      },
      {
         "fieldNo":  "24",
         "validate":  true,
         "value":  "2024-03-10"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "3|24|99"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "No.": "10R20-00013",
            "Due Date": "2024-03-10",
            "Document Date": "2024-02-28"
        }
    ]
}

Umbenennen

Verteilungscode ändern

REQUEST

{
  "tableNo": "5052255",
  "operation": "RENAME",
  "runTrigger": true,
  "setupCode": "",
  "entitySet": [
    {
      "fieldNo": "1",
      "filter": true,
      "value": "2"
    },
    {
      "fieldNo": "2",
      "filter": true,
      "value": "140701"
    },
    {
      "fieldNo": "3",
      "filter": true,
      "value": "0-QM-NFL"
    },
    {
      "fieldNo": "1",
      "validate": true,
      "value": "2"
    },
    {
      "fieldNo": "2",
      "validate": true,
      "value": "140701"
    },
    {
      "fieldNo": "3",
      "validate": true,
      "value": "0-QM-NF"
    },
    {
      "subOperation": "DONE",
      "responseFields": ""
    }
  ]
}

RESPONSE

{
    "Data": [
        {
            "Owner / Tenant": "2",
            "Object No.": "140701",
            "Allocation code": "0-QM-NF",
            "Description": "m² Nutzfläche",
            "Description on accounting": "0",
            "Total factor": "532.92",
            "Absolute factor": "false",
            "Extrapolation": "0",
            "Sum lower units/objects": "0",
            "Automatically determined": "false",
            "Fixed date": "2021-01-19",
            "$systemId": "{712E0A5F-D86B-EB11-B843-005056958D1C}",
            "SystemCreatedAt": "",
            "SystemCreatedBy": "{00000000-0000-0000-0000-000000000000}",
            "SystemModifiedAt": "2024-09-27T09:17:21.748Z",
            "SystemModifiedBy": "{7682B4AA-F082-4DCA-802D-E36C1455D4C5}"
        }
    ]
}

Löschen

Einkaufsrechnung löschen

REQUEST

{
   "tableNo":  "38",
   "operation":  "DELETE",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "3",
         "filter":  true,
         "value":  "10R20-00013"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "3"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "No.": "10R20-00013",
            "Due Date": "2024-03-10",
            "Document Date": "2024-02-28"
        }
    ]
}

Letzte Zeile lesen

Kreditor lesen

REQUEST

{
   "tableNo": "23",
   "operation": "READLAST",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "1",
         "filter": true,
         "value": "*"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|2"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "No.": "WEG14581",
            "Name": "WEG St. Georgen ob Murau Bau 12"
        }
    ]
}

Fortgeschrittene Beispiele

Schreiben von Bemerkungszeilen

In diesem Beispiel werden zusätzliche Einkaufsrechnungszeilen angelegt, die nur Bemerkungszwecken dienen.

Feldnummer Feldbezeichnung Optionswert
1 Belegart Rechnung = 2
3 Belegnr.
4 Zeilennr.
11 Beschreibung

REQUEST

{
   "tableNo":  "39",
   "operation":  "INSERT",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "validate":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "3",
         "validate":  true,
         "value":  "10R20-00013"
      },
      {
         "fieldNo":  "4",
         "validate":  true,
         "value":  "30000"
      },
      {
         "fieldNo":  "11",
         "validate":  true,
         "value":  "Bemerkungstext"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|3|4|11"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "Document Type":  "2",
         "Document No.":  "10R20-00013",
         "Line No.":  "30000",
         "Description":  "Bemerkungstext"
      }
   ]
}

Mehrere Sub-Operationen

Einkaufsrechnungskopf

In diesem Beispiel wird ein Einkaufsrechnungskopf (Purchase Header, 38) angelegt und direkt anschließend mit Beleg- und Fälligkeitsdatum aktualisiert. Durch die besondere Natur der BC-Standard-Programmierung ist dieser Zugang beim Einkaufsrechnungskopf notwendig.

Feldnummer Feldbezeichnung Optionswert
1 Belegart Rechnung = 2
2 Kreditorennr.
3 Belegnr.
24 Fälligkeitsdatum
99 Belegdatum

REQUEST

{
   "tableNo":  "38",
   "operation":  "INSERT",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "validate":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "2",
         "validate":  true,
         "value":  "700001"
      },
      {
         "subOperation":  "INSERT",
         "responseFields":  ""
      },
      {
         "fieldNo":  "99",
         "validate":  true,
         "value":  "2024-02-28"
      },
      {
         "fieldNo":  "24",
         "validate":  true,
         "value":  "2024-03-10"
      },
      {
         "subOperation":  "UPDATE_RESPONSE",
         "responseFields":  "3|24|99"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "No.":  "RG24-0015632",
         "Due Date":  "2024-03-10",
         "Document Date":  "2024-02-28"
      }
   ]
}

Einkaufsrechnungszeilen

In diesem Beispiel werden mehrere Einkaufsrechnungszeilen (Purchase Line, 39) angelegt. Durch die gemeinsame Übertragung werden entweder alle Datensätze angenommen oder bei einem Fehler gar keiner. Zu beachten ist, dass trotz INSERT_RESPONSE bei der ersten Suboperation nur die Antwort der letzten Suboperation zurückgegeben wird. Somit hat es keine Auswirkung, wenn statt INSERT_RESPONSE “nur” INSERT verwendet wird.

Feldnummer Feldbezeichnung Optionswert
1 Belegart Rechnung = 2
3 Belegnr.
4 Zeilennr.
5052250 Eigentümer / Mieter Mieter = 2
5052251 Objektnr.
5052254 Objektkonto Nr.
15 Menge
22 EK-Preis

REQUEST

{
   "tableNo": "39",
   "operation": "INSERT",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "1",
         "validate": true,
         "value": "2"
      },
      {
         "fieldNo": "3",
         "validate": true,
         "value": "RG24-0015632"
      },
      {
         "fieldNo": "4",
         "validate": true,
         "value": "10000"
      },
      {
         "fieldNo": "5052250",
         "validate": true,
         "value": "2"
      },
      {
         "fieldNo": "5052251",
         "validate": true,
         "value": "140701"
      },
      {
         "fieldNo": "5052254",
         "validate": true,
         "value": "4410207"
      },
      {
         "fieldNo": "15",
         "validate": true,
         "value": "1"
      },
      {
         "fieldNo": "22",
         "validate": true,
         "value": "100"
      },
      {
         "subOperation": "INSERT_RESPONSE",
         "responseFields": "1|3|4|5052250|5052251|5052254|15|22"
      },
      {
         "fieldNo": "1",
         "validate": true,
         "value": "2"
      },
      {
         "fieldNo": "3",
         "validate": true,
         "value": "RG24-0015632"
      },
      {
         "fieldNo": "4",
         "validate": true,
         "value": "20000"
      },
      {
         "fieldNo": "5052250",
         "validate": true,
         "value": "2"
      },
      {
         "fieldNo": "5052251",
         "validate": true,
         "value": "140701"
      },
      {
         "fieldNo": "5052254",
         "validate": true,
         "value": "4410215"
      },
      {
         "fieldNo": "15",
         "validate": true,
         "value": "1"
      },
      {
         "fieldNo": "22",
         "validate": true,
         "value": "400"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|3|4|5052250|5052251|5052254|15|22"
      }
   ]
}

RESPONSE

{
  "Data": [
    {
      "Document Type": "2",
      "Document No.": "RG24-0015632",
      "Line No.": "20000",
      "Quantity": "1",
      "Direct Unit Cost": "400",
      "RelC Owner/Tenant": "2",
      "RelC Object No.": "140701",
      "RelC Object Account No.": "4410215"
    }
  ]
}

Beschränkte Anzahl an Rückgabezeilen

Aus technischen Gründen wird die Anzahl an Datensätzen, die von der Universal Rest API zurückgegeben werden, limitiert. In Fällen, wo die benötigte Anzahl größer ist als das Limit sind somit folgende Eingriffe nötig und möglich.

Pagination

In allen Tabellen lässt sich über die Parameter top und skip ein seitenweises Lesen (Pagination) erreichen.

  • top gibt dabei die Anzahl an (falls vorhanden) zurückzugebenden Datensätzen dar
  • skip gibt an, wie viele Datensätze davor übersprungen werden sollen

D.h. in untenstehendem Beispiel werden zuerst 6 Datensätze übersprungen und dann die nächsten 3 zurückgegeben.

Feldnummer Feldbezeichnung Optionswert
1 Lfd. Nr.
3 Sachkontonr.
4 Buchungsdt.

REQUEST

{
   "tableNo":  "17",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "top": "3",
   "skip": "6",
   "entitySet":  [
      {
         "subOperation":  "DONE",
         "responseFields":  "1|3|4"
      }
   ]
}

WebService-Response (Auszug)

{
    ...
    "skip": 6,
    "top": 3,
    "entitySet": [
        {
            ...
            "totalCount": 24447,
            "skippedRows": 6,
            "moreRows": true,
            "countOfReturnRows": 3,
            "ResponseJson2": ...
        }
    ]
}

WebService-Response sind folgende Parameter in diesem Zusammenhang interessant:

  • totalCount gibt die Anzahl der insgesamt dem Filter entsprechenden Datensätze zurück. Dieser Wert ist von den Request-Parametern skip und top unabhängig.
  • skippedRows gibt die tatsächlich übersprungene Anzahl an Datensätzen zurück und entspricht somit dem kleineren folgender Werte: skip, totalCount
  • countOfReturnRows gibt die tatsächliche Anzahl an zurückgegebenen Datensätzen an und bewegt sich somit zwischen 0 und top.
  • moreRows ermöglicht eine einfache Schleifenbedingung für die Abfragen und gibt die Werte true oder false zurück.

RESPONSE (Auszug)

{
    "Data": [
        {
            "Entry No.": "7",
            "G/L Account No.": "80600501",
            "Posting Date": "2019-01-01"
        },
        {
            "Entry No.": "8",
            "G/L Account No.": "190016",
            "Posting Date": "2019-01-01"
        },
        {
            "Entry No.": "9",
            "G/L Account No.": "1420",
            "Posting Date": "2019-01-01"
        }
    ]
}

Wiederholtes Lesen mit verändertem Filter auf dem Primärschlüssel-Feld

Welches Feld bzw. welche Felder je Tabelle den Primärschlüssel bilden, können Sie in der Seitenüberprüfung (Strg+Alt+F1) sehen.

In der Antwort der Universal REST API werden auf der selben Ebene wie das ResponseJson2 noch die Felder numberOfRows und moreRows zurückgegeben.

  • numberOfRows gibt die Anzahl an Datensätzen an, die insgesamt gefunden wurden. In untenstehendem Beispiel wird sie also bei jedem Aufruf kleiner.
  • moreRows gibt einen boolschen Wert zurück, der anzeigt, ob noch mehr Datensätze vorhanden sind, die aufgrund des Limits nicht übertragen wurden.

Ein Beispiel für das Lesen der Sachkonten, würde wie folgt aussehen:

1. REQUEST

{
   "tableNo":  "15",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  ">0"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|2|4"
      }
   ]
}

1. RESPONSE (Auszug)

{
   "Data": [
      {
      "No.": "000-",
      "Name": "Anlagevermögen",
      "Account Type": "3"
      },

      ...

      {
      "No.": "08100",
      "Name": "Ausleihungen an verbundene Unternehmen",
      "Account Type": "0"
      }
   ]
}

Nun muss auf Basis des zuletzt zurückgegebenen Primärschlüssels der nächste Request aufgebaut werden.

2. REQUEST

{
   "tableNo":  "15",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  ">08100"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|2|4"
      }
   ]
}

2. RESPONSE (Auszug)

{
   "Data": [
      {
      "No.": "08130",
      "Name": "Ausleihungen an verbundene UN, PersG",
      "Account Type": "0"
      },

      ...

      {
      "No.": "12960",
      "Name": "WB Forderg.gg.UN m.Beteiligg.verh. b.1J",
      "Account Type": "0"
      }
   ]
}

Das Ganze muss wiederholt werden, bis das Feld moreRows den Wert false zurückgibt.

3. REQUEST

{
   "tableNo":  "15",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  ">12960"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|2|4"
      }
   ]
}

usw.

Maximalanzahl der zu übertragenden Datensätze in der uRA-Einrichtung erhöhen

Dies stellt eine grundsätzliche Möglichkeit dar. Allerdings ist zu beachten, dass bei einer zu großen Anzahl an Datensätzen, die Anfrage an die Universal Rest API in ein Timeout laufen wird. Daher stellt dies die schlechteste Möglichkeit dar und ist hier nur mehr der Vollständigkeit halber erwähnt.

Filterung nach Änderungsdatum

Eine Abfrage aller RELion-Objekte mit Änderungen seit 01.03.2023 würde wie folgt aussehen.

Zu beachten ist, dass die Datumsformatierung standardmäßig auf XML-Format eingestellt ist. Diese ist im Sinne einer Systemkompatibilität klar zu bevorzugen, kann aber in der Universal Rest API Settings je Mandant und Einrichtungscode geändert werden.

Feldnummer Feldbezeichnung Optionswert
1 Eigentümer / Mieter Eigentümer = 1
Mieter = 2
2 Objektnr.
2000000003 Geändert am

REQUEST

{
   "tableNo":  "5052250",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "2000000003",
         "filter":  true,
         "value":  ">2023-03-01T00:00:00Z"
      },
      {
         "subOperation":  "READ",
         "responseFields":  "1|2|2000000003"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "Owner / Tenant": "1",
            "No.": "416502",
            "SystemModifiedAt": "2023-10-09T14:20:40.247Z"
        },
        {
            "Owner / Tenant": "2",
            "No.": "416501",
            "SystemModifiedAt": "2023-10-09T14:20:41.427Z"
        }
    ]
}

Links und Notizen werden in der Tabelle 2000000068 abgelegt.

Für die folgenden Beispiele werden verwendet:

Feldnummer Feldbezeichnung Optionswert
1 Link ID
2 Record ID
3 URL
7 Beschreibung
10 Erstellt
11 Benutzer ID
12 Mandant
8 Typ
9 Notiz

Das folgende Beispiel zeigt das Hinzufügen eines Links zu einem Einkaufsrechnungskopf. Zu beachten ist dabei vor allem die korrekte Angabe im Feld Record ID. Diese besteht aus dem Tabellennamen und allen Primärschlüsselfeldern des Datensatzes, dem der Link hinzugefügt werden soll.

REQUEST

{
   "tableNo": "2000000068",
   "operation": "INSERT",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "2",
         "validate": true,
         "value": "Purchase Header: Invoice,ER1802820"
      },
      {
         "fieldNo": "3",
         "validate": true,
         "value": "http://www.aareon.com"
      },
      {
         "fieldNo": "7",
         "validate": true,
         "value": "URL"
      },
      {
         "fieldNo":  "10",
         "validate":  true,
         "value":  "2024-02-29 11:00:00"
      },
      {
         "fieldNo":  "11",
         "validate":  true,
         "value":  "AAREON\\HIEDEN"
      },
      {
         "fieldNo": "12",
         "validate": true,
         "value": "10_Mietverwaltung"
      },
      {
         "subOperation": "DONE"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "Link ID":  "21782",
         "Record ID":  "Purchase Header: 2,ER1802820",
         "URL1":  "http://www.aareon.com",
         "Description":  "URL",
         "Type":  "0",
         "Note":  " ",
         "Created":  "29.02.24 11:00",
         "User ID":  "AAREON\\HIEDEN",
         "Company":  "10_Mietverwaltung",
         "Notify":  "0",
         "To User ID":  "",
         "$systemId":  "01D1865D-C7D7-EE11-AD31-00505699FC69",
         "SystemCreatedAt":  "29.02.24 11:00",
         "SystemCreatedBy":  "7FEAA26B-6F07-4EF6-9BDA-6537D587E5C3",
         "SystemModifiedAt":  "29.02.24 11:00",
         "SystemModifiedBy":  "7FEAA26B-6F07-4EF6-9BDA-6537D587E5C3"
      }
   ]
}

Schreiben von Notizen

In diesem Beispiel wird eine Notiz der selben Einkaufsrechnung hinzugefügt.

REQUEST

{
   "tableNo": "2000000068",
   "operation": "INSERT",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "2",
         "validate": true,
         "value": "Purchase Header: Invoice,ER1802820"
      },
      {
         "fieldNo": "8",
         "validate": true,
         "value": "1"
      },
      {
         "fieldNo": "9",
         "validate": true,
         "value": "MURpZXNlIE5vdGl6IHd1cmRlIHBlciB1bml2ZXJzYWwgUmVzdCBBUEkgZXJ6ZXVndC4="
      },
      {
         "fieldNo":  "10",
         "validate":  true,
         "value":  "2024-02-29 11:00:00"
      },
      {
         "fieldNo":  "11",
         "validate":  true,
         "value":  "AAREON\\HIEDEN"
      },
      {
         "fieldNo": "12",
         "validate": true,
         "value": "10_Mietverwaltung"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|2|3|7|8|9"
      }
   ]
}

RESPONSE

{
    "Data": [
        {
            "Link ID": "9288",
            "Record ID": "Purchase Header: 2,ER1802820",
            "URL1": "",
            "Description": "",
            "Type": "1",
            "Note": "MURpZXNlIE5vdGl6IHd1cmRlIHBlciB1bml2ZXJzYWwgUmVzdCBBUEkgZXJ6ZXVndC4="
        }
    ]
}

In diesem Beispiel wird das Ziel des RecordLinks geändert. Hierzu muss nicht mehr die Record ID angegeben werden, sondern es reicht, die einfacher zu verwendende Link ID zu übermitteln, die wir beim Hinzufügen erhalten haben.

REQUEST

{
   "tableNo":  "2000000068",
   "operation":  "UPDATE",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "21782"
      },
      {
         "fieldNo":  "3",
         "validate":  true,
         "value":  "http://www.relion.de"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|2|3"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "Link ID":  "21782",
         "Record ID":  "Purchase Header: 2,ER1802820",
         "URL1":  "http://www.relion.de"
      }
   ]
}

In diesem Beispiel werden die RecordLinks (Links & Notizen) einer Einkaufsrechnung gelesen.

REQUEST

{
   "tableNo": "2000000068",
   "operation": "READ",
   "runTrigger": true,
   "setupCode": "",
   "entitySet": [
      {
         "fieldNo": "2",
         "filter": true,
         "value": "Purchase Header: Invoice,ER1802820"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|2|3|7|8|9"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "Link ID":  "21782",
         "Record ID":  "Purchase Header: 2,ER1802820",
         "URL1":  "http://www.relion.de",
         "Description":  "URL",
         "Type": "0",
         "Note": ""
      }
   ]
}

Dimensionen

Lesen von Dimensionswerten

In diesem Beispiel werden die Dimensionswerte auf den Sachposten ausgelesen.

Feldnummer Feldbezeichnung Optionswert
1 Lfd. Nr.
3 Sachkontonr.
17 Betrag
23 Globaler Dimensionscode 1
24 Globaler Dimensionscode 2
481 Shortcutdimensionscode 3
482 Shortcutdimensionscode 4
483 Shortcutdimensionscode 5
484 Shortcutdimensionscode 6
485 Shortcutdimensionscode 7
486 Shortcutdimensionscode 8

REQUEST

{
   "tableNo":  "17",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "24",
         "filter":  true,
         "value":  "WEG SCHW."
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|3|17|23|24|481|482|483|484|485|486"
      }
   ]
}

RESPONSE (Auszug)

{
  "Data": [
      {
         "Entry No.": "2559",
         "G/L Account No.": "608076",
         "Amount": "-50",
         "Global Dimension 1 Code": "OBJ001",
         "Global Dimension 2 Code": "WEG SCHW.",
         "Shortcut Dimension 3 Code": "",
         "Shortcut Dimension 4 Code": "",
         "Shortcut Dimension 5 Code": "",
         "Shortcut Dimension 6 Code": "",
         "Shortcut Dimension 7 Code": "",
         "Shortcut Dimension 8 Code": ""
      },
      {
         "Entry No.": "2560",
         "G/L Account No.": "200010",
         "Amount": "50",
         "Global Dimension 1 Code": "OBJ001",
         "Global Dimension 2 Code": "WEG SCHW.",
         "Shortcut Dimension 3 Code": "",
         "Shortcut Dimension 4 Code": "",
         "Shortcut Dimension 5 Code": "",
         "Shortcut Dimension 6 Code": "",
         "Shortcut Dimension 7 Code": "",
         "Shortcut Dimension 8 Code": ""
      },
      ...
   ]
}

Auslesen möglicher Dimensionswerte

In diesem Beispiel werden die möglichen Dimensionswerte für die Dimension ABTEILUNG ausgelesen.

Feldnummer Feldbezeichnung Optionswert
1 Dimensionscode
2 Code
3 Name
4 Dimensionswertart Standard = 0
6 Gesperrt Nein = 0

REQUEST

{
   "tableNo":  "349",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "ABTEILUNG"
      },
      {
         "fieldNo":  "4",
         "filter":  true,
         "value":  "0"
      },
      {
         "fieldNo":  "6",
         "filter":  true,
         "value":  "0"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "1|2|3"
      }
   ]
}

RESPONSE (Auszug)

{
   "Data":  [
      {
         "Dimension Code":  "ABTEILUNG",
         "Code":  "100",
         "Name":  "Bau allgemein"
      },
      {
         "Dimension Code":  "ABTEILUNG",
         "Code":  "110",
         "Name":  "Planung"
      },
      {
         "Dimension Code":  "ABTEILUNG",
         "Code":  "120",
         "Name":  "Bauleitung"
      },

      ...
   ]
}

Dimensionswert schreiben

In diesem Beispiel wird der Dimensionswert für die Dimension ABTEILUNG in einer Einkaufsrechnungszeile aktualisiert.

Feldnummer Feldbezeichnung Optionswert
1 Belegart Rechnung = 2
3 Belegnr.
4 Zeilennr.
480 Dimensionssatz-ID

REQUEST

{
   "tableNo":  "39",
   "operation":  "UPDATE",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "2"
      },
      {
         "fieldNo":  "3",
         "filter":  true,
         "value":  "R22-05048"
      },
      {
         "fieldNo":  "4",
         "filter":  true,
         "value":  "10000"
      },
      {
         "fieldNo":  "480",
         "dimensionSetId":  true,
         "dimensionSetIdMutation": "1"
      },
      {
         "dimension":  true,
         "dimensionCode":  "ABTEILUNG",
         "value":  "100"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "3|480"
      }
   ]
}

RESPONSE

{
   "Data":  [
      {
         "Document No.":  "R22-05048",
         "Dimension Set ID":  "22481"
      }
   ]
}

Tabellen- und Feldinformationen

Über die Universal Rest API ist es auch möglich, die Tabellen und Feldinformationen aus den System-Tabellen AllObjWithCaption und Field auszulesen.

Tabelleninformationen

Die System-Tabelle AllObjWithCaption beinhaltet Informationen zu allen in der Business Central-Instanz vorhandenen Programmobjekte (Tabellen, Seiten, Berichte, …). Für die Arbeit mit der Universal Rest API sind für allem die Informationen zu den vorhandenen Tabellen relevant.

Feldnummer Feldbezeichnung Optionswert
1 Objekttyp Tabelle = 1
3 Objekt-ID
4 Objektname

REQUEST

{
   "tableNo":  "2000000058",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "1"
      },
      {
         "subOperation":  "DONE",
         "responseFields":  "3|4"
      }
   ]
}

RESPONSE (Auszug)

{
   "Data": [
      {
         "Object ID":  "3",
         "Object Name":  "Payment Terms"
      },
      {
         "Object ID":  "4",
         "Object Name":  "Currency"
      },
      {
         "Object ID":  "5",
         "Object Name":  "Finance Charge Terms"
      },
      ...
   ]
}

Feldinformationen

Die System-Tabelle Field beinhaltet Informationen zu allen in der Business Central-Instanz vorhandenen Tabellenfeldern.

Feldnummer Feldbezeichnung Optionswert
1 TableNo Tabelle = 1
2 Nr.
3 TableName
4 FieldName
5 Typ
6 Länge
7 Klasse
8 Aktiviert Ja = 1
9 Typname
20 Feldbezeichnung
23 SQLDataType
24 OptionString
28 IsPartOfPrimaryKey

REQUEST

{
   "tableNo":  "2000000041",
   "operation":  "READ",
   "runTrigger":  true,
   "setupCode":  "",
   "entitySet":  [
      {
         "fieldNo":  "1",
         "filter":  true,
         "value":  "5052250"
      },
      {
         "fieldNo":  "8",
         "filter":  true,
         "value":  "1"
      },
      {
         "subOperation": "DONE",
         "responseFields": "1|2|3|4|5|6|7|9|20|23|24|28"
      }
   ]
}

RESPONSE (Auszug)

{
   "Data":  [
      {
         "TableNo":  "5052250",
         "No.":  "1",
         "TableName":  "RelC Object",
         "FieldName":  "Owner / Tenant",
         "Type":  "35583",
         "Len":  "4",
         "Class":  "0",
         "Type Name":  "Option",
         "Field Caption":  "Owner / Tenant",
         "SQLDataType":  "0",
         "OptionString":  "None,Owner,Tenant",
         "IsPartOfPrimaryKey":  "true"
      },
      {
         "TableNo":  "5052250",
         "No.":  "2",
         "TableName":  "RelC Object",
         "FieldName":  "No.",
         "Type":  "31489",
         "Len":  "20",
         "Class":  "0",
         "Type Name":  "Code20",
         "Field Caption":  "No.",
         "SQLDataType":  "0",
         "OptionString":  "",
         "IsPartOfPrimaryKey":  "true"
      },
      ...
   ]
}

3.5 -