Usage of business rules

I have a invoice (EDI X12 894) and sending to B2B in order to send to trading partner but before sending to trading partner, we have to perform some validations before to be sent to trading partner. We have various validations based on the customer, so creating dictionary with "if then" rule sets for each customer.
But each invoice has various lines, how can I do the validation on the lines. I have to loop through all the lines in the invoice and verify few segments whether they exist or not. So planning to create function within business rules and with function args as list but how can I perform the loop for all the invoice lines with in the function in business rules.
Here is the sample payload of the invoice
<Receive_894_Dequeue_InputVariable>
<part name="XXDPI_EDI894_INVLIST_TYPE">
<XXDPI_EDI894_INVLIST_TYPE>
<INVLIST>
<INVLIST_ITEM>
<INV_NUMBER>13073309</INV_NUMBER>
<STORE_NUMBER>701608</STORE_NUMBER>
<VENDOR_NUM NULL="TRUE"/>
<DELIVERY_DATE>20121119</DELIVERY_DATE>
<TOTAL_QTY>6</TOTAL_QTY>
<TOTAL_AMT>14802</TOTAL_AMT>
<SIGNATURE>SIGN</SIGNATURE>
<CHECK_VALUE>ABC</CHECK_VALUE>
<TP_NAME>DEF</TP_NAME>
<LINES>
<LINES_ITEM>
<SEQUENCE_NUM>1</SEQUENCE_NUM>
<QUANTITY>1</QUANTITY>
<UOM>EA</UOM>
<ITEM_NUMBER>0001</ITEM_NUMBER>
<PRICE>10.47</PRICE>
<PACK>1</PACK>
<ITEM_DESC>SAMPLE1</ITEM_DESC>
<ALL_CODE NULL="TRUE"/>
<ALL_METHOD NULL="TRUE"/>
<ALL_RATE NULL="TRUE"/>
<ALL_QTY NULL="TRUE"/>
<ALL_UOM NULL="TRUE"/>
<ATTRIBUTE1 NULL="TRUE"/>
<ATTRIBUTE2 NULL="TRUE"/>
<ATTRIBUTE3 NULL="TRUE"/>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</LINES_ITEM>
<LINES_ITEM>
<SEQUENCE_NUM>2</SEQUENCE_NUM>
<QUANTITY>1</QUANTITY>
<UOM>EA</UOM>
<ITEM_NUMBER>0002</ITEM_NUMBER>
<PRICE>8.55</PRICE>
<PACK>1</PACK>
<ITEM_DESC>SAMPLE2</ITEM_DESC>
<ALL_CODE NULL="TRUE"/>
<ALL_METHOD NULL="TRUE"/>
<ALL_RATE NULL="TRUE"/>
<ALL_QTY NULL="TRUE"/>
<ALL_UOM NULL="TRUE"/>
<ATTRIBUTE1 NULL="TRUE"/>
<ATTRIBUTE2 NULL="TRUE"/>
<ATTRIBUTE3 NULL="TRUE"/>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</LINES_ITEM>
<LINES_ITEM>
<SEQUENCE_NUM>3</SEQUENCE_NUM>
<QUANTITY>1</QUANTITY>
<UOM>CS</UOM>
<ITEM_NUMBER>0003</ITEM_NUMBER>
<PRICE>18.9</PRICE>
<PACK>6</PACK>
<ITEM_DESC>SAMPLE3</ITEM_DESC>
<ALL_CODE>47</ALL_CODE>
<ALL_METHOD>02</ALL_METHOD>
<ALL_RATE>2.88</ALL_RATE>
<ALL_QTY>1</ALL_QTY>
<ALL_UOM>CS</ALL_UOM>
<ATTRIBUTE1 NULL="TRUE"/>
<ATTRIBUTE2 NULL="TRUE"/>
<ATTRIBUTE3 NULL="TRUE"/>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</LINES_ITEM>
<LINES_ITEM>
<SEQUENCE_NUM>4</SEQUENCE_NUM>
<QUANTITY>1</QUANTITY>
<UOM>CS</UOM>
<ITEM_NUMBER>0004</ITEM_NUMBER>
<PRICE>45.19</PRICE>
<PACK>1</PACK>
<ITEM_DESC>SAMPLE4 </ITEM_DESC>
<ALL_CODE NULL="TRUE"/>
<ALL_METHOD NULL="TRUE"/>
<ALL_RATE NULL="TRUE"/>
<ALL_QTY NULL="TRUE"/>
<ALL_UOM NULL="TRUE"/>
<ATTRIBUTE1 NULL="TRUE"/>
<ATTRIBUTE2 NULL="TRUE"/>
<ATTRIBUTE3 NULL="TRUE"/>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</LINES_ITEM>
<LINES_ITEM>
<SEQUENCE_NUM>5</SEQUENCE_NUM>
<QUANTITY>1</QUANTITY>
<UOM>CS</UOM>
<ITEM_NUMBER>0005</ITEM_NUMBER>
<PRICE>50.93</PRICE>
<PACK>1</PACK>
<ITEM_DESC>SAMPLE5</ITEM_DESC>
<ALL_CODE NULL="TRUE"/>
<ALL_METHOD NULL="TRUE"/>
<ALL_RATE NULL="TRUE"/>
<ALL_QTY NULL="TRUE"/>
<ALL_UOM NULL="TRUE"/>
<ATTRIBUTE1 NULL="TRUE"/>
<ATTRIBUTE2 NULL="TRUE"/>
<ATTRIBUTE3 NULL="TRUE"/>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</LINES_ITEM>
</LINES>
<ATTRIBUTE1>007908809</ATTRIBUTE1>
<ATTRIBUTE2>081191017</ATTRIBUTE2>
<ATTRIBUTE3>000000</ATTRIBUTE3>
<ATTRIBUTE4 NULL="TRUE"/>
<ATTRIBUTE5 NULL="TRUE"/>
<ATTRIBUTE6 NULL="TRUE"/>
<ATTRIBUTE7 NULL="TRUE"/>
<ATTRIBUTE8 NULL="TRUE"/>
<ATTRIBUTE9 NULL="TRUE"/>
<ATTRIBUTE10 NULL="TRUE"/>
</INVLIST_ITEM>
</INVLIST>
</XXDPI_EDI894_INVLIST_TYPE>
</part>
</Receive_894_Dequeue_InputVariable>
Regards,
Suneel Jakka

