http://blog.csdn.net/fangz0615/article/details/38677085

Purpose

本文介绍了如何通过AR接口表进行AR事务处理(亦称AR发票)导入。

Applies To

version 12.1.3

本文中代码基于12.1.3测试通过。

Abstract

oracle支持两种不同的接口导入方式,一种是通过API导入,一种是通过接口表导入。关于API导入可以参考1242202.1。oracle标准功能OM自动开票到AR是通过接口表完成的。本文以接口表导入方式为主。

Details

一、导入前的准备

AR的接口表与其他的接口表稍稍有点不同,接口表标识字段是通过弹性域控制的,导入的数据如何分组(即一个invoice包含哪些行)也是通过弹性域控制的。ra_interface_lines_all中包含很多的弹性域,每一个弹性域都有不同的作用,详情可参考1068344.1。这些设置不仅仅适用于外部系统导入,也适用于OM autoinvoice.

1、配置弹性域

接口表的标识是通过弹性域组合interface_line_context,interface_line_attribute1~15来唯一标识的,具体使用哪些弹性域是通过配置的。

路径:OM:设置->财务系统->弹性域->说明性->段

这里我设置上下文为5211,列为interface_line_attribute2

2、配置分组规则

分组规则决定了哪些行会分到同一个ar invoice下。

路径:OM:设置->事务处理->自动开票->分组规则

注意红框内可以上下键选择不同的事务处理分类,可以针对不同的分类配置不同的分组规则。我们这里设置interface_line_attribute1。

这里说明一下,实际上,interface_line_attribute1中的值是会写入发票的参考字段的。

3、配置导入来源

发票导入时究竟是选择哪个分组规则,是通过来源控制的。

路径:OM:设置->事务处理->来源

4、配置客户、付款条件等

此处不详细介绍,参照相关文档设置即可。

二、导入代码

  1. -- applies to:  r12 12.1.3
  2. -- purpose:     AR invoice 多行导入
  3. DECLARE
  4. l_ar_iface_row ra_interface_lines_all%ROWTYPE;
  5. BEGIN
  6. mo_global.init('AR');
  7. mo_global.set_policy_context('S',
  8. '204');
  9. fnd_global.apps_initialize(1013616,
  10. 65883,
  11. 222,
  12. 0);
  13. l_ar_iface_row := NULL;
  14. l_ar_iface_row.interface_line_context       := '5211'; -- 上下文
  15. l_ar_iface_row.interface_line_attribute1    := '100'; -- 分组规则
  16. l_ar_iface_row.interface_line_attribute2    := 'TEST1357'; -- 分组标识
  17. l_ar_iface_row.orig_system_bill_customer_id := 116744; -- 客户
  18. l_ar_iface_row.orig_system_bill_address_id  := '11261'; -- 收单方地址
  19. l_ar_iface_row.term_id                      := 1145; -- 收款条件
  20. l_ar_iface_row.batch_source_name            := '5211_导入'; -- 来源
  21. l_ar_iface_row.currency_code                := 'CNY'; -- 币种
  22. l_ar_iface_row.conversion_type              := 'Corporate'; -- 汇率类型
  23. l_ar_iface_row.conversion_rate              := NULL; -- 汇率
  24. l_ar_iface_row.cust_trx_type_id             := 1; -- 发票分配
  25. l_ar_iface_row.line_number                  := 1; -- 行号
  26. l_ar_iface_row.description                  := 'import test 01'; -- 行说明
  27. l_ar_iface_row.quantity                     := 10; -- 数量
  28. l_ar_iface_row.unit_selling_price           := 100; -- 销售单价
  29. l_ar_iface_row.line_type                    := 'LINE'; -- 行类型
  30. l_ar_iface_row.org_id                       := 7911; -- OU
  31. l_ar_iface_row.amount                       := 1000; -- 金额
  32. INSERT INTO ra_interface_lines_all
  33. VALUES l_ar_iface_row;
  34. l_ar_iface_row.interface_line_context       := '5211';
  35. l_ar_iface_row.interface_line_attribute1    := '100';
  36. l_ar_iface_row.interface_line_attribute2    := 'TEST7531';
  37. l_ar_iface_row.orig_system_bill_customer_id := 116744;
  38. l_ar_iface_row.orig_system_bill_address_id  := '11261';
  39. l_ar_iface_row.term_id                      := 1145;
  40. l_ar_iface_row.batch_source_name            := '5211_导入'; --
  41. l_ar_iface_row.currency_code                := 'CNY'; --
  42. l_ar_iface_row.conversion_type              := 'Corporate';
  43. l_ar_iface_row.conversion_rate              := NULL;
  44. l_ar_iface_row.cust_trx_type_id             := 1;
  45. l_ar_iface_row.line_number                  := 2;
  46. l_ar_iface_row.description                  := 'import test 02';
  47. l_ar_iface_row.quantity                     := 10;
  48. l_ar_iface_row.unit_selling_price           := 100;
  49. l_ar_iface_row.line_type                    := 'LINE';
  50. l_ar_iface_row.org_id                       := 7911;
  51. l_ar_iface_row.amount                       := 1000;
  52. INSERT INTO ra_interface_lines_all
  53. VALUES l_ar_iface_row;
  54. END;
 

三、运行标准请求

将数据通过上述代码插入接口表后,运行“自动开票主程序”,选择所使用的来源,提交请求,请求会自动运行一个子程序“自动开票导入程序”导入AR发票。

