0

我正在尝试在 Oracle 应用程序中找到 api 或接口表来执行“转移到制造”。

我尝试了以下4种方法,但没有运气:

  1. mtl_system_items_interface 接口表
  2. apps.ego_item_pub.process_item 公共 api
  3. ENG_BOM_RTG_TRANSFER_PKG.ENG_BOM_RTG_TRANSFER 私有 api 导致
  4. ENG_ECO_PUB.Process_ECO API

谁能用一些例子指导我,如何通过 api 做到这一点?

尝试了 ECO https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=349161821206184&id=1242524.1&_adf.ctrl-state=qaus6q7ko_7 ...... 7与我的要求有关。

  1. 如何使用 ENG_ECO_PUB.Process_ECO API 将工程项目、账单和路由传输到制造?可以将需要转移到制造的工程项目、账单、路由添加到 ECO。实施 ECO 后,所有这些实体将从工程转移到制造,并且相应的字段将被更新。(MTL_SYSTEM_ITEMS_B.ENG_ITEM_FLAG / BOM_STRUCTURES_B.ASSEMBLY_TYPE 工程到制造) -- 创建 ECO 和修改后的项目以转移到制造 L_Eco_Rec.Change_Type_Code := 'ECO'; l_eco_rec.approval_list_name := NULL; -- 无需批准 L_Eco_Rec.Approval_Status_Name:= 'Approved'; -- 将默认为未提交审批 l_eco_rec.Status_Name := 'Open'; -- 状态 l_eco_rec.description := 'ECO - '||l_eco_rec.eco_name||' API测试';
    l_eco_rec.plm_or_erp_change := 'ERP';
    l_eco_rec.return_status := NULL; l_revised_item_tbl(l_row_cnt).eco_name := 'ECO100'; l_revised_item_tbl(l_row_cnt).organization_code := 'M1'; l_revised_item_tbl(l_row_cnt).revised_item_name := 'TEST_REV_ITEM1'; l_revised_item_tbl(l_row_cnt).new_revised_item_revision := 'B'; l_revised_item_tbl(l_row_cnt).start_effective_date := sysdate; l_revised_item_tbl(l_row_cnt).status_type := 1; -- 'Open' l_revised_item_tbl(l_row_cnt).change_description := 'ECO - Transfer'; l_revised_item_tbl(l_row_cnt).transaction_type := 'CREATE'; -- 交易类型:创建/更新 l_revised_item_tbl(l_row_cnt).Transfer_Or_Copy := 'T'; l_revised_item_tbl(l_row_cnt).Transfer_OR_Copy_Item := 1;
    l_revised_item_tbl(l_row_cnt).Transfer_OR_Copy_Bill := 1; -- 转账账单
    l_revised_item_tbl(l_row_cnt).Transfer_OR_Copy_Routing := 1; -- 转移路由

我试过但在日志中收到以下错误:

组织代码:AGM 组织 ID:105 以下对象将作为同一业务对象的一部分进行处理 | 生态 : ECO100 | 生态修订:0 | 换行:0 | 修订项目:1 | 修订版:0 | 潜艇。补偿:0 | 参考文献。设计:0 | 操作:0 | 资源:0 | 子资源:0

PVT API:调用 ECO_Header return_status:S return_status:S 在日志错误过程中。. . 范围:实体索引:1 错误级别:0 错误状态:U 其他状态:N 其他消息:业务对象:ECO 翻译和插入消息。. . Entity Id: BO Message Count on this point : 1 Finished extracting other message 。. . 生成的其他消息:错误级别是业务对象。. . 状态意外和范围是 All 。. . 错误级别为 ECO 。. . 将修订的项目记录设置为 N 将修订的组件记录设置为 N Scope=All in Revised Component 将参考指示符记录设置为 N 将替代组件记录设置为 N 将修订的操作记录设置为 N Scope=All in Operation Sequences 将操作资源记录设置为 N 设置子操作资源记录到 N

有人知道这些参数吗?

4

1 回答 1

0

当我在谷歌搜索“用于转移到 Oracle 应用程序中的制造的 API”时,有很长一段时间的沉默,在这个论坛中也是如此。我担心的另一件事是,如果问题没有得到回答,那么我将再次从这里开始。

这是我们提出的解决方案:

Declare
    l_inventory_item_id number := 5838015;
    l_org_id number :=105;
    l_resp_id number;
    l_appl_id number;
begin
    select responsibility_id, application_id
    into l_resp_id, l_appl_id
    from fnd_responsibility
    where responsibility_key = 'INVENTORY_SUPER_USER';

    --initialize user session
    fnd_global.apps_initialize(
        user_id => fnd_global.user_id,
        resp_id => l_resp_id,
        resp_appl_id => l_appl_id);

APPS.ENG_BOM_RTG_TRANSFER_PKG.ENG_BOM_RTG_TRANSFER
(
X_org_id            => l_org_id,
X_eng_item_id           =>l_inventory_item_id,
X_mfg_item_id           =>l_inventory_item_id,
X_transfer_option   => 2,
X_designator_option     => 1,
X_alt_bom_designator        => NULL,
X_alt_rtg_designator        => NULL, 
X_effectivity_date      => sysdate,
X_last_login_id         => -1,
X_bom_rev_starting      => NULL,
X_rtg_rev_starting      => NULL,
X_ecn_name      =>  'ABC.ABC_11377_121',
X_item_code         => 1,
X_bom_code          => 2,
X_rtg_code          => 1,
X_mfg_description   =>  NULL,
X_segment1          => NULL,
X_segment2          => NULL,
X_segment3          => NULL,
X_segment4          => NULL,
X_segment5          => NULL,
X_segment6          => NULL,
X_segment7          => NULL,
X_segment8          => NULL,
X_segment9          => NULL,
X_segment10         => NULL,
X_segment11         => NULL,
X_segment12         => NULL,
X_segment13         => NULL,
X_segment14         => NULL,
X_segment15         => NULL,
X_segment16         => NULL,
X_segment17         => NULL,
X_segment18         => NULL,
X_segment19         => NULL,
X_segment20         => NULL,
X_implemented_only      =>1,
X_unit_number           => NULL,
X_commit           => TRUE);
end;

在此代码之后,您可以检查 eng_item_flag = 'N' 并且 engineering_date 应该是 sysdate。

于 2016-09-29T08:08:28.813 回答