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-Charles

    Hi 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 PM

    Thanks 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.&lt;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,
    Keith

    Hello,
    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!
    Karthik

    Thanks, 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
    TBH

    Udo:
    <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

  • BPM Process

    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,
    Rama

    Hi,
    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

  • When we will go for BPM

    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 company’s 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 !

  • BPM Collect Pattern.

    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,
    user8702013

    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,
    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 BPM

    Sorry 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

  • Calling Webservice in BPM

    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

  • Bpm patterns?

    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.

  • BPM Message Mapping: "Cannot produce target element /ns1:BAPI...."

    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

  • I need a help ASAP

    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