BPM. parForEach block. deadline. multiline element

Hi all,
I have BPM where block parForEach exist. In that block there is another block with send message step(application confirmation demand) and deadline with throw exception step. In parent block (parForEach) I catch this exception and add this element to multiline element.
After parent block(parForEach) I check if multiline element is empty or not and if not I map this element in singleline element and try to send.
The problem is that BPM crashes on transformation from multiline element to singleline element. Workflow log shows CX_SY_REF_IS_INITIAL error. I see this error when multiline element is empty but I especially insert switch step that check if multiline element is empty or not and it shows that element isn't empty.
I already check mapping and also try change multiline element that doesn't helps.
Please help.
Maxim.

Hi Mario,
thanks for reply!
When multi element(I specially drop down append step) is empty its go to the "otherwise" branch. So I think the branch is working.
Maxim.

Similar Messages

  • BPM: ParForEach Multiline Issue

    Hello,
    In an integration process I use the following step sequence:
    Transformation: Splitting Abstract Interface A to Multiple Abstract Interfaces A
    Block (ParForEach): Loop over multiline container element ( referring to abstract interface a),
    and send single message (singleline container element)
    Basic behavior of the operations mapping is the following:
    abstract interface a ( 1 occurence) -> abstract interface a (0..Unbounded occurences)
    Source Message:
    submission
    item
    item
    item
    Target Message:
    submission
      item
    submission
      item
    submission
      item
    In this case I would like to loop over the submissions (using a ParForEach Block) and send three single messages with this structure:
    <submission>
    <item/>
    </submission>
    My problem now is the following: When I set the proporties of the ParForEach Block I select multiline
    container element a - this is working fine - however when I want to select "current line" the dropdown
    list of possible container elements is empty.
    I have however set up two container elements (both are referring to abstract interface a), for one of them
    the multiline option is activated.
    Why does this not work as expected? Could it be a problem with the transformation step to create a
    multiple messages?

    Check if:
    1) The single line element defined is having the block name under the Container column (and not process)
    2) Check the First, Second, Third points mentioned in this blog...they should solve your problem:
    /people/milan.thaker/blog/2008/08/05/modes-in-block-step-of-bpm
    Regards,
    Abhishek.

  • Sync JDBC call from ParForEach block in BPM (XI 3.0)

    Has anyone tried the following scenario:
    My BPM flow starts with a single message that I split using a message map into a list of messages to be sent synchronously to an Oracle stored procedure via the JDBC adapter.  After the mapping step, the flow goes into a ParForEach block that executes the sync Send step to the JDBC adapter, and then has a Container Action that collects the responses.
    My problem is that BPM seems to not like executing a synchronous send from inside a block.  The first execution of the send step will produce an error in the BPM flow.  The adapter framework, however, shows that the JDBC call executed normally and that the response message was sent back to the integration server.  There is no error indicated in SXMB_MONI, which inidicates to me that the response message was delivered successfully business server (the BPM flow).
    If anyone could shed any light or share any experience, it would be greatly appreciated.
    Chris

    Hi Chris,
    I am facing same situation how you configured BLOCK step for Sync response.Please let me know the flow how you configured.
    Srinivas.

  • Diff between ForEach & ParForEach blocks in BPM

    Hi,
    Can anyone let me know the difference between ForEach & ParForEach blocks? I am aware of the fact that ForEach gets executed sequentially and ParForEach gets executed parallelly from SAP help. But what I require is "Does usage of ParForEach improve the performance, since it executes parallelly, when compared with ForEach which executes sequentially. If not, how does ForEach behave compared with ParForEach?
    Thanks
    Sreeks

    Hi,
    The main difference between the two is the scenarios where they are used,
    parforeach : is mainly used in places where you have to fork for seperate requests, and have to collect individual responses into a single message.
    foreach : is maily used in places where sequencial processing is important or the order of the message has to be preserved by executing.
    As for which is better you could probably judge interms of cost(memory) vs performance. Parforeach forks a seperate flow for each path(thread on java stack + work flow on abap stack), and if your message is huge, you will be having n*message+BPM initialization cost, where n is the number of paths.
    the very nature of Foreach enables recycling of memory and there by for each execution it uses only message+BPM initialization cost.
    Bottom line, use parforeach where you need to use fork-collect pattern.
    Naveen

  • BPM ParforEach Loop

    I am having a BLOCk in my BPM. The Mode of the BLOCK is  ParforEach.
    There is another parameter "CurrentLIne". I dont know what it means and how do I define that. Because its a mandatory fields and when I hit the dropdown box, I am seeing Blank.
    In the Multiline Element Attribute : I have assigned an ABSTRACT interface.

    Hi Karen,
    Multiline Element Attribute : will hold all the abstract messages.
    But when you are looping your block it will process only particular abstact message (current).
    Currentline is similar to internal table work area in ABAP.
    current line will hold a current message when you are looping where as multiline will hold all the messages.
    so create another normal abstract container variable with the same abstract interface as that of multiline element (not multiline -  do not check multiline checkbox for this).
    and use the same in the block configuration,
    Regards
    Anand
    Message was edited by: Anand Torgal

  • BPM - Exception handling in multiline mapping

    Hi,
    I have in a BPM a block with processing mode ParForEach containing a transformation and then a send step.
    If the transformation (mapping) generates an exception for one of the lines of the multiline variable being processed, no subsequent lines are passed to the send step.
    I want the process to execute the mapping for each line and then send messages corresponding to lines without error. How can I do?
    Thank you
    Simona

    Hi Simona,
    I also feel that Michal had suggested the correct solution. Not sure why you are saying that the error gets propagated, if you have defined a proper Exception handling for the inner block.
    But regarding your design for "ParForEach", I am not sure whether you really need to carry out a transformation step for each Block instance, in which case you can keep the transformation step before the "ParForEach" block.
    Rgds
    R Chandrasekhar (RC)

  • BPM - ForEach Block

    Hello experts,
    I have developed an interface with the following BPM:
    1. <Receive Step>
    2. <Transformation Step: 1:N mapping>
    3. <Block: ForEach>
    4. <Send Step> inside the Block: ForEach
    I have created 2 container objects that use the same abstract interface:
    1. Object A which is a multiline of the abstract interface - used as
         a. the -Target Messages- in <Transformation Step: 1:N mapping>
         b. the -Multiline Element- of <Block: ForEach>
    2. Object B which is not a multiline of the abstract interface - used as
         a. the -Current Line- of <Block: ForEach>
         b. the -Message- of <Send Step>
    The problem I am facing:
    The <Send Step> is not executed and the status of the PE in SXMB_MONI is success.
    Any advice would be appreciated.
    Regards,
    Effi.
    Edited by: Effi Olivkovitch on Dec 1, 2009 9:33 AM

    >
    S.R.Suraj wrote:
    > Hi Effi,
    >
    > Have you tested your multimapping in Message Mapping?? Is it creating N outputs??
    >
    > Can you paste here the input file as given for your end to end testing... Make sure you dont have Messages and Message1 in the structure ie your input file should look something like
    >
    >
    > <Message> 1
    > <Row> 0..n
    > <Field-1>
    > <Field-2>
    > </Row>
    > </Message>
    >
    >
    > Regards
    > Suraj
    Hi Suraj,
    I tested the mapping in the test tab in ESR giving dummy values and the test was successful.
    The test xml looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
          <ns1:EDI_Extracts xmlns:ns1="urn:zim.com:tests">
             <Row>
                <EDI_EXTRACT_ID/>
             </Row>
          </ns1:EDI_Extracts>
       </ns0:Message1>
    </ns0:Messages>
    I also took the payload of the source message, put the Row elements inside the test xml and it was successful.
    The payload I see in SXMB_MONI for the source message is as follows:
    <?xml version="1.0" encoding="utf-8"?>
    <ns:EDI_Extracts xmlns:ns="urn:zim.com:tests">
         <row>
              <EDI_EXTRACT_ID>3141618</EDI_EXTRACT_ID>
              <EDI_EXTRACT_TYPE>M</EDI_EXTRACT_TYPE>
         </row>
         <row>
              <EDI_EXTRACT_ID>5192509</EDI_EXTRACT_ID>
              <EDI_EXTRACT_TYPE>A</EDI_EXTRACT_TYPE>
         </row>
         <row>
              <EDI_EXTRACT_ID>656869</EDI_EXTRACT_ID>
              <EDI_EXTRACT_TYPE>M</EDI_EXTRACT_TYPE>
         </row>
         <row>
              <EDI_EXTRACT_ID>656867</EDI_EXTRACT_ID>
              <EDI_EXTRACT_TYPE>M</EDI_EXTRACT_TYPE>
         </row>
         <row>
              <EDI_EXTRACT_ID>9686612</EDI_EXTRACT_ID>
              <EDI_EXTRACT_TYPE>M</EDI_EXTRACT_TYPE>
         </row>
    </ns:EDI_Extracts>
    Kind regards,
    Effi.

  • Issue in File to RFC to File Scenario with BPM using Block Step

    Hi Everybody,
                           I am doing File to RFC to File Scenario for multiple records using BPM using Block Step. The File Message is getting posted and after that, the message is getting stuck up in the qRFC Monitor (Inbound Queue).
                        After seeing the message in Inbound Queue, I am trying to execute and release the message. But when i execute the LUW, it says " Function module doesnt exist or EXCEPTION raised" in Inbound queue.
    Could somebody suggest me the outcome of this? What does this mean and how to
    release the stuck up message in Queue.
    Thanks and Regards,
    N.Jayanth Kumar

    Hi Rajesh,
                           After going through the blog, i saw the trace messages. It says      
    " The   exception occurred (program: CL_SWF_XI_INBOUND=============CP, include CL_SWF_XI_INBOUND=============CM00F, line: 19)"
    Regards,
    N.Jayanth Kumar

  • PI 7.0 Condition Editor: Picking particular value of multiline element

    Hi PI-Gurus,
    we're on PI 7.0 with the old condition editor. Within a condition we have to check a value of an element at a particular position. If the value in the second E1EDK14 segment (QUALF 007) is "04", we can process the message. Otherwise the message hast to be stopped.
    Example:
    <E1EDK14 SEGMENT="1">
      <QUALF>006</QUALF>
      <ORGID>01</ORGID>
    </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>007</QUALF>
      <ORGID>04</ORGID>
      </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>008</QUALF>
      <ORGID>1000</ORGID>
    </E1EDK14>
    Is this possible to address a particular element in the ORGID list?
    As I understand, normally the ORGID's come as a multiline element and can be addressed like this:
    /ORDERS05/IDOC/E1EDK14/ORGID
    My guess is the following:
    /ORDERS05/IDOC/E1EDK14<b>[1]</b>/ORGID  - and unchecking the multiline checkbox
    Am I right, or is there any other solution?
    Help is as always highly appreciated and will be rewarded!
    Thanks in advance!
    Matthias

    Hi,
    The condition editor uses full-blown xpath expressions so you could even use something like
    ORDERS05/IDOC/E1EDK14[QUALF='007' and ORGID='04']/ORGID
    and then for the operator use EX
    or
    /ORDERS05/IDOC/E1EDK14[QUALF='007']/ORGID
      and then operator = and value 04
    Edited by: ciochinah on Feb 16, 2011 7:59 PM

  • Need 2 Multiline elements for user decision step

    We are on SAP R/3 Enterprise version.
    I have this requirement to find agents based on the agent type and work center field.  So I created a responsibility rule for each type of agent type.  The responsibility rule is keyed on the work center, and HR positions are mapped to each responsibility rule’s work center field. 
    We have 50 agent types/responsibility rules, 60 work centers, and 1 or more positions for each agent type and work center combinations. Due to the total number of positions, I prefer to use 1 responsibility rule per agent type for ease of maintenance.
    I have a FM that reads the responsibility rule based on the agent type and work center field and retrieve the agent_list.  I used this FM/method/step prior to my user decision step and pass the agent_list to the UD step via container.
    In my user decision step, the ‘Other’ tab does not have Multiline element for me to enter my agent_list.  So I cannot use &agent_list[&_WF_PARFOREACH_INDEX&]& in my user decision agent assignment expression field.
    In my last job, we have SAP ECC 5.0, the UD step has a ‘Misc’ tab that has Multiline element, but our current SAP R/3 Enterprise version does not have ‘Misc’ tab, it only has ‘Other’ tab.
    Question:
    1.  How do I use [&_WF_PARFOREACH_INDEX&] without Multiline element for agent_list in UD step?
    2. I have to use the same way to retrieve my LED_agent_list as well, so I need 2 Multiline elements in my UD step. But normally in  ‘Other’ tab, it allows you to define only 1 Multiline element. How do I get around this restriction?
    3. My last resort is to use 1 responsibility rule, then I can use the rule in the agent assignment.  If that is the case, is there any limit on the number of entries in the rule?
    Thanks.
    Amy

    Sorry, I posted to the wrong forum.

  • How to use data of multiline element from workflow container

    Hi,
    Can you please tell me how to access rows of multiline element of workflow container.
    Scenario is like below.
    I have values in a multiline container(table) of workflow container.
    Now inside Fork branches  i need to check for specific data in the above table and with that condition i have to send workitem.
    I hope u can understand,otherwise please revert.
    Thanks in advance,
    Madhu

    You cannot didrectly check the condition...
    what you have to do is.. write a inside the method as below and set the flag...and use the flag in condition editor...
    SWC_GET_TABLE CONTAINER 'AGENTS'  lt_agents.
    loop at lt_agents ino wa_agents.
    if wa_agents = 'A'.
    lv_flag = X.
    endif.
    endloop.
    SWC_SET_ELEMENT CONTAINER 'FLAG' lv_flag.
    Create an export parameter FLAG as char1 with export marked.
    Do the neccesary bindings from task to workflow.
    Then in workflow check this flag in condition editor.

  • Passing multiline element to workflow container ? how do i ?

    Hello Folks,
    I need to pass an internal table to the workflow container...In this container i had already created an Multiline element which the right table type assigned..
    I need to call this Workflow using FM SAP_WAPI_START_WORKFLOW.... Eg:
    CALL FUNCTION 'SAP_WAPI_START_WORKFLOW'
      EXPORTING
       TASK                      = WFNAME
       LANGUAGE                  = SY-LANGU
       DO_COMMIT                 = 'X'
       USER                      = SY-UNAME
       START_ASYNCHRONOUS        = 'X'
      DESIRED_START_DATE        =
      DESIRED_START_TIME        =
      DESIRED_START_ZONLO       = SY-ZONLO
      IFS_XML_CONTAINER         =
      IMPORTING
       RETURN_CODE               = lv_return_code
       WORKITEM_ID               = lv_workitem_id
      NEW_STATUS               =
    TABLES
       INPUT_CONTAINER           = lt_container_wf
       MESSAGE_STRUCT            = lt_message_struct
       MESSAGE_LINES             = lt_msg_lines.
    lt_container_wf values should have an internal table to be passed a multiline element.....
    I am unble to pass it this way and the error i get is that " Single Line element  <XXXX> is being passed several times...
    How do i tell the system the the element which is passed is a mulitple element..
    Regards,
    Anand

    check this code snippet
    include <cntn01>.
    DATA:
          lv_retcode   TYPE  sysubrc,
          lt_cont   TYPE TABLE OF swcont,
          ls_cont   TYPE          swcont,
          lt_kna1   TYPE TABLE OF kna1,
          ls_kna1   TYPE kna1.
    SELECT * FROM kna1 INTO TABLE lt_kna1 UP TO 10 ROWS.
    swc_create_container lt_cont.
    swc_set_table lt_cont 'CUSTOMER' lt_kna1.
    CALL FUNCTION 'EWW_WORKFLOW_START'
      EXPORTING
        x_task                = 'WSXXXXXXXX'
    TABLES
       X_CONTAINER           = lt_cont
    EXCEPTIONS
       INVALID_TASK          = 1
       NO_ACTIVE_PLVAR       = 2
       START_FAILED          = 3
       GENERAL_ERROR         = 4
       OTHERS                = 5
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  • Query in ParForEach block in ccbpm

    Hi,
    I've a query in ParForEach block in ccbpm.
    Please confirm how many maximum parallel instances can be created in a ParForEach Block in ccbpm.

    Hi Manas,
    As u would know ParForEach i sused if u have parallel processing branches,
    The max u can have is 999.
    Check this link
    http://help.sap.com/saphelp_nw04/helpdata/en/ce/bb2c421f3fda2ce10000000a1550b0/frameset.htm
    Hope it helps!!!!!!!!!!!
    Reward points if u found it useful

  • Multiline element through Mail

    Hi Friends,
    I am trying to send a multiline attribute value through send mail in workflow. The attribute has a line type TLINE (Char 79). I have it as an event parameter. Whenever i raise an event i pass a table with 3 lines through the INPUT_CONTAINER of SAP_WAPI_CREATE_EVENT. It is bound to the workflow container multiline element. When i debug i see that everything is fine and the WF container element is filled with 3 lines. I have also created a similar multiline element in the SendMail task container and binding it from WF to task. The task container receives the table with all the lines. Everything goes fine until this point. I included the multiline element in the body of the mail. When the mail is sent i could only see 79 characters altogether. ie it just takes 79 characters starting from the first line of the table. How should this be handled?
    And do anyone know how to format the content?
    Prompt replies would be rewarded suitably as this is urgent.
    Thanks in advance
    Nathan.

    Hi Nathan,
    In mail step below the Body of mail there is icon for Insert expression.
    Click on insert expression and choose your multiline container element, No wsystem will automatically popup three options
    -> single line
    -> multilines as continouos text
    -> multiline with line break
    you choose the option accordingly.
    If you are not getting these options then follwouing is the code for each option.
    Paste the following code in body of mail.
    I assume TLINE as your Multiline container element.(Replace TLINE with your variable)
    -> single line : &TLINE&
    -> multilines as continouos text : &TLINE[]&
    -> multiline with line break : &TLINE##&
    It should work.
    Rewrd if its helpful.
    Note : YOur container element must be with multiline property.
    Thanks
    Praveen.

  • How to read multiline element values to a table

    Hello every one,
    I am facing a problem while reading multiline element values for workflow container.
    Through portal i am populating multipul records to the structure in wrokflow and they are storing fine, but when i am trying to read
    them through SAP_WAPI_READ_CONTAINER and reding with SWC_GET_TABLE OR SWC_GET_ELEMENT to a table with similar structure, i am not geitting the values.
    DATA: lt_url TYPE STANDARD TABLE OF ZHRESS_URL WITH HEADER LINE.
    CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
            EXPORTING
              workitem_id                    = '476329'                            "for instance i have hard coded the value
             LANGUAGE                       = SY-LANGU
             USER                           = SY-UNAME
          IMPORTING
            RETURN_CODE                    =
            IFS_XML_CONTAINER              =
            IFS_XML_CONTAINER_SCHEMA       =
           TABLES
             SIMPLE_CONTAINER               = lt_container
            MESSAGE_LINES                  =
            MESSAGE_STRUCT                 =
            SUBCONTAINER_BOR_OBJECTS       =
            SUBCONTAINER_ALL_OBJECTS       =
      swc_get_table wf_container 'URL' lt_url.
    the above element URL is multiline structure(ZHRESS_URL).
    Request your guidence.
    Thanks,
    Krish.

    Hello,
    Just look in SIMPLE_CONTAINER, you'll see mutiple entries if there's a table, eg:
    ADDRESSSTRINGS                   USSMITHJ
    ADDRESSSTRINGS                   USJONESB
    You can just read them using normal ABAP.
    regards
    Rick Bakker
    hanabi technology

Maybe you are looking for