Показать сообщение отдельно
Старый 04.07.2019, 04:09   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
sunilrakesh: How to get x++ methods as Microsoft Flow- Action. Example for Submit & Recall workflow. D365FO
Источник: https://community.dynamics.com/ax/b/...orkflow-d365fo
==============

Here is an example on how to create Flow action for x++ methods. I have an requirement from Flow a record(Purchase requisition) want to submit/ Recall workflow. Below steps explain the process.
1. Create custom Data entity.
2. Add new method as shown for SUBMIT.
[SysODataActionAttribute("GetAzureSubmitl", false)]
public static str GetAzureSubmitl(PurchReqId purchReqId )
{
WorkflowVersionTable workflowVersionTable;
PurchReqTable _purchReqTable;
boolean submited = true;
PurchReqWorkflow purchReqWF;

select _purchReqTable where _purchReqTable.PurchReqId == purchReqId ; // with parameter value string.

workflowVersionTable = Workflow::findWorkflowConfigToActivateForType(workFlowTypeStr(PurchReqReview),
_purchReqTable.RecId,
_purchReqTable.TableId);

if (_purchReqTable.RecId
&& workflowVersionTable.RecId
&& _purchReqTable.RequisitionStatus == PurchReqRequisitionStatus::Draft)
{

if (PurchReqWFStatusTransitionHelper::setPurchReqTable2InReview(_purchReqTable.RecId))
{
Workflow::activateFromWorkflowType(workFlowTypeStr(PurchReqReview),
_purchReqTable.RecId,
"Submitted",
NoYes::No,
DirPersonUserEx::worker2UserId(_purchReqTable.Originator));
}
}
else
{
submited = false;
}
}

3. Save and build you project, you can see your method as an Action in Flow.

sample code for RECALL Purchase requisition workflow.
[SysODataActionAttribute("GetAzureRecall", false)]
public static str GetAzureRecall(PurchReqId purchReqId )
{
Code for RECALL
WorkflowCorrelationId workflowCorrelationId;
PurchReqTable purchReqTable;
boolean recalled = true;

select purchReqTable where purchReqTable.PurchReqId == purchReqId;//with parameter value string.

if(purchReqTable.RecId != 0 &&
purchReqTable.RequisitionStatus == PurchReqRequisitionStatus::InReview)
{
PurchReqWFStatusTransitionHelper::setPurchReqTable2Draft(purchReqTable.RecId);

workflowCorrelationId = Workflow::activateFromWorkflowType(workFlowTypeStr(PurchReqReview),
purchReqTable.RecId,
"Recalled by user",
NoYes::No,
DirPersonUserEx::worker2UserId(purchReqTable.Originator));

Workflow::cancelWorkflow(workflowCorrelationId,"Recalled by user");
}
else
{
recalled = false;
}
}





Источник: https://community.dynamics.com/ax/b/...orkflow-d365fo
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.