Presentation is loading. Please wait.

Presentation is loading. Please wait.

Integration framework of SAP Business One Training

Similar presentations


Presentation on theme: "Integration framework of SAP Business One Training"— Presentation transcript:

1 Integration framework of SAP Business One Training
Solution Architects Team February 2011 How to build a B1 to B1 scenario in B1iF

2 B1iF Training: How to build a B1 to B1 Scenario in B1iF
The following training is designed to show you how to build a B1 to B1 integration scenario using B1if. When you end this training you should be able to: Build a scenario to integrate two SAP Business One Systems. Setup the scenario and test it for running.

3 Agenda Case Analysis BPM Diagram B1 Config. Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Data Management Activate Test B1 Event Log Message Log For information on how to install B1if please refer to the Installation How To.

4 Agenda Case Analysis B1 Config. Integration Setup Test BPM Diagram
Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Data Management Activate Test B1 Event Log Message Log

5 Case Analysis: B1 2 B1 Integration BPM Diagram

6 Agenda Case Analysis B1 Config. Integration Setup Test BPM Diagram
Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Activate Test B1 Event Log Message Log

7 B1Config: Create BP Create the Business Partners in the Subsidiary and the Headquarter. Its important that they match the information used in the UDT. Because the Subsidiary will be Purchasing goods from the HQ, the HQ BP (CardCode B1iFHQ) should be created as a Vendor in the Subsidiary company. Because the HQ will be selling goods to the Subsidiary, the Subsidiary BP (CardCode B1iFS1) should be created as a Customer in the HQ company.

8 Agenda Case Analysis B1 Config. Integration Setup Test BPM Diagram
Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Data Management Activate Test B1 Event Log Message Log

9 Integration: Scenario Package
Path: Scenarios/Package Design 1 Type the Scenario Package Identifier. Do not use spaces or special characters in the identifier. (B1PO2B1SO) 2 Write a description for your package. 3 Click on Save 1 2 3 B1i will add a prefix to the Scenario identifier corresponding to the namespace configured. The package will be created in design mode after save. If you want to modify the package later on, you can use the ellipsis (…) button next to the Scenario Package Identifier textbox to select your package.

10 Integration: Scenario Package
Path: Scenarios/Package Design/[Definitions] 1 Click on Definitions 2 Select Global Tables 3 Click on Select Global tables allows us to associate values to a scenario during setup and use them inside the atoms in a very dynamic way. 1 2 3

11 Integration: Scenario Package
Path: Scenarios/Package Design/[Definitions] 1 Click on New 2 Write the name for the Global Table (SysPropertiesTable) 3 Click Select 1 2 3

12 Integration: Scenario Package
Path: Scenarios/Package Design/[Definitions] 1 Click on the Fields L1 textbox and type the number of columns you want for the table. (2) Press the Tab key and wait for the screen to refresh. 2 After refresh a line to configure each column will appear at the bottom of the screen. 1 2

13 Integration: Scenario Package
Path: Scenarios/Package Design/[Definitions] 1 Fill the information for the lines as shown in the tables below. Use the ellipsis button (…) where necessary. 2 Click on Generate. 3 Close the window. 2 1 Line 1 Max Len 20 Disp Len 10 Label SysId Line 2 Max Len 20 Disp Len 10 Label BPIdCode

14 Integration: Scenario Package
Path: Scenarios/Package Design/[Definitions] 1 Click on Save to commit the changes. 1

15 Integration: Scenario Step
Path: Scenarios/Step Design 1 Click on New 2 Type the Scenario Step identifier. Do not use spaces or special characters in the identifier. (PO2SO) 3 Using the ellipsis button (…) select the Package to which you want to assign the step (XXX.B1PO2B1SO). 4 Click on Save 2 3 1 4 B1i will add a prefix to the Scenario identifier corresponding to the namespace configured. The step will be empty and a version number will be automatically assigned for version control.

