Tracking Workflow Users in Dynamics 365


Dynamics 365 Finance and Operations'ta iş akışları, kurumsal süreçlerin düzenli ve kontrol edilebilir bir şekilde ilerlemesini sağlayan kritik bileşenlerden biridir. İş akışı içinde kullanıcı hareketlerini takip etmek, bu hareketlere bağlı kurallar tanımlamak ve bu sayede süreci otomatikleştirmek mümkün olur.
Bu yazıda, iş akışına gönderen, onaylayan ve yeniden atanan kullanıcıların nasıl takip edileceğini gösteren display metotlar üreteceğiz. Bu metotları ilgili tabloya ekleyerek, kullanıcı hareketlerini anlık olarak görüntüleyebilir ve iş akışı kurallarına entegre edebilirsiniz.
1. İş Akışı Kullanıcı Hareketlerini Takip Etmek
Dynamics 365'te iş akışı hareketlerini kaydeden iki temel tablo vardır:
WorkflowTrackingTable: İş akışı hareketlerini saklayan tablo.
WorkflowTrackingStatusTable: İş akışının mevcut durumunu takip eden tablo.
Bu tabloları kullanarak iş akışına gönderen, onaylayan ve yeniden atanan kullanıcıyı bulabiliriz.
1.1 İş Akışını Onaylayan Kullanıcı
Bu metot, ilgili kayıt üzerinde iş akışını en son onaylayan kullanıcıyı getirir.
/// <summary>
/// İş akışını onaylayan kullanıcı
/// </summary>
display UserId workflowApprovalUser()
{
WorkflowTrackingStatusTable workflowTrackingStatusTable;
WorkflowTrackingTable workflowTrackingTable;
select firstOnly workflowTrackingTable order by CreatedDateTime desc
exists join workflowTrackingStatusTable
where workflowTrackingStatusTable.RecId == workflowTrackingTable.WorkflowTrackingStatusTable
&& workflowTrackingStatusTable.ContextTableId == this.TableId
&& workflowTrackingStatusTable.ContextRecId == this.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Approval;
return workflowTrackingTable.User;
}
1.2 İş Akışına Gönderen Kullanıcı
Bir iş akışının kim tarafından başlatıldığını anlamak için aşağıdaki metodu kullanabiliriz:
/// <summary>
/// İş akışına gönderen kullanıcı
/// </summary>
display UserId workflowSubmittedUser()
{
WorkflowTrackingStatusTable workflowTrackingStatusTable;
WorkflowTrackingTable workflowTrackingTable;
select firstOnly workflowTrackingTable order by CreatedDateTime desc
exists join workflowTrackingStatusTable
where workflowTrackingStatusTable.RecId == workflowTrackingTable.WorkflowTrackingStatusTable
&& workflowTrackingStatusTable.ContextTableId == this.TableId
&& workflowTrackingStatusTable.ContextRecId == this.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Submission;
return workflowTrackingTable.User;
}
Bu metot, iş akışını başlatan (ilk gönderen) kullanıcıyı getirir.
1.3 İş Akışına Son Atanan Kullanıcı
Bazen iş akışı bir başka kullanıcıya atanabilir. Bu durumda, son atanan kullanıcıyı bulmak için şu metodu kullanabiliriz:
/// <summary>
/// İş akışına son atanan kullanıcı
/// </summary>
display UserId workflowReassignedUser()
{
WorkflowTrackingStatusTable workflowTrackingStatusTable;
WorkflowTrackingTable workflowTrackingTable;
select firstOnly workflowTrackingTable order by CreatedDateTime desc
exists join workflowTrackingStatusTable
where workflowTrackingStatusTable.RecId == workflowTrackingTable.WorkflowTrackingStatusTable
&& workflowTrackingStatusTable.ContextTableId == this.TableId
&& workflowTrackingStatusTable.ContextRecId == this.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Creation;
return workflowTrackingTable.User;
}
Bu metot, iş akışının son olarak hangi kullanıcıya atandığını getirir.
Sonuç
Bu display metotlarını kullanarak iş akışı hareketlerini kolayca takip edebilir ve bunlara dayalı çeşitli iş kuralları tanımlayabilirsiniz. Bu sayede iş akışınızı daha dinamik ve kural bazlı hale getirebilirsiniz.
Subscribe to my newsletter
Read articles from Bayram ÇETİN directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Bayram ÇETİN
Bayram ÇETİN
Senior Dynamics 365 Developer