资源描述
【账户别名杂项接收发放接口处理】
【查找请求相关程序的方】
处理事务处理接口
【切换职责】:【A公司库存】
【说明】: 菜单栏位-----【查看】---【请求】----【查找】 出现如下:
工具栏:【帮助】----【历史记录】
得到视图名称:FND_CONC_REQ_SUMMARY_V
【通过PL/SQL 工具】查看到视图的创建语句:
SELECT R.ROWID ROW_ID,
R.REQUEST_ID,
R.PHASE_CODE,
R.STATUS_CODE,
R.PRIORITY_REQUEST_ID,
R.PRIORITY,
R.REQUEST_DATE,
R.REQUESTED_BY,
R.REQUESTED_START_DATE,
R.HOLD_FLAG,
R.HAS_SUB_REQUEST,
R.IS_SUB_REQUEST,
R.UPDATE_PROTECTED,
R.QUEUE_METHOD_CODE,
R.RESPONSIBILITY_APPLICATION_ID,
R.RESPONSIBILITY_ID,
R.SAVE_OUTPUT_FLAG,
R.LAST_UPDATE_DATE,
R.LAST_UPDATED_BY,
R.LAST_UPDATE_LOGIN,
R.PRINTER,
R.PRINT_STYLE,
R.PARENT_REQUEST_ID,
R.CONTROLLING_MANAGER,
R.ACTUAL_START_DATE,
R.ACTUAL_COMPLETION_DATE,
R.COMPLETION_TEXT,
R.ARGUMENT_TEXT,
R.IMPLICIT_CODE,
R.REQUEST_TYPE,
R.PROGRAM_APPLICATION_ID,
R.CONCURRENT_PROGRAM_ID,
PB.CONCURRENT_PROGRAM_NAME PROGRAM_SHORT_NAME,
PB.EXECUTION_METHOD_CODE,
PB.ENABLED_FLAG ENABLED,
DECODE(R.DESCRIPTION,
NULL,
PT.USER_CONCURRENT_PROGRAM_NAME,
R.DESCRIPTION || ' (' || PT.USER_CONCURRENT_PROGRAM_NAME || ')') PROGRAM,
PB.PRINTER_NAME FCP_PRINTER,
PB.OUTPUT_PRINT_STYLE FCP_PRINT_STYLE,
PB.REQUIRED_STYLE FCP_REQUIRED_STYLE,
U.USER_NAME REQUESTOR,
S.USER_PRINTER_STYLE_NAME USER_PRINT_STYLE,
R.DESCRIPTION DESCRIPTION,
PT.USER_CONCURRENT_PROGRAM_NAME USER_CONCURRENT_PROGRAM_NAME
FROM FND_CONCURRENT_PROGRAMS_TL PT,
FND_CONCURRENT_PROGRAMS PB,
FND_USER U,
FND_PRINTER_STYLES_TL S,
FND_CONCURRENT_REQUESTS R
WHERE PB.APPLICATION_ID = R.PROGRAM_APPLICATION_ID
AND PB.CONCURRENT_PROGRAM_ID = R.CONCURRENT_PROGRAM_ID
AND PB.APPLICATION_ID = PT.APPLICATION_ID
AND PB.CONCURRENT_PROGRAM_ID = PT.CONCURRENT_PROGRAM_ID
AND PT.LANGUAGE = USERENV('LANG')
AND U.USER_ID = R.REQUESTED_BY
AND S.PRINTER_STYLE_NAME(+) = R.PRINT_STYLE
AND S.LANGUAGE(+) = USERENV('LANG');
这个两个表要用到:
FND_CONCURRENT_PROGRAMS_TL
FND_CONCURRENT_PROGRAMS
根据文档得知处理请求名称为:
并发请求
Process transaction interface
N: INV/Setup/Transactions/Interface Managers/Process transaction interface/Tools/Launch Manager
在PL/SQL 中:
select * from FND_CONCURRENT_PROGRAMS_TL t
where t.user_concurrent_program_name='Process transaction interface';
select * from FND_CONCURRENT_PROGRAMS t
where t.concurrent_program_id=32320;
两个表根据:concurrent_program_id 关联。
查到-----执行程序名称:INCTCM
【切换职责】:应用开发员
开始跑请求:处理事物处理接口
如果没有找到这个请求。那么要在这个组里添加相关的请求。
在这个状态下输入F11
输入刚才查到的。All Report 制造系统 【F11+CTRL】
在这里添加【处理事务处理接口】
关键字段
mtl_transactions_interface
字段
说明
transaction_mode
给3
2 Concurrent, Process transaction interface不处理,需要程序调用Inventory transaction worker处理
3 Background, 由Process transaction interface处理
process_flag
给1
1 Yes
2 No
3 Error
transaction_type_id
事务处理类型;关键的是它关联的transaction_action_id;系统标准事务的几个ID是固定的
transaction_source_id
账户别名杂项,用别名ID即disposition_id
账户杂项,用账户ID即code_combination_id
WIP物料事务,用任务ID即wip_entity_id
SO物料事务,用mtl_sales_orders.sales_order_id
子库转移或组织间转移,为空
organization_id
Current Inv Organization
inventory_item_id
物料ID
subinventory_code
子库代码
transfer_organization
子库转移事务时的Current Inv Organization
transfer_subinventory
子库转移事务时的目标子库代码
transaction_quantity
数量;收是正、出/子库转移是负、平均成本更新是0
transaction_uom
单位
transaction_date
事务处理日期
source_code
源代码,随便给
source_header_id
源头ID,随便给
source_line_id
源行ID,随便给
5个who字段
习惯上都要给
Open Interface例子(杂项接收)(11.5.9 GITI环境测试通过)
账户别名杂项接收事务处理,算是比较简单的例子了。
脚本如下:
DECLARE
l_iface_rec inv.mtl_transactions_interface%ROWTYPE;
l_cur_mfg_org_id NUMBER := 82; --Current Inv Organization
l_user_id NUMBER := 0; --User ID, Sysadmin here
BEGIN
l_iface_rec.last_update_date := SYSDATE;
l_iface_rec.last_updated_by := l_user_id;
l_iface_rec.creation_date := SYSDATE;
l_iface_rec.created_by := l_user_id;
l_iface_rec.last_update_login := -1;
SELECT mtl_material_transactions_s.NEXTVAL INTO l_iface_rec.transaction_interface_id FROM dual;
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 := 41; --mtl_transaction_types
l_iface_rec.transaction_source_id := 2;
l_iface_rec.organization_id := l_cur_mfg_org_id;
l_iface_rec.inventory_item_id := 5194;
l_iface_rec.subinventory_code := 'LLJ01';
l_iface_rec.transaction_quantity := 12345;
l_iface_rec.transaction_uom := 'GG';
l_iface_rec.transaction_date := SYSDATE;
l_iface_rec.source_code := 'Test Only';
l_iface_rec.source_header_id := 987654321;
l_iface_rec.source_line_id := 987654321;
INSERT INTO inv.mtl_transactions_interface VALUES l_iface_rec;
END;
------【向接口表写数据过程】
DECLARE
l_iface_rec inv.mtl_transactions_interface%ROWTYPE;
l_cur_mfg_org_id NUMBER := 103; --Current Inv Organization 当前系统组织ID
l_user_id NUMBER := 1118; --User ID, Sysadmin here 当前用户ID
BEGIN
l_iface_rec.last_update_date := SYSDATE;
l_iface_rec.last_updated_by := l_user_id;
l_iface_rec.creation_date := SYSDATE;
l_iface_rec.created_by := l_user_id;
l_iface_rec.last_update_login := -1;
SELECT mtl_material_transactions_s.NEXTVAL INTO l_iface_rec.transaction_interface_id FROM dual;
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 := 31; --mtl_transaction_types 账号别名杂项接收为41,账号别名杂项发放为31
l_iface_rec.transaction_source_id := 2;
l_iface_rec.organization_id := l_cur_mfg_org_id;
l_iface_rec.inventory_item_id := 22032; ---物料编码
l_iface_rec.subinventory_code := 'AA01材料'; ---子库代码
l_iface_rec.transaction_quantity := -5000; ---账号别名杂项入库为正数,出库为负数
l_iface_rec.transaction_uom := 'Ea'; ---物料单位
l_iface_rec.transaction_date := to_date('2010-10-20','yyyy-mm-dd');
l_iface_rec.source_code := 'AAAA'; --任意
l_iface_rec.source_header_id :=976110541;
l_iface_rec.source_line_id :=976110541;
INSERT INTO inv.mtl_transactions_interface VALUES l_iface_rec;
commit;
END;
------【查看接口表数据】----
delete mtl_transactions_interface;
select * from mtl_transactions_interface;
select * from mtl_interface_errors;
commit;
-----调用请求-----
DECLARE
L_REQUEST_ID NUMBER;
v_error_msg varchar2(1000);
BEGIN
FND_GLOBAL.APPS_INITIALIZE(USER_ID => 1118, --用户ID
RESP_ID => 50450, --职责ID
RESP_APPL_ID => 401);
L_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('INV',
'INCTCM',
'处理事务处理接口',
Null,
FALSE
);
IF L_REQUEST_ID <> 0 THEN
dbms_output.put_line(L_REQUEST_ID || '提交成功');
COMMIT;
ELSE
V_ERROR_MSG := '提交不成功,错误信息如下:' || SQLCODE || ' | ' ||
SQLERRM;
dbms_output.put_line(V_ERROR_MSG);
FND_FILE.PUT_LINE(FND_FILE.OUTPUT, V_ERROR_MSG);
END IF;
END;
commit;
-----【查看账号别名参数】 --------------
select t.transaction_action_id,t.transaction_source_type_id,t.transaction_type_id ,t.transaction_type_name
from mtl_transaction_types t
where t.transaction_type_name like '%Account%';
-----【创建过程】--------------
create or replace procedure cux_inctcm_0509
as
L_REQUEST_ID NUMBER;
v_error_msg varchar2(1000);
BEGIN
FND_GLOBAL.APPS_INITIALIZE(USER_ID => 1118, --用户ID
RESP_ID => 50450, --职责ID
RESP_APPL_ID => 401);
L_REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST('INV',
'INCTCM',
'处理事务处理接口',
Null,
FALSE
);
END;
-----【调用过程】--------------
begin
cux_inctcm_0509;
end;
【参数获取方法:】
【当前用户ID】
【当前系统组织ID】
【物料编码】
【子库代码】
展开阅读全文