实例:

PROCEDURE MAIN(P_ORGANIZATION_ID NUMBER,
P_PERIOD_NAME VARCHAR2,
XV_STATUS OUT VARCHAR,
XV_MESG OUT VARCHAR2) IS
CURSOR LCUR_ADJUST IS
SELECT COQ.TRX_ID,
COQ.ORGANIZATION_ID,
COQ.ITEM_ID,
MTL.PRIMARY_UOM_CODE,
COQ.SUBINVENTORY_CODE,
COQ.LOCATOR_ID,
COQ.LOT_NUMBER,
(COQ.CHECK_QTY-COQ.ONHAND_QTY) ADJUST_QTY,
COQ.PERIOD_NAME
FROM CUX_ONHAND_QTY_ADJUST_T COQ
JOIN MTL_SYSTEM_ITEMS_B MTL
ON MTL.INVENTORY_ITEM_ID=COQ.ITEM_ID
AND MTL.ORGANIZATION_ID=COQ.ORGANIZATION_ID
WHERE COQ.ORGANIZATION_ID=P_ORGANIZATION_ID
AND COQ.PERIOD_NAME=P_PERIOD_NAME
AND NVL(COQ.IMPORT_FLAG,'N')='N'
AND COQ.ONHAND_QTY<>COQ.CHECK_QTY;
lv_transaction_date DATE;
lv_distribution_account_id NUMBER;
lv_transaction_source_id NUMBER;
ln_txn_type_id NUMBER;
ln_period_id number;
ln_txn_source_type_id NUMBER :=6;
l_iface_rec inv.mtl_transactions_interface%ROWTYPE;
l_iface_lot_rec inv.mtl_transaction_lots_interface%ROWTYPE;
BEGIN
XV_STATUS:='S';
BEGIN
SELECT GP.SCHEDULE_CLOSE_DATE,GP.ACCT_PERIOD_ID INTO lv_transaction_date,ln_period_id FROM org_acct_periods GP
WHERE GP.PERIOD_NAME=P_PERIOD_NAME
AND GP.ORGANIZATION_ID=P_ORGANIZATION_ID
AND GP.open_flag = 'Y'
AND GP.PERIOD_SET_NAME='ZH_GL_PERIOD';
EXCEPTION
WHEN OTHERS THEN
XV_STATUS:='E';
XV_MESG:=XV_MESG||'获取期间日期出现错误!';
END;
IF lv_transaction_date>SYSDATE THEN
lv_transaction_date:=SYSDATE;
END IF;
BEGIN
SELECT distribution_account, disposition_id
INTO lv_distribution_account_id, lv_transaction_source_id
FROM mtl_generic_dispositions
WHERE organization_id = P_ORGANIZATION_ID
AND segment1 LIKE '%在线盈亏'
AND disable_date IS NULL
AND effective_date <= SYSDATE
AND ROWNUM=1;
EXCEPTION
WHEN OTHERS THEN
XV_STATUS:='E';
XV_MESG:=XV_MESG||'账户别名类型出现错误!';
END;
IF XV_STATUS<>'E' THEN
FOR LC IN LCUR_ADJUST LOOP
IF LC.ADJUST_QTY>0 THEN
ln_txn_type_id:=41;--账户别名接收
ELSE
ln_txn_type_id:=31;--账户别名发放
END IF;
SELECT mtl_material_transactions_s.nextval
INTO l_iface_rec.transaction_interface_id
FROM dual;
l_iface_rec.last_update_date := SYSDATE;
l_iface_rec.last_updated_by := FND_GLOBAL.USER_ID;
l_iface_rec.creation_date := SYSDATE;
l_iface_rec.created_by := FND_GLOBAL.USER_ID;
l_iface_rec.last_update_login := -1;
l_iface_rec.transaction_header_id := l_iface_rec.transaction_interface_id;
l_iface_rec.transaction_mode := 3;
l_iface_rec.process_flag := 1;
l_iface_rec.transaction_type_id := ln_txn_type_id;
l_iface_rec.transaction_source_id := lv_transaction_source_id;
l_iface_rec.Transaction_Source_Type_Id :=ln_txn_source_type_id;
l_iface_rec.organization_id := LC.ORGANIZATION_ID;
l_iface_rec.inventory_item_id := LC.ITEM_ID;
l_iface_rec.locator_id :=LC.LOCATOR_ID;
l_iface_rec.subinventory_code := LC.SUBINVENTORY_CODE;
l_iface_rec.transaction_quantity := LC.ADJUST_QTY;
l_iface_rec.Primary_Quantity := LC.ADJUST_QTY;
l_iface_rec.transaction_uom := LC.PRIMARY_UOM_CODE;
l_iface_rec.transaction_date := lv_transaction_date;
l_iface_rec.acct_period_id :=ln_period_id;
l_iface_rec.source_code := '库存期末调整';
l_iface_rec.source_header_id := l_iface_rec.transaction_interface_id;
l_iface_rec.source_line_id := LC.TRX_ID;
--l_iface_rec.distribution_account_id:=lv_distribution_account_id;
INSERT INTO inv.mtl_transactions_interface VALUES l_iface_rec;
IF LC.LOT_NUMBER IS NOT NULL THEN
l_iface_lot_rec.transaction_interface_id := l_iface_rec.transaction_interface_id;
l_iface_lot_rec.lot_number := LC.LOT_NUMBER;
l_iface_lot_rec.transaction_quantity := l_iface_rec.transaction_quantity;
l_iface_lot_rec.source_code := l_iface_rec.source_code;
l_iface_lot_rec.source_line_id := l_iface_rec.source_line_id;
END IF;
UPDATE CUX_ONHAND_QTY_ADJUST_T COQA SET COQA.IMPORT_FLAG='Y' WHERE COQA.TRX_ID=LC.TRX_ID;
END LOOP;
COMMIT;
DELETE CUX_ONHAND_QTY_ADJUST_T COQ WHERE COQ.IMPORT_FLAG IS NULL;
COMMIT;
END IF;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
XV_STATUS:='E';
XV_MESG:=XV_MESG||'数据插入接口出现错误!';
END;

