Business Logic in ETL process of Oracle_BI_DW_Base.rep

Hi,
Are there any docs or web pages that convey business logic used in informatica mappings used for Order Management ?
Ex: SIL_SalesOrderLinesFact
Do we need to open every transformation in it and see the query or sql overrides to acquire business logic ? Or Oracle gives any standard docs on this ?
Thanks,

Short answer is no. There is no Oracle document that gives the "business logic" for all the ETL mappings. It would be wonderful if that existed. The best approach is to dig into the mappings and try to understand the flow. Using the DAC and Informatica, along with the DMR (data model reference), you can formulate the general strategy that Oracle uses. Some of the mappings/mapplets/transformations also have some comments. What you will see is that Oracle uses similar strategies across the stack. For instance, the method to do SCD Type 2 changes, or to do Aggregation..or to lookup to get the proper WIDs...its similar across all the OBIA apps.

Similar Messages

  • How can I use JTA in my business logic and execute process with PAPI?

    HI All,
    How can I use JTA in my business logic and execute process with PAPI?
    When my business logic has exception, the process will rollback.
    or the process has some exceptions, my business logic also will rollback.
    I don't know how to do it.
    Does anyone know how to do it?

    Thank you for your reply, Daniel.
    But I think I did not express my mind clearly.
    There is a scene that I have 2 Application Server.
    My business code is deployed in one Server.
    The BPM is deployed in another Server.
    I want to execute Task use PAPI.(ProcessServiceSession.runActivity)
    In my business code, I will do something before execute Task.
    I need my business logic and Task in same transaction.
    To ensure them "all-or-nothing" .
    As you say, if The transactions are managed by Oracle BPM.
    then can I retrieve OBPM transcaction in my business code?

  • BPEL Process with complex Business logic

    Hi,
    So far my knowledge,complex business logic can be implemented by different way in bpel process.
    1. Business rule
    2. ejb with java callout
    3.ADF BC as servcie
    Can anybody please suggest which approach do I need to follow,what are the pros and cons of each one,and best practices to use when and where?
    Thanx in advance.-Aswini

    Hi
    In addition to what Naresh already mentioned, you can consider these points also.
    1. If your process is complex, see if some part of the process can be common across and it can run by itself. Then you can use SubProcess concepts also. Say for example, if process involves credit card processing, it can be in a sub-process and you can call it in the main process. Like that any common approval flows can be put in a separate sub-process.
    2. I would discourage using Java invocations if possible as they have some limitations and you can use reasonable amout of code in invoking java code within the bpel process. If you have lots of validations to do on a bpel process, you can consider using CallBackHandlers and do the validation on a task assignment, submission or any task action in general.
    3. Business Rules can be used to control the actual flow of the process itself. Based on busiiness rule, you can decide if a set of tasks needs to be included or not in the approval flow. This is in addtion to the actual data that controls the business rules, that can be changed dynamically without the code change to core bpel process.
    Which version of SOA are you using or plan to use. I would recommend the latest version SOA 11.5 + Feature Pack applied.

  • Business logic process of SRM

    Hello,
    can some explain to me the business logic process of SRM.
    What happens sequencly. E.g. lets say I create a shopping cart what happens secondly etc ....
    Regards
    Marco

    Hello,
    Depending on the business requirement(classic, extended classic, stand aloneetc) a PO, PR etc can be created.
    Please refer the link
    http://help.sap.com/saphelp_srm70/helpdata/en/f3/6f505050404ce99151722a79a2c089/frameset.htm
    Regards

  • Bi Content in 7.0 - Did SAP Convert all content to use new ETL process?

    Hello.
    I am working with BI 7.0 for the first time.  I have 8 years of BW 3.x experience.  We are starting a new BI project and we are in the process of activating Business Content.  We have BI_CONT level 7 (the latest as of today I believe).  I appears that SAP has not converted over its Business Content to use the new ETL process (Transformations, DTP's, etc).  For example, I am looking at basic areas such as AP, AR, SD, MM, GL, etc and the BI content is still using the 3.x ETL (transfer rules, update rules). Is something not installed right on my system or has SAP not converted it's content to the new ETL yet?
    Thanks in advance for your help.

    Jose,
    Some new content is released using the new DTP.  Most content remains in its delivered 3.x format.  If you want to use DTPs for this content you have to manually create the DTPs after installing the 3.x objects.  If you right-click on an InfoCube, you will see some new options in the context menu, including "Create Transformation...," and "Create Data Transfer Process...."  Context menu for DataSouce now contains a "Migrate" option that will allow you to migrate to the new DTP from 3.x.  Also, other objects such as Transfer Rules and Update Rules contain context menu options for "Create Transformation."
    Hope this helps.

  • How To Set the Resultstate of Business Logic CO for Loop Decision Action

    Hi,
    I'm using a pre-conditional loop block in my GP process and using a Business Logic CO for the loop decision action. My expectation is the business logic CO should be executed at background and based on its resultstate the loop flow will happen. I've 2 resultstates in the loop decision (bus logic CO) - Continue and Break. I'm setting these two resultstates in the following way :
    Continue : BOOL(@currentLevel < @totalLevel)
    Break : !BOOL(@currentLevel < @totalLevel)
    currentLevel and totalLevel are the two input parameters (unsigned int type) of the business logic CO. If I test the CO it works fine and displays the correct resultstate. But at runtime the process gets paused at the loop decision action CO. I see the loop decision action link in my GP workcenter and UWL and on clicking of it nothing happens. If I refresh the screen still it's there as before.
    Anybody who can throw any light on this issue will be highly appreciated. And reward points guranteed for any help to solve the issue
    Thanks in advance,
    Dipankar

    Hi,
    Well I solved this issue myself ! After lot of research I found out that the resultstates should be in all small case <b>continue</b> and <b>break</b> and NOT Continue or Break.
    But now I've a different issue:
    I've an initial action under a sequential block. Then the pre-conditional loop block with a loop decision action and a loop body block(seq block).
    The expectation is initially the decision action should get the output param passed by the initial action and then in the iterations it will get the values passed by the output params of the loop body action. To achieve that I have mapped the output param of the initial action to the input param of the decision action and the input and output param of the loop body action. But it seems that the loop decision action though mapped to both the output of the initial action and the loop body action takes the value only from the initial action over the iterations and the values from the loop body action are not getting passed to the loop decision action. The context parameter value of the loop decision action remains static and it becomes an infinite loop.
    Any help to resolve this issue will be highly appreciated.
    Thanks,
    Dipankar

  • Bean containing both UI components and business logic

    Hello  ADF design experts,  please guide me.   I came across a critical design aspects.  I have main page having bunch of UI components,   Region 1,  Region 2. I will have to bind the UI components of the page to a managed bean having session scope and the reason is,  when control goes to region 1 or region 2, I will be doing lot of  processing of business logic  and then based on this,  I will have to update the UI components of the page.   Same thing with region 2 also.  And then,  I should be able to access the information    across regions and also across other UI components etc.
    I am seeing only  session scoped bean will be able to help me here to get my tasks done across regions and across all other UI components of the page because I am not in a position to pass too many parameters across regions.     Now the problem is,  I can not serialize this bean  because as I mentioned  lot of UI components are updated based on logic. 
    If I do not serialize the bean, I may have problem in future when application has to be deployed to cluster envt.
    I do not know how should I go with my design now.   Please provide me brilliant ideas and very thankful to your guidance.
    thanks

    Hi ADF,
    I dont want to disturb the discussion with you and Alej. I'm rising some question from your first post.
    I have main page having bunch of UI components, 
    ok fine.
    Region 1,  Region 2. I will have to bind the UI components of the page to a managed bean having session scope
    1.why need to do this binding for all ui components .?
    2.this question lead ask another question are you using ADFBc.? if so binding layer will take care why you bind all those things.
    3.why you need to put session scope.?
    if you are using region. the region can only be bounded TF right, then communicate with help of pageflow. inside the bounded you may have jsff/jspx,
    reason is,  when control goes to region 1 or region 2, I will be doing lot of  processing of business logic  and then based on this,  I will have to update the UI components of the page.   Same thing with region 2 also.
    from the reason i have question? why you need to communicate between two region instead of using Taskflow communication.
    And then,  I should be able to access the information  across regions and also across other UI components etc.
    ok fine.
    I am seeing only  session scoped bean will be able to help me here to get my tasks done across regions and across all other UI components of the page because I am not in a position to pass too many parameters across regions.     Now the problem is,  I can not serialize this bean  because as I mentioned  lot of UI components are updated based on logic. 
    from my point of view. your are using all powerful feature session bean, region communication to do your requirement.
    mixing all those things so only you can't able to get consistent results.
    I do not know how should I go with my design now.
    could you please explain your usecase.
    Please provide me brilliant ideas and very thankful to your guidance.
    yeah sure. people will do.
    thanks

  • Data/database availability between ETL process

    Hi
    I am not sure whether this is right forum to ask this question. But still I am requesting for help.
    We have a DSS database of size 1Tb. The batch process runs between 12:00 hours till 6:00 am. the presentation/reporting schema is of size 400 GB. Through the nightly batch job, most of the tables in the presentation layer get truncated/modified. Due to business nature and requirement, this presentation layer needs to be available 24*7. As the ETL process modify/changes database, hence the system is not available between 12:00 till 6 am.
    The business requirement is that: Before ETL process starts, take a backup of the presentation layer, transfer the application to this backed-up area and then let the ETL process proceed. Once the ETL process finished, move the application to this latest area.
    Based on the size of the database and schema size, does any one , how to take backup/restore the presentation layer in the same database in a efficient way.

    There are a couple of possibilities here. You certainly need two sets of tables, one for loading and the other for presentation. You could use synonyms to control which one is the active reporting set and which is the ETL set, and switch them over at a particular time. Another approach would be to use partition exchange to exchange data and index segments between the the two table sets.
    I would go for the former method myself.

  • Business Logic

    HELLO,
    I have gotten into a unique situation while builiding a business logic for below case. Here is how the process/contracts are set up. Fields: CLAIM_ID is unique and in order of the reciept of claim. M_ID is Member_ID. Reserve_Date
    is when Member reserved the Product. Rent_Cost is product rent cost listed in system. Sales Tax is 7% of Rent_Cost. ACC_Rent_Cost is accumulated (rent cost + sales tax), Also can be described as YTD Rent Cost by member by year order by reserve_date, claim_id).
    There are two threshholds in this process. 1. ACC_RENT_COST = $200 2. ACC_M_PAID = $400. The fields needed to be calculated are M_PAID, ACC_M_PAID. ( I believe both have to be calculated together claim by claim for this logic to pull
    correct numbers).
    The terms for M_PAID: Member pays(M_PAID) 75% of the (Rent Cost + Sales Tax) for Product_type: PV6, PV4, DZD. Member pays(M_PAID) 50% of the (Rent Cost + Sales Tax) for all products but PV6, PV4 & DZD. Although, when member's ACC_RENT_COST > 200 THEN
    Member pays(M_PAID) 100% of the (Rent Cost + Sales Tax) UNTIL when member's ACC_M_PAID reaches 400. When ACC_M_PAID reaches 400, on remaining amount and futures claims, member only pays(M_PAID) 10% of (rent cost + sales tax ) if (rent cost + sales tax ) > $10, else member pays (rent cost + sales tax ).
    CO_PAID will be simply (Rent_Cost + Sales_Tax - M_PAID ) per CLAIM.
    Here is walkthrough of M001 from below data:
    Total Claims = 6.
    CLAIM_ID = 1111: M_PAID = ( 25.06 + 1.75 ) * 50% = 13.41               ACC_M_PAID = 0
    CLAIM_ID = 1112: M_PAID = ( 12.06 + 0.84 ) * 50% = 6.45                 ACC_M_PAID = 13.41
    CLAIM_ID = 1113: M_PAID = ( 25.06 + 1.75 ) * 50% = 13.41               ACC_M_PAID = 19.86
    CLAIM_ID = 1114: M_PAID = ( 25.06 + 1.75 ) * 50% = 13.41               ACC_M_PAID = 33.26
    CLAIM_ID = 1115: M_PAID = ( (200(THRESHOLD) - 93.33(ACC_RENT_COST) ) * 75%) + ( ( 125.06 + 8.76 ) - (200(THRESHOLD) - 93.33(ACC_RENT_COST) ) * 100% ) = 107.15                 ACC_M_PAID = 46.67
    CLAIM_ID = 1116: M_PAID = ( ( 400(THRESHOLD) - 153.82(ACC_M_PAID )* 100% ) +  ( ( 525.06 + 36.75 ) - ( 400(THRESHOLD) - 153.82(ACC_M_PAID ) ) ) * 10% )                                  ACC_M_PAID = 153.82Again, it seems as if M_PAID, ACC_M_PAID are dependend on each other because the way M_PAID terms are set up which is what I am unable to build logic for. Anyways, Please let me know if I can provide any more detail. Below is sample
    data and required result.
    --DROP TABLE TMP_COST ;
    CREATE TABLE TMP_COST (
    CLAIM_ID    VARCHAR2(4),
    M_ID    VARCHAR2(4),
    RESERVE_DATE    DATE,
    RENT_COST    FLOAT,
    SALES_TAX   FLOAT,
    M_PAID  FLOAT,
    ACC_M_PAID  FLOAT,
    ACC_RENT_COST   FLOAT,
    CO_PAID FLOAT,
    PRODUCT_TYPE    VARCHAR2(3),
    MEMBER_TYPE     VARCHAR2(3) ) ;
    COMMIT ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1111', 'M001', '21-JAN-2011', 25.06, 1.75, 0, 0, 0, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1112', 'M001', '21-JAN-2011', 12.06, 0.84, 0, 0, 26.81, 0, 'DSD', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1113', 'M001', '23-JAN-2011', 25.06, 1.75, 0, 0, 39.71, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1114', 'M001', '24-JAN-2011', 25.06, 1.75, 0, 0, 66.52, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1115', 'M001', '21-MAR-2011', 125.06, 8.76, 0, 0, 93.33, 0, 'PV4', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1116', 'M001', '21-APR-2011', 525.06, 36.75, 0, 0, 227.15, 0, 'DZD', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1117', 'M002', '21-JAN-2011', 125.06, 8.76, 0, 0, 0, 0, 'PV4', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1118', 'M002', '21-FEB-2011', 1000.06, 70, 0, 0, 133.82, 0, 'PV6', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1119', 'M002', '21-MAR-2011', 25.06, 1.75, 0, 0, 1203.88, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1120', 'M002', '21-APR-2011', 25.06, 1.75, 0, 0, 1230.69, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1121', 'M003', '21-JAN-2011', 5.06, 0.35, 0, 0, 5.41, 0, 'PV1', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1122', 'M003', '21-JAN-2011', 25.06, 1.75, 0, 0, 5.41, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1123', 'M004', '21-JAN-2011', 25.06, 1.75, 0, 0, 0, 0, 'PV3', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1124', 'M005', '21-JAN-2011', 1000.06, 70, 0, 0, 0, 0, 'PV6', 'P' ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, PRODUCT_TYPE, MEMBER_TYPE ) VALUES ( '1125', 'M005', '21-APR-2011', 25.06, 1.75, 0, 0, 1070.06, 0, 'PV3', 'P' ) ;
    COMMIT ;Results
    CLAIM_ID     M_ID     RESERVE_DATE     RENT_COST     SALES_TAX     M_PAID     ACC_M_PAID     ACC_RENT_COST     CO_PAID     PRODUCT_TYPE     MEMBER_TYPE
    1111     M001     01/21/2011 00:00:00     25.06     1.75     13.41     0.00     0.00     13.41     PV3     P
    1112     M001     01/21/2011 00:00:00     12.06     0.84     6.45     13.41     26.81     6.45     DSD     P
    1113     M001     01/23/2011 00:00:00     25.06     1.75     13.41     19.86     39.71     13.41     PV3     P
    1114     M001     01/24/2011 00:00:00     25.06     1.75     13.41     33.26     66.52     13.41     PV3     P
    1115     M001     03/21/2011 00:00:00     125.06     8.76     107.15     46.67     93.33     26.67     PV4     P
    1116     M001     04/21/2011 00:00:00     525.06     36.75     277.75     153.82     227.15     284.06     DZD     P
    1117     M002     01/21/2011 00:00:00     125.06     8.76     100.37     0.00     0.00     33.46     PV4     P
    1118     M002     02/21/2011 00:00:00     1000.06     70     419.69     100.37     133.82     650.37     PV6     P
    1119     M002     03/21/2011 00:00:00     25.06     1.75     2.68     520.06     1203.88     24.13     PV3     P
    1120     M002     04/21/2011 00:00:00     25.06     1.75     2.68     522.74     1230.69     24.13     PV3     P
    1121     M003     01/21/2011 00:00:00     5.06     0.35     2.71     0.00     0.00     2.71     PV1     P
    1122     M003     01/21/2011 00:00:00     25.06     1.75     13.41     2.71     5.41     13.41     PV3     P
    1123     M004     01/21/2011 00:00:00     25.06     1.75     13.41     0.00     0.00     13.41     PV3     P
    1124     M005     01/21/2011 00:00:00     1000.06     70     597.01     0.00     0.00     473.05     PV6     P
    1125     M005     04/21/2011 00:00:00     25.06     1.75     2.68     597.01     1070.06     24.13     PV3     PI appreciate your time.
    Edited by: 788729 on May 14, 2011 5:18 PM

    Hi,
    First, I apoogize. I miscalculated few things and also didn't read full contract. There are few more terms that are included in the contract for the crossover claims(claims that fall in two phases) and few other scenarios/challenges.
    1. PHASE-1: ACC_RENT_COST = $0 to $2840 PHASE-2: ACC_M_PAID = After ACC_RENT_COST - $2840 but before ACC_M_PAID - $4550. PHASE-3: After ACC_M_PAID of $4550. The fields needed to be calculated are M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT.
    ( AGAIN, all these fields are depended on each other especially ACC_RENT_COST AND ACC_M_PAID to determine in what phase the member is in during each claim ). You are a genious. I believe you already know how to resolve that part. Everything should be sorted by CLM_RECIEVE_DATE to CALCULATE ACCUMULATED fields.
    The terms for M_PAID:
    1. Before Phase-1 threshold -- Member pays(M_PAID) MBR_CAP rate based on ITEM_ROW. MBR_CAP are given in below table. These CAP rates apply until ACC_RENT_COST reaches 2840. Please note that for ITEM_ROW 4, member pays
    33% of the (RENT_COST+SALES_TAX).
    2. After Phase-1 but before Phase-2: Member pays(M_PAID) following ways:
    1. If PRODUCT_CODE = P then M_PAID = 93% of the (RENT_COST + SALES_TAX). This is what goes into ACC_M_PAID.
    2. AA - If PRODUCT_CODE = V and LABEL_TYPE starts with 5 (so all 500 series) then M_PAID = ((RENT_COST+SALES_TAX)-(RENT_COST/2)). The remaining RENT_COST/2 goes to MBR_DSCNT. Although
    ENTIRE AMOUNT (M_PAID + MBR_DSCNT) goes into ACC_M_PAID.
    BB - If PRODUCT_CODE = V and LABEL_TYPE doesn't start with 5 then M_PAID = (RENT_COST+SALES_TAX). 0 goes to MBR_DSCNT. This also counts in ACC_M_PAID.
    3. In Phase -3 -- Member pays if PRODUCT_CODE = P then Greater of $2.5 or 5% of remaining or full amount
    if PRODUCT_CODE = V then Greater of $6.30 or 5% of remaining or full amount.
    CO_PAID will simply be ( RENT_COST + SALES_TAX - M_PAID - MBRDSCNT )
    For claims that crossover 2 or more phases, M_PAID will be lesser of 100% of RENT_COST+SALES_TAX. Below is an example for
    Here is walkthrough of M001 from below data:
    Total Claims = 20.
    CLAIM_ID = 1111: M_PAID = $20 (MBR_CAP for ITEM_ROW - 2) -- NO MBR_DSCNT even though LABEL_TYPE starts with 5.( bcz this is in phase 1)
    CLAIM_ID = 1112: M_PAID = ( 60 + ( ( 2840 - 2310.52(ACC_RENT_COST) ) * 93% ) = 130.8 ( there is an error here. 60 is not added in this example but, logic needs to be built as if 60 CAP + 93% on remaining )
    CLAIM_ID = 1113: M_PAID = ( 159 + 1.25 ) * 93% = 149.03
    CLAIM_ID = 1114: M_PAID = ((1.21 + 1.95) - (( 1.21 + 1.95 ) * 50% )) = 2.55 Remaining (1.21+1.95)*50% goes to MBR_DSCNT --Please note that entire M_PAID + MBR_DSCNT goes into ACC_M_PAID.
    CLAIM_ID = 1115: M_PAID = ((14.26 + 1.95 ) * 93% ) = 15.08
    skipping because of same logic
    CLAIM_ID = 1124: M_PAID = ((4550 - 4190.2(ACC_M_PAID))/2 + greater of $6.30 or 5% of ( (2306.2 + 1.25 ) - ((4550 - 4190.2(ACC_M_PAID)) which is 97.38 so total M_PAID = 277.28 Please note that both MBR_DSCNT & M_PAID
    were deducteed to get remaining balance * applied 5% on that.
    CLAIM_ID = 1127 : M_PAID = $2.5 or 5% of (RENT_COST + SALES_TAX). In this case, $2.5 is greater so M_PAID = $2.5
    Again, I really really appreciate your time and effort. I hope this is great challenege and learning experience for you. If you have any questions, please let me know. Sorry agaoin for incomplete info on previous post.
    DROP TABLE TMP_COST ;
    CREATE TABLE TMP_COST (
    CLAIM_ID    VARCHAR2(4),
    M_ID    VARCHAR2(4),
    CLM_RECEIVE_DATE    VARCHAR2(255),
    LABEL_TYPE  VARCHAR2(3),
    PRODUCT_CODE  VARCHAR2(1),
    ITEM_ROW    VARCHAR2(1),
    RESERVE_DATE    DATE,
    RENT_COST    FLOAT,
    SALES_TAX   FLOAT,
    M_PAID  FLOAT,
    ACC_M_PAID  FLOAT,
    ACC_RENT_COST   FLOAT,
    CO_PAID FLOAT,
    MBR_DSCNT   FLOAT,
    MBR_CAP FLOAT ) ;
    COMMIT ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1111', 'M001', '2011-01-05-16.31.47.000000', '551', 'V', '2', '04-JAN-2011', 2306.2, 1.25, 0, 0, 0, 0, 0, 20 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1112', 'M001', '2011-01-07-19.17.26.000000', '221', 'P', '3', '04-JAN-2011', 668.88, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1113', 'M001', '2011-01-07-19.18.05.000000', '223', 'P', '3', '04-JAN-2011', 159, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1114', 'M001', '2011-01-14-18.47.44.000000', '551', 'V', '1', '14-JAN-2011', 1.21, 1.95, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1115', 'M001', '2011-01-19-23.02.32.000000', '279', 'P', '1', '19-JAN-2011', 14.26, 1.95, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1116', 'M001', '2011-02-08-16.44.54.000000', '297', 'P', '3', '08-FEB-2011', 668.88, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1117', 'M001', '2011-02-08-16.45.25.000000', '288', 'P', '3', '08-FEB-2011', 159, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1118', 'M001', '2011-02-08-16.46.24.000000', '287', 'P', '1', '08-FEB-2011', 5.44, 1.25, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1119', 'M001', '2011-02-08-16.47.54.000000', '553', 'V', '2', '08-FEB-2011', 2306.2, 1.25, 0, 0, 0, 0, 0, 20 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1120', 'M001', '2011-02-15-14.25.54.000000', '501', 'V', '1', '15-FEB-2011', 2.42, 1.95, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1121', 'M001', '2011-03-02-16.46.15.000000', '289', 'P', '3', '02-MAR-2011', 668.88, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1122', 'M001', '2011-03-02-16.48.52.000000', '268', 'P', '3', '02-MAR-2011', 159, 1.25, 0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1123', 'M001', '2011-03-02-16.50.46.000000', '267', 'P', '1', '02-MAR-2011', 5.44, 1.25, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1124', 'M001', '2011-03-02-16.52.11.000000', '564', 'V', '2', '02-MAR-2011', 2306.2, 1.25, 0, 0, 0, 0, 0, 20 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1125', 'M001', '2011-03-08-05.20.54.000000', '227', 'P', '1', '08-MAR-2011', 14.26, 1.95, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1126', 'M001', '2011-03-23-18.00.36.000000', '551', 'V', '2', '23-MAR-2011', 2306.2, 1.25, 0, 0, 0, 0, 0, 20 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1127', 'M001', '2011-03-23-18.18.17.000000', '254', 'P', '1', '23-MAR-2011', 5.44, 1.25, 0, 0, 0, 0, 0, 0 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1128', 'M001', '2011-03-23-18.21.32.000000', '241', 'P', '3', '23-MAR-2011', 668.88, 1.25,  0, 0, 0, 0, 0, 60 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1129', 'M001', '2011-03-23-18.23.38.000000', '246', 'P', '4', '23-MAR-2011', 159, 1.25, 0, 0, 0, 0, 0, 0.33 ) ;
    INSERT INTO TMP_COST ( CLAIM_ID, M_ID, CLM_RECEIVE_DATE, LABEL_TYPE, PRODUCT_CODE, ITEM_ROW, RESERVE_DATE, RENT_COST, SALES_TAX, M_PAID, ACC_M_PAID, ACC_RENT_COST, CO_PAID, MBR_DSCNT, MBR_CAP ) VALUES ( '1130', 'M001', '2011-03-28-16.05.06.000000', '599', 'V', '4', '25-MAR-2011', 155.38, 1.95, 0, 0, 0, 0, 0, 0.33 ) ;
    COMMIT ;Results:
    CLAIM_ID     M_ID     CLM_RECEIVE_DATE     LABEL_TYPE     PRODUCT_CODE     ITEM_ROW     RESERVE_DATE     RENT_COST     SALES_TAX     M_PAID     ACC_M_PAID     ACC_RENT_COST     CO_PAID     MBR_DSCNT
    1111     M001     2011-01-05-16.31.47.000000     551     V     2     01/04/2011 00:00:00     2306.2     1.25     20     0     0     2287.45     0
    1112     M001     2011-01-07-19.17.26.000000     221     P     3     01/04/2011 00:00:00     668.88     1.25     130.8     20     2310.52     539.33     0
    1113     M001     2011-01-07-19.18.05.000000     223     P     3     01/04/2011 00:00:00     159     1.25     149.03     150.8     2980.65     11.22     0
    1114     M001     2011-01-14-18.47.44.000000     551     V     1     01/14/2011 00:00:00     1.21     1.95     2.55     299.83     3140.9     0     0.61
    1115     M001     2011-01-19-23.02.32.000000     279     P     1     01/19/2011 00:00:00     14.26     1.95     15.08     306.36     3147.68     1.13     0
    1116     M001     2011-02-08-16.44.54.000000     297     P     3     02/08/2011 00:00:00     668.88     1.25     623.22     321.44     3163.89     46.91     0
    1117     M001     2011-02-08-16.45.25.000000     288     P     3     02/08/2011 00:00:00     159     1.25     149.03     944.66     3834.02     11.22     0
    1118     M001     2011-02-08-16.46.24.000000     287     P     1     02/08/2011 00:00:00     5.44     1.25     6.22     1093.69     3994.27     0.47     0
    1119     M001     2011-02-08-16.47.54.000000     553     V     2     02/08/2011 00:00:00     2306.2     1.25     1154.35     1099.91     4000.96     0     1153.1
    1120     M001     2011-02-15-14.25.54.000000     501     V     1     02/15/2011 00:00:00     2.42     1.95     3.16     3407.36     6308.41     0     1.21
    1121     M001     2011-03-02-16.46.15.000000     289     P     3     03/02/2011 00:00:00     668.88     1.25     623.22     3411.73     6312.78     46.91     0
    1122     M001     2011-03-02-16.48.52.000000     268     P     3     03/02/2011 00:00:00     159     1.25     149.03     4034.95     6982.91     11.22     0
    1123     M001     2011-03-02-16.50.46.000000     267     P     1     03/02/2011 00:00:00     5.44     1.25     6.22     4183.98     7143.16     0.47     0
    1124     M001     2011-03-02-16.52.11.000000     564     V     2     03/02/2011 00:00:00     2306.2     1.25     277.28     4190.2     7149.85     1850.27     179.9
    1125     M001     2011-03-08-05.20.54.000000     227     P     1     03/08/2011 00:00:00     14.26     1.95     2.5     4550     9457.3     13.71     0
    1126     M001     2011-03-23-18.00.36.000000     551     V     2     03/23/2011 00:00:00     2306.2     1.25     115.37     4550     9473.51     2192.08     0
    1127     M001     2011-03-23-18.18.17.000000     254     P     1     03/23/2011 00:00:00     5.44     1.25     2.5     4550     11780.96     4.19     0
    1128     M001     2011-03-23-18.21.32.000000     241     P     3     03/23/2011 00:00:00     668.88     1.25     33.51     4550     11787.65     636.62     0
    1129     M001     2011-03-23-18.23.38.000000     246     P     3     03/23/2011 00:00:00     159     1.25     8.01     4550     12457.78     152.24     0
    1130     M001     2011-03-28-16.05.06.000000     599     V     3     03/25/2011 00:00:00     155.38     1.95     7.87     4550     12618.03     149.46     0Edited by: 788729 on May 14, 2011 5:20 PM

  • Business logic in EO, VO - design advice required

    Hi all,
    I'm looking for some design advice on the best way to approach this issue - or in fact advice that I'm making an issue out of something where it doens't need to be !
    Lets say I have a single entity object called UsersEO. I have two view objects called NewUserVO and ExistingUserVO. I use the NewUserVO just for inserting new records and the ExistingUserVO for modifying existing records. When users are editing existing users, I need to provide a checkbox that indicates that when the record is saved, their password needs to be re-generated and emailed out to the user.
    I want to include the check of the "GeneratePassword" attribute while processing the rest of my user business logic, in the doDML method of UsersEOImpl. From here I will call a database procedure that handles changing the password and emailing the user.
    Initially I created a transient attribute "GeneratePassword" in ExistingUserVO but then to access this from within the UsersEOImpl.doDML would require me getting the AM from the transaction, and getting the current row of the ExistingUserVO. I believe that this is bad practice to access a VO from within a EO ?
    Is my only option here to create the transient attribute "GeneratePassword" on the UsersEO and then include in the ExistingUserVO but not the NewUserVO ? That way I can easily access the "GeneratePassword" attribute from with the doDML without have to accessing the VO.
    If I have 10 different VO's that require different attributes, it just seems strange to add 10 attributes to the underlying EO and then only include the relevant entity attribute in each VO - or is this exactly what I should be doing ?
    On a slightly different note, but similar theme - if I had a "VOTransaction" attribute in my EO and I included this in each VO created from the EO - how would I set different values in this attribute for each VO so that within the EOImpl I would know which VO was triggering the entity validation ??
    Many thanks for your help !
    Cheers,
    Brent

    >
    If I have 10 different VO's that require different attributes, it just seems strange to add 10 attributes to the underlying EO and then only include the relevant entity attribute in each VO - or is this exactly what I should be doing ?
    How about creating a BaseVO which extends EO (including transient attributes for password change and voName/Type detail ) that provide a default value for voName/Type attribute and all other VO extending the BaseVO and overriding that attribute setter to specify the name/type?

  • Where to implement my Business Logic in ADF?

    Hi,
    I am new to Oracle ADF. I found this forum very useful to get my queries and doubts answered. Thanks to the participants.
    I am basically from Struts background,
    Where i design my UI in jsp pages using Struts tags,
    Actions and some utility classes handles my most of the business logic (generally called as Business Layer)
    Then i have custom DAOs or Data Layer to query or update the data in database.
    Now as I am into new Project and I have to learn Oracle ADF.
    I started learning this by following some questions in the forums and various sites (from Google).
    I got info on How to create Entity Objects, Value objects etc.
    But my major doubt is where shall i write my Business Logic in this stack?
    I can easily drag and drop my data controls into my JSF page and create table, forms or charts. But if i have a multi line business logic, say for a Submit button, In which i may be doing the following steps -
    a.  Get data pertaining to user role , department, his tenure in the department etc
    b. On submit do processing based on data collected in above step.
    c. update data in data base.
    d. initiate an approval process
    e. call some business process for Approval
    f. Audit Trail
    g. Transaction handling
    and so many other steps (I know most of you will have gone through these situation before starting work on ADF)
    Now, in the above scenario in Oracle ADF layers where shall i write this whole bunch of logic or steps and then forward the user the page depending upon the outcome of this logic.
    Please let me know where to write all this??
    Thanks a lot,
    Amit
    Edited by: ur.amit on May 13, 2010 4:58 PM

    Generally speaking all of that code would reside in the app module Impl classes or the View object Impl classes - for VOs and AMs you can expose subclasses and add code in there - you can then define whether any of your methods should be exposed to the client, in which case they appear in the Data Controls panel as operations.
    General word of advice -keep business logic code in the Model - don't be tempted to start trying to access your AMs and do any of this stuff from the ViewController project. Keep it nice and simple and just access ALL the business logic code through ADF Model.
    Hope this helps
    Grant

  • Problem in Business Logic Callable Object execution

    Hi All,
    We are working on a workflow scenario where 2 approvals are present. Second approval is optional.
    Second approval is required or not is decided by a business logic callable object.
    This callable object is assigned (user role0 to initiator.
    Issue is, when first approval is completed, flow goes to business logic callable object. A UWL entry comes in initiators inbox. And from there, flow doesn't move forward. It simply shows message 'The next activity is not yet available: try again later using the "Refresh" button".
    I have tested this business logic callable object individually, and it works fine.
    But in process, it doesn't move further.
    What can be the solution to this?
    Thanks,
    Deepti

    Hi,
    I have the similar issue.
    In my case it is taking too much time for completion.
    It is a background step so it should execute automatically.
    I have also checked Queue's for this.
    But could not understand why it is taking soo much time?
    Regards,
    Pratik

  • Business logic in Database layer or in Middle layer.

    I am converting my form 6i client server application to .net 3 tier web architecture application using oracle 10g database.
    My application is a very data centric, millions of records calculations happen in many processes.
    I have a problem while presenting my design approach to engineering board in my company.
    Approach 1
    Put business logic in backend database layer.
    I proposed to put business logic in backend packages rather than putting it in middle .net layer and create web shell services in middle layer which would call these packages and show the data on screens.
    Approach 2
    Put business logic in middle tier .net layer.
    My company engineering board are more keen for this approach because they think this is the latest approach and now days nobody put business logic in database and moreover we would be having clear separation between data and logic.
    But my concern is we may have network latency issues in approach 2 because we need to move millions of records data back and forth between database and application server.
    Could you please suggest, which approach is best and why?

    My views:
    1. If it is a data centric operation, like you have mentioned, it will be a bottleneck to transfer the required data to middle tier for processing
    2. If you are going to support one and only one RDBMS as a backend ever, I don't see a reason to take an approach which is mostly taken in case one needs to support databases from different vendors as back end.
    3. If you are convinced that yours is the only application that would ever connect to this database, then you can add the business logic in the middle tier; If not, let it be in the database in form of triggers/procedures/functions/packages etc.
    4. Last but not the least, having business logic in the database would call for faster processing and that you can use all features of that particular RDBMS to full extent, in case needed.
    I always support having the business logic in the database layer (not that I hate business logic in application/middle tier) but there can be exceptions.
    Just my two cents :-)

  • 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

  • Workflow execution in Oracle_BI_DW_Base.rep

    Hi,
    I had installed OBI apps. Gone through repository configuration i.e. deleting the contents of repositroy, then restoring, pointing to Oracle_BI_DW_Base.rep. So far so good. Now, there are morethan hundreads of workflows in every folder like SILOS, SDE_ORA etc. So how to understand the flow of execution. i.e if I want to execute workflows in Informatica manually (*Without DAC*) to fill all Data warehouse tables. I am very new to this. Even I don't know whether my thought process is correct or not. Looking forward for your ideas.
    Thanks

    If you want, you can look at the ORDERED TASKS in the DAC execution plan that you are running..this will give you the flow of the execution and the order. You can run these manually but I would advise against it because you will need to recreate the parameter files which are usually created by the DAC, and you also will not be able to replicate the other things that are done in DAC such as dropping/recreating indexes and analyzing tables.
    If this helps, please mark as correct or helpful.

Maybe you are looking for

  • Convert quantity field to char field

    Hi folks , i have a requirement where i need to convert quantity field value to char field value so as to send in idoc. plz help me .its urgent regards, chandra

  • Message no. QE214,No characteristics were found

    Hi, I did RR for a lot with inspection type 01. i valuated and closed all MIC.after saving the result recording again i i want to see the result in QA32 tab(change-display,Shift+F1),i am not able to see any results what i recorded. getting Msg- No ch

  • RE :dbms_job

    hi ALL previously I use to run a pl/sql procedure via declare vJobNumber binary_integer ; begin dbms_job.submit( job => vJobNumber ,what => 'begin myschema.my_job; end;'); dbms_output.put_line('Job number assigned: ' || to_char(vJobNumber)); end; I u

  • List of Errors  while Activating the 0Material

    Characteristic 0CM_CTAR: Unit 0UNIT_DIM no allowed in compounding Characteristic 0CM_SHAR: Unit 0AREA_UNIT no allowed in compounding Attribute 0CM_CTAR from characteristic 0CM_CDT1 not (actively) available Attribute 0CM_SHAR from characteristic 0CM_C

  • [SOLVED] Trouble with running systemd user service on login

    I'm trying to get emacs to run as a systemd/user service so that it will start up faster, as suggested in the wiki article, but I'm having some problems. I can't get the service to run as soon as I log in. I can run the service with systemctl --user