BPM: Block Processing: ParForEach

Hi,
I have created a BPM that contains a block which sends xml to an HTTP client. At present I have set up the processing mode of the block to ParForEach.
When I look at the transactions in sxmb_moni, I can see that the send steps in the BPM is still being processed serially.
Is there any other configuation/coding I need to implement to get me send step to process in a parallel mode?
Your help is much appreciated.
Regards
Yackeen

Hi Yackeen,
Is it a synchronous or asynchronous send step ?
we had a synchronous RFC send step in our parforeach block and we raised a query with SAP regarding parallalization..below is SAP's reply...
"it must be noted that in Synchronous sending, there is no parallelization of message sending if there is no further Asynchronous step in the loop. Here the ParForEach is more a business-like parallelization, i.e. for each block instance you have a separate
container. Therefore, Asynchronous sending should be considered."
Also refer this link on when to use foreach and parforeach blocks..
http://help.sap.com/saphelp_nw04/helpdata/en/ce/bb2c421f3fda2ce10000000a1550b0/content.htm
hope this helps..
Regards
Anand
Message was edited by: Anand Torgal

Similar Messages

  • BPM Integration Process that correlates 2 messages.

    I have an BPM Integration Process defined that collects Deliveries for an Order number and when an Invoice arrives for the same Order number it merges the messages to produce another file that is for a 3rd party.
    I correctly receive in the Delivery and the Invoice u2013 I can see them in SXMB_MONI with a checkered flag and they are directed to my BPM.  I can see this also in SXMB_MONI_BPE.  I can also see the correlation correctly found in both messages.  No error is reported by either SXBM.. transaction.
    However it does nothing except receive the files u2013 I am expecting a transformation and then the send step to execute.
    Start >  CollectIDOCBlock  > Collect Fork
    Fork1
    Infinite Loop for Receive Delivery (Start process) and Collect in Container. It uses and activates Correlation OrderNum
    Fork2
    Receive Invoice uses Correlation OrderNum (it does not activate the correlation)
    At the end of the Fork (when Delivery collected and an Invoice is received)
    It will then do the Transformation and Send Step.
    <End
    I have tried various combinations of the correlations and which receive step starts the process.  Any ideas ?

    Yes that did work.  Now does somebody know what exactly the FORK parameter number of branches does ?
    The SAPHelp is here
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    +You can specify the required number of branches and then define whether the process must run through all branches, or just a particular number of branches+
    But it does not explain why you need to have 1 as necessary branches rather than 2.  There are 2 branches in the FORK - so why does having 1 as the parameter work and not 2.
    In this SAPHelp for Message-Dependent Loop
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    it indicates to me that the parameter should be 2.
    BUT the SAP pattern (BpmPatternCollectMessage) I have used as a base for mine has this as 1 and not 2.
    Why is 1 the correct value and not 2 ??

  • 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

  • Permenant error in bpm inbound processing error in inbound queue of pi7.1

    Hi Experts,
                 In  E filling scenario in SAPPI7.1, iam facing a problem. i.e In sxmb_moni message monitoring, the  message was schedule at outbound side.when i extend that, the message was stuck in smq2 with "permenant error in bpm inbound processing".can any one please tell me how to relove this issue.
    Thanks & Regards,
    Giri.

    Hello
    Check the note #1126656     BPE-TS: Permanent errors in the BPE inbound processing. This describes some possible causes and solutions for this error.
    Regards
    Mark

  • Question on BPM Integration Process

    Hello Experts,
    I am following this BPM article which is very similar to what I want to do.
    We are using PI 7.1 without EP1.
    I have an XML to IDoc scenario where my XML's external definition resides in a seperate SCV (SCV1) and my imported IDoc resides in a seperate SCV (SCV2). We did this to follow the Sender-Mapper-Receiver model. We have a different SCV for Mapping which holds MM and OM (SCV3). Now, I have my Abstract Service Interfaces for external definition in SCV1 and abstract interface for IDoc in SCV2. And, Integration Process in SCV1 (no good reason). But, now I am not able to access SCV2 abstract interfaces (IDoc abs) in my Integration Process since it sits in SCV1. I am thinking if I have to crate my external definitions, idoc, abstract service interfaces, MM, OM and Ingtration Process in one SCV instead of having them in three different SCVs. I was trying to follow sender-mapper-reciever model but seems like for BPM you need to have all your stuff in one SCV. Please help if you know how to resolve this issue wiithout getting rid of sender-mapper-receiver concept.
    Thank you in advance for your help.
    - Mayur

    Thanks Jose. I think creating dependencies is a away to go. I also found this this where Stefan suggested same thing.
    So, now Sender (SCV1) and Receiver (SCV3) have been added under Mapper (SCV2)'s dependencies list and I will have my BPM Integration Process in the SCV2 which will give me access to both sender and receiver abstract service interfaces.
    Re: Software Component Dependencies PI 7.1
    Thanks,
    Mayur

  • Rfc Jco communication channel error in BPM integration process

    Hi,
           when we are processing the records some records are processed succussfully some records does not in integration process view. when we restart the workflow we can able to process the error messages succussfully.
    but here not understanding how to reprocesse automatically error messages in the BPM integration process level.
    thanks and regads,
    krushi.

    Hi
    re-submission of messages after corrections that were failed
    Reconciliation of Messages in BPM
    Reconciliation of Messages in BPM Contd. - Restart Workflow

  • BPM parllel processing

    HI,
    i am using a BPM to process bulk messages at a time, but all the messages are send to one queue and messages are getting processed very slowly from the queue.
    i have 2 questions here,
    1)for what reason, Queue is processing messages very slowly?
    2)is there any way that BPM keeps the messges in the different queues ???
    Thank You,
    Madhav

    Hi Madhav,
    Refer to the parallel processing section of this document:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0968c17-8cca-2b10-7594-c9105e304be0?quicklink=index&overridelayout=true
    Thanks!

  • Error processing in non BPM sync process

    I've created a sync non BPM process which is working fine. Data comes from several terminals via HTTP. My scenario is HTTP=>XI=>RFC
    On the sending side, I use ABAP mapping or parser. I'm using this since I have to check some table data based on plant code and react accordingly.
    However, its quite possible that this table does not contain data for a given plant code or invalid plant code in which case I need to send back an response instead of calling RFC like I would normally do.
    Any idea how I can send back a message without going through RFC (receiver determination)....remember I have manipuated the RFC message in the ABAP mapping (in interface determination) and the only data I have available in receiver determination is original message which is not good.
    This has gotten very tricky now. I cannot use BPM due to WF response time + added RFC time (6 secs). Using non BPM I'm down to 1 sec or so which the users are happy.
    Thanks,
    Very confused XI programer.

    Michal, The table is in XI. Table has few different fields that are important to the interface esp. The R3 system to call. Based on the plant code, we decide which SAP system to send data to. And in XI, we store this info...ex: PIP3 plant goes to AI0 system. The terminals where is information is generated does not have this sophistication.
    How would you accomplish this HTTP=>XI=>RFC non BPM sync process. BPM adds too much time and the users don't wait that long in today process which will be replaced by XI. Non BPM yields 1 sec which is what they want. Thousands of messages flow and they cannot wait that long.
    Do you have suggestions.

  • Bpm block deadline branch not triggering

    For some reason, in one of my environment, the bpm block step's deadline branch doesn't get triggered. I couldn't figure it out.
    I setup a 1 minute limit and it never calls the deadline branch. Same thing works in my dev environment.
    please help.

    lot of other forum links has information regarding this. i should have searched first.

  • Use of BPM Sub-Process

    Hello Experts,
    I'm beginner and I wanna know when we will go for BPM sub process.
    I know there are two types of process(embedded and reference), but I wanna know when we will go for embedded sub process and for reference sub process.
    If possible please share some examples for both the process.
    Thanks in advance.
    Regards,
    Sriram

    You can use embedded sub-process in BPM when the child process (sub-process) is dependent on the parent process. By this it means that the sub-process cannot execute by itself.
    An embedded sub-process cannot have start and end events, although it can have other sub-set of events like timer, escalation and boundary events.
    You can use a referenced sub-process when you want to re-use an existing process. A referenced process is an independent process, which can exist of its own. If you want to use that existing process in your BPM Process then you can call it using referenced sub-process. Also make note that your main process will wait till the referenced sub-process completes its flow.
    Also if you feel that some process can be re-used by others then you can make it as a separate process and use it in the main process using referenced sub-process. This way others can also re-use the sub-process.

  • Regarding BPM (Business Process Management)

    Hi Friends
        present i am work  on SAP Enterprise Portal i.e NW CE 7.1 and BPM (Business Process Management) environment So I need 
        some  documents. Could you share the documents you are having.
          And i need this Information
            What is BPM?
            Any BPM Architecture ( If any Folows)?
            Use Of BPM?
            Why BPM?
            Why Not BPM?
           CaseStudy BPM?
    And How to work on BPM ? Can u send any Doc pls Send
    Regards
    Vijay Kalluri

    Hi,
    Please visit the BPM section on BPX community to get started:
    http://www.sdn.sap.com/irj/bpx/bpm
    Also there are several blogs available on Introcuction to BPM, just search for Netweaver BPM and you'll get many results.
    Cheers,
    Arafat

  • Clarification on Blocked Process Report behavior

    We have team members who are at odds over how this event is handled and it's coverage.
    After enabling this is sp_configure, and for the sake of argument keeping the threshold = 5 (default), and no other trace filters are applied - which of the following is true, false, or misunderstood:
    1. All-inclusive. The report will be generated for ANY transaction that is blocked for more than 5 seconds, meaning all transactions are contrasted against this threshold and no such transactions would be missed.
    2. "ad-hoc query-like" ; point-in-time only. The threshold is only contrasted against at a point-in-time only, in that at a set interval active transactions are reported against. This would mean blocked transactions that occur between this interval
    would not be reported against.
    Reading the MSDN/BOL articles, the language used is terse and somewhat left open to interpretation.
    The general discussion that started this is around whether or not running an external query (such as in SSMS) to report on blocking (which only reports on transactions at that point in time) is basically the same thing as running the blocked process report
    trace event, except in the trace event the "query" is run at "some interval" automatically.
    I am pretty sure I will win a beer if I am right on my answer to this - but I need expert arbitration. Please help me, I'm thirsty!
    Thanks very much for the assist!

    It's number 2: every 5 seconds the "LOCK MONITOR" checks for blocked processes and depending on the threshold will accumulate the sessions which are "still standing" after the threshold time, let's say 30 seconds.
    There is no Event involved until that point of the threshold being exceeded - that then is the event (which one can trace via SQL Trace or Extended Events), not before that.
    Andreas Wolter (Blog |
    Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com |
    www.SQL-Server-Master-Class.com

  • SQL 2008 Blocked process report question

    Can you somehow resolve blocked process report stmt to the actual sql text / plan cache?
    Example:
    <blocked-process-report>
    <blocked-process>
    <process id="process2713c9048" taskpriority="0" logused="0" waitresource="RID: 9:3:195169:57" waittime="29735" ownerId="1750917834" transactionname="SELECT" lasttranstarted="2014-01-10T13:47:06.493" XDES="0x259c278e0" lockMode="S" schedulerid="4" kpid="4148" status="suspended" spid="307" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2014-01-10T13:47:06.493" lastbatchcompleted="2014-01-10T13:47:06.493" lastattention="2014-01-10T13:46:55.703" clientapp="Index" hostname="IMAGIOZFPWEB1" hostpid="12000" loginname="imagiouser" isolationlevel="read committed (2)" xactid="1750917834" currentdb="9" lockTimeout="4294967295" clientoption1="673185824" clientoption2="128056">
    <executionStack>
    <frame line="18" stmtstart="640" sqlhandle="0x03000900280270067c9946015aa200000100000000000000"/>
    </executionStack>
    <inputbuf>
    Proc [Database Id = 9 Object Id = 108003880] </inputbuf>
    </process>
    </blocked-process>
    <blocking-process>
    <process status="suspended" waittime="151008" spid="451" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2014-01-10T13:45:05.217" lastbatchcompleted="2014-01-10T13:45:05.217" clientapp="Index" hostname="IMAGIOZFPWEB2" hostpid="4472" loginname="imagiouser" isolationlevel="read committed (2)" xactid="1750871840" currentdb="9" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
    <frame line="57" stmtstart="4426" stmtend="4586" sqlhandle="0x03000900f28e8b0183d457018a9d00000100000000000000"/>
    <frame line="32" stmtstart="1824" stmtend="2042" sqlhandle="0x030009001b21cf3f56fe3c01dca100000100000000000000"/>
    </executionStack>
    <inputbuf>
    Proc [Database Id = 9 Object Id = 1070539035] </inputbuf>
    </process>
    </blocking-process>
    </blocked-process-report>

    Here is an example to get you going:
    DECLARE @x xml = '
    <blocked-process-report>
     <blocked-process>
      <process id="process2713c9048" taskpriority="0" logused="0" waitresource="RID: 9:3:195169:57" waittime="29735" ownerId="1750917834" transactionname="SELECT" lasttranstarted="2014-01-10T13:47:06.493"
    XDES="0x259c278e0" lockMode="S" schedulerid="4" kpid="4148" status="suspended" spid="307" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2014-01-10T13:47:06.493"
    lastbatchcompleted="2014-01-10T13:47:06.493" lastattention="2014-01-10T13:46:55.703" clientapp="Index" hostname="IMAGIOZFPWEB1" hostpid="12000" loginname="imagiouser" isolationlevel="read committed
    (2)" xactid="1750917834" currentdb="9" lockTimeout="4294967295" clientoption1="673185824" clientoption2="128056">
       <executionStack>
        <frame line="18" stmtstart="640" sqlhandle="0x03000900280270067c9946015aa200000100000000000000"/>
       </executionStack>
       <inputbuf>
    Proc [Database Id = 9 Object Id = 108003880]   </inputbuf>
      </process>
     </blocked-process>
     <blocking-process>
      <process status="suspended" waittime="151008" spid="451" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2014-01-10T13:45:05.217" lastbatchcompleted="2014-01-10T13:45:05.217"
    clientapp="Index" hostname="IMAGIOZFPWEB2" hostpid="4472" loginname="imagiouser" isolationlevel="read committed (2)" xactid="1750871840" currentdb="9" lockTimeout="4294967295"
    clientoption1="671088672" clientoption2="128056">
       <executionStack>
        <frame line="57" stmtstart="4426" stmtend="4586" sqlhandle="0x03000900f28e8b0183d457018a9d00000100000000000000"/>
        <frame line="32" stmtstart="1824" stmtend="2042" sqlhandle="0x030009001b21cf3f56fe3c01dca100000100000000000000"/>
       </executionStack>
       <inputbuf>
    Proc [Database Id = 9 Object Id = 1070539035]   </inputbuf>
      </process>
     </blocking-process>
    </blocked-process-report>'
    ; WITH CTE AS (
      SELECT sqlhandle = convert(varbinary(64), T.c.value('@sqlhandle', 'varchar(128)'), 1),
             stmtstart = T.c.value('@stmtstart', 'int'),
             stmtend   = T.c.value('@stmtend', 'int')
      FROM   @x.nodes('/blocked-process-report/blocked-process/process/executionStack/frame') AS T(c)
    SELECT substring(est.text, CTE.stmtstart / 2,
                     CASE WHEN CTE.stmtend IS NOT NULL
                          THEN (CTE.stmtend - CTE.stmtstart) / 2
                          ELSE len(text)
                     END)
    FROM CTE
    CROSS APPLY sys.dm_exec_sql_text(CTE.sqlhandle) AS est
    That is, you need to use XQuery to extract the sqlhandle and the offsets and then pass the sqlhandle to sys.dm_exec_sql_text. The text is for the full batch, so you need to use substring to get the statement. stmtstart and stmtend are offsets in bytes and
    since the text is nvarchar, you need to divide by two. I did the above from memory and there by one-off errors with regards to the offsets.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • GR Based Invoice Verification and Invoice Post and Block Process

    Hi,
    We currently use invoice "Post and Block" process for AP invoice processing.  GR Based Invoice Verification is not set in the vendor master for this purpose to allow us to enter an invoice where "No Goods Receipt" has been raised. However, when we raise a PO using material groups the flag "GR Based Invoice Verification" is activated in the PO.  We subsquently have to remove this indicator in the PO in order to register the invoice.  Why is this setting populated in the PO when it is not activated in the vendor master ?  Is there a setting in MM for material groups that ius populating this value in the PO where  a PO is raised using material groups ?
    Thanks

    Hello Eilish,
    With regards to Goods reciept indicator, firstly the system looks
    for any reference documents like purchase order or contract and takes
    the flag from there.
    If no reference documents or contracts are referenced, then
    the system looks for an info.record to take the flag from there.
    If there is not a info record then system will carry out the
    GR-BasedIV indicator from the vendor master.
    Hope this helps,
    Ray

  • Multi Row update using pl/sql anonymous block process

    Does anyone have an example of multi row update using a pl/sql anonymous block process?
    The reason I can not use the apex mru process is that the table in questions has a five field key.
    My attempts have failed with a bad number.
    Thanks,
    Gary

    Hi Gary,
    can y<ou pls send the definition of thet table and the UPDATE sql.
    It is a littel difficult like this.
    We need more info.
    BR,
    Lutz
    =;-)

Maybe you are looking for

  • Write data to PLC register using datasockets

    hello all... i have made some headway, i can access the PLC read data from it (1-10) and depending on the random # produced i get a message from a file and display it. Now...i need to write back to a register in the PLC with some informatio (string a

  • Add image to resourcebundle

    hi i am trying to embed a image in a resourcebundle. searching about this topic in the net always tells me to manage it by getting the path to the image from the resourcebundle. but i have read that its possible to store the real image in a resourceb

  • Ni-can w/ labview 64-bit

    Hi, Can I use ni-can with labview 2012 64-bit? I've installed ni-can 2.7.4f0, but during the installation I saw support options for 32-bit labview versions, but none for 64-bit versions. After the install when loading a .vi it can load ncWriteNet.vi.

  • Partitioning an already existing table

    Hi, I need to partition many existing tables. All these tables hold more than 50 million data each. Since i am new to partitioning, can any one kindly guide what are the best practices one should look for under such circumstances. Is it neccessary to

  • Webhelp ducc output size

    Tool: Robohelp 11, webhelp, using DUCC (dynamic user-centric content) Question: DUCC generates its own output files for each Content Category you create. However, my use of DUCC is simple, only toc/indexes. Can output size be reduced? Reason: 1) good