Fault on using bpm:getPerformer() in a script activity

I am trying to get the performer in a swim lane using script activity just before the user task activity. It throws fault:
<bpelFault><faultType>0</faultType><subLanguageExecutionFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is bpm:getPerformer(). The XPath expression failed to execute; the reason was: FOTY0001: type error. Check the detailed root cause described in the exception message text and verify that the XPath query is correct. </summary></part><part name="code"><code>XPathExecutionError</code></part></subLanguageExecutionFault></bpelFault>
Not sure on why is it an invalid Xpath expression. Please let me know how can I get the performer from a application role mapped to a swim lane.

i had tried that approach and ended up facing the same issue. I achieved the use case following these steps,
1) Get the taskId from the ExecData payload of the component.
2) Have a script activity to evaluate this expression " hwf:getPreviousTaskApprover(bpmn:getDataObject('taskId')) " which will give the performer of an application role.
Thanks,
TK

Similar Messages

  • Handling SOAP Fault messages in BPM

    Hi,
    My scenario is Sync-Async Bridge involving File to SOAP transformation. I have used BPM as 1 file has many records and each record is required to call the web service synchronously.
    In the BPM I have
    Receive ---> Transform (1:n multimapping ) -
    > Block (Par for Each)
    In Block  I have Send Sync step to call Web service . I have an exception branch for the send step for catching Fault message that is sent back from webservice for Application Fault.
    Problem:
    Though the Fault message is sent from web service ,in the BPM  the block goes in error saying : "No exception defined for fault message ".  The Exception brach is not executed.
    Please suggest if anyone has come across such a scenario and solution to this.

    hi satesh
    using "exception handler" in BPM we can handle the error messages
    regards
    kummari

  • Handling fault messages in BPM

    Hi,
    I am using BPM for a RFC to SOAP scenario to handle Fault messages. (Please have a look at my previous post also SOAP Fault message )
    I have created an exception block in BPM to catch the fault message from SOAP service. Inside the exception block i need to map the fault message to RFC response. But fault message is not accessible in Exception block.
    Let me know if you have any idea to solve this.
    Thanks,
    Uma

    Uma:
    Let me make clear the requiremt. You have RFC Import(aka Request message) and Export(aka Response + Exception) and you have Web Service with Request, Response, Fault messages. And you want to send the fault messages back to the RFC in addition to the response. I was wondering, If we do the following mapping without BPM, does that fulfill your requirement.
    RFC-Import <----
    > SOAP Request
    RFC-Export <----
    > SOAP Response
    RFC-Export <----
    > SOAP Fault
    Can you let me know if you face any problems with this one. I have seen your other thread and was wondering, whats the problem is. May be I didn't understand the requirement properly. Please clarify me

  • Emulate Fault message in BPM

    Hello
    I have read all related topics
    fault message in BPM process
    Alert monitoring and fault message types
    Using Fault Message Type in BPM
    but no answer..
    I have synch BPM that send synch request to RFC and a mapping step. Then I have to catch exception (of send step or mapping) and send fault message in exception handler.
    I haven't a proxy. I want to create fault message manually and send it. Is it possible? I cannot create an interface of fault message type.

    Hi Sergey,
    As far as I know, it's possible to catch the mapping/send exception.
    It's also easy to define an exception branch for this exception, and inside the exception branch, send a "normal" message in a send step.
    However, as far as I know there's no way of specifying a BPM send step that sends a fault message.
    At least in my experience, regular messages are just as useful when sending error information.
    Cheers,
    Ofer

  • Multiple files to single using bpm

    Hi,
    Scenarion : 6 files to 1 file using BPM
    ( 6 files are generated from the tool in a folder )
    Files
    abc1xyz_20101210.txt
    abc2xyz_20101210.txt
    abc3xyz_20101210.txt
    abc4xyz_20101210.txt
    abc5xyz_20101210.txt
    abc6xyz_20101210.txt
    Conditions
    1) Sender File Adapter needs to pick the files when all the files are generated .
    2) Should not pick the duplicate files
    (eg : abc1xyz_20101210.txt
             abc2xyz_20101210.txt
             abc1xyz_20101211.txt
    abc1xyz was repeated 2 times , ignore the file before file is picked.
    ponints will be awarded
    Thanks

    Hi,
    I prefer these kind of check can be easily done by the sender system or tool while generating those files itself..
    that is during the generation of file if the file already exists then overwrite the content or delete the existing file and create new file...
    other option can be..using OS scripts to validate the file name till 4 characters..read the file name and take first four chars and compare it with the all other files...
    I cannot provide the exact code but check with some scripting guys..I think the above logic can be achievable..
    HTH
    Rajesh

  • How to use IF Conditon in SAP Scripts?

    Hi Guys,
                   I am having adoubt how to use IF conditon with multiple variables in SAp Scripts
    for ex If a>b and a>c and a>d
             Elseif b>a and b>c and b> d.
             Elseif .....
              endif.
              How to use above example in SAP Scripts.
    thanks,
    Gopi.

    hi Gopi,
    it is almost the same as normal ABAP, you only have to use & before and after the variable and the variable has to be in capitals and you have to make the line as command ( /: before the line )
    IF &A& > &B& AND ...
    text to print
    ELSEIF ...
    text to print
    ENDIF.
    hope this helps
    ec

  • How to use BPM itegrate different system aysnchronously

    for example, 3 enterprise applications need to be integrated together with BPM, which are Bid system, ERP system, Finance system,
    and erery business document should be approved  by persons one by one in the 3 different application system with its workflow respectively, we can't change the workflow in the
    different system, and only when the document is finished approved in the BID system asynchronously, it can enter the ERP system, an so on .
    after the business document is approved in the Bid system, it should be returned in the BPM contexts,and the BPM user will dicide whether it will be enter the next system.
    so how to integrate the 3 application system?
    I draw a[ BPM process|http://www3.picturepush.com/photo/a/2586651/640/Picture-Box/aaa.jpg], but in this process,  the "ERP human activity" activity, this activity how to get data from the "BID system asyn workflow" which is an asynchronized
    wrokflow?

    Gavin,
    For asynchronous cases, you should adopt the "wait and trigger" principle.  In BPM, you can acheive it by using a timer and an automated activity. Set the timer repeat time to say 15 mins (you should change it as per your business scenario), and then execute / trigger an automated activity, which will call your Bid system to check the state (whether the data entry / specific workflow is over). If the state is completed, (you may check using exclusive choice), move to next step. Else, pass back the control to timer which will again make the process wait. This way the objective could be attained.
    Hope this helps.
    Br,
    Bala

  • How to use perform statements in sap scripts

    how to use perform statements in sap scripts . and pls send me one progam for this
    thnaks
    raja

    Hi Raja,
    <b>PERFORM</b> key work is used to include subroutine in sapscript form...
    But the processing is lttle bit different form the one we use in ABAP.
    Here the paramters passed to form is stored in internal table of name-value table. there are two table one for inbound parameter and other for outbound parameters.
    Check out the example below to see how this is used..
    <b>Definition in the SAPscript form:</b>
    /: PERFORM GET_BARCODE IN PROGRAM QCJPERFO
    /: USING &PAGE&
    /: USING &NEXTPAGE&
    /: CHANGING &BARCODE&
    /: ENDPERFORM
    / &BARCODE&
    <b>Coding of the calling ABAP program:</b>
    REPORT QCJPERFO.
    FORM GET_BARCODE TABLES IN_PAR STUCTURE ITCSY
    OUT_PAR STRUCTURE ITCSY.
    DATA: PAGNUM LIKE SY-TABIX, "page number
    NEXTPAGE LIKE SY-TABIX. "number of next page
    READ TABLE IN_PAR WITH KEY ‘PAGE’.
    CHECK SY-SUBRC = 0.
    PAGNUM = IN_PAR-VALUE.
    READ TABLE IN_PAR WITH KEY ‘NEXTPAGE’.
    CHECK SY-SUBRC = 0.
    NEXTPAGE = IN_PAR-VALUE.
    READ TABLE OUT_PAR WITH KEY ‘BARCODE’.
    CHECK SY-SUBRC = 0.
    IF PAGNUM = 1.
    OUT_PAR-VALUE = ‘|’. "First page
    ELSE.
    OUT_PAR-VALUE = ‘||’. "Next page
    ENDIF.
    IF NEXTPAGE = 0.
    OUT_PAR-VALUE+2 = ‘L’. "Flag: last page
    ENDIF.
    MODIFY OUT_PAR INDEX SY-TABIX.
    ENDFORM.
    Hope this is clear to understand...
    Enjoy SAP.
    Pankaj Singh.

  • Processing large volume of idocs using BPM Processing

    Hi,
    I have a scenario in which SAP R/3 sends large volume say 30,000 DEBMAS Idocs to XI. XI then sends data to 3 legacy systems using jdbc adapter.
    I created a BPM Process which waits for 4 hrs to collect all the idocs. This is what my BPM does:
    1. Wait for 4 hrs Collect the idocs
    2. For every idoc do a IDOC->JDBC Message transformation.
    3. Append to a Big List
    4. Loop at the Big list from step 4 and in the loop for
    5. Start counter from 0 and increment. Append to a Small List.
    6. if counter reaches 100 then send a Batch JDBC Message in send step.
    7. Reset counter after every send.
    8. Process remaining list i.e if there was an odd count of say 5300 idoc then the remaining 53 idocs will be sent in anther block.
    After sending 5000 idocs to above BPM following problems are there:
    1. I cannot read the workflow log as system does not respond.
    2. In the For Each loop which loops through the big list of say 5000 idocs only first pass of 100 was processed after that the workflow item is not moving ahead. It remains in the status as "STARTED" but I do not see further processing.
    Please tell me why certain Work Items are stuck is it becuase I have reached upper limit and is this the right approach? The Main BPM Process is also hanging from last 2 days.
    I have concerns about using BPM for processing such high volume of idocs in production. Please advice and thanks in advance.
    Regards
    Ashish

    Hi Ashish,
    Please read SAPs Checklist for proper usage of BPMs: http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    One point i'm wondering about is why do you send the IDocs out of R/3 one by one and don't use packaging there? From a performance stand point this is much better than a bpm.
    The SAP Checklist states the following:
    <i>"No Replacement for Mass Interfaces
    Check whether it would not be better to execute particular processing steps, for example, collecting messages, on the sender or receiver system.
    If you only want to collect the messages from one business system to forward them together to a second business system, you should do so by using a mass interface and not an integration process.
    If you want to split a message up into lots of individual messages, also use a mass interface instead of an integration process. A mass interface requires only a fraction of the back-end system and Integration-Server resources that an integration process would require to carry out the same task. "</i>
    Also you might want to have a look at the IDoc packaging capabilities within XI (available since SP14 i believe): http://help.sap.com/saphelp_nw04/helpdata/en/7a/00143f011f4b2ee10000000a114084/content.htm
    And here is Sravyas good blog about this topic: /people/sravya.talanki2/blog/2005/12/09/xiidoc-message-packages
    If for whatever reason you can't or don't want to use the IDoc packets from R/3 or XI there are other points on which you can focus for optimizing your process:
    In the section "Using the Integration Server Efficiently" there is an overview on which steps are costly and which steps are not so costly in their resource consumption. Mappings are one of the steps that tend to consume a lot of resources and unless it is a multi mapping that can not be executed outside a BPM there is always the option to do the mapping in the interface determination either before or after the BPM. So i would sugges if your step 2 is not a multi mapping you should try to execute it before entering the BPM and just handle the JDBC Messages in the BPM.
    Wait steps are also costly steps, so reducing the time in your wait step could potentially lead to better performance. Or if possible you could omitt the wait step and just create a process that waits for 100 messages and then processes them.
    Regards
    Christine

  • Help needed in Multiple Receivers sceenarios using BPM

    Hi,
    I am new to BPM. As per my requirement, based on a business logic i may split the messages into two at message mapping. If i have spitted the messages into two, it should go to different receivers. Or if my logic hasnt splitted the mesaage means it should go to any one of the receivers. I also expect response from the receiver system once its done successfully.
    Could you help me how to do this using BPM?
    Thanks & Regards,
    Senthil.

    Hi,
    You can do it without BPM also, by using MultiMapping. If only splitting is required then I would suggest not to use BPM since it will consume much memory. Instead you can use multmapping.
    For Multimapping, go to messages tab in message mapping and select your different target structures and map it as per your requirement. In Integration Directory, go to advanced Interface Determination and proceed.
    Br,
    Madan Agrawal
    Edited by: Madan Agrawal on Feb 12, 2009 8:25 AM

  • Asynchronous, but need Ack without using BPM and IDocs.

    Hi Experts,
                     I would like to do a scenario i.e., "Asynchronous communication, but need Acknowledgement without using BPM and also without using IDocs whether it is sender side or receiver side". Please help me.
    Thanks in advance
    Srihari.

    Without using BPM will be little longer process. But the alternative way is to add one more receiver in the receiver determination and send some file to that location with the actual mapping getting executed for the actual receiver. and in the second interface you can get the file created at second receiver back to the source location. But this will be little long as compared to synchronous scenarios.
    Flow:
    Source
              Receiver 1--> Actual mapping as per requirement
              Receiver 2(For Ack)--> Create a mapping with blank file sent to Receiver
    Receiver 2-->File Adapter--> Source through 2nd mapping/interface and keep the File adapter pooling interval around 5 sec or less so that you can get the file back to source location.
    Regards
    Anand

  • Message Spiltting Without Using BPM in XI-7.0

    We are using XI-7.0.
    We need to spilt the message from 1 to many without using BPM based on following conditions.
    We need to spilt the one message in many messages depending on the segment records of ZORDER3 and ZORDER2.
    If IDOC message do not have segment ZORDER3 then message needs to be spilt based on the segment records of ZORDER2.
    In the following example, one IDOC message would come from SAP system and that message needs to spilt into 7 messages for the vendor's system.
    Any help will be appreciated.
    <u>Source message: IDOC-ZORDER</u>
    <i>Segment:ZORDER1(Max occ-1)
    PO:4600000010
    LineItem:00010
    Plant:5000
               Segment:ZORDER2(Max occ-999)
               ServiceCode-100000
                              Segment:ZORDER3(Max occ-99)
                              CostCenter:CC123456789
                              CostDesc:CCTest1
                              CocstCenter:CC23456795
                              CostDesc:CCTest2
                               WBSElement:WBS45698712
                               CostDesc:WBSTest1
                               WOrderNo:WO56987412
                               CostDesc:WOTest1
              ServiceCode-200000
                              Segment:ZORDER3(Max occ-99)
                              CocstCenter:CC78956795
                              CostDesc:CCTest7
                               WBSElement:WBS492871
                               CostDesc:WBSTest5
                               WOrderNo:WO98757412
                               CostDesc:WOTest6
    <u>Target Message Structure</u>
    POData(1:1)
              Level1(1:1)
              PO&LineItemNo:460000001000010
              Plant:5000
              ServiceCode-100000
              Level2(1:1)
              costobjectID:CC123456789
              costobjectDesc:CCTest1</i>Thanks in advance!
    MP

    Mrudula,
    If you give the target structure and occurrences of it , then it will be more helpful. Also please quote on wht basis the message needs to be splitted, coz the condition is not clear, Please give the condition too.
    Best regards,
    raj.

  • Multi-Mapping and Message Split using BPM

    Hi All,
    Could anyone pls let me know clearly how message mapping can be done for this weblog
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Thanks,
    Ram

    Hi,
    When you are doing Message mapping after adding the Messaget types for source and target messages. You can click on the "" button in the target message and add one more tab. You can go to Message tab as shown in the 5th image and click "" button to add one more message type. Then do the mapping as usual.
    <b>Based on the value of the element(name), the node of input(details)should be directed to one of the two message types</b>
    Here in this blog it is done based on the Name.
    You need to use IFTHENELSE boolean function and do the mapping.
    Thanks,
    Prakash

  • How to use print control in Sap script

    I would like to use print control in Sap script.Actualy my problem I have security font Troy ECF. Using this font I would like to print amount field in Check printing.
    we count download this font with sap .we talked to customer care they told we should hard code in sapscript. pls can any1 help on this how to do and how to use print control for this fonts.

    call this funcation. crate_text.
    CALL FUNCTION 'CREATE_TEXT'
             EXPORTING
               FID               =
               FLANGUAGE         =
               FNAME             =
               FOBJECT           =
             SAVE_DIRECT       = 'X'
             FFORMAT           = '*'
             TABLES
               FLINES            =
           EXCEPTIONS
             NO_INIT           = 1
             NO_SAVE           = 2
             OTHERS            = 3
           IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
           ENDIF.

  • File to Idocs using BPM

    Hi,
    Current Interface Flow - File (xml) to Idoc (single Idoc type)
    Thirdparty sends a File for Goods Receipt. This file may have multiple orders.
    Orders are sorted in an xslt by ORDNUM. Each record has a delivery type (Deliver Type PO or Delivery Type STO). For each order Graphical Message mapping occurs.
    In case of PO, inbound delivery number and item number have to be received from ECC via an RFC call and passed to VBELN and POSNR. While in case of STO, source field ORDNUM and ORDITEM are passed to VBELN and POSNR. (RFC call happens only for POs, not for STOs)
    In case of STO, TCode  will be MB0A.and IDoc would be WMMBXY (As is the case right now)
    In case of PO, there may be two cases -
         a) There is at least one response from ECC for all the line items inside an order --> in this case TCode will be MB0A and IDoc is  WMMBXY .
         b) If there is no inbound delivery number for any line item from ECC inside an order --> TCode MB01 will be used and IDoc used is WMMBXY
    So for all the above cases Target IDoc is WMMBXY.
    Changes to be done - Now  File (xml) to Idoc (Two different Idoc types, WMMBXY and DELIVERY03)
    Now there is an additional requirement that I will be using an additional IDoc (DELIVERY03) in above case a).
    I want to use BPM in this case
    1) RFC call in message mapping to get the inbound delivery number (for POs only) (Should be before the message enters BPM)
    2) Separating the messages based on IDoc type
    3) Interface / Message mapping for each IDoc type
    4)Send the message to ECC
    Please suggest how to proceed with BPM
    Thanks,
    Varun
    Edited by: Varun Reddy on Feb 4, 2011 4:47 PM

    Hi Varun,
    Follow this thread... You have answer for this.
    This link gives design ideas for your requirement
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Follow Bhavesh discussion. It might be helpful too
    Message Split: File to Multiple IDOC Types

Maybe you are looking for