16 Integration: Inbound (1/2)
Path: Scenarios/Step Design/Working Step/[Inbound] 1 1 Click on Channel. 2 Using the ellipsis button (…) select SAP Business One as Inbound Type. 3 Using the ellipsis button (…) select Asynchronous as Process Mode. 4 Using the ellipsis button (…) select B1 Event as Process Trigger. 5 Using the ellipsis button (…) select B1 Event as Identification Method 6 Using the ellipsis button (…) select Purchase Order (Object Id 22) as Identifier. 7 Click Save. 8 Click Close. 1 2 2 3 4 5 6 7 8

17 Integration: Inbound (2/2)
1 1 Click on Retrieval 2 Using the ellipsis button (…) select DI API as Retrieval Channel 3 Using the ellipsis button (…) select Object as Retrieval Type 4 Click Save 5 Click Close Click Close in the remaining Window of the Inbound configuration 3 1 2 2 2 3 4 5

18 Integration: Outbound
Path: Scenarios/Step Design/Working Step/[Outbound] 1 1 Using the ellipsis button (…) select SAP Business One as Outbound Channel 2 Using the ellipsis button (…) select DI Object as Outbound Format 3 Click on Details 4 Using the ellipsis button (…) select Synchronous Insert with fallback to Update as Method 5 Using the ellipsis button (…) select Orders (Object ID 17) as Object Identifier 6 Click on Save 7 Click on Close 8 9 3 1 2 8 9 3 2 2 4 5 6 7

19 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] The processing is the part in which B1if transforms the inbound message to the outbound message in order to get the desired results. Each processing unit inside the scenario step is called an atom and can do different actions. By default all scenario steps have one atom (called final) associated to an XSLT file to perform the last transformation.

20 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] Create the following atom flow using the arrows at the right an bottom of the atoms: (XSL Transformation, Conditional Processing, Path, XSL Transformation and XSL Transformation)

21 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] 1 Click on the pencil icon at the bottom of the first xForm atom. Each xForm atom will have an XSLT document associated that will be modified later. 2 Type the description of the atom (Global Table Select [Global Table]). 3 Click Save. 4 Click Close. 1 2 3 4 If you enter the characters “[ ]” with some text inside, it will replace the generic name in the diagram.

22 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] 1 Click on the pencil icon at the bottom of the xForm atom Each xForm atom will have an XSLT document associated that will be modified later 2 Type the description of the atom (SO XSL Transformation [SO Trans.]) 3 Click Save 4 Click Close. 1 2 3 4

23 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] 1 Click on the pencil icon at the bottom of the xForm atom at the right of the otherwise atom. Each xForm atom will have an XSLT document associated that will be modified later 2 Type the description of the atom (Ignore Document XSL [Ignore]) 3 Click Save 4 Click Close. 1 2 3 4

24 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] Additional considerations for the xForm atoms The XSL file of each atom will be modified outside B1if. The description of the configuration is meant for reference, the information needed for the modification is the name of the atom XSLT file that is found on each xForm atom.

25 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] The next step is to modify the XSLT file of the xForm atoms using your preferred XML Editor. In order to have access to the XSLT file you should give full access to the BizStore using WebDAV. For instructions please see B1if documentation.

26 Integration: Processing (atom1 - Global Table)
<xsl:template name="transform"> <xsl:variable name="HQSysCode" <xsl:variable name="SenderSysCode" <xsl:for-each select="document(&apos;/com.sap.b1i.vplatform.scenarios.design/vPac.XXX.SASD001/vTbl.SysProp.xml&apos;)//table/row"> <xsl:choose> <xsl:when test="./col[1]=$HQSysCode"> <xsl:copy-of select="."/> </xsl:when> <xsl:when test="./col[1]=$vpSender"> </xsl:choose> </xsl:for-each> </xsl:template> Locate the transform template tag to include your code

27 Integration: Processing (atom1 - Global Table)
<xsl:template name="transform"> <xsl:variable name="HQSysCode" <xsl:for-each select="document(&apos;/com.sap.b1i.vplatform.scenarios.design/vPac.XXX.SASD001/vTbl.SysProp.xml&apos;)//table/row"> <xsl:choose> <xsl:when test="./col[1]=$HQSysCode"> <xsl:copy-of select="."/> </xsl:when> <xsl:when test="./col[1]=$vpSender"> </xsl:choose> </xsl:for-each> </xsl:template> We create variables to get the information of the Internal System Id of the HQ (the receiver system).

