BPM Co ntainer Variable

In BPM I am receiving a Message and after that I am transforming that message to a different format, but before that I want to copy the initial message to a variable, how can we do that?

Hi Karen,
when u are in BPM, you would have used an Abstract Interface to receive the msg (which you are about to change).
Create a Container Variable using this Initial Abstract Interface. Now this COV will contain your unchanged msg.
Regards
Vishnu

Similar Messages

  • How to invoke BPM object instance variable from interactive activity?

    I have a screenflow with an automatic activity "A" followed by an interactive activity "B". "B" calls a BPM object "X" and uses a JSP presentation to show its attributes. Is there a way to use another BPM object, say type "Y", create an instance variable of that type inside "A", and get its attributes values from the JSP page associated to "B"?
    Edited by: user6473912 on 20/07/2010 03:37 PM

    Try this. It assumes you have:
    <li> a user named "auto"
    <li> a project variable named "customerType"
    <li> an instance variable named "orderAmount" that is a decimal
    <li> an instance variable named "order" that is a BPM Object that has attributes named "customerName" and "amount"
    ps as ProcessService
    xmlObject as Fuego.Xml.XMLObject
    do 
      connectTo ps
          using url = Fuego.Server.directoryURL,
          user = "auto",
          password = "auto"
      instF as InstanceFilter
      create(instF, processService : ps)
      addAttributeTo(instF, variable : "customerType", comparator : IS, value : "Gold")
      instF.searchScope = SearchScope(participantScope : ParticipantScope.ALL, statusScope : StatusScope.ONLY_INPROCESS)
      for each inst in getInstancesByFilter(ps, filter : instF) do
        // here's how to get the value inside a primitive instance variable
        orderAmtObj as Object = getVar(inst, var : "orderAmount")
        // here's how to get the value of attributes inside a complex BPM Object instance variable
        //    - in this case this is an "order" object with two attributes (customerName and amount)
        orderObj as Object = (getVar(inst, var : "order"))
        xmlObject = Fuego.Xml.XMLObject(createXmlTextFor(DynamicXml, object : orderObj, topLevelTag : "xsi"))
        logMessage "The value of the order object's customer name is: " +
               selectString(xmlObject, xpath : "customerName")
        logMessage "The value of the order object's order amount is: " +
               selectNumber(xmlObject, xpath : "amount")
        // here's a rather uninspired way to retrieve who the participant is that was assigned the instance
        logMessage "The participant assigned to this instance is: " + inst.participantId
      end
    on exit
      disconnectFrom ps
    endDan

  • BPM: Pass container variable out to message

    Hi,
    Does anyone have any idea how to pass a container value in BPM out to a message easily ?
    I am managing to set the container variable ok but need to pass this value out to the destination message of the BPM process.
    Any ideas ?
    Cheers
    Colin.

    Hi Michal,
    Thank you for your response.  The problem we are facing is that we can extract a value from the incoming message using a container operation.  We call the variable the REQUEST_DOCNUM.  We then make an synchronous call out which maps the ORDERS ORDERS05 IDoc to a CXML OrderRequest, posts to a vendor website which returns a CXML Response status, which is then mapped to a STATUS SYSTAT01 IDoc. 
    At this point, we want to stick the REQUEST_DOCNUM into the STATUS IDoc.  The problem is that we cannot use a container operation to stick the REQUEST_DOCNUM into this IDoc because the STATUS IDoc is an abstart interface.  We cannot assign a simple variable to an abstract interface. 
    So the only other thing that we can think of is the Transformation.  However, how can we transform a simple type and a STATUS IDoc to a STATUS IDoc that has the simple type variable in one of the elements.  I don't think we can do this.
    We appreciate your help.
    Regards,
    Jay Malla
    SAP XI Consultant - Licensed To Code
    Genentech SAP XI Team

  • BPM Alerts - Dynamic Text

    Hi,
    I'm triggering Alerts from BPM with Dynamic variables. In ALRTCATDEF I was not able to define the header ( Subject field on the email ) as I need to check Dynamic Text box which will deactivate Short and Long Text. Furthermore Shortext ( for example its like " Process number 00001234567 " ) in ALRTINBOX becoming Subject field in the email.  So when we receive email with the Subject field as "Process number 00001234567" doesn't makes sense until you open the email.
    I did gone thru the document and all the blogs and lost how to fix it.
    Do anyone have the same problem?.. Please help.
    Basically I want to system ID on the Subject line of the email.

    Well there is an alternate solution. But as a standard using the Control Step of the BPM, this is not possible.
    Trigger Alert from a UDF as shown in this blog of mine,
    /people/bhavesh.kantilal/blog/2006/07/25/triggering-xi-alerts-from-a-user-defined-function
    And also as shown in this blog,
    /people/community.user/blog/2006/10/16/simple-steps-to-get-descriptive-alerts-from-bpm-in-xi
    Regards
    Bhavesh

  • Dynamic alert messages in BPM control step not getting created

    Hi All,
    in transaction ALRTCATDEF, i have specified dynamic text for my alert category...........
    in my BPM there are 3 control steps.....and i am using this alert category in all of my BPM 3 control steps..... but the alert messages in my 3 control steps are different.........But these alert messages(which i am giving in BPM) is not coming in the alert mail in alert inbox but it gives the common message in long text(which i gave in long text while defining the alert category)......
    <b>So can anybody suggest me why my BPM alert message is not coming in the alert generated by BPM control step in the alert inbox of runtime workbench.</b>
    Thanks,
    Rajeev Gupta

    Hi Rajeev,
    Please check if you have done the following steps:-
    check the dynamic text box available in alrtcatdef transaction, while creating the alert.
    In the bpm, create a variable of simple type in a container
    Included the container operation and the control step.
    For the container operation - give the right simple type variable container
    For the control step, specify the correct alert category (this should be the one for which the dynamic text is enabled)
    The alert message that you specify here should have text which will be seen when the alert raised
    *To capture the dynamic alert in the alert message, which is caught by the container step in the bpm....you will have to give the name of the simple type variable
    between two ampersands(&).
    "But these alert messages(which i am giving in BPM) is not coming in the alert mail in alert inbox but it gives the common message in long text(which i gave in long text while defining the alert category)......"
    On checking the dynamic text option in the alert category defined, you will not have the option of giving a message in the long text. So, there is no way that the long text can be seen - 'cuz you are not defining it in the first place! Hence, either you have given the wrong alert category in the bpm or have not cheked the dynamic text option.
    Regards,
    Sushumna

  • Oracle BPM checkbox

    Hi,
    I am new to Oracle BPM and I have a requirement to make a check box in BPM form. Like Select Documents: Inter [], Middle[],Master[].
    Can anyone please share a simple way to do it? I tried to convert one field into check box but how can I add more check box for that fields. Following is the snapshot. Many thanks

    Wouldn't you want a radio button if the user was only supposed to select one of the choices?  With a checkbox, the user usually thinks they can select multiple items.  To create a hard coded static radio button group on an ADF form, follow the steps listed below.  This adds a new "Request Type" set of radio buttons on the form that is bound to a human task's "RequestType" element:
    1. Right click the existing "RequestType" field (the field you want to create the new dropdown for on the form).
    2. Select Insert after Input Text -> Select "Radio Group".
    3. Click the "Create List" radio button.
    4. Click the + New icon and add an item label and value for each item you want to appear in the dropdown (e.g., Item Label "Inter" and Item Value "INTER").
    5. Click the Next button -> change the Label field to be "Request Type".
    6. Click Finish.
    7. Now that you have a new radio button field, you need to bind it to the correct attribute so that the RequestType value clicked in the dropdown is stored back into the BPM object variable’s RequestType attribute.  To get this, click the original RequestType field the field directly above your dropdown).
    With the original RequestType field selected, in the Property Inspector tab in the lower right corner, copy the text in the "Value" property to your clipboard (Control-C).
    8. Select the new RequestType radio button group and in the Property Inspector tab paste (Control-V) the clipboard value into the Value dropdown field.
    9. Delete the original RequestType field.
    To see how to create a database driven list of values or radio button group that populates a BPM human task variable look at this blog:  http://avioconsulting.com/blog/using-database-driven-list-values-populate-bpm-variable.
    Dan

  • Data Association Between BPM Process Objects and EO,VO

    Hi
    I have an ADF screen where I am displaying values from database through EOs and VOs. My problem is after the user selects a value on the screen,I dont know how to map these selected values to BPM Process Data Objects.
    Is there not a better way to achieving the below requirement.
    "I have a dropdown on the screen.The value for the dropdown is being retrieved from a database table.After users selects a particular value from the dropdown, I have to map the value selected(including the rowset) to a BPM Data Object defined as a collection."
    Please help.It is very urgent
    Regards...

    There are a few moving pieces to get the value of a field on a form changed when another field's value changes.
    Look at the my blog on this from July using-database-driven-list-values-populate-bpm-variable (http://www.avioconsulting.com/blog/datwood/2012/07/02/using-database-driven-list-values-populate-bpm-variable). This goes into how to bind the BPM data object variables to a data source different than the default human task, set the autosubmit property, set the partitial trigger property and create the action binding you will need. Because you are not going to initialize your form with values when it first comes up, you just need to skip the "Initialize the ADF Form With Values Read from the Database" section.
    Where I have you dragging over the "FirstName" and "LastName" name elements from the ADFbc data control, if you needed to populate BPM data object variables - you'd also need to drag these over into the form from the human task in the data control tab. Make the FirstName field autosubmit and then make your human task field have a partial trigger pointed to the FirstName field, then you'd be populating the BPM data object's element.
    Know this is a lot to throw at you, but try getting the autosubmit working with the "listener" partial triggers and you should be able to get it going.
    Dan

  • Mapping step failed in BPM: IllegalInstanceException

    Hi Experts,
    I have implemented a BPM scenario which includes a transformation step. This step refers to a operation mapping which involves two mapping programs (1st mapping pogram to convert from message type A -> message type B and second mapping program which converts message type B -> message type C this uses RFC lookup too). On exceuting BPM; the process is stuck at this mapping step and Step history details are as follows:
    com/sap/xi/tf/_MM_BPM_DEBMDM_ADRMAS_RFC_LOOKUP_DE~com.sap.aii.mappingtool.tf7.IllegalInstanceException
    detailed log:
    com/sap/xi/tf/_MM_BPM_DEBMDM_ADRMAS_RFC_LOOKUP_DE~com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ADRMAS03. Values missing in queue context. Target XSD requires a ~
    However this same operation mapping when used without BPM works.
    Kindly advice.
    Thanks and Regards,
    Elizabeth.

    Hi Sandeep,
    Already tried this using the actual payload. On observing the BPM logs -> Container variables I saw that the input message generated for the second level mapping is of incorrect messgae structure.
    The mapping should have generated ADRMAS03 message but somehow it is generating ADRMASBS message.
    The mapping program uses ADRMAS03 only as message type, but I cannot figure out why using BPM it is generating ADRMASBS (which is not even defined/creted in ESR).
    Pls advice,
    Thanks,
    Elizabeth

  • Undefined Variable (Incoming Argument Error)

    Hello,
    I've created an XSD (Name: XYZ) in my BPM project and then created an instance variable (Name: asset) of type XYZ. I then created incoming argument and outgoing argument of the same type. Now I get an error message as stated below.
    Undefined variable 'assetArg'
    Note: I don't get an error message if i do the same steps and create it based on BPM object. But if i use XSD, I get the below error message. Any idea why?
    Thanks for your help.

    Here's just a suggestion. I'd completely agree with you if you reported it as a bug, but here's how you can get it working.
    Convert the incoming XML into a String before it arrives in the Begin activity of the process. In the logic below, I assumed that you would be willing to do this and you passed in your String as an argument variable called "incomingXmlStringArg" in the Begin activity.
    In the Begin activity, you mapped the String "incomingXmlStringArg" into a variable called incomingXmlString. If this is going to be a big thing, I'd strongly recommend that you make this instance variable's type "Separated".
    The xyz variable shown in the logic below is the instance variable you were wishing all along you could plop the XML directly into. "xyz" is a BPM Object instance variable of the type of the heir you created from your XSD. I'd strongly recommend that you also make this a Separated instance variable if it's going to potentially be huge.
    Put this logic in and Automatic activity that immediately follows your Begin activity.
    xyz = Model.Xyz()
    load xyz
        using xmlText = incomingXmlStringDan

  • File to File interface Count

    HI ALL,
    I have a file to file scenario used to move 100 PDF files from System A to B . i give wildcard * in the sender communication and used ASMA to name the file in the receiver side.
    the requirment is client is asking to send a e-mail aftre sending all the files successfully from A to B the content in the email needs to be the  number of files sent and time of the last file sent ..
    how can i achive this in PI..?
    thanks
    souz

    Hi Dominic,
    you need to use BPM  and counter variable  to get  the number of files coming in...and assign a increment in the container operation.
    what about using  OS command  in the sender file adapter ?
    A not so good idea below
    What about putting a counter in the file name , is it allowed ,I think if you are allowed to add the counter and timestamps then you can see the file count and time of last processed in the file name itself. then you can  design another interface to send a mail ...somehow
    Regards,
    Srinivas
    Edited by: Srinivas on May 12, 2010 12:42 AM

  • How to define parameterized methods in ALBPM

    Hi,
    I am using ALBPM 6.0.
    Scenario:
    I am calling a method B (in the same object) from method A where I want to pass arguments to method B. How do I do that as the method properties can set to return type, but cannot be parameterized
    Please help
    Thanks in advance
    Jayant ([email protected])
    Edited by jayantbit at 01/24/2008 5:48 AM

    Hi Jayant,
    You've got a few options to pass in/out arguments into and out of a method from another method in the same BPM Object:
    1. you could create in arguments (from the BPM Object's variable tab) and pass them in this way
    2. if the information you're passing in is something you might want to persist for a while, consider setting an attribute of your BPM Object and then simply invoking the method. The method could then access the attributes since they're the same object.
    3. as you probably know, if you just have one value to pass out of a method, you should set a "return type" in the properties panel of the method. If you need more than one variable set for the returned values consider "out" args (opposite of #1 above) or setting attributes (#2) on the way out of the method.
    hth,
    Dan

  • How to get work item details programatically ?

    Hi All,
    I have a list of work items (process instances) and I want to retrieve each item details such as: attachments, notes, id, ...
    All the items are filtered and represented as Fuego.Papi.Instance:
    Fuego.Papi.Instance[] inst = busProcess.getInstancesByFilter(filter : instFilter);
    But the work item details are inherited from Fuego.Lib.ProcessInstance. So, how to get the item details from inst[] ?
    Would appreciate any help, may be Dan will have an advise ?
    Regards,
    Kim

    If you have instances returned by your filter, you could extract variable information for each instance by doing something like this:
    for each inst in getInstancesByFilter(ps, filter : instF) do
        // here's how to get the value inside a primitive instance variable
        orderAmtObj as Object = getVar(inst, var : "orderAmount")
        // here's how to get the value of attributes inside a complex BPM Object instance variable
        //    - in this case this is an "order" object with two attributes (customerName and amount)
        orderObj as Object = (getVar(inst, var : "order"))
        xmlObject = Fuego.Xml.XMLObject(createXmlTextFor(DynamicXml, object : orderObj, topLevelTag : "xsi"))
        logMessage "The value of the order object's customer name is: " +
               selectString(xmlObject, xpath : "customerName")
        logMessage "The value of the order object's order amount is: " +
               selectNumber(xmlObject, xpath : "amount")
        // here's a rather uninspired way to retrieve who the participant is that was assigned the instance
        logMessage "The participant assigned to this instance is: " + inst.participantId
    endInside the above "for" loop, you could retrieve these predefined variables (this example assumes you use "inst" in your "for" loop):
        objRet as Any
        objRet = inst.getVar(var : "PREDEFINE_ACTIVITY")
        logMessage "Activity name = " + objRet using severity = DEBUGSubstitute "PREDEFINE_ACTIVITY" in the above logic to get this information:
    PREDEFINE_PRIORITY (priority)
    PREDEFINE_ACTIVITY_DEADLINE (activity.deadline)
    PREDEFINE_CREATION_TIME (creation.time)
    PREDEFINE_PROCESS_DEADLINE (deadline)
    PREDEFINE_DESCRIPTION (description)
    PREDEFINE_PROCESS (process)
    PREDEFINE_RECEIVED_TIME (receptionTime)
    PREDEFINE_PARTICIPANT (participant)
    PREDEFINE_COPY (id.copy)
    PREDEFINE_STATUS (status)
    Similarly, you might want to try to get instance information using the Fuego.Papi.VarDefinition object a try. Never used it, but the logic might be as simple as:
        logMessage "who created? = " + inst.getVar(Fuego.Papi.VarDefinition.CREATOR_ID) using severity = DEBUG
        logMessage "does it have attachments? = " + inst.getVar(Fuego.Papi.VarDefinition.HAS_ATTACHMENTS) using severity = DEBUG   
        logMessage "does it have notes? = " + inst.getVar(Fuego.Papi.VarDefinition.hasnotes) using severity = DEBUGDan

  • Alert on a variable without BPM

    Hello,
    I have implemented a Idoc-PI-File scenario to integrate ECC to ESourcing.
    I have implemented basic alert with the help of SAP ABAP table.
    I want to trigger alert on a specific variable/field of the payload.
    I can do that with the help of BPM. Is it possible without BPM?
    Kindly reply.
    Thanks & Regards,
    Vishal K

    Hi Vishal,
    As mentioned in the blog /people/bhavesh.kantilal/blog/2006/07/25/triggering-xi-alerts-from-a-user-defined-function, alerts can be triggered from UDF.
    In PI7.1, alerts can be triggered by using "RFC Lookup" standard function instead of UDF. SALERT_CREATE need to be used in the "RFC Lookup" standard function of Graphical Mapping. Refer this blog to work on RFC Lookup: http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20befc9a-aa72-2b10-ae9b-b0988791d457
    Regards,
    Geetha

  • Unable assign a BPM Object field value to a JSP Variable using "invoke"

    Hi,
    I'm unable to retrieve a value returned by a BPM Object Method and use it in JSP. Here is what I'm trying to achieve:
    BPM object named : "myObject" has a method "getRequiredValue" which returns a "String". I want to assign the value returned by "getRequiredValue" to a JSP Variable "myVariable" using invoke method as below:
    <% String myVariable = ""; %>
    <f:invoke var="${myObject}" methodName="getRequiredValue" retAttName="myVariable"/>
    <% out.println ("myVariable: " + myVariable); %>
    When I execute the above code I don't get the value being returned by "getRequiredValue" into "myVariable".
    Any help would be highly appreciated!
    regards,
    MK

    1. Make sure you mark the "Server Side Method" property of the getRequiredValue method to "Yes".
    2. I guess you dont need to specify "<% String myVariable = ""; %>". Try removing it.
    3. Replace "<% out.println ("myVariable: " + myVariable); %>" by <c:out value="${myVariable}"/> just in case!
    4. Lastly, I hope "myObject" is the name of the instance variable in your screenflow, and not the BPM object name.
    Hope this helps
    -Hemant

  • Using Standard Container Variables in Email Alerts from BPM

    Dear All
    While creating alert categories from ALRTCATDEF we have a Long Text Tab where we can use Container  Variables like  SXMS_MSG_GUID ,SXMS_RULE_NAME, SXMS_ERROR_CAT , SXMS_ERROR_CODE etc create the mail contents.  We can also display the message passed by the BPM by using the variable
    ALERTDYNAMIC_SHORTTEXT , ALERTDYNAMIC_LONGTEXT .
    In my case when I call the alert category from the BPM , the message passed by the BPM is displayed through the ALERTDYNAMIC_LONGTEXT in the alert inbox , but I am not able to utilize the other container variables (like SXMS_MSG_GUID ,SXMS_RULE_NAME, SXMS_ERROR_CAT ) for displaying the messageid ,error category etc. Using these variables for alerts invoked from BPM results in Blank Values for all the container variables.
    If the alert is not invoked from BPM these variables are getting populated.
    My question is is there a way by which we can utilize these variables for Alerts thrown from BPM.
    regards
    Nilesh .

    hi check the below links for reference:
    http://help.sap.com/saphelp_nw04/helpdata/en/d0/d4b54020c6792ae10000000a155106/content.htm
    http://rant03.ranffm.de:50000/rwb_mdt/detailsservlet?objectName=name=is.00.rant03,type=XIIntegrationServer&rwb=true&XIDomain=domain.00.rant03&archive=false&selectMessage=%SXMS_MSG_GUID%
    note:reward points if solution found helpfull.....
    regards
    chandrakanth.k

Maybe you are looking for