BPM Material
Hi All,
I want to learn BPM. I have some questions.
1. What is BPM?
2. What does BPM in XI?
So please send any one proper material to learn BPM.
Thanks & Regards,
satish.
HI,
BPM : Business Process management: We will use it when we want to staful communication, and in the following scenarios
Message split, multicasting, Message merging, SYnc-Async Communication etcc , please see the below links to get more details
check list for BPM https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
monitoring BPm https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
Many other examples can be found under the following link at help.sap.com
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
And some weblogs
https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
/people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
/people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
/people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
/people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
/people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
Also have a look at these seminars,
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
Regards
Chilla
Similar Messages
-
Build daily Big flat file using SAP R/3 material master data
Hi all,
I must build an interface between SAP R/3 4.7 and an external application
Daily a flat file must be generated contaning Material data in full exchange mode
(volume 100 000 materials, <10 fields => ~ File of 30Mo)
No complex mapping, only format mapping (Ex : Price quantity...)
I don't know yet if I will use Idocs or BAPI to extract data. However, I'm sure I must use multiple inbound messages because of volume
After reading documentation, I consider the both following solutions to manage it :
1) A simple asynchronous interface with a file adapter in construction mode APPEND to build flat file progressively with arrival of SAP messages
=>
viable solution ?
Is there problem of concurrent access to file in such a solution ?
(idocs or bapi data will be processed ones following the others )
2) BPM Collecting and Bundling Messages - One Interface
(Unlimited Loop with Deadline trigger correspondint to time I must build flat file)
=>
Each SAP message is a small message but the outbound XML will represent a 30 Mo flat file => Is it a problem ??
Which solution do you advise ?
Is there another ?
Last question : (more general one)
In such scenario, I can't see XI-value added comparing a creation of flat file directly with R/3.
I will generate a big number of idocs, use a big part of XI memory ...
Can you give me your opinion about it ?
Thanks a lot
Best regards
Jean-Charles
Message was edited by:
Jean-Charles
Message was edited by:
Jean-CharlesHi Jean-Charles,
>>>volume 100 000 materials, <10 fields => ~ File of 30Mo
You have a performance task...
>>>Is there problem of concurrent access to file in such a solution ?
No, the adapter framework has its own queueing, the message would be stored and executed later. If sequence is important, you can use EOIO as well.
>>>BPM Collecting and Bundling Messages - One Interface
BPM is not required in your case, you should avoid becoz of performance task. You can append at file adapter, no problem. Bundling and splitting is even possible at Integration Server without BPM.
>>>Each SAP message is a small message but the outbound XML will represent a 30 Mo flat file => Is it a problem ??
Avoid using BAD words
>>>Each SAP message is a small message but the outbound XML will represent a 30 Mo flat file => Is it a problem ??
Use the <a href="https://websmp110.sap-ag.de/quicksizing">Quick Sizer</a> for sizing the hardware.
Regards,
Udo -
Authentication error using PAPI-WS for BPM Studio 10.3
I followed the steps laid out in the material from this thread using SOAP UI:
PAPI Web Service (PAPI-WS) Example for Oracle BPM Studio
It seems that BPM Studio does not recognize the default credentials user: "test" and password: "test"
I receive the following error when I try to make any call:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Client</faultcode>
<faultstring>Participant could not be authenticated. A wrong username or password might have been specified.</faultstring>
<detail>
<oens:OperationException xmlns:oens="http://bea.com/albpm/PapiWebService">
<exceptionName>fuego.papi.webservice.handlers.AuthenticationException</exceptionName>
<message>Participant could not be authenticated. A wrong username or password might have been specified.</message>
<technicalInfo>fuego.papi.webservice.handlers.AuthenticationException: Participant could not be authenticated. A wrong username or password might have been specified.
at fuego.papi.webservice.handlers.AuthenticationHandler.processAuthentication(AuthenticationHandler.java:144)
at fuego.papi.webservice.handlers.AuthenticationHandler.handleMessage(AuthenticationHandler.java:74)
at fuego.papi.webservice.handlers.AuthenticationHandler.handleMessage(AuthenticationHandler.java:46)
at com.sun.xml.ws.handler.HandlerProcessor.callHandleMessage(HandlerProcessor.java:292)
at com.sun.xml.ws.handler.HandlerProcessor.callHandlersRequest(HandlerProcessor.java:135)
at com.sun.xml.ws.handler.ServerSOAPHandlerTube.callHandlersOnRequest(ServerSOAPHandlerTube.java:133)
at com.sun.xml.ws.handler.HandlerTube.processRequest(HandlerTube.java:116)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: fuego.papi.exception.AuthenticationException: Cannot authenticate participant 'test'.
at fuego.papi.impl.ProcessServiceImpl.authenticatePassport(ProcessServiceImpl.java:297)
at fuego.papi.webservice.pool.ProcessServiceSessionPoolManager.getSession(ProcessServiceSessionPoolManager.java:185)
at fuego.papi.webservice.WebServiceManager.getProcessServiceSession(WebServiceManager.java:156)
at fuego.papi.webservice.handlers.AuthenticationHandler.processAuthentication(AuthenticationHandler.java:141)
... 45 more
Caused by: fuego.directory.AuthenticationException: Login incorrect.
Detail:Verify that the information provided is correct.
If you cannot solve the problem, check with your administrator.
ID [default] PARTICIPANT [test] REASON [Login incorrect.
Detail:Verify that the information provided is correct.
If you cannot solve the problem, check with your administrator.
ID [Project:Test] PARTICIPANT [test] REASON [invalid username or password].
at fuego.directory.AuthenticationException.wrap(AuthenticationException.java:104)
at fuego.directory.project.engine.EmbeddedEngineAuthenticationAccessor.connect(EmbeddedEngineAuthenticationAccessor.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.directory.provider.DirectorySessionImpl$AccessorProxy.invoke(DirectorySessionImpl.java:756)
at $Proxy12.connect(Unknown Source)
at fuego.directory.provider.DirectorySessionImpl.connect(DirectorySessionImpl.java:250)
at fuego.directory.provider.Factory.startSession(Factory.java:405)
at fuego.directory.Directory.startSession(Directory.java:268)
at fuego.papi.impl.ProcessServiceImpl.authenticatePassport(ProcessServiceImpl.java:287)
... 48 more
Caused by: fuego.directory.AuthenticationException: Login incorrect.
Detail:Verify that the information provided is correct.
If you cannot solve the problem, check with your administrator.
ID [Project:Test] PARTICIPANT [test] REASON [invalid username or password].
at fuego.directory.project.engine.ProjectFullParticipantsAccessor.fetchHumanParticipant(ProjectFullParticipantsAccessor.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.directory.provider.DirectorySessionImpl$AccessorProxy.invoke(DirectorySessionImpl.java:756)
at $Proxy15.fetchHumanParticipant(Unknown Source)
at fuego.directory.project.engine.EmbeddedEngineAuthenticationAccessor.connect(EmbeddedEngineAuthenticationAccessor.java:66)
... 58 more</technicalInfo>
</oens:OperationException>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
Like I said above, it seems that BPM Studio does not recognize the default credentials user: "test" and password: "test"
Is there anyway to change these default credentials?
Thanks!
Edited by: user9001687 on Feb 10, 2010 2:14 PM
Edited by: user9001687 on Feb 10, 2010 2:16 PMThanks so much Dan. I changed as you mentioned and then added WSS-Username Token as while processing BPM process as web service I have used the same opetion. Still I am getting the same error for Authorization Failure.
SOAP Requests look like :
<soapenv:Envelope xmlns:pps="http://bea.com/albpm/ProLogisBPM/PPSFTProcess" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>Paul</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Paul</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">AlmoI4QkO2hp9z10BQGA0A==</wsse:Nonce>
<wsu:Created>2010-03-17T15:48:04.843Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
Adter
<ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">fuego.webservices.security.AuthorizationException: Authorization Failed.
at fuego.soaptype.ProcessWebServiceAuthorization.authorize(ProcessWebServiceAuthorization.java:57)
at fuego.soaptype.AxisSoapService$HttpBasicAuthentitcationHandler.invoke(AxisSoapService.java:888)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at fuego.soaptype.AxisSoapService.invoke(AxisSoapService.java:357)
at fuego.soaptype.AxisSoapService.invoke(AxisSoapService.java:122)
at fuego.webservices.HttpSoapListener.process(HttpSoapListener.java:206)
at fuego.http.HttpExecution$1.run(HttpExecution.java:71)
at fuego.component.Message.process(Message.java:576)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.http.HttpExecution$HttpPrincipal.processBatch(HttpExecution.java:190)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Caused by: java.lang.IllegalArgumentException: user: null
at fuego.components.WebServiceSessionManager.createSession(WebServiceSessionManager.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.lang.Invokeable.invokeImpl(Invokeable.java:234)
at fuego.lang.Invokeable.invokeDynamic(Invokeable.java:188)
at fuego.lang.Invokeable.invoke(Invokeable.java:160)
at fuego.fengine.FEngineWebServiceExecutor$2.execute(FEngineWebServiceExecutor.java:133)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.fengine.FEngineWebServiceExecutor$1.run(FEngineWebServiceExecutor.java:65)
at fuego.component.Message.process(Message.java:576)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.fengine.FEngineWebServiceExecutor$WebServiceExecutorPrincipal.processBatch(FEngineWebServiceExecutor.java:168)
... 2 more
Caused by: fuego.directory.AuthenticationException: Login incorrect.
Detail:Verify that the information provided is correct.
If you cannot solve the problem, check with your administrator.
ID [default] PARTICIPANT [null] REASON [participant is empty].
at fuego.directory.AuthenticationException.error(AuthenticationException.java:50)
at fuego.directory.AuthenticationException.participantIdIsWrong(AuthenticationException.java:94)
at fuego.components.WebServiceSessionManager$SessionImpl.<init>(WebServiceSessionManager.java:220)
at fuego.components.WebServiceSessionManager.createSession(WebServiceSessionManager.java:79)
... 26 more</ns1:stackTrace>
Any help or guiding pointer would be deeply appreciated. TIA -
BPM/MDM Process - Confirmations Back to BPM from ECC
We are implementing a BPM / central MDM solution. After the new master data is sent from the BPM to MDM, and syndicated through PI to ECC, the requirement is to send a confirmation back from ECC that the new master data (ex. Vendor) was created. I don't see such a confirmation in any of the related blogs on the BPM/MDM subject.
(1) Is there a way to send a confirmation back to the BPM (file that BPM picks up?, BPM listener-type service?)?
(2) Do you recommend using BAM or ALEAUD for the confirmation out of SAP? Both would work. With ALEAUD, I could catch errors in PI and handle them. With BAM on a Vendor.Created event, I would have no extra IDoc statuses to filter away.
Thanks,
KeithHello,
There are 2 options .
You can use an outbound IDOC from ECC to PI - after the material is successfully created and PI can update MDM with the status and id created.
1. You can write a service that will check MDM periodically to see if got back the status & id from ECC/PI successfully.
2. The other way is to write a synchronous webservice call where BPM will wait for a PI service to provide an update directly to BPM. You need to model Synchronous call in BPM.
Regards, Anil -
BPM Sync Send Step & Correlation
Hi Experts,
BPM Scenario: Step wise
1. Receive-1 from one sender
2. Send-1 it syncu2019ly to SAP using proxy and receive the response msg
3. N: 1 transformation b/w request message and response message to generate a target message
4. Send-2 the target message to a receiver
Though the scenario seems to be simple, I have a doubt about the sync send step.
How does the sync send step works in detail?
For every message the Receive-1 receives, a new process instance will be generated. When the message is sent to SAP syncu2019ly, how does it relate the response to the particular process instance?
For example, if 2 BPM process instances are created for two messages the Receive-1 step receives. However say, the second message is relatively less in size; in-turn consumes less time to execute in SAP and reaches XI well before the response for first message.
Which process instance will it be related to?
Please explain!
KarthikThanks, Udo! With your reply I heave that itching thought.
I would happy to read more about this sync-session logic.
Can you please provide more information/ blog/ material for detailed info?
P.S. pts added to you!
Thanks,
Karthik -
BPM for Processing Multiple records in a file
Hello All:
I using BPM to process Goods issue using BAPI BAPI_GOODSMVT_CREATE. The BPM setps are as
Step 1 Receive Request from Asyn File Interface
Step 2 Transformation Map to Bapi request Structure
Step 3 Send Sync Request to Bapi
Step 4 Transformation Map Bapi Response to file
Step 5 Send Asyn Message to File
My input file is as fallows
H,20050613,20050613,9999,HEAD TXT,03,
P,000001000108,0001,COMMON,2,EA,1000,1011,261,ITM TXT,
H,20050613,20050613,9999,HEAD TXT,03,
P,000001000108,0001,COMMON,3,EA,1000,1011,261,ITM TXT,
The output file is as fallows
<?xml version="1.0" encoding="UTF-8" ?>
- <ns1:MT_SAP_RESPONSE_ITMS_DATA xmlns:ns1="http://testcompany.com/xi/ITMS">
- <BAPI_STR>
- <HEADER>
<MAT_DOC>4900000696</MAT_DOC>
</HEADER>
</BAPI_STR>
</ns1:MT_SAP_RESPONSE_ITMS_DATA>
The problem I am facing is although my file has 2 records of goods issue data (Header and Item data) , the BPM processes only one record (Header and Item) and creates a material doc in SAP and outputs a file with the material doc number as above. Ideally I would like the XI system to process both the records and produce 2 material docs as output .
Also my input file adapter has been picking up both the records as this is visible in the SXMB_MONITOR logs.
Do I need to introduce a loop in the BPM ?. If so can any can any body give me an example or point me in the right direction.
Many Thanks
TBHUdo:
<b>you need a mapping splitting one message with multiple entries into multiple messages with one entry, which you put into a multiple line BPM container.</b>
Are you implying loop Step 1 Receive Request from Asyn File Interface and collect them into a multiline container ?. How does the loop know how many times to loop.
Would appreciate your comments
Thorsten -
Hi All,
We are using BPM for multiple IDoc-XI-Single file scenario. While processing material in bulk (5000 material at a time) 3 files are being created with around 250 IDocs in a file. One message is failed with ICM_HTTP_INTERNAL_ERROR 405 error.
In Integration Process, we used Deadline Branch Block with 1 min duration.
Please suggest some fine turing and also what is the reason for the error.
Regards,
RamaHi,
Please look at this docs for fine tuning your system:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7fdca26e-0601-0010-369d-b3fc87d3a2d9
Also, there is a SAP Note: 906435
Regards
Vijaya -
Hi,
I want to know when exactly we go for bpm and how to work simple bpm scenario.Hi Sreenu,
BPM is used for Stateful communications,suppose u have to delay message processing,or wait for other messages to arrive and then semd them all together,in that case use BPM.
We will use BPM when ever we want to do the following:
1.Controling or Monitoring of messages in XI
2. Collect or Merge the messages in XI
3. Split the messages in XI
4. Multicast a Message
5. Need to send an Alert
6. Transformation
With its BPM capability, SAP NetWeaver:
Exploits business-process efficiency by giving your business
users the ability to directly model, manage, monitor, and
analyze business processes
Enables continuous process improvement and the dynamic
modification of business processes
Extends the value of your companys core business investment
and maximizes the return on its strategic assets by providing
the ability to change process rules without additional IT
investment
Provides greater visibility into critical business operations for
better decision making by delivering the right information at
the right time
Allows the integration of people, applications, and internal
and external resources
Process step types:
Message relevant:
Receive: We use it to receive a message. By receiving a message we are sending the data into process. We can use it to start a process. We can use it for activating or using correlations.
Send: We use it to send either an asynchronous or synchronous message or an acknowledgement.
Receiver Determination: We use it to get a list of receivers for sub sequent send step. It calls the receiver determination that we configured in the integration directory and returns receivers list.
Transformation: We use it to change a message inside the process. E.g. bundling multiple messages into 1 or splits a message into multiple.
Using this we can create N:1 or 1:N or 1:1 transformations. In general scenario 1:N transformation is possible.
Process flow control Relevant:
Container: We use it to set a value for target container element at runtime. Target container element and assigned value must have same value.
Control: We use it to terminate the current process and to trigger an exception and to trigger an alert.
While Loop: To repeat the execution of steps within the loop.
Fork: We use it when you want to continue a process in branches that are independent of each other. E.g. to communicate with two systems that are independent to each other
Block: We use it to combine steps that you want to execute one after the other and which are to access the local data.
Empty: It has no influence on the process flow. We use it as a place holder for a step that has not yet been defined, and as a step with no functions for test purposes.
Wait: We use it to incorporate a delay in the process.
Switch: We use it to define different processing branches for a process
T.Codes for B.P.M:
SXMB_MONI_BPE
SXWF_XI_SW11
For Example a Small Explanation reg BPM for this Req we used BPM
A background program should be scheduled to run every 10 minutes to analyse any material records that have been created or changed or deleted that have occurred to the material master records in the last minute.
There are two Message Mappings involved in the whole scenario. First mapping is N:1 Mapping which will be used in BPM and second Mapping is 1:1 Mapping:
1. First Message Mapping N: 1 u2013 Mapping between IDoc (occurrence u2013 0...unbounded in u201CMessagesu201D tab) to IDoc with changed occurrence of its top node (IDOC) as 0...unbounded. This message mapping will be used in BPM u2013 transformation step.
Description: This BPM collects all Idocs for 10 minutes which are of Message Type (ZMATMAS05) according to Receiver Partner Number (Field u2013 RCVPRN) and calls N: 1 mapping to bundle the collected Idocs in a One External Definition for that IDOC.
Use
You use a wait step ( ) to incorporate a delay in a process. Usually, you use a delay to define when the next step in the process is to start. You can define a delay as either a point in time or a period of time.
At runtime, the step waits until the specified point in time is reached or the specified period of time has passed. The system then continues the process by proceeding with the next step.
Expalined clearly how to do a file to file scenario with BPM :
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
it is File>RFC>File using BPM then refer this blog.
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
BPM-1 /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
BPM-2 /people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm
BPM-3 /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
BPM-4 /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
Integratio Scenario
/people/venkat.donela/blog/2006/02/17/companion-guide-to-integration-scenario
/people/siva.maranani/blog/2005/08/27/modeling-integration-scenario146s-in-xi
Schedule BPM
/people/siva.maranani/blog/2005/05/22/schedule-your-bpm
Use of Synch - Asynch bridge in ccBPM
/people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
Use of Synch - Asynch bridge in ccBPM
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
without BPM
/people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
without BPM1
/people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
IDOC BPM
/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
To deal with Multiple sender and receivers based on the conditions we could use BPM. Its one of the feature of BPM, but its not mandatory to go for BPM for each n every case. Its depends upon scnenario.
/people/marilyn.pratt/blog/2007/10/12/clubhouse-las-vegas-a-bpm-roadmap
BPM Process Patterns:Repeatable Design for BPM Process Models
http://www.bptrends.com/publicationfiles/05%2D06%2DWP%2DBPMProcessPatterns%2DAtwood1%2Epdf
BPM Steps link : http://help.sap.com/search/highlightContent.jsp
BPM-BUSINEES PROCESS MANAGAEMENT
*Transformation Error and still stuck ? *
/people/shabarish.vijayakumar/blog/2005/12/07/transformation-error-and-still-stuck
Walkthrough with BPM
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
Reconciliation of Messages in BPM
/people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm
Reconciliation of Messages in BPM Contd. - Restart Workflow
/people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm-contd--restart-workflow
*XI: How to... retrieve MESSAGE_ID from a BPM *
/people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
XI: Do you realy enjoy clicking and waiting while tracing BPM steps?
/people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps * *
BPM:Single Sender and Multiple Receivers based on synchronous exchange(switch) part-1
/people/prasadbabu.nemalikanti3/blog/2006/03/10/bpmsingle-sender-and-multiple-receivers-based-on-synchronous-exchangeswitch-part-1
Collecting IDocs without using BPM
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm * *
*Multi-Mapping without BPM - Yes, itu2019s possible! *
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
Sync/Async scenarios without BPM
/people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
XI/PI: BPM modeling in Aris for SAP Netweaver - a teaser
/people/michal.krawczyk2/blog/2006/11/27/xipi-bpm-modeling-in-aris-for-sap-netweaver--a-teaser
*XI: who said he cannot be stopped? BPM JIM - SP17 *
/people/michal.krawczyk2/blog/2006/06/27/xi-who-said-he-cannot-be-stopped-bpm-jim--sp17
*Schedule Your BPM *
/people/siva.maranani/blog/2005/05/22/schedule-your-bpm * *
*how to integrate unified worklist to xi-BPM *
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/bb9100f8-0c01-0010-ac8e-e017351f3fc1
*Usage of Sync-Async when both Sender and Receiver are Synchronous Apps *
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
Using a BPM to collect messages for a set interval of time
/people/daniel.graversen/blog/2006/09/07/using-a-bpm-to-collect-messages-for-a-set-interval-of-time
Sync/Async scenarios without BPM
/people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm * *
*Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure *
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
Regards,
Vinod. -
Message splitting using java mapping and BPM
Hi all,
I have a PLAIN FILE to IDOC Scenario.
We decide to use javamapping instead of message mapping because we have several hierachical structures.
We has more than one IDOC for file. And the mapping it's unable to detect the another header and create it at XI.
I had seen:
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
"XI: IDOC bundling - the "trick" with the occurance change"
But the problem it's we doesn't use mapping programs, so we can't apply to this case.
So now i need to create a BPM scenario for resolve this issue. Anyone knows any example for split the income message and send any idocs to destination?
Thanks in advance,IT WORKED !!!!
The only thing it's at out code line we must improve it in another way.
For everyone who needs to resolve, i copy the code line of the java mapping program.
The relationship is from the specific mapping for every scenary calling GenToHierMap.
0.0.0.0.0.0.0.0.0.0.0.0.1. GENERIC PACKAGE (GenToHierMap)
0.0.0.0.0.0.0.0.0.0.0.0.2.
package com.sap.javaMapping;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import com.sap.aii.mapping.api.StreamTransformation;
public class GenToHierMap
private Element root, idoc;
private Element nodeArrayRef[];
private String nodeArrayTagName[];
private Relation rel ;
private int stack_count ;
private String nameSpace;
private String separator="#!";
protected String msgName;
GenToHierMap(InputStream in, OutputStream out,Vector v1,String msgName1,String nameSpace1)
msgName = msgName1;
nameSpace = nameSpace1;
rel = new Relation(v1);
execute(in,out);
public void execute(InputStream in, OutputStream out)
Element e ;
Relation cur_rel;
DOMSource domS = null;
Element keyNodeParent;
//int numdocs;
try
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transform = tf.newTransformer();
// Create DOM structure from input XML
DocumentBuilder builderel = factory.newDocumentBuilder();
Document docIn = builderel.parse(in);
NodeList rows = docIn.getElementsByTagName("ROW");
nodeArrayTagName = new String[rows.getLength() + 1];
nodeArrayRef = new Element[rows.getLength() + 1];
Document docOut = builderel.newDocument();
root = docOut.createElement(msgName);
docOut.appendChild(root);
//idoc = docOut.createElement("IDOC");
//root.appendChild(idoc);
//Número de documents inicialitzat a 0
//numdocs=0;
//Per cada filera ROW
for (int count=0;count<rows.getLength();count++)
String dataRecord = "";
Node node = rows.item(count);
node = node.getFirstChild();
dataRecord = node.getNodeValue();
String fieldValue [] = dataRecord.split(separator);
//Cada cop que es troba una nova capçalera es crea un nou document.
//Això permet que hi hagi més d'un IDOC per missatge processat.
if (Integer.valueOf(fieldValue[0]).intValue()==1){
//numdocs = numdocs + 1;
//if (numdocs > 1){
//Es dona sortida al document anterior abans de crear-ne un de nou - BE AWARE BECAUSE IN THE NEXT LINES WE DEFINE THE UNBOUNDED IDOC ATTRIBUTE, WITH BEGIN = 1 ****
//transform.transform((domS),new StreamResult(out));
//docOut = builderel.newDocument();
//root = docOut.createElement(msgName);
//docOut.appendChild(root);
idoc = docOut.createElement("IDOC");
idoc.setAttribute("BEGIN","1");
root.appendChild(idoc);
cur_rel = (Relation) rel.v.get(Integer.valueOf(fieldValue[0]).intValue());
String keyId = cur_rel.node;
keyNodeParent = searchNode(keyId);
nodeArrayTagName[count] = keyId;
e = docOut.createElement(keyId);
e.setAttribute("SEGMENT",fieldValue[0]);
nodeArrayRef[count]= e;
keyNodeParent.appendChild(e);
createXmlTree(docOut,e,keyId,fieldValue);
domS = new DOMSource(docOut);
stack_count = stack_count + 1;
transform.transform((domS),new StreamResult(out));
catch (Exception t)
t.printStackTrace();
return;
//returns the parent of the given node
private Element searchNode(String keyId)
Relation cur_rel;
for (int i=0;i<rel.v.size();i++)
cur_rel = (Relation) rel.v.get(i);
if (cur_rel.node.equals(keyId))
for (int j=0;j<cur_rel.parents.length;j++)
if (cur_rel.parents[j].equals("NULL")) return root;
if (cur_rel.parents[j].equals("IDOC")) return idoc;
for (int k=(stack_count-1);k>=0;k--)
for (int p=0;p<cur_rel.parents.length;p++)
if (nodeArrayTagName[k].equals(cur_rel.parents[p]))
return nodeArrayRef[k];
return null;
//Creates all the elements of the given node
private void createXmlTree(Document docOut,Element node,String keyId, String fieldValue[])
Element tagName;
Text tagValue;
Relation cur_rel;
for (int i=0;i<rel.v.size();i++)
cur_rel = (Relation) rel.v.get(i);
if (cur_rel.node.equals(keyId))
for (int j=1;j<cur_rel.elements.length;j++)
tagName = docOut.createElement(cur_rel.elements[j]);
node.appendChild(tagName);
if ( j < fieldValue.length && fieldValue[j].length() != 0 )
if ( fieldValue[j].substring(0,1).equals("""))
if ( fieldValue[j].length() > 2 )
fieldValue[j] = fieldValue[j].substring(1,( fieldValue[j].length() - 1 ));
else
fieldValue[j] = new String ();
if ( j >= fieldValue.length )
tagValue = docOut.createTextNode(new String());
else
tagValue = docOut.createTextNode(fieldValue[j]);
tagName.appendChild(tagValue);
return;
//Main thread of execution
0.0.0.0.0.0.0.0.0.0.0.0.1. SPECIFIC ONE
0.0.0.0.0.0.0.0.0.0.0.0.2.
package com.sap.javaMapping;
* Mapping Program to Convert NOM IDOC Master Structure to the Generic structure Expected by
* the FTP Receiver adapter
import com.sap.aii.mapping.api.*;
import java.io.*;
import java.util.Map;
import java.util.Vector;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
import org.xml.sax.*;
//Specify the Hirearchial Structure
public class INT938_mapping implements StreamTransformation
public Vector v;
private Map map;
/** * method setParamters is required, but we do not anything with it */
public void setParameter(Map param)
map = param;
} /** * method execute is called by the XI mapping program */
public void buildXsd()
Relation mriRel ;
v = new Vector();
/* INICI MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
// --> TOCAR AQUEST NODE IMPLICA MODIFICAR EL CÒDI!!!
mriRel = new Relation();
mriRel.parents = new String[1];
mriRel.node = "IDOC" ;
mriRel.parents[0] = "NULL" ;
v.add(mriRel) ;
/* ESTRUCTURA DEL IDOC DE SORTIDA */
//NODE - 01
mriRel = new Relation();
mriRel.parents = new String[1];
mriRel.elements = new String[22];
mriRel.node = "E1BPEBANC";
mriRel.parents[0] = "IDOC";
mriRel.elements[0] = "SEGMENT";
mriRel.elements[1] = "PREQ_ITEM";
mriRel.elements[2] = "DOC_TYPE";
mriRel.elements[3] = "PUR_GROUP";
mriRel.elements[4] = "CREATED_BY";
mriRel.elements[5] = "PREQ_NAME";
mriRel.elements[6] = "PREQ_DATE";
mriRel.elements[7] = "SHORT_TEXT";
mriRel.elements[8] = "MATERIAL";
mriRel.elements[9] = "PLANT";
mriRel.elements[10] = "STORE_LOC";
mriRel.elements[11] = "TRACKINGNO";
mriRel.elements[12] = "MAT_GRP";
mriRel.elements[13] = "QUANTITY";
mriRel.elements[14] = "UNIT";
mriRel.elements[15] = "DELIV_DATE";
mriRel.elements[16] = "ACCTASSCAT";
mriRel.elements[17] = "DES_VENDOR";
mriRel.elements[18] = "PURCH_ORG";
mriRel.elements[19] = "BATCH";
mriRel.elements[20] = "VEND_MAT";
mriRel.elements[21] = "CURRENCY";
v.add(mriRel) ;
//NODE - 02
mriRel = new Relation();
mriRel.parents = new String[1];
mriRel.elements = new String[2];
mriRel.node = "Z1SOLCOM";
mriRel.parents[0] = "E1BPEBANC";
mriRel.elements[0] = "SEGMENT";
mriRel.elements[1] = "ZPO_NUMBER";
v.add(mriRel) ;
//NODE - 03
mriRel = new Relation();
mriRel.parents = new String[1];
mriRel.elements = new String[3];
mriRel.node = "E1BPEBKN";
mriRel.parents[0] = "IDOC";
mriRel.elements[0] = "SEGMENT";
mriRel.elements[1] = "PREQ_ITEM";
mriRel.elements[2] = "COST_CTR";
v.add(mriRel) ;
//NODE - 04
mriRel = new Relation();
mriRel.parents = new String[1];
mriRel.elements = new String[8];
mriRel.node = "Z1SOLRES";
mriRel.parents[0] = "E1BPEBKN";
mriRel.elements[0] = "SEGMENT";
mriRel.elements[1] = "DADES_PACIENT";
mriRel.elements[2] = "NOHIS";
mriRel.elements[3] = "ZNINTER";
mriRel.elements[4] = "ZFEIMP";
mriRel.elements[5] = "NMPAC";
mriRel.elements[6] = "ZNLOTE";
mriRel.elements[7] = "ZNSERIE";
v.add(mriRel) ;
/* FI MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
public void execute(InputStream in, OutputStream out) throws com.sap.aii.mapping.api.StreamTransformationException
INT938_mapping rel = new INT938_mapping();
rel.buildXsd();
new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
public static void main (String[] args) throws Exception
try
INT938_mapping rel = new INT938_mapping();
FileInputStream in = new FileInputStream ("C:/DOM_IN.xml");
FileOutputStream out = new FileOutputStream ("C:/DOM_OUT.xml");
rel.buildXsd();
new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
}catch(Exception e) {e.printStackTrace();}
//Transformation of flat structure to hirearchial structure
Any issue you can contact me. Best regards and reward points ! -
Hi Experts !
I am trying to implement this scenario.
Source File Adapter -
Message - Vendor # - Material # [Only one material ]
Pattern : Collect Pattern
Key for Correlation - Vendor #
Message collection in Loop for a counter of 3 Messages.
Target file on Directory to be created using file adapter should be of this structure:
<Header> 1.1
vendor
<Header/>
<Items> 1..Unbounded
<Material>Matl1 <Material/>
<Material>Matl2<Material>
<Material>Matl3<Material/>
<Items/>
When collect messages into a multiline container it will be based on source message. The multiline container will be looking like this:
vendor# Material#
vendor# Material#
vendor# Material#
after all the three records are collected.
What mapping from this point is required to get the output explaine above.
Please mention whether it is a step outside BPM or inside BPM.
When system encounters a multiline container does it process each message at a time or is the mapping applied to all the messages at a time.
Thanks in advance..Thanks for sharing your views.
As I mentioned I will stop collection based on a counter.
Coming to my question again..
N : 1 Mapping..
Can you elaborate on N:1 mapping you are suggesting.
Here is what I did ..
One Msg... -
> Multine Line Mapping
abs similar to One msg source target
multiline abs target_abs..
Message Mapping details...this is what i use in Intf.Map..aplied above.
vendorx -
> VendorX
material1 1.1 -
> Material [1..n]
where the output I get is only the last item processed...
If I pass Output
Vendor1 - Matl1 Vendor - Matl3....
Vendor1 - Matl2
Vendor1 - Matl3
Where am I going wrong...
thanks. -
BPM BAM Integration - Getting Started Tutorial... Any Pointers?
Hi,
We are working on a BPM project for contract maturity management. We have reached a stage where we have the flow in place. We have to start working on different BAM Dashboards to basically show flows/processes by contract, by role, etc etc...
I just wanted to know if there are any tutorials/material for getting started on this? Basically to show how to approach the dashboard building and plugging in business data from BPM from various points to push the same into the dashboard.
Any help/direction in this regard would be appreciated.
Thanks in advance,
user8702013Hi,
We are working on a BPM project for contract maturity management. We have reached a stage where we have the flow in place. We have to start working on different BAM Dashboards to basically show flows/processes by contract, by role, etc etc...
I just wanted to know if there are any tutorials/material for getting started on this? Basically to show how to approach the dashboard building and plugging in business data from BPM from various points to push the same into the dashboard.
Any help/direction in this regard would be appreciated.
Thanks in advance,
user8702013 -
BPM to Check Two files and Connect R3 server
Two Files are comimg to XI. Both Files having same strucure.
Sceanaro is File to Proxy
In File1 ,XiI search for Record1->Id . if ID found ,then it will connect R3 system and check if ID is present there or not. if not it will create.
IF Id is present in R3 Server then it will wait for File2.
at same time Xi search for file2 and check whether this ID is there or not.
If it is not then Xi will change details in R3 server.If yes then wont modify details of ID in R3 server.
tWhat will BPM steps Involved in this case.
Start -> Fork1(Two receiver)-> then what
plz help me to desing BPMSorry For Confusion
Can amy one help me to get steps For BPM.
FILe1-> Contaiss -Hedear(1)-Record(many) Footer(1)
FILe2-> Contaiss -Hedear(1)-Record(many) Footer(1)
In Record there is Material Number.
If File1 Contains 6 Recird and File 2 Contains 4 record.
When Both file come to XI,
XI check First Record of File1 and then check this Material number for Record 1 agains material Numbers of all 4 Records of file2.
If it found same Material Number,in mapping It will update one traget field.
Edited by: harshalata Gaonkar on Oct 15, 2010 10:28 AM -
Hai Experts !
Can any one give me a Blog which can help me to do BPM design where i want to send a message to Webservice and get the responce meassage and also any Failure message from webservice.
Thanks in Advance.Hi,
Please try to seach in sdn, you will get lot of material available for these kind of scenarios.
See the below link:
[File_to_SOAP|http://sapxitutorials.blogspot.com/2010/07/use-of-bpm-in-file-soap-file-pi-71.html]
Regards,
P.Rajesh -
Hi xi,bpm expertsu2026.
I am kid to xi so I am asking such these type of questions.
While I am doing message mergeing of to xml file scenario I want to do this using BPM collect pattern payload dependent is it possible? Same I want process two idocs ie.CREAMAS,MATMAS idocs data in to a single idoc in xi system is it possible by using BPM collect pattern payload dependent? After inserting this pattern how to define container elements? Is we need to give the details for each step in that pattern ,if any other way please give details?
While am reading that pattern material i got a doubt that each and every pattern was explained different contaiter elements i.e. for example in collect pattern , container elements collect u201Cmessage,collect message list,new message,stop messageu201D when I dragged in to my message mergeing scenario those container elements are not appearing?
Can any one please explain me the basic example scenario by using any pattern?
thanks in advance.Hi XI Fresher,
Try the collecting simple files scenario in to one using BPM and apply the same for idocs also.Plese refer the sample patterns step by step.so that u will get basic idea on using patterns.
https://wiki.sdn.sap.com/wiki/display/stage/collectmultiplemessagesandbundlethemintoonemessage.
As there are different idocs coming in .You can try with Multificondition also but u need not apply condition here.Jus fork with two branches and no condition for fork u can skip that step.
https://wiki.sdn.sap.com/wiki/display/stage/BPMPatternMultiIfconditionExplained%28stepbyStep+Procedure%29
Thanks,
Ram. -
Hi,
A scenario File - BPM - BAPI call was developed, as described in blog 'RFC scenario using BPM' cfr. link
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
The Mapping is as follows:
MT_EDB_MATERIAL_REQ (1:1) --> BAPI_MATERIAL_EXISTENCE_CHECK (1:1)
MATNR (1:1) -
> MATERIAL (1:1)
When executing the scenario, an error appears in the trace of SXMB_MONI, step 'Request Message Mapping'
Cannot produce target element /ns1:BAPI_MATERIAL_EXISTENCECHECK. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd....
I tried the following:
1) import the XML-file into the testmapping: executed successfully
File:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_EDB_MATERIAL_REQ xmlns:ns0="http://agfa.com/SD_EDB">
<MATNR>15P6X</MATNR>
</ns0:MT_EDB_MATERIAL_REQ>
2) Removed the mapping on node level and left mapping only on element level (material): same error
3) Activated the message mapping, interface mapping, determinations, etc again...:same error
4) Removed the Interface Mapping and created it again: same error
5) Compared the version ID of the Interface Mapping/message mapping in the Monitor trace with the version ID of the IR and saw that there was a difference.
After the CPA full cache, SXI_CACHE full refresh and object refresh in the IB Administration, the differences remain, and also the error....
Anybody an idea ?Hi
>>>Cannot produce target element /ns1:BAPI_MATERIAL_EXISTENCECHECK. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd....
The error clearly says that one of the occurrence value for the target node mentioned is not coming from the source during mapping. The easiest way to solve the problem is as follows
<b>
First Execute the mapping as pointed out by "Raj" and the following steps.
</b>
1. Goto the Mapping Editor
2. Double click on the target node that is causing the problem here BAPI_MATERIAL_EXISTENCECHECK.
3. Right click on the same node and select "DisplayQueue".
4. View the Queue.
5. YOu will find "Suppress" entries, which means a value is expected but no value is coming in.
6.Go from right to left and check each node in the mapping and you will be able to trace where the suppress node comes from and take appropriate action
regards
krishna
Maybe you are looking for
-
Failed to create domain on Informatica 9.0.1 on windows 7
Hi, I installed Informatica 9.0.1 on windows 7 and domain creation failed during installation process and install finished without creating domain. Now how can I create domain in Informatica manually? Please provide complete details to create domain
-
Service MSS Personnel Developent= Employee Search
Dear Experts. I have the following issue: In the Manager Self Service =>Team=>Personnel Developent=>Employee Search The portal not update(display) the information of the employee Direct Reports.? I have two user with the same roles. When I assig the
-
PCI 16 and Windows XP Home edit
I have a dual boot computer -- XP and the Linspire version of Debian Linux. The sound card works under Linux but does not work under XP. The system would not recognize my CD-ROM dri've in XP because of a software problem which needed two changes to t
-
Dear all, i have prablem with my nokia N 73ME evry time i turn it off and on it ask me to enter the date and time ..... can ou help me in this .... majed
-
Error in Pagenumbering for Smartform
Hi All. I am working on smartforms. I am able to print smartform evrything is perfect. I have 12 pages in my smartform. I am displaying page numbers like 1/12 and 2/12 etc like this. When i seesing the ouput from 2 to 9 pages the page nummber is dis