Pages

OracleEBSpro is purely for knowledge sharing and learning purpose, with the main focus on Oracle E-Business Suite Product and other related Oracle Technologies.

I'm NOT responsible for any damages in whatever form caused by the usage of the content of this blog.

I share my Oracle knowledge through this blog. All my posts in this blog are based on my experience, reading oracle websites, books, forums and other blogs. I invite people to read and suggest ways to improve this blog.


Wednesday, May 16, 2018

Balance Forward Billing(Consolidated Billing) in R12

Balance Forward Billing is just a new name of "Consolidation Invoice billing" in Release 12, which provides enhanced billing options with a more complete and flexible solution.
dgreybarrow-2Oracle R12 Vanilla Features of Balance Forward Billing
If you compare with R11i Consolidated Billing Invoice, there are some enhanced feature you can see.
  • A balance forward bill includes all of a customer's transactions for the billing period and any balance carried forward from the previous billing period.
  • A balance forward bill can have a daily, weekly, or monthly billing period depending on the balance forward billing cycle assigned to the payment term.
Additional feature you can get like
  • You can also bill on specific days of the month. This way user can not only specify the day of the month for the billing date, or even multiple days like “every 15th and last day of month”. User can also elect to bill on a specific day of the week, such as every Friday.
  • You can also choose to exclude weekends, in this case if user skip weekends when determining billing dates, so billing dates only fall on workdays
  • A balance forward bill is consolidated at either the customer account or site level depending on the Bill Level value at the customer profile and account profile levels. You can change the Bill Level defaulted from the customer profile class at the account profile level. The Bill Level at the site profile level is a read-only field defaulted from the account profile level.
  • A balance forward bill can be either detail or summary. Both the detail and summary formats present invoice totals. The detail format lists all line items.
  • You can generate a balance forward bill in either Draft or Final formats similar to R11i.
  • Bill Presentment Architecture (BPA) configured formats provide a more appealing layout that can be easily modified and this can be viewed the completed bill online
  • In 11i, there are five consolidated bill programs. The new feature consolidates these programs into three.
dgreybarrow-2R12 : The key setup steps
The key setup steps are:
1-6Define a Billing CycleSetup step for Balance Foward Billing
This is first step for your setup. You need to navigate:
Setup:Print > Balance Forward Billing Cycles
Couple of things your quick note:
tick Case 1 :If you are doing for daily, you can pick the number of days before the next bill. There is options where you can choose whether to include weekends in the number of days.
tickcase 2 :If you doing for Weekly, you can pick the number of weeks before the next bill. Also, choose the day of the week the bill will be created. For example, you can choose bi-weekly billing that occurs every other Friday.
tickCase 3: If you are doing setup for monthly cycle, choose the number of months before the next bill.
By choosing Type of Day, you can elect to create the bills only on the workdays Monday through Friday. When you chose “Exclude Saturdays and Sundays”, if the billing date falls on a Saturday or Sunday, the billing date automatically changes to the date of the following Monday.
There is no way that this will exclude public Holiday's.
BFB-Billing Cycle
2-6Define or update the Payment term and assign it the Billing Cycle
Your should do setup from this navigation
Setup : Transactions > Payment Terms
  • Proxima billing/Payment terms created as in 11i is no more exist. Billing Cycle is tagged with payment term.
  • in R12, billing Cycle is a new attribute of the Payment term and must be tagged to payment term to process balance forward billing.
  • Payment term setup screen does not have any cutoff Date information in R12 as had in 11i, this is part billing cycle setup.
  • The payment schedule dates:
    • Due Date is calculated based on the cycle and billing date therefore, the Due Date is not enterable for Balance Forward Bills
    • The Due Days field can indicate how many days after the billing date the bill is due for daily and weekly cycles
    • Day of Month and Months ahead can be used with the Monthly billing cycle. It is recommended that these only be used when a single bill day is used otherwise the due date will be the same for all the bills created during the calendar month.
BFB - Payment Term
tick A note on Cutoff date
Cut-off Date in Payment Terms in 11i is primarily provided for consolidated billing. It is essentially used to consolidate transactions based on cut-off date. It is not expected to be used when consolidated billing feature is not used. In R12 consolidated billing feature is replaced by Balance Forward Billing and cut-off date on payment term setup is replaced with Billing Cycle.
3-5Next ..Enable Balance Forward Billing for customers wishing consolidated bills at either the site or account level.
Follow this step: Create a Customer Profile and attach the information as created in step 1 and step 2
Customers > Profile Classes
BFB-4
BFB-5
This way you can create the step up. Next is to create Transaction which is discussed in next section.
BFB6
Here , you can see there is only 3 program as compare to 5 underline program as in R11i.
BFB7
You can run these processes and see the report output and verify the details agaist the booked transaction.
dgreybarrow-2Oracle R12 Balance Forward Billing Vanilla Functionality
The process is then executed as follows:
  • You can enter transactions or import them using auto invoice or Transaction API
  • Once Transaction get booked , run the Generate Balance Forward Bill Program to create the bills as either draft or final, or set it up to run automatically.
  • The generate program will kick off the print program in BPA to create either draft or final bills.

