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>