DROP TABLE TEST_20160930;
--CREATE DATA TABLE CREATE TABLE TEST_20160930 AS SELECT MSI.INVENTORY_ITEM_ID, MSI.ORGANIZATION_ID, MSI.SEGMENT1, MSI.DESCRIPTION, MSI. PRIMARY_UOM_CODE, MSI.EXPENSE_ACCOUNT FROM MTL_SYSTEM_ITEMS_B MSI WHERE 1 = 0 AND MSI.SEGMENT1 = 'A-621600' AND MSI.ORGANIZATION_ID = 3; SELECT * FROM TEST_20160930 FOR UPDATE; --UPDATE MSI.EXPENSE_ACCOUNT DECLARE CURSOR P_DATE IS SELECT INVENTORY_ITEM_ID, ORGANIZATION_ID, EXPENSE_ACCOUNT FROM TEST_20160930; --FOR UPDATE; BEGIN FOR C1 IN P_DATE LOOP UPDATE MTL_SYSTEM_ITEMS_B MSI SET MSI.EXPENSE_ACCOUNT = C1.EXPENSE_ACCOUNT WHERE MSI.INVENTORY_ITEM_ID = C1.INVENTORY_ITEM_ID AND MSI.ORGANIZATION_ID = C1.ORGANIZATION_ID; END LOOP; COMMIT; END; / --ASSIGN_ITEM_TO_ORG DECLARE G_USER_ID FND_USER.USER_ID%TYPE := NULL; L_APPL_ID FND_APPLICATION.APPLICATION_ID%TYPE; L_RESP_ID FND_RESPONSIBILITY_TL.RESPONSIBILITY_ID%TYPE; L_API_VERSION NUMBER := 1.0; L_INIT_MSG_LIST VARCHAR2(2) := FND_API.G_FALSE; 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_SEGMENT1 MTL_SYSTEM_ITEMS_B.SEGMENT1%TYPE; L_PRIMARY_UOM_CODE MTL_SYSTEM_ITEMS_B.PRIMARY_UOM_CODE%TYPE; L_ORIGINAL_ORG MTL_SYSTEM_ITEMS_B.ORGANIZATION_ID%TYPE := 3; --00 ORG_ID這個部份要修改 L_ORGANIZATION_ID MTL_SYSTEM_ITEMS_B.ORGANIZATION_ID%TYPE := 385; --要Assign的ORG_ID,這個部份要修改 L_ORGANIZATION_CODE ORG_ORGANIZATION_DEFINITIONS.ORGANIZATION_CODE%TYPE; CURSOR P_DATE IS SELECT INVENTORY_ITEM_ID, SEGMENT1 FROM TEST_20160930; --客製Table要塞入資料 --SELECT INVENTORY_ITEM_ID, SEGMENT1 FROM TEST_20160930 FOR UPDATE; BEGIN SELECT FA.APPLICATION_ID INTO L_APPL_ID FROM FND_APPLICATION FA WHERE FA.APPLICATION_SHORT_NAME = 'INV'; SELECT FR.RESPONSIBILITY_ID INTO L_RESP_ID FROM FND_APPLICATION FA, FND_RESPONSIBILITY_TL FR WHERE FA.APPLICATION_SHORT_NAME = 'INV' AND FA.APPLICATION_ID = FR.APPLICATION_ID AND UPPER(FR.RESPONSIBILITY_NAME) = 'INVENTORY'; FND_GLOBAL.APPS_INITIALIZE(G_USER_ID, L_RESP_ID, L_APPL_ID); SELECT OOD.ORGANIZATION_CODE INTO L_ORGANIZATION_CODE FROM ORG_ORGANIZATION_DEFINITIONS OOD WHERE OOD.ORGANIZATION_ID = L_ORGANIZATION_ID; FOR C1 IN P_DATE LOOP SELECT MSI.SEGMENT1, MSI.PRIMARY_UOM_CODE INTO L_SEGMENT1, L_PRIMARY_UOM_CODE FROM MTL_SYSTEM_ITEMS_B MSI WHERE MSI.INVENTORY_ITEM_ID = C1.INVENTORY_ITEM_ID AND MSI.ORGANIZATION_ID = L_ORIGINAL_ORG; 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 => C1.INVENTORY_ITEM_ID, P_ITEM_NUMBER => L_SEGMENT1, P_ORGANIZATION_ID => L_ORGANIZATION_ID, P_ORGANIZATION_CODE => L_ORGANIZATION_CODE, P_PRIMARY_UOM_CODE => L_PRIMARY_UOM_CODE, X_RETURN_STATUS => X_RETURN_STATUS, X_MSG_COUNT => X_MSG_COUNT); DBMS_OUTPUT.PUT_LINE('STATUS: ' || X_RETURN_STATUS); END LOOP; 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 J IN 1 .. X_MESSAGE_LIST.COUNT LOOP DBMS_OUTPUT.PUT_LINE(X_MESSAGE_LIST(J).MESSAGE_TEXT); END LOOP; END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('EXCEPTION OCCURED :'); DBMS_OUTPUT.PUT_LINE(SQLCODE || ':' || SQLERRM); END; /
沒有留言:
張貼留言