Parameterized message in SO Business Rules

HI
We are trying to implement custom rules in sales order form using processing constraint.
Rule to implement : When the order quantity for an item is less than the minimum order quantity defined in the price list then it should
display an error message with the minimum order quantity for that item.
Example : Ordered Quantity is less than Minimum Order Amount X.
where X = amount stored in attribute1 of the price list.
We are using business rules default messaging feature to disply the message but not able to pass the minimum quntity as message parameter. Can you body please suggest us if we can display parameterized messages and if yes how?
Thanks in advance for your help.
Regards.

There are two problems here. First, there is a bug that causes this error string to be displayed incorrectly when using the RuleAuthor in any browser language other than English. If you change the browser language to English, you should see:
<p>
A syntax error is found. <br>
Error:'carrental.Driver' is undefined at line 4 column 14 in DM
<p>
The cause of this problem is that carrental.Driver class is not in the classpath for Rule Author. This isn't covered in the how-to. See section 3.10 in the Oracle® Business Rules User’s Guide (B15986-01) (available from here).
<p>
From this doc:
<p>
Create a rule set you want to test. If the data model includes any Java classes, the
Java classes must be included in the OC4J classpath. The easiest way to do this is
to put the JAR files in the following directory, then restart OC4J:
$ORACLE_HOME/j2ee/home/applications/ruleauthor/lib
<p>
or add it as a shared library using EM (specific instructions follow in the doc) and then add that shared library to RuleAuthor.
Message was edited by:
philvarner

