Integration of ERP with other System is common part of any organization. Basically I am focusing on BAAN ERP 5 and other systems using QCD/DCD with C4WS and BPM.
We can have Inbound and outbound data flow to BAAN. Following are Steps for sending data out from Baan to other systems using QCD/DCD which termed as Polling.
Steps:
1. Create QCD/DCD
2. Create .jar file and Deploy the same in C4WS
3. Write BOI Dll to Poll Data from Baan V
4. Test Dll using SOAP UI Tool
STEP 1: Create QCD/DCD
For polling, First we need QCD/DCD which define Dll and Fields which we are going to send from BAAN
QCD:
<?xml version="1.0"?>
<QCD>
<ManagerDef Type="BackOrderPoll" JavaPackage="com.boi.distribution.BackOrderPoll">
<Query>BackOrderPollEvent</Query>
</ManagerDef>
<QueryDef Type="BackOrderPollEvent" Language="BaanDLL" >
<DLL>otcboidll0058</DLL>
<Method Scope="Out">tcboidll0058.pollevent</Method>
<Parameters>
<Element Scope="Out">PollBackOrderset</Element>
<Element Scope="Out" JavaPackage="com.baan.erp.error" >ErrorSet</Element>
<Element Scope="Out">EventId</Element>
<Element Scope="Out">Verb</Element>
<Element Scope="In">Source</Element>
</Parameters>
<Return>
<Element>PollBackOrdResult</Element>
</Return>
</QueryDef>
<ElementDef Type="o.evnt" Id="EventId" Model="Data" Datatype="i4"/>
<ElementDef Datatype="string" Model="Data" Id="Verb" Type="o.verb" Length="10" Description="Verb"/>
<ElementDef Datatype="string" Model="Data" Id="Source" Type="Source" Length="5" Description="Source"/>
<ElementDef Type="PollBackOrderset" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="ZeroOrMore">
<Element>BackOrderStruct</Element>
</Group>
</ElementDef>
<ElementDef Type="tcboidll0058.pollevent" Id="PollBackOrdResult" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="Required">
<Element>PollBackOrderRetval</Element>
<Element>PollBackOrderset</Element>
<Element JavaPackage="com.baan.erp.error" >ErrorSet</Element>
<Element>EventId</Element>
<Element>Verb</Element>
</Group>
</ElementDef>
<ElementDef Type="tcboidll0058.pollevent" Id="PollBackOrderRetval" Model="Data" Datatype="i4"/>
<ElementDef Type="tcboidll0058.pollevent" Id ="tcboidll0058.pollevent" Model="Data" Datatype="i4"/>
</QCD>
DCD:
<?xml version="1.0"?>
<DCD>
<ElementDef Type="BackOrderStruct" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="Required">
<Element>BackOrderDate</Element>
<Element>BackOrderId</Element>
<Element>BackOrderQty</Element>
<Element>BackOrderReasonCode</Element>
<Element>CsrId</Element>
<Element>CustomerId</Element>
<Element>DistributorId</Element>
<Element>ItemCode</Element>
<Element>ItemCommonDescription</Element>
<Element>ItemCommonSize</Element>
<Element>OrderedItemId</Element>
<Element>OrderHeaderId</Element>
<Element>OrderLineId</Element>
<Element>OrderPlacedBy</Element>
<Element>OrderTypeId</Element>
<Element>PlanningCode</Element>
<Element>PoNumber</Element>
<Element>QuantityOrdered</Element>
<Element>ShipmentId</Element>
<Element>ShipToAddress</Element>
<Element>SplitNumber</Element>
<Element>TimesBackOrdered</Element>
</Group>
</ElementDef>
<ElementDef Type="BackOrderDate" Id="BackOrderDate" Model="Data" Datatype="string" Length="20"/>
<ElementDef Type="BackOrderId" Id="BackOrderId" Model="Data" Datatype="i4"/>
<ElementDef Type="BackOrderQty" Id="BackOrderQty" Model="Data" Datatype="i4"/>
<ElementDef Type="BackOrderReasonCode" Id="BackOrderReasonCode" Model="Data" Datatype="string" Length="2"/>
<ElementDef Type="CsrId" Id="CsrId" Model="Data" Datatype="string" Length="40"/>
<ElementDef Type="CustomerId" Id="CustomerId" Model="Data" Datatype="string" Length="5"/>
<ElementDef Type="DistributorId" Id="DistributorId" Model="Data" Datatype="string" Length="5"/>
<ElementDef Type="ItemCode" Id="ItemCode" Model="Data" Datatype="string" Length="47"/>
<ElementDef Type="ItemCommonDescription" Id="ItemCommonDescription" Model="Data" Datatype="string" Length="450"/>
<ElementDef Type="ItemCommonSize" Id="ItemCommonSize" Model="Data" Datatype="string" Length="132"/>
<ElementDef Type="OrderedItemId" Id="OrderedItemId" Model="Data" Datatype="string" Length="11"/>
<ElementDef Type="OrderHeaderId" Id="OrderHeaderId" Model="Data" Datatype="string" Length="16"/>
<ElementDef Type="OrderLineId" Id="OrderLineId" Model="Data" Datatype="string" Length="11"/>
<ElementDef Type="OrderPlacedBy" Id="OrderPlacedBy" Model="Data" Datatype="string" Length="10"/>
<ElementDef Type="OrderTypeId" Id="OrderTypeId" Model="Data" Datatype="string" Length="2"/>
<ElementDef Type="PlanningCode" Id="PlanningCode" Model="Data" Datatype="i4"/>
<ElementDef Type="PoNumber" Id="PoNumber" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="QuantityOrdered" Id="QuantityOrdered" Model="Data" Datatype="i4"/>
<ElementDef Type="ShipmentId" Id="ShipmentId" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="ShipToAddress" Id="ShipToAddress" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="SplitNumber" Id="SplitNumber" Model="Data" Datatype="i4"/>
<ElementDef Type="TimesBackOrdered" Id="TimesBackOrdered" Model="Data" Datatype="i4"/>
</DCD>
Step 2: Create .Jar File from Business Studio and Deploy in C4WS
Go to Business Studio >> Open Project >> Build >> Build Project
This will create .jar file in local folder of Project. Copy the .Jar file and use the same to deploy in C4WS. We will get Web Service URL which will be used by other application to call BAAN Dll and fetch data from BAAN ERP.
Step 3: Create BOI Dll
Create library in Baan as per your naming convention as BOI Dll. Add function which is mentioned in QCD to fetch data from Baan and return data set to other system.We are using one common event table to get key fields to send data to other system. We can add parameter as Key field to Retrieve data from Baan. Use Key fields and Fetch all fields from related table and put into Structure.
function extern long tcboidll0058.pollevent(
domain tcmcs.long PollBackOrderSet,
domain tcmcs.long StndErrorStruct,
ref domain awcom.num o.evnt,
ref domain tcmcs.str10 o.verb,
ref domain tcmcs.str20 o.osrc
)
{
// Add logic to get key fields and fetch all fields.
ret.backord.1 = container.set.fields(PollBackOrderSet,
"PollBackOrdResult")
ret.backord = container.set.fields(ret.backord.1,
"PollBackOrderset")
ret.backord.1 = container.set.fields(PollBackOrderSet,
"BackOrderStruct",
"BackOrderDate", back.ord.date,
......}
return (PollBackOrderSet)
Step 4: Test using SOUP UI
Copy Web Service URL from C4WS and Use it to create Request in SOAP UI as Follows:
Once we send request from SOAP UI, we will get response from Baan as Return Structure in SOAP UI.
We can have Inbound and outbound data flow to BAAN. Following are Steps for sending data out from Baan to other systems using QCD/DCD which termed as Polling.
Steps:
1. Create QCD/DCD
2. Create .jar file and Deploy the same in C4WS
3. Write BOI Dll to Poll Data from Baan V
4. Test Dll using SOAP UI Tool
STEP 1: Create QCD/DCD
For polling, First we need QCD/DCD which define Dll and Fields which we are going to send from BAAN
QCD:
<?xml version="1.0"?>
<QCD>
<ManagerDef Type="BackOrderPoll" JavaPackage="com.boi.distribution.BackOrderPoll">
<Query>BackOrderPollEvent</Query>
</ManagerDef>
<QueryDef Type="BackOrderPollEvent" Language="BaanDLL" >
<DLL>otcboidll0058</DLL>
<Method Scope="Out">tcboidll0058.pollevent</Method>
<Parameters>
<Element Scope="Out">PollBackOrderset</Element>
<Element Scope="Out" JavaPackage="com.baan.erp.error" >ErrorSet</Element>
<Element Scope="Out">EventId</Element>
<Element Scope="Out">Verb</Element>
<Element Scope="In">Source</Element>
</Parameters>
<Return>
<Element>PollBackOrdResult</Element>
</Return>
</QueryDef>
<ElementDef Type="o.evnt" Id="EventId" Model="Data" Datatype="i4"/>
<ElementDef Datatype="string" Model="Data" Id="Verb" Type="o.verb" Length="10" Description="Verb"/>
<ElementDef Datatype="string" Model="Data" Id="Source" Type="Source" Length="5" Description="Source"/>
<ElementDef Type="PollBackOrderset" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="ZeroOrMore">
<Element>BackOrderStruct</Element>
</Group>
</ElementDef>
<ElementDef Type="tcboidll0058.pollevent" Id="PollBackOrdResult" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="Required">
<Element>PollBackOrderRetval</Element>
<Element>PollBackOrderset</Element>
<Element JavaPackage="com.baan.erp.error" >ErrorSet</Element>
<Element>EventId</Element>
<Element>Verb</Element>
</Group>
</ElementDef>
<ElementDef Type="tcboidll0058.pollevent" Id="PollBackOrderRetval" Model="Data" Datatype="i4"/>
<ElementDef Type="tcboidll0058.pollevent" Id ="tcboidll0058.pollevent" Model="Data" Datatype="i4"/>
</QCD>
DCD:
<?xml version="1.0"?>
<DCD>
<ElementDef Type="BackOrderStruct" Model="Elements" JavaPackage="com.boi.distribution.BackOrderPoll">
<Group Occurs="Required">
<Element>BackOrderDate</Element>
<Element>BackOrderId</Element>
<Element>BackOrderQty</Element>
<Element>BackOrderReasonCode</Element>
<Element>CsrId</Element>
<Element>CustomerId</Element>
<Element>DistributorId</Element>
<Element>ItemCode</Element>
<Element>ItemCommonDescription</Element>
<Element>ItemCommonSize</Element>
<Element>OrderedItemId</Element>
<Element>OrderHeaderId</Element>
<Element>OrderLineId</Element>
<Element>OrderPlacedBy</Element>
<Element>OrderTypeId</Element>
<Element>PlanningCode</Element>
<Element>PoNumber</Element>
<Element>QuantityOrdered</Element>
<Element>ShipmentId</Element>
<Element>ShipToAddress</Element>
<Element>SplitNumber</Element>
<Element>TimesBackOrdered</Element>
</Group>
</ElementDef>
<ElementDef Type="BackOrderDate" Id="BackOrderDate" Model="Data" Datatype="string" Length="20"/>
<ElementDef Type="BackOrderId" Id="BackOrderId" Model="Data" Datatype="i4"/>
<ElementDef Type="BackOrderQty" Id="BackOrderQty" Model="Data" Datatype="i4"/>
<ElementDef Type="BackOrderReasonCode" Id="BackOrderReasonCode" Model="Data" Datatype="string" Length="2"/>
<ElementDef Type="CsrId" Id="CsrId" Model="Data" Datatype="string" Length="40"/>
<ElementDef Type="CustomerId" Id="CustomerId" Model="Data" Datatype="string" Length="5"/>
<ElementDef Type="DistributorId" Id="DistributorId" Model="Data" Datatype="string" Length="5"/>
<ElementDef Type="ItemCode" Id="ItemCode" Model="Data" Datatype="string" Length="47"/>
<ElementDef Type="ItemCommonDescription" Id="ItemCommonDescription" Model="Data" Datatype="string" Length="450"/>
<ElementDef Type="ItemCommonSize" Id="ItemCommonSize" Model="Data" Datatype="string" Length="132"/>
<ElementDef Type="OrderedItemId" Id="OrderedItemId" Model="Data" Datatype="string" Length="11"/>
<ElementDef Type="OrderHeaderId" Id="OrderHeaderId" Model="Data" Datatype="string" Length="16"/>
<ElementDef Type="OrderLineId" Id="OrderLineId" Model="Data" Datatype="string" Length="11"/>
<ElementDef Type="OrderPlacedBy" Id="OrderPlacedBy" Model="Data" Datatype="string" Length="10"/>
<ElementDef Type="OrderTypeId" Id="OrderTypeId" Model="Data" Datatype="string" Length="2"/>
<ElementDef Type="PlanningCode" Id="PlanningCode" Model="Data" Datatype="i4"/>
<ElementDef Type="PoNumber" Id="PoNumber" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="QuantityOrdered" Id="QuantityOrdered" Model="Data" Datatype="i4"/>
<ElementDef Type="ShipmentId" Id="ShipmentId" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="ShipToAddress" Id="ShipToAddress" Model="Data" Datatype="string" Length="30"/>
<ElementDef Type="SplitNumber" Id="SplitNumber" Model="Data" Datatype="i4"/>
<ElementDef Type="TimesBackOrdered" Id="TimesBackOrdered" Model="Data" Datatype="i4"/>
</DCD>
Step 2: Create .Jar File from Business Studio and Deploy in C4WS
Go to Business Studio >> Open Project >> Build >> Build Project
This will create .jar file in local folder of Project. Copy the .Jar file and use the same to deploy in C4WS. We will get Web Service URL which will be used by other application to call BAAN Dll and fetch data from BAAN ERP.
Step 3: Create BOI Dll
Create library in Baan as per your naming convention as BOI Dll. Add function which is mentioned in QCD to fetch data from Baan and return data set to other system.We are using one common event table to get key fields to send data to other system. We can add parameter as Key field to Retrieve data from Baan. Use Key fields and Fetch all fields from related table and put into Structure.
function extern long tcboidll0058.pollevent(
domain tcmcs.long PollBackOrderSet,
domain tcmcs.long StndErrorStruct,
ref domain awcom.num o.evnt,
ref domain tcmcs.str10 o.verb,
ref domain tcmcs.str20 o.osrc
)
{
// Add logic to get key fields and fetch all fields.
ret.backord.1 = container.set.fields(PollBackOrderSet,
"PollBackOrdResult")
ret.backord = container.set.fields(ret.backord.1,
"PollBackOrderset")
ret.backord.1 = container.set.fields(PollBackOrderSet,
"BackOrderStruct",
"BackOrderDate", back.ord.date,
......}
return (PollBackOrderSet)
}
Step 4: Test using SOUP UI
Copy Web Service URL from C4WS and Use it to create Request in SOAP UI as Follows:
Once we send request from SOAP UI, we will get response from Baan as Return Structure in SOAP UI.
No comments:
Post a Comment