Professional Documents
Culture Documents
A Step by Step Guide: Kevin Wilson
A Step by Step Guide: Kevin Wilson
DocNum
MI_BPM_TRIGGER
MT_BPM_TRIGGER
(DT_BPM_TRIGGER)
2b) MI_BPM_TRIGGER
4b) MI_BPM_TRIGGER_MATCH
DEMO XI IS CRM
S I
O 1) MT_ORDER 2a) ORDERS D
Order A Receiver Determination O
Sales Order
(DT_ORDER) (ORDERS05)
P C
Middleware
XI IS
ECC
I
F 4a) MT_ORDERRESPONSE Sales Order
3) ORDRSP D
Order Response T Receiver Determination O
P (DT_ORDERRESPONSE) (ORDERS05) Response
C
Authored by
Kevin Wilson
With contributions by Alistair Rooney and David Propst
http://www.geniepress.com
http://www.geniepress.com
Background ............................................................................................................................... 8
About the Author ....................................................................................................................... 9
How to use this book ................................................................................................................ 9
The Scenario ............................................................................................................................ 10
Introduction
Background
One of the most interesting developments in recent years has been the
emergence of graphical mapping to chart out an organizations business
processes. One of the leaders in this has been the ARIS product. SAP and IDS
Scheer1 have teamed up to bring us Business Process Management or BPM. XI
plays an important role in this by linking the business processes together.
This book describes the process to map a BPM scenario in XI. It covers the 5
phases required:
System configuration
Integration Builder Design
Integration Builder Configuration
SAP Configuration
Testing
It does not try to describe all the functionality that you will encounter in XI and the
BPM module. After all BPM is larger than just XI and conversely XI is more than
just BPM! It does not attempt to provide you with a production solution for the
scenario provided. The scenario is made up to incorporate as many aspects of XI
messaging and BPM as is feasible.
A note about authorization: The tasks in the system configuration phase will take
a higher level of authorization then the remaining 4 phases. The tasks in the first
phase will require the role of SAP_XI_ADMINISTRATOR. The remaining for
phases can be performed by a user with the role of SAP_XI_DEVELOPER.
1
IDS Scheer are the developers of the ARIS product
Alistair Rooney is a Principal NetWeaver Consultant with SAP. Alistair has been
involved in 11+ SAP projects and has been Development Lead or Technical
Architect on all but two of these. Alistair has a wide range of skills as a result of
his 25+ years in the industry. Alistair started as a junior programmer in the early
80s and progressed to an IT Manager position in London, UK before entering
consulting. Alistair is an accredited member of the Institute of IT Management,
holds a number of Technical Certifications and is an accredited TOGAF
Architect. Alistair is the author of Foundations of Java for ABAP Programmers.
David W Propst was the SAP NetWeaver XI lead for Insight Inc., SAP
NetWeaver PI / Integration architect at Monsanto and now holds a similar
position at HD Supply. He has over 18 years of experience creating innovative
system integration solutions, the past nine years of which have been integrating
SAP systems. David has designed, implemented, and managed large scale B2B,
EDI, and EAI solutions in the transportation, distribution, and retail industries.
David has proven his ability to utilize his vast technical and business knowledge
to produce highly available, scalable, maintainable, and above all profitable -
solutions.
Key:
Italic words Transactions
Italic words -> Italic wordsMenu path to follow
Underlined Indicates a Tab on a
screen
All figures are labeled with a number. If that figure is referenced in the text then it
is reference with this number. For your convenience a table of figures is listed
after the table of contents.
The Scenario
Dont Panic this all seems rather daunting at this point but the diagram in
Figure 1 will simplify our task considerably!
DocNum
MI_BPM_TRIGGER
MT_BPM_TRIGGER
(DT_BPM_TRIGGER)
2b) MI_BPM_TRIGGER
4b) MI_BPM_TRIGGER_MATCH
DEMO XI IS CRM
S I
O 1) MT_ORDER 2a) ORDERS D
Order A
Receiver Determination O
Sales Order
(DT_ORDER) (ORDERS05)
P C
Middleware
XI IS
ECC
I
F 4a) MT_ORDERRESPONSE Sales Order
3) ORDRSP D
Order Response T Receiver Determination O
P (DT_ORDERRESPONSE) (ORDERS05) Response
C
So, lets get going with our first task. We need to configure the DEMO system if its
not a part of the business landscape. In our case we need to create
DEMOCOMPONENT as a Software Component in the SLD. Most SAP shops do not
allow just anyone into the SLD. This task is usually performed by a development
lead or basis. You will need the SAP_XI_ADMINISTRATOR or
SAP_XI_CONTENT ORGANIZER role to perform the SLD tasks. You may need
to have basis set this up for you.
1. Log in to the XI server
2. Run transaction SXMB_IFR to start the Integration Builder
2
The Systems Landscape Directory can be viewed as a separate entity to the Integration Builder.
So, if we had to access the SLD from the Integration Builder every time we made a change, it
would slow the whole process down considerably. The obvious solution was to provide a cache
that holds the SLD information within the Integration Builder. Unfortunately this means that when
we make a change to the SLD our changes will not be picked up by the Integration Builder. For
this reason we always clear the SLD cache and reload the SLD Software Components.
Interface Mapping
Interface Mapping
Message Interface (Receiver Determination,
Interface Determination,
(WSDL) Sender agreement,
Receiver agreement)
Message Type
Message Mapping
(XSD)
Data Type
(XSD)
These elements will then be used in the XI configuration phase to assemble the
required interface.
2.1.1. XI_MAIL
an important step, if you do not see the messages defined here; there was
a problem with the import.
Naming Conventions
At this point Id like a quick word, if you dont mind. Its important that we emphasize the
importance of Naming Conventions here. As you have probably noticed, Data Types have a
prefix of DT, Message Types have a prefix of MT and Message Interfaces have MI and so on.
This is not the whole picture, however. You may want to qualify the interfaces further by using a
suffix of OUT for outbound (Remember this is outbound from the server never from XI) and IN
for inbound. Trust us, (Were professionals), defining your standards up front will take away hours
of frustration later.
Now that we have our mail structure, we need to create 3 new data types (It may
be a good idea to read the sidebar on Naming Conventions first):
DT_ORDER: The XML definition of the order message being sent in from
the demo vendor using the SOAP protocol
DT_ORDERRESPONSE: The XML definition of the order response
message being save to an FTP drive
DT_BPM_TRIGGER: A small XML message that we will use to send
through the BPM process. Whenever possible, its best not to send large
files through the BPM process. Both the ORDERS and
ORDERRESPONSE messages will create a message of this type which
will be correlated with each other
2.2.1. DT_ORDERS
4. Save
2.2.2. DT_ORDERRESPONSE
4. Save
2.2.3. DT_BPM_TRIGGER
4. Save
Now that we have the data types we need to build the next layer up by creating
3 message types:
MT_ORDER: Linked to Data type DT_ORDER and used in Message
Interface MI_ORDER
MT_ORDERRESPONSE: Linked to Data type DT_ORDERRESPONSE
and used in Message Interface MI_ORDERRESPONSE
MT_BPM_TRIGGER: Linked to Data type DT_BPM_TRIGGER and used
in Message Interfaces MI_BPM_TRIGGER (Orders) and
MI_BPM_TRIGGER_MATCH (Order Response)
2.3.1. MT_ORDER
4. Save
2.3.2. MT_ORDERRESPONSE
4. Save
2.3.3. MT_BPM_TRIGGER
4. Save
Right! Take a coffee break here if you need one. The next layer is the Message
Interface layer. We need to create 5 Message Interfaces. Go back to the
diagram in Figure 1 on page 11 to refresh your memory:
MI_ORDER: Outbound asynchronous interface of type MT_ORDER. This
interface will be configured with 2 receivers. 1 being the CRM system
receiving the ORDERS IDoc using the IDoc adapter and the second being
the Integration process for the message interface MI_BPM_TRIGGER.
Well also configure a Sender Agreement for this message interface for
the SOAP call using the SOAP adapter
MI_ORDERRESPONSE: Inbound asynchronous interface of type
MT_ORDERRESPONSE. This will be configured between the ECC and
DEMO system. The DEMO system will receive the Order Response via
the FILE adapter
MI_EMAIL: Abstract asynchronous interface of External Definition type
XI_MAIL (Configured in 2.1.1. XI_MAIL)
MI_BPM_TRIGGER: Abstract asynchronous interface of type
MT_BPM_TRIGGER. This will serve as the interface for the ORDER
message getting to the BPM engine. It will be correlated with the
MI_BPM_TRIGGER_MATCH using the DocNum field
MI_BPM_TRIGGER_MATCH: Abstract asynchronous interface of type
MT_BPM_TRIGGER. This will serve as the interface for the
2.4.1. MI_ORDER
6. Save
2.4.2. MI_ORDERRESPONSE
6. Save
2.4.3. MI_BPM_TRIGGER
6. Save
2.4.4. MI_BPM_TRIGGER_MATCH
6. Save
2.4.5. MI_EMAIL
8. Save
Only perform this step if you do not already have access to the applicable IDoc
message type in one of the Software Components. You should see it there if you
do! We will import the IDoc types to the DEMO component. (Have a look at
Figure 23).
1. Under the DEMO component - right mouse click on imported objects ->
New
2. Enter system and login details -> Continue
3. When the results come back expand the IDoc tree
4. Select the applicable IDocs (ORDERS.ORDERS05 and
ORDRSP.ORDERS05) -> Finish
OK now we need to bring these all together with Message Mappings! We will
need to create the 5 Message Mappings that we need as follows:
MM_Order_to_ORDERS05: The MT_ORDER Message Type will be
mapped to the ORDERS (ORDERS05) IDoc
MM_Order_to_BPM_TRIGGER: The MT_ORDER Message Type will
also be mapped to the small MT_BPM_TRIGGER message type which
will be used to kick off the BPM scenario
MM_ORDERS05_to_OrderResponse: The ORDRSP (ORDERS05) IDoc
will be sent from the ECC system and mapped to the
MT_ORDERRESPONSE XML Message Type
MM_ORDRSP_to_BPM_TRIGGER: The ORDRSP (ORDERS05) IDoc
will also be mapped to our MT_BPM_TRIGGER message type which will
correlate to the ORDERS BPM message and effectively end the BPM
process
MM_BPM_to_EMAIL: This is a mapping between the message type
MT_BPM_TRIGGER and the XI_MAIL -> Mail External Definition Type
which will form an email message. This will be used in the BPM process to
send out an email message when the Order Response message is not
received in a specified period of time
2.6.1. MM_Order_to_ORDERS05
8. Save
2.6.2. MM_Order_to_BPM_TRIGGER
8. Save
2.6.3. MM_ORDERS05_to_OrderResponse
8. Save
2.6.4. MM_ORDRSP_to_BPM_TRIGGER
8. Save
2.6.5. MM_BPM_to_EMAIL
8. Save
This is a good point to review what weve done so far. Weve created the
necessary data types, XSD imports, message types, Message Interfaces,
imported IDocs and created Message Mappings. Whew! A lot of work I know, but
were nearly there! We now need to bring this all together by creating 5 interface
mappings as follows:
IM_Order_to_ORDERS05:
o Source interface: MI_ORDER
o Target interface: ORDERS.ORDERS05
o Message mapping: MM_Order_to_ORDERS05Error! Bookmark not defined.
IM_Order_to_BPM_TRIGGER:
o Source interface: MI_ORDER
o Target interface: MI_BPM_TRIGGER
o Message mapping: MM_Order_to_BPM_TRIGGER
IM_ORDRSP_to_OrderResponse:
o Source interface: ORDRSP.ORDERS05
o Target interface: MI_ORDERRESPONSE
o Message mapping MM_ORDERS05_to_OrderResponse
IM_ORDRSP_to_BPM_TRIGGER_CATCH:
o Source interface: ORDRSP.ORDERS05
o Target interface: MI_BPM_TRIGGER_MATCH
o Message mapping MM_ORDRSP_to_BPM_TRIGGER
IM_BPM_to_EMAIL:
o Source interface: MI_BPM_TRIGGER
2.7.1. IM_Order_to_ORDERS05
10. Save
2.7.2. IM_Order_to_BPM_TRIGGER
10. Save
2.7.3. IM_ORDRSP_to_OrderResponse
10. Save
2.7.4. IM_ORDRSP_to_BPM_TRIGGER_CATCH
2.7.5. IM_BPM_to_EMAIL
10. Save
2.8.1. Actions
2.8.1.1. Send_Order
8. Save
2.8.1.2. Receive_Order
8. Save
2.8.1.3. Receive_BPM_TRIGGER
5. Since this action represents an inbound interface, click the icon under
the Inbound Interfaces tab
6. Drag and Drop your Message Interface MI_BPM_TRIGGER in to the new
line of Inbound Interfaces. Ensure the full Object Type (Message
Interface), Name (MI_BPM_TRIGGER) and Namespace
(http://www.demo.com/XI) are entered
7. Your action will look as shown in Figure 36
8. Save
2.8.1.4. Send_OrderResponse
8. Save
2.8.1.5. Receive_OrderResponse
8. Save
2.8.1.6. Receive_BPM_TRIGGER_MATCH
8. Save
The integration scenario is where things start to get exciting! It brings your
actions together with the system components, showing the interfacing between
the systems.
2.8.2.1. IS_Orders
9. Click Apply
10. Your Integration Scenario should now look as described in Figure 43. Note
that these vertical columns that we are building up are termed Swim
Lanes. If youve done any swimming youll know why, if not, dont worry
about it.
22. Now we need to add our actions that we created earlier to the Integration
Scenario are you getting excited yet?
23. Right mouse click the Order swim lane at the top -> Insert Action
24. Expand your Software Component for the Demo system and select the
Action Send_Order -> Apply as shown in Figure 46
26. We now will add the 2 receive actions. One in the integration process and
1 in the CRM system
27. Another way of adding actions is to drag and drop them on to the right
swim lane at the right position. This is pretty cool so well use this
technique to add all the actions!
28. Drag the Receive_BPM_TRIGGER to the 2nd swim lane below the level of
the send order action (this ensures that its not treated as a parallel action
to the send order. We need this in order to link them together).
29. Similarly Drag the Receive_Order to the 3rd swim lane (CRM) below the
level of the send order action and adjacent to the
Receive_BPM_TRIGGER action (again this tells XI not to treat these as
parallel or synchronous actions).
30. Now add the last 3 actions (to end up with a view as shown in Figure 49)
as follows:
a. Send_OrderResponse in ECC system down and to the right of Receive_Order
b. Receive_OrderResponse in Demo system down and to the left of
Send_OrderResponse
c. Receive_BPM_TRIGGER_MATCH in Integration Process template down and to
the left of Send_OrderResponse and adjacent to Receive_OrderResponse
31. This is great! We have all the actions, but now we need to focus on
linking the actions together
32. Single click the Send_Order action -> Hold down the Shift Key and single
click the Receive_BPM_TRIGGER action to select both
33. Right mouse click one of the selected actions -> Create Connection
Between Selected Actions as shown in Figure 50
39. Similarly connect the following actions together and add the respective
interface mappings shown in parentheses:
a. Send_Order -> Receiver_Order (IM_Order_to_ORDERS05)
b. Send_OrderResponse -> Receive_OrderResponse
(IM_ORDRSP_to_OrderResponse)
c. Send_OrderResponse -> Receive_BPM_TRIGGER_MATCH
(IM_ORDRSP_to_BPM_TRIGGER_CATCH)
40. Your integration scenario should now look as shown in Figure 52
41. We can now define our action start and end points
42. The Send_Order is our start action so Right mouse click Send_Order
43. Click Define Action as Start Action as shown in Figure 53
The integration process handles the workflow within the BPM engine. It is based
on SAPs webflow (workflow) engine.
The integration process that we need will contain the following functionality:
Receive the order message (Abstract interface MI_BPM_TRIGGER).
Activate correlation on field DocNum
Assign DocNum to a container element called DocNum
Wait for the receipt of the order response message (Abstract interface
MI_BPM_TRIGGER_MATCH). Use correlation on DocNum
If the order response message does not come in 5 minutes, then fire off
an alert and send an email
If the order response message is received in time then end the process
gracefully
If the entire integration process does not end in 30 minutes then fire off an
alert and cancel the process. This prevents an orphan process from
hanging around in the BPM engine forever, which will use unnecessary
resources.
For the completed view of what we will develop see Figure 56. We will be
working in the Container, Properties and Graphical Definition windows. We will
also switch to the Correlation Editor to perform the correlation mapping there.
2.9.1. IP_Orders
1. In the container window, type DocNum in the name field and enter. The
defaults are good for this variable so well use them
2. To add the Orders message, type Orders in the name field and choose
Abstract interface in the Category field see figure 57 below
1. We now need to add the first step in the process, the receive orders step
2. Click, drag and drop the receiver step from the side bar on the
Graphical Definition window to between the start and stop circles as
shown in Figure 59 (Orange lines will denote where the step will be
inserted if you were to let the mouse button go at that point)
3. In the Properties window you will notice that the Receive step is displayed
there.
21. With the receive orders step highlighted, click the Value field next to the
Activate Correlation name and choose DocNum as shown in Figure 67
1. Drag the container operation step icon to between the Receive Orders
step and the Stop marker as shown in Figure 69
10. Your scenario and Container Operation step should look as shown in
Figure 72
1. Drag the block step icon to between the Container Operation Step and
the Stop marker as shown in Figure 73
1. Right mouse click on the block -> Insert -> Deadline Branch as shown in
Figure 75
1. Drag the control step icon to the center of the block created in the step
before as shown in Figure 77
branch
2. Drag the transformation step icon to between the control step created
in the step before and the end of the block as shown in Figure 79
9. For the target message, from the dropdown ( ), select the BPM_EMAIL
Interface Variable created in item 1 of this step.
10. Your transformation step should now look as shown in Figure 81
1. In the Graphical Definition window drag the send step icon to between
the transformation step created in the step before and the end of the block
as shown in Figure 82
7. Select SystemError from the dropdown for field Exception. This system
error exception was defined against the block defined in STEP 4 Create Block on
page 57
8. Leave the other fields as defaulted. Your completed send step properties
should look as shown in Figure 84
1. Right mouse click on the block -> Insert -> Exception Branch as shown in
Figure 87
1. Drag the control step icon to the center of the SystemError exception
block created in the step before as shown in Figure 89
Figure 89: Integration Process - Add Alert Control step to Exception SystemError
1. Drag the control step icon to after the control step, created in the step
before, and the end of the exception block as shown in Figure 90
Figure 90: Integration Process - Add Cancel Process Control step to Exception
SystemError
1. Drag the control step icon to after the TimeOut control step, created in
the step before, and the end of the exception block as shown in Figure 93
Figure 93: Integration Process - Add Cancel Process Control step to Exception TimeOut
Figure 94: Integration Process - Add receiver step for order response
2. In the Properties window change the step name from Receive1 to Receive
Order Response
3. Click the button in the Message field to choose the Interface Variable ->
OrderResponse as shown in Figure 95
4. Select DocNum from the dropdown menu for variable Use Correlations
5. Save
6. Select DocNum from the dropdown menu for variable Activate
Correlations
7. Save
8. Your Send Order Response step properties should now look as shown in
Figure 96
We need to configure an alert category for the alerts we are going to issue in the
BPM Integration Process. Heres how we go about doing that.
1. Fire up the Runtime Workbench from the Integration Builder by clicking
Runtime Workbench
2.10.1. TESTALERT
4. Click the Dynamic Text checkbox on. The 2 tabs Long and Short Text
and Optional Subseq. Activities disappear. Clicking this checkbox
allows you to pass variables to the alert in the BPM process as
shown in STEP 5a Create process control step to throw alert in
deadline branch on page 59
5. Leave the other fields with their defaults
6. Save. Your alert now looks as shown in Figure 102
2.10.2. TESTALERT1
4. Click the Dynamic Text checkbox on. The 2 tabs Long and Short Text
and Optional Subseq. Activities disappear. Clicking this checkbox
allows you to pass variables to the alert in the BPM process as
shown in STEP 6a Create System Error alert in exception branch on
page 63. This is very useful to us!
5. Leave the other fields with their defaults
6. Save. Your alert now looks as shown in Figure 104
1. Close the webgui session and go back to your browser showing the
Runtime Workbench
2. Click the button Update Table
3. Your newly created Alert categories are now viewable as shown in Figure
105
3.1.1. Order_OrderResponse_Demo
6. Click create
7. Save
3.2.1. IP_ORDERS
9. Enter IP_ORDERS as the Logical System. (If you dont do this step then
you will get an error that the Logical System could not be determined for
IP_ORDERS
2. Click Create
3. On the Receiver tab click to add a line to the Inbound Interfaces
8. Save
2. Click Create
3. On the Receiver tab click to add a line to the Inbound Interfaces
5. Save
3.4.1. CC_DEMO_SOAP_SENDER
4. Click Create
5. Click for the Adapter Type field to choose the SOAP adapter
6. Enter the following entries:
a. Select the Sender radio button
b. Transport Protocol: HTTP
c. Message Protocol: SOAP 1.1.
d. Adapter Engine: Integration Server
e. Default Interface Namespace: http://www.demo.com/XI
f. Default Interface Name: MI_ORDER (NB: This is required for the
web service to work properly)
g. Quality of Service: Exactly Once = Asynchronous call
7. Save
3.4.2. CC_DEMO_FILE_RECEIVER
4. Click Create
5. Click for the Adapter Type field to choose the File adapter
6. Enter the following entries:
a. Select the Receiver radio button
b. Transport Protocol: File System (NFS)
c. Message Protocol: File
d. Adapter Engine: Integration Server
e. Target Directory: /var/xiftp
7. Save
3.4.3. CC_EMAIL
4. Click Create
5. Click for the Adapter Type field to choose the Mail adapter
6. Enter the following entries:
a. Select the Receiver radio button
7. Save
3.4.4. GeneratedReceiverChannel_IDoc
6. Click continue
6. Continue
2. Continue
2. Click Continue
2. Click Continue
2. Click Continue
3. Click Finish
4. You should get the Configuration Wizard log that shows you all the objects
that were generated as shown in Figure 122
6. Click continue
7. Continue
1. The system should default in the Sender agreement that you created in
STEP 3 Sender Agreement on page 82
2. Continue
2. Click Continue
2. Click Continue
2. Click Continue
3. Click Finish
4. You should get the Configuration Wizard log that shows you all the objects
that were generated as shown in Figure 131
6. Click continue
6. Continue
1. The system should default in the Sender agreement that you created in
STEP 3 Sender Agreement on page 82
2. Continue
4. Click Continue
2. Click Continue
3. Click Continue
3. Click Finish
4. You should get the Configuration Wizard log that shows you all the objects
that were generated as shown in Figure 140
6. Click continue
7. Continue
1. The system should default in the Sender agreement that you created in
STEP 3 Sender Agreement on page 82
3. Continue
Phase 3 Integration Builder Configuration Genie Press 2007 Page 100 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 101 of 159
Creating a BPM Scenario in XI
3. Click Continue
4. Click Continue
Phase 3 Integration Builder Configuration Genie Press 2007 Page 102 of 159
Creating a BPM Scenario in XI
3. Click Finish
4. You should get the Configuration Wizard log that shows you all the objects
that were generated as shown in Figure 149
Phase 3 Integration Builder Configuration Genie Press 2007 Page 103 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 104 of 159
Creating a BPM Scenario in XI
7. Click continue
Phase 3 Integration Builder Configuration Genie Press 2007 Page 105 of 159
Creating a BPM Scenario in XI
6. Continue
1. The system should default in the Sender agreement that you created in
STEP 3 Sender Agreement on page 82
2. Continue
Phase 3 Integration Builder Configuration Genie Press 2007 Page 106 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 107 of 159
Creating a BPM Scenario in XI
2. Click Continue
2. Click Continue
Phase 3 Integration Builder Configuration Genie Press 2007 Page 108 of 159
Creating a BPM Scenario in XI
3. Click Finish
4. You should get the Configuration Wizard log that shows you all the objects
that were generated as shown in Figure 158
Phase 3 Integration Builder Configuration Genie Press 2007 Page 109 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 110 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 111 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 112 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 113 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 114 of 159
Creating a BPM Scenario in XI
3.8.1. DEMO:MI_ORDER
Phase 3 Integration Builder Configuration Genie Press 2007 Page 115 of 159
Creating a BPM Scenario in XI
1. From the main menu of the Integration Builder choose Tools -> Define
Web Service
Phase 3 Integration Builder Configuration Genie Press 2007 Page 116 of 159
Creating a BPM Scenario in XI
3. Click Continue
4. Click propose URL -> Change as follows:
a. http://<srv>:<adapter_port>/XISOAPAdapter/MessageServlet?chan
nel=<party>:<service/system>:<cchannel>) -> Continue
i. <srv> = Server running XI
ii. <adapter_port> = Adapter engine port = 8000
iii. <party> = If communicating outside of your landscape this is
the party you have identified
iv. <service/system> = Sending system or service
v. <cchannel> = Communication channel
b. Our value is:
http://mysapapps02.sapgenie.com:8000/XISOAPAdapter/Message
Servlet?channel=:DEMO:CC_DEMO_SOAP_SENDER
5. On entering the required URL the screen look as shown in Figure 172
Phase 3 Integration Builder Configuration Genie Press 2007 Page 117 of 159
Creating a BPM Scenario in XI
6. Click Continue
7. Click on the name field to select the message interface MI_ORDER as
shown in Figure 173
9. Click Continue
10. Specify sender as shown in Figure 175:
- Service: DEMO
- Interface Name: MI_ORDER
- Interface Namespace: http://www.demo.com/XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 118 of 159
Creating a BPM Scenario in XI
Phase 3 Integration Builder Configuration Genie Press 2007 Page 119 of 159
Creating a BPM Scenario in XI
4.1.1. SAPCRM
4.2.1. ORDERS05
This is where you register the allowable IDoc types metadata for the IDoc
adapter. i.e. If you dont put an entry here for the IDoc type that you wish you will
get a metadata error in XI when it tries to read the IDoc metadata from the
system.
1. On the XI server use Transaction IDX2
2. Click new
3. Enter IDoc type ORDERS05 and applicable port SAPCRM as shown in
Figure 179
4. Click Continue
5. The message should come back that the structure was loaded
successfully
6. The client list under the port comes from the RFC destination setting that
you have loaded using IDX1. Your screen should look similar to that
shown in Figure 180
PHASE 5 : TESTING
Well done, if youve reached this point you are now ready to see if all your hard
work fits together properly. Read the sidebar on XMLSpy to make sure you have
all the right tools to test properly.
5. Click the source icon and copy the XML payload (shown below)
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_ORDER xmlns:ns0="http://www.demo.com/XI">
<Order_Num>KEVINSPONUMBER</Order_Num>
<Customer_Num>0001000785</Customer_Num>
<Delivery_Date>20060630</Delivery_Date>
<Order_Line>
<Line_num>000010</Line_num>
<Material>1000001</Material>
<Quantity>1</Quantity>
<Price>1.50</Price>
</Order_Line>
</ns0:MT_ORDER>
6. Click OK
7. Ensure MI_ORDER.wsdl is selected as shown in Figure 186
8. Click OK
9. This ensures that you have the right WSDL for going forward
10. Click OK
11. This brings you to the Window to select soap operation name as shown in
Figure 187
14. Enter the values we have used to test before as described in 5.1.1. Create
a sample XML payload on page 122. See Figure 188 for the entered data
15. From the menu select Soap -> Send request to server as shown in Figure
189
The Integration Server, Integration Engine and Adapter Engine all display a more
detailed view. The Integration Server will provide a high level overview of
messages that are processed by the Integration Server.
View the audit log and message details on the Adapter Engine
1. Start the Runtime Workbench
2. Click Message Monitoring
3. Select Adapter Engine <servername> and click the Display button
4. Click Start to view messages in the last hour
1. Start your email client to verify receipt of the email and then get a coffee
youre done!
Glossary
ABAP
ABAP is a powerful programming language provided by SAP that can be used to
extend the functionality of SAP.
Abstract Interface
An abstract interface is an interface that can be used both inbound and
outbound.
Adapter Engine
The adapter engine is used to connect the integration engine to external systems
via various adapters.. Adapters are used to convert the messages into specific
protocols and formats for the external systems that they were designed for. For
example: the JDBC adapter is used to convert messages into database queries
and execute them against external database systems.
ALE
Application Link Enabling (ALE) is a middleware tool provided by SAP to link
SAP applications with both other SAP applications and non-SAP applications.
Alert
An Alert is a message that is sent when a pre-configured condition is reached
and typically used to monitor for exception conditions in computer systems and
business processes. Alerts can be delivered via e-mail, fax, or SMS. SAP has
extensive functionality for defining, monitoring, and routing Alerts.
Asynchronous Message
The message is "non-blocking". The sending application does not wait for a
response message from the receiving service and continues processing. A
response to the message will come in a separate "call-back" message if required.
See also synchronous.
BPM
Business process Management (BPM) commonly refers to the design and
processing of Integration Processes.
Business Service
A Business Service is used to represent a system that sends and receives
messages. Business Services are similar to Business Systems except that they
are not stored in the System Landscape Directory (SLD). You would typically
use Business Services to represent systems of your business partners because
there systems are not in your landscape.
Business System
Business systems are defined in the System Landscape Directory (SLD) and
represent the logical systems that are the senders and receivers of messages.
Communication Channel (CC)
A communication channel defines the adapter (protocol) that will be used to
communicate messages to a business system or service.
Correlation
A correlation is used to match XML messages that are participating in an
instance of an Integrating Process. In a correlation you define XML elements that
are used to join one or more XML messages. You must specify a correlation in a
receive step of an Integration process so that XI will know what inbound
message to match with the run-time instance of the Integration Process.
Data Types
A Data Type is an XML Schema Definition (XSD) and is used to define the
structure of a message type. A data type can be used to validate payloads of
messages.
IDOC
An IDOC is an electronic document that is in a SAP proprietary format for
exchanging data between systems. There are IDOC formats for exchanging
almost any business document, transaction, or master data object.
IDOC Meta Data
IDOC Meta Data is used to validate and process IDOCs. This Meta Data is
managed by transaction IDX2 and can be loaded from the external SAP system
via RFC.
Integration Builder
This is the central tool for the design and configuration of XI objects. The
integration builder is divided into two areas: Design and Configuration. These two
areas are referred to as: Design Integration Repository and Configuration
Integration Directory.
Integration Directory
The Integration Directory is where all XI configuration objects are stored. The
Integration builder is used to manipulate objects in the integration repository. The
Integration Server accesses the Integration Directory to determine how to
process messages based on these configuration objects.
Integration Engine
This is the central run-time component of the integration server. It is responsible
for receiving, processing, mapping, and sending of XML messages.
Integration Process
An integration process is where you define a cross system business workflow for
processing messages that span multiple business systems.
Integration Repository
The integration Repository is where all XI design objects are stored. The
Integration builder is used to manipulate objects in the integration repository.
Integration Scenario
An Integration Scenario is used to document the integration between business
systems. It can contain links to all of the objects that involved in the exchange of
messages between systems.
Integration Server
The Integration server is the central engine for processing messages in
Exchange Infrastructure. The Integration Server uses setting in the Integration
Directory to determine what business systems to send inbound messages to and
what mappings are required in the process.
Interface Determination
An Interface Determination is used to define which inbound interface and
interface mapping a message will be processed by. Interface Determination
entries are selected based on the sender, outbound interface, and receiver.
Interface Mapping
Interface Mappings are used to register a message mapping program to an
inbound and outbound interface in the integrating repository. XI uses the
Interface Mapping to select the message mapping programs associated with
request and response messages for the specified interfaces.
Message Interfaces
A Message Interface defines an interface between application systems that is
both programming language and platform independent. In a Message Interface
you define the message type and communication parameters of the interface.
Communication parameters define a message as inbound or outbound and
asynchronous or synchronous.
Message Mapping
A Message Mapping is used to transform one XML message into another.
Message mappings are defined by using the XI graphical mapping editor that is
accessed in the design side of the Integration Builder.
Message Types
A Message Type references the data type that it used to define the structure of a
message.
Namespace
**TEMP**.
Receiver Agreement
A receiver agreement is used to determine how to transform a message so that it
can be processed by a receiver. This occurs during outbound processing.
Receiver Determination
A receiver determination is used to define the services that a message will be
sent to. XI uses the sending service, party, and message type to select a receiver
determination entry.
RFC
RFC (Remote Function Call) is the name for the standard SAP interface for
communicating between SAP systems. RFC can be used to call a function
remotely on another SAP system or a non-SAP system that has implemented a
RFC interface using the SAP RFC SDK.
Runtime Workbench
The Runtime Workbench (RWB) is the central tool for monitoring the processing
and performance of messages and for the monitoring and testing the individual
components of Exchange Infrastructure.
Sender Agreement
A Sender Agreement is used to determine how to transform a message so that it
can be processed by the Integration Engine. This occurs during inbound
processing.
SLD
The System Landscape Directory is a server application that stores information
on the hardware and components in your SAP landscape. XI uses the SLD to
store information on business systems, technical systems, products and software
components.
SOAP
SOAP (Simple Object Access Protocol) is an XML-based protocol for accessing
Web services allowing disparate applications to exchange information over
networks using XML syntax. SOAP acts as an envelope to package the XML
messages sent between client applications and Web services. WSDL and SOAP
work together with WSDL providing detailed descriptions of a Web service and
SOAP providing the actual data transport between the Web service and the
requesting client application (usually over HTTP).
Software Catalog
The software catalog is part of the SLD and is used to store information on the
products and software components in the SAP landscape. This is where new
software components need to have been created before they can be used for
new development.
Software Component Version
Software component versions are the packages that are used in XI to organize
development objects in XI and are defined in the software catalog.
Synchronous Message
The message will block. The sending application will wait for a response from the
receiving service before continuing processing. See also asynchronous.
System Landscape Directory (SLD)
The System Landscape Directory is a server application that stores information
on the hardware and components in your SAP landscape. XI uses the SLD to
store information on business systems, technical systems, products and software
components.
WSDL
WSDL (Web Services Description Language) is an XML-based language used to
describe and locate Web services. It is the language used by UDDI (Universal
Description, Discovery, and Integration), which is an XML-based registry where
businesses list information about themselves and their available Web services.
WSDL works hand-in-hand with SOAP, where WSDL describes a Web service
and the functionality it provides, and SOAP is used by the client application to
actually call the functions listed in the WSDL description.
XML
The eXtensible Markup Language (XML) is a specification from the World Wide
Web Consortium (W3C) that defines a meta language for describing data. In
XML applications, data is described by surrounding it with customizable, text-
based tags that give information about the data itself as well as its hierarchical
structure.
XPATH
XPATH is a language for addressing parts of an XML document.
XSD
An XML Schema Definition (XSD) is an instance of an XML schema written in the
XML Schema language. An XSD defines a type of XML document in terms of
constraints upon what elements and attributes may appear, their relationship to
each other, what types of data may be in them, and other things. It can be used
with validation software in order to ascertain whether a particular XML document
is of that type, and to produce a Post-Schema Validation Infoset.
XSLT
XSD DT_ORDERS
2b77a3546c0811dac1bbc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
PO Line Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Material" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3556c0811daa843c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Material / SKU Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Quantity" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3566c0811da8019c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Quantity Ordered
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Price" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3576c0811da8d4bc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Line Item Price
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
XSD DT_ORDERRESPONSE
<xsd:documentation xml:lang="EN">
PO Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Status" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
4789afd06c2011dab0ebc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Order Status
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Customer_Num" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3516c0811da8d10c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Customer Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Delivery_Date" type="xsd:dateTime">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3526c0811dab62ec49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Expected Delivery Date
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Order_Line" maxOccurs="unbounded">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3536c0811daa027c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Line Item Detail
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Line_num" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3546c0811dac1bbc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
PO Line Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Line_Status" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
4789afd16c2011dab67dc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Line Status
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Material" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3556c0811daa843c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Material / SKU Number
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Quantity" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3566c0811da8019c49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Quantity Ordered
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Price" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
2b77a3576c0811da8d4bc49fac172862
</xsd:appinfo>
<xsd:documentation xml:lang="EN">
Line Item Price
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
XSD DT_BPM_TRIGGER
<xsd:documentation xml:lang="EN">
Variable 4
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
MI_ORDER.WSDL
</wsdl:binding>
<wsdl:service name="MI_ORDERService">
<wsdl:port name="MI_ORDERPort" binding="p1:MI_ORDERBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
location="http://mysapapps02.sapgenie.com:8000/XISOAPAdapter/MessageServlet?channel=:DEMO:CC_DEMO_SOAP
_SENDER&version=3.0&Sender.Service=DEMO&Interface=http%3A%2F%2Fwww.demo.com%2FXI%5E
MI_ORDER" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<xs:annotation>
<xs:documentation>Encoding name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Subject" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail Subject</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="From" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail From</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="To" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail To</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Date" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail date</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MailID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail ID</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FetchReport">
<xs:annotation>
<xs:documentation>Fetch Report for XI - Mail Adaper</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Server" type="xs:string">
<xs:annotation>
<xs:documentation>Server URL</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Greeting" type="xs:string">
<xs:annotation>
<xs:documentation>Server Greeting Message</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="User" type="xs:string">
<xs:annotation>
<xs:documentation>User Name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Date" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Mail Date</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Messages" type="xi:FetchedMessages">
<xs:annotation>
<xs:documentation>Mail Messages</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="FetchedMessages">
<xs:sequence>
<xs:element name="item" type="xi:FetchedMessage" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="new" type="xs:int">
<xs:annotation>
<xs:documentation>the number of new messages found</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="total" type="xs:int">
<xs:annotation>
<xs:documentation>the number of total messages found</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="FetchedMessage">
<xs:sequence>
<xs:element name="Subject" type="xs:string">
<xs:annotation>
<xs:documentation>Mail Subject</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="From" type="xs:string">
<xs:annotation>
<xs:documentation>Mail From</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="To" type="xs:string">
<xs:annotation>
<xs:documentation>Mail To</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message_ID" type="xs:string">
<xs:annotation>
<xs:documentation>Mail ID</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="status" type="xs:string">
<xs:annotation>
<xs:documentation>the status of XI processing</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:string">
<xs:annotation>
<xs:documentation>the XI message ID associated with the mail message</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:schema>
MM_Order_to_ORDERS05
The following is a text view of the message mapping. All constants have been
added between the parentheses.
E.g. setting field DIRECT of Segment EDI_DC40 to constant 2 is depicted:
/ORDERS05/IDOC/EDI_DC40/DIRECT=const(2)
And this corresponds to the mapping:
/ORDERS05/IDOC/EDI_DC40/RCVPRT=const(LS)
/ORDERS05/IDOC/EDI_DC40/RCVPRN=const(CRSCLNT555)
/ORDERS05/IDOC/E1EDK01=const(E1EDK01)
/ORDERS05/IDOC/E1EDK01/@SEGMENT=const(E1EDK01)
/ORDERS05/IDOC/E1EDK01/ACTION=const(000)
/ORDERS05/IDOC/E1EDK01/CURCY=const(USD)
/ORDERS05/IDOC/E1EDK01/ZTERM=const(0002)
/ORDERS05/IDOC/E1EDK01/BSART=const(NB)
/ORDERS05/IDOC/E1EDK03=const(E1EDK03)
/ORDERS05/IDOC/E1EDK03/@SEGMENT=const(E1EDK03)
/ORDERS05/IDOC/E1EDK03/IDDAT=const(002)
/ORDERS05/IDOC/E1EDK03/DATUM=/ns0:MT_ORDER/Delivery_Date=
/ORDERS05/IDOC/E1EDKA1=const(E1EDKA1)
/ORDERS05/IDOC/E1EDKA1/@SEGMENT=const(E1EDKA1)
/ORDERS05/IDOC/E1EDKA1/PARVW=const(AG)
/ORDERS05/IDOC/E1EDKA1/PARTN=/ns0:MT_ORDER/Customer_Num=
/ORDERS05/IDOC/E1EDK02=const(E1EDK02)
/ORDERS05/IDOC/E1EDK02/@SEGMENT=const(E1EDK02)
/ORDERS05/IDOC/E1EDK02/QUALF=const(001)
/ORDERS05/IDOC/E1EDK02/BELNR=/ns0:MT_ORDER/Order_Num=
/ORDERS05/IDOC/E1EDK02/DATUM=currentDate()
/ORDERS05/IDOC/E1EDP01=/ns0:MT_ORDER/Order_Line=
/ORDERS05/IDOC/E1EDP01/@SEGMENT=const(E1EDP01)
/ORDERS05/IDOC/E1EDP01/POSEX=formatNumber(/ns0:MT_ORDER/Order_Line/Line_num=)
/ORDERS05/IDOC/E1EDP01/ACTION=const(001)
/ORDERS05/IDOC/E1EDP01/MENGE=/ns0:MT_ORDER/Order_Line/Quantity=
/ORDERS05/IDOC/E1EDP01/MENEE=const(EA)
/ORDERS05/IDOC/E1EDP01/PMENE=const(EA)
/ORDERS05/IDOC/E1EDP01/VPREI=/ns0:MT_ORDER/Order_Line/Price=
/ORDERS05/IDOC/E1EDP01/PEINH=const(1)
/ORDERS05/IDOC/E1EDP01/E1EDP20=const(E1EDP20)
/ORDERS05/IDOC/E1EDP01/E1EDP20/@SEGMENT=const(E1EDP20)
/ORDERS05/IDOC/E1EDP01/E1EDP20/WMENG=/ns0:MT_ORDER/Order_Line/Quantity=
/ORDERS05/IDOC/E1EDP01/E1EDP20/AMENG=/ns0:MT_ORDER/Order_Line/Quantity=
/ORDERS05/IDOC/E1EDP01/E1EDP19=const(E1EDP19)
/ORDERS05/IDOC/E1EDP01/E1EDP19/@SEGMENT=const(E1EDP19)
/ORDERS05/IDOC/E1EDP01/E1EDP19/QUALF=const(002)
/ORDERS05/IDOC/E1EDP01/E1EDP19/IDTNR=/ns0:MT_ORDER/Order_Line/Material=
MM_Order_to_BPM_TRIGGER
The following is a text view of the message mapping. All constants have been
added between the parentheses.
MM_ORDERS05_to_OrderResponse
The following is a text view of the message mapping. All constants have been
added between the parentheses.
E.g. setting field DIRECT of Segment EDI_DC40 to constant 2 is depicted:
/ORDERS05/IDOC/EDI_DC40/DIRECT=const(2)
/ns0:MT_ORDERRESPONSE/Status=const(01)
/ns0:MT_ORDERRESPONSE/Customer_Num=/ORDERS05/IDOC/E1EDK01/RECIPNT_NO=
/ns0:MT_ORDERRESPONSE/Delivery_Date=ifWithoutElse(stringEquals(/ORDERS05/IDOC/E1EDK03/IDDAT=,
const(002)), /ORDERS05/IDOC/E1EDK03/DATUM=)
/ns0:MT_ORDERRESPONSE/Order_Line=/ORDERS05/IDOC/E1EDP01=
/ns0:MT_ORDERRESPONSE/Order_Line/Line_num=/ORDERS05/IDOC/E1EDP01/POSEX=
/ns0:MT_ORDERRESPONSE/Order_Line/Line_Status=const(01)
/ns0:MT_ORDERRESPONSE/Order_Line/Material=ifWithoutElse(stringEquals(/ORDERS05/IDOC/E1EDP01/E1EDP1
9/QUALF=, const(002)), /ORDERS05/IDOC/E1EDP01/E1EDP19/IDTNR=)
/ns0:MT_ORDERRESPONSE/Order_Line/Quantity=/ORDERS05/IDOC/E1EDP01/MENGE=
/ns0:MT_ORDERRESPONSE/Order_Line/Price=/ORDERS05/IDOC/E1EDP01/VPREI=
MM_ORDRSP_to_BPM_TRIGGER
The following is a text view of the message mapping. All constants have been
added between the parentheses.
E.g. setting field DIRECT of Segment EDI_DC40 to constant 2 is depicted:
/ORDERS05/IDOC/EDI_DC40/DIRECT=const(2)
/ns0:MT_BPM_TRIGGER/DocName=const(ORDRSP)
MM_ BPM_to_EMAIL
The following is a text view of the message mapping. All constants have been
added between the parentheses.
E.g. setting field DIRECT of Segment EDI_DC40 to constant 2 is depicted:
/ORDERS05/IDOC/EDI_DC40/DIRECT=const(2)
And this corresponds to the mapping:
/ns1:Mail/From=const(webmaster@sapgenie.com)
/ns1:Mail/To=const(Kevin@sapgenie.com)
/ns1:Mail/Content_Type=const(text/html)
/ns1:Mail/Content=concat(const(<b>Key field</b> :), /ns0:MT_BPM_TRIGGER/Key1=)
Index Table
business landscape 9
Business Process Management 6, 132
A Business Service 70, 71, 72, 73, 74, 77, 83, 89,
101
Business services 9
ABAP Objects 6
Business System 41, 72, 78, 88, 94
Abstract asynchronous 19
business systems 9
Abstract interface 47, 49
Actions 33, 34, 35, 36, 37, 38, 39, 42, 43, 44,
45, 46
Receive_BPM_TRIGGER 33, 35, 36, 43, 44, C
45
Receive_BPM_TRIGGER_MATCH 34, 38, cache 10
39, 44, 46 communication channel
Receive_Order 33, 35, 43, 44 IDoc 72
Receive_OrderResponse 33, 37, 38, 44, 45, Communication Channel 72, 73, 74, 78
46 Content Encoding 75
Send_Order 33, 34, 42, 43, 44, 45, 46 File Construction Mode 74
Send_OrderResponse 33, 36, 37, 44, 45 File Type 74
Adapter Message Protocol 72, 73, 75
EMail 7 SOAP 78
File 19, 73, 89 Transport Protocol 72, 73, 75
FTP 7 Write Mode 74
IDoc 7, 9, 19, 22, 23, 33, 35, 36, 72, 78, 88, communication channels 9, 72, 76
94, 116, 117, 136 configuration scenario 67
Mail 74, 101, 142 Configuration Scenario 67, 81, 86, 92, 99, 105
SOAP 19, 72, 73, 77, 83 container 47, 48, 49, 52, 55, 59
XI 83, 95, 100 Container 48, 49, 50, 52, 55, 59
Adapter Engine 72, 73, 75, 122, 124 container element 55
adapter framework 9 Container Elements 49
Adapter Specific Identifiers 69 Container Operation step 52, 53
Adapter Type 72, 73, 74 Container Operation step 53
ALE 6 Container Operation step 53
alert 7, 48, 55, 59, 63, 64, 65, 125 Container Operation step 55
alert category 62, 63, 64, 66 correlated 7, 14, 19, 33
fixed recipients 65 correlation 47, 49, 50, 51, 61
role 40, 42, 65 Correlation Container 50
Alert Configuration 62 correlation mapping 48
alert framework 7 CRM 7, 9, 19, 33, 41, 42, 43, 72, 76, 116, 132
Alert Inbox 125 Customer Relationship Management See CRM
ARIS 6
Assign 45, 47, 52, 53, 65, 81, 87, 92, 93, 99,
105 D
Asynchronous 19, 20, 21, 22, 57, 72
data type 14, 15, 16, 28, 132, 133
Data Type 12, 15, 16, 132
B DT_BPM_TRIGGER 18
DT_ORDER 14, 16, 17, 133, 139
Binary 74 MT_BPM_TRIGGER 18
BPM See Business Process Management
Correlation Editor 48, 50
Graphical Definition 48, 49, 50, 51, 52, 56, E
57, 61
BPM engine 7, 19, 47, 48
ECC 7, 9, 19, 23, 33, 41, 42, 44, 72, 88, 94, 132
BPM process 14, 19, 23, 33, 64, 65
Electronic Data Interchange 6
BPM scenario 6, 9, 23
ERP Central Component See ECC Exception 56, 57, 58, 59, 60, 61
Exactly Once 72 exceptions 54
exception handling 7 Message field 50, 61
Extensible Markup Language See XML mode 54
Extensible Style Language Transformation See Mode 57
XSLT Receive step 49
External Definition 12, 13, 14, 19, 22, 23, 32 send step 56, 57, 58
Import 13 source message 56
Stop marker 52, 53
target message 56
F transformation step 55, 56
Use Correlations 62
Integration Process Service 68
FTP 7, 14
Integration Repository 10, 118
Integration Scenario 33, 39, 40, 41, 42, 43, 44,
45, 46, 47, 67, 132
G Insert Application Component 39, 41, 42
IS_Orders 39, 47, 67
GeneratedReceiverChannel_IDoc 76 system components 39
Integration server 7
Integration Server 72, 73, 75, 122, 123, 132
H Interface Determination 76, 80, 85, 91, 97, 98,
103, 104, 108, 109, 110
Interface Mapping 28, 29, 30, 31, 32, 33, 45, 56,
HTTP 72
118, 132
IM_BPM_to_EMAIL 28, 32, 33, 56
IM_Order_to_BPM_TRIGGER 28, 29, 30, 45
I IM_Order_to_ORDERS05 28, 29
IM_ORDRSP_to_BPM_TRIGGER_CATCH
Idoc 28, 31, 45
ORDRSP 7, 9, 23, 25, 26, 28, 30, 31, 33, 36, IM_ORDRSP_to_OrderResponse 28, 30
45, 91, 97, 108, 109, 110, 150 source interface 29, 30, 31, 32
IDoc 132 target interface 29, 30, 31, 32
ORDERS 7, 9, 14, 15, 19, 23, 24, 29, 33, 35, Interface Namespace 72, 114
46, 80, 98, 103, 107, 109, 110, 111, 112, Interface Objects 13
114, 146 Interface Variable 50, 51, 53, 56, 57, 61, 62
ORDERS05 7, 24, 29, 117, 146, 147, 148, Intermediate Document See IDoc
149 Internal Communication 77, 83, 88, 94, 100
IDOCS 6 Involved Messages 50, 51
IDS Scheer 6 IP_ORDER 33
imported IDocs 28 IP_ORDERs 48, 68
Inbound asynchronous 19
Inbound Interfaces 35, 37, 38
Incoming Message 77, 83, 88, 94, 100 L
Integration Builder 9, 62, 112
Integration Directory 9, 10, 67, 119
Logical System 69
Integration Engine 122, 123
Integration Process 19, 41, 43, 44, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 68, 69, 83, 95, 100, 132 M
Abstract Interface 55
Activate Correlation 52 Mapping Interface 12
Activate Correlations 62 Mapping Objects 24, 25, 26, 27, 29, 30, 31, 32
block 53, 54, 55, 56, 57, 58, 59, 60 Message Type
control step 55, 57, 58, 59, 60, 61, 64 ORDERRESPONSE 17
Correlation List 50 Message Interface 12, 16, 19, 20, 21, 22, 29,
Correlation Name 50 30, 31, 32, 33, 34, 36, 37, 38, 49, 50, 51, 55,
deadline branch 54, 55, 56, 57, 61 71, 76, 114, 132
namespace 11, 13
NFS 73 T
Target Field 52
O Test configuration 119
Testing 6, 118, 120
Outbound asynchronous 19 timeout 7, 57, 60
outbound interface 34, 36 Transaction
Outbound Interfaces 34, 36, 70 ALRTCATDEF 63
Outgoing Message 78, 83, 89, 95, 101 IDX1 116, 117
IDX2 117
SM59 116
SWI1 125
SXMB_IFR 9
DT_ORDERS 15
W ORDERRESPONSE 14, 15, 16, 25, 30, 37,
70, 92, 112, 148, 149
web service 72, 113, 114, 115, 120 XI_MAIL 13, 19, 22, 23, 27, 32
Web Services Description Language See XIAPPLUSER 122
WSDL XML 6, 7, 9, 14, 23, 118, 119, 120, 121, 122,
Wizard 76, 77, 82, 88, 93, 94, 99, 100, 106, 113 132
Configuration 77, 82, 88, 94, 100 XML payload 118, 119
Configuration log 81, 87, 99, 105 XML Schema Definition See XSD
workflow 47 XMLSpy 118, 120
workflow log 125 XPath 51, 53
WSDL 6, 115, 120, 121, 132, 139 XPATH 6
XSD 12, 13, 15, 16, 28, 132, 133, 134, 136, 142
XSLT 6, 132
X
XI Message
DT_BPM_TRIGGER 14, 16, 136