插入接口表数据后,系统会使用计划的请求“库存事务处理工作流程” 和“处理事务处理接口” (接口管理中提交)对数据进行验证和处理

遇到问题:分配账户字段无效

原因分析:

1、刚开始处理以为是账户组合被失效,检查每个账户字段未发现失效的段。然后通过系统标准的杂项事物处理功能操作账户别名,同样的账户别名可以正常操作,正常产生分配。

3、考虑可能由账户安全性问题导致,但是用具体可操作的职责在事务处理接口界面查到后重新提交,发现仍有问题。

2、后查看请求“库存事务处理工作流程” 和“处理事务处理接口” ,发现这两个请求是由一个单一访问库存组织的职责提交。可访问的公司段为102,但出错的事务处理账户分配公司段是101,由此得出错误出现的原因。

3、系统在提交请求时会按照请求所提交的职责进行安全性验证(这就是我们在程序包调用请求时需要先初始化职责的原因)。

结论:

由以上分析可以得出,事务处理接口表中的数据在验证和处理时与请求提交的职责安全性验证有关,与数据录入的职责无关。

所以在提交公共的接口处理及工作流处理请求时,一定要使用全访问的安全性校验的职责否则就会出现问题。

物料事务处理接口表 MTL_TRANSACTIONS_INTERFACE 账户别名使用 及 提示无效的分配账户字段的更多相关文章

  1. INV*账户别名接收发放

    DECLARE --p_old_new_flag OLD 为导出 NEW 为导入 l_iface_rec inv.mtl_transactions_interface%ROWTYPE; l_iface ...

  2. 根据ccid取得账户,更改某段值再创建账户,返回新的ccid

    CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS * =============================================== * ...

  3. win10访问共享文件夹提示:引用的账户当前已锁定,且当前可能无法登陆

    最近一台电脑访问windows 2008 R2 server的共享文件夹.没有使用域环境. win10界面提示:引用的账户当前已锁定,且当前可能无法登陆. 登陆2008发现,该账户的确锁定.猜测可能该 ...

  4. 物料事务处理interface与temp解析

    MTL_TRANSACTIONS_INTERFACE MTL_TRANSACTIONS_INTERFACE is the interface point between non– Inventory ...

  5. INV 调试: 如何获取库存物料事务处理调试信息

     1. 按如下方式设置系统配置文件值: 系统配置文件值 地点/用户/应用/职责层配置文件值 --汇总 FND: 启用调试日志   是 FND:调试日志层级   陈述 INV: 调试跟踪: 是 IN ...

  6. 【EBS】取数SQL-平均成本更新的物料事务处理追溯到应付发票

    SELECT hou.name,--组织 aia.invoice_num,--发票编号 msib.segment1,--物料编码 mmt.transaction_id--物料事务处理 FROM mtl ...

  7. windows 10微软账户不能访问局域网共享,但是本地账户可以访问

    windows10有时候无法访问局域网的共享文件夹.会提示没有权限. 如果共享的文件夹已经设置为everyone,那么通常是windows 10用的是微软账户登录的. 有两个方案可以处理这种情况. 一 ...

  8. win10 设定计划任务时提示所指定的账户名称无效,如何解决?

    我想把我的 python 爬虫脚本设定为自动定时执行,我的设备是win10 操作系统,这将用到系统自带的计划任务功能.且我希望不管用户是否登录都要运行该定时任务,但在设置计划任务的属性时,遇到一个报错 ...

  9. 待研究:insert客商账户触发器增加条件提示为空

    增加客商时候重名不给保存,增加修改条件提示找不到

