Welcome to Emakin Q&A, where you can ask questions and receive answers from other members of the community.

Categories

0 votes
47 views
Merhaba,

İş akışlarında taskları gecikmeli olarak kullanıcılara düşürebilir miyiz? Mesela Md. Yrd. onayından geçen bir form 1 iş günü sonra müdür onayına düşsün gibi bir şey mümkün mü? Teşekkürler..
by Han Solo (1.4k points)

1 Answer

+1 vote
 
Best answer

Merhaba,

Şu şekilde çözüm sağlanabilir.

Müdür Yardımcısı onayının verildiği iş adımı ile sonraki iş adımının arasına bir modül ekleyebilirsiniz. 

Modül'ün "Değerlendirme"sinde sol alt köşede "Evet, belirlenen takvimde çalıştır." kontrol kutucuğunu seçtiğinizde açılan alana aşağıdakini yapıştırın. 

<Schedule Name="">
    <Schedule Type="Hourly">
        <Duration>1.00:00:00</Duration>
    </Schedule>
</Schedule>

Noktadan önceki rakam günü, noktadan sonraki ilk iki noktaya kadar olan rakamlar saati, sonraki iki noktaya kadar olan rakamlar dakikayı, en sağdaki rakamlar ise saniyeyi ifadeyi etmektedir. Yukarıdaki durumda modül hergün bir defa çalıştırılacaktır. 

Müdür Yardımcısı iş adımının "postwork"ünde onay verilen günün tarihinden bir sonraki günün tarihini bir "form data"ya atarsınız...

var mdOnayTarihi = $Xml.EvaluateDateTime('MdOnayTarihi'));

var eklenecekGun = 1;

var timeSpan = eklenecekGun.toString() + '.00:00:00';

var calismaTarihi = $Calendar.StandardCalendar.AddTimeSpan(mdOnayTarihi, timeSpan); 

$Xml.SetValue('CalismaTarihi', calismaTarihi );

Modül'ün "Değerlendirme"sine de aşağıdakini yazarsınız.

if ($Calendar.Today >= $Xml.EvaluateDateTime('CalismaTarihi'))

{

    $WorkItem.SelectedAction = "Tamam";

}

Modülün çalıştırıldığı gün (her gün çalıştırılacaktı) ilgili nodun tarihinden büyük veya tarihe eşit ise Modül için "Tamam" aksiyonu alınacaktır.

(Daha öncesinde modülden sonra ulaşmak istediğiniz iş adımına giden rotaya "Tamam" aksiyonunu eklemeniz gerekir.)

Bu şekilde yapmak istediğinizi gerçekleştirebilirsiniz diye düşünüyorum...

by Jar Jar Binks (520 points)
selected by
Hocam,
 $Xml.EvaluateDateTime('MdOnayTarihi'); ifadesinden sonra MdOnayTarihi ni throwlayınca "Argument Passed is in not serializable.." hatası alıyorum. Sadece  $Xml.Evaluate koyunca tarihi alabiliyorum ancak sonrasında
var calismaTarihi = $Calendar.StandardCalendar.AddTimeSpan(mdOnayTarihi, timeSpan); kısmında "Object reference not set..." hatası alıyorum.
Yardımcı olabilir misiniz?
...