Creating a Custom Workflow Participant Provider in Dynamics 365 F&O
Dynamics 365 Finance and Operations'ta Özel Workflow Katılımcı Sağlayıcı Nasıl Oluşturulur?
Dynamics 365 Finance and Operations'ta Workflow Participant Provider, iş akışlarında belirli bir adım için uygun kullanıcıları veya grupları tanımlamak için kullanılır. Bu yazıda, satınalma taleplerini yöneticilere atayan bir sınıfın nasıl oluşturulup iş akışına bağlanacağını adım adım ele alacağız.
1. Sınıfın Tanımı
Aşağıdaki sınıf, satınalma talep biriminin yöneticisini belirler ve iş akışı katılımcısı olarak atar:
class ETGPurchTableTemplateRequesterParticipantProvider implements WorkflowParticipantProvider
{
public WorkflowParticipantTokenList getParticipantTokens()
{
WorkflowParticipantTokenList tokenList = WorkflowParticipantTokenList::construct();
tokenList.add("ETGPurchRequesterWorkflowUser", "Satınalma Talep Birimi");
return tokenList;
}
public WorkflowUserList resolve(WorkflowContext _context, WorkflowParticipantToken _participantTokenName)
{
WorkflowUserList userList = WorkflowUserList::construct();
if (!_participantTokenName)
{
throw error("Participant token bulunamadı!");
}
if (_participantTokenName == "ETGPurchRequesterWorkflowUser")
{
PurchTable purchTable = PurchTable::findRecId(_context.parmRecId());
HcmPositionRecId positionRecId = HcmWorkerHelper::getWorkerPrimaryPositionAssignment(purchTable.Requester).Position;
HcmPositionRecId parentPositionRecId = HcmPositionHierarchy::findByPosition(positionRecId).ParentPosition;
HcmWorkerRecId parentWorkerRecId = HcmPositionWorkerAssignment::findByPosition(parentPositionRecId).Worker;
UserId userId = HcmWorker::findPersonUser(parentWorkerRecId).User;
if (userId)
{
userList.add(userId);
}
else
{
throw error(strFmt("%1 Satınalma Talep Birimi üst yöneticisi bulunamadı.", purchTable.PurchId));
}
}
return userList;
}
}
2. Workflow Participant Assignment Provider Tanımlama
Sınıfı iş akışına bağlamak için bir Workflow Participant Assignment Provider oluşturun:
Yeni Provider Ekleyin:
Name:
ETGPurchTableTemplateRequesterParticipantProvider
Özellikleri Ayarlayın:
Label: Satınalma Talep Birimi
Provider Class: ETGPurchTableTemplateRequesterParticipantProvider
Workflow Types: PurchTableTemplate
Kaydedin ve Derleyin.
3. İş Akışına Bağlama
Dynamics 365'te PurchTableTemplate iş akışını açın.
Bir "Approval" adımı ekleyin veya düzenleyin.
Assignment Type olarak "Participant" seçin.
Provider alanında yeni tanımladığınız sağlayıcıyı seçin.
İş akışını kaydedin ve doğrulayın.
Sonuç
Bu işlemle, iş akışınız satınalma taleplerini otomatik olarak doğru yöneticilere atayacak şekilde özelleştirilmiştir.