1. DECLARE
  2. --p_old_new_flag OLD 为导出 NEW 为导入
  3. l_iface_rec inv.mtl_transactions_interface%ROWTYPE;
  4. l_iface_lot_rec inv.mtl_transaction_lots_interface%ROWTYPE;
  5. l_timeout NUMBER;
  6. l_outcome BOOLEAN;
  7. l_error_code VARCHAR2(100);
  8. l_error_explanation VARCHAR2(100);
  9. l_request_id NUMBER;
  10. l_sqlerrm VARCHAR2(1000);
  11.  
  12. l_inventory_item_id NUMBER;
  13. l_organization_id NUMBER;
  14. l_uom VARCHAR2(240);
  15. l_disposition_id NUMBER;
  16. l_subinventory_code VARCHAR2(240);
  17. l_count NUMBER;
  18. l_locator_id NUMBER;
  19. l_error_msg VARCHAR2(32767);
  20.  
  21. CURSOR cur IS
  22. SELECT t.import_id,
  23. t.organization_code,
  24. t.item_number,
  25. t.subinventory_code,
  26. t.transaction_type transaction_type1,
  27. decode(t.transaction_type,
  28. '帐户别名接收',
  29. 41,
  30. '帐户别名发放',
  31. 31,
  32. NULL) transaction_type,
  33. t.account_alias,
  34. t.transaction_uom,
  35. t.transaction_date,
  36. t.lot_number,
  37. decode(t.transaction_type,
  38. '帐户别名接收',
  39. t.transaction_quantity,
  40. '帐户别名发放',
  41. t.transaction_quantity * (-1),
  42. NULL) transaction_quantity,
  43. t.attribute1,
  44. t.attribute2,
  45. t.attribute3,
  46. t.attribute4,
  47. t.attribute5
  48. FROM cux_inv_mmt_account_temp t
  49. WHERE 1 = 1
  50. --AND t.item_number = '1515453000051'
  51. ;
  52. BEGIN
  53.  
  54. mo_global.init('INV');
  55. fnd_global.apps_initialize(user_id => 1318,
  56. resp_id => 50559,
  57. resp_appl_id => 222);
  58. mo_global.set_policy_context('S',
  59. 83);
  60.  
  61. l_count := 0;
  62. FOR rec IN cur
  63. LOOP
  64.  
  65. l_error_msg := NULL;
  66. l_iface_rec.last_update_date := SYSDATE;
  67. l_iface_rec.last_updated_by := -1;
  68. l_iface_rec.creation_date := SYSDATE;
  69. l_iface_rec.created_by := -1;
  70. l_iface_rec.last_update_login := -1;
  71. l_iface_lot_rec.last_update_date := SYSDATE;
  72. l_iface_lot_rec.last_updated_by := -1;
  73. l_iface_lot_rec.creation_date := SYSDATE;
  74. l_iface_lot_rec.created_by := -1;
  75. l_iface_lot_rec.last_update_login := -1;
  76.  
  77. SELECT mtl_material_transactions_s.nextval
  78. INTO l_iface_rec.transaction_interface_id
  79. FROM dual;
  80.  
  81. BEGIN
  82. SELECT msi.inventory_item_id,
  83. msi.organization_id,
  84. msi.primary_uom_code
  85. INTO l_inventory_item_id, l_organization_id, l_uom
  86. FROM mtl_system_items_b msi, org_organization_definitions ood
  87. WHERE 1 = 1
  88. AND msi.organization_id = ood.organization_id
  89. AND ood.organization_code = rec.organization_code
  90. AND msi.segment1 = rec.item_number;
  91. EXCEPTION
  92. WHEN OTHERS THEN
  93. l_error_msg := l_error_msg || '物料' || rec.item_number || '不存在';
  94. END;
  95.  
  96. BEGIN
  97. SELECT mgd.disposition_id
  98. INTO l_disposition_id
  99. FROM mtl_generic_dispositions mgd
  100. WHERE 1 = 1
  101. AND mgd.organization_id = l_organization_id
  102. AND mgd.segment1 = rec.account_alias;
  103. EXCEPTION
  104. WHEN OTHERS THEN
  105. l_error_msg := l_error_msg || '账户别名不存在';
  106. END;
  107.  
  108. BEGIN
  109. SELECT msi.secondary_inventory_name
  110. INTO l_subinventory_code
  111. FROM mtl_secondary_inventories msi
  112. WHERE 1 = 1
  113. AND msi.organization_id = l_organization_id
  114. AND msi.secondary_inventory_name = rec.subinventory_code;
  115. EXCEPTION
  116. WHEN OTHERS THEN
  117. l_error_msg := l_error_msg || '子库存不存在';
  118. END;
  119.  
  120. IF (rec.attribute1 IS NOT NULL) THEN
  121. BEGIN
  122. SELECT mik.inventory_location_id
  123. INTO l_locator_id
  124. FROM mtl_item_locations_kfv mik
  125. WHERE mik.concatenated_segments = rec.attribute1
  126. AND mik.organization_id = l_organization_id
  127. AND mik.subinventory_code = rec.subinventory_code;
  128. EXCEPTION
  129. WHEN no_data_found THEN
  130. l_error_msg := l_error_msg || '货位不存在';
  131. END;
  132. END IF;
  133.  
  134. --dbms_output.put_line('1!');
  135.  
  136. l_iface_rec.transaction_header_id := l_iface_rec.transaction_interface_id;
  137. l_iface_rec.transaction_mode := 3;
  138. l_iface_rec.process_flag := 1;
  139. l_iface_rec.transaction_type_id := rec.transaction_type; --41 帐户别名接收 31 帐户别名发放
  140. l_iface_rec.transaction_source_id := l_disposition_id; --来源
  141. l_iface_rec.organization_id := l_organization_id;
  142. l_iface_rec.inventory_item_id := l_inventory_item_id;
  143. l_iface_rec.subinventory_code := rec.subinventory_code;
  144. l_iface_rec.locator_id := l_locator_id;
  145. l_iface_rec.transaction_quantity := rec.transaction_quantity; --出库数量为负数 入库数量为正数
  146. l_iface_rec.primary_quantity := rec.transaction_quantity;
  147. l_iface_rec.transaction_uom := l_uom;
  148. l_iface_rec.transaction_date := rec.transaction_date;
  149. l_iface_rec.source_code := '账户别名接收/发放';
  150. l_iface_rec.source_header_id := to_number(to_char(SYSDATE,
  151. 'YYYYMMDDHH24MISS'));
  152. l_iface_rec.source_line_id := to_number(to_char(SYSDATE,
  153. 'YYYYMMDDHH24MISS'));
  154.  
  155. IF (l_error_msg IS NULL) THEN
  156. INSERT INTO inv.mtl_transactions_interface VALUES l_iface_rec;
  157. END IF;
  158.  
  159. IF (rec.lot_number IS NOT NULL) THEN
  160. l_iface_lot_rec.transaction_interface_id := l_iface_rec.transaction_interface_id;
  161. l_iface_lot_rec.lot_number := rec.lot_number;
  162. l_iface_lot_rec.transaction_quantity := l_iface_rec.transaction_quantity;
  163. l_iface_lot_rec.source_code := l_iface_rec.source_code;
  164. l_iface_lot_rec.source_line_id := l_iface_rec.source_line_id;
  165.  
  166. IF (l_error_msg IS NULL) THEN
  167. INSERT INTO inv.mtl_transaction_lots_interface
  168. VALUES l_iface_lot_rec;
  169. END IF;
  170. END IF;
  171.  
  172. IF (l_error_msg IS NULL) THEN
  173. l_timeout := 10;
  174. l_outcome := mtl_online_transaction_pub.process_online(p_transaction_header_id => l_iface_rec.transaction_header_id,
  175. p_timeout => l_timeout,
  176. p_error_code => l_error_code,
  177. p_error_explanation => l_error_explanation);
  178.  
  179. IF (l_outcome = FALSE) THEN
  180. dbms_output.put_line('Failed*******Import_id:' || rec.import_id);
  181. dbms_output.put_line('Failed!');
  182. dbms_output.put_line('l_error_code:' || l_error_code);
  183. dbms_output.put_line('l_error_explanation:' || l_error_explanation);
  184. ELSIF (l_outcome = TRUE) THEN
  185. l_count := l_count + 1;
  186. END IF;
  187. END IF;
  188.  
  189. IF (l_error_msg IS NOT NULL) THEN
  190. dbms_output.put_line('l_error_msg:' || l_error_msg);
  191. END IF;
  192.  
  193. END LOOP;
  194. dbms_output.put_line('SuccessFul:' || l_count);
  195.  
  196. EXCEPTION
  197. WHEN OTHERS THEN
  198. dbms_output.put_line('Exception!' || SQLERRM);
  199. END;

  