四、错误调整

请求运行结束后,查看“自动开票导入程序”的输出的报表,如果导入成功,会提示导入成功。如果导入不成功,会提示报错,并提示错误原因。可根据错误原因对数据进行调整。可以直接通过后台修改数据 ,也可通过前台查看接口数据和接口例外。

路径:OM:控制->自动开票->接口行

路径:OM:控制->自控开票>接口列外

五、其他要说明的问题

这里主要讲下唯一标识的问题。上文中说到接口表的唯一标识是通过弹性域组合来控制的,实际上这个说法并不完成。应该说实际上,所有AR发票(包括在接口表中预导入的发票)都可以通过弹性域组合来控制唯一性。在我测试中遇到这样的问题,第一次将att1设置为100,发票导入成功。再次将att1为100的数据插入接口表,运行请求,导入失败,程序会报“此行与 Oracle Receivables 中的另一张发票具有相同的事务处理弹性域”,从报错中也可以看出,提示是与“另一张发票”具有相同的弹性域。

R12 AR INVOICE 接口表导入的更多相关文章

  1. AR自动开票主程序导入发票的时候,出现错误提示''不能获取汇款地址''

    问题:AR自动开票主程序,出现错误不能获取汇款地址 解决:AR>设置-打印-汇入地址,汇入地址要增加此客户地点对应的国家:

  2. 详解EBS接口开发之应收INVOICE导入

    (一)应收INVOICE常用标准表简介 1.1   常用标准表 如下表中列出了与应收INVOICE导入相关的表和说明: 表名 说明 其他信息 RA_BATCH_SOURCES_ALL AR事务处理来源 ...

  3. 总账:日记账导入流程(文档 ID 1591640.1)

    文档内容   概要   历史记录   详细信息   GL_INTERFACE_CONTROL   GL_INTERFACE_HISTORY   GL_IMPORT_REFERENCES   摘要   ...

  4. 详解EBS接口开发之供应商导入

    (一)供应商常用标准表简介 1.1   常用标准表 如下表中列出了与供应商相关的表和说明: 表名 说明 其他信息 ap_suppliers 供应商头表 供应商的头信息如:供应商名.供应商编码.税号等 ...

  5. ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)

    前言: 以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决. 本篇介绍与导入相关的代码. 1.前端追加导入时Post的参数: var grid = new AR ...

  6. 莱杰:期刊进口流程(文件 ID 1591640.1)

    文档内容   概要   _afrLoop=2068767096030752&id=1591640.1&_afrWindowMode=0&_adf.ctrl-state=qivv ...

  7. [转]Oracle EBS APIs

    FROM:http://blog.csdn.net/pan_tian/article/details/7754598 API To Find Sales Order's Subtotal,discou ...

  8. Purchase Document Open Interface(PDOI)

    PO模块也有自己的接口表,多用于把其他业务系统在Oracle EBS系统生成采购订单记录. Table Name Description Type PO_HEADERS_INTERFACE This ...

  9. Oracle EBS应用笔记整理 (转自IT++ flyingkite)

    ***************************************************** Author: Flyingkite Blog:   http://space.itpub. ...

随机推荐

  1. Cannot find a valid baseurl for repo: base/7/x86_64

    yum -y install tigervnc-server 出现Cannot find a valid baseurl for repo: base/7/x86_64 其实问题很简单.就是cento ...

  2. ajax异步请求该嵌套还是并列?

    因为要查询两个数据库表才能确定我所需要的数据范围,所以前台js得发两次ajax请求.问题就是,这两个请求是嵌套着写:{发,接{发,接}}:还是并列着写:{发,接},{发,接} 好? 答案:如果2次aj ...

  3. Nodejs学习笔记:基础

    本文章主要记录Nodejs基础知识点 安装 首先从Node.js官网下载安装包,并添加到环境变量.然后打开命令行,输入 node --version ,可查看版本信息 npm是Node.js的包管理工 ...

  4. Spark学习笔记-GraphX-1

    Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报  分类: Spark(8)  版权声明: ...

  5. 【51NOD】1006 最长公共子序列Lcs(动态规划)

    给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为:   abcicba abdkscab   ab是两个串的子序列,abc也是,abca也是,其中abca是这两个 ...

  6. Gym-100883F、Gym-101095B状态压缩小结

    状态压缩的核心思想就是将数压缩成二进制,用二进制位来表示对应的位能取或者不能取,相比起来很方便. Eg:Gym-100883F 题意:给你两个字符串,要求你将两个字符串合起来,并不改变原先的顺序,一共 ...

  7. python之Flask框架

    一.简单的Flask框架 1)flask简介 Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序. 这个 wdb 应用程序可以使一些 we ...

  8. 常用模块 plus

    一.os 模块 1. os os.makedirs  创建多级目录 os.mkdir 只能创建一层  如果是多层,上层文件夹必须存在 os.removedirs  删除目录集中所有空文件夹 os.rm ...

  9. mysql 查询中文字段 没有结果的解决方法

    代码如下: $conn = new mysqli('localhost', 'root', '', 'excel');$sql = "select 中信一级行业 from excel gro ...

  10. Mybatis-Plus 实战完整学习笔记(六)------select测试一

    查询方法(3.0.3) 1.查询一个员工的数据 @Test public void selectMethod() throws SQLException { // 根据ID获取一个对象的数据 Empl ...