2015-09-05 36 views
2

我創造了這個過程使用細節來傳遞API的

CREATE OR REPLACE PROCEDURE APPS.test_dlv3 
IS 
BEGIN 
DECLARE 

-- STANDARD PARAMETERS. 
pApiVersion NUMBER := 1.0; 
pInitMsgList VARCHAR2(30); 
pCommit  VARCHAR2(30); 

-- PARAMETERS FOR WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY 
pDeliveryId NUMBER; 
pDeliveryName VARCHAR2(30); 
pTabOfDelDet WSH_DELIVERY_DETAILS_PUB.id_tab_type; 
pAction  VARCHAR2(30); 

-- OUT PARAMETERS 
xReturnStatus VARCHAR2(10); 
xMsgCount  NUMBER; 
xMsgData  VARCHAR2(2000); 
xMsgDetails VARCHAR2(3000); 
xMsgSummary VARCHAR2(3000); 

-- HANDLE EXCEPTIONS 
vFailApiException EXCEPTION; 

BEGIN 
-- INITIALIZE RETURN STATUS 
xReturnStatus := WSH_UTIL_CORE.G_RET_STS_SUCCESS; 

-- CALL THIS PROCEDURE TO INITIALIZE APPLICATIONS PARAMETERS. 
FND_GLOBAL.APPS_INITIALIZE(
     user_id  => , --hide 
     resp_id  => , --hide 
     resp_appl_id =>); --hide 

-- VALUES FOR WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY 
pDeliveryId  := 379358; 
pDeliveryName  := 'Delivery01'; 
pTabOfDelDet(1) := 354601 ; 
pAction   := 'ASSIGN'; 

-- CALL TO WSH_DELIVERY_DETAILS_PUB.DETAIL_TO_DELIVERY. 
WSH_DELIVERY_DETAILS_PUB.detail_to_delivery( 
     p_api_version  => pApiVersion, 
     p_init_msg_list  => pInitMsgList, 
     p_commit   => pCommit, 
     x_return_status  => xReturnStatus, 
     x_msg_count   => xMsgCount, 
     x_msg_data   => xMsgData, 
     p_TabOfDelDets  => pTabOfDelDet, 
     p_action   => pAction, 
     p_delivery_id  => pDeliveryId, 
     p_delivery_name  => pDeliveryName); 

IF (xReturnStatus <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN RAISE vFailApiException; 

ELSE DBMS_OUTPUT.PUT_LINE('Detail '||pTabOfDelDet(1)|| ' assignment to the delivery '|| pDeliveryName ||' is successful'); 

END IF; 

Exception 

    WHEN vFailApiException THEN WSH_UTIL_CORE.get_messages('Y', xMsgSummary, xMsgDetails, xMsgCount); 

    IF xMsgCount > 1 THEN xMsgData := xMsgSummary || xMsgDetails; 
     DBMS_OUTPUT.PUT_LINE('Message Data : '||xMsgData); 

    ELSE xMsgData := xMsgSummary; 
     DBMS_OUTPUT.PUT_LINE('Message Data : '||xMsgData); 

    END IF; 

END;   
END; 
/

但結果始終是這樣的:

Message Data : Error: Error in assigning one or more details to a delivery. 
Warning: These entities can not be grouped together as their grouping attributes do not match. 

誰能幫助我?

回答

1

您發貨的每個庫存組織都具有在訂單管理/裝運執行設置中定義的裝運參數。

該表單的一個區域是「Delivery Grouping Attributes」。一些屬性是強制性的 - 從出貨到運送到。考慮一下 - 如果兩個訂單行從兩個不同的位置發貨,它們不是同一交貨的一部分(它們可以是同一行程的一部分,但這是Oracle Shipping Execution中的一個獨立但與之相關的概念)。

無論如何,如果您要運輸的組織具有設置的運輸參數(指定給定屬性)是交貨分組屬性的一部分,那麼您添加的每個交貨詳細信息(〜訂單項,有點但不總是)交貨必須符合該交貨的屬性。

例如,如果「運輸方式」是交貨分組屬性,並且您嘗試將「Next Day Air」運送到「LTL卡車」交貨的訂單行中,您將遇到您遇到的錯誤。

檢查運輸組織的運輸參數,然後檢查每個交貨分組屬性的值,以確保它們與您試圖分配到交貨的交貨詳細信息相匹配。

+0

謝謝你的回答,現在我的程序成功了... –

相關問題