随机推荐

  1. 【OpenMesh】使用迭代器和循环机

    原文出处: http://openmesh.org/Documentation/OpenMesh-Doc-Latest/tutorial.html 这个例子展现: 如何使用迭代器 如何使用循环机 这个 ...

  2. 玩转docker镜像和镜像构建

    摘要 本文从个人的角度,讲述对于docker镜像和镜像构建的一些实践经验.主要内容包括利用docker hub进行在线编译,下载镜像,dind的实践,对于镜像的一些思考等.本文是对当时微信分享内容的一 ...

  3. CoreCRM 开发实录 —— 单元测试、测试驱动开发和在线服务

    测试不是问题,问题是怎么测试. ## 单元测试 我认为单元测试已经是无可争议的最佳开发实践之一.但是很多人并不同意这个观点.他们的说法无非是:写测试需要花很多时间,需求又经常变动,一但变动,一大片测试 ...

  4. VS超强调试技巧--忍不住想赞一下

    你是否曾遇到一个项目启动都要半分钟? 启动后调试或突然看到有行代码写错了?然后开始了: 处理步骤:停止运行->修改代码->重新启动(10-30秒)->又写错了->又要修改-&g ...

  5. C语言之二维数组

    二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例:  int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...

  6. js中的document.body.scrollTop与document.documentElement.scrollTop

    获取当前页面滚动条纵坐标的位置:document.body.scrollTop与document.documentElement.scrollTop获取当前页面滚动条横坐标的位置:document.b ...

  7. Python json解析

    #encoding: utf-8 ''' Author:Siukwan ''' import sys reload(sys) sys.setdefaultencoding('utf8') import ...

  8. 字典(Tire树)

    4189 字典  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master     题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个 ...

  9. 七、rdd究竟是什么

    RDD是个抽象类,定义了诸如map().reduce()等方法,但实际上继承RDD的派生类一般只要实现两个方法: def getPartitions: Array[Partition] def com ...

  10. 菜鸟互啄:WINFORM如何实现无聚焦框的Button按钮

    当我们将一个button按钮设置如下属性时,总有一个聚焦框来困扰着我们 button1.FlatStyle = FlatStyle.Flat; 我们想要的效果是这样的: 但当使用了Tab切换焦点时 发 ...