Megosztás a következőn keresztül:


Folyamatábra munkafolyamatai

A folyamatábra jól ismert paradigma a programok tervezéséhez. A folyamatábra-tevékenység általában nem szekvenciális munkafolyamatok implementálásához használatos, de szekvenciális munkafolyamatokhoz is használható, ha nincsenek FlowDecision csomópontok.

Folyamatábra munkafolyamat-struktúrája

A folyamatábra-tevékenység olyan tevékenység, amely a végrehajtandó tevékenységek gyűjteményét tartalmazza. A folyamatábra olyan folyamatvezérlő elemeket is tartalmaz, mint például FlowDecisionFlowSwitch<T> a tárolt tevékenységek közötti közvetlen végrehajtás a változók értékei alapján.

A folyamatcsomópontok típusai

A rendszer különböző típusú elemeket használ attól függően, hogy milyen típusú folyamatvezérlésre van szükség az elem végrehajtásakor. A folyamatábraelemek típusai a következők:

  • FlowStep - A folyamatábra egy végrehajtási lépését modellozza.

  • FlowDecision - Az ágak végrehajtása logikai feltétel alapján, hasonló módon If.

  • FlowSwitch – A végrehajtást egy kizárólagos kapcsoló alapján hajtja végre, hasonló módon Switch<T>.

Minden hivatkozás rendelkezik egy Action tulajdonsággal, amely meghatározza a gyermektevékenységek ActivityAction végrehajtásához használható tulajdonságokat, valamint egy vagy több Next tulajdonságot, amelyek meghatározzák, hogy melyik elemet vagy elemeket kell végrehajtani az aktuális elem végrehajtásakor.

Alapszintű tevékenységütemezés létrehozása FlowStep-csomóponttal

Egy alapütemezés modellezéséhez, amelyben két tevékenység egymás után fut, a rendszer az FlowStep elemet használja. Az alábbi példában két FlowStep elemet használunk két művelet egymás utáni végrehajtásához.

<Flowchart>
  <FlowStep>
    <Assign DisplayName="Get Name">
      <Assign.To>
        <OutArgument x:TypeArguments="x:String">[result]</OutArgument>
      </Assign.To>
      <Assign.Value>
        <InArgument x:TypeArguments="x:String">["User"]</InArgument>
      </Assign.Value>
    </Assign>
    <FlowStep.Next>
      <FlowStep>
        <WriteLine Text="Hello, " & [result]/>
      </FlowStep>
    </FlowStep.Next>
  </FlowStep>
</Flowchart>

Feltételes folyamatábra létrehozása FlowDecision csomóponttal

A folyamatábra-munkafolyamatok feltételes folyamatcsomópontjainak modellezéséhez (azaz egy hagyományos folyamatábra döntési szimbólumaként működő hivatkozás létrehozásához) a rendszer egy csomópontot FlowDecision használ. A Condition csomópont tulajdonsága egy olyan kifejezésre van állítva, amely meghatározza a feltételt, és False a True tulajdonságokat olyan példányokra állítja beFlowNode, amelyeket végrehajt, ha a kifejezés kiértékeli a feltételt true vagy false. Az alábbi példa bemutatja, hogyan definiálhat csomópontot használó munkafolyamatot FlowDecision .

<Flowchart>
  <FlowStep>
    <Read Result="[s]"/>
    <FlowStep.Next>
      <FlowDecision>
        <IsEmpty Input="[s]" />
        <FlowDecision.True>
          <FlowStep>
            <Write Text="Empty"/>
          </FlowStep>
        </FlowDecision.True>
        <FlowDecision.False>
          <FlowStep>
            <Write Text="Non-Empty"/>
          </FlowStep>
        </FlowDecision.False>
      </FlowDecision>
    </FlowStep.Next>
  </FlowStep>
</Flowchart>

Kizárólagos kapcsoló létrehozása FlowSwitch-csomóponttal

Egy olyan folyamatábra modellezéséhez, amelyben egy egyező érték alapján egyetlen kizárólagos elérési út van kiválasztva, a FlowSwitch<T> csomópontot használja. A Expression tulajdonság olyan típusparaméterre Object van beállítvaActivity<TResult>, amely meghatározza a választási lehetőségeknek megfelelő értéket. A Cases tulajdonság meghatározza a feltételes kifejezéssel egyező kulcsok és FlowNode objektumok szótárát FlowNode , valamint egy olyan objektumkészletet, amely meghatározza, hogyan történjen a végrehajtás, ha az adott eset megfelel a feltételes kifejezésnek. Az FlowSwitch<T> is definiál egy Default tulajdonságot, amely meghatározza, hogyan történjen a végrehajtás, ha nincs olyan eset, amely megegyezik a feltételkifejezéssel. Az alábbi példa bemutatja, hogyan definiálhat egy elemet használó munkafolyamatot FlowSwitch<T> .

<Flowchart>
  <FlowSwitch>
    <FlowStep x:Key="Red">
      <WriteRed/>
    </FlowStep>
    <FlowStep x:Key="Blue">
      <WriteBlue/>
    </FlowStep>
    <FlowStep x:Key="Green">
      <WriteGreen/>
    </FlowStep>
  </FlowSwitch>
</Flowchart>