2017年5月31日 星期三

Oracle EBS: 補入PO receiving相關accounting資料

狀況: 收貨時, PO receiving未產生對應的accounting資料

原因: 有時單筆發生, 原因不明(似乎也與tablespace有關); 另一次有數十筆同時發生, 則是因為tablespace滿了

補入方式: 使用RCV_AccEvents_PVT.Create_ReceiveEvents, 如以下PL/SQL

補充說明:
1.需設定單一OU context, 若未設定, 會出現NO_DATA_FOUND error (-20)
    (ORA-01403: no data found)
2.若設定多OU  context, 則會出現單一SQL擷取到多筆資料的error (-35)
    (ORA-01422: exact fetch returns more than required number of rows)
3.此API具危險性, 不會檢查資料是否已存在, 執行前要多確認 


declare
  l_return_status varchar2(20);
  l_msg_count number;
  l_msg_data varchar2(2000);
  v_transaction_id number := 0;  --61956720 ;

begin
 
 RCV_AccEvents_PVT.Create_ReceiveEvents(p_api_version => 1.0,
                                     p_commit             => FND_API.G_TRUE,
                                     x_return_status          => l_return_status,
                                     x_msg_count          => l_msg_count,
                                     x_msg_data           => l_msg_data,
                                     p_rcv_transaction_id    => v_transaction_id);
 dbms_output.put_line(l_return_status);
  
  IF l_msg_count >= 1 THEN
     FOR i IN 1 .. l_msg_count LOOP
        DBMS_OUTPUT.put_line
           (i || '. ' || SUBSTR(fnd_msg_pub.get (p_encoded  => fnd_api.g_false),1,255));

     END LOOP;

  END IF;        
 
end;
 

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。