Description:
The eAM Asset Number Open Interface enables you to import Asset Numbers into eAM, using a batch process. Optionally import Asset Number attributes. You can create new Asset Numbers and attributes, or update existing Asset Numbers and attributes.
Asset Number:
An asset number uniquely identifies each asset.
Possible Validations:
- Asset Number Mandatory.
- Asset Serial Number Mandatory.
- Asset Group Mandatory.
- Asset Category Mandatory.
- Owning Department Mandatory.
- Criticality Code Mandatory.
- Area Mandatory.
- WIP Accounting Class Mandatory.
Code for reference:
PROCEDURE XXX_validate
IS
CURSOR cur_main
IS
SELECT *
FROM xxx_stage —-Select all the records to be processed
l_organization_id NUMBER;
l_inventory_item_id NUMBER;
l_asset_count NUMBER;
l_category_id NUMBER;
l_department_id NUMBER;
l_area_id NUMBER;
l_criticality_code VARCHAR2 (10);
l_class_code VARCHAR2 (100);
l_user_id NUMBER;
lc_cat_seg VARCHAR2 (245);
BEGIN
FOR I IN cur_main
LOOP
—Validate Category Set
BEGIN
SELECT category_concat_segs
INTO lc_cat_seg
FROM mtl_item_categories_v mic, mtl_system_items_b msi
WHERE mic.category_set_name = :set_name
AND mic.inventory_item_id = msi.inventory_item_id
AND mic.organization_id = msi.organization_id
AND msi.segment1 = i.asset_group
AND msi.organization_id =i.organization_code);
END;
–To Validate Asset Group
BEGIN
SELECT inventory_item_id
INTO l_inventory_item_id
FROM mtl_system_items_b
WHERE segment1 = i.asset_group
AND organization_id = l_organization_id;
END;
–Validate Asset category
IF i.asset_category IS NOT NULL
THEN
BEGIN
SELECT category_id
INTO l_category_id
FROM mtl_categories_v
WHERE UPPER (category_concat_segs)= (i.asset_category)
AND structure_name = i.name
AND enabled_flag = ‘Y’;
END;
END IF;
–Validate owning department
BEGIN
SELECT department_id
INTO l_department_id
FROM bom_departments
WHERE UPPER (department_code) = (i.owning_department)
AND organization_id = l_organization_id
AND disable_date IS NULL;
END;
IF i.criticality IS NOT NULL
THEN
BEGIN
SELECT lookup_code
INTO l_criticality_code
FROM fnd_lookup_values
WHERE lookup_type = ‘MTL_EAM_ASSET_CRITICALITY’
AND meaning = i.criticality
AND enabled_flag = ‘Y’;
End;
END IF;
–Validate Area
IF i.area IS NOT NULL
THEN
BEGIN
SELECT location_id
INTO l_area_id
FROM mtl_eam_locations
WHERE location_codes = i.area
AND organization_id = l_organization_id
AND end_date IS NULL;
END;
END IF;
–Validate WIP Accounting Classe
BEGIN
SELECT class_code
INTO l_class_code
FROM wip_accounting_classes
WHERE class_code = i.wip_accounting_class
AND organization_id = l_organization_id;
END;
IF l_error_message IS NULL
— UPDATE stage table with process flag as ‘V.’
END IF;
END LOOP;
COMMIT;
END validate_asset_data;
PROCEDURE XXX_import (
errbuff OUT VARCHAR2,
retcode OUT NUMBER,
p_batch_no IN NUMBER
)
IS
CURSOR cur_main
IS
SELECT *
FROM XXX_STG
WHERE process_flag = ‘V’ AND batch_no = p_batch_no;
l_error VARCHAR2 (1000);
l_user_id NUMBER;
BEGIN
FOR i IN cur_main
LOOP
l_error := NULL;
BEGIN
INSERT INTO mtl_eam_asset_num_interface
(inventory_item_id, serial_number, last_update_date,
last_updated_by, creation_date, created_by, descriptive_text,
wip_accounting_class_code, maintainable_flag,
owning_department_id, fa_asset_id,
eam_location_id, asset_criticality_code,
category_id, interface_header_id, batch_id, organization_code,
fa_asset_number, location_codes, process_flag, import_mode, import_scope, owning_department_code, asset_criticality_id, instance_number, operational_log_flag)
VALUES (i.inventory_item_id, i.asset_serial_number, SYSDATE,
l_user_id, SYSDATE, l_user_id, i.asset_description,
i.class_code, ‘Y’, i.department_id, i.category_id,
mtl_eam_asset_num_interface_s.NEXTVAL, i.organization_code,
i.finance_asset_number, i.area, ‘P’, 1,
NULL, i.criticality_code, i.asset_number, ‘Y’
);
END;
END LOOP;
END;
Run the Standard Program “ Import Asset Number.”
Base Table :
- MTL_SERIAL_NUMBERS
- CSI_ITEM_INSTANCES
Sample Query to get the Asset Number Details:
SELECT (SELECT organization_code
FROM org_organization_definitions
WHERE organization_id = last_vld_organization_id) “Inventory Org”,
(SELECT DISTINCT segment1
FROM mtl_system_items_b
WHERE inventory_item_id =
c.inventory_item_id)
“Asset Groups”,
instance_number “Asset Number”,
instance_description “Asset Number Description”,
c.serial_number “Asset Serial Number”,
(SELECT department_code
FROM bom_departments
WHERE department_id =
(SELECT owning_department_id
FROM eam_org_maint_defaults
WHERE object_id = c.instance_id))
“owning department,”
(SELECT meaning
FROM fnd_lookup_values
WHERE lookup_type = ‘MTL_EAM_ASSET_CRITICALITY’
AND enabled_flag = ‘Y’
AND lookup_code = c.asset_criticality_code) “criticality”,
(SELECT accounting_class_code
FROM eam_org_maint_defaults
WHERE object_id = c.instance_id) “accounting_class_code”,
(SELECT location_codes
FROM mtl_eam_locations
WHERE location_id = (SELECT area_id
FROM eam_org_maint_defaults
WHERE object_id = c.instance_id)) “area”
FROM csi_item_instances c, mtl_serial_numbers msn
WHERE c.serial_number = msn.serial_number
AND c.inventory_item_id = msn.inventory_item_id
ORDER BY instance_number.
Summary:
In the above classification steps to generate asset number conversion in oracle.
Queries?
Do drop a note by writing us at doyen.ebiz@gmail.com or use the comment section below to ask your questions.