28 Integration: Processing (atom1 - Global Table)
<xsl:template name="transform"> <xsl:variable name="HQSysCode" <xsl:for-each select="document('/com.sap.b1i.vplatform.scenarios.design/vPac.XXX.B1PO2B1SO/vTbl.SysPropertiesTable.xml’)//table/row"> <xsl:choose> <xsl:when test="./col[1]=$HQSysCode"> <xsl:copy-of select="."/> </xsl:when> <xsl:when test="./col[1]=$vpSender"> </xsl:choose> </xsl:for-each> </xsl:template> Global Tables are stored in XML files inside the Bizstore. We are copying the information that will be stored inside the table (that is filled during setup) and bring it to the message in order to simplify the xsl commands and queries. In this operation we are only copying the information of the systems involved in the scenario. Note: The path inside the document function in XSLT must be changed accordingly based on the bizstore path of your vPac file.

29 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] 1 Click on the pencil icon at the bottom of the path atom. 2 Write the xPath Expression that will be used to filter the message and activate the execution path. 3 Click Save 4 Click Close. 1 2 3 4 xPath Expression details on the next slide

30 Integration: Processing
Path: Scenarios/Step Design/Working Step/[Processing] Additional considerations for the Conditional and Path atoms The conditional atom is NOT an exclusive execute condition. It will enter all the paths where the validation is true. After the execution of the conditional atom a new root node is created to consolidate all the results. You should take that into account in the following steps. The path atom doesn’t use variables so if the xPath condition is too long consider creating a previous xForm atom. The xPath of the path atom consists of the xPath selection condition that will be copied to the next atom. In our example: =

31 Integration: Processing (atom3 - SO Trans.)
<xsl:template name="transform"> <xsl:variable name="DocEntryCode" <xsl:variable name="DocNumCode" <FinalAtomResult xmlns=""> <B1out type="object"> <Documents> <row> <CardCode><xsl:value-of <DocCurrency><xsl:value-of select="$msg/BOM/BO/Documents/row/DocCurrency"/></DocCurrency> <Reference1><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference1"/></Reference1> <Reference2><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference2"/></Reference2> <Comments><xsl:value-of select="$msg/BOM/BO/Documents/row/Comments"/></Comments> <DocDueDate><xsl:value-of select="$msg/BOM/BO/Documents/row/DocDueDate"/></DocDueDate> <NumAtCard>PO <xsl:value-of select="$DocNumCode"/>(<xsl:value-of select="$DocEntryCode"/>)</NumAtCard> </row> </Documents> <Document_Lines> <xsl:for-each select="$msg/BOM/BO/Document_Lines/*"> <LineNum><xsl:value-of select="LineNum"/></LineNum> <ItemCode><xsl:value-of select="ItemCode"/></ItemCode> <Quantity><xsl:value-of select="Quantity"/></Quantity> <Price><xsl:value-of select="Price"/> </Price> <Currency><xsl:value-of select="Currency"/></Currency> </xsl:for-each> </Document_Lines> </B1out> </FinalAtomResult> </xsl:template> Locate the XSL template where to include your code

