Il existe certaines restrictions pour le processus de migration des artefacts source de WebSphere Studio Application Developer Integration Edition.
getMyInputVariable() getMyInputVariable(false) getVariableAsWSIFMessage(“MyInputVariable”) getVariableAsWSIFMessage(“MyInputVariable”, false)L'exemple ci-dessous présente deux moyens de rendre une variable BPEL accessible en lecture-écriture dans un fragment Java BPEL 5.1 :
getMyInputVariable(true) getVariableAsWSIFMessage(“MyInputVariable”, true)Dans la version 6.0, l'accès en lecture seule et en lecture-écriture aux variables BPEL est géré fragment par fragment. Vous pouvez ajouter un commentaire spécial au fragment Java BPEL pour indiquer si les mises à jour de cette variable doivent être supprimées ou conservées après l'exécution du fragment de code. Les paramètres d'accès par défaut pour les types de fragments Java BPEL 6.0 sont les suivants :
BPEL Java Snippet Activity Default Access: read-write Override Default Access with comment containing: @bpe.readOnlyVariables names="variableA,variableB" BPEL Java Snippet Expression (Used in a Timeout, Condition, etc) Default Access: read-only Override Default Access with comment containing: @bpe.readWriteVariables names="variableA,variableB"Lors de la migration, ces commentaires sont créés automatiquement si une variable a fait l'objet d'un accès d'un type autre que l'accès par défaut de la version 6.0. En cas de conflit (accès à une variable BPEL en lecture seule et en lecture-écriture dans un même fragment), un avertissement s'affiche et l'accès est défini sur lecture-écriture. Si vous recevez cet avertissement, assurez-vous que le fait que cette variable soit accessible en lecture-écriture ne pose pas de problème. Sinon, corrigez ce paramètre manuellement à l'aide de l'éditeur BPEL de WebSphere Integration Developer.
MyProperty myProp = new MyProperty(); InputMessageMessage myMsg = new InputMessageMessage(); myMsg.setMyProperty(myProp);Dans la version 6.0, une classe de fabrique spéciale doit être utilisée pour instancier ces types, ou une instance du type contenant peut être utilisée pour créer le sous-type. Si une variable de processus BPEL InputVariable a été définie comme ayant le type InputMessage, alors la version 6.0 du fragment précédent sera :
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”);Le convertisseur de fragments essaie d'effectuer ce changement, mais si l'ordre dans lequel s'effectuent les instanciations originales ne suit pas le schéma parent-puis-enfant, une migration manuelle sera nécessaire (c'est-à-dire que le convertisseur n'essaie pas de réorganiser intelligemment les déclarations d'instanciation dans le fragment).
http://wsaddressing.bpel.srm.websphere.ibm.comCes références seront migrées de l'espace de nom du processus métier standard vers le type d'élément référence de service standard :
http://schemas.xmlsoap.org/ws/2004/03/business-process/
http://schemas.xmlsoap.org/ws/2004/08/addressingReportez-vous à la documentation sur l'éditeur BPEL pour obtenir des instructions sur l'importation manuelle de ces définitions de schéma dans votre projet afin de résoudre correctement toutes les références.