Skip to main content

Hints for Workflow development for new modules in MSD axapta

Hints for Workflow development for new modules in axapta

creating workflows require creating / modifying following workflow artifacts:

Workflow Categories
 Workflow Templates
Workflow Documents
Tasks
Approvals

Workflow Categories
To create new workflow categories follow the procedure below:
1. Open AOT
2. Expand the Workflow node
3. Right-click on the Workflow Category node and select New Workflow Category.
4. A new workflow category called WorkflowCategory1 will be created.
5. Right-click on the newly created workflow category and select Properties and set required properties.

Property
Description Name A unique name for the category
Label
A meaningful label for the category Ex: Purchase order Help Text Description about the category
Module
The module to which the category is applicable

Workflow Templates

Follow the procedure below to create a new workflow template:
1. Open the AOT
2. Expand the Workflow node
3. Right-click on the Workflow Templates node and select New Workflow Template
4. A new workflow template named WorkflowTemplate1 will be created
5. Right-click on the newly created workflow template and select Properties
6. Set the properties Name property to Sales-approval

Workflow Documents
Do the following:
Create a Query
1. Open the AOT
2. Right-click on the Query node and select New Query
3. Rename the query to PurchOrderDocument
4. Expand the Data Sources node in the newly created query
5. Right-click and select New Data Source
6.Next expand the salestable data source and right-click on the Data Sources node inside the saletable data source
7. Select New Data Source and set the  Properties
8.Next expand the SalesLine data source and right-click on the Data Sources node inside the SalesLine data source
 

Task

Tasks are the most generic workflow elements. Tasks provide application specific behavior that you define in the AOT. Each task supports a single unit of work that is defined by one step. This means a workflow task can have only one step. A task does not have a fixed outcome. However, you can add any number of custom outcomes to the task, such as Completed or Skipped.
Each task must have at least one outcome of type Complete and an action menu item for the task work item button to display in the user interface.

This procedure describes how to create a new workflow task:
1. In the AOT, expand the Workflow node
2. Right-click the Tasks node and then select New Task. A new workflow task group displays under the Tasks node
3. Right-click the new workflow task and then click Properties
4. In the Properties sheet, set the properties as required


Approval

Workflow Approvals
Approvals are the specialized type of tasks. The main difference between tasks and approvals is that tasks can have only single step of work but approvals can have multiple steps and sub-workflows as well.
Approvals are specialized workflow elements designed to support approval scenarios. Approvals have a set of fixed outcomes that the workflow supports. These outcomes are as follows:
Approve - Outcome type Complete.
 Reject - Outcome type Return to the originator of the workflow.
RequestChange - Outcome type
ChangeRequested from the originator or another person in the workflow process.
Deny - Outcome type Deny

This procedure describes how to create a new workflow approval:
1. In the AOT, expand the Workflow node
2. Right-click the Approvals node and then select New Approval. A new workflow approval group displays under the Approvals node
3. Right-click the new workflow approval and then click Properties
4. In the Properties sheet, set the properties as required

Popular posts from this blog

Code to get customer Primary Address in Ax 2012

Below Code to get customer Primary Address in Ax 2012. CustTable custTable_P; DirPartyTable dirPartyTable_P; DirPartyLocation dirPartyLocation_P; DirPartyLocationRole dirPartyLocationRole_P; LogisticsLocation logisticsLocation_P; LogisticsLocationRole logisticsLocationRole_P; LogisticsPostalAddress logisticsPostalAddress_P; LogisticsPostalAddress primaryAddress_P; while select custTable_P where custTable_P.AccountNum =='ED_01029' join dirPartyTable_P where dirPartyTable_P.RecId == custTable_P.Party join dirPartyLocation_P where dirPartyLocation_P.Party == custTable_P.Party && dirPartyLocation_P.IsPrimary==NoYes::Yes join dirPartyLocationRole_P where dirPartyLocationRole_P.PartyLocation == dirPartyLocation_P.RecId join logisticsLocationRole_P where logisticsLocationRole_P.RecId == dirPartyLocationRole...

Table lists which can have large number of records in Ax 2012

If you are facing database or application performance issue then you can check these tables that may have large number of records. ECORESPRODUCTVARIANTDIMENSIONVALUE INVENTBATCH ECORESPRODUCTMASTERDIMENSIONVALUE ECORESPRODUCTMASTERDIMENSIONVALUE ECORESPRODUCT ECORESPRODUCTTRANSLATION ECORESPRODUCT ECORESPRODUCTVARIANTDIMENSIONVALUE INVENTDIMCOMBINATION ECORESRELEASESESSIONPRODUCT ECORESRELEASEPRODUCTLEGALENTITY INVENTSUMLOGTTS INVENTCOSTLISTPARM GENERALJOURNALACCOUNTENTRY GENERALJOURNALACCOUNTENTRYZAKAT_SA SMMTRANSLOG LEDGERENTRYJOURNALIZING DIMENSIONFOCUSBALANCE MARKUPTRANS INVENTTRANSPOSTING INVENTREPORTDIMHISTORY SALESPARMLINE SOURCEDOCUMENTLINE INVENTTRANS TRANSACTIONLOG INVENTTRANSORIGIN INVENTSETTLEMENT SALESPARMSUBTABLE SALESPARMTABLE SOURCEDOCUMENTHEADER SALESPARMUPDATE SQLSYNCINFO GENERALJOURNALENTRY SUBLEDGERVOUCHERGENERALJOURNALENTRY CUSTSETTLEMENT SMMACTIVITYPARENTLINKTABLE INVENTSUMDATETRANS LEDGERTRANSSTATEMENTTMP DIMENSIONFOCUSLE...

Code to get Invoice settlement data for customer in ax 2012

This is simple Code to get Invoice settlement amount data for customer payment in ax 2012. This data is after posting of data. select sum(SettleAmountCur) from custSettlement where custSettlement.TransRecId == custtrans.RecId If you want get settlement amount before posting than you can refer spectrans table.The table SpecTrans contains all the transactions marked for settlement for payment journal. while select spectrans join custtransopen join custtrans where spectrans.SpecCompany == ledgerjournaltrans.DataAreaId && spectrans.SpecTableId == ledgerjournaltrans.TableId && spectrans.SpecRecId == ledgerjournaltrans.RecId && spectrans.RefCompany == custtranssopen.DataAreaId && spectrans.RefTableId == custtranssopen.TableId && spectrans.RefRecId == custtranssopen.RecId && custtransopen.RefRecId == custtrans.RecId && custtransopen.AccountNum == custtrans.AccountNum { info...