Featured post

Functionality of Segment Value Inheritance ESS Process

  The Segment Value Inheritance process simplifies the maintenance of the chart of accounts. When the characteristics of values in the value...

Tuesday 14 February 2017

FA Update query attribute 1 from mass addition

SELECT a.asset_number, 
b.life_in_months LIFE_IN_BOOKS, 
m.asset_number, 
m.attribute1 LIFE_IN_MASS_ADD
FROM fa_additions a, 
fa_books b, 
fa_mass_additions m
WHERE a.asset_id = b.asset_id
AND a.asset_number = m.asset_number
AND b.book_type_code LIKE 'BOOK NAME' --- pass the book
AND m.attribute1 IS NOT NULL

once you get , you need to take count
SELECT COUNT(*)
FROM fa_additions a, 
fa_books b, 
fa_mass_additions m
WHERE a.asset_id = b.asset_id
AND a.asset_number = m.asset_number
AND b.book_type_code LIKE 'BOOK NAME' --- pass the book
AND m.attribute1 IS NOT NULL

and finally here is your scripts for Update
UPDATE fa_books b
SET life_in_months = (
SELECT m.attribute1
FROM fa_mass_additions m, fa_additions a
WHERE a.asset_id = b.asset_id
AND a.asset_number = m.asset_number
AND m.book_type_code LIKE 'BOOK NAME' --- pass the book
AND m.attribute1 IS NOT NULL)
WHERE b.book_type_code LIKE 'BOOK NAME' --- pass the book

Sunday 12 February 2017

Make a DFF Non Editable

How to make a DFF field Non Editable:
  • Go to the DFF Definition screen for the particular context value
  • Select the Particular DFF Attribute
  • Open the Valueset attached to it
  • In the value set “Edit information”, provide the following values in “Event Edit” & “Event Validate”
  • FND SQL “BEGIN NULL; END;”

      Check the screen shots for more information:

How To Create Value Sets Where One Segment Is Dependent On The Previous Segment Selection

 
 
 
 
 
 
1 Votes

How to create value sets so that one segment is dependent on the previous segment selection?
Example of $FLEX$ Syntax Here is an example of  using :$FLEX$.Value_Set_Name to set up value sets where one 
segment depends on a prior segment that itself depends on a prior segment ("cascading dependencies"). Assume you have a three-segment flexfield where the first segment is car manufacturer, the second segment is car model, and the third segment is car color. You could limit your third segment’s values to only include car colors that are available for the car specified in the first two segments. Your three value sets might be defined as follows:
Segment Name Manufacturer 
Value Set Name Car_Maker_Name_Value_Set 
Validation Table CAR_MAKERS 
Value Column MANUFACTURER_NAME 
Description Column MANUFACTURER_DESCRIPTION 
Hidden ID Column MANUFACTURER_ID 
SQL Where Clause (none)
Segment Name Model 
Value Set Name Car_Model_Name_Value_Set 
Validation Table CAR_MODELS 
Value Column MODEL_NAME 
Description Column MODEL_DESCRIPTION 
Hidden ID Column MODEL_ID 
SQL Where Clause WHERE MANUFACTURER_ID = 
:$FLEX$.Car_Maker_Name_Value_Set
Segment Name Color 
Value Set Name Car_Color_Name_Value_Set 
Validation Table CAR_COLORS 
Value Column COLOR_NAME 
Description Column COLOR_DESCRIPTION 
Hidden ID Column COLOR_ID 
SQL Where Clause WHERE MANUFACTURER_ID = 
:$FLEX$.Car_Maker_Name_Value_Set AND 
MODEL_ID = :$FLEX$.Car_Model_Name_Value_Set
In this example, MANUFACTURER_ID is the hidden ID column and 
MANUFACTURER_NAME is the value column of the Car_Maker_Name_Value_Set value set. The Model segment uses the hidden ID column of the previous value set, Car_Maker_Name_Value_Set, to compare against its WHERE clause. The end user never sees the hidden ID value for this example.