32 Integration: Processing (atom3 - SO Trans.)
<xsl:template name="transform"> <xsl:variable name="DocEntryCode" <xsl:variable name="DocNumCode" <FinalAtomResult xmlns=""> <B1out type="object"> <Documents> <row> <CardCode><xsl:value-of <DocCurrency><xsl:value-of select="$msg/BOM/BO/Documents/row/DocCurrency"/></DocCurrency> <Reference1><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference1"/></Reference1> <Reference2><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference2"/></Reference2> <Comments><xsl:value-of select="$msg/BOM/BO/Documents/row/Comments"/></Comments> <DocDueDate><xsl:value-of select="$msg/BOM/BO/Documents/row/DocDueDate"/></DocDueDate> <NumAtCard>PO <xsl:value-of select="$DocNumCode"/>(<xsl:value-of select="$DocEntryCode"/>)</NumAtCard> </row> </Documents> <Document_Lines> <xsl:for-each select="$msg/BOM/BO/Document_Lines/*"> <LineNum><xsl:value-of select="LineNum"/></LineNum> <ItemCode><xsl:value-of select="ItemCode"/></ItemCode> <Quantity><xsl:value-of select="Quantity"/></Quantity> <Price><xsl:value-of select="Price"/> </Price> <Currency><xsl:value-of select="Currency"/></Currency> </xsl:for-each> </Document_Lines> </B1out> </FinalAtomResult> </xsl:template> We create variables to simplify the coding of the reference of the document in the Sales Order.

33 Integration: Processing (atom3 - SO Trans.)
<xsl:template name="transform"> <xsl:variable name="DocEntryCode" <xsl:variable name="DocNumCode" <FinalAtomResult xmlns=""> <B1out type="object"> <Documents> <row> <CardCode><xsl:value-of <DocCurrency><xsl:value-of select="$msg/BOM/BO/Documents/row/DocCurrency"/></DocCurrency> <Reference1><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference1"/></Reference1> <Reference2><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference2"/></Reference2> <Comments><xsl:value-of select="$msg/BOM/BO/Documents/row/Comments"/></Comments> <DocDueDate><xsl:value-of select="$msg/BOM/BO/Documents/row/DocDueDate"/></DocDueDate> <NumAtCard>PO <xsl:value-of select="$DocNumCode"/>(<xsl:value-of select="$DocEntryCode"/>)</NumAtCard> </row> </Documents> <Document_Lines> <xsl:for-each select="$msg/BOM/BO/Document_Lines/*"> <LineNum><xsl:value-of select="LineNum"/></LineNum> <ItemCode><xsl:value-of select="ItemCode"/></ItemCode> <Quantity><xsl:value-of select="Quantity"/></Quantity> <Price><xsl:value-of select="Price"/> </Price> <Currency><xsl:value-of select="Currency"/></Currency> </xsl:for-each> </Document_Lines> </B1out> </FinalAtomResult> </xsl:template> Because we are in a conditional atom, we need to provide an easy way to select the results in all the available paths, no matter which route was taken. Including a single root node can help us later.

34 Integration: Processing (atom3 - SO Trans.)
<xsl:template name="transform"> <xsl:variable name="DocEntryCode" <xsl:variable name="DocNumCode" <FinalAtomResult xmlns=""> <B1out type="object"> <Documents> <row> <CardCode><xsl:value-of <DocCurrency><xsl:value-of select="$msg/BOM/BO/Documents/row/DocCurrency"/></DocCurrency> <Reference1><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference1"/></Reference1> <Reference2><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference2"/></Reference2> <Comments><xsl:value-of select="$msg/BOM/BO/Documents/row/Comments"/></Comments> <DocDueDate><xsl:value-of select="$msg/BOM/BO/Documents/row/DocDueDate"/></DocDueDate> <NumAtCard>PO <xsl:value-of select="$DocNumCode"/>(<xsl:value-of select="$DocEntryCode"/>)</NumAtCard> </row> </Documents> <Document_Lines> <xsl:for-each select="$msg/BOM/BO/Document_Lines/*"> <LineNum><xsl:value-of select="LineNum"/></LineNum> <ItemCode><xsl:value-of select="ItemCode"/></ItemCode> <Quantity><xsl:value-of select="Quantity"/></Quantity> <Price><xsl:value-of select="Price"/> </Price> <Currency><xsl:value-of select="Currency"/></Currency> </xsl:for-each> </Document_Lines> </B1out> </FinalAtomResult> </xsl:template> This is a basic XSLT transformation to generate the Sales Order. The <B1out> node will take care of the internal code of the target document and other technical procedures.

