Es gibt bestimmte Einschränkungen für den Quellenartefakt-Migrationsprozess von WebSphere Studio Application Developer Integration Edition.
getMyInputVariable() getMyInputVariable(false) getVariableAsWSIFMessage(“MyInputVariable”) getVariableAsWSIFMessage(“MyInputVariable”, false)Mit den beiden folgenden Methoden könnte ein "Schreib-/Lesezugriff" auf eine BPEL-Variable in einem beliebigen 5.1-BPEL-Java-Snippet erfolgen:
getMyInputVariable(true) getVariableAsWSIFMessage(“MyInputVariable”, true)In Version 6.0 wird der Lesezugriff und der Schreib-/Lesezugriff auf BPEL-Variablen für "jedes Snippet separat" verwaltet. Dies bedeutet, dass Sie einen besonderen Kommentar zum BPEL-Java-Snippet hinzufügen und auf diese Weise angeben können, ob Aktualisierungen der BPEL-Variablen nach Abschluss der Snippetausführung gelöscht werden oder erhalten bleiben sollen. Standardzugriffseinstellungen für die BPEL-Java-Snippettypen der Version 6.0:
BPEL-Java-Snippet-Aktivität Standardzugriff: Schreib-/Lesezugriff Standardzugriff überschreiben mit Kommentar: @bpe.readOnlyVariables names="variableA,variableB" BPEL-Java-Snippet-Ausdruck (wird in Zeitlimit, Bedingung usw. verwendet) Standardzugriff: Lesezugriff Standardzugriff überschreiben mit Kommentar: @bpe.readWriteVariables names="variableA,variableB"Während der Migration werden diese Kommentare automatisch erstellt, sobald der Zugriff auf eine Variable in einer Weise erfolgt, die in Version 6.0 nicht als Standard definiert ist. Falls es zu einem Konflikt kommt (es also im gleichen Snippet einen "Lesezugriff" und einen "Schreib-/Lesezugriff" auf die BPEL-Variable gab), wird eine Warnung ausgegeben, und der Zugriff wird auf "Schreib-/Lesezugriff" gesetzt. Wenn Sie solche Warnungen empfangen, stellen Sie sicher, dass die Einstellung des "Schreib-/Lesezugriffs" für die BPEL-Variable in Ihrer Situation korrekt ist. Andernfalls müssen Sie die Einstellung mit dem BPEL-Editor von WebSphere Integration Developer manuell korrigieren.
MyProperty myProp = new MyProperty(); InputMessageMessage myMsg = new InputMessageMessage(); myMsg.setMyProperty(myProp);In 6.0 muss eine spezielle Factory-Class verwendet werden, um diese Typen zu Instanziieren, oder es kann eine Instanz des übergeordneten Typs zur Erstellung des Subtyps verwendet werden. Wenn eine BPEL Prozessvariable InputVariable als Typ InputMessage definiert wurde, würde die 6.0 Version des vorhergehenden Snippets folgendermaßen lauten:
com.ibm.websphere.bo.BOFactory boFactory= (com.ibm.websphere.bo.BOFactory) com.ibm.websphere.sca.ServiceManager.INSTANCE.locateService( “com/ibm/websphere/bo/BOFactory”); commonj.sdo.DataObject myMsg = boFactory.createByType(getVariableType(“InputVariable”)); commonj.sdo.DataObject myProp = myMsg.createDataObject(“MyProperty”);Der Snippet Converter versucht, diese Änderung durchzuführen, wenn jedoch die Reihenfolge, in der die ursprünglichen Instanzerstellungen auftreten, nicht dem Hierarchiemuster (übergeordnet gefolgt von untergeordnet) folgt, ist eine manuelle Migration erforderlich (d.h. der Converter versucht nicht, die Instanzerstellungsanweisungen im Snippet intelligent neu anzuordnen).
http://wsaddressing.bpel.srm.websphere.ibm.comSolche Verweise werden zum Standard-Elementtyp service-ref aus dem Standardnamensbereich des Geschäftsprozesses migriert:
http://schemas.xmlsoap.org/ws/2004/03/business-process/
http://schemas.xmlsoap.org/ws/2004/08/addressingAnweisungen für den manuellen Import dieser Schemadefinitionen in Ihr Projekt, so dass alle Verweise ordnungsgemäß aufgelöst werden können, finden Sie in der BPEL-Editor-Dokumentation.