How to validate a node list using business rules

Hello everybody:
I'm developing with Oracle SOA Suite 11.1.1.6
I'm using business rules to check some business requirements from my processes and I am having a situation that I like to share with you in
order to receive some advices to solve it.
In the rule input variable I have an element with the following structure (example):
[code]
<User>
    <Name>Big Boss</Name>
    <ExpertiseLevel>10</
ExpertiseLevel>
     <DepCode>RRHH</DepCode>
    <AssignedUsers>
        <User>
            <Name>Roman</Name>
            <ExpertiseLevel>5</ExpertiseLevel>
            <DepCode>RRHH</DepCode>
             </AssignedUsers>
        </User>
        <User>
            <Name>Mark</Name>
            <ExpertiseLevel>2</ExpertiseLevel>
            <DepCode>RRHH</DepCode>
             </AssignedUsers>
        </User>
        <User>
            <Name>Jane</Name>
            <ExpertiseLevel>5</ExpertiseLevel>
            <DepCode>RRHH</DepCode>
             </AssignedUsers>
        </User>
        <User>
            <Name>Lisa</Name>
            <ExpertiseLevel>3</ExpertiseLevel>
            <DepCode>FNZ</DepCode>
             </AssignedUsers>
        </User> 
    </AssignedUsers>
</Request>
[/code]
Using business rule I need to check that all the users departament code *<DepCode>* match with an specified code, besides another
validations. As it's showed in the previous XML I have a user list inside the *<User>* node and I have to use a loop to check all the users
assigned to the Big Boss user. My question is: Which could be the most "efficient" way to make that loop?
I have been thinking in some options:
1- Create a ruleset for users validation and make the loop inside the process executing the user ruleset many times as users exist?
2- Using functions (but this is not an option because I have a requirement that forbid to use functions inside the business rules
implementation)
Could anybody tell me how can I use the foreach available in the ruleset advanced mode? Can I execute a desicion table in a loop?
Thanks in advance

hi
I guess you will need a CX.
when user enters a value to the node,your CX will get fired.
it will take the current value and check with your database.if value already exists then you have to empty that node in the CX. and show a message that you needs to change the value of node.
Let me know if you need code.
send a mail on [email protected]
I will provide you the code.
Regards,
Kaushal