References:
http://www.oracleappshub.com/release12/r12/balance-forward-billing-in-r12/

Oracle Apps R12 SLA setup with example

SLA Setup in R12 with a simple example for Payables


Subledger Accounting: 
SLA is a new concept in R12, where all the accounting information and rules are defined. Accounting entries generated in Subledgers are first transferred to SLA and then interfaced to GL. Hence reconciliation is already done in SLA before transferring to GL.

One big advantage in SLA is to configure rules to derive different accounting entries. Each and every segment for different accounting events could be configured to suit different business requirements which was not possible in 11i.

Liability account in payables would be defaulted from supplier site on to the invoices in 11i. If individual segments need to be different for different business, then custom programs were required. In SLA, we can set different rules to derive different segments for the liability account.
We shall see how we can derive the liability account based on one business requirement(to derive cost center based on invoice currency). We will be using the below functionalities to achieve the purpose.

Journal Line Type
Mapping Sets
Account Derivation Rules
Journal Lines Definition
Application Accounting Definition
Subledger Accounting Method

Then assigning the Subledger Accounting Method to the Ledger.
In our example we shall make use of the copy functionality provided by Oracle where ever available to derive our own custom types.

For complete definition of SLA and its components please refer to Oracle SLA Implementation guide.
The chart of accounts considered in the below example has 5 segments. Company, Cost Center, Account, Analysis, Others. Also automatic offset is enabled and set as 'Balancing' for the Operating Unit considered

Journal Line Type:
Subledger Accounting Setup --> Accounting Methods Builder --> Journal Entry Setup --> Journal Line Types
Journal types are defined for a particular event class(like invoices, credit memos..) and assigned to journal line definition along with mapping sets, account derivation rules.
We shall use the Oracle seeded Journal Line Type ‘Liability with Automatic Offsets Balancing Segment’ to make our custom line type.
Open the Journal Line Types window and query for ‘Liability with Automatic Offsets Balancing Segment’. 


Click on copy, give our custom name.
‘XX Liab with Automatic Offsets Balancing Segment’ 

Click on Conditions, it would be same as the seeded Oracle Journal Line Type 

The conditions are specified to create a Journal Entry based on this Journal Line Type when certain conditions are met.
The conditions in the above screenshot mentions the Journal Line Type to be created when Automatic Offset is set to ‘Balancing’ and for different invoice types.

Our requirement is to derive the cost center based on the invoice currency code. We shall see how we can achieve this using Mapping Sets and Account Derivation Rules. 

Mapping Sets:
Subledger Accounting Setup --> Accounting Methods Builder --> Journal Entry Setup --> Mapping Sets
Mapping sets are used to get an output value for a particular segment or entire accounting flexfield based on input value. 
Open mapping sets, click on New. Create new mapping set ‘XX Liability CC Map’. 

In the input region, we have specified AP_SRS_CURRENCY valueset which will restrict the input value to valid currencies. In the output section we have selected the Chart of accounts and selected the segment as ‘Cost Center’.
In the mapping set values we have selected input value as ‘EUR’ and the output cost center. 

Account Derivation Rules:
Subledger Accounting Setup --> Accounting Methods Builder --> Journal Entry Setup --> Account Derivation Rules
Account derivation rules are used along with Mapping sets to derive the accounting flexfield or individual segments.
Open ‘Account Derivation Rules’, click on ‘New’. Create Account derivation rule ‘XX LIABILITY CC ADR’ 


Select the Output Type as Segment and select ‘Cost Center’ segment. In priorities region, give the value type as ‘Mapping Set’ and value as ‘XX Liability CC Map’ which was created earlier. Select the input source as ‘Invoice Currency Code’

Journal Line Definition:
Subledger Accounting Setup --> Accounting Methods Builder --> Methods and Definition --> Journal Lines Definition
Journal line definition is used to assign journal line types for an event class or event type. This is where the Account Derivation rule is assigned to a journal line type.
Instead of creating an entirely new Journal Line Definitions, we shall make use of the copy definition functionality provided by Oracle. 
Open the ‘Journal Lines Definition’. Query for event class ‘Invoices’, event type ‘All’ and definition code ‘ACCRUAL_INVOICES_ALL’.


Click on ‘Copy Definition’, give the definition code as ‘XX_ACCRUAL_INVOICES_ALL’, name as ‘XX Accrual Invoices All’. Select transaction and accounting chart of accounts as ‘Accounting Flexfield‘. Click on Done

