Konfiguration Anbindung WiM - Generische BiP für 3rd Systeme

WiM -> 3rd Systeme

Einführung

Es gibt die Möglichkeit generische Backend Integration Points in die Prozesse einzubinden. Um einen generischen Ansatz zu fahren wurde eine JSON - REST Schnittstellenlösung gewählt. Sollte das Zielsystem kein JSON als REST POST ermöglichen, so kann die B2BbP oder ein anderes EAI System die Transformation übernehmen. So ist zum Beispiel als Use Case ein Aufruf eines SAP RFC Fubas denkbar.

Für den Use Case soll an dieser Stelle auf die entsprechenden Dokumentationen verwiesen werden:

SendProcessStatusBIP BackendIntegrationPoint

Dieser BIP sendet den Status des laufenden Prozesses an das definierte Backendsystem.

Konfiguration BackendIntegrationPoint

Start_NLIROL020_Zeige Fehler
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

End_NLIROL020_Beende Prozess
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

Start_NLIROL030_Zeige Fehler
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

End_NLIROL030_Beende Prozess
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

Start_NLIROL040_Prozess abbrechen_1
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

End_NLIROL040_Beende den Prozess_1
com.nextlevel.bpm.level2.wim.SendProcessStatusBIP

...

Konfiguration RemoteSystem->Webservice

SendProcessStatusBIP
http://<server>:<port>/b2bbp-engine/rs/plain/wim/sendProcessStatus
Benutzer
Passwort Base64 verschlüsselt

Struktur

Tritt ein Fehler bei der Ausführung eines BiPs auf, wird zusätzlich das Feld backendErrorStatus gefüllt. Dabei ist der Detailgrad von der Rückmeldung aus dem Backend und vom eigentlich aufgetretenen Fehler abhängig.

RequestBody (Gesamtstruktur)

{
    "processId": "0f596da1-4274-11ea-9784-005056bd2895", ==> WiM Process
    "externalId": "ID aus Backendsystem (ProcessOverview.externalId)",
    "statusCode": ERROR | RUNNING | UPLOADED | FINISHED | SCHEDULED | OBSOLET | CANCELED | CANCELED_BY_USER | CANCELED_APERAK | LOADING,
    "statusText": "MasterDataVo wurde nicht gefüllt!", ==> Fehler Beschreibung
    "statusTime": "2020-07-07T11:04:06.929+02:00" ==> Zeitstempel des Status
	"backendErrorStatus" : {
		"status" : INTERNAL_SERVER_ERROR | BAD_REQUEST | ..., ==> HTTP Fehler aus Backend
		"timestamp" : "2020-07-07T11:04:06.929+02:00", ==> Zeitpunkt des BIP Fehlers
		"message" : ..., ==> Möglicher Fehlertext
		"debugMessage" : ..., ==> Möglicher detailierter Fehlertext
		"errorCodes" : ..., ==> Möglicher ErrorCode aus dem backend
		"subErrors" : ..., ==> mögliche weitere Fehlerbeschreibungen
		"bipName" : BusinessDataRequestBIP | ..., ==> BIP indem der Fehler aufgetreten ist
		"requestUrl" : "http://ip:port/malotopology/api/backend/v1/utilmd-masterdata | ..."
		"backendSystem" : ... , ==> Konfiguriertes Backendsystem aus Template oder Fallback 3rd Party		
	}
}

Beispiel RequestBody bei Erfolg

{
  "processId" : "a44ef081-bfa4-11ea-82e8-005056bd2895",
  "externalId" : "10000000000013787521",
  "statusCode" : "FINISHED",
  "statusText" : "NLIROL040 Beende den Prozess ausgeführt!",
  "statusTime" : "2020-07-08T10:14:17.879+02:00",
  "backendErrorStatus" : null
}

Beispiele RequestBody bei Fehler

{
	"processId": "7148f841-c047-11ea-9ca4-005056bd2895",
	"externalId": "10000000000013786231",
	"statusCode": "ERROR",
	"statusText": "Send MasterDataVO to MBSE failed, status code: 500 INTERNAL_SERVER_ERROR",
	"statusTime": "2020-07-08T10:29:59.899+02:00",
	"backendErrorStatus": {
		"status": "INTERNAL_SERVER_ERROR",
		"timestamp": "2020-07-08T10:29:59.000+02:00",
		"message": "A server error occured with status code: 500 INTERNAL_SERVER_ERROR, status text: ",
		"debugMessage": "A server error occured with status code: 500 INTERNAL_SERVER_ERROR, status text: ",
		"errorCodes": null,
		"subErrors": null,
		"bipName": "BusinessDataRequestBIP",
		"requestUrl": "http://ip:port/v2/masterdata",
		"backendSystem": "MBSE (NDM Adapter)"
	}
}
{
	"processId": "7148f841-c047-11ea-9ca4-005056bd2895",
	"externalId": "10000000000013786231",
	"statusCode": "ERROR",
	"statusText": "Send MasterDataVO to MBSE failed, status code: 500 INTERNAL_SERVER_ERROR",
	"statusTime": "2020-07-08T10:29:59.899+02:00",
	"backendErrorStatus": {
		"status": "BAD_REQUEST",
		"timestamp": "2020-07-08T10:29:59.000+02:00",
		"message": null,
		"debugMessage": "Unexpected value \"Z03\" could not be matched to an entry of type GasMeterSize",
		"errorCodes": null,
		"subErrors": null,
		"bipName": "BusinessDataRequestBIP",
		"requestUrl": "http://ip:port/v2/masterdata",
		"backendSystem": "MBSE (MaToMa)"
	}
}