Similar Messages

  • How to copy Supporting details using business rule

    Is it possible to copy supporting details and attachment, cell text using business rules. We have Copy version option but i want to make it run using a script, is it possible, please suggest

    The supporting detail is held in the planning relational tables and business rules are run against essbase, using a business rule you would probably have to create a custom CDF.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • 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.

  • How can I remove a flag using a rule in Mail.app?

    I'm using Mail Act-On to flag messages that are important. I also have got a smart mailbox that displays only those messages that are flagged, this is my "To Do" mailbox.
    Once I've read and answered the message I want to remove the flag, preferrably via a rule using Mail Act-On as well. However in the rules dialog in the Mail.app preferences there's only the option to set a flag, not to remove one.
    Can anyone help: how can I remove a flag using a rule?? Maybe via Applescript as the last resort?
    Thanks for any advice Jan

    Hi Jan
    I haven't gotten around to put unread and unflag into Mail-ActOn but MailTags has the functionality. MailTags also allows you to mark a message unread via act-On rule.
    It is interesting to note that apple doesn't include unflag and unread as the rules were originally intended to apply only to new messages (of which none should be read or flagged) with that logic, there would be no need for unread, unflagg.
    @David: The reason to do it via Act-On rule would be to set up a sequence of events, one of which is to unflag, others may be to set keywords, move messages, set colors etc.
    Scott

  • Avoid child rollup to parent using Business rule

    Hi iam new to this hyperion planning.
    I want to spread values from parent to child. Once i spreaded the value from parent to child if any other user changed child data it should not be rollup to parent. By using business rule only
    Thanks in advance

    Then you must not run an aggregation on this data, at least for the dimension that you are spreading on.
    If you have a broad aggregation you run you could try fixing on non-Target versions only:
    FIX(@UDA("Standard Bottom Up")) before your aggregation should restrict to the versions you are safe to aggregate,

  • When we use calculation script and when we use business rule

    when we use calculation script and when we use business rule can anyone please tell me

    Re the OP's question, here is an excellent introduction to Calculation Manager and business rules. It was the first hit when I googled "calculation manager hyperion".
    http://ranzal.wordpress.com/2010/06/11/oracle-hyperion-calc-manager-%E2%80%93-part-1/
    You can also go to odtug.com -- the Tech Resources section has a series of presentations on Calculation Manager, from beginner to intermediate.
    The added benefit with business rules are that you can use variables and runtime prompts. You can also link planning with business rules and pass information from a web form into a business rules.^^^Only with Planning. There are no runtime prompts with Essbase in 11.1.2.2 but I hear it is coming back in 11.1.2.3
    We can use Business Rule for all applications and it is GUI.^^^Doesn't have to be GUI-based. You can (depending on version) flip back and forth between GUI and script. I have not tried writing (nor can I actually think why you would want to do this) a Calc Mgr rule for multiple apps. Maybe you are thinking of a script object that can be called multiple times?
    To check whether a calc script is executed or not you have to use the Essbase application database log file (Plan1.LOG)^^^As business rules are, sooner or later, translated to BSO (and hey, ASO too and HFM and Fusion and HPCM and they can differ, a lot, so this is not always true) calc script language, you can always check in the application log to see what is run if Planning or BSO Essbase.
    Regards,
    Cameron Lackpour

  • How to send an updated list using batch job

    Hi All,
      The program displays data on the screen, if the data looks ok, then there is an option to update.
    When I run update, the program submits a batch job and the basic list gets updated, but my batch job is still sending the data on the screen. how can i send the updated list using batch job.
      Ex: output of the program
                    1         2
           there is an update button on the screen, when i press update button, my program submits in batch job, the above list becomes
                    1        2
                    3        4
    but when i check the spool, it shows the o/p as         1           2 ..it is not sending the updated list.
    Please suggest me how to send the updated data
    Thanks,
    Kumar

    Hi Krishna,
      I have added a button on the alv list. when i press update button, my program updates the list, then submits the batch job. I am attaching the sample test program i am trying with, please suggest me how can i get the updated list.
    *& Report  ZTESTSSSSS
    REPORT  ZTESTSSSSS.
    DATA: gt_fieldcat TYPE slis_fieldcat_alv,
          lt_fieldcat type slis_t_fieldcat_alv,
          gt_sort     TYPE slis_t_sortinfo_alv,
          g_repid     LIKE sy-repid,
          gt_layout   TYPE slis_layout_alv.
    start-of-selection.
      lt_return-type = 'S'.
      lt_return-message = 'test message'.
      append lt_return.
      CLEAR gt_fieldcat.
      gt_fieldcat-fieldname = 'TYPE'.
      gt_fieldcat-outputlen = '3'.
      gt_fieldcat-tabname   = 'LT_RETURN'.
      gt_fieldcat-seltext_l  =  'Type'.
      gt_fieldcat-seltext_m  =  'Type'.
      gt_fieldcat-seltext_s  =  'Type'.
      APPEND gt_fieldcat TO lt_fieldcat.
      CLEAR gt_fieldcat.
      gt_fieldcat-fieldname = 'MESSAGE'.
      gt_fieldcat-outputlen = '15'.
      gt_fieldcat-tabname   = 'LT_RETURN'.
      gt_fieldcat-seltext_l  =  'Message'.
      gt_fieldcat-seltext_m  =  'Message'.
      gt_fieldcat-seltext_s  =  'Message'.
      APPEND gt_fieldcat TO lt_fieldcat.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = sy-repid
          I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
          I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          IT_FIELDCAT              = lt_fieldcat
        TABLES
          T_OUTTAB                 = lt_return
        EXCEPTIONS
          PROGRAM_ERROR            = 1
          OTHERS                   = 2.
    *&      Form  set_pf_status
          text
         -->RT_EXTAB   text
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD'.
    ENDFORM. "Set_pf_status
    *&      Form  user_command
          text
         -->R_UCOMM      text
         -->RS_SELFIELD  text
    FORM user_command USING r_ucomm     LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      DATA: li_count TYPE I.
      IF r_ucomm EQ 'UPD'.
    Adding another message
        lt_return-type = 'S'.
        lt_return-message = 'Another test message'.
        APPEND lt_return.
        rs_selfield-refresh = 'X'.
        rs_selfield-col_stable = 'X'.
        rs_selfield-row_stable = 'X'.
        l_upd = 'X'.
       LOOP AT lt_return.
         WRITE: / lt_return-type, lt_return-message.
       ENDLOOP.
        IF sy-batch IS INITIAL.
          l_upd = 'X'.
    Open the Job
          CALL FUNCTION 'JOB_OPEN'
            EXPORTING
              jobname          = w_name
            IMPORTING
              jobcount         = w_number
            EXCEPTIONS
              cant_create_job  = 1
              invalid_job_data = 2
              jobname_missing  = 3
              OTHERS           = 4.
          IF sy-subrc = 0.
            SUBMIT ('ZTESTSSSSS') VIA JOB w_name NUMBER w_number
                    AND RETURN
                    WITH p_recnnr = p_recnnr.
            CALL FUNCTION 'JOB_CLOSE'
              EXPORTING
                jobcount             = w_number
                jobname              = w_name
                strtimmed            = 'X'
              EXCEPTIONS
                cant_start_immediate = 1
                invalid_startdate    = 2
                jobname_missing      = 3
                job_close_failed     = 4
                job_nosteps          = 5
                job_notex            = 6
                lock_failed          = 7
                OTHERS               = 8.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.  "User_command
    Thanks,
    Kumar

  • Why to use business rules in biztalk or is there is any alternative to using vocabularies in biztalk?

    Thanks in advance

    Business rules framework: Organizations may need to process information differently depending on the data submitted. In the case of BizTalk, information is submitted
    via a message, and data within that message may require special processing once it has been received by an orchestration. The orchestration must be able to determine what that data is and how to process it. Additionally, rules around how that data is interpreted
    may change at any given time, even after the solution is in production. For example, a rule may be required that allows processing messages as long as a specific field has a value less than 10, but must stop processing and notify an administrator when this
    value is equal to or exceeds 10. The ability to store and access such a rule and to make it available for customization through a user-friendly interface is provided by the BizTalk business rules framework.
    Vocabularies: They are specific to
    business rules framework. These consist of all defined values that you can use when creating
    a rule,  including constants, predicates, XML nodes, and so on.
    The terms used to define rule conditions and actions are usually expressed by domain or industry-specific nomenclature. For example, an e-mail user writes rules in terms
    of messages "received from" and messages "received after," while an insurance business analyst writes rules in terms of "risk factors" and "coverage amount."
    Underlying this domain-specific terminology are the technology artifacts (objects, database tables, and XML documents) that implement rule conditions and rule actions.
    Vocabularies are designed to bridge the gap between business semantics and implementation.
    Reference:
    BizTalk 2010 Recipes: A Problem-Solution Approach
    MSDN:
    Business Rules Engine
    MSDN:
    Vocabularies
    TechNet Wiki:
    https://social.technet.microsoft.com/wiki/contents/articles/6480.biztalk-server-business-rule-engine-survival-guide.aspx
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • How to track what your Calc Script/Business Rule is doing?

    Hi,
    I wanted to know the methods or the best way to keep a track of what your Calculation Script of Business Rule is doing once you execute it.
    Or suppose it fails for some reason and the reason is not a syntax error (that it usually would show up in EAS while validating)how can you know what's going wrong?
    Please let me know !
    ~ Adella

    All the CDFs are available at - https://www.samplecode.oracle.com/tracker/tracking/linkid/prpl1004/action/ExecuteQuery?query=essbase1
    There are also the Echo CDFs in the String collection -
    @JechoBoth - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoString - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoDouble - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    Saying that they usually need to be a calc block so if you are expecting to find where a calc is up to in an aggregation it is not going to tell you much.
    Also you have to watch out if you are calculating a large number of blocks then you can end up outputing more information that you would ever need.
    If you look in the essbase application log you can actually get an idea of which part of the script the calc is executing and times without the need for CDFs.
    Also if a script fails then the app log is the place to go and check.
    You can also look at the standard calc commands in essbase
    SET NOTICE - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_notice.html
    "Monitors the progress of your calculation by providing completion notices at intervals during the calculation. The number of notices depends on the level you specify."
    SET MSG - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_msg.html
    "Sets the level of messaging you want returned about calculations, and enables simulated calculations."
    or if on 11.1.2.x then the @RETURN function - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?return.html
    "Exits the calculation immediately under specified logical conditions. You can use the IF... ELSEIF calculation command block to specify the logical error conditions, and use the @RETURN function to exit the calculation with customized error messages and levels."
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How do I FIX members in a Business Rule to those set in outline security?

    Let's say..
    - I've granted write access to one user a branch of members in one dimension.
    - I include a Level 0 selection of that dimension in a data form in the Page view, which correctly allows input only to those members for that user.
    How can my BR fix only on those bottom level members appearing in the dataform?
    J

    Hi,
    one possibility is to create RTPs in your Business Rule, insert these (global variables) in your fix statement, connect the Business Rule to your dataform and check in business rule properties tab the boxes for "Run on Save", "Use Members on Data Form" and "Hide Prompt".
    Then your users can only select members in pages for that they have access rights and the business rule calculates the selected member combination.
    Kind regards
    André

  • How to add Exception handling in Oracle Business rules Function

    Hello,
    We use to have good number of business rules in our application. So we need to have some functions in BR Composite.
    Can some one let me know how to handle exception in Oracle business rules exception( Regular try catch will not compile)
    is there any way please let me know.
    Edited by: Network22 on Mar 25, 2013 10:21 AM

    Why aren't you using por_custom_pkg.custom_validate_req_line to add extra validations.
    Ensure that profile POR: Enable Requisition Line Customization is set to Yes if you were to use po_custom_pkg for Requisition line validations.
    OAF calls por_custom_pkg at various points depending upon the values in Profile Options:-
    POR: Enable Req Distribution Customization
    POR: Enable Req Header Customization
    POR: Enable Requisition Line Customization
    Thanks,
    Anil Passi

  • How to incorporate table data with Oracle Business Rule

    hello
    I want to use table with data in Oracle Business Rule can i do it.
    if yes please write how .
    with regs
    saleem

    Hi,
    like with coloring of cell according to value and so many.How to do that?
    Answer is, you can't
    Frank

  • Automating consolidation entries using business rules

    Hi all,
    May I know whether it is possible to automate the following standard consolidation entries in SAP BPC using Automatic Adjustments Business Rules tables:
    1. Attribution of profit after tax to Equity Holders and Minority Interest;
    2. Appropriation of changes in post-acquisition Reserves to Minority Interest; and
    3. Elimination of parent company's Investment in Subsidiaries against subsidiaries' pre-acquisition Share Capital and Reserves.
    The mechanics of these entries are:
    1. [Profit after Tax|https://forums.sdn.sap.com/] x POWN% -&gt; post to [Retained Earnings|https://forums.sdn.sap.com/] and [Profit after Tax|https://forums.sdn.sap.com/] x Minority Interest % -&gt; post to [Minority Interest|https://forums.sdn.sap.com/]
    2. [Post-acquisition changes in Reserves|https://forums.sdn.sap.com/] x Minority Interest % -&gt; post to [Minority Interest|https://forums.sdn.sap.com/]
    3. Parent company's [Investment in Subsidiaries|https://forums.sdn.sap.com/] -&gt; post to [Goodwill|https://forums.sdn.sap.com/], Subsidiaries' [Pre-acquisition Share Capital and Reserves|https://forums.sdn.sap.com/] x POWN% -&gt; post to [Goodwill|https://forums.sdn.sap.com/] and Subsidiaries' [Pre-acquisition Share Capital and Reserves|https://forums.sdn.sap.com/] x Minority Interest % -&gt; post to [Minority Interest|https://forums.sdn.sap.com/].
    The questions are:
    How do I specify the Minority Interest % in the Automatic Adjustments Business Rules Table.
    How do I specify that I am using Direct PCON% and Direct Minority Interest % for some entries and Indirect POWN% and Indirect Minority Interest % for some other entries?
    How do I post one entry to the same level in the ENTITY hierarchy in which the ENTITY resides for subsidiaries and post the same entry to the immediate next higher level for the Parent Company in that level?
    Thank you.
    Regards.

    Resolved.
    correcting the code below
    *RUN_PROGRAM VALIDATION
    //CATEGORY = %CATEGORY_SET%
    CURRENCY = %GROUPS_SET%
    TID_RA=%TIME_SET%
    OTHER=[ENTITY=%ENTITY_SET}
    *ENDRUN_PROGRAM
    to
    *RUN_PROGRAM VALIDATION
    //CATEGORY = %CATEGORY_SET%
    CURRENCY = %GROUPS_SET%
    TID_RA=%TIME_SET%
    OTHER=[ENTITY=%ENTITY_SET%]
    *ENDRUN_PROGRAM

  • Using Business Rules with ADF

    I would like to use oracle business rules to handle the business logic in an ADF based application; can anyone advise me where to do this? I am thinking as either a custom service method or in the same way as validation on a view-object. Ultimately i need to work with data from multiple tables so the enitity object level is not really appropriate.

    Hi
    Does anyone know the answer to this one?
    Here is another one: Where in a View Object (that represents a detail record made up of 3 EOs in a Master/detail configuration) during the creation of the View Object would you call out to a Rule so that the Rule could populate a data field in the View Object?
    Also, is there a document anywhere that explains how to get ADF and Oracle Business Rules to work together? There is a simplistic example available but I was hoping for more depth and documentation.
    Thanks!
    Ted

  • How to include the COUNT Function in business rule

    Hi all,
         I am working in oracle data quality in ODI.
         This is regarding the business rule in Data quality.
         I need to count the number of records when my status_type="A".
         But when i include the COUNT function in business rule.
         I find the following error as "*Unspecified Count Function*".
         Waiting for ur valuable reply.
         Thanks in advance,
         JayaPradha P

    Hi,
    The following is the condition I have to be used
    For eg:*Count records in DIM_SERVICE_ORDER_CODE where service_type = ‘P’*
    But when i use COUNT function.
    Im getting the error as "Unrecognised function count"
    waiting for ur valuable reply
    Thanks in advance,
    JayaPradha p

Maybe you are looking for

  • HT4847 How do I unlock my ipad. It Wants me to back up icloud but can't get rid of message to try

    My ipad is showing a message that advises icloud has not been backed up for 2 weeks and the ipad needs to be plugged in and charging to enable back up. However, I can't get rid of the message so that I can turn on wi-fi and start back up. This has ha

  • User could not login in Weblogic Server 8.1

    I have J2EE application running on Weblogic Server 8.1. When over 30 user concurrently logins into and use the system. My server was stucked. Here is the thread dump that I got. "Thread-1495" daemon prio=10 tid=048e09f0 nid=1693 lwp_id=7336247 runnab

  • Intercompany direct shipment to customer

    Hi, I am not an SD person (am learning FI) but have a question regarding intercompany sales/shipments. I understand IC sales are between two company codes but I want to be sure I am getting the concept. Company A (US) has sales org A which receives t

  • Company code dates period to accept the current postings

    Hello experts, What should be the company code dates period to accept the current postings? I am trying to post stock in the company code for the current period.I have changed the period date for company code to 01/2008.But Its not accepting the curr

  • Why is Podcast 606 Football Phone-In no longer available in Ireland

    Attempted to download Podcast 606 Football Phone In, it is a football phone in show from BBC Radio 5 in the UK. iTunes tells me it is no longer available in Ireland, just wondering does anyone out there know why?