Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tüm alt akışlar onaylanınca aksiyon alma veya biri red olunca diğerlerinide kapatarak işlem yapma gibi durumları alt akışın İş Sonrası Script bölümünde kontrol edilmesi gerekmektedir. Alt akışları oluşturma işlemleri ise İş Önceki Script veya daha önceki adımlarda oluşturulabilir. 

 

Bu alt akışlarda alınan aksiyonlar kontrol edilerek bir tane bile Red verilme işlemi varsa alt akışı Red üzerinden ilerletir. 

Code Block
languagexml
titleÖrnek İş Sonrası Script - Alt Akış Dönüşlerinin Kontrolü
linenumberstrue
<PostWork Name="">
  <If>
    <Then>
      <Condition>
        <Greater Equal="False">
          <Count><![CDATA[/*/YeniModul/SubWorkflows/WorkflowStartInfo[Sonuc='Red']]]></Count>
          <Value Culture="" Target="Integer">0</Value>
        </Greater>
      </Condition>
      <Perform>
        <Value Culture="" Target="None">Red</Value>
      </Perform>
    </Then>
    <Else>
      <Condition />
      <Perform>
        <Value Culture="" Target="None">Onayla</Value>
      </Perform>
    </Else>
  </If>
</PostWork>

 

Bu bölümde alt akışta oluşacak çoklu WorkflowStartInfo için bölümler oluşturulur. Aşağıdaki örnekte ForEach ile Direktör bilgileri listesinden direktörler seçilir.

Code Block
languagexml
titleÖrnek İş Öncesi Script - Alt Akışları Doldurma
linenumberstrue
<PreWork Name="">
  <Delete Node="YeniModul/SubWorkflows/WorkflowStartInfo" />
  <ForEach Node="/*/DirektorBilgileri/Liste/Sablon[@guid!='{00000000-0000-0000-0000-000000000000}']">
    <Insert Into="/*/YeniModul/SubWorkflows">::/*/YeniModul/WorkflowStartInfo</Insert>
    <Set Node="/*/YeniModul/SubWorkflows/WorkflowStartInfo[last()]/Direktor">
      <Value Culture="" Target="None">eval::./Direktor</Value>
    </Set>
  </ForEach>
</PreWork>

 

$(WorkItemId) değeri o anda oluşan adımın Id sini verir bu değeri daha sonra rapor veya süreçleri sonlandırmak için kullanabiliriz. 
Code Block
languagexml
titleAlt akışa tabi olan adımlara WorkItemId set etme
linenumberstrue
<PreWork Name="">
  <Set Node="/*/YeniModul/SubWorkflows/WorkflowStartInfo[@Instance='$(InstanceId)']/WorkItemId">
    <Value Culture="" Target="None">$(WorkItemId)</Value>
  </Set>
</PreWork>

 

İlgili alt akış ile ilgili seçilen $(SelectedAction) değeri alınır ve eğer bir kişi Red edince tüm diğer işlerin sonlanarak sürecin red aksiyonuna geçmesi isteniyorsa bu işlemler uygulanır. Diğer adımları WorkItemId ile ilerletir. 

Code Block
languagexml
titleAlt Akış a tabi olan adımın iş sonrası scripti
linenumberstrue
<PostWork Name="">
  <Set Node="/*/YeniModul/SubWorkflows/WorkflowStartInfo[@Instance='$(InstanceId)']/Sonuc">
    <Value Culture="" Target="None">$(SelectedAction)</Value>
  </Set>
  <If>
    <Then>
      <Condition>
        <Equals>
          <Value Culture="" Target="None">Red</Value>
          <Value Culture="" Target="None">$(SelectedAction)</Value>
        </Equals>
      </Condition>
      <Perform>
        <ForEach Node="/*/YeniModul/SubWorkflows/WorkflowStartInfo">
          <Set Node="Sonuc">
            <Value Culture="" Target="None">Red</Value>
          </Set>
          <ProcessWorkItem Action="Red">
            <WorkItem Type="Waiting" IncludeChildren="False" Instance="">
              <Value Culture="" Target="Guid">eval::WorkItemId</Value>
            </WorkItem>
          </ProcessWorkItem>
        </ForEach>
      </Perform>
    </Then>
  </If>
</PostWork>

...