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 … このドキュメントでは、ポイント no. 7は私の要件に関連するものです。

  1. ENG_ECO_PUB.Process_ECO API を使用して、設計項目、請求書、および工順を製造に転送する方法は? 製造部門に転送する必要がある設計品目、部品表、工順は、ECO に追加できます。ECO が実装されると、これらすべてのエンティティがエンジニアリングから製造に転送され、それぞれのフィールドが更新されます。(MTL_SYSTEM_ITEMS_B.ENG_ITEM_FLAG / BOM_STRUCTURES_B.ASSEMBLY_TYPE Engineering to Manufacturing ) -- Mfg L_Eco_Rec.Change_Type_Code := 'ECO'; に転送される 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 - 転送'; l_revised_item_tbl(l_row_cnt).transaction_type := 'CREATE'; -- トランザクション タイプ : CREATE / UPDATE 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; -- 転送ルーティング

試してみましたが、ログに次のエラーが表示されました。

organization_code: AGM organization_id: 105 次のオブジェクトは、同じビジネス オブジェクトの一部として処理されます | ECO : ECO100 | エコ リビジョン : 0 | 行を変更: 0 | 改訂項目 : 1 | 改訂されたコンプ: 0 | サブ。コンプ : 0 | 参照。DESGS : 0 | 操作: 0 | リソース: 0 | サブリソース: 0

PVT API: ECO_Header の呼び出し return_status: S return_status: S ログ エラー プロシージャ内。. . スコープ: エンティティ インデックス: 1 エラー レベル: 0 エラー ステータス: U その他のステータス: N その他のメッセージ: ビジネス オブジェクト: ECO メッセージの翻訳と挿入。. . エンティティ ID: BO メッセージ この時点でのカウント: 1 他のメッセージの抽出が終了しました。. . 生成されるその他のメッセージ: エラー レベルはビジネス オブジェクトです。. . ステータスは予期せず、スコープは All です。. . エラー レベルは ECO です。. . 改訂品目レコードを N に設定 改訂コンポーネントで改訂コンポーネント レコードを N に設定 Scope=All 参照指定子レコードを N に設定 代用部品レコードを N に設定 改訂作業レコードを N に設定 作業シーケンスで Scope=All に設定 作業リソース レコードを N に設定 sub を設定オペレーション リソース レコードから N

これらのパラメータについて知っている人はいますか?

4

1 に答える 1

0

「オラクルアプリで製造に転送するための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 に答える