Parallel processing in a block step.

Hi,
I have  parallel processing in a block step. It is working fine. Now there is a request and so the question is, if there are 2 parallel loops created by the process block for user decision step and if one has become obselete, how do I deal with it.I need the process block to complete the 1 loop succesfully and proceed.
Let me know in case of questions.
Thanks.
Sukumar.

Hi
I think you are using "ParForEach" in block. Let me know how you are making 1 parallel loop as obsolete.
Is that block is not getting completed after the 2nd parallel loop gets excuted?
Vinoth

Similar Messages

  • Parallel processing using BLOCK step..

    Hi,
    I have used parallel processing with a BLOCK step. I have put a multiline container element. In the BLOCK step, I have visibily to another container element generated because of the block step (multilne container_LINE). Thus the number of parallel processes are getting created as in the requirement, but the problem is the value in multilne container_LINE is not getting passed to the send mail step. I have checked the binding, everything is ok. Please
    Sukumar.

    Hi
    When I am sure that I am doing properly a binding but it doesn't work then:
    1. I activate workflow template definition (take a joke).
    2. I write the magic word
    /$sync
    in the command line, to refresh buffers.
    3. I delete the strange binding defined with drag&drop and define it one more time using old method from former binding editors in R/3 4.6c systems. I take container elements from the lists of possible entries or I write their name directly. I don't use drag&drop.
    Regards
    Mikolaj
    There are no problems, just "issues" and "improvement opportunities".

  • BPM Scenario Block Step

    Hi All,
    In my scenario iam getting a message through RFC.Now i have to split the messsage into multiple messages and then send each message individually to a webservice and get the response.
    I want to send them in Parallel mode by using Block step - Parforeach mode.
    Following are the steps in my BPM.
    1.Receive step - Open Syn/Async Bridge
    2. Transformation step to split the message into multiple messages.
    3.Opened a block in parforeach mode
    4.Send step in synchronous mode
    6.Collect the response in container.
    7.Ouside the block close the ync/Async bridge.
    When i exceute the scenario, i only see one message in SXMB_MONI which is from R3 system and even that message does not indicate what the problem is.The message recahed the BP engine.
    Unable to figure out what the problem is.
    Regards,
    Srinivas.

    But to use the response of all the sync messages, u must use the correlation
    See this
    http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm
    Regards,
    Prateek

  • Dynamic parallel processing using a multiline container element

    Hi All ,
      I just wanted to how things work when we use "Dynamic parallel processing" for a decision step . I came across a situation wherein a Rule gets the approving user(s) and the work item should be sent to all those users . After getting an approval from all the users , the workflow should proceed or else it should terminate .
       I was just wondering whether "Dynamic parallel processing" will do this job or not . I had also thought of using forks but as the number of approvers are  decided at runtime , i dont think it is possible .
       Any inputs ?
      Edit : We are working on CRM 5.0
    Thanks ,
    Shounak M.
    Message was edited by: Shounak  M

    Hi Shounak,
    Just do as Mike says:
    use the multiline element for a subflow.
    The subflow consists of your user decision, if someone rejects it, remember it (could be done by updating a small table using a method, or use an event, or what mike suggested, updating appending a table )
    In the top flow, after the multiline element step determine if someone rejected it (wait for event, or reading the table).
    Kind regards, Rob Dielemans
    Message was edited by: Rob Dielemans

  • Issue in completing the block step for parallel processing

    Hi,
    i have created a workflow where in i have used a block step to send workitems to multiple agents.  I have used parallel processing in block step. Number of agents are determined in the runtime. Lets say i have two items in my multiple line container( two agent id). Now inside block statement i have put user decesion step. So at the same time workitems goes to the two approver for approval. When both approver take the decesion after that also command is not coming out of the block step. I want the command to be out of block step after this and goes to the next step of workflow.
    Please suggest any helpful solution for it.
    Regards,
    Smit Shah

    I think theremust be a binding problem , the binding must be some thing like the below
    &USERID[&_WF_PARFOREACH_INDEX&]& ----->&_USERID_LINE&
    of the block step from WF container to Block Conatiner. Because when I checked in my system it is behaving as you want., I also include one Decision step inside the block, and then hard coded the userid values int the table USERID and made the above binding and it ia working fine and in the Decision Agent I mentiond the EXPRESSION and assigned the value &_USERID_LINE&

  • Completing the block step for parallel processing

    Hello ,
    I"m  using a  ParForEach  block   .
    It works fine and  2   approves get their decision task  respectively ,
    I  want to end all parrallel  processes if one of the   approvers select the reject  option  .
    I  thought it could be done using the  End condition Option .
    I have defined an end condition    in  the tab  Parallel  Procesing  ,  the condition  is  an  element wf_result is set to REJECT
    was defined.
      But   nothing resulted and althogh i check  the container and the  element is correctly   assigned after one of the approvers
      rejects  the  other is still  sitting there.
    i  ran  the condiion evalate button  on  this step  with no   success .
    Please Advise

    Hi Rina
    In EHP4, there is the following workflows for Compensation:
    04000022 ECM_SUBMIT
    04000024 ECM_REJECT
    04000025 ECM_CREATE
    together with class CL_HRECM00_WORKFLOW_EVENT.
    There, the parallel processing is used.
    Best Regards
    Raquel

  • Problem in Dynamic Parallel processing using Blocks

    Hi All,
    My requirement is to have parallel approvals so I am trying to use the dynamic parallel processing through Blocks. I cant use Forks since the agents are being determined at runtime.
    I am using the ParForEach block. I am sending the &agents& as a multiline container in 'Parallel Processing' tab. I have user decision in the block. Right now i am hardcoding 2 agents in the 'agents' multiline element. It is working fine..but i am getting 2 instances of the block.I understand that is because I am sending &AGENTS& in the parallel processing tab.. I just need one instance of the block going to all the users in the &AGENTS& multiline element.
    Please let me  know how to achieve the same. I have already searched the forum but i couldnt find anything that suits my req.
    Pls help!
    Regards,
    Soumya

    Yes that's true when ever you try to use  ParForEach block then for each value entry in the table a separate workitem ID is created, i.e. a separate instance is created that paralle processing is not possible like that
    Instead of that what you can do is create a fork with 3 branches and define a End Condition such that until all 3 branches are executed .
    Before to the fork step determine all the agents and store them in a internal table , you can access the one internal table entry by using the index value check this [wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/accessingSingleEntryfromMulti-line+Element] to access single entry from a internal table.
    For each task in the fork assgin a agent
    So, as we have defined the condition that until all the three branches are executed you don't want to come out of the fork step so, it will wait until all the stpes are completed.

  • ParforEach Mode in Block Step in BPM

    Hi All,
    We designed a BPM with a block step in Parforeach mode.
    For this block step, a multiline container is the Input.It has all the messages to be processed in parallel. But during runtime this block step is not processed in parallel mode.The messages are processed one after the other in sequential mode.Only different instances of the block step are generated but they are processed sequentially.
    Any suggestions!!!
    Regards,
    Srinivas.

    Hello,
    You could read here:
    http://help.sap.com/saphelp_nw04s/helpdata/en/ce/bb2c421f3fda2ce10000000a1550b0/frameset.htm
    that:
    A ParForEach is not a means of improving performance. A ParForEach will not result in a split into threads.
    Could this be the reason?
    Regards
    Patrick

  • How to model a parallel process in BPML

    I've just started using BPML to model a process for CAF. In the process, there will be a block of steps that will have to be repeated for a list of employees, in parallel.
    I want to model the parallel process in a BPML diagram; I've had a look through some introductory texts, but cannot see a way that I can represent a parallel process. Also, the exact number and identity of the employees is unknown at run time.
    Can anybody help with this?

    Hello Arun,
    I am using Microsoft Visio with a BPMN stencil:
    http://www.workflow-research.de/Downloads/BPMN/Frapu-BPMN_Template(v1.1).zip
    I am using it in accordance with the SAP white paper "Guidelines for Specifying Composite Applications.pdf"
    Tony.

  • Dynamic Parallel Processing using Rule

    Hello,
    I am using a User Decision within a Block (ParForEach type) step to send work-items to multiple Approvers parallelly.
    For this I have created a Multi-line container LI_APPROVERS and bound &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& to &_LI_APPROVERS_LINE& in the "Parallel Processing" tab of the Block.
    Now in User Decision I am using Agent as Expression = &_LI_APPROVERS_LINE&. This is working perfectly fine if I fetch the values in LI_APPROVERS via a background method before "Block" step is executed.
    I want to know if we can do this using a "Rule" within the User Decision? Meaning approvers are determined by the Rule(through a FM) at the run time instead of fetching them beforehand. I created a custom Rule and tried passing it under Agents but it didn't work. I do not know what bindings need to be done and how each line will be passed to User Decision to create a work-item for each user.
    Or
    I should remove the Block step completely and directly use the User Decision Task with Parallel Processing option under Miscellaneous tab?
    Can someone please explain how to achieve this using a Rule and exactly what bindings are required.
    Thanks.

    Hi Anjan,
    Yes, that's exactly what I want to know. I saw your below response in one of the threads but could not understand exactly how to do it. Can you please explain it.
    You have all  your agents in one multiline container element in workflow.
    Then you take a block step with perforeach.
    Then create a custom rule which will import multiline element of agents , and a line_no. Then in the rule you populate the actor_tab with agents from that multiline contaier elemens of agent. The logic will take the agent from the multiline container[line_no].
    Then you take a activity step . In agent use your custom rule usin prpoer bindin of multiline element of agents and for line_no you pass _***_line from block container. Then workitem will sent to n no of people parrallaly.
    This is my current design:
    Activity returns agents in LI_APPROVERS.
    At Block: I have binding &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& --> &_LI_APPROVERS_LINE&
    At UD: I have Agents as Expression = &_LI_APPROVERS_LINE&
    I want to remove the Activity step (to get Agents in background) and replace with Rule within UD. What binding do I need from Rule to Workflow? How to get the "Line_no" from rule as you mentioned above.
    Thanks for your response.

  • Parallel processing end condition problem

    Hi,
    i use a block with parallel processing for each row (parforeach). In every branch i create a workitem where a user has to input something. This is stored in my field status.
    Now i want that if the status is 'X' all branches will be closed like it would be in a fork.
    I entered the end condition &status& = X
    But the end condition of parallel processing doesn't work. I tested it and it works but into the workflow the branches won't be ended.
    Does someone has a solution or can explain me the problem?
    Thx

    Hi,
    The dynamic parallelism using 'parforeach' is not the same as fork with multiple branches with number of required branches to end the fork !! Its like this, when you use dynamic parallelism , for each index of your multiline container element used for parallelism, the sub-workflow ( or the associated Task having dynamic parallelism) will be called parallely and each branch ( parallely called sub workflow or task ) is independent now having no relation ( by default ) and workflow will not continue to next step until unless all these branches are completed.
    However, to solve your probelm i suggest the following
    1. How are you handling the process in each branch, is it through a sub workflow? if yes, in your sub workflow you can create a fork parallel to your normal process. In that fork, create a 'Wait for Event' step and wait for a new custom event ( for this you have to define a new custom event on your BO) . Put the necessary branches required as 1 and Join this branch to end of this sub-workflow. and
    2. Whenever your requirement to end all the branches is fulfilled ( say in your case status=X) raise this new custom event using Create Event and this will be captured by 'Wait Event' step in the fork of your sub-workflow and it will end that sub workflow ( meaning, your branch is ended now) .Make sure that you pass the BO Object Instance to your sub-workflow through binding from your main workflow. !!
    Hope this helps you !!
    Regards
    Krishna Mohan

  • Parallel processing of mass data : sy-subrc value is not changed

    Hi,
    I have used the Parallel processing of mass data using the "Start New Task" . In my function module I am handling the exceptions and finally raise the application specific old exception to be handled in my main report program. Somehow the sy-subrc is not getting changed and always returns 0 even if the expection is raised.
    Can anyone help me about the same.
    Thanks & Regards,
    Nitin

    Hi Silky,
    I've build a block of code to explain this.
      DATA: ls_edgar TYPE zedgar,
            l_task(40).
      DELETE FROM zedgar.
      COMMIT WORK.
      l_task = 'task1'.
      ls_edgar-matnr = '123'.
      ls_edgar-text = 'qwe'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
      l_task = 'task2'.
      ls_edgar-matnr = 'abc'.
      ls_edgar-text = 'def'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
      l_task = 'task3'.
      ls_edgar-matnr = '456'.
      ls_edgar-text = 'xyz'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
    *&      Form  f_go
    FORM f_go USING p_c TYPE ctype.
      RECEIVE RESULTS FROM FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' EXCEPTIONS err = 2.
      IF sy-subrc = 2.
    *this won't affect the LUW of the received function
        ROLLBACK WORK.
      ELSE.
    *this won't affect the LUW of the received function
        COMMIT WORK.
      ENDIF.
    ENDFORM.                    "f_go
    and the function is:
    FUNCTION z_edgar_commit_rollback.
    *"*"Interface local:
    *"  IMPORTING
    *"     VALUE(LINE) TYPE  ZEDGAR
    *"  EXCEPTIONS
    *"      ERR
      MODIFY zedgar FROM line.
      IF line-matnr CP 'a*'.
    *comment raise or rollback/commit to test
    *    RAISE err.
        ROLLBACK WORK.
      ELSE.
        COMMIT WORK.
      ENDIF.
    ENDFUNCTION.
    ok.
    In your main program you have a Logical Unit of Work (LUW), witch consists of an application transaction and is associated with a database transaction. Once you start a new task, your creating an independent LUW, with it's own database transaction.
    So if you do a commit or rollback in your function the effect is only on the records your processing in the function.
    There is a way to capture the event when this LUW concludes in the main LUW. That is the PERFORMING whatever ON END OF TASK. In there you can get the result of the function but you cannot commit or rollback the LUW from the function since it already have implicitly happened at the conclusion of the funtion. You can test it by correctly comment the code I've supplied.
    So, if you  want to rollback the LUW of the function you better do it inside it.
    I don't think it matches exactly your question, maybe it lead you on the right track. Give me more details if it doesn't.
    Hope it helps,
    Edgar

  • FORK is Not happening Parallel processing- It's working sequential

    Hi,
       we are into PI 7.O and SP 13.
       I am trying to test Parallel processing using Fork step. (With Two branches)
    My problem is sxm_moni both branches are not executed simultenously and it's executing one after the other.
    Did any body done in XI parallel processing using BPM...both calls has to finish at the same time. I mean first call 10 min and second call aslo has to finish first 10 min ..not other 10 min.
    I heard this problem from XI 3.0 and PI 7.O. But PI 7.1 did any body test the Parallel processing using Fork step.
       Pls help me is this issue will resolve if I go to PI 7.1.
    Regards,
    Venu.

    Hi Henrique,
    they would not necessarily start at the same time but shouldnt also be queued - Customer expecting the response within a 17 sec or 20 Sec but coming response 34 sec will not ok for the customer..tomorrow need add some more target again 17 sec will take...How PI can handle the Multi threading they are checking...I am not sure this problem fixed in PI 7.1 or not.
    there're # of connection restrictions in your system? Check that - Where can I check connections restrictions...If you know pls through some light on this.
    Also, how's your BPM transactional behavior (did you flag the create new transaction steps)?
    - I did not checked the flag for create new transaction step..once my server is up I can check the flag and I can test.
    Regards,
    Venu.

  • BPM - Parallel process

    Hi All,
    I have multipe messages in a multiline container in a BPM.
    Now i want to send each message individually to a webservice and get the response.Want to acheive this requirment in parallel process so that the total time is less.
    Please let me know how to implement this requirement in BPM.
    Regards,
    Srinivas.

    Hi Adish,
    >> I want to send message to syn webservice
    From which system you are sending data and what manner(synchronous or asynchronous).
    >>Where I don’t know exactly what will be the value for n in transformations step. It can vary depend upon input message that BPM will receive.
    For this you can use a container variable of type xsd:integer and store the value in it and later you can use it for the next steps.
    but give a arrow diagram and brief your exact requirement.(e.g., File->XI->HTTP)
    Thanks,
    Gujjeit

  • ABAP OO and parallel processing

    Hello ABAP community,
    I am trying to implement a ABAP OO scenario where i have to take into account parallel processing and processing logic in the sense of update function modules (TYPE V1).
    The szenario is definied as follows:
    Frame class X creates a instance of class Y and a instance of class Z.
    Classes Y and Z sould be processed in parallel, so class X calls classes Y and Z.
    Classes Y and Z call BAPIS and do different database changes.
    If classes Y or Z have finished, the status of processing is written into a status table by caller class X.
    The processing logic within class Y and class Z should be a SAP LUW in the sense of a update function module (TYP V1).
    Can i use events?
    (How) Should i use "call function in upgrade task"?
    (How) Should i use "call function starting new task"?
    What is the best method to realise that behaviour?
    Many thanks for your suggestions.

    Hallo Christian,
    I will describe you in detail, whow I have solved this
    problem. May be there is a newer way ... but it works.
    STEPS:
    I asume you have splitt your data in packages.
    1.) create a RFC-FM: Z_WAIT
    It return OK or NOT OK.
    This FM: does following:
    DO.
      call function TH_WPINFO -> until the WPINFO has more
    than a certain number of lines. (==> free tasks)
    ENDDO.
    If it is OK ==> free tasks are available
    call your FM (RFC!) like this:
    CALL FUNCTION <FM>
    STARTING NEW TASK ls_tasknam " Unique identifier!
    DESTINATION IN GROUP p_group
    PERFORMING return_info ON END OF TASK
    EXPORTING
    TABLES
    IMPORTING
    EXCEPTIONS
    *:--- Take care of the order of the exceptions!
    COMMUNICATION FAILURE = 3
    SYSTEM_FAILURE = 2
    UNFORCED_ERROR = 4
    RESOURCE_FAILURE = 5
    OTHERS = 1.
    *:--- Then you must check the difference between
    *:--- the started Calls and the received calls.
    *:--- If the number increases a certain value limit_tasks.
    wait until CALLED_TASK < LIMIT_TASKS up to '600' seconds.
    The value should be not greater then 20!
    DATA-Description:
    parameters: p_group like bdfields-rfcgr default 'Server_alle'. " For example. Use the F4 help
    if you have defined the report-parameter as above.
    ls_tasknam ==> Just the increasing number of RFC-Calls
    as Character.
    RETURN_INFO is a form routine in which You can check the results. Within this Form you must call:
    RECEIVE RESULTS FROM FUNCTION <FM>
    TABLES: ... " The tables of your <FM> exactly the same order!
    EXCEPTIONS
    COMMUNICATION FAILURE = 3
    SYSTEM_FAILURE = 2
    UNFORCED_ERROR = 4
    NO_ACTIVATE_INFOSTRUCTURE = 1.
    Her eyou must count the received Calls!
    And you can save them into a internal table for checking!
    I hope I could help you a little bit
    God luck
    Michael

Maybe you are looking for

  • Paying for Icloud storage for a year in advance

    I just upgraded my iCloud to 20 GB.  This runs .99 per month. Is there any way to pay for 1 year in advance?

  • Issue with iStore Concurrent Program

    Hi All, In local instance(11.5.10), I am not able to find 'iStore Concurrent Program' responsibility on it. Please let me know how can I find it? Thanks

  • Trying to display a visual component.

    I am using a JSP to run the application. And I used some freeware code to generate a panel component that I want to display on the JSP, yet I have no idea what I need to do, for I am very new to using the visual capabilities of Java. Thank you.

  • My mac is flashing a file icon with a quetion mark when i start it up

    When i start up my mac book pro it flahes a file icon with a question mark on it and stops there. Please help. 

  • CPI-C implementation in ABAP

    Hi, In an abap program I want to pick up files from an other server (not the SAP server) and process the data. I try do to this by using the CPI-C calls COMMUNICATION INIT COMMUNICATION ALLOCATE COMMUNICATION ACCEPT COMMUNICATION SEND COMMUNICATION R