Count the Invalid Attributes Default.
SELECT COUNT(*) CATALOG_STATUS_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE CATALOG_STATUS_FLAG IS NULL;
SELECT COUNT(*) COLLATERAL_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE COLLATERAL_FLAG IS NULL;
SELECT COUNT(*) CONTAINER_ITEM_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE CONTAINER_ITEM_FLAG IS NULL;
SELECT COUNT(*) DOWNLOADABLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE DOWNLOADABLE_FLAG IS NULL;
SELECT COUNT(*) DRP_PLANNED_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE DRP_PLANNED_FLAG IS NULL;
SELECT COUNT(*) ELECTRONIC_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE ELECTRONIC_FLAG IS NULL;
SELECT COUNT(*) EQUIPMENT_TYPE FROM MTL_SYSTEM_ITEMS_B WHERE EQUIPMENT_TYPE IS NULL;
SELECT COUNT(*) EVENT_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE EVENT_FLAG IS NULL;
SELECT COUNT(*) INDIVISIBLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE INDIVISIBLE_FLAG IS NULL;
SELECT COUNT(*) LOT_DIVISIBLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE LOT_DIVISIBLE_FLAG IS NULL;
SELECT COUNT(*) LOT_MERGE_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_MERGE_ENABLED IS NULL;
SELECT COUNT(*) LOT_SPLIT_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_SPLIT_ENABLED IS NULL;
SELECT COUNT(*) LOT_STATUS_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_STATUS_ENABLED IS NULL;
SELECT COUNT(*) LOT_TRANSLATE_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_TRANSLATE_ENABLED IS NULL;
SELECT COUNT(*) MRP_CALCULATE_ATP_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE MRP_CALCULATE_ATP_FLAG IS NULL;
SELECT COUNT(*) RECIPE_ENABLED_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE RECIPE_ENABLED_FLAG IS NULL;
SELECT COUNT(*) SERIAL_STATUS_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE SERIAL_STATUS_ENABLED IS NULL;
SELECT COUNT(*) SERIAL_TAGGING_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE SERIAL_TAGGING_FLAG IS NULL;
SELECT COUNT(*) VEHICLE_ITEM_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE VEHICLE_ITEM_FLAG IS NULL;
_________________________________________________________________________________
_________________________________________________________________________________
Master - Child Conflict in one of these Attributes: Type(WIP_SUPPLY_TYPE), Subinventory(WIP_SUPPLY_SUBINVENTORY), Primary UOM Code(PRIMARY_UOM_CODE), Primary Unit Of Measure(PRIMARY_UNIT_OF_MEASURE), Conversions(ALLOWED_UNITS_LOOKUP_CODE), Cost Of Goods Sold Account(COST_OF_SALES_ACCOUNT), Sales Account(SALES_ACCOUNT).
check the we have to assign in master Level Or Org Level
Please check the Inventory - Setup - Item - Attributes control -- check in master org
For this above issue , Initially (PRIMARY_UNIT_OF_MEASURE) it was master Level I changed to Org level
------------------------------------------------------------------------------------------------------------------------
Master - Child Conflict in one of these Attributes: Demant Time Fence(DEMAND_TIME_FENCE_CODE), Lead Time Lot Size(LEAD_TIME_LOT_SIZE), Standard Lot Size(STD_LOT_SIZE), Cumulative Manufacturing(CUM_MANUFACTURING_LEAD_TIME), Overrun Percentage(OVERRUN_PERCENTAGE), Calculation ATP(MRP_CALCULATE_ATP_FLAG), Positive Acceptable Rate(ACCEPTABLE_RATE_INCREASE), Negative Acceptable Rate(ACCEPTABLE_RATE_DECREASE).
For this issue I used below query to update mtl_system_items_b . Before that take back up file and check. It will get resloved.
========================================================================
set verify off
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;
set timing on;
set serveroutput on;
DECLARE
l_task VARCHAR2(30) := 'update_bigtable';
l_sql_stmt VARCHAR2(32767);
l_try NUMBER;
l_status NUMBER;
BEGIN
DBMS_PARALLEL_EXECUTE.create_task (task_name => l_task);
DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid(task_name => l_task,
table_owner => 'INV',
table_name => 'MTL_SYSTEM_ITEMS_B',
by_row => TRUE,
chunk_size => 10000);
l_sql_stmt := 'UPDATE MTL_SYSTEM_ITEMS_B SET
CATALOG_STATUS_FLAG = CASE WHEN CATALOG_STATUS_FLAG IS NULL THEN ''N'' ELSE CATALOG_STATUS_FLAG END,
COLLATERAL_FLAG = CASE WHEN COLLATERAL_FLAG IS NULL THEN ''N'' ELSE COLLATERAL_FLAG END,
CONTAINER_ITEM_FLAG = CASE WHEN CONTAINER_ITEM_FLAG IS NULL THEN ''N'' ELSE CONTAINER_ITEM_FLAG END,
DOWNLOADABLE_FLAG = CASE WHEN DOWNLOADABLE_FLAG IS NULL THEN ''N'' ELSE DOWNLOADABLE_FLAG END,
ELECTRONIC_FLAG = CASE WHEN ELECTRONIC_FLAG IS NULL THEN ''N'' ELSE ELECTRONIC_FLAG END,
EVENT_FLAG = CASE WHEN EVENT_FLAG IS NULL THEN ''N'' ELSE EVENT_FLAG END,
INDIVISIBLE_FLAG = CASE WHEN INDIVISIBLE_FLAG IS NULL THEN ''N'' ELSE INDIVISIBLE_FLAG END,
MRP_CALCULATE_ATP_FLAG = CASE WHEN MRP_CALCULATE_ATP_FLAG IS NULL THEN ''N'' ELSE MRP_CALCULATE_ATP_FLAG END,
VEHICLE_ITEM_FLAG = CASE WHEN VEHICLE_ITEM_FLAG IS NULL THEN ''N'' ELSE VEHICLE_ITEM_FLAG END,
RECIPE_ENABLED_FLAG = CASE WHEN RECIPE_ENABLED_FLAG IS NULL THEN ''N'' ELSE RECIPE_ENABLED_FLAG END,
BOM_ENABLED_FLAG = CASE WHEN BOM_ENABLED_FLAG IS NULL THEN ''N'' ELSE BOM_ENABLED_FLAG END,
LOT_STATUS_ENABLED = CASE WHEN LOT_STATUS_ENABLED IS NULL THEN ''N'' ELSE LOT_STATUS_ENABLED END,
SERIAL_STATUS_ENABLED = CASE WHEN SERIAL_STATUS_ENABLED IS NULL THEN ''N'' ELSE SERIAL_STATUS_ENABLED END,
LOT_DIVISIBLE_FLAG = CASE WHEN LOT_DIVISIBLE_FLAG IS NULL THEN ''N'' ELSE LOT_DIVISIBLE_FLAG END,
LOT_SPLIT_ENABLED = CASE WHEN LOT_SPLIT_ENABLED IS NULL THEN ''N'' ELSE LOT_SPLIT_ENABLED END,
LOT_MERGE_ENABLED = CASE WHEN LOT_MERGE_ENABLED IS NULL THEN ''N'' ELSE LOT_MERGE_ENABLED END,
LOT_TRANSLATE_ENABLED = CASE WHEN LOT_TRANSLATE_ENABLED IS NULL THEN ''N'' ELSE LOT_TRANSLATE_ENABLED END,
LOT_SUBSTITUTION_ENABLED = CASE WHEN LOT_SUBSTITUTION_ENABLED IS NULL THEN ''N'' ELSE LOT_SUBSTITUTION_ENABLED END,
BULK_PICKED_FLAG = CASE WHEN BULK_PICKED_FLAG IS NULL THEN ''N'' ELSE BULK_PICKED_FLAG END,
SERIAL_TAGGING_FLAG = CASE WHEN SERIAL_TAGGING_FLAG IS NULL THEN ''N'' ELSE SERIAL_TAGGING_FLAG END,
EQUIPMENT_TYPE = CASE WHEN EQUIPMENT_TYPE IS NULL THEN 2 ELSE EQUIPMENT_TYPE END,
DRP_PLANNED_FLAG = CASE WHEN DRP_PLANNED_FLAG IS NULL THEN 2 ELSE DRP_PLANNED_FLAG END
WHERE rowid BETWEEN :start_id AND :end_id';
DBMS_PARALLEL_EXECUTE.run_task(task_name => l_task,
sql_stmt => l_sql_stmt,
language_flag => DBMS_SQL.NATIVE, parallel_level => 10);
-- If there is error, RESUME it for at most 2 times.
l_try := 0;
l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
WHILE(l_try < 2 and l_status != DBMS_PARALLEL_EXECUTE.FINISHED)
Loop
l_try := l_try + 1;
DBMS_PARALLEL_EXECUTE.resume_task(l_task);
l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('error occured during batch UPDATE ::'||SQLERRM||'--'||SQLCODE);
dbms_output.put_line(dbms_utility.format_error_backtrace);
DBMS_PARALLEL_EXECUTE.drop_task(l_task);
END;
/
EXIT;
SELECT COUNT(*) CATALOG_STATUS_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE CATALOG_STATUS_FLAG IS NULL;
SELECT COUNT(*) COLLATERAL_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE COLLATERAL_FLAG IS NULL;
SELECT COUNT(*) CONTAINER_ITEM_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE CONTAINER_ITEM_FLAG IS NULL;
SELECT COUNT(*) DOWNLOADABLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE DOWNLOADABLE_FLAG IS NULL;
SELECT COUNT(*) DRP_PLANNED_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE DRP_PLANNED_FLAG IS NULL;
SELECT COUNT(*) ELECTRONIC_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE ELECTRONIC_FLAG IS NULL;
SELECT COUNT(*) EQUIPMENT_TYPE FROM MTL_SYSTEM_ITEMS_B WHERE EQUIPMENT_TYPE IS NULL;
SELECT COUNT(*) EVENT_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE EVENT_FLAG IS NULL;
SELECT COUNT(*) INDIVISIBLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE INDIVISIBLE_FLAG IS NULL;
SELECT COUNT(*) LOT_DIVISIBLE_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE LOT_DIVISIBLE_FLAG IS NULL;
SELECT COUNT(*) LOT_MERGE_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_MERGE_ENABLED IS NULL;
SELECT COUNT(*) LOT_SPLIT_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_SPLIT_ENABLED IS NULL;
SELECT COUNT(*) LOT_STATUS_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_STATUS_ENABLED IS NULL;
SELECT COUNT(*) LOT_TRANSLATE_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE LOT_TRANSLATE_ENABLED IS NULL;
SELECT COUNT(*) MRP_CALCULATE_ATP_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE MRP_CALCULATE_ATP_FLAG IS NULL;
SELECT COUNT(*) RECIPE_ENABLED_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE RECIPE_ENABLED_FLAG IS NULL;
SELECT COUNT(*) SERIAL_STATUS_ENABLED FROM MTL_SYSTEM_ITEMS_B WHERE SERIAL_STATUS_ENABLED IS NULL;
SELECT COUNT(*) SERIAL_TAGGING_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE SERIAL_TAGGING_FLAG IS NULL;
SELECT COUNT(*) VEHICLE_ITEM_FLAG FROM MTL_SYSTEM_ITEMS_B WHERE VEHICLE_ITEM_FLAG IS NULL;
_________________________________________________________________________________
_________________________________________________________________________________
Master - Child Conflict in one of these Attributes: Type(WIP_SUPPLY_TYPE), Subinventory(WIP_SUPPLY_SUBINVENTORY), Primary UOM Code(PRIMARY_UOM_CODE), Primary Unit Of Measure(PRIMARY_UNIT_OF_MEASURE), Conversions(ALLOWED_UNITS_LOOKUP_CODE), Cost Of Goods Sold Account(COST_OF_SALES_ACCOUNT), Sales Account(SALES_ACCOUNT).
check the we have to assign in master Level Or Org Level
Please check the Inventory - Setup - Item - Attributes control -- check in master org
For this above issue , Initially (PRIMARY_UNIT_OF_MEASURE) it was master Level I changed to Org level
------------------------------------------------------------------------------------------------------------------------
Master - Child Conflict in one of these Attributes: Demant Time Fence(DEMAND_TIME_FENCE_CODE), Lead Time Lot Size(LEAD_TIME_LOT_SIZE), Standard Lot Size(STD_LOT_SIZE), Cumulative Manufacturing(CUM_MANUFACTURING_LEAD_TIME), Overrun Percentage(OVERRUN_PERCENTAGE), Calculation ATP(MRP_CALCULATE_ATP_FLAG), Positive Acceptable Rate(ACCEPTABLE_RATE_INCREASE), Negative Acceptable Rate(ACCEPTABLE_RATE_DECREASE).
For this issue I used below query to update mtl_system_items_b . Before that take back up file and check. It will get resloved.
========================================================================
set verify off
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
WHENEVER OSERROR EXIT FAILURE ROLLBACK;
set timing on;
set serveroutput on;
DECLARE
l_task VARCHAR2(30) := 'update_bigtable';
l_sql_stmt VARCHAR2(32767);
l_try NUMBER;
l_status NUMBER;
BEGIN
DBMS_PARALLEL_EXECUTE.create_task (task_name => l_task);
DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid(task_name => l_task,
table_owner => 'INV',
table_name => 'MTL_SYSTEM_ITEMS_B',
by_row => TRUE,
chunk_size => 10000);
l_sql_stmt := 'UPDATE MTL_SYSTEM_ITEMS_B SET
CATALOG_STATUS_FLAG = CASE WHEN CATALOG_STATUS_FLAG IS NULL THEN ''N'' ELSE CATALOG_STATUS_FLAG END,
COLLATERAL_FLAG = CASE WHEN COLLATERAL_FLAG IS NULL THEN ''N'' ELSE COLLATERAL_FLAG END,
CONTAINER_ITEM_FLAG = CASE WHEN CONTAINER_ITEM_FLAG IS NULL THEN ''N'' ELSE CONTAINER_ITEM_FLAG END,
DOWNLOADABLE_FLAG = CASE WHEN DOWNLOADABLE_FLAG IS NULL THEN ''N'' ELSE DOWNLOADABLE_FLAG END,
ELECTRONIC_FLAG = CASE WHEN ELECTRONIC_FLAG IS NULL THEN ''N'' ELSE ELECTRONIC_FLAG END,
EVENT_FLAG = CASE WHEN EVENT_FLAG IS NULL THEN ''N'' ELSE EVENT_FLAG END,
INDIVISIBLE_FLAG = CASE WHEN INDIVISIBLE_FLAG IS NULL THEN ''N'' ELSE INDIVISIBLE_FLAG END,
MRP_CALCULATE_ATP_FLAG = CASE WHEN MRP_CALCULATE_ATP_FLAG IS NULL THEN ''N'' ELSE MRP_CALCULATE_ATP_FLAG END,
VEHICLE_ITEM_FLAG = CASE WHEN VEHICLE_ITEM_FLAG IS NULL THEN ''N'' ELSE VEHICLE_ITEM_FLAG END,
RECIPE_ENABLED_FLAG = CASE WHEN RECIPE_ENABLED_FLAG IS NULL THEN ''N'' ELSE RECIPE_ENABLED_FLAG END,
BOM_ENABLED_FLAG = CASE WHEN BOM_ENABLED_FLAG IS NULL THEN ''N'' ELSE BOM_ENABLED_FLAG END,
LOT_STATUS_ENABLED = CASE WHEN LOT_STATUS_ENABLED IS NULL THEN ''N'' ELSE LOT_STATUS_ENABLED END,
SERIAL_STATUS_ENABLED = CASE WHEN SERIAL_STATUS_ENABLED IS NULL THEN ''N'' ELSE SERIAL_STATUS_ENABLED END,
LOT_DIVISIBLE_FLAG = CASE WHEN LOT_DIVISIBLE_FLAG IS NULL THEN ''N'' ELSE LOT_DIVISIBLE_FLAG END,
LOT_SPLIT_ENABLED = CASE WHEN LOT_SPLIT_ENABLED IS NULL THEN ''N'' ELSE LOT_SPLIT_ENABLED END,
LOT_MERGE_ENABLED = CASE WHEN LOT_MERGE_ENABLED IS NULL THEN ''N'' ELSE LOT_MERGE_ENABLED END,
LOT_TRANSLATE_ENABLED = CASE WHEN LOT_TRANSLATE_ENABLED IS NULL THEN ''N'' ELSE LOT_TRANSLATE_ENABLED END,
LOT_SUBSTITUTION_ENABLED = CASE WHEN LOT_SUBSTITUTION_ENABLED IS NULL THEN ''N'' ELSE LOT_SUBSTITUTION_ENABLED END,
BULK_PICKED_FLAG = CASE WHEN BULK_PICKED_FLAG IS NULL THEN ''N'' ELSE BULK_PICKED_FLAG END,
SERIAL_TAGGING_FLAG = CASE WHEN SERIAL_TAGGING_FLAG IS NULL THEN ''N'' ELSE SERIAL_TAGGING_FLAG END,
EQUIPMENT_TYPE = CASE WHEN EQUIPMENT_TYPE IS NULL THEN 2 ELSE EQUIPMENT_TYPE END,
DRP_PLANNED_FLAG = CASE WHEN DRP_PLANNED_FLAG IS NULL THEN 2 ELSE DRP_PLANNED_FLAG END
WHERE rowid BETWEEN :start_id AND :end_id';
DBMS_PARALLEL_EXECUTE.run_task(task_name => l_task,
sql_stmt => l_sql_stmt,
language_flag => DBMS_SQL.NATIVE, parallel_level => 10);
-- If there is error, RESUME it for at most 2 times.
l_try := 0;
l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
WHILE(l_try < 2 and l_status != DBMS_PARALLEL_EXECUTE.FINISHED)
Loop
l_try := l_try + 1;
DBMS_PARALLEL_EXECUTE.resume_task(l_task);
l_status := DBMS_PARALLEL_EXECUTE.task_status(l_task);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('error occured during batch UPDATE ::'||SQLERRM||'--'||SQLCODE);
dbms_output.put_line(dbms_utility.format_error_backtrace);
DBMS_PARALLEL_EXECUTE.drop_task(l_task);
END;
/
EXIT;
set
serveroutput on;
declare
l_api_version
NUMBER := 1.0;
l_init_msg_list
VARCHAR2(2) := FND_API.G_TRUE;
l_commit
VARCHAR2(2) := FND_API.G_FALSE;
x_message_list
Error_Handler.Error_Tbl_Type;
x_return_status
VARCHAR2(2);
x_msg_count
NUMBER := 0;
l_user_id
NUMBER := -1;
l_resp_id
NUMBER := -1;
l_application_id NUMBER := -1;
l_org_code
VARCHAR2(3) := 'MTP' ;
l_item_number VARCHAR2(25) := 'AVS-000341';
l_org_id NUMBER ;
l_item_id
NUMBER ;
l_user_name
VARCHAR2(30) := 'SYSADMIN';
l_resp_name
VARCHAR2(30) := 'Inventory - AVH';
BEGIN
--
Get the user_id
SELECT user_id
INTO l_user_id
FROM fnd_user
WHERE user_name = l_user_name;
--
Get the application_id and responsibility_id
SELECT application_id, responsibility_id
INTO l_application_id, l_resp_id
FROM fnd_responsibility_vl
WHERE responsibility_name = l_resp_name;
FND_GLOBAL.APPS_INITIALIZE(l_user_id,
l_resp_id, l_application_id); -- MGRPLM / Development Manager / EGO
dbms_output.put_line('Initialized applications context: '|| l_user_id || ' '||
l_resp_id ||' '|| l_application_id );
select
organization_id
into
l_org_id
from mtl_parameters where organization_code = l_org_code ;
select
inventory_item_id
into l_item_id
from
mtl_system_items_b where segment1 = l_item_number and rownum < 2;
DBMS_OUTPUT.PUT_LINE('Inputs:
Organization ID: '||l_org_id ||' Inventory Item ID: '|| l_item_id);
--
call API to assign Items
DBMS_OUTPUT.PUT_LINE('===========================================');
DBMS_OUTPUT.PUT_LINE('Calling
EGO_ITEM_PUB.Assign_Item_To_Org
API');
EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG(
P_API_VERSION
=> l_api_version
, P_INIT_MSG_LIST =>
l_init_msg_list
, P_COMMIT
=>
l_commit
, P_INVENTORY_ITEM_ID => l_item_id --
Use INVENTORY_ITEM_ID, ORGANIZATION_ID instead of ITEM_NUMBER,
ORGANIZATION_CODE
, P_ITEM_NUMBER
=> NULL
,
P_ORGANIZATION_ID => l_org_id
,
P_ORGANIZATION_CODE => 'MTP'
,
P_PRIMARY_UOM_CODE => 'EA'
, X_RETURN_STATUS =>
x_return_status
,
X_MSG_COUNT
=> x_msg_count
);
DBMS_OUTPUT.PUT_LINE('=========================================');
DBMS_OUTPUT.PUT_LINE('Return Status: '||x_return_status);
IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
DBMS_OUTPUT.PUT_LINE('Error Messages :');
Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);
FOR i IN 1..x_message_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(x_message_list(i).message_text);
END LOOP;
END IF;
DBMS_OUTPUT.PUT_LINE('=========================================');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception Occured :');
DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('========================================');
END;