Saturday 11 February 2017

R12 Post Mass Additions (FAMAPT): Fails With Incorrect Asset Type and Category Combination


Symptoms:

When attempting to run FAMAPT: Mass Additions Post
the following error occurs:

ERROR
Error: Incorrect Asset Type and Category combination for &CATEGORY_ID.
Mass Addition ID: ##### ==> ** Failed **

-- Steps To Reproduce:
The issue can be reproduced at will with the following steps:
1. Run Create mass addition to send mass addition from AP to FA
2. In prepare mass addition form , update required fields and set status to POST
3.Submit Mass Additions Post

Cause:

The issue is caused by the following setup:
The category assigned to this mass addition has 'Capitalize' checkbox checked therefore it cannot be used for an Expensed asset.

Solution:

1. Navigate to setup > Asset System > Categories

2. Query the categories having Capitalize checkbox Unchecked
or if one does not exist , define a new one

3. Navigate to Mass additions > Prepare mass addition
Query the failing mass addition at POST status and change the category to a correct one

4. Rerun Post Mass Additions and review the asset was successfully created as EXPENSED asset.

Thursday 9 February 2017

The best practice to handle fixed asset items and to eliminate the confusion of other types of items is to follow the below procedure:

1. Define a FA item for each asset category you have, for example, let's say we have two asset categories (Computers and Equipment), then we'll define the following items:
          Item Code: FA00001, Item Description: Computers
          Item Code: FA00002, Item Description: Equipment
2. Assign expense item for FA00001 with Asset Clearing Account attached to Computers Asset Category (Purchasing Tab)
3. Assign Asset Category for FA00001 with Computers Asset Category (Purchasing Tab)

Now, let's say we want to purchase a Dell laptop:

1. Create PO and enter Item FA00001, You will notice that Description will be defaulted to "Computers"
2. Change the description to "Dell laptop" (You have to enable the "Allow Description Update" in purchasing tab")
3. You will notice that PO charge account will be picked as the Asset Clearing Account

The rest is to create the invoice and match it to this PO and run create accounting, then run Mass Addition Create

By this you have distinguished FA items from other inventory and expense items


We expected when you set the Expense to "Accrue at Receipt" in purchasing options, upon matching the invoice to PO, Expense AP accrual account will be populated. but when you create accounting and run the Mass Addition create, The FA item should be transferred to Fixed Assets module.

But Why the Expense AP Accrual account is populated instead of PO charge account when the expense is set to accrue at receipt?
This is intended behavior because we want the system to record that there is liability upon receiving the item but we still do not have the invoice. In this case when we perform the receiving for the item, Expense AP Accrual will be credited to pinpoint this un-invoiced receipt.

Below is the accounting flow when expense is set to "accrue at receipt" :

First of all, the charge account in the PO will be asset clearing. The accounting then goes as below:

On Receipt:
Dr Receiving and Inspection
           Cr Expense AP Accrual

On Deliver:
Dr Asset Clearing
           Cr Receiving and Inspection

On AP Match:
Dr Expense AP Accrual
           Cr AP Liability

Therefore the final accounting is:
Dr Asset Clearing (PO Charge Account)
           Cr AP Liability

But Mass Addition Process, instead of checking AP distribution, checks for Debit account of Delivery (which is taken from PO Charge Account) for matched invoices, and will transfer it to FA.

On Asset Addition
Dr Asset Cost

Wednesday 8 February 2017

AP Invoice not getting added to Assets


If you are running Asset mass additions program & AP Invoice you've created is not added to Assets, here are the few things you need to check: 

1.       Invoice should be an Approved Invoice.

2.       Invoice line distribution is posted to General Ledger from Payables. To post the AP Invoice Line Distributions to GL, run t he program: Payables Transfer to General Ledger

3.       The general ledger date on the invoice line distribution is on or before the date you specify for the create program

4.       Make sure that Invoice is not already posted to Asset. Check the ASSET_ADDITION_FLAG in AP_INVOICE_DISTRIBUTIONS_ALL table. If this flag is ‘U’ invoice distribution is not added to Assets yet. If it is “Y” Invoice distribution is already added to assets.  

5.       Invoice line should be charged to an account set up as an Asset account.

6.       The account is set up for an existing asset category as either the asset clearing account or the CIP clearing account.

7.       Make sure that “Track as Asset” check box is checked. (It is automatically checked if the account is an Asset account).

8.       To avoid the same invoice distribution being interfaced to both Oracle Projects and Oracle Assets, you must interface any project–related invoice distribution to Oracle Projects before you can interface it to Oracle Assets.

Tuesday 7 February 2017

Process Outline –>FA Mass Addition

Process Outline –>FA Mass Addition

This is brief process outline for Mass addition program in Oracle.
1.Asset Invoice Creation within AP
For assets to be transferred to Assets, it must be approved and posted in the GL and charged the distribution to a clearing account that is already assigned to an asset category or charge directly to the asset cost account.
The track as asset flag will be automatically checked if the accounts have been set up as Asset within the GL.
addition1Invoice can be posted either to the asset clearing account or directly to the asset cost account.
Having a clearing account provides more control particularly if an asset does not get added in the correct period. That would therefore make the reconciliation between GL and FA easier.
Typical steps are herewith:
1. Navigate to the Submit a New Request Window and select REQUEST SET.
2. Select the Mass Additions Create Request Set. This set contains two programs:
  • Mass Additions Create
  • Mass Additions Create Report

2.Mass Addition Create
Following the successful creation of invoice in AP,the Mass Addition Create program is ran from the Account Payables.
Mass Addition Create lets you send Mass Addition lines from Oracle Payables as cost adjustments or as potential new assets. Create Mass Additions sends valid invoice line distributions and associated discounts from Payables to an interface table in Oracle Assets.
The Mass Addition Create process generates a Mass Addition Execution Report which shows the number of records inserted, Invoice ID and the asset account.
We can download the Mass Addition Create Report , it shows assets that have been successfully created from the process which will aid the reconciliation between Asset created and Asset Purchased (entered in AP). The report contains such information as legal entity name, asset account(as indicated on AP) , cost centre (as indicated on AP), Supplier name, Invoice Number & Date, the asset description and the cost of the asset.
Also to ensure that assets created matches assets purchased, if the prepare mass addition form is queried for all assets, a queue name other than POSTED indicates that the asset invoice has not yet been successfully created as an asset on Fixed Asset.
addition2
3.Mass Addition Post
The posting process creates assets from mass addition lines in the POST queue using the data you entered. It also adds mass additions in the COST ADJUSTMENT queue to existing assets. You can run this program as often as you want during a period.
At this state, they become an asset and available on the Asset Workbench. The queue name at this point changes to POSTED .Mass Additions Posting Report FAS824 is the output of this process.
Navigation > Mass Additions > Post Mass Additions
addition3









  4.Depreciation & Transfer to GL
Depreciation computations depend on such factors as the type of depreciation (Life, units of production, or flat rate), the depreciation life and the depreciation method.
The asset category specifies a default depreciation method to be used with an asset. You will usually want to set up categories in such a way that you do not need to override the defaults they establish.
Data Flow:
Here is underline data flow diagram based out of the above discussed sub processes.
Addition















Item Cross References in Oracle Apps R12



   
This post talks about the Front end navigations related to Item Cross References.
  1. How to create a cross reference type?
  2. Which form is used to assign the Item cross reference type and Items?
  3. How to define cross reference name for an item?
  4. Is there a standard report to show the list of cross references?

1.     How to create a cross reference type?

Cross Reference : This form can be used to capture the reference information pertaining to an item, like drawing number, vendor part number, etc.
This is available at Inventory >> Items >> Cross References



                      
In this form, user can define the list of cross references applicable for the Items. This list will be available at the Item master.


                     

2.      Which form is used to assign the Item cross reference type and Items?

New Cross reference label & description can be added in this form.

            

3.      How to define cross reference name for an item?

After defining a cross reference, the value can be assigned to items using ASSIGN button. Select the item from the LOV and applicable value for the cross reference can be defined at VALUE column. Org assigning feature also avialble in this form.
                            


After defining the Cross reference labels at the Cross Reference form, values for the labels can be assigned from Item Master form as well.

                       
 Query the Item record >> Tools menu >> Cross Reference >> Select the Cross Reference Type  >> Assign Values for the Cross Reference Labels >> Save



 4.      Is there a standard report to show the list of cross references?

There is report at Inventory to view the Cross Reference Listing by items.

Name of the Report : Item Cross-References Listing

Thats all folks!!!!  please provide your comments to improve our team and readers knowledge....

API to Add a Fixed Asset in Oracle Apps R12 without Source info - FA_ADDITION_PUB.DO_ADDITION

In this post, i tried to create a Fixed asset via standard Oracle API FA_ADDITION_PUB.DO_ADDITION. I tested the script in Oracle Apps R12. Hope this helps. 

Script:


set serveroutput on;
DECLARE
   l_trans_rec                FA_API_TYPES.trans_rec_type;
   l_dist_trans_rec           FA_API_TYPES.trans_rec_type;
   l_asset_hdr_rec            FA_API_TYPES.asset_hdr_rec_type;
   l_asset_desc_rec           FA_API_TYPES.asset_desc_rec_type;
   l_asset_cat_rec            FA_API_TYPES.asset_cat_rec_type;
   l_asset_type_rec           FA_API_TYPES.asset_type_rec_type;
   l_asset_hierarchy_rec      FA_API_TYPES.asset_hierarchy_rec_type;
   l_asset_fin_rec            FA_API_TYPES.asset_fin_rec_type;
   l_asset_deprn_rec          FA_API_TYPES.asset_deprn_rec_type;
   l_asset_dist_rec           FA_API_TYPES.asset_dist_rec_type;
   l_asset_dist_tbl           FA_API_TYPES.asset_dist_tbl_type;
   l_inv_tbl                  FA_API_TYPES.inv_tbl_type;
   l_inv_rate_tbl             FA_API_TYPES.inv_rate_tbl_type;

   l_return_status            VARCHAR2(1);    
   l_mesg_count               number;
   l_mesg                     varchar2(4000);
BEGIN

   dbms_output.enable(10000000);

   FA_SRVR_MSG.Init_Server_Message; 

   -- desc info
 --  l_asset_desc_rec.asset_number                 := '1234567';
   l_asset_desc_rec.tag_number                   := 'TEAM12345-1';
   l_asset_desc_rec.serial_number                := 'TEAM3567-1';
   l_asset_desc_rec.in_use_flag                  := 'YES';
   l_asset_desc_rec.new_used                     := 'NEW';
   l_asset_desc_rec.owned_leased                 := 'OWNED';
   l_asset_desc_rec.current_units                := 1;
   l_asset_desc_rec.description                  := 'Shareoracleapps Test Asset';
   l_asset_desc_rec.asset_key_ccid               := 1;

   -- cat info
   -- Valid Value in FA_CATEGORIES
   l_asset_cat_rec.category_id                   := '332';

   --type info
   l_asset_type_rec.asset_type                   := 'CAPITALIZED';

   -- Asset Financial Information --
   l_asset_fin_rec.set_of_books_id               := 2243;    
   l_asset_fin_rec.date_placed_in_service        := TO_DATE('01-JUN-2014','DD-MON-RRRR');
   l_asset_fin_rec.deprn_start_date              := TO_DATE('01-JUN-2014','DD-MON-RRRR');
   l_asset_fin_rec.deprn_method_code             := 'STL';
   l_asset_fin_rec.life_in_months                := 240;
   l_asset_fin_rec.original_cost                 := 50000;
   l_asset_fin_rec.cost                          := 50000;
   l_asset_fin_rec.prorate_convention_code       := 'SAME MONTH';
   l_asset_fin_rec.salvage_type                  := 'AMT'; -- PCT - for Percentage
   l_asset_fin_rec.salvage_value                 := 1000;
   l_asset_fin_rec.percent_salvage_value         := NULL;
   l_asset_fin_rec.depreciate_flag               := 'YES';
   l_asset_fin_rec.orig_deprn_start_date         := TO_DATE('01-AUG-2010','DD-MON-RRRR');

   -- deprn info
   l_asset_deprn_rec.set_of_books_id             := 2243;    
   l_asset_deprn_rec.ytd_deprn                   := 20000;
   l_asset_deprn_rec.deprn_reserve               := 20000;
   l_asset_deprn_rec.bonus_ytd_deprn             := 0;
   l_asset_deprn_rec.bonus_deprn_reserve         := 0;

   -- book / trans info
   -- Valid value in FA_BOOK_CONTROLS
   l_asset_hdr_rec.book_type_code                := 'SHARE BOOK';

   -- distribution info
   l_asset_dist_rec.units_assigned               := 1;
   -- Valid Record from GL Code cominations with record type = 'E' (Expense)
   l_asset_dist_rec.expense_ccid                 := 12345;
   -- Valid Value in FA Locations  
   l_asset_dist_rec.location_ccid                := 1881098;
   l_asset_dist_rec.assigned_to                  := NULL;
   l_asset_dist_rec.transaction_units            := l_asset_dist_rec.units_assigned;
   l_asset_dist_tbl(1)                           := l_asset_dist_rec;

   -- call the api
   fa_addition_pub.do_addition(
           -- std parameters
           p_api_version             => 1.0,
           p_init_msg_list           => FND_API.G_FALSE,
           p_commit                  => FND_API.G_FALSE,
           p_validation_level        => FND_API.G_VALID_LEVEL_FULL,
           p_calling_fn              => null,
           x_return_status           => l_return_status,
           x_msg_count               => l_mesg_count,
           x_msg_data                => l_mesg,
           -- api parameters
           px_trans_rec              => l_trans_rec,
           px_dist_trans_rec         => l_dist_trans_rec,
           px_asset_hdr_rec          => l_asset_hdr_rec,
           px_asset_desc_rec         => l_asset_desc_rec,
           px_asset_type_rec         => l_asset_type_rec,
           px_asset_cat_rec          => l_asset_cat_rec,
           px_asset_hierarchy_rec    => l_asset_hierarchy_rec,
           px_asset_fin_rec          => l_asset_fin_rec,
           px_asset_deprn_rec        => l_asset_deprn_rec,
           px_asset_dist_tbl         => l_asset_dist_tbl,
           px_inv_tbl                => l_inv_tbl
          );

   --dump messages
   l_mesg_count := fnd_msg_pub.count_msg;

   if l_mesg_count > 0 then
      l_mesg := chr(10) || substr(fnd_msg_pub.get
                                (fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
                                     1, 250);
      dbms_output.put_line(l_mesg);
      for i in 1..(l_mesg_count - 1) loop
         l_mesg :=
                     substr(fnd_msg_pub.get
                            (fnd_msg_pub.G_NEXT,
                             fnd_api.G_FALSE), 1, 250);
         dbms_output.put_line(l_mesg);
      end loop;
      fnd_msg_pub.delete_msg();
   end if;

   if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
     dbms_output.put_line('FAILURE');
   else
     dbms_output.put_line('SUCCESS');
     dbms_output.put_line('ASSET_ID :' || to_char(l_asset_hdr_rec.asset_id));
     dbms_output.put_line('ASSET_NUMBER :' || l_asset_desc_rec.asset_number);
   end if;

end;
/