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

Categories

0 votes
59 views
Merhaba arkadaşlar, Aksiyon aldığım zaman, şirket içindeki sicil numarasının sonu 1 ile 90 arasındakilere kişilere iş açılsın istiyorum. Bunu daha önce yapan var mı?
by Han Solo (1.1k points)

1 Answer

+1 vote
 
Best answer

İş tetiklemek için kullanacağınız method, $WorkItem.Initiate() methodudur. Aşağıda örnek kullanımları var:

http://wiki.emakin.com/display/EMK/WorkItem.Initiate

Personellerin sicil numaralarını kontrol etmek için de veritabanından her bir personeli çekip, sicil numarasının son iki hanelerini kontrol etmek gerekiyor. Bunu da $Database.Get() ile yapacağız. Yine hemen aşağıda örnek kullanımı var:

http://wiki.emakin.com/display/EMK/%24Database.Get

Yani önce her bir personelin sicil numarasını kontrol etmek, sonrasında da şarta uyan personeller için iş başlatmak gerekiyor.

Aşağıda örnek bir kod var. Belki yardımcı olur:

if($WorkItem.SelectedAction == 'X'){
    $Database.Get({
        Parameters : {
            TargetSchema: 'HR',
            TargetTable: 'Employee'
        },
        Columns : [
            { Name : 'Id' },
            { Name : 'RegistryNumber' }

        ]
    }).Each(function () {

        var personelId = this.Id;
        var sicilNo = Number( this.RegistryNumber.substr(-2) );

        if(1 <= sicilNo && sicilNo <= 90){

            $WorkItem.Initiate(formData, 'Y', {
                task : 'Z',
                initiator : personelId
            });

        }

    });
}

Employee tablosunda her bir personel için, "this.RegistryNumber" ile personelin tablodaki sicil numarasını aldım. substr(-2) fonksiyonu ile sicil numarasındaki son iki harfi aldım ve Number() ile aldığım string değerdeki veriyi sayısal değere çevirdim. Bunu yapmamdaki sebep, 1 ile 90 kontrolünü daha kesin bir şekilde yapmak için. Eğer Number() fonksiyonu ile string e çevirmeseydim o  zaman karşılaştırmalar çok doğru sonuç vermeyecekti.

Koddaki X, seçilen aksiyonun adı. Y, başlatmak istediğiniz sürecin adı ve Z de süreç içinde başlatacağımız taskın adı. Oraları sizin doldurmanız gerekiyor.

Bu şekilde deneyebilirsiniz.

Not: Y yerine yazacağnız task adının, süreç içinde de başlangıç taskı olması gerekiyor. Bunu kontrol etmeniz için de taskın üstüne gelip düzenle dedikten sonra "Başlangıç Noktası" seçeneğinin evet ile işaretlenmiş olması gerekiyor. Zaten öyle ise o taskın rengi yeşil olacaktır ki bu da başlangıç taskı olduğunu belirtir.

Not2: WorkItem.Initiate() komutu, sıfırdan yeni bir iş başlatmak için kullanılır. Eğer alt akış mantığı yapmak istiyorsanız o zaman farklı bir kurgu izlemeniz gerekiyor.

by Luke Skywalker (4.3k points)
selected by
...