Presentation – Workflow in Dynamics AX

advertisement
By,
Nasheet Ahmed Siddiqui
Agenda
• Workflow overview
• Workflow development
•
•
•
•
•
•
Query for a Workflow
Workflow category
Workflow type
Workflow elements
Enable workflow on form
Workflow Providers Overview

• Workflow configuration
Workflow overview

 Workflow is defined as the movement of documents
or tasks through a work process.
 In Microsoft Dynamics AX, the focus of workflow is
on approval and task-oriented workflows.
Workflow overview

• Developer design the workflow based on customer
requirements.
• The company administrator configures the workflow.
• Users run the workflow.
Workflow development

 The developer role in Microsoft Dynamics AX is
primarily to add workflow to existing business
documents or create new documents that support
workflow.
 Creating a query for a workflow.
 Creating a workflow category.
 Creating a workflow type in the AOT.
 Creating Workflow elements
 Enable workflow on the form.
Query for a Workflow

 In the AOT, right-click the Queries node, and then select New
Query. A query group displays under the Queries node.
 Right-click the new query, click Rename, and then enter
MyQuery.
 Expand the new query, right-click the Data Sources node, and
then click New Data Source. A data source group displays
under the Data Sources node.
 Right-click the new data source group and then click Properties.
 In the Properties sheet, set the Table property to CustTable.
 Expand the CusTable_1 data source, and select the Fields node.
In the Properties sheet, set the Dynamic property to Yes.
Workflow Category

 In the AOT, expand the Workflow node.
 Right-click the Workflow Categories node, and then select
New Workflow Category. A new workflow category
group displays under the Workflow Categories node.
 Right-click the new workflow category and then click
Properties.
 In the Properties sheet, set the name and module
properties.
 In the AOT, right-click MyWorkflowCategory, and then
click Save.
Workflow Type

 The Workflow type is a building block that can be used to
create customized workflows that enforce business
policies.
 In Microsoft Dynamics AX, you enable the workflow
process for a workflow document by creating Workflow
types that are used in the workflow configuration user
interface.
 A Workflow type defines information about:
 Which workflow document to use.
 Tasks and approvals that can be configured by the end-user.
 Workflow categories used for assigning a Workflow type to
a specific module.
 Menu items and event handlers.
Workflow Type

 In AOT->Workflow->Workflow Types->New
Workflow type.
Workflow Type(Define the workflow document)

 The workflow document class that you create defines
table fields for conditions in two ways:
1.
The Application Object Tree (AOT) query. The
getQueryName method of the Workflow Document
Class must be overridden to return the name of the
query.
2. Parameter methods. You can optionally add
calculated fields by adding parameter methods with a
specific signature on the class.
Workflow Events

 Microsoft Dynamics AX workflow uses events to
initiate business logic in your application. For
example, the workflow type has a property event
handler for business logic when a workflow is
started.
 Workflow event handlers in Microsoft Dynamics AX
enable you to run application-specific business logic
at key points during workflow execution. Workflow
events are implemented at the workflow level and
the workflow element level
Workflow Level Event
Handlers

• At the workflow level, event handlers are provided for the workflow
started, completed, canceled, and configuration data change events.
• WorkflowHandler class implements WorkflowCanceledEventHandler,
WorkflowCompletedEventHandler,
WorkflowStartedEventHandler.
• Started,completed and canceled methods create to handle below events.
Event
Description
WorkflowStartedEventHan
This event raises when the workflow instance starts.
dler
WorkflowCompletedEvent
Handler
This event raises when the workflow instance ends after it is completed.
WorkflowCanceledEventH
andler
This event raises when the workflow instance ends after it is canceled. Use this event handler to
perform any cleanup operations needed.
WorkflowConfigDataChan
geEventHandler
This event raises when the workflow configuration data changes. Use this event handler to
identify when a configuration has changed. For example, if you create an association between
the application data and a workflow configuration, this event handler would raise if the
configuration was deleted or updated.
Workflow Menu Items

 Create a submitWorkflow and CancelWorflow