35 Integration: Processing (atom3 - SO Trans.) BIS
<xsl:template name="transform"> <xsl:variable name="DocEntryCode" <xsl:variable name="DocNumCode" <FinalAtomResult xmlns=""> <BOM> <BO> <AdmInfo> <Object>17</Object> <Version>2</Version> </AdmInfo > <Documents> <row> <CardCode><xsl:value-of <DocCurrency><xsl:value-of select="$msg/BOM/BO/Documents/row/DocCurrency"/></DocCurrency> <Reference1><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference1"/></Reference1> <Reference2><xsl:value-of select="$msg/BOM/BO/Documents/row/Reference2"/></Reference2> <Comments><xsl:value-of select="$msg/BOM/BO/Documents/row/Comments"/></Comments> <DocDueDate><xsl:value-of select="$msg/BOM/BO/Documents/row/DocDueDate"/></DocDueDate> <NumAtCard>PO <xsl:value-of select="$DocNumCode"/>(<xsl:value-of select="$DocEntryCode"/>)</NumAtCard> </row> </Documents> <Document_Lines> <xsl:for-each select="$msg/BOM/BO/Document_Lines/*"> <LineNum><xsl:value-of select="LineNum"/></LineNum> <ItemCode><xsl:value-of select="ItemCode"/></ItemCode> <Quantity><xsl:value-of select="Quantity"/></Quantity> <Price><xsl:value-of select="Price"/></Price> <Currency><xsl:value-of select="Currency"/></Currency> </xsl:for-each> </Document_Lines> </BO> </BOM> </FinalAtomResult> </xsl:template>

36 Integration: Processing (atom4 – Ignore)
<xsl:template name="transform"> <xsl:variable name="SenderCardCode" <FinalAtomResult xmlns=""> <b1im_skip info="Filtered Card: {$SenderCardCode}" msglog="true"/> </FinalAtomResult> </xsl:template> Locate the XSL template where to include your code

37 Integration: Processing (atom4 – Ignore)
<xsl:template name="transform"> <xsl:variable name="SenderCardCode" <FinalAtomResult xmlns=""> <b1im_skip info="Filtered Card: {$SenderCardCode}" msglog="true"/> </FinalAtomResult> </xsl:template> Add variables to simplify the XSLT code. In this case we are retrieving the Subsidiary BP Code from the Global Table information that was retrieved earlier.

38 Integration: Processing (atom4 – Ignore)
<xsl:template name="transform"> <xsl:variable name="SenderCardCode" <FinalAtomResult xmlns=""> <b1im_skip info="Filtered Card: {$SenderCardCode}" msglog="true"/> </FinalAtomResult> </xsl:template> Because we are in a conditional atom, we need to provide an easy way to select the results in all the available paths, no matter which route was taken. Including a single root node can help us later.

39 Integration: Processing (atom4 – Ignore)
<xsl:template name="transform"> <xsl:variable name="SenderCardCode" <FinalAtomResult xmlns=""> <b1im_skip info="Filtered Card: {$SenderCardCode}" msglog="true"/> </FinalAtomResult> </xsl:template> The node generates a command to ignore the document.

40 Integration: Processing (atom0 - final)
Additional considerations for the final atom When using conditional atoms the header of the message is modified so we need to correct it before the transformation. 1 Click on the pencil icon at the bottom of the xForm final atom 2 Click on Gen Template button 3 Select Correct after Branch in the Choose document dropdown. 4 Click on Select 5 Click on Save 6 Click on Close 1 5 2 6 3 4

41 Integration: Processing (atom0 - final)
<xsl:template match="/"> <Msg xmlns="urn:com.sap.b1i.vplatform:entity"> <xsl:copy-of <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Header"/> <Body> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/*"/> <Payload Role="R" id="{$atom}"> <xsl:call-template name="transform"/> </Payload> </Body> </Msg> </xsl:template> <xsl:template name="transform"> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/vpf:Payload/FinalAtomResult/*"/> Check the template at the header of the document.

42 Integration: Processing (atom0 - final)
<xsl:template match="/"> <Msg xmlns="urn:com.sap.b1i.vplatform:entity"> <xsl:copy-of <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Header"/> <Body> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/*"/> <Payload Role="R" id="{$atom}"> <xsl:call-template name="transform"/> </Payload> </Body> </Msg> </xsl:template> <xsl:template name="transform"> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/vpf:Payload/FinalAtomResult/*"/> After the Correct After Branch operation /bfa:unbranch is included on each one of the xsl:copy-of commands.

43 Integration: Processing (atom0 - final)
<xsl:template match="/"> <Msg xmlns="urn:com.sap.b1i.vplatform:entity"> <xsl:copy-of <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Header"/> <Body> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/*"/> <Payload Role="R" id="{$atom}"> <xsl:call-template name="transform"/> </Payload> </Body> </Msg> </xsl:template> <xsl:template name="transform"> <xsl:copy-of select="/bfa:unbranch/vpf:Msg/vpf:Body/vpf:Payload/FinalAtomResult/*"/> The command selects the results of all the taken paths no matter the route that the message took.

44 Agenda Case Analysis B1 Config. Integration Setup Test BPM Diagram
Create UDT Create UDF Fill Information Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Data Management Activate Test B1 Event Log Message Log

45 Setup: Steps Path: Scenarios/Setup 1 2 3 4 Click on Steps
5 1 Click on Steps 2 Click on the Activate checkbox 3 Click on the Generate checkbox 4 Click on Save Confirm action Close the Select Scenario Steps Window 6 1 4 2 3

46 Setup: Sender Path: Scenarios/Setup 1 2 3 4 5 6 Click on Sender
Select Maintain Sender List from the dropdown Choose document 3 Click on Select 4 Check the subsidiary system in the list (take note of the internal ID number; you will need it later) 5 Click Save 6 Click Close 6 1 2 3 4 5 6

47 Setup: Receiver Path: Scenarios/Setup 1 2 3 4 5 6 Click on Receiver
Select Maintain Receiver List from the dropdown Choose document 3 Click on Select 4 Check the headquarter system in the list (take note of the internal ID number; you will need it later) 5 Click Save 6 Click Close 6 3 1 2 3 4 5 6

48 Setup: Data Management
2 3 Path: Scenarios/Setup 4 5 1 Click on Data Mgt. 2 Select Table: vTbl.SysPropertiesTable.xml from the dropdown Choose document 3 Click on Select 4 Click two times in Insert to include two new lines to the table. 6 3 1 2 3 4

49 Setup: Data Management
2 3 Path: Scenarios/Setup 4 5 6 1 Fill the lines with the information of the sender and receiver systems as shown in the table Close the window 3 1 The SysId of the systems depends on your configuration.

50 Setup: Activate Path: Scenarios/Setup
2 3 Path: Scenarios/Setup 4 5 1 Click on Activate 2 Click on Activate on the Scenario Setup Result window Confirm Operation 6 1 After the operation is completed the status of the Package is changed from design to activate 2

51 Setup: Check activation
2 3 Path: Scenarios/Control 4 5 6

52 Agenda Case Analysis B1 Config. Integration Setup Test BPM Diagram
Create UDT Create UDF Fill Information Create BP Integration Scenario Package Scenario Step Inbound Outbound Processing Setup Steps Sender System Receiver System Data Management Activate Test B1 Event Log Message Log

53 Test After everything is completed you can perform the following test:
Log into the Subsidiary system and create a Purchase order for the Headquarter Create a Purchase order to another BP

54 Test: Message Log Path: Monitoring/B1 Event Monitor
2 3 Path: Monitoring/B1 Event Monitor 4 5 1 Select Message Status 2 Click on Search/Refresh 6 1 2 B1 Event Monitor will show the messages that are send by the Event Sender service filtered by the status selected. B1 Event Monitor shows all the information needed to identify the event.

55 Test: Message Log 2 3 Path: Monitoring/Message Log 4 5 The result of the tests will be displayed in the message log Select the date and time you want to check. Click on Display/Refresh button to check results For more information about debugging check the Debugging Appendix. 6

56 Thank You! For more information visit SDN at

57


Download ppt "Integration framework of SAP Business One Training"

Similar presentations


Ads by Google