Friday, 12 February 2016

How to integrate Dynamics AX 2012 R3 AIF Document Service with BizTalk server

Purpose: Purpose of this post is help to Consume AIF Document service in BizTalk and call its method.
Assumption: that target audience has deep knowledge of BizTalk, mapping, schema and orchestration.

First of all you have to create service group that is gateway to your document service. For this post I have to consume VendVendGroupService. I create a new service group  in AOT and drop VendVendGroupService to that node as follow

ServiceGroup

Right click and deploy the service group.

Deploy Service Group


Wait for generate Increment CIL and Infobox shows deployment of All possible Service group
VendorServiceGroupInfolog

Now to System Administration module of dynamics Ax. Click on System Administrationè Setup è Services and Integration frameworkè inbound port.

InBound Port


Now create a visual studio project for BizTalk. There are three sub solution, One for Schema, Map and third for orchestration.

In Schema solution. Add the generate Items and then select consume wcf Service
ConsumingAiFservice

Now add copy wsdl to generate Schemas.
Select metadata Exchange (MEX) endpoint

MetaData


Click next and generate schema

Schema Generation

Wsdl


Schema is generated.

VendorGroupSchema

Go to Schema project and delete the Vendor Group Service Orchestration.


Required Services

Important Schema which will used in mapping.


EntityKeyList Schema has following fields which are used to set values in Request response methods.

Entity List Schema

This key value pair used for search , Field represent table field Name and value is search field.

VendorGroupSchemaDetail

VendorGroup schema is replicate of VendorGroup table, here we use SenderId is used legal entity where operation will perform.

If we see the Service Schema, here all request and response methods are generated.

ServiceSchema


One Schema I create to take input to Interface, and decide which operation is performed I called it for InputSchema.

CustomSchema

This Schema will use for input to Interface. We will discuss it later when we start mapping one by one.


Bindings:
As compare to other wcf service, when we consume wcf service, empty binding files are generated, so we have create binding operations manually.
These operations are based on AIF service Object not AIF service Group, where I wasted hours on it.
Please consider the following screenshot for Service operations used in binding files.
ServiceOperations

The operations in BtsAction will be generated as follow.
Namespace +/+ExternalName+”/”+method name. All Action are similar. For example


Settings for BizTalk Send Receive port is as follow.

NetTCPBindings


Pipeline settings:
Send Pipeline should be XML Transmit.
Receive Pipeline should be XML Receive.
Click on Configure Button and set as following.

WCF Settings.

Remember the Operation Name in SOAP action header mast be identical to Operation Name in logical port in Orchestration.
1234

All action mapping is as follow.
 

<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Operation Name="ReadOP" Action="http://schemas.microsoft.com/dynamics/2008/01/services/VendGroupService/read" />

<Operation Name="CreateOP" Action="http://schemas.microsoft.com/dynamics/2008/01/services/VendGroupService/create" />

<Operation Name="UpdateOP" Action="http://schemas.microsoft.com/dynamics/2008/01/services/VendGroupService/update" />

<Operation Name="DeleteOP" Action="http://schemas.microsoft.com/dynamics/2008/01/services/VendGroupService/delete" />

<Operation Name="FindOP" Action="http://schemas.microsoft.com/dynamics/2008/01/services/VendGroupService/find" />

</BtsActionMapping>

Mappings:
I attached  screenshots for mapping used for calling AIF methods.

Read Method:

Read method is two-step process, first step map the input to Entity list, and then Entity list  to VendGroupReadRequest


Input_To_EntityList

Entitylist_to_VendGroupRequestRead


Create Method:
In the case of Create Mapping is as follow.

InputSchema_to_VendorGroup

VendorGroup_to_CreatVendorGroupRequest

Delete Method:

EntityList_To_DeleteRequest



Update Method:
Update is little tricky, There is field in Update Request Schema, _DocumentHASH, This Field is hidden and every row has its unique value, without that row is did not updated. According to Microsoft Documentation, First you get /find required record using read or find method and then use response data to Update it. For saving time and for the sake of this tutorial, I just pic the_docuemntHash key form previously read response method and hardcode it in map. This is not generic way, but this solve the temporary and my wants to run the Update AIF document method.

FindMessage


Find method:
Find method is works wonder, if you want to search more than one or all records you can call Find method, where is field with Operation, where you can mentions, value Equal, not equal, greater then equal etc. I want to get all vendor group from Dynamics In response, so I sent its value “not equal”. Response message return all values.

FindMessage
 

The code of this tutorial is attached, you can download it from here.

No comments:

Post a Comment

Labels

#veryusefulcode (1) AIF (8) AOT Maps (1) Args (1) Ax 2009 Reports (2) AX 2012 navigation (1) Ax 2012 Interview Questions (1) AX 7 (2) AX Architecture (1) Ax Backup (1) AX Workflow (2) AX2012 (1) AX2012 R2 (1) Ax2012R3 (1) AX2012R3 Dynamics Connector Step by Step Installation and Configuration (1) AX2012R3 EP Step by Step Installation and Configuration EP R3 (1) AX2012R3 HelpServer Step by Step Installation and Configuration (1) AX2012R3 Rapid Start Connector Step by Step Installation and Configuration (1) AX2012R3 Report Server and Analysis Server Step by Step Installation and Configuration (1) AX7 (1) Best practices (1) Blocking user to enter (1) Collection Classes (1) Container (1) D365FO (3) Data Migration Frame Work ax 2012R3 (1) Deleting duplicate Record from Table – Ax2012 (1) Delivery due date notification workflow in Ax 2012 (1) Development Steps EP (1) Dimensions (1) DIXF (1) DMF in Ax 2012 R3 (1) Dynamics Ax 2012 Interview Questions (1) DYNAMICS AX 2012 INTERVIEW QUESTIONS PART 2 (1) DYNAMICS AX 7 (1) EDT relation Migration Tool (1) EP AX 2012 (1) Ep Lookup (1) Error (1) Event Handler (1) F5 (1) File Handling (4) Filter on AX2012 Listpage (1) filtering (2) financial dimensions in AX 2012 (3) form (1) images (1) Installation and Configration (4) Installation and Configuration (11) Installation of Management Reporter 2012 for AX 2012 (1) Interaction class in ax 2012 (1) Interview Question (1) Interview Questions For Ax 2012 (1) Invent DIm (1) Jobs (2) license (1) List page and form menuitem enable code (1) Methods (1) microsoft Dynamics AX 365FO (1) Number Sequence Generation – AX 2012 (5) Number Sequence2012 (1) OLTP-OLAP (1) Passing Args (1) Passing form caller and menu item caller in ax 2012 (1) Passing Multiple Records Args (1) Posting in Ax 2012 (1) POSTING PURCHASE ORDER (1) Query (1) Query Filter Form (2) Query Ranges in X++ (1) Question and Answer (1) Report (1) Reports Controller class (1) RLS in ax 2009 (1) SALES ORDER IMPORT/EXPORT FRAMEWORK BY DMF (1) Security (1) security roles (1) Security Sysqueryrangeutil (1) Sharepoint 2016 (1) SQL SERVER (1) SSRS (2) SSRS Reports Controller class (2) Table collections & Virtual company (1) Time (1) TIPS AND TRICKS (1) Web service AIF (3) Web Services on IIS (AIF) Step by Step Installation and Configuration (1) workflow ax2012 (1) Workflow installation (1) Workflow Method (3) X++ (1)