DECLARE L_TRANS_REC FA_API_TYPES.TRANS_REC_TYPE; L_ASSET_HDR_REC FA_API_TYPES.ASSET_HDR_REC_TYPE; L_ASSET_DIST_TBL FA_API_TYPES.ASSET_DIST_TBL_TYPE; L_RETURN_STATUS VARCHAR2(1); L_MESG_COUNT NUMBER; L_MESG VARCHAR2(512); P_ASSET_ID NUMBER; CURSOR CUR_FA_ADDITION IS SELECT FA.ASSET_ID, FDH.DISTRIBUTION_ID, FDH.BOOK_TYPE_CODE, FDH.UNITS_ASSIGNED, FDH.ASSIGNED_TO, FDH.CODE_COMBINATION_ID, FDH.LOCATION_ID FROM FA_ADDITIONS FA, FA_DISTRIBUTION_HISTORY FDH WHERE 1 = 1 AND FA.ASSET_ID = FDH.ASSET_ID AND FDH.TRANSACTION_HEADER_ID_OUT IS NULL AND FA.ASSET_NUMBER = '90-BA-22-002'; BEGIN FND_PROFILE.PUT('PRINT_DEBUG', 'Y'); DBMS_OUTPUT.ENABLE(1000000); FA_SRVR_MSG.INIT_SERVER_MESSAGE; FA_DEBUG_PKG.INITIALIZE; FOR C1 IN CUR_FA_ADDITION LOOP -- FILL IN ASSET INFORMATION L_ASSET_HDR_REC.ASSET_ID := C1.ASSET_ID; -- FILL IN DISTRIBUTION DATA FOR EXISTING DISTRIBUTION LINES -- AFFECTED BY THIS TRANSFER TXN. NOTE: YOU NEED TO FILL IN -- ONLY AFFECTED DISTRIBUTION LINES. -- -- FOR SOURCE DISTRIBUTION, YOU MUST FILL IN EITHER EXISTING -- DISTRIBUTION ID OR 2 COLUMNS(EXPENSE_CCID,LOCATION_CCID) OR -- 3-TUPLE COLUMNS(ASSIGNED_TO,EXPENSE_CCID, AND LOCATION_CCID) -- DEPENDING ON THE MAKEUP OF THE PARTICULAR DISTRIBUTION -- OF THE ASSET. L_ASSET_DIST_TBL(1).TRANSACTION_UNITS := C1.UNITS_ASSIGNED * -1; -- SOURCE -- OPTION A - KNOWN DIST ID L_ASSET_DIST_TBL(1).DISTRIBUTION_ID := C1.DISTRIBUTION_ID; -- OR -- OPTION B - KNOWN DIST ATTRIBUTES L_ASSET_DIST_TBL(1).ASSIGNED_TO := C1.ASSIGNED_TO; L_ASSET_DIST_TBL(1).EXPENSE_CCID := C1.CODE_COMBINATION_ID; L_ASSET_DIST_TBL(1).LOCATION_CCID := C1.LOCATION_ID; -- DESTINATION -- FILL IN DIST INFO FOR ONE OR MORE DESTINATION DISTRIBUTION (START WITH 2..(3,4,..)) L_ASSET_DIST_TBL(2).TRANSACTION_UNITS := C1.UNITS_ASSIGNED; L_ASSET_DIST_TBL(2).ASSIGNED_TO := 18484; --SELECT PERSON_ID FROM PER_PEOPLE_V7 L_ASSET_DIST_TBL(2).EXPENSE_CCID := C1.CODE_COMBINATION_ID; L_ASSET_DIST_TBL(2).LOCATION_CCID := C1.LOCATION_ID; FA_TRANSFER_PUB.DO_TRANSFER( -- 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_ASSET_HDR_REC => L_ASSET_HDR_REC, PX_ASSET_DIST_TBL => L_ASSET_DIST_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('THID' || TO_CHAR(L_TRANS_REC.TRANSACTION_HEADER_ID)); END IF; END LOOP; END;
2023-10-12
[Oracle]How to Transfer Asset
--參考資料 https://docs.oracle.com/cd/E18727_01/doc.121/e13586/T293142T472088.htm
--有多筆資料都會修正為新的保管人
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言