Search This Blog

Thursday 30 January 2014

Implementing Workflows in Microsoft Dynamics AX 2012

Implementing Workflows in Microsoft Dynamics AX 2012:

 WorkFlow:

Workflow is basically a business process that defines how a document flows through the system.

Technical Components:

1. Categories.
2. Types.
3. Approvals.
4. Event Handlers.

Categories:

Categories basically defines in which module workflows can be use.

 Types:

Basically types are the templates which shows the options when we create the workflow.Workflow types contains the Approvals and task.Each approval and task have the different node in the AOT.

Approval:

Approval is basically the task on which we have to assign this task to someone who has to approve or reject the document.

Event Handlers:

When you generate your workflow type or workflow task there are classes added to your project on which events are created in which you write your logic to insert record into some tables based on your event.

For example when the workflow approver approves the  document than the approve event is fire and when the owner of the document submits the record than the event is fire and many more events  fire based on the action of the user.In these events we can write our custome logic if we want.


Implementing A Workflow:

First of all just go to the AOT and than select the workflow -> workflowtypes and than right click and than select the workflow type wizard

As you can see this in the below image:




















A new wizard will open as you can see this in the below image.


One thing you have to do before creating the workflow type is you have to create the query first and then menu item of the document i,e your form.



Query is basically for the table which manages actions of your document i.e approve by for example if the document is for the requisition than purchase requisition id.

You can check the existing purch req table and the query named purchreqdocument for the purchase requisition module for verification.















As you can see in the below image i have put the name of the workflowtype and the query name and the document menuitem name.

If you want to run this workflow on the EP than you can also specify the web menuitem.

You can generate the workflow type for rich client or web client or both.

you can see the options in the above image.

Now click next button you will see all the names of the classes menuitems that will be generate as you can see in the below image.


















After clicking the finish button the wizard will generate the workflowtype project.
As you can see this in the below image.

note:Its mandatory to generate incremental CIL after the generation of the workflow type.




















Now we need to create the Workflow Task.

To do this just go to the task node and than right click Add-in and than select the task wizard.

you can see this in the below image.

























A wizard will open exactly as we did before for the workflow type.

You can see this in the below image.


















As you can see in the above image that all the fields are same as we did for the workflow type except few ones.

Workflow document is basically the name of the workflow type that we created earlier.

Now click next.You will see the new screen on which you have to create the task.

These tasks are basically the tasks that workflow app rover have to do like approve i.e complete the workflow or reject the workflow or request to change the app rover of the workflow.

You can see this in the below image.


















Now click next and you will see all the classes that will be going to generate and than click the finish button your project related to the workflow task will be created.

As you can see this in the below image.

Note: Dont forget to generate the incremental CIL after creation of the project




















Now we need to create the Work Flow Approval

Just go to the approval node and than right click -> addsin -> approval wizard

as you can see this in the below image.

























Now wizard will open where you have to do the all the same steps as you did earlier for the creation of the workflow tasks.

note: don't forget to generate the incrimental CIL after the creation of the project.

After the creation of the workflow approval.Now put the workflow approval and workflow tasks to the supported elements of the workflow type.

As you can see this in the below image.















One more thing you have to do is to write the logic for the initialization of the workflow.Like when the submit button is clicked the workflow should get started.

You can see the exisiting purchreqworkflow class for the purchase requisition workflow.

Basically there is an action type menuitem PurchReqSubmitToWorkflow on which class named PurchReqWorkflow is set.when the user submits the document this menuitem (i.e submit button) is clicked and this class is called which initiates the workflow.

There are lot more events available on which you can write your own custom code.

One more thing you have to do while implementing your workflow is that.You have to set the name of your workflow type and the workflow datasource on the property of the form otherwise your workflow will not be going to work.

For example you can see the existing form of the purchase requisition i.e PurchReqTable.
you can see that in the below image.






There is one more thing you have to do in your workflow that thing is that there will be the table which manages the states of the document in that table you have to write the method submit to workflow  and in that method you have to

Now i will show you our newly created workflow on the client side which we can configure and use.

As I have created my workflow for the procurement and sourcing model.

I just go to the CEU/Procurement and sourcing/Setup/Procurement and sourcing workflows.

And than create new workflow you can see your newly created workflow in it.

You can see this in the below image.




























In the above image you can see our newly created workflow.

This was all from my side related to the implementation of the workflows.

In the next post i will show you on how can we use this workflow on client side.

Thanks

Muhammad Zahid 

Wednesday 8 January 2014

SSRS Reports In Microsoft Dynamics AX 2012 Part 1

There are two types of SSRS Reports in Microsoft Dynamics AX 2012.These are:

1.Query Based.

2.RDP Class Based.

Query:

A Simple Query is used to fetch the data for a report.The filters on the query will be shown on the report dialog.Usually the name of the query is same as the report.

RDP:

Will be required to handle complex business logic which can not be achieved using a query.

In the first part of  the SSRS report I will give you example of Simple Report that will be based only on the Query and than in the next part I will give the example of the RDP class based SSRS Report.

Below are the steps for making the simple query based report.

Step 1:

First of all we have to create the AOT Query on by the help which we will fetch our desire record and than display it on the screen.

I have made the simple query in which i am selecting the record from the HcmBudgetPurposeType table.
















Now just go to the Visual Studio and than create the new project.

Select Dynamics AX -> Report Model  before creating the project as you can see this in the below image.











Now your project will be created.

Now right click your newly created project and than select the new report as you can see this in the below image.












After that your report will be added to your project.After that right click the dataset node of your Report and than select Add Dataset.

As you can see this in the below image.














After that just right click your newly created dataset and than select the properties and than  select the DataSource type.

You will see four types of data Sources in the options.Normally we use the Query and RDP based.

In this Post I am showing the Query Based Reporting so i will select Query.

In the next post I will show you the demo related the RDP Based Reporting. 

Now After the selection of Query set the name of the query that we have created in the first step.

A new wizard will open as you can see this in the below image.











After the selection of the query click next where you have to select the Fields.

As you can see this in the below image.












You can select the Fields and field groups and the display methods.

After the selection of the fields click ok button.After that your work for the Query will be completed.

Now Drag the Dataset onto the design node of the report.

 As you can see this in the below image.




















Now there are two types of designs on the Report.

1. Auto Design.

2.Precision Design.


Auto Design is basically general design of the Report.If you manually want to change the design of the report than you have to make the Precision Design.

The Good Practice for making the  Precision Design is that we should first make the Auto Design and than Right click and than select Create Precision Design.And than Modify the Design of the report.

After that Rebuilt your Project.

And than Right Click your project and than click deploy.Your Report will be deployed on the reporting server.

As you can see this in the image below.

 
















Now after that we have to add this report and Visual Studio Solution into the AOT of Dynamics AX.

Just Right click your Project and than select Add to AOT.

As you can see this in the below image.


















Now After that we have to Create the menu item to run our report in Microsoft Dynamics AX.

Just go to the Dynamics AX and than create the Output type menuitem.

You just have to set the three properties of that menu item i.e
object type = type of the Report and
object = Name of the Report and
ReportDesign = AutoDesign1

As you can see this in the image below.



 
Now after that I am going to run our newly created report.

You can see the output of that report in the below image.













This was related to the Query Based Reports.

In the next post I will show the demo related to the RDP based reports.

If you have any questions than feel free to comment on this or email me.

Thanks

Muhammad Zahid.