Switch branching in integration process

Hi,
I want to use a switch branching in integration process. The condition of the switch is to compare the source field value with a constant like
If /p1:MT_Pntmaster/field1 = "n/a"  goto branch1  else
                                                   goto branch2.
How to achieve this in switch editor?
Because, in the editor, both left operand and the right operand directs for selecting a structure and i am unable to enter a constant value.
I appreciate your quick help.
Regards
Nagaraj.

Hi Nagaraj,
You can enter constant value in switch for comparasion.
Click on Condition in properties tab.
A new window opens up.
On the left side we need to select the Left Operand and in the Right side we need to select the Right Operand.
Now Click on the Right Side . Next to Hand+QuestionMark sign.
A new window opens up (expression editor).
You will see four options in the expression editor.
Select the first option Constant. Enter value "n/a".You are done.
If you still have any confusion let us know.
Regards,
Sumit

Similar Messages

  • How to configure Integration Directory for Integration process async sync

    Hi Experts,
                     I am confused about doing configuration in Integration Directory i.e receiver determination,interface determination and receiver agreement and sender agreement for my integration process as it involve synchronous send at target side.
    In my Scenario , we get Purchase order request(asynchronously) from SRM system in proxy xml format which we have to map to Cxml format send it to third party system(say system 2) as http request.Then we will recieve a response from system2 in Cxml format through HTTP.Now,we have to map this response as to SRM system via proxy code for successful and error case .If error occured we also have to mail to the respective department about the error occured via mail adapter.Proxy to XI is a asynchronous communication and XI to System2 is a synchronous communication .Then again XI to SRM is a asynchronous communication via proxy.I have request and response External defination for Cxml i.e HTTP side.
    I have done following integration process in ESR
    Start- Receive(1)---Transformation(2)-send(3)-Fork(4)--
    stop
    ...................................................................................................... .....[----Branch 1 [-Transformation(5)-Send(6)-
    .......................[-----Branch 2 -
    SWITCH STEP to check error code[
    ............................................................................................................[.otherwise branch of switch
    Fork(4)----[
    .......................[----Branch 1-Transformation (9)-send(10)-
    Here,
    Recieve(1) -- is used for recieve request from SRM.Mode is asynchronous
    Transforamtion(2)-- is used for operation mapping between request of SRM to HTTP request.
    send(3) --is used to sending request synchronous to HTTP,mode is synchronous,used synchronous abstract interface,abstract reqhttp and abstract resphttp
    switch-switch Branch1 is used for checking error response to be true---
    Transformation(5)--- is used to map HTTP response to Mail response structure
    Send(6)----
    is used to send mail content to Mail adapter
    Transformation(9)---- is used to map HTTP response to Proxy response
    Send(10) --- used to send mapped proxy response to SRM as to update status by calling calling Function module using proxy code.
    Thanks
    Deepak

    Deepak,
    In BPM data does not flow in Backword direction!
    take any step in your BPM the message it is goiong to receive will be what a step just before it is giving to BPM.
    Now in your case
    IR Part:
    You have to call Third part Synchronously and the input to it will be what Proxy has given to you.
    Create an Abstract Synchronous(in case of abstract you need not bother it is Inbound or Outbound) in which(I mean the Message Interface) The Output message will be what you have Received from Proxy and the input message will be what you are going to receive from the Third party as a Response.  Now you would have Inbound Synchronous Interface created for calling Third party.
    Have a Interface Mapping between the Abstract Synchronous and Inbound Synchronous Message Interface.
    ID Part:
    For synchronous Step:  BPM will; be sender with  Message Interface Abstarct Synchronous
    Third Party will be receiver With Inbound Interface(Synchronous). Use the INterface Mapping between Abstract Synchronous and Inbound Synchronous that You have created in IR.
    Have a Receiver Agreement for the Thirs part.
    No Sender agreement required in case of BPM as a Sender.
    Thanks,
    Sunil Singh

  • Integration Process - Exception Handling

    Hi,
    I have developed an integration process, which call web-service, and catch it's exception. The problem is that the WS returns generic exception (SYSTEM) for all exceptions, but with different text for each one.
    Is there any way to get the exception text (the text itself and not the type), analyze it and handle the process correspondingly?

    Hi Shai,
    When you are calling the web-service method in BPM, put it in a block.....in the exception branch of the block, the control will go when the web-service will give exception.........so then put a switch in the exception branch - put the exception message as a condition for switching - do switching on basis of message text - and in the switch branches, do what you want to do for those exceptions.
    Hope it solves your query.
    Thanks,
    Rajeev Gupta

  • Assign a constant to element of message in Integration Process

    At the beginning of Integration Process I using Receive step and it receives message1, that contains only parameter "id":
    <message1>
      <id>1234</id>
      </counter>
    </message1>
    Than I have some steps, than Switch step with a condition. In otherwise branch I need to assign some constant to element "counter" of message1 and send this message to the next receiver:
    <message1>
      <id>1234</id>
      <counter>constant </counter>
    </message1>
    How can I do this?

    In your otherwise branch, use a transformation step to all a mapping program, map the constant value to your counter element.
    Regards.
    Liang

  • Query on Integration process

    I want to know the functions of each steps we using while creating an Integration Process in IR.

    Hi Shankar,
    These are the step type in IP
    Receive Stepn -
    To receive the outbound message
    Send Step -
    > To send a message.
    Receiver Determination Step -
    > It determines the receiver of the message.
    Transformation Step -
    > The mappin is done using this step.
    Switch -
    > It is a conditional statement where only one branch gets executed.
    Block -
    > It holds a set of steps inside it.
    Fork -
    > All the branches of the forx are executed in parallel.
    Loop -
    > It loops thru the steps defined in it.
    Container Operation
    Control step
    Wait Step -
    > Waits for an defined unit of time/message.
    Undefined Step
    In addition also have a look at this blog <a href="/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm Through With BPM</a> by Krishna Moorthy
    Regards
    San
    <a href="Remember to set the thread to solved when you have received a solution to set the thread to solved when you have received a solution</a>
    <a href="/people/daniel.graversen/blog/2006/09/07/using-a-bpm-to-collect-messages-for-a-set-interval-of-time a BPM to collect messages for a set interval of time</a> by Daniel Graversen
    Where There is a <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/weblogs?blog=/weblogs/topic/16">blog</a> there is a Way.

  • Error when starting a SWITCH branch (8987)

    Hi,
    I am testing my workflow which starting with a multiple condition (switch). The workflow process is stopped with the error:
    Error when starting a SWITCH branch (8987).
    The workflow check shows no warnings or errors. What could be the problem?
    Thank you in advance.
    /Elvez

    Check the workflow container (of the started workflow instance) and see if you spot a problem with one of the container objects used in your switch conditions.

  • Handling fault messages in an Integration Process (bpm)

    I have a bpm in PI 7.11 which performs a synch call to an external webservice. In addition to the request/response, that webservice can also generate two faults: ObjectNotFoundFault and generalfault.  I am having trouble handling these faults - when a fault occurs my handler is not being invoked and thus the bpm process stops/errors. When I look at the underlying process (via txn swi1), I see the exact error text:
    "No exception defined for fault message ObjectNotFoundFault http://www.companyb.com/services/olsa_v1_0/"
    From what I understand within the bpm synch call step to the webservice I need to do the following to handle the exception/fault:
    - put the synch call (to the webservice) into a block
    - add an exception branch to that block named let's say A & set the exception handler of that block to be A
    - in the exception setting of that synch step, select A
    In my case, I don't care about the fault details other than to ensure it does not stop the whole Integration Process, so in my exception branch I don't do anything. I did try adding a control step within it too (as per SAP Press text book).
    Is there anything else I need to do here?  I am not mapping the returned fault - does the fault need to be mapped (not sure how I would do this given that the synch step uses an abstract interface and therefore to my knowledge no fault mapping can be done)? 
    There are 2 Notes that describe my issue exactly:
    https://service.sap.com/sap/support/notes/1484903
    https://service.sap.com/sap/support/notes/1158699 <-- this one refers more to me, but we already have in 7.11
    Can anyone let me know exactly the steps I would perform to handle these faults - does the exception name / handler A above need to be named the actual exception / fault ObjectNotFoundFault?
    Any help appreciated.
    Thanks,
    Keith)?
    Any help appreciated.
    Thanks,
    Keith

    Thanks - my scenario I guess is #2 of that blog. But is your take that even if I don't care what is in the fault message, i.e. I don't care about the contents of it but rather I just want to continue on from it, that I still need to perform this java coding?  It's not clear to me from what he says - it seems to me he does the java coding to actually capture the contents of the message.  I am in fact using the soap axis adapter too, as he is. The screen shot showing the exception branch is basically what I have.
    Regards,
    Keith

  • 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 ??

  • Deadline Branche in Correlation Process - Best Practice

    Hello,
    I have an integration process with a correlation - there is a asynchronous send step which activates a correlation and afterwards an asynchronous receive step that uses that correlation.
    Furthermore I have a deadline branch to cancel the process after 24 hours.
    My question now is:
    There could be (rare) cases where a message arrives later than 24 hours, so according to my understanding the received message will block the inbound queue as no active correlation can be found anymore. Is this correct? How can I avoid this situation, I guess a blocked queue would also block other messages that are sent to the integration process?
    What would be best practice to handle such a scenario? I could leave the process intance open for 1 month, however this might have a significant impact on system performance.....
    Thank you for your advice.

    There could be (rare) cases where a message arrives later than 24 hours, so according to my understanding the received
    essage will block the inbound queue as no active correlation can be found anymore
    No correlation found error will occur only when the BPM instance is running and the message tries to enter into the relevant receive step (not the first one)
    However when you say the process is cancelled you need not worry about the message going into the queue and blocking the BPM queue.
    Regards,
    Abhishek.

  • Multiple condition : Error when starting a SWITCH branch

    Hi,
    In our Z Leave Workflow,I am facing the errors listed below.
    Error when starting a SWITCH branch
    Error during CASE evaluation in SWITCH mode for node 0000000158
    Operator 'EQ': The value of the left operand cannot be determined
    Error in the evaluation of expression '<???>&REQ.STATUS&' for item '1'
    Unable to determine the value of component ''
    It gives error in Multiple condition Request Approved? which is similar to standard WF12300111 node number 158 (u can say copy of WF12300111
    This multiple condition works in some scenario But it gives dump at other scenario .
    I have checked the value of REQ.STATUS in runtime. It populates the value as 'POSTED' in runtime,
    Please suggest if any solution on this.
    Regards,
    Kalpesh

    Hi There was some problem with task which was comprising class CL_PT_REQ_WF_ATTRIBS and APPROVE method. This method is to change the status of particular leave workitem.After running this particular task ,the status was not changin instantly.This method locks particular workitem and was releasing the workitem once the WF gets completed.Hence I was getting REQ.STATUS as sent.
    I have changed that task with following code in new task...
    DATA:
          REQUEST_ID TYPE PTARQ_DEDUCTION-REQUEST_ID,
    request      TYPE REF TO if_pt_req_request,
        new_status   TYPE tim_req_status.
      SWC_GET_ELEMENT CONTAINER 'REQUEST_ID' REQUEST_ID.
    CALL FUNCTION 'ENQUEUE_EPTREQ'
        EXPORTING
          mode_ptreq_header = 'E'
          request_id        = request_id
        EXCEPTIONS
          foreign_lock      = 1
          system_failure    = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
        MESSAGE w058(hrtim_abs_req) WITH request_id.
      ELSE.
    CALL METHOD ca_pt_req_header=>agent->get_request
          EXPORTING
            im_request_id = request_id
          IMPORTING
            ex_request    = request.
    execute state transition
        CALL METHOD request->initiate_state_transition
          EXPORTING
            im_transfer_event = 'APPROVE'
          IMPORTING
            ex_new_status     = new_status.
    COMMIT WORK.
        CALL FUNCTION 'DEQUEUE_EPTREQ'
          EXPORTING
            request_id = request_id.
    ENDIF.
    This will create new status for leave item during WF processing.
    Apart from that also added Wait for  2 minutes after that task....
    Thanks for your help.
    Regards,
    Kalpesh

  • Integration Process never starts

    Hi everybody,
    in my scenario, I'm getting an IDOC an I'm sending it to two Services (two receiving services in receiver determination): a) a BS with a mail communication channel b) to an integration process.
    In first case a), the file is sent via mail correctly. In second case, it seems as if the integration process is never executed, but I don't get any error messages.
    - I checked receiving interface of integration process and of receiver determination: both are the same
    - in SXMB Moni, there are two entries for the split in the receiver determination; both show the final flag for correct execution
    - but in SXMB Moni, there is no entry shown that I can see, that execution of the process at least started
    - in SXMB MONI BPE, there is no entry for the IP
    - the tRFC-queues show no failures.
    Has anybody an idea?
    Best regards
    Torsten

    Is your event queue switched on and background job active? ( tcode: SWEQADM )?
    Also check this blog
    /people/krishna.moorthyp/blog/2005/11/28/inactive-integration-process-ip-at-run-time
    Message was edited by: Jay

  • Integration Process w/ return code 99

    Have a very weird situation with an integration process. In our development environment, in SXI_CACHE, it returns a return code of 99 signalling some type of error. The weird problem is that the process works just fine. It's an IDOC to flat file scenario and the flat file gets generated each time perfectly. This is with the process status of 99 in SXI_CACHE.
    However, when the process is moved to QA, it does not work at all. The messages get stuck in SXMB_MONI with message "message has error on outbd. side". When I click on the PE to view the error, it appears the workflow behind the process is defined incorrectly becasuse in the event trace I see:
    <b>Workflow definition of task 'WS90100009' cannot be activated.</b>
    The reason for this error is
    <b>Container element '_CRL_I001ZMTRLNO_0025' not available</b>
    What is killing me is that this same error occurs in our development environment, yet the process still works fine.
    Can someone possible explain what the container error might mean and how to fix? The workflow never gets kicked off because the definition is not active.
    Thanks

    all green in that transaction...
    in the process, i have two branches.. one to receive a MATMAS the other to receive a ZCLFMAS IDOC....
    a file gets generated when any of the following conditions occur
    - both IDOC's are received for the same material
    - only MATMAS or ZCLFMAS are received and the other message type is not received within 3 minutes... we have time controls on the two branches
    the error is in the initial receive step...keeps saying that container element is not available yet I have no idea what that means

  • Alerts in Integration Process (BPM)?

    We are just beginning to use Alerts in PI 7.1.  If an error occurs in an integration process (BPM), will it trigger an alert if the Alert Rule is defined wide open?  Or do you actually have to trigger the alert in the integration process with an additionl step to trigger the alert?

    The Alert has to be defined in ALRTCATDEF.....no matter where the alert comes from (IE, AE, BPE)
    If an error occurs in BPM and you have not mainatined proper exception handling for it then....and if the processing shows in red in SXMB_MONI then the alert will be raised as IE alert
    However if you have implemented exception handling for a step and then in that exception branch you raise an alert then your BPM will raise alert....the subject of your alert email will be Process <ProcessID>
    BPM related alert can be either with static text (using Alert Container Variables) or Dynamic text (using some value from payload)
    Please note that to raise an alert from BPM it is not compulsory to only raise it as a Dynamic Alert......static alert can also be raised.
    The documents which are available for lower releases are still applicable in alert creation.....so existing blogs/ docs should work
    Regards,
    Abhishek.

  • How to check if message is empty in Integration Process

    Hi!
    I have Integration Process with container object OUT_CR This type of message I get from another message using xsl-mapping. The point is that result message can be empty (only message header - "<MT_1C_BXY_CR/>").
    In Integration Process I place the step Switch where I use condition to determine if my message is empty and if it's not - to send it to receiver system.
    I'm beginner in PI and it's the first time I try to use Condition Editor. I tried to put condition like "EX OUT_CR./p1:MT_1C_BXY_CR/ONE" but it doesn't work.
    Could you advise me how can I check If the message is empty using Condition Editor in IP? Or may be any tutorial on working with Condition Editor in PI?

    you might have to try the XSL function exists - http://www.w3schools.com/xpath/xpath_functions.asp
    Try the EX operator as shown in this blog Customise your 'XPATH' Expressions in Receiver Determination

  • File adapter transport acknowledgement in Integration Process

    Hi,
        I am working on a very complex integration process. In one of its part, a message is sent to the File Receiver and a Transport Acknowledgement is requested. From what I read, I still don't get it how to check in the integration process if everything was fine.
        Do I need to place an exception branch in the corresponding block and if the send step triggers an exception, that means that the acknowledgement wasn't received? Or do I need to make a receive step with a deadline of around 30-60 secs and there wait for the acknowledgment, triggering the exception here?
        Basically I would like to implement something like If there's an error do a specific mapping, if it went through then do a different mapping.Thanks in advance for your suggestions.
    Regards,
    George

    Basically I would like to implement something like If there's an error do a specific mapping, if it went through then do a different mapping.
    In that case you shouldn't think of Deadline branch. Use the exception branch inside block and there you may specify another mapping condition.
    Regards,
    Prateek

Maybe you are looking for

  • Need help for cenvat reversal

    Hi Friends, Need help for cenvat reversal. Reversed MIRO by MR8M & MIGO by 102 movement but not able to post & cancel cenvat by J1IEX. In table J_1IEXCHDR status = "P" and J1I5 does not update for document of 102 movement because reversal document of

  • Online video clips do not play correctly on all browsers

    I am unable to play video clips at the right speed without them stalling and stuttering. For example, a typical YouTube clip will not play correctly, so the video will stutter and the sound won't play in time with the video. This is especially frustr

  • Bex exception issue..Very urgent

    Hi, Can any one let me know how to do the Exception for the below issue. Only the key figures has to show Red color if required date less then current day. That means first five rows key figure values has to show red color. Required End Date     Noti

  • Subscription Not automatic

    MY Adobe CC is about to expire and I can't access my payment information through the adobe website. Why does it not automatically renew my subscription monthly? Please renew my subscription using my current credit card used in my profile.

  • HT201209 Why was my credit card still billed for purchased songs after my gift card was correctly entered?

    I recently entered the information into iTunes for a gift card.  All information was entered correctly, and I got a message confirming that.  After this point, I purchased a song from iTunes, but I still received an email today to inform me of my pur