Benutzerdefinierte Datenspeicher
Die Partner-Nachrichtenwarteschlange ist ein REST-Endpunkt, der zum Hochladen von benutzerdefinierten XML- oder JSON-Datenspeichern verwendet wird, die vom COSMO Data Integration Framework verarbeitet werden sollen. Dies wird durch das Erstellen von Empfangenen Partner-Nachrichten in einem zweistufigen Prozess erreicht:
- Erstellen eines Nachrichtenwarteschlangenpostens basierend auf der Datenspeicherart.
- Senden der Datenspeicherdaten, um eine empfangene Nachricht des Partners zu erstellen und den Nachrichtenwarteschlangenposten zu löschen.
Erstellen eines Nachrichtenwarteschlangenpostens
Um einen Posten in der Nachrichtenwarteschlange zu erstellen, müssen Sie die folgenden grundlegenden Informationen angeben: Art (type), Absender (sender) und Mapping.
Request
POST <bc-service-odata-url>/api/cosmoconsult/dataintegrationframework/v1.0/companies(<company-id>)/messages
Header: {
"Content-Type": "application/json"
}
Body: {
"sender": "<sender-code>",
"mapping": "<(received-)mapping-code>",
"type": "<repository-type>"
}
Dies sind die möglichen Typen:
- XmlRepository: Laden Sie im nächsten Schritt nur XML-Dateiinhalte als Mapping-Datenspeicher hoch.
- JsonRepository: Laden Sie im nächsten Schritt nur JSON-Dateiinhalte als Mapping-Datenspeicher hoch.
Es ist auch möglich, den Typ Message zu verwenden, dies wird jedoch nicht empfohlen, da zusätzliche Ausführungsschritte erforderlich sind und dies nur intern verwendet wird.
Der Sender sollte ein eindeutiger Partnercode [20] aus Ihrer externen Anwendung sein, der das richtige Partner-Mapping zur Ausführung der empfangenen Nachricht identifiziert. Das Mapping sollte ein Code [20] sein und wird als Empfangener Mappingcode-Filter zusammen mit dem Partnercode (Absender) verwendet, um das Partner-Mapping zu identifizieren, welches ausgeführt werden muss. Für die Typen XmlRepository und JsonRepository sind die Felder Sender und Mapping zwingend erforderlich.
Response
Die Antwort enthält die ID des erstellten Nachrichtenwarteschlangenpostens und weitere relevante Informationen. Sie benötigen diese ID für den nächsten Schritt.
Status: 200
Body: {
"id": "<system-id>",
...
}
Senden der Datenspeicherdaten
Um die tatsächlichen XML- oder JSON-Daten zu senden und den Prozess für die Typen XmlRepository und JsonRepository abzuschließen, ist eine zweite Anfrage erforderlich. Diese Anfrage erstellt eine Empfangene Nachricht eines Partners aus einem Nachrichtenwarteschlangenposten und löscht den Partner-Nachrichtenwarteschlangenposten.
Request
PUT <bc-service-odata-url>/api/cosmoconsult/dataintegrationframework/v1.0/companies(<company-id>)/messages(<message-system-id>)/data
Header: {
"If-Match": "*"
}
Body: <data> (the XML repository or JSON repository)
Response
Nach einer positiven Antwort mit einem Status von No Content (204) wird der entsprechende Nachrichtenwarteschlangenposten gelöscht und kann nicht mehr abgerufen werden.
Status: 204 (no content)
Löschen des Nachrichtenwarteschlangenpostens
Für die Arten XmlRepository und JsonRepository wird der Nachrichtenwarteschlangenposten automatisch gelöscht, nachdem die Daten gesendet wurden. Für den Typ Message wird der Nachrichtenwarteschlangenposten nicht automatisch gelöscht. Sie können den Nachrichtenwarteschlangenposten manuell löschen, indem Sie die folgende Anfrage verwenden:
DELETE <bc-service-odata-url>/api/cosmoconsult/dataintegrationframework/v1.0/companies(<company-id>)/messages(<message-system-id>)
Status: 204 (no content)
Beispiele
Beispiel SaaS
POST https://api.businesscentral.com/fa8bbabb-f0d6-45b9-83f9-5bfa6c036aed/production/api/cosmoconsult/dataintegrationframework/v1.0/companies(ba0f0202-e8af-42af-b2b7-226825a0bc00)/messages
"Content-Type": "application/json"
"Authentication": "Bearer ..."
{
"sender": "COMPANY A",
"mapping": "ITEM2XML",
"type": "XmlRepository"
}
Status: 200
{
"id": "65adc1d2-e7ae-47fd-bbaa-5255454c7d80"
}
PUT https://api.businesscentral.com/fa8bbabb-f0d6-45b9-83f9-5bfa6c036aed/production/api/cosmoconsult/dataintegrationframework/v1.0/companies(ba0f0202-e8af-42af-b2b7-226825a0bc00)/messages(65adc1d2-e7ae-47fd-bbaa-5255454c7d80)/data
"Content-Length": 121
"Content-Type": "application/xml"
"Authentication": "Bearer ..."
"Body": <database><items><item><number>1000</number><description>Item</description></item></items></database>
Status: 204
Beispiel OnPrem
POST http://local-container:7048/BC/api/cosmoconsult/dataintegrationframework/v1.0/companies(ba0f0202-e8af-42af-b2b7-226825a0bc00)/messages
"Content-Type": "application/json"
"Authentication": "Basic ..."
{
"sender": "COMPANY A",
"mapping": "ITEM2XML",
"type": "JsonRepository"
}
Status: 200
{
"id": "65adc1d2-e7ae-47fd-bbaa-5255454c7d80"
}
PUT https://api.businesscentral.com/fa8bbabb-f0d6-45b9-83f9-5bfa6c036aed/production/api/cosmoconsult/dataintegrationframework/v1.0/companies(ba0f0202-e8af-42af-b2b7-226825a0bc00)/messages(65adc1d2-e7ae-47fd-bbaa-5255454c7d80)/data
"Content-Length": 68
"Content-Type": "application/json"
"Authentication": "Basic ..."
"Body": { "items": [{ "no": "1000", "name": "Test" }] }
Status: 204
Tip
In diesem Szenario wird die Basisauthentifizierung für OnPrem verwendet. Erstellen Sie den Headerwert durch 'Basic: ' + Convert::ToBase64String("userid:webservicekey")
oder verwenden Sie andere Authentifizierungsmethoden.
Feedback
Senden Sie Feedback für diese Seite. (Beachten Sie, dass diese Umfrage auf Englisch ist.)