In the ‘Line Assignments’ region disable ‘Liability with Automatic Offsets Balancing Segment‘ line type. Add the Journal Line Type Created – ‘XX Liab with Automatic Offsets Balancing Segment’.
In the Account Derivation Rules tab, select ‘All Segments’ and assign the standard Account Derivation Rule ‘Liability’. Select ‘Company’ segment and choose ‘Inherit’. Assign the Account Derivation rule created ‘XX Liability CC ADR’ to the segment ‘Cost Center’. 


Application Accounting Definitions:
Subledger Accounting Setup --> Accounting Methods Builder --> Methods and Definition --> Application Accounting Definitions
Application accounting definition is used for assigning Journal Line Definitions to event classes and types.
We shall use copy functionality provided by Oracle to copy the Application Accounting Definition and make modifications.
Open ‘Application Accounting Definition’ and query for definition code ‘ACCRUAL’. 


Click on Copy. Give the definition code ‘XX ACCRUAL’ and definition name as ‘XX Accrual Basis’. Select the transaction and accounting chart of accounts as ‘Accounting Flexfield’. Click on done. For the event class ‘Invoices’, delete the default journal line definition assigned and assign the Line Definition created earlier ‘XX Accrual Invoices All’. 

Click on validate and make sure it is validated. 

Subledger Accounting Method:
Subledger Accounting Setup --> Accounting Methods Builder --> Methods and Definition --> Subledger Accounting Methods
Application Accounting Definitions defined are assigned to different applications in Subledger Accounting Method. Subledger Accounting Method is then assigned to the ledger.
Open the Subledger Accounting Method. Click on New. Give the method code as ‘XX_STANDARD_ACCRUAL’ and method name as XX Standard Accrual. Select the transaction and accounting chart of accounts as ‘Accounting Flexfield’. In the Application Accounting Definition Assignment region assign ‘XX Accrual Basis’ for Payables.


The Subledger accounting method is attached to the ledger.

Create an invoice with currency code as ‘EUR’, validate and account the invoice. Check for the accounting entries created. The liability account would be having the cost center segment as ‘000000000EUR’.

For Supporting References please refer the below link.
Oracle R12 SLA Supporting References

For SLA accounting tables refer below link
Oracle SLA accounting tables

For Intercompany Setup refer the below link.
Oracle Apps R12 Intercompany Setup 

I request you to provide your valuable comments.

References:
http://udayask.blogspot.com/2014/01/oracle-apps-r12-sla-setup-with-example.html

Monday, March 20, 2017

Form Functions attached to a Responsibility

Using the below Query we can get all the form functions that are attached to a Responsibility including Sub Menus and Excluding Menu Exclusions.

SELECT frtl.responsibility_name,
       fr.responsibility_key,
       fm.menu_id,
       fm.menu_name,
       menu.function_id,
       menu.prompt,
       fffv.user_function_name,
       fffv.function_name,
       fffv.TYPE
  FROM (SELECT connect_by_root fmet.menu_id top_menu_id,
               fmet.menu_id                 menu_id,
               fmet.sub_menu_id,
               fmet.function_id,
               fmet.prompt
          FROM fnd_menu_entries_vl fmet
        CONNECT BY PRIOR fmet.sub_menu_id = fmet.menu_id
                         AND PRIOR fmet.prompt IS NOT NULL) menu,
       fnd_responsibility fr,
       fnd_responsibility_tl frtl,
       fnd_menus fm,
       fnd_form_functions_vl fffv
WHERE fr.menu_id = menu.top_menu_id
   AND fffv.function_id = menu.function_id
   AND fffv.TYPE <> 'SUBFUNCTION'
   AND menu.function_id IS NOT NULL
   AND menu.prompt IS NOT NULL
   AND fm.menu_id = menu.menu_id
   AND frtl.responsibility_id = fr.responsibility_id
   AND frtl.responsibility_name LIKE 'System Administrator'
   AND menu.function_id NOT IN (SELECT ffvl.function_id
                                  FROM apps.fnd_resp_functions frf,
                                       applsys.fnd_responsibility_tl frt,
                                       apps.fnd_form_functions_vl ffvl
                                 WHERE
       frf.responsibility_id = frt.responsibility_id
                                   AND frf.action_id = ffvl.function_id
                                   AND frf.rule_type = 'F'
                                   AND
           frt.responsibility_name = frtl.responsibility_name)
   AND menu.menu_id NOT IN (SELECT fmv.menu_id
                              FROM apps.fnd_resp_functions frf,
                                   applsys.fnd_responsibility_tl frt,
                                   apps.fnd_menus_vl fmv
                             WHERE
       frf.responsibility_id = frt.responsibility_id
                               AND frf.action_id = fmv.menu_id
                               AND frf.rule_type = 'M'
                               AND
       frt.responsibility_name = frtl.responsibility_name)
ORDER BY fffv.user_function_name;

References:
http://alloracleapps.com/scripts/anonmys_scripts/aol/form-functions-attached-to-a-responsibility/