flowアクティビティ内のアクティビティ間に同期を作成するときの処理内容
次の例は、アクティビティ実行を同期化するためのリンクを持つ3つのflowアクティビティの設計が完了した後の.bpel
ファイルを示しています。
-
Flow_1
は、単純なアクティビティ間のリンクを示します。Flow_1
にはAtoB
という名前のリンクが含まれています。リンクのターゲットであるアクティビティ(assignアクティビティB
)は、リンクのソースであるアクティビティ(assignアクティビティA
)が完了した場合のみ実行されます。 -
Flow_2
は、単純なアクティビティと複合アクティビティの間のリンクを示します。Flow_2
にはAtoB
という名前のリンクも含まれています。リンクのターゲットであるアクティビティ(assignアクティビティB
)は、リンクのソースであるアクティビティ(scopeアクティビティscope1
)が完了した場合のみ実行されます。 -
Flow_3
は、複合アクティビティ間のリンクを示します。Flow_3
にはAtoB
という名前のリンクも含まれています。リンクのターゲットであるアクティビティ(sequenceアクティビティSequence_1
)は、リンクのソースであるアクティビティ(scopeアクティビティscope2
)が完了した場合のみ実行されます。
<!-- link between simple activities --> <flow name=Flow_1> <links> <link name="AtoB"/> </links> <assign name="A"> <sources> <source linkName="AtoB"/> </sources> <copy> <from>concat($output.payload, 'A')</from> <to>$output.payload</to> </copy> </assign> <assign name="B"> <targets> <target linkName="AtoB"/> </targets> <copy> <from>concat($output.payload, 'B')</from> <to>$output.payload</to> </copy> </assign> </flow> <!-- link between simple activity and composite activity --> <flow name=Flow_2> <links> <link name="AtoB"/> </links> <scope name="scope1"> <sources> <source linkName="AtoB"/> </sources> <assign name="A"> <copy> <from>concat($output.payload, 'A')</from> <to>$output.payload</to> </copy> </assign> </scope> <assign name="B"> <targets> <target linkName="AtoB"/> </targets> <copy> <from>concat($output.payload, 'B')</from> <to>$output.payload</to> </copy> </assign> </flow> <!-- link between composite activities --> <flow name=Flow_3> <links> <link name="AtoB"/> </links> <scope name="scope2"> <sources> <source linkName="AtoB"/> </sources> <assign name="A"> <copy> <from>concat($output.payload, 'A')</from> <to>$output.payload</to> </copy> </assign> </scope> <sequence name="Sequence_1> <targets> <target linkName="AtoB"/> </targets> <assign name="B"> <copy> <from>concat($output.payload, 'B')</from> <to>$output.payload</to> </copy> </assign> </sequence> </flow> </sequence>