Bagikan melalui


Alur Kerja Diagram Alur

Diagram Alur adalah paradigma terkenal untuk merancang program. Aktivitas Diagram Alur biasanya digunakan untuk menerapkan alur kerja yang tidka berurutan, tetapi dapat digunakan untuk alur kerja berurutan jika tidak ada FlowDecision node yang digunakan.

Struktur alur kerja diagram alur

Diagram Alur aktivitas adalah aktivitas yang berisi kumpulan aktivitas yang akan dijalankan. Diagram Alur juga berisi elemen kontrol alur seperti FlowDecision dan FlowSwitch<T> yang mengarahkan eksekusi antara aktivitas yang dimuat berdasarkan nilai variabel.

Tipe node alur

Berbagai tipe elemen digunakan tergantung pada tipe kontrol alur yang diperlukan saat elemen dijalankan. Tipe elemen diagram alur meliputi:

  • FlowStep - Membuat model satu langkah eksekusi dalam diagram alur.

  • FlowDecision - Eksekusi cabang berdasarkan kondisi Boolean, mirip dengan If.

  • FlowSwitch – Eksekusi cabang berdasarkan sakelar eksklusif, mirip dengan Switch<T>.

Setiap tautan memiliki properti Action yang mendefinisikan ActivityAction yang dapat digunakan untuk menjalankan aktivitas turunan, dan satu atau beberapa properti Next yang menentukan elemen atau elemen mana yang akan dieksekusi saat elemen saat ini menyelesaikan eksekusi.

Membuat urutan aktivitas dasar dengan node FlowStep

Untuk membuat model urutan dasar di mana dua aktivitas dijalankan secara bergantian, elemen FlowStep digunakan. Dalam contoh berikut, dua elemen FlowStep digunakan untuk menjalankan dua aktivitas secara berurutan.

<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>

Membuat diagram alur bersyarat dengan node FlowDecision

Untuk membuat model node alur bersyarat dalam alur kerja diagram alur (yaitu, untuk membuat tautan yang berfungsi sebagai simbol keputusan diagram alur tradisional), node FlowDecision digunakan. Properti Condition dari node diatur ke ekspresi yang mendefinisikan kondisi, dan properti True dan False diatur ke instans FlowNode untuk dieksekusi jika ekspresi dievaluasi ke true atau false. Contoh berikut menunjukkan cara menentukan alur kerja yang menggunakan node 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>

Membuat sakelar eksklusif dengan node FlowSwitch

Untuk membuat model diagram alur di mana satu jalur eksklusif dipilih berdasarkan nilai yang cocok, node FlowSwitch<T> digunakan. Properti Expression diatur ke Activity<TResult> dengan parameter tipe Object yang menentukan nilai untuk dicocokkan dengan pilihan. Properti Cases mendefinisikan kamus kunci dan objek FlowNode untuk dicocokkan dengan ekspresi kondisional, dan sekumpulan objek FlowNode yang menentukan bagaimana eksekusi harus mengalir jika kasus yang diberikan cocok dengan ekspresi kondisional. FlowSwitch<T> juga mendefinisikan properti Default yang menentukan bagaimana eksekusi harus mengalir jika tidak ada kasus yang cocok dengan ekspresi kondisi. Contoh berikut menunjukkan cara menentukan alur kerja yang menggunakan elemen FlowSwitch<T>.

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