Similar Messages

  • Error message when running Business rules

    Hello,
    We are having the following error message when launching the business rules; cannot calculate - analytic server error (1013131): Failed to start Asynchonous thread. When looking att he Essabse log, we find the following errors around the same time we got this error:
    [Wed May 06 22:01:45 2009]Local/ESSBASE0///Info(1051037)
    Logging out user [brlpo], active for 63 minutes
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Info(1051001)
    Received client request: Get Substitution Variable (from user [essbaseadmin])
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Error(1051083)
    Substitution variable AOP.Finance.CurrFcst does not exist
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Warning(1051003)
    Error 1051083 processing request [Get Substitution Variable] - disconnecting
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Info(1051001)
    Received client request: Get Substitution Variable (from user [essbaseadmin])
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Info(1051001)
    Received client request: Get Substitution Variable (from user [essbaseadmin])
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Error(1051083)
    Substitution variable AOP.Finance.Curryr does not exist
    [Wed May 06 22:02:45 2009]Local/ESSBASE0///Warning(1051003)
    Error 1051083 processing request [Get Substitution Variable] - disconnecting
    Would you have an idea of reason of error code?
    Thierry

    Hi,
    Looks like the substitution variables its looking for are missing.
    Can you check that?
    Regards,
    Amol

  • Error message when processing business rule and dimenstion

    Dear BPC Experts:
       While I am testing BPC FX Restatement pacakge, I make most use of original se-up in APSHELL, and just do some some config in related dimension and business rule. However, when I process business rule and dimenstion, one message shows that "_unexpected error in application server"._ And I still tried to run FX Restatement package, in detail log, it says "Member USD not exist." Does anyone help me figure out the reasons? I really appreciae your help.
    Fred Cheng

    Hi,
    I am not sure if the configuration of MSMQ is fine at you side, it is better to check my how to document too as here I clearly mentioned about MSMQ steps.
    This is the direct link: https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/101531ad-bcf5-2b10-ac9c-c102908c1b7f
    Just skip the ABAP part and follow the MSMQ part.
    regards,
    Sreedhar

  • Executing Business Rule / Calculation from Excel - Essbase

    Hi All,
    Currently I am trying to run the calculations / Business rules from essbase after locking and sending data. I am using the below code to run the business rule / calculation from essbase.
    Sub RunBusinessRule()
    On Error Resume Next
    X = EssVCalculate(Empty, "AggFlash", False)
    MsgBox "Business Rule executed successfully"
    End Sub
    The issue is that my code gives me a message that the business rule is executed successfully but the rule keeping running in the background for some time. Actually i need a code which will check the status of the process of calculation and when it actually gets completed I should get a message that it's been done. Please expedite.

    Hi,
    I take it you mean calc script and not business rule as really they are separate.
    The reason you get a message straight away is because you have the synchronous parameter set to false, if you set it to true it should not return until it is comple
    e.g.
    X = EssVCalculate(Empty, "AggFlash", True)
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Business rules from database

    Hi,
    We have bussiness rules in the database. I get the messages from the business rules out of the database but i get also the errormessages from the trigger. for example:
    ORA-20801: FTP- 60032: The height must be between 40 and 250 cm (invalid height) FTP- 60019: The value for the BMI is not valid (invalid bmi) ORA-06512: at "AAAA.P_ERROR", line 423 ORA-06512: at "AAAA.CG$AUS_FTP__FUP", line 10 ORA-04088: error during execution of trigger 'AAAA.CG$AUS_FTP_FUP' ORA-06512: at "AAAA.P_VTIR_VAPI", line 97 ORA-06512: at "AAAA.ITR_U_VTIR", line 149 ORA-04088: error during execution of trigger 'AAAA.ITR_U_VTIR'
    Where and how can i filter this message so that only the first messages are shown. View is UIX with ADF jheadstart
    Regards,
    Erik

    Erik,
    In the JHeadstart RuleFrame extension something similar is done: it catches ORA-20998 errors and throws a new JboException for it.
    I suggest you do something similar: create your own superclass for your Application Module similar to RuleFrameApplicationModuleImpl, which specified a factory similar to RuleFrameTransactionFactory, which instantiates a class similar to RuleFrameTransactionImpl in which you catch the ORA-error.
    hope this helps,
    Sandra Muller
    JHeadstart Team
    Oracle Consulting

  • Error QMS-00100 show at business rule violation

    When a business rule is violated I always get the following message first in my form:
    'Error QMS-00100 Unhandled exception ORA-20999 in PLSQL Program Unit qms_transaction_mgt.perform_business_rule'
    The next message is the right message when the business rule is violated.
    Does someone has a clue why this first message is shown?

    I don't know why this error showed up, but by recreating all packages in the headstartscheme the problem is solved

  • Problem in mapping Task payload parameters to Oracle Business Rules facts

    Hi all,
    We are using complex types from our project XSDs inside the Human Task payload. We intend to use these Human Task payload parameters to build routing rules using the Oracle Business Rules interface. Our observation is that when the complexity of these complex types increase, the business rules editor does not show these as facts that can be used in formulating rules.
    Has anybody faced such a problem before. Any help is appreciated.
    We are using the following link to add routing rules –
    http://docs.oracle.com/cd/E25054_01/dev.1111/e10224/bp_decision.htm
    Version details :
    ADF Business Components     11.1.1.60.13
    Java(TM) Platform     1.6.0_29
    Oracle IDE     11.1.1.5.37.60.13
    SOA Composite Editor     11.1.1.5.0.01.74
    Thanks,
    Yamini.

    Problem solved. There was an element in the xml schema that had nillable = true. Because of this the XML Fact for that element would no longer be available in the BPEL Process. Removing the nillable and generating the XML Facts again solved the missing variable problem.

  • Multiple row update; CEV business rule parameters are not refreshed

    During a multiple row update, a business rule is fired for each row.
    This change event business rule must update the value of another column in the same table (and same row).
    Unfortunately, the parameters of the BR are keeping the values of the first row that has been checked. Since my parameter p_id always keeps the same value, I always update the same row.
    Does somebody have a hint on how to solve this problem ?
    I'm using Headstart R6i and Forms6i with Oracle9i DB.
    Thanks in advance for your help,
    Denis.

    I think that's how it works. I tried that with a variable where type is Members.
    It is not showing me a prompt when i select multiple rows. However works only for first row. (even if the menu is initiated from second row).
    Multiple rows selected, variable type is members. works only for first row in selection. (in 11.1.2.2) You can try log an SR and see what Oracle has to say.
    Regards
    Celvin
    http://www.orahyplabs.com

  • CEV business rule only uses first set of parameters in multiple inserts

    We have a cev rule that logs data for emails when a record is inserted in a table.
    Where there are two records inserted from a script, even where a qms_transaction_mgt.open_transaction and close transaction are used around each insert, the CEV record parameters do not change.
    By this I mean we have two records:
    1 - id: 22
    2 - id: 23
    We pass the id to the CEV business rule and dbms_output the parameter value - it indicates that for both records the p_id = 22.
    The insert into the table indicates that the record ids were 22 and 23.
    This appears to have been reported several times but there is no solution.

    I would set it lower than 20 minutes as that is quite high before it sends the rules into the background, if the spawning at 10 minutes try setting it just lower than 10 as a test.
    It may also be worth looking into the apache timeout (if you are using the apache web server plugin) as that could also be playing a part.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Business Rules "Run on Save" in SmartView - Message after running

    Hello Experts,
    There is any way to display a message (success / failure) after a Business Rule run in Smart View (version 11.1.2.2)?
    Our rules, running in Smart View, aren't displaying any message in contrast when they run through web workspace - we only know they run (successfully / unsuccessfully) going to Job Console.
    Thank you!
    Rodrigo Faustino

    Thank you John, It is nice to have this feature in Smart View. 
    Although, we want that the Planner don't worry in going to Job Console. We would expect a message (success / failure) in the same way it happens troughs workspace.

  • Validate message multiple records in Business Rule

    I have Order message as below:
    <Orders>
    <Order>
    <Header>
    <BillToID>001</BillToID>
    <ShipToID>002</ShipToID>
    <Id>Order001</Id>
    </Header>
    <OrderLine>
    <Id>Line001</Id>
    <Date>2015-01-01T00:00:00</Date>
    <Qty>10</Qty>
    <Status></Status>
    </OrderLine>
    <OrderLine>
    <Id>Line002</Id>
    <Date>2015-01-01T00:00:00</Date>
    <Qty>15</Qty>
    <Status></Status>
    </OrderLine>
    </Order>
    <Order>
    <Header>
    <BillToID>002</BillToID>
    <ShipToID>003</ShipToID>
    <Id>Order002</Id>
    </Header>
    <OrderLine>
    <Id>Line003</Id>
    <Date>2015-01-01T00:00:00</Date>
    <Qty>5</Qty>
    <Status></Status>
    </OrderLine>
    <OrderLine>
    <Id>Line004</Id>
    <Date>2015-01-01T00:00:00</Date>
    <Qty>65</Qty>
    <Status></Status>
    </OrderLine>
    </Order
    </Orders>
    I want to use Business rule to check Quantity value and update status for the order line, that if quantity < 10 set the status to Approved, if quantity between 10 to 50 then set status to Pending, if quantity > 50 need to set the status to Reject.
    The business is simple, if the Order message just have one record, but when the Order message that contain multiple record the business rule just get the first quantity and set the status value. 
    Anyone have any idea to implement with that requirement?
    Thanks in advance!

    Have a look into the below articles and let us know if you face any further issue.
    They are addressing a similar issue
    http://www.neudesic.com/blog/apply-bre-rules-looping-data-dynamic-policy-execution/
    How to construct BRE "Condition" on multiple repeating record
    Thanks,
    Prashant
    Please mark this post accordingly if it answers your query or is helpful.

  • Business Rule Not Deploying - Receiving Error Message

    while trying to launch a business rule that I had updated this morning. This business rule is in the OH plan type. I was able to hit launch and even though I could see the calc running in EAS, I received this error
    Rule was validated with no potential errors, the rule could not be validated against the deployed application as connection information could not be found.
    looking for the assistance.
    Thanks
    Kiran.Kolli

    If restarting the calc manager services does not help, increase the JDBC connection time-out.
    1. Open CalcMgrConfig.properties present in calc-mgr deployment folder (WEB-INF\conf)
    2. Increase the value of property 'DB.timeout' to 60000.
    3. Remove the starting '#' for this property.
    4. Re-start calc-mgr service.
    HTH-
    Jasmine.

  • String CDF functions not working in business rules

    Working with EPM 11.1.2. I created a calc script on the planning cube and it works perfectly. I then put the same code in a business rule and it will not validate. Please see the code below.
    1) created udf folder in following directory
    essbase/Oracle/Middleware/EPMSystem11R1/products/Essbase/EssbaseServer/java
    2) modified udf policy to grant access to all
    3) saved CDF_String.jar file to new udf folder on server
    4) registered functions via maxl
    5) stop/start application
    6) stopped/started EAS services
    I get the following error in the message window (line 9 is the JGetStringFromDouble statement):
    "Encountered " "-> " "-> "" at line 9, column 35.
    Was expected one of:
    What do I need to do to get this code working as a business rule since I want to use RTPs in this routine?
    FIX("No_Profit_Center", FY07:&CapAppEndYr, "Working Plan", "Current", "Manual_Input", "LOC", @Relative("Period",0), @Relative("Project",0), @Relative("Entity",0))
    "AC_Unappr_Fcst_Depr"
      IF ( "AC_Unappr_Fcst_Depr"  == #Missing)
         IF ("FY07"->"No_Period"->"AC_Depr_CC" != #Missing)
              "AC_Unappr_Fcst_Depr"->(@MEMBER(@CONCATENATE("EN_",@JgetStringFromDouble("FY07"->"No_Period"->"AC_Depr_CC",@_False,@_False))))  = "AC_Unappr_Fcst_Depr_Temp";
        ELSE
              "AC_Unappr_Fcst_Depr" = "AC_Unappr_Fcst_Depr_Temp";
        ENDIF
      ENDIF
    ENDFIXEdited by: jjdubb on Jun 11, 2012 9:10 AM

    I've had this issue with a different string function. Business Rules does not like the boolean parameters (@_FALSE) used in these CDF's. I had a similar issue and had to rewrite my CDF without the parameters. You basically need to hardcode the "with quotes" and "with decimals" parameters in the java code.
    Hope this helps,
    - Jake

  • Validation - Business Rule or/and UJ_Validation

    Hi experts,
    I'm on BPC 7.5 NW, I'm facing problem to construct a simple validation where I need to compare the amount from one parent account against to other. Let's explain the business scenario and after the technical solutions.
    Business Scenario
    Compare the Total Assets is equal to the Total Liabilities. The Total Assets is represented by a parent account "1", the Total Liabilities is represented by a parent account "2". If it is different show a warning.
    This is need to trigger, after the Actual Transactional Data Load + Journals.
    Technical Solution
    Application: Legal
    Dimensions: Empresa (Entity), Conta (Account), Fonte (C_DataScr), Versao (C_Category), Groups, Intco, MesAno (Time), TipMov (Flow), CCusto (User Defined), CLucro (User Defined)   
    1 - Business Rule
    Validation Definition
    Validation Account         Remark                       Validation Operand           Other destination dimension Members                              Validation Tolerance
    ZATIVO_X_PASSIVO     Ativo x Passivo                       =                           CONTA=VALIDATIVPASS,INTCO=SPTOTAL,CLucro=ACTEDUMMY,CCusto=ACTENONE                0
    Account 1                    Flow 1                  Sign 1               Account 2                 Flow 2                       Sign 2             Remark
    1                           TMTOTAL*                  1                          2                        TMTOTAL*                    1                  Ativo x Passivo
    *The TMTotal Flow is a parent from every data on the master data TipMov (flow)
    Validation.lgf
    *RUN_PROGRAM VALIDATION
        CATEGORY = %VERSAO_SET%
        CURRENCY = %GROUPS_SET%
        TID_RA = %MESANO_SET%
        OTHER = [ENTITY=%EMPRESA_SET%]//For More than one other scope parameters: OTHER = [ENTITY=%ENTITY_SET%;INTCO=%INTCO_SET%...]
    *ENDRUN_PROGRAM
    Result
    When I run with this parameters I receive the message : "UJP_PROCESS_EXCEPTION:Data for category  not found in application LEGAL"
    2 - Validation with UJ_Validation
    Assign the driver dimension to Legal - in case I used the CONTA (Account)
    Rule Maintenance
    Assigned Member: "1" and "2"
    Use Logic Table
    Dimension = Empresa (Entity)
    Operator "="
    Members = TECSA - This is a parent from every Entities.
    Result
    When I run with this parameters I receive the message : "UJP_PROCESS_EXCEPTION:Data for category  not found in application LEGAL"
    3 - Validation with UJ_Validation and BADI
    Assign the driver dimension to Legal - in case I used the CONTA (Account)
    Rule Maintenance
    Assigned Member: "1" and "2"
    Use BAdI Implementation
    BADI_UJ_VALIDATION_RULE_LOGIC
    Create a Enhancement ZATIVO_X_PASSIVO
    Filter
    Rule_Num = 1
    APPSET_ID = ZTECSA
    DIMENSION = CONTA
    Class
    METHOD if_uj_validation_rule_logic~do_validation_logic.
      FIELD-SYMBOLS:
                       <field1> TYPE ANY,
                       <field2> TYPE ANY.
      ASSIGN COMPONENT 'FIELD1' OF STRUCTURE is_data TO <field1>.
      ASSIGN COMPONENT 'FIELD2' OF STRUCTURE is_data TO <field2>.
      IF <field1> NE <field2>.
        es_message-message = 'Error in Validation'.
        es_message-recno = 1.
        es_message-MSGTY = 'W'.
      ENDIF.
    ENDMETHOD.
    And add this line to the script
    *START_BADI_UJ_VALIDATION_RULE_LOGIC~DO_VALIDATION_LOGIC
      QUERY = ON
      WRITE = ON
    *END_BADI
    Result
    Data Region:
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CCUSTO WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CLUCRO WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CONTA WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:FONTE WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:INTCO WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:TIPMOV WILL QUERY ON ALL BASE MEMBERS.
    [WARNING!] MEASURES IS NOT SPECIFIED!
    So what could I make to maintain all my options to do what I need ?
    I appreciate any help
    Best Regards
    Alexandre Mendoza Collepicolo

    Hi,
    Just to check, can you try and hardcode the category in the rules itself...just for a test to see if it is working.
    You can have the category mentioned as CATEGORY=ACTUAL in the rules itself for Other source dimension members and other destination members. J
    This is to check if the validation package runs successfully or not.
    Thanks,
    Sreeni

  • Headstart Business Rule IN parameter changes value

    I've created a Business Rule (CEV rule � triggered by create) with following code:
    IN parameters: p_datum_van, p_cat and p_prest
    cursor c_cap is select datum_tot
    from cew_cat_prest
    where . . .
    and p_datum_van between datum_van and datum_tot
    and datum_tot is not null;
    l_datum_tot cew_cat_prest.datum_tot%type;
    begin
    dbms_output.put_line('BR5 p_datum_van '||p_datum_van);
    open c_cap;
    fetch c_cap into l_datum_tot;
    if c_cap%found then
    dbms_output.put_line('BR5 eerste controle p_datum_van '||p_datum_van);
    update cew_cat_prest
    set datum_tot = p_datum_van - 1
    where cat = p_cat
    and prest = p_prest
    and datum_tot = l_datum_tot;
    dbms_output.put_line('BR5 tweede controle p_datum_van '||p_datum_van);
    update cew_cat_prest
    set datum_tot = l_datum_tot
    where cat = p_cat
    and prest = p_prest
    and datum_van = p_datum_van;
    dbms_output.put_line('BR5 derde controle p_datum_van '||p_datum_van);
    The updates are not executed correctly since p_datum_van changes !!!
    Eerste controle: p_datum is correct
    Tweede controle: p_datum has changed its value
    What we do:
    Record 1: van (from) 01/01/2003 tot (to) 31/01/2003
    Record 2: van 01/02/2003 tot <null>
    Add new record: van 15/01/2003
    What we want:
    Record 1: van 01/01/2003 tot 14/01/2003
    Record 3: van 15/01/2003 tot 31/01/2003
    Record 2: van 01/02/2003 tot <null>
    Eerste controle: parameter p_datum_van = 15/01/2003
    Tweede controle: parameter p_datum_van = 01/01/2003
    Remark: if we use the TAPI procedure ups instead of updates, we have the same problem
    How is it possible that an IN parameter changes its value during execution of a procedure ???

    Tim,
    Headstart should be able to check out any tables you need.
    We think we have the user settings
    done correctly, but there may be something that we
    have missed. How can we get Headstart to
    automatically check-out the table(s) for which we
    want to run the Business Rules design transformer?The user settings you need are (see also pages 5-7 and 5-10 in the Headstart User's Guide):
    - Under 'Process the following objects', choose 'Checked out by anyone'
    - Also check the check box '... also Checked In objects'
    - Choose whether you want to automatically check out with or without lock
    If this does not help, please run the utility with log level 'Debug Detailed' (can also be set in the User Preferences) and report the last few lines of the log messages. They should give an indication of why the check out does not succeed.
    Hope this helps,
    Sandra Muller

Maybe you are looking for