AR-API-詳解EBS介面開發之應收款處理2
(一)應收款常用標準表簡介
1.1 常用標準表
如下表中列出了與應收款處理相關的表和說明:
表名 |
說明 |
其他資訊 |
||
AR_BATCHES_ALL |
AR收款批表 |
|||
AR_BATCH_SOURCES_ALL |
AR收款型別表 |
對應檢視 |
||
AR_CASH_RECEIPTS_ALL |
AR收款表 |
對應檢視 |
||
AR_CASH_RECEIPT_HISTORY_ALL |
AR收款歷史表 |
對應檢視 |
||
AR_MISC_CASH_DISTRIBUTIONS_ALL |
AR雜項收款分配表 |
對應檢視 |
||
AP_BANK_ACCOUNTS_ALL |
AR匯款銀行 |
對應檢視 |
||
AR_RECEIPT_METHODS |
AR收款分類 |
對應檢視 |
1.3 表中欄位的大體介紹
1.3 說明
這裡只列出了應收款處理相關的大多數常用表。還有一些不經常用到的沒有涉及,具體可以參考oracle網站上的
二)應收款處理API
2.1 簡介
建立收款
AR_RECEIPT_API_PUB.CREATE_CASH
核銷應收INVOICE
AR_RECEIPT_API_PUB.APPLY
建立並同時核銷INVOICE
AR_RECEIPT_A
取消核銷INVOICE
AR_RECEIPT_API_PUB. UNAPPLY
沖銷收款
AR_RECEIPT_API_PUB. REVERSE
核銷賬戶
AR_RECEIPT_API_PUB. APPLY_ON_ACCOUNT
撤銷核銷賬戶
AR_RECEIPT_API_PUB. UNAPPLY_ON_ACCOUNT
核銷活動
AR_RECEIPT_API_PUB. ACTIVITY_APPLICATION
建立雜項收款
AR_RECEIPT_API_PUB. CREATE_MISC
核銷其他賬戶活動
AR_RECEIPT_API_PUB
撤銷核銷其他賬戶
AR_RECEIPT_API_PUB. UNAPPLY_OTHER_ACCOUNT
核銷現金收款沖銷其他收款
AR_RECEIPT_API_PUB. APPLY_OPEN_RECEIPT
取消核銷現金收款沖銷其他收款
AR_RECEIPT_API_PUB. UNAPPLY_OPEN_RECEIPT
AR_RECEIPT_API_PUB. CREATE_APPLY_ON_ACC
核銷到INVOICE行明細
AR_RECEIPT_API_PUB. APPLY_IN_DETAIL
(三)應收款處理API
3.1 AR_RECEIPT_API_PUB. Create_cash
這個API一次可以建立一個收款,建立成功後,狀態為未核銷。
此API一次只能建立一個收款,無法建立收款批。
AR_RECEIPT_API_PUB. PROCEDURE Create_cash(
-- Standard API parameters.
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
-- Receipt info. parameters
p_currency_code IN VARCHAR2 DEFAULT NULL,
p_amount IN NUMBER DEFAULT NULL,
p_receipt_number IN VARCHAR2 DEFAULT NULL,
p_receipt_date IN DATE DEFAULT NULL,
p_gl_date IN DATE DEFAULT NULL,
p_customer_number IN VARCHAR2 DEFAULT NULL,
p_receipt_method_id IN NUMBER DEFAULT NULL,
p_cr_id OUT NOCOPY NUMBER
)
僅包含主要引數
x_return_status API返回狀態
x_msg_count API返回資訊數量
x_msg_data API返回訊息內容
p_currency_code 幣種
值來源
select currency_code from fnd_currencies;
p_receipt_number 收款編號
p_receipt_date 收款日期
p_gl_date 入賬日期
p_customer_number 客戶編號
值來源
select b.account_number
from hz_parties a,
hz_cust_accounts b
where a.party_name = '&Customer_name'
and a.party_id = b.party_id
p_receipt_method_id 收款方法
值來源
select receipt_method_id from ar_receipt_methods;
p_cr_id 返回的收款ID
API成功後,將會把資料提交到AR_RECEIVABLE_APPLICATIONS_ALL中
API程式碼例項
DECLARE
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(240);
l_cash_receipt_id NUMBER;
p_count number := 0;
BEGIN
-- 1) Set the applications context
mo_global.init('AR');--初始化MOAC
mo_global.set_policy_context('S', '261');--261是OU的ID
fnd_global.apps_initialize(2125, 51260, 280, 0);--2125是USER_ID,51260是responsibility_id,280是application_id
-- 2) Call the API
AR_RECEIPT_API_PUB.CREATE_CASH
( p_api_version => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_commit => FND_API.G_TRUE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_currency_code => 'CNY',
p_amount => 10000,
p_receipt_number => 'TEST20120120',
p_receipt_date => '20-01-2012',
p_gl_date => '20-01-2012',
p_customer_number => 1945,
p_receipt_method_id => 2004,
p_cr_id => l_cash_receipt_id );
-- 3) Review the API output
dbms_output.put_line('Status ' || l_return_status);
dbms_output.put_line('Cash Receipt id ' || l_cash_receipt_id );
dbms_output.put_line('Message count ' || l_msg_count);
if l_msg_count = 1 Then
dbms_output.put_line('l_msg_data '||l_msg_data);
elsif l_msg_count > 1 Then
loop
p_count := p_count + 1;
l_msg_data := FND_MSG_PUB.Get(FND_MSG_PUB.G_NEXT,FND_API.G_FALSE);
if l_msg_data is NULL then
exit;
end if;
dbms_output.put_line('Message ' || p_count ||'. '||l_msg_data);
end loop;
end if;
END;
3.2 AR_RECEIPT_API_PUB.APPLY
API描述
改API一次可以核銷一張INVOICE,如果需要核銷多張INVOICE,可以迴圈呼叫。
API程式碼詳解
AR_RECEIPT_API_PUB.APPLY
( p_api_version IN NUMBER,,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_cash_receipt_id IN ar_cash_receipts.cash_receipt_id%TYPEDEFAULT NULL,,
p_customer_trx_id INra_customer_trx.customer_trx_id%TYPE DEFAULT NULL,
p_amount_applied INar_receivable_applications.amount_applied%TYPE DEFAULT NULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data => OUTNOCOPY VARCHAR2);