menuitems.
 Set the object property of submitwork menuitem to
the SubmitWorkflow class.
 Set the object property of CancelWorflow menuitem
to the WorkflowCancelManager class.
SubmitToWorkflow
Class

 In Microsoft Dynamics AX, a workflow is started
when the user clicks the Submit button on the
workflow toolbar.
 The Submit button is bound to an action menu item
that calls the main method on a SubmitToWorkflow
class.
 Workflow activation is added in the main method
from the workflow type name.
SubmitToWorkflow
Class












public static void main(Args args)
{
// Variable declaration.
recId _recId = args.record().RecId;
WorkflowCorrelationId _workflowCorrelationId;
// Hardcoded type name
workflowTypeName _workflowTypeName = workFlowTypeStr("MyWorkflowType");
// Initial note is the information that users enter when they
// submit the document for workflow.
WorkflowComment _initialNote = "";
WorkflowSubmitDialog workflowSubmitDialog;



// Opens the submit to workflow dialog.
workflowSubmitDialog = WorkflowSubmitDialog::construct(args.caller().getActiveWorkflowConfiguration());
workflowSubmitDialog.run();





if (workflowSubmitDialog.parmIsClosedOK())
{
_recId = args.record().RecId;
// Get comments from the submit to workflow dialog.
_initialNote = workflowSubmitDialog.parmWorkflowComment();
try
{
ttsbegin;





// Activate the workflow.
_workflowCorrelationId = Workflow::activateFromWorkflowType(_workflowTypeName, _recId, _initialNote, NoYes::No);


// Send an Infolog message.
info("Submitted to workflow.");








}
}
}
ttscommit;
catch(exception::Error)
{
info("Error on workflow activation.");
}
Workflow elements

 The elements of a workflow are created by you in the
AOT and configured by application administrators. The
workflow structure consists of sequences of workflow
elements. An element can be a task, approval, or a subworkflow.
 A task is a workflow element with a single step defined in
the Application Object Tree (AOT) that is used to
implement task-based processes.
 An approval is a specialized task that can have multiple
steps defined in the AOT that is used to implement
approval processes.
Create a Workflow Approval

 You can use workflow approvals to track the status of a
workflow document that has fixed workflow outcome
types such as Approve, Reject, Deny, or RequestChange.
 AOT->WorkFlow>Approvals-> New Approval
 Associate an Action Menu Item with a Workflow
Approval
 Associate a Display Menu item with a Workflow
Approval
 Create and implement event handlers on the workflow
approval
Create a Workflow Task

 A workflow may contain one or more tasks.
However, each task may only contain one step with
one or more outcome types.
 AOT->WorkFlow->Tasks-> New Task
 Associate an Action Menu Item with a Workflow
Task
 Associate a Display Menu item with a Workflow
Task
 Create and implement event handlers on the
workflow task
Enable Workflow on
Form

1.In the AOT, expand the Forms node.
2.Expand the CustTable form, and then expand the Designs node.
3.In the Designs node, right-click the Design child node, and then
click Properties.
4.In the Properties sheet, set the following properties.
Property
Value
WorkflowEnabled
Yes
WorkflowDataSource
CustTable
WorkflowType
CustWorkflow
5.In the AOT, right-click the CustTable form, and then click Save.
Enable Workflow on
Form

 After the form is enabled for workflow, you will add
a canSubmitToWorkflow method to the form. This
method runs before the Submit button is enabled to
verify that the workflow document is in a valid state
to submit to workflow.
Workflow Providers

 In Microsoft Dynamics AX, you can use workflow
providers to provide application-specific information
to a workflow instance at runtime.
 For example, you can use workflow providers to
determine who is required to approve an invoice, or
by which date an invoice payment is considered to
be late.
Workflow Providers Types

 Hierarchy Assignment
 Determines a user ID based on a search in a hierarchy.
 Due date
 Determines the due date for a task or approval, or the
due date for a step in a task or approval.
 Participant
 Resolves a user group or role into one or more specific
user IDs.
Demo


Download