This is a replica/duplicate of other post, follow it instead:
Re: How to use Business rules for lines in the payload in BPEL
Edited by: 980644 on Jan 10, 2013 8:22 AM

Similar Messages

  • Business Rule:Usage of @ISMBR with User Prompts/ Variables+Loop Function

    Hi,
    currently facing a business rule user prompt - if-selection issue - not sure, if it's simply a bug or other ways how to solve it:
    depending on runtimeprompt [RTP_VERSIONS], either the 1st or 2nd part of the rule should get executed using a loop command.
    The special thing is, that you can choose several versions simultaniously in runtimeprompt : as soon, as Data Input is part of the selection, the 1st part of the if-section should apply and the 2nd loop executed (and other way round)
    this works if I select 1 Member in the user prompt, but does not work, if I select several members.
    according to the manual, @ismbr function is "true", if already 1 member is matching !
    I experiemented in addition to @ismbr with @list and @range and also with additional == "Data Input"
    any idea, which other command should apply ? any experience, if using user-variables with several member selections in if-sections is a problem ?
    of course I could simply create separate businessrules or restrict runtimeprompt to 1 value/ version - but inconvenient.
    we are on system 9.3
    Businessrule:
    VAR breakvar1=1; /*Controls Deletion of Budgetdata on Version Data Input */
    VAR breakvar2=1; /*Controls Deletion of ALL Data on selected Versions */
    FIX( "BegBalance",
    [RTP_SCENARIO],
    *[RTP_VERSIONS]*,
    "Local",
    +..... other dimensions+ )
    "HSP_InputValue"
    IF( *@ISMBR("Data Input")* AND not @ISMBR(&Scenario_1_curr))
    breakvar1=1;
    breakvar2=0;
    ELSEIF( not @ISMBR(&Scenario_1_curr))
    breakvar1=0;
    breakvar2=1;
    ENDIF;
    ENDFIX;
    SET UPDATECALC OFF;
    SET MSG SUMMARY;
    Loop(1,breakvar1) /* delete all accounts = all data */
    FIX( [RTP_SCENARIO],
    [RTP_VERSIONS],
    @IDESCENDANTS([RTP_PROJECT])
    CLEARBLOCK ALL;
    ENDFIX;
    ENDLOOP
    Loop(1,breakvar2) /* delete only budget accounts, not setupdata */
    FIX( [RTP_SCENARIO],
    [RTP_VERSIONS],
    @IDESCENDANTS([RTP_PROJECT]),
    *@IDESCENDANTS("Costs")*
    CLEARBLOCK ALL;
    ENDFIX;
    ENDLOOP
    Edited by: Rodian Abel on May 4, 2010 10:38 PM
    Edited by: Rodian Abel on May 4, 2010 10:43 PM

    I think he is saying he does want to allow the user to select more than one member.
    You mention you are using @ismbr and @list. I would say that should be the one that would work.
    For example if you wanted Version1 and Version2 and you hardcoded it. It would look like this
    If (@ismbr(@list(Version1,Version2))
    So using your Variable I expect you wrote it like this
    if (@ismbr(@list(variable)) and that it didn't work.
    @range is useful as it is cross dimensional and that isn't the case here. So if @list doesn't work than this is a bug/problem for your specific situation and will have to approach it differently.

  • Error running business rules

    Hello All, We are currently experiencing the problem with the Business Rules. After some idle time in the application, we get an error "Cannot connect to essbase server" and the business rules fail to run.
    We are using Planning: 9.3.1.1.5 and Oracle :10 R2
    below are some details:
    Last usage time: 5:27 PM on 7/7/08
    User logged in at 7:27 AM on 7/8/08
    the hbrlaunch.log file has the following Exception entry at 7:27 AM:
    ************************ Date/Time Ended: 2008/07/08:07:27:30.399 CDT Type/Server/Application/Database: Essbase/xxx..domain.com/CC_Plan/CC_Plan Business Rule Name: CC_CurrencyAndAgg_MnthlyInp_OpsMisc By HBR user: user1 By Essbase user: admin Date/Time Ended: 2008/07/08:07:28:05.901 CDT Type/Server/Application/Database: Essbase/xxx.domain.com/CC_Plan/CC_Plan Business Rule Name: CC_AddAcct_OpsMisc_MonthlyInput By HBR user: user1 By Essbase user: admin Exception: Error connecting to Essbase server xxx.domain.com. *************************
    After logging the above exception about error connecting to essbase, no more exceptions are logged. In AAS_out.log, at around the same time the user experieced error, the following entry was found. not sure if they are related.
    2008-07-08 07:27:08,735 INFO Thread-23 com.hyperion.hbr.db.DBPluginDataTable - Deleting Plugin data older than TO_DATE('2008/07/08 07:25:44','YYYY/MM/DD HH24:MI:SS')
    Some exceptions were logged a few hours prior to the error being occurred:
    2008-07-06 19:25:01,258 WARN [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' com.hyperion.hbr.security.HbrSecurityAPI - Exception occured: MSG_USER_PROVISIONING_NATIVEPROVIDER_SETUP_ERROR
    At around the same time in essbase application log, we have these errors:
    [Tue Jul 08 07:27:55 2008]Local/CC_Plan/CC_Plan/admin/Error(1200315) Error parsing formula for [REGION DEFINITION] (line 0): invalid object type [Tue Jul 08 07:27:55 2008]Local/CC_Plan/CC_Plan/admin/Warning(1080014) Transaction [ 0x310231( 0x48735d4b.0x2da78 ) ] aborted due to status [1200315].
    In Essbase.log file, right around the same time the error occurred, it logs some errors stating thet the substution variables does not exist.
    [Tue Jul 08 07:05:15 2008]Local/ESSBASE0///Info(1051001) Received client request: Logout (from user [admin]) [Tue Jul 08 07:05:15 2008]Local/ESSBASE0///Info(1051037) Logging out user [admin], active for 5 minutes
    [Tue Jul 08 07:26:15 2008]Local/ESSBASE0///Error(1051021) You have been logged out due to inactivity or explicitly by the administrator.
    [Tue Jul 08 07:27:14 2008]Local/ESSBASE0///Error(1051007) Invalid login id - request [Logout] failed
    *** errors about substitution variables *****
    [Tue Jul 08 07:27:55 2008]Local/ESSBASE0///Warning(1051003) Error 1051083 processing request [Get Substitution Variable] - disconnecting
    [Tue Jul 08 07:50:20 2008]Local/ESSBASE0///Warning(1051003) Error 1051083 processing request [Get Substitution Variable] - disconnecting
    ********************************************************************************************* Planning_err.log file has the following entries: ********************************************************************************************
    Creating rebind thread to RMI java.lang.RuntimeException: Unable to aquire activity lease on activity 1 as the activity is currently leased by another server.
    The table: hbrplugindata in the AAS schema, is refreshed every minute.
    A new record is inserted as per the logs, but there is only one record in the table. It could be that the delete command is not logged.
    No exception are logged either. Could it be that there are exceptions during this operation and thus results in the failure of BR's?
    Currently we have to restart planning and RMI services to get the business rules to be working again.
    Any help in this matter is welcome. Thanks!

    Hi, we have the same error (region definition error, rules in planning not running for approx. 15 min) - then suddenly working again.
    This is a desaster, as planning users save not-calculated data and cause inconsistency in the system.
    had this in planning 4 installation up to Aug.08 and then in system 9 (with planning patch 5) - rel. 9.3.1.1.5 using IBM Websphere -
    all quick solution from hyperion did not really help: increase number of ports, java cache, change netrelay, netretryconect etc. in essbase.cfg and
    Olap.server.net retry +Olap.server.net connect delay in essbase.properties files
    Review business rules and users for errors, hardware, caches, fragmentation, potential system overload, search for corrupted database, invalid formulas in outline ...
    it came out, that it was just 1 business rule causing this trouble: our only rule, where you enter in a user prompt a numeric value -problem is quotation marks.
    we installed the cumulative Service Fix 11 for this (and other reasons) last week (takes approx. 4 hours to install with all the manual steps - just came out in May - Rel. 9.3.1.1.11)
    as the error happened only from time to time in the peak of our planning session, we will monitor next months but are very optimistic to have things fixed (solution obviously in fix 9 already)
    this link may help as well:
    http://www.network54.com/Forum/58296/thread/1201134375/1217512299/Strange+behaviour+with+HBR++%28Planning+931%29
    I suggest to install Service Fix 11 - if you read the manual, you probably find more fixed errors in there. (Patch is for Planning and BR Rules/AAS EAS)

  • Search for member name in WebForms and Business Rules - 11.1.2.1

    Hi,
    Client has a hierarchy with two parents (Owned and Managed) within a dimension. The 'Managed' parent is no longer valid. Thus they want to eliminate it and move it's children under the 'Owned' member. However there could be ramifications in Business Rules and/or WebForms. Is there a way to search all Business Rules and WebForms for 'Managed' to see which Business Rules and/or WebForms would be affected?
    Or is best way to extract all the WebForms and Business Rules to xml files via LCM and then write custom script to search the files? Not sure if this functionality is already there or not.
    They are on 11.1.2.1

    I don't think "Show Usage" picks up Business Rules that are in the Calculation Manger.
    Also check the Member Formulas - easiest to do in the EAS (view the Outline, and the member formulas are displayed. Otherwise, in Planning, you would need to go into each member individually, and that would take forever). And if you're using Partitions or MRAs, you should check them, too.
    I'm assuming you're doing all of this in a copy of the application, and not on a "live" app, right? So you can make the change and then validate the Business Rules and Outline, and the error messages will tell you where "Managed" was being used.
    -Matt Varner

  • Business Rules : Unable to create a global variable (Fixed)

    Hello all,
    I try to create a global variable in order to use it in a business rule;
    I selected an outline.
    I chose the type "Member"
    I chose the dimension "Period"
    I clicked on the lookup button in front of the default value and chose the member "January"
    Finally, I chose the usage type "Run-Time prompt" and type in a prompt string.
    Unfortunately, when I click on save, I get an error message : Variable value ["January"] is invalid.
    If I try to do not specified a default member, it is possible to save.
    But when I launch the business rule and specified a member in the the prompt message, I get an error 1060120 : OLAP error.
    I cannot figure out what's going wrong, so any help is welcomed.
    Thanks,
    DLP
    Message was edited by:
    user639769
    Message was edited by:
    user639769

    Thanks for your answer,
    I finally figure out what's going wrong.
    This issue is due to the fact that the outline is configured to accept duplicated names.
    When I create the same outline but with duplicated names turn off, every thing goes perfectly.
    I don't know why the outline accepts duplicated name.
    In fact, I do not understand what are the reasons for using duplicate name...

  • Why not allow Business Rule Design Transformer to overwrite existing BRDDs

    Hi,
    It can be quite annoying during development to continually having to remove the BRDD Trigger and PL/SQL Definition when running the BR Design Transformer reveals missing information in the BR Analysis definition. It seems that it would be practical to have at least the option to have the Business Rule Design Transformer overwrite an existing Business Rule Design Definition.
    You could think of an additional parameter in this utilily labeled "Overwrite existing BRDD?" with allowable values Y(es) and N(o) with No as default (so that the default functionality is the same as before).
    Below you find the code that can be added to the HSU_BRTR package to realize such a functional improvement. Maybe you can consider it for a next release...?!
    best regards,
    Lucas Jellema
    AMIS Services BV
    code to add to HSU_BRTR to provide a parameter that allows the user to specify whether or not the HSU_BRTR is allowed to overwrite an existing BRDD:
    in the revision history:
    09-jan-2003 Lucas Jellema
    6.5.2.3AMIS1.1 Added new parameter and supporting code that allows user to indicate
    whether existing Business Rule Design Definitions may be/should be overwritten
    at the end of procedure install
    hsu_install.add_parameter
    ( PACKAGE_NAME -- package name
    , 40 -- sequence
    , 'Overwrite existing BRDDs?' -- prompt
    , 'N' -- default value actual
    , 'No' -- default value displayed
    , 'Y' -- mandatory
    , 'N' -- allow multi-select
    , 'N' -- include shared elements
    , '' -- element type short name
    , '' -- sql expression actual
    , '' -- sql expression displayed
    , null -- where clause
    , null -- synchronize with
    , null -- foreign key column
    , -- help text
    'Choose whether you want this utility to overwrite existing Business Rule Design Definitions.'
    hsu_install.add_allowable_value
    ( PACKAGE_NAME -- package name
    , 40 -- parameter
    , 1 -- sequence
    , 'Y' -- actual value
    , 'Yes' -- displayed value
    hsu_install.add_allowable_value
    ( PACKAGE_NAME -- package name
    , 40 -- parameter
    , 2 -- sequence
    , 'N' -- actual value
    , 'No' -- displayed value
    --------6.5.2.3AMIS1.1
    Just before procedure transform_stage2
    procedure delete_brdds
    ( p_tbl_id in ci_table_definitions.id%type
    , p_br_name in varchar2
    -- Purpose Delete existing Business Rule Design Definition
    -- Usage from run procedure
    -- Remarks Find PL/SQl Module Definition based on Business Rule Label
    is
    cursor c_brdd
    ( b_tbl_id in ci_table_definitions.id%type
    , b_br_name in varchar2
    is
    select trg.id trg_id
    , trg.name name
    , plm.id plm_id
    from ci_database_triggers trg
    , ci_plsql_modules plm
    where trg.table_definition_reference = b_tbl_id
    and trg.plsql_module_reference = plm.id
    and plm.name = b_br_name
    begin
    -- loop over journalling busrules of this application
    <<brdd>>
    for r_brdd in c_brdd(p_tbl_id, p_br_name) loop
    -- delete busrule (delete of trigger is since 6i not enough anymore, so
    -- explicitly delete PL/SQL module also)
    bllog.write
    ( 'Deleting trigger '||r_brdd.name||' and PL/SQL module '
    ||hsu_name.get_name_and_path(r_brdd.plm_id)
    ||', a new business rule design definition overwrites this old one.'
    , bllog.information
    bltrg.del(r_brdd.trg_id);
    blplm.del(r_brdd.plm_id);
    end loop brdd;
    end delete_brdds;
    inside procedure transform_stage2
    (just before the comment: -- check if BRDD with this plm_name already exists)
    if p_overwrite_br = 'Y'
         then
    delete_brdds
    ( p_tbl_id => g_trg_tbl(i).tbl_id
    , p_br_name => l_plm_name
         end if; -- find_trg and overwrite =Y
    A new parameter in procedure transform_br_fun
    procedure transform_br_fun
    , p_overwrite_br in varchar2 default 'N' -- 6.5.2.3AMIS1.1
    use the parameter p_overwrite_br in the call to transform_stage2
    transform_stage2
    ( p_fun_id => p_fun_id
    , p_fun_label => r_fun.fun_function_label
    , p_fun_short_definition => r_fun.fun_short_definition
    , p_msg_prefix => p_msg_prefix
    , p_msg_language => p_msg_language
    , p_rule_type => l_rule_type
                   , p_overwrite_br => p_overwrite_br -- 6.5.2.3AMIS1.1
    new parameter p_overwrite_br in the procedure run
    NOTE: in both PACKAGE SPECIFICATION and BODY
    , p_overwrite_br in varchar2 default'N' -- 6.5.2.3AMIS1.1
    use the parameter p_overwrite_br in all calls to transform_br_fun inside procedure run
    transform_br_fun
    ( p_fun_id => r_fun_tree.id
    , p_msg_prefix => p_msg_prefix
    , p_msg_language => p_msg_language
    , p_create_att_usages => p_create_att_usages
    , p_overwrite_br => p_overwrite_br -- 6.5.2.3AMIS1.1

    Among the alternatives not mentioned... Using a TiVo DVR, rather than the X1; a Roamio Plus or Pro would solve both the concern over the quality of the DVR, as well as providing the MoCA bridge capability the poster so desperately wanted the X1 DVR to provide. (Although the TiVo's support only MoCA 1.1.) Just get a third-party MoCA adapter for the distant location. Why the hang-up on having a device provided by Comcast? This seems especially ironic given the opinions expressed regarding payments over time to Comcast. If a MoCA 2.0 bridge was the requirement, they don't exist outside providers. So couldn't the poster have simply requested a replacement XB3 from the local office and configured it down to only providing MoCA bridging -- and perhaps as a wireless access point? Comcast would bill him the monthly rate for the extra device, but such is the state of MoCA 2.0. Much of the OP sounds like frustration over devices providing capabilities the poster *thinks* they should have.

  • JHeadstart, Oracle Business Rules and BPEL Process Manager

    Dear JHeadstart Team,
    I have some questions regarding integration of JHeadstart and Oracle Business Rules and Oracle BPEL Process Manager. As a matter of fact I don't have any work expriences with these tools so my questions may not be good and precise.
    1- Using a business rule engine can dramatically increase speed of development and ease of maintenance.I had a very good exprience in using JHeadstart and Headstart in the past but I wanted to know if it is possible to use Oracle Business Rules in conjunction with the JHeadstart ? If so, What steps should be taken? Is there any known issue about this integration? Does Oracle Business Rules have any interference with JHeadstart or it is only used in model layer during insert,update,delete?
    2- Is it possible to develope a system based on oracle work flow engine (Oracle BPEL Process Manager) using JHeadstart ? If so, What steps should be taken and how the changes in the flow of work would by applyed in a system developed by JHeadstart. Is there any known issue about this integration?
    Any help,link to documents or general guidelines would be highly appreciated.
    Thanks in advance,
    Navid

    Couple of things I would like to add, are the following.
    In the context of an ADF application usage of Oracle Business Rules most likely is in the business logic layer, but mind that it does not need to be restricted to that.
    Oracle Business Rules takes so called 'facts' as input, evaluates some rules based on that and change those facts or return some result. That might be checking a business rule as defined in the JHeadstart Developers Guide. But it might also return some value that is used in a navigation rule.
    Think about a page flow where after page A normally page C is presentend, but in case of some situation (like a customer ordered something and you want to present some special offering based on that) you want page B presented in between (i.e. A -> B -> C). Oracle Rules could be used to determine this page flow. This would be an example of using it in the controller layer (probably in combination with using facts that come from the model layer).
    Another remark that I would like to make, is that in my opinion it does not make much sense to use Oracle Rules for business rules that logically more or less are part of your data model (like end date must be on or after begin date). You typically use Oracle Rules to implement business rules that are of a volatile nature, meaning that day-to-day business may require a change of the rules. One example is the navigation case that I mentioned before. Another (typical) example would be a rule that defines when a customer is a Gold customer.
    Jan Kettenis

  • Business Rule Delete Problem

    Problem definition:
    We have a business rule according to CDM ruleframe, but have a
    problem when we want to delete a row from a table. The problem
    occurs when the business rule is validated. The
    delete operation works fine when the business rule is not
    validated.
    Business rule: BR_FELT_0006_DEL
    Table: SLN_FELTER
    CAPI-package: SLN_FELTER_CAPI
    Trigger attr.: After triggering statement on DELETE operation
    The definition of this delete rule is the same as the definition
    in the Headstart demo application.
    This is a simple reconstruction of the error problem:
    SQL> delete from sln_felter
    2 where opve_oppgave_nr = 'RF-1061'
    3 and opde_oppgavekode = 1014
    4* and inar_inntektsaar = 2000
    SQL> /
    delete from sln_felter
    FEIL pe linje 1:
    ORA-20999:
    ORA-06512: ved "HST65.CG$ERRORS", line 565
    ORA-06512: ved "SLNHL6.CG$SLN_FELTER", line 474
    ORA-20998: Transaction Failed
    ORA-06512: ved "HST65.QMS$ERRORS", line 128
    ORA-06512: ved "HST65.QMS_TRANSACTION_MGT", line 822
    ORA-06512: ved "SLNHL6.CG$ADS_SLN_FELTER", line 51
    ORA-04088: feil ved utfxring av
    triggeren 'SLNHL6.CG$ADS_SLN_FELTER'
    ORA-06512: ved "SLNHL6.CG$ADS_SLN_FELTER", line 43
    ORA-04088: feil ved utfxring av
    triggeren 'SLNHL6.CG$ADS_SLN_FELTER'
    SQL> @d:\hsd65\hst\scripts\messages
    Feil QMS-00100: Ukjent feil ORA-01403: ingen data ble funnet:
    qms_transaction_mgt.perform_business_rule
    Kontakt brukerkontakten.
    PL/SQL-prosedyren ble fullfxrt.
    Error message should have been:
    SLX-00367: <p1>: Feltet kan ikke slettes hvis det har pestand
    fra skattyter
    We have debugged the PL/SQL code and the error occurs in the CDM
    ruleframe generated
    CAPI-definition and not in the business rule itself. This is a
    part of the code where we think the error occur:
    procedure br_felt_0006_del
    is
    l_rule_validation_result boolean := true;
    begin
    l_rule_validation_result := br_felt_0006_del
    ( g_current_row.opde_oppgavekode
    , g_current_row.inar_inntektsaar
    , g_current_row.id
    if not l_rule_validation_result
    or l_rule_validation_result is null
    then
    qms_transaction_mgt.process_rule_violation
    ( p_br_name => 'BR_FELT_0006_DEL'
    , p_msg_code => 'SLX-00367'
    , p_display_label => display_label
    , p_table_name => 'sln_felter'
    , p_table_rowid => get_rowid <------ When this procedure
    -- is calling the get_rowid function
    ); -- then we get the ORA-01403: No data found.
    end if; -- Business Rule is violated
    end br_felt_0006_del;
    |
    |
    |
    function get_rowid
    return rowid
    -- Purpose Return rowid of the current row
    -- Usage From br procedures
    is
    l_rowid rowid;
    begin
    if g_current_row.the_rowid is not null
    then
    l_rowid := g_current_row.the_rowid;
    else
    select rowid     <--- We suspect this is a
    -- problem in CDM ruleframe,
    into l_rowid -- because a deleted row is read !!!
    from sln_felter
    where id = g_current_row.id
    g_current_row.the_rowid := l_rowid;
    if g_stack_index is not null
    then
    g_felt_tbl(g_stack_index).the_rowid := l_rowid;
    end if; -- g_stack_index
    end if; -- g_current_row.the_rowid
    return l_rowid;
    end get_rowid;

    We also have a problem with the delete rule.
    In our case we have two tables persons and reservations.
    A person can place more reservations. The foreign key between them two is cascade delete.
    Our code is
    Purpose Persons can only be deleted three years after they made the last reservation
    Remarks
    Revision History
    When Who
    Revision What
    30-01-2002 REPOWN
    1.0 Using utility HSU_BRTR (revision 6.5.1.3)
    04-01-2002 MAST     
    1.1 Code toegevoegd
    l_rule_ok boolean := true;
    begin
    trace('br_klt002_del (f)');
    -- for instructions, see the Headstart User Guide
    l_rule_ok := not ati_rsg_capi.exists_row
    ( p_where => 'trunc(reservationdate ) >= add_months(trunc(sysdate),-36) and psn_id = '||p_old_id );
    --also tried
    --l_rule_ok :=  not ati_rsg_capi.exists_row
    -- ( p_where => 'trunc
    --(reservationdate ) >= add_months(trunc(sysdate),-36) and
    --psn_id = '||p_id   );
    return l_rule_ok;
    exception
    when others
    then
    qms$errors.unhandled_exception(PACKAGE_NAME||'.br_klt002_del (f)');
    end br_klt002_del;
    The problem is that this doesn't work. We are allowed to delete every person, even if they have a reservation yonger than three years.

  • Composite Web Forms/Business Rules

    In Planning, I've created a composite web form. Although I've selected the "Use Members on Data Form" box in the business rule properties with in the composite form, when I launch the rule the prompt box doesn't show the division that is represented on the current form, it pre-populates the last division that was used when launching a business rule in a normal web form. This works just fine when I'm in a normal web form, just not a composite. Any ideas of what might be going on? Is there a setting somewhere that I'm missing?

    I would be careful using business rules in composite forms. There are a bit unstable as composite forms are quite buggy. What you can do is try to apply the 9.3.1.1.8 patch release and see if this does not resolve your issues. This patch covers alot of bugs in 9.3.1 (which I assume is your version) including business rules stability with composite forms and substitution variable usage. Hope this helps point you in the right direction.
    best of luck

  • Can not run business rule with bat file

    Hi all,
    I've problem with using *.bat file to run business rule. My Essbase version is 11.1.1.3 and the syntax within
    *.bat is simple, but I always got the Usage message and can not execute the rule.
    The error result as blow(I already execute the syntax in command panel directly):
    C:\Hyperion\products\Essbase\eas\console\bin>CmdLnLauncher -SWILSON -Usynadmin -P111111 -r0004_COPYDATA
    Usage: CmdLineLauncher [-p:<passwordFile>] -Sservername -Uusername [-rBusiness R
    ule Name | -sSequence Name] [-fRun Time Prompts file] [-validate]
    My *.bat file content as below:
    cd c:\Hyperion\products\Essbase\eas\console\bin
    call CmdLnLauncher -SWILSON -Usynadmin -P1111111 -r0004_COPYDATA
    Is there something wrong? If anyone know about this problem, please help,thanks!!

    Hi,
    Here is a brief overview on how to use the command line launcher.
    You can create a file and put the following information into it filling in the servername,app name and db name
    ExecDB::"Planning/servername/appname/dbname"
    Save it as .xml file (don’t think it has to be an xml, could be .txt), so something like connect.xml
    Then when you run your command line do exactly like before Cmdlnlauncher -Sservername -Uusername -p:password.txt -rrule -fconnect.xml
    If you have variables in your rule you can
    In EAS right click over the rule and select "Automate Launch Variables", fill in the details and then save it is as an xml.
    You just need to reference the xml in the batch script as described above using the -f parameter, for sequences remove -rrule and use –sSequence
    update password.txt to the name of your password file.
    Cheers
    John
    http://john-goodwin.blogspot.com/
    Edited by: JohnGoodwin on Apr 30, 2010 8:17 AM

  • Business Rules script

    All,
    I have the below script which gets generated in the source tab when I create a Calc rule which aggregates a portion of the database:
    To give more information: @IDESCENDANTS("Product Contribution" selection and the FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal"))) are selections of Dense dimensions and the others are selections from the Sparse Dimensions. The below script generates 4 sets of Fix statements and it is only in the final set of the fix statements that it does the Calc Dim. Do we still need the above 3 set of Fix statements and also is there any way that usage of IF statements will improve the performance of this rule?
    SET UPDATECALC ON;
    SET UPTOLOCAL OFF;
    SET AGGMISSG ON;
    SET FRMLBOTTOMUP OFF;
    SET CACHE HIGH;
    FIX("FY08")
    FIX("Actual")
    FIX("Final Submission","UK Adjustments")
    FIX(@IDESCENDANTS("Source Countries"))
    FIX(@IDESCENDANTS("UK Pharma CC"))
    FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
    @IDESCENDANTS("Product Contribution");
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    FIX("FY08")
    FIX("Actual")
    FIX("Final Submission","UK Adjustments")
    FIX(@IDESCENDANTS("UK Pharma CC"))
    FIX(@IDESCENDANTS("Product Contribution"))
    FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
    @IDESCENDANTS("Source Countries");
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    FIX("FY08")
    FIX("Actual")
    FIX("Final Submission","UK Adjustments")
    FIX(@IDESCENDANTS("Source Countries"))
    FIX(@IDESCENDANTS("Product Contribution"))
    FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
    @IDESCENDANTS("UK Pharma CC");
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    FIX("FY08")
    FIX("Actual")
    FIX("Final Submission","UK Adjustments")
    FIX(@IDESCENDANTS("Source Countries"))
    FIX(@IDESCENDANTS("UK Pharma CC"))
    FIX(@IDESCENDANTS("Product Contribution"))
    FIX((@LEVMBRS("Period", 0)) AND (@IDESCENDANTS("YearTotal")))
    CALC DIM("Product");
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    ENDFIX
    Thanks
    Vikash

    Vikash,
    Graphical business rules are notorious for generating inefficient calc scripts. But without knowing more about your application this is a tough questions to answer. If you are simply trying to rack up your sparse dimensions, then I would write the business rule to only do that.
    It looks like your dense dimensions are Product Contribution (is this accounts or measures perhaps?) and Time. Your first fix executes the rollups or formulas on @IDESCENDANTS("Product Contribution");. If this is a dense dimension, can you make these rollups and calcs dynamic, such that you do not need to calculate them in a business rule at all?
    Are there any formulas on the remaining sparse dimensions? (Source Countries, UK Pharma CC and Product) If not, I would simply do an AGG on each of these dimensions, eliminating the first group of fixes. Only use CALC DIM if you need to execute member formulas, otherwise use AGG.
    Again, I'm making a lot of assumptions with little information about your model, however you should be able to speed this up. For what it's worth, most people avoid graphical business rules.
    I hope this helps,
    - Jake

  • ORA-06502 in Business Rule Design Transformer

    For a specific business rule we got the following error: ORA-06502: PL/SQL: numeric or value error: character string buffer too small. It appears that it is caused by a long entity relation name. See the detailed logging below. Bij reducing the length of the entity relation name involved the utility worked file.
    Relationship: afstand rechtsmiddel gedaan bij namens verdachte door is included as Usage for entity: GGRL/ RELATIE
    Relend usage is found with name: technisch ttz gevoegd bij and id: 1497077058224033627321119385618562861
    Relationship: TECHNISCH TTZ GEVOEGD BIJ->STRAFZAAK is not found to be part of AFSTAND RECHTSMIDDEL GEDAAN BIJ NAMENS VERDACHTE DOOR->RELATIE
    Triggering event UPDATE UITSPRAAK.AFSTAND RECHTSMIDDEL G0 found.
    bltext.get_lines_from_repository, p_text_type=CDIDSC
    bltext.get_line_containing
    Activity aborted with ORACLE internal errors.
    -6502 ORA-06502: PL/SQL: numeric or value error: character string buffer too small

    Jan,
    The name of the business rule is already in the CONSTRAINT_NAME of the QMS_MESSAGE_PROPERTIES table.
    I already tested by deleting the records in the two tables, QMS_MESSAGE_PROPERTIES and QMS_MESSAGE_TEXT, and ran the utility, but it didn't help either. I can run the utility for one rule, but when I want to run it again at some later point, it fails with this error.
    But, I managed to create rule definitions using the HSU Create Business Rule Design Definition, rule by rule. I only had to add references in the business rule to the used module.
    Dimce

  • Separate release of SAP Business Rules Management component

    I am evaluating the possibility of using the SAP Business Rules Management for the company. What I have seen till now in SAP is that it is part of the SAP Netweaver composition environment which consists of lot of other components also. I don't want to use the other components. Is is possible to download a trail copy of only the Business Rules management component ? (I don't want to use the BPM and others.)

    Hello Prashanth,
    You can just select the usage type (functional unit) Business Process Management and Business Rules management for installation.
    You can find more information on installation in the guide provided at the SAP service marketplace - https://websmp105.sap-ag.de/installnw73
    Installation guide - SAP Systems Based on SAP NetWeaver 7.3 Application Server Java on Windows: MS SQL Server- https://websmp105.sap-ag.de/~sapidb/011000358700001259982010E
    Best Regards,
    Arti

  • AS console hangs when trying export business rules

    Hi,
    when i try to export business rules from administration services console it hangs and task manager shows admincon.exe 100% cpu usage.
    Need help.
    Thanks,
    Timur

    Hi Timur,
    I ran into the same trouble. I could get 5-7 rules at a time exported just fine. but more than that it would just run and run for hours.
    One option is perhaps increase your java heap sizes for EAS.
    Another option which we did was to change security to be by project instead of by rule and this made our exports much faster
    This was with Hyperion 9.2.1

  • Business rule put figures to the blocks not created earlier

    Sometimes business rules put figures to the blocks that should have not been created yet. Business rules perform this activity without the usage of function (createnonmissingblk) which it should not. Please can someone tell me its reason?

    It can be a sparse allocation that it is doing.
    DATACOPY can create blocks
    Sparse assignment can create blocks
    @ALLOCATE can create blocks.
    Regards
    Celvin

Maybe you are looking for

  • Address Book entries on the Computer

    Help - I want to add all of my contacts on the computer and I do not know how and can not find that info in the book. Thanks, GW

  • Custom MIRO/Provisional GR

    Dear All, In standard system for import scenario we create an import PO,then custom miro,goods receipt,planned delivery charges and then vendor invoice miro. Now in one of my client due to unavailability of the space the goods is placed outside the p

  • Configure Word 2010 startup with /n switch.

    Hello, Opening MS Word with /n switch, Example "C:\Program Files\Microsoft Office\Office\Winword.exe" /n, Word 2010 will start a new instance of Word with no document open. Can this be done via GPO as we are looking into configuring this for hundreds

  • Automatic PR creation for stock items (Category - L)

    Hi All, My requirement is as follows: When I create PM orders for stock item, system generates a reservation number. But the actual qty is sytem for such items are less than planned qty or NIL qty. How to create PR's for such items automatically by s

  • Can't creat a Web Gallery

    I am running Bridge CS4 on windows Vista and when I click "Outpout to web or PDF" I do not get a templete like I used to, to create a web gallery. I did go to  Adobe Bridge Preferences , selected the Startup Scripts panel, and selected Adobe Output M