0% found this document useful (0 votes)
585 views

Api Fixed Assets

This document declares variables and records needed to add new asset records to an asset management system. It loops through asset data from a table, populates the records, and calls an API to add the assets. If any errors occur, they are captured and the status is updated in the source table.

Uploaded by

Aamani Ammu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
585 views

Api Fixed Assets

This document declares variables and records needed to add new asset records to an asset management system. It loops through asset data from a table, populates the records, and calls an API to add the assets. If any errors occur, they are captured and the status is updated in the source table.

Uploaded by

Aamani Ammu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

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);

l_status VARCHAR2 (10) := 'True';


l_errmsg VARCHAR2 (1000);
l_total_records NUMBER := 0;
l_success_records NUMBER := 0;
l_failure_records NUMBER := 0;
V_CATEGORY_ID NUMBER;
V_EXPENSE_ACCOUNT NUMBER;
V_LOCATION_ID NUMBER;
BEGIN
FOR asset_data IN (
SELECT ana.rowid,ana.*
FROM XX_ADD_NEW_ASSET_FINAL ana
WHERE asset_id is null
)
LOOP

SELECT CATEGORY_ID INTO V_CATEGORY_ID


FROM FA_CATEGORIES
WHERE UPPER(SEGMENT1||'-'||SEGMENT2||'-'||SEGMENT3) =
UPPER(TRIM(asset_data.CATEGORY));

SELECT CODE_COMBINATION_ID
INTO V_EXPENSE_ACCOUNT
FROM GL_CODE_COMBINATIONS
WHERE SEGMENT1||'-'||SEGMENT2||'-'||SEGMENT3||'-'||SEGMENT4||'-'||SEGMENT5||'-'||
SEGMENT6||'-'||SEGMENT7||'-'||SEGMENT8||'-'||
SEGMENT9||'-'||SEGMENT10||'-'||SEGMENT11||'-'||SEGMENT12
= asset_data.EXPENSE_ACCOUNT;

SELECT LOCATION_ID
INTO V_LOCATION_ID
FROM fa_locations_kfv
WHERE concatenated_segments
= asset_data.LOCATIONS;

BEGIN
l_errmsg := ' ';
l_status := 'True';
l_total_records := l_total_records + 1;
DBMS_OUTPUT.enable (10000000);

FA_SRVR_MSG.Init_Server_Message;
l_asset_desc_rec.tag_number := NULL;
l_asset_desc_rec.serial_number := NULL;
l_asset_desc_rec.model_number := NULL;
l_asset_desc_rec.manufacturer_name := NULL;
l_asset_cat_rec.category_id := NULL;
l_asset_desc_rec.description := NULL;
l_asset_dist_rec.expense_ccid := NULL;
l_asset_fin_rec.date_placed_in_service := NULL;
l_asset_deprn_rec.deprn_reserve := NULL;
l_asset_fin_rec.cost := NULL;
l_asset_dist_rec.location_ccid := NULL;
l_asset_dist_rec.assigned_to := NULL;
l_asset_hdr_rec.asset_id := NULL;
l_asset_desc_rec.asset_number := NULL;
l_asset_hdr_rec.book_type_code := NULL;
l_asset_dist_rec.units_assigned := NULL;
l_asset_fin_rec.set_of_books_id := NULL;
l_asset_fin_rec.deprn_method_code := NULL;
l_asset_fin_rec.life_in_months := NULL;
l_asset_fin_rec := NULL;
l_asset_dist_rec := NULL;
l_asset_hdr_rec := NULL;
l_asset_deprn_rec := NULL;
l_asset_desc_rec := NULL;
l_asset_type_rec := NULL;
l_asset_cat_rec := NULL;
l_asset_hierarchy_rec := NULL;
l_trans_rec.transaction_date_entered := NULL;
l_asset_deprn_rec.ytd_deprn := NULL;
l_asset_deprn_rec.bonus_ytd_deprn := NULL;
l_asset_deprn_rec.bonus_deprn_reserve := NULL;
l_asset_deprn_rec.set_of_books_id := NULL;
l_asset_deprn_rec.ytd_deprn := NULL;
l_asset_deprn_rec.deprn_reserve := NULL;
l_asset_deprn_rec.bonus_ytd_deprn := NULL;
l_asset_deprn_rec.bonus_deprn_reserve := NULL;
-- l_inv_tbl := NULL;
---*******************************************************************---
l_asset_desc_rec.asset_number := asset_data.ASSET_NUMBER;

