DECLARE
--8000000063
l_dummy varchar2(240);
l_customer_trx_id ra_customer_trx.customer_trx_id%type;
l_line_credits_flag ra_cm_requests.line_credits_flag%type;
l_line_amount number;
l_freight_amount number := 0;
l_cm_lines_tbl arw_cmreq_cover.cm_line_tbl_type_cover;
l_cm_reason_code varchar2(150);
l_comments varchar2(150); l_msg_count number := 0;
l_msg_data varchar2(20000) := null;
l_return_status varchar2(1);
l_request_id NUMBER;
l_batch_source_name varchar2(150) default null; cm_trx_id number; BEGIN -- c. Set the applications and org context
fnd_global.apps_initialize(1110,50683,222); mo_global.init('AR');
mo_global.set_policy_context('S',121); -- d. provide CUSTOMER_TRX_ID of the invoice to credit
l_customer_trx_id := 165023; l_comments := 'Demo for Create_Request API'; -- e. Populate Batch Source information
l_batch_source_name := 'OM前受'; -- f. the presence of l_cm_lines_tbl indicates this is a LINE-LEVEL credit
-- details for (1) are credits against line #1 identified by customer_trx_line_id = 824472
l_cm_lines_tbl(1).customer_trx_line_id := 403228;
l_cm_lines_tbl(1).quantity_credited := null;
l_cm_lines_tbl(1).price := null;
l_cm_lines_tbl(1).extended_amount := -151000; -- details for (2) are credits against line #2 identified by customer_trx_line_id = 824473
--l_cm_lines_tbl(2).customer_trx_line_id := 824473;
--l_cm_lines_tbl(2).quantity_credited := -2;
--l_cm_lines_tbl(2).price := 2000.00;
--l_cm_lines_tbl(2).extended_amount := -4000.00; -- g. call CREATE_REQUEST
AR_CREDIT_MEMO_API_PUB.CREATE_REQUEST(
P_API_VERSION => 1.0,
P_INIT_MSG_LIST => FND_API.G_TRUE,
P_COMMIT => FND_API.G_FALSE,
P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
P_CUSTOMER_TRX_ID => l_customer_trx_id,
P_LINE_CREDIT_FLAG => 'Y',
P_CM_REASON_CODE => 'RETURN',
P_CM_LINE_TBL => l_cm_lines_tbl,
P_SKIP_WORKFLOW_FLAG => 'Y',
P_CREDIT_METHOD_INSTALLMENTS => null,
P_CREDIT_METHOD_RULES => null,
P_BATCH_SOURCE_NAME => l_batch_source_name,
P_ORG_ID => 121,
X_REQUEST_ID => l_request_id,
X_RETURN_STATUS => l_return_status,
X_MSG_COUNT => l_msg_count,
X_MSG_DATA => l_msg_data); -- h. return information about the status of the API run
FND_MSG_PUB.count_and_get (
p_encoded => FND_API.g_false,
p_count => l_msg_count,
p_data => l_msg_data ); dbms_output.put_line('Return Status ==> '||l_return_status);
dbms_output.put_line('Credit Memo request_id ==> '||l_request_id);
dbms_output.put_line('l_msg_count ==> '||l_msg_count); -- i. display messages from the message stack
FOR I IN 1..L_MSG_COUNT LOOP
DBMS_OUTPUT.PUT_LINE(SUBSTR(FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F'), 1, 254));
END LOOP; IF l_return_status <> 'S' THEN
NULL;
ELSE
select cm_customer_trx_id
into cm_trx_id
from ra_cm_requests_all
where request_id = l_request_id; dbms_output.put_line(' CM trx_id = '|| cm_trx_id );
-- You can issue a COMMIT; at this point if you want to save the created credit memo to the database
END IF; EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('exception error!');
dbms_output.put_line(substr(sqlerrm, 1, 80));
fnd_message.retrieve(l_dummy);
dbms_output.put_line(l_dummy);
END;

參考文档:

Oracle Receivables Credit Memo API: Setup and Sample Scripts (Doc ID 1272600.1)

使用API创建AR 贷项通知单的更多相关文章

  1. Oracle EBS AR 贷项通知单核销取值

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  2. Oracle EBS AP 创建贷项通知单并核销到相应发票

    --1.0 生成与发票一样的贷项通知单 created by jenrry 20170423 DECLARE L_CUSTOMER_TRX_ID NUMBER; L_INVOICE_NUMBER VA ...

  3. Oracle EBS 贷项通知单核销

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  4. SharePoint REST API - 列表和列表项

    博客地址:http://blog.csdn.net/FoxDave 本篇主要讲述如何用SharePoint REST操作列表和列表项.阅读本篇时请先了解前面讲述的REST介绍和基本操作. 废话不多 ...

  5. ASP.NET---如何使用web api创建web服务

    1 首先创建asp.net web空项目,并且创建模拟数据,我在工程下面创建了一个Models文件夹,在文件夹Nodels下面创建类Product和Repository 具体如下: [Serializ ...

  6. TFS API : 四、工作项查询

    TFS API : 四.工作项查询 本节将讲述如何查询工作项,将用户统计数据. 使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似: Select [标题] f ...

  7. 使用Azure REST API创建虚拟机

    Hollis Yao, Shihao Rong  使用REST API创建虚拟机之前,首先要确保Azure订阅中已经建好了"云服务"和"存储账号".如果没有的话 ...

  8. 使用hbase的api创建表时出现的异常

    /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...

  9. (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0)

    (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0) 更新:ios4.1现在已经将这个做到SDK了.你可以设置键盘类型为UIKeyboardTypeDecimal ...

随机推荐

  1. Codeforces Round #253 DIV1 C 馋

    http://codeforces.com/contest/442/problem/C 题意非常easy,基本上肯定有坑坑洼洼的样子.看题目案例,从第三个跟第二个没有凹的案例来看的话,多写几个以及多画 ...

  2. MyBatis一级缓存引起的无穷递归

    MyBatis一级缓存引起的无穷递归 引言: 最近在项目中参与了一个领取优惠劵的活动,当多个用户领取同一张优惠劵的时候,使用了数据库锁控制并发,起初的设想是:如果多个人同时领一张劵,第一个到达的人领取 ...

  3. 关于多线程的一个例子(UI实时显示)

    在开发Window应用程序的时候,经常需要在界面上显示出已经执行到什么步骤了,拿一个简单例子来说,创建一个Winform程序,在窗体上访一个Button和一个Label,点击Button时做100次循 ...

  4. SSH协议详解(转)

    转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式 ...

  5. 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...

  6. Applet 数字签名技术完全攻略

      这里说声对不起大家.毕竟2几年前,我想写这篇文章,但因为他才懒得一直没有写.同时也给自己的东西好.前些日子我老大让我又搞这个东西发现我曾经的资料没留,又凭着自己印象从新来过.但发现网上写的东西真的 ...

  7. UML序列图总结(转)

    序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线 ...

  8. Vector Clock理解

    背景近期在重读"Dynamo: Amazon's Highly Available Key-value Store"(经典好文,推荐!).文章4.4 中聊到了Data Versio ...

  9. Python3.4 邮件(包含附件与中国)

    import smtplib import os from email.mime.text import MIMEText from email.mime.multipart import MIMEM ...

  10. vim代码折叠命令简短

    作者:zhanhailiang 日期:2014-10-18 1. 通过fdm实现代码折叠:set fdm=xxx 有下面6种方式实现折叠: |fold-manual| manual Folds are ...