--期初数据导入,创建表存储

  1. create table cux_inv_mmt_account_temp(
  2. IMPORT_ID NUMBER,
  3. ORGANIZATION_CODE VARCHAR2(),
  4. ITEM_NUMBER VARCHAR2(),
  5. SUBINVENTORY_CODE VARCHAR2(),
  6. TRANSACTION_TYPE VARCHAR2(),
  7. ACCOUNT_ALIAS VARCHAR2(),
  8. TRANSACTION_UOM VARCHAR2(),
  9. TRANSACTION_DATE DATE,
  10. LOT_NUMBER VARCHAR2(),
  11. TRANSACTION_QUANTITY NUMBER,
  12. ATTRIBUTE1 VARCHAR2(),
  13. ATTRIBUTE2 VARCHAR2(),
  14. ATTRIBUTE3 VARCHAR2(),
  15. ATTRIBUTE4 VARCHAR2(),
  16. ATTRIBUTE5 VARCHAR2()
  17. )

INV*账户别名接收发放的更多相关文章

  1. 物料事务处理接口表 MTL_TRANSACTIONS_INTERFACE 账户别名使用 及 提示无效的分配账户字段

    实例: PROCEDURE MAIN(P_ORGANIZATION_ID NUMBER, P_PERIOD_NAME VARCHAR2, XV_STATUS OUT VARCHAR, XV_MESG ...

  2. 所有标准API

    序号 系统版本 模块 应用场景 类型 API/接口 参数规格 样例代码 备注 登记者 登记时间 关键字 1 12.1.3 AP 付款核销 API ap_pay_invoice_pkg.ap_pay_i ...

  3. Oracle EBS-SQL (INV-2):检查帐户别名发放记录.sql

    SELECT FU.description                 操作者,         ITM.SEGMENT1               物料编码,         ITM.DESC ...

  4. ORACLE EBS常用表及查询语句(最终整理版)

    建议去看参考二 参考一:                                                              call fnd_global.APPS_INITI ...

  5. PMS与orcalebs结合之字段

    call fnd_global.APPS_INITIALIZE(1318,50583,401) select fnd_profile.VALUE('ORG_ID') FROM DUAL select ...

  6. Oracle常用标准表

    一.INV(库存) 子库存:mtl_secondary_inventories 事物处理:mtl_material_transactions mmt 事务处理来源类型:mtl_txn_source_t ...

  7. EBS常用表_Dictionary

    EBS常用表:转载于 https://blog.csdn.net/xiariqingcao/article/details/8775827 . OU.库存组织 SELECT hou.organizat ...

  8. 具体解释EBS接口开发之WIP模块接口

    整体说明 文档目的 本文档针对WIP模块业务功能和接口进行分析和研究,对採用并发请求方式和调用API方式分别进行介绍 内容 WIP模块经常使用标准表简单介绍 WIP事物处理组成 WIP相关业务流程 W ...

  9. 详解EBS接口开发之WIP模块接口

    总体说明 文档目的 本文档针对WIP模块业务功能和接口进行分析和研究,对采用并发请求方式和调用API方式分别进行介绍 内容 WIP模块常用标准表简介 WIP事物处理组成 WIP相关业务流程 WIP相关 ...

随机推荐

  1. lombok常用注解@Data@AllArgsConstructor@NoArgsConstructor@Builder@Accessors

    原贴:https://blog.csdn.net/ChenXvYuan_001/article/details/84961992 https://blog.csdn.net/weixin_382293 ...

  2. /etc/rc.local

    /etc/rc.local是/etc/rc.d/rc.local的软连接 应用于指定开机启动的进程 开机启动不生效,则首先需要检查下/etc/rc.d/rc.local是否具有可执行权限 在配置文件中 ...

  3. 2-开发共享版APP(接入指南)-设备接入说明:快速接入

    https://www.cnblogs.com/yangfengwu/p/11249674.html 该APP安装包下载链接: http://www.mnif.cn/appapk/IotDevelop ...

  4. C Primer Plus--高级数据结构之二叉树

    目录 二叉搜索树 Binary Search Tree 用C构建二叉树ADT 树结构的定义 C Primer Plus--高级数据结构表示之二叉树 二叉搜索树 Binary Search Tree 二 ...

  5. springMVC开启声明式事务实现操作日志记录

    第一步.在applicationContext-mvc.xml开启AOP注解扫描 <aop:aspectj-autoproxy/> 第二步.创建增强类,实现日志记录 @Component ...

  6. mysql 为啥用b+ 树

    原因就是为了减少磁盘io次数,因为b+树所有最终的子节点都能在叶子节点里找见, 所以非叶子节点只需要存`索引范围和指向下一级索引(或者叶子节点)的地址` 就行了, 不需要存整行的数据,所以占用空间非常 ...

  7. Spring Boot-intellij idea导入方式搭建SpringBoot

    Spring Boot概念 从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用.简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用.框架的发布版 ...

  8. 善用mysql中的FROM_UNIXTIME()函数和UNIX_TIMESTAMP()函数

    我们经常会面临要从数据库里判断时间,取出特定日期的查询.但是数据库里储存的都是unix时间戳,处理起来并不是特别友好.幸而MYSQL提供了几个处理时间戳的函数,可以帮助我们在查询的时候,就将时间戳格式 ...

  9. func 传参异步方法

    public async Task<T> AssignAsync<T>(string key, Func<T> acquire) {} var result = a ...

  10. C++实现委托机制(三)——lambda表达式封装

    C++.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lamb ...