-------------- from file ----------------


l_asset_desc_rec.tag_number := asset_data.tag_number;
-- l_asset_desc_rec.serial_number := asset_data.serial;
-- l_asset_desc_rec.model_number := asset_data.MODEL;
-- l_asset_desc_rec.manufacturer_name := asset_data.BRAND;
l_asset_cat_rec.category_id := V_CATEGORY_ID; --FA_CATEGORIES
l_asset_desc_rec.description := asset_data.DESCRIPTION;
l_asset_dist_rec.expense_ccid := V_EXPENSE_ACCOUNT;
---gl_code_combinations_kfv
l_asset_fin_rec.date_placed_in_service := TO_DATE
(asset_data.DATE_PLACED_IN_SERVICE, 'MM-DD-YYYY');
l_asset_fin_rec.cost := asset_data.cost;
-- l_asset_deprn_rec.ytd_deprn := asset_data.ytd;
l_asset_dist_rec.location_ccid := V_LOCATION_ID;
l_asset_deprn_rec.deprn_reserve := asset_data.ACCUMULATED_DEPRECIATION;
--l_asset_deprn_rec.bonus_ytd_deprn := 0;
--l_asset_deprn_rec.bonus_deprn_reserve := 0;
-------------------------------from email -------------------
l_asset_type_rec.asset_type := 'CAPITALIZED';
l_asset_hdr_rec.book_type_code := asset_data.ASSET_BOOK;
l_asset_dist_rec.units_assigned := asset_data.UNITS;
-- l_asset_desc_rec.asset_key_ccid := 2001; ---FA_ASSET_KEYWORDS
-----------------------------------others--------------------------
l_asset_fin_rec.set_of_books_id := asset_data.SET_OF_BOOK_ID; ------
GL_SETS_OF_BOOKS
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 := asset_data.UNITS;
l_asset_fin_rec.deprn_method_code := asset_data.METHOD;
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;
l_asset_fin_rec.life_in_months := asset_data.LIFE_IN_YEARS;
l_asset_fin_rec.depreciate_flag := 'NO';

-- l_asset_fin_rec.deprn_start_date := TO_DATE('01-JUN-
2014','DD-MON-RRRR');
--l_asset_fin_rec.original_cost := 50000;
l_asset_fin_rec.prorate_convention_code :=
asset_data.PRORATE_CONVENTION;
--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 :=
asset_data.SET_OF_BOOK_ID;
--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
-- distribution info
-- Valid Record from GL Code cominations with record type = 'E' (Expense)
-- Valid Value in FA Locations
-- 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);

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);
-- COMMIT;
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');
l_failure_records := l_failure_records + 1;
l_errmsg := SUBSTR (SQLERRM, 1, 400);

UPDATE XX_ADD_NEW_ASSET_FINAL
SET FLAG = l_return_status,
error_msg = l_errmsg || '***' || l_mesg
WHERE 1 = 1
and rowid = asset_data.rowid
;

-- COMMIT;
ELSE
DBMS_OUTPUT.put_line ('SUCCESS');

UPDATE XX_ADD_NEW_ASSET_FINAL
SET FLAG = l_return_status,
-- error_msg = ' ',
ASSET_ID = l_asset_hdr_rec.asset_id
WHERE 1 = 1
and rowid = asset_data.rowid
;
--COMMIT;
l_success_records := l_success_records + 1;

DBMS_OUTPUT.put_line ('ASSET_ID :' || TO_CHAR


(l_asset_hdr_rec.asset_id) || ' ' || 'ASSET_NUMBER :' ||
l_asset_desc_rec.asset_number || ' ' || 'Asset Desc :' ||
l_asset_desc_rec.description);
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('========== Exception =============');
END;
END LOOP;

DBMS_OUTPUT.put_line ('==============Last API Result=============');


DBMS_OUTPUT.put_line ('Total Records To Be Loaded : ' || l_total_records);
DBMS_OUTPUT.put_line ('Total Success Records : ' || l_success_records);
DBMS_OUTPUT.put_line ('Total Failure Records : ' || l_failure_records);

END;

You might also like