BPM Objects in valid values

Hi,
I want to display a combo box showing some strings to the user, but having something else in the background. Using e.g. an integer in the background is easy. But is there a way to put complex objects (i.e. BPM objects) "behind" the string values?
Thanks & Regards
Matthias

Hi,
we usually use this way to show objects in combo box: BPM object has an id attribute (Integer). We will associate combobox with this id. Open attribute properties if 'id'. Mark 'dynamic method' on valid values. Mark 'method return descriptions' too. You have to create a method thats returns a String[int]. This will contain text displayed on combo box associated to this id. Users will see the text but you get the id of the selected object.
Regards,
Juan Escot

Similar Messages

  • 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

  • Is there another way valid values for arguments?

    Hi, I need to know if when you are using a presentation that change the valid values of the argument dinamically is possible to change valid values?
    There is an argumentValidValues() but when I put:
    array = argumentValidValues()
    nothing changes, does any one know if this is possible or if there is another way to do it?
    Thanks in advance

    You can refresh the valid values for an attribute (typically shown in a combo dropdown) in a BPM Object's presentation if you invoke the logic:
    // note that this logic has to have double
    // quotes surrounding the attribute's name
    refreshValidValues("customerName")
    This assumes that the attribute (customerName in this example) has its valid values derived from a "dynamic method" instead of a "static list".
    When the logic shown above is run, the method associated with the attribute is automatically run and you should see your values in your combo drop dow get refreshed.
    Please be careful to include the double quote characters in the logic. You'll be tempted to type:
    // this logic will NOT work because it does not have the double quotes
    refreshValidValues(customerName)
    This is a common mistake and will cost you a day of scratching your head while you're trying to figure out what went wrong.
    Hope this helps,
    Dan

  • Change Valid Values Dynamically

    How can I change the valid values (which translates to displayed values) for a variable in a BPM Object Presentation drop-down based on the results of another drop-down? I.E.
    (some group)
    var1 var2
    The values that can be selected for var2 need to be populated based on what is selected for var1. I tried using the OnChangeInvoke: refresh() but this doesn't work. Suggestions?

    Assume you have a couple fields: productType and productName. Based on the product type that was selected, the values of the product names will be different.
    1. Create a method called "retrieveProductNames()" that returns a list of the names of products based on the product type that was already selected.
    2. Double click the "productName" attribute inside your BPM Object. In the "Valid Values" section, click the "Dynamic Method" radio button. In the dropdown below this radio button, click the name of the method you just created - retrieveProductNames.
    3. Place the "productName" attribute as a combo dropdown on your presentation.
    4. Create a new method in your BPM Object called "refreshProducts". Here's some sample logic you might want to consider using:
    // this assumes that the name of the attribute is productName
    // please leave in the double quotes in the logic below.  If you remove
    // them you will not get a syntax error, but your logic will not work
    refreshValidValues("productName")5. Add the productType attribute to your presentation as a combo dropdown. Associate this field's combo dropdown's "On Change Event" with the refreshProducts() method you created in the last step.
    If you have trouble getting this to work, it's usually because the logic in step 4 is wrong. You must put double quotes around the name of the attribute and it has to be spelled correctly.
    Dan

  • ToString() for BPM Objects

    Hello,
    How does engine create strings out of BPM objects? Is there a "toString()" Java equivalent that gets called when an object instance is used in string concatenation expression?
    Thanks,
    Nick.

    Hi,
    we usually use this way to show objects in combo box: BPM object has an id attribute (Integer). We will associate combobox with this id. Open attribute properties if 'id'. Mark 'dynamic method' on valid values. Mark 'method return descriptions' too. You have to create a method thats returns a String[int]. This will contain text displayed on combo box associated to this id. Users will see the text but you get the id of the selected object.
    Regards,
    Juan Escot

  • How to "force" user to enter a valid value in a TextBox

    How can one create a TextBox in which the user is not able to leave (commit the value, change focus, or perform the action of another control) unless a valid value (the value to be committed) is displayed?
    The following is the best I've come up with so far.
    Good: It doesn't permit a value to be committed unless it is valid.
    Good: It doesn't permit the focus to be changed when TAB is pressed unless it is valid.
    Bad: It permits the user to perform the action associated with a button at any time.
    In the following code pressing on the button prints "I've been pushed", no matter the value of the TextBoxes. Can I stop this (in general, not for specific buttons)?
    class ValidTextBox extends TextBox {
      public-init var validValue:String = "";
      function isValid():Boolean {
        return (rawText == validValue);
      var isFocused = bind focused on replace {
        if (not focused and not isValid()) {
          requestFocus();
      override function commit():Void {
        if (isValid()) { super.commit(); }
        else {};
    var string1:String = "" on replace { println ("String1 = '{string1}'") };
    var string2:String = "" on replace { println ("String2 = '{string2}'") };
    def textbox1 = ValidTextBox { text: bind string1 with inverse; promptText: "String1: enter abc"; columns: 20; validValue: "abc"; }
    def textbox2 = ValidTextBox { text: bind string2 with inverse; promptText: "String2: enter def"; columns: 20; validValue: "def"; }
    def aButton = Button {
      text: "Push me";
      action: function():Void { println("I've been pushed!"); }
    Stage {
      scene: Scene {
        width: 250
        height: 300
        content: [ VBox { spacing: 10; content: [ textbox1, textbox2, aButton ] } ]
    }

    It sounds like you are looking for a concept of validation that groups items together. In days long gone Oracle used to have a product called Oracle Forms - that had field validation, record validation and block validation. So in your example if string1 and string2 were in the same persistable data object then the equivalent concept would be 'record validation'. The code in your button would say "if the record is valid print". A record is only valid if all its fields are valid.
    JavaFX really provides a 'GUI toolkit'. I think you are looking for a fairly advanced binding framework - a framework that builds on the concept of field level validation. You can approximate such a thing by creating a 'validation group' class. This class would be able to have nodes added to it and have an 'isValid()' function which only returns true if all the node items are valid.

  • Is itpossible recover BPM Object instance from Screenflow in Grab Activity?

    My process has two roles: role1 and role2.
    role2 has an activity of type "Interactive" and the implementation type of this activity is Screenflow, in this Screenflow I have an instance variable of the type BPM Object.
    role1 has a Grab Activity from Interactive Activity that describes above, the Grab Activity has a unconditional transition to another Interactive Activity and this Interactive Activity has the same implementation type of the Interactive Activity of the role2 and points to the same Screenflow.
    I need to recover the values of the BPM Object that filled in role2, in other words, I need the same instance of the BPM Object in Interactive Acitivity of the role2 in the role1.
    If an user filled a field called "name" of BPM Object in the Interactive Activity of the role2, it needs to see that value in the Interactive Activity of the role1 after grabbed this activity of the role2 to role1.
    Is it possible?

    Hi,
    Sure it's just me, but I got a bit lost with the description of what you're trying to do. One place I got lost was in the discussion of roles. Roles are used in Oracle BPM processes for a variety of reasons, but I'm not sure they're germane to your problem so I'm trying to rephrase your question without their use.
    Here's my attempt to rephrase what it is that I think you're trying to do:
    1. I think you have two activities. I'm naming them "Check Credit" and "Final Check"
    2. I'm guessing you have a transition between the two activities "Check Credit" and "Final Check"
    3. Your process has an instance variable that is a BPM Object that I'm naming "customer". Since it's a BPM Object type, it has a variety of attributes (e.g. customer.name, customer.address, etc.)
    4. You have a Grab activity that has its "Runtime" property set to be "Defined" (meaning you have transitions defined coming into and out of the Grab activity). I think you might have a transition going from the "Final Check" activity to your Grab activity and I think you might have a transition going from the Grab to the "Check Credit" activity.
    Does this describe your process? I'm assuming you probably want to have the instance variable revert back to original values of the instance variable object before work was done in one of the activites, but don't want to head too far down this path until you confirm that this is what you want to know.
    Thanks,
    Dan

  • Using multiple instance variables or BPM objects in a single JSP

    In my screenflow, for an user activity, I've selected a BPM object variable for my JSP and using this BPM object variable within the JSP to display or accept values related to this BPM object.
    But in certain circumstances, I need access to some of the instance variables defined in my screenflow (which are not members of the BPM object), and to get these variable values displayed in my JSP. I don't want to overload my BPM object with all these instances as they do not logically fit as members in this BPM object.
    For example, if I need to capture and display the logged in user name across the JSPs in my web application, then how can I do that without specifying this user variable in all of my BPM objects.
    Is there any extensibility in using more than one BPM object variables in my JSPs? Why is it that a single BPM object variable is tied to a JSP? Or am I missing something else here?

    I'm with the same problem!

  • 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

  • Fuego BPM object mapping in PAPI

    I am currently using ALBPM 5.7 version. My ALBPM process is using one Fuego BPM Objects as instance variables. I need to access the process via PAPI. What is the equivalent Java object type for typical Fuego BPM objects, per say that has few attributes with String, Time and Int types in order to pass that Fuego Object type from instance arguments.
    -- Deha Peker
    Edited by dpeker at 05/07/2008 11:05 PM

    Hi Avishek,
    There is workaround for this...you can save the instance as Object/DynaObj then go for toString() call that will give your biusiness object as XML msg in string format..from there you can extract a xml node value using x-path....i tried this once and worked for me....but i m not getting the code snipetnow ..else i would have pasted here....:(
    Rgds,
    Biltu

  • XML Object to BPM Object, is possible?

    My process consumes a Web Service that returns a Object (XSD).
    When I catalog this Web Service in the BPM catalog, BPM saves the return of Web Service as a XML Object.
    The problem is that I use JSP in my application, so when I need to show this object in JSP, I need to create a BPM Object similar to XML Object and map the values of the XML Object to Object BPM, then if I need change the Web Service returns (XML object) I also need to change the BPM Object. This is very annoying.
    Exists a way to convert a XML Object to BPM Object? BPM provides some API to make this?

    Yo can create a BPM Object that inherits from an XML Object.
    Hope it helps

  • Modify SalesOrder, DI Server, Invalid valid value '' in Enum 'BoYesNoEnum'

    I'm trying to modify salesorders through the DI Server.
    I've added ordres through the DI Server with no errors, but modifying them raises an exception.
    Anyone who know what the "Invalid valid value '' in Enum 'BoYesNoEnum'" is? Here is some simple XML:
    <?xml version="1.0" encoding="UTF-16"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header>
    <SessionID>1C38F764-D521-19C0-9401-3C083AE414DC</SessionID>
    </env:Header>
    <env:Body>
    <dis:UpdateObject xmlns:dis="http://www.sap.com/SBO/DIS">
    <BOM>
    <BO>
    <AdmInfo>
    <Object>oOrders</Object>
    </AdmInfo>
    <QueryParams>
    <DocEntry>66</DocEntry>
    </QueryParams>
    <Documents>
    <row>
    <Comments>Test</Comments>
    </row>
    </Documents>
    </BO>
    </BOM>
    </dis:UpdateObject>
    </env:Body>
    </env:Envelope>
    This should have worked, in my opinion.
    However, I just get "Invalid valid value '' in Enum 'BoYesNoEnum'".

    Ah, finally solved it, after ALOT of debuggin!
    After adding the following line:
    <ApplyTaxOnFirstInstallment>tNO</ApplyTaxOnFirstInstallment>
    it finally worked. Don't know what impact that line has though, but hopefully nothing serious. Strange that this thing doesn't get set by default..

  • Error in MDDataSetBW.GetCellData.Please enter a valid value for character

    Hi All,
    We have a mandotory prompt on 0FISCPER for Web I Report . The promt is present in the universe.
    The query works fine in Dev , but in Quality it shows the following error
    A database error occured. The database error text is: Error in MDDataSetBW.GetCellData.  Please enter a valid value for characteristic 0FISCPER.. (WIS 10901)
    The universe is on BW Query and the BW Query works fine.
    Can someone please help on this

    Thanks Sathish for your input.
    We have created report level prompts and facing this issue because  we were selecting multiple values for prompts.
    Its working fine for single selection. Is there any way to  enable multi selection for the particular object at the BW end ?
    Or else we have to create the prompts (Single selection) at the universe level.
    Regards,
    Pranay

  • Catalog object schema validation failed(AGFIXBO2:EIRWWH9E)

    Hi,
    After copying my catalog from OBIEE 11.1.1.6.*0* (Build 120104.0800 64-bit) to 11.1.1.6.*7* (Build 121219.1257 64-bit).
    Many of my report (particularly those with graphs) was not valid.
    I have this message :
    Catalog object schema validation failed: /shared/...
    Error Details
    Error Codes: AGFIXBO2:EIRWWH9E
    Location: saw.httpserver.processrequest, saw.rpc.server.responder, saw.rpc.server, saw.rpc.server.handleConnection, saw.rpc.server.dispatch, saw.threadpool.socketrpcserver, saw.threads
    The current xml is invalid with the following errors: Bad xml instance! <?xml version="1.0"?> <saw:report xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" .... Message:Value 'actual' is not in enumeration .
    Please someone has any ideas to solve this issues.

    Hello,
    Check is post : Catalog object schema validation failed:  11.1.1.6.7 Patchset
    Also check this note : OBIEE 11g: Error: "Catalog object schema validation failed...Error Codes: AGFIXBO2:EIRWWH9E" After Upgrade [ID 1247125.1]
    Hope this helps. Pls mark if it does.
    Thanks,
    SVS

  • BPM Object Presentation - array items - (add / delete rows dynamically)

    Hi,
    We have a BPM Object presentation which uses a 'group' inner object to display ROWS of data. The presentation has an 'array0' created by default to handle the 'group' of rows. It also has the '+' and '-' buttons by default.
    There is a field at the upper level which shows the 'sum' of values in individual rows. It needs to 'REFRESH' when an add (+) or deletetion (-) or rows happen.
    But we see that all the controls (text boxes etc which are wired to the 'inner' bpm object of the group and the +/- buttons are one unit 'array0'. And the only method if at all, is an 'Event Listner' which is not showing any methods related to BPM Object.
    Can anyone help us with a clue as to how to handle the '+' and '-' events or wire the 'array/group' events to code - any clue with 'events'?
    This is a little urgent as it is an issue and we need to fix the same. Appreciate any quick responses/clues.
    Thanks in advance,
    -user8702013.

    The SUM field needs refresh() method to be called to reflect the new value whenever we are adding/deleting rows.
    To call this method for to show the reflection we have to declare a method on BPM object level which receives a argument of type ‘Fuego.Util.GroupEvent’, then in this method you can have your logic(here refresh() method is required to show new value on deletion/addition, hence this method is being called). This method can then be wired (it shows up) to the 'Event Listener' of the group/array.
    The newly created method will be called whenever a new row is added/deleted (Event will be fired hence method call).

Maybe you are looking for