OracleEBS 中 update_material_line GME_API_PUB.field_values_tab使用

-- api_version := 1 

DECLARE
  l_api_version CONSTANT NUMBER := GME_API_PUB.api_version;
  l_validation_level NUMBER := GME_API_PUB.max_errors;

  -- 使用 GME_API_PUB 定义的类型
  l_my_field_values GME_API_PUB.field_values_tab;

  l_init_msg_list BOOLEAN := FALSE;
  l_commit        BOOLEAN := TRUE;
  l_scale_phantom BOOLEAN := FALSE;

  x_message_count NUMBER;
  x_message_list  VARCHAR2(100);
  x_return_status VARCHAR2(2);
  l_msg_index_out NUMBER;

  -- 输入
  l_gme_material_details gme_material_details%ROWTYPE;
  -- 返回
  x_gme_material_details gme_material_details % ROWTYPE;

  x_unallocated_material GME_API_PUB.unallocated_materials_tab;

BEGIN

  DBMS_OUTPUT.ENABLE(1000000);
  APPS.FND_GLOBAL.APPS_INITIALIZE(user_id      => 24024,
                                  RESP_ID      => APPS.FND_GLOBAL.RESP_ID,
                                  RESP_APPL_ID => APPS.FND_GLOBAL.RESP_APPL_ID);

  l_gme_material_details.batch_id           := 656195;
  l_gme_material_details.material_detail_id := 41615897;
  l_gme_material_details.plan_qty           := 0.147;
  l_gme_material_details.item_um           := 'VM';

  -- 初始化 l_my_field_values 并赋值 列名需要大写
  l_my_field_values(1).p_value := 'PLAN_QTY';
  l_my_field_values(2).p_value := 'ITEM_UM';

  -- 调用 GME_API_PUB.update_material_line
  GME_API_PUB.update_material_line(p_api_version      => l_api_version,
                                   p_validation_level => l_validation_level,
                                   p_init_msg_list    => l_init_msg_list,
                                   p_commit           => l_commit,
                                   x_message_count    => x_message_count,
                                   x_message_list     => x_message_list,
                                   x_return_status    => x_return_status,
                                   p_material_detail  => l_gme_material_details,
                                   -- 确保类型匹配
                                   p_values_tab      => l_my_field_values,
                                   p_scale_phantom   => l_scale_phantom,
                                   x_material_detail => x_gme_material_details);

  dbms_output.put_line(' x_return_status :' || x_return_status);

  IF x_return_status <> FND_API.g_ret_sts_success THEN
    IF X_message_count > 0 THEN
      apps.FND_MSG_PUB.Get(p_msg_index     => apps.FND_MSG_PUB.G_LAST,
                           p_data          => X_message_list,
                           p_encoded       => apps.FND_API.G_FALSE,
                           p_msg_index_out => l_msg_index_out);
      dbms_output.put_line('物料行更新失败:' || X_message_list);
    END IF;
    ROLLBACK;
  ELSE
    DBMS_OUTPUT.PUT_LINE('物料行更新成功:' || x_message_list);
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    x_return_status := FND_API.g_ret_sts_unexp_error;
    x_message_count := 1;
    x_message_list  := SQLERRM;
    dbms_output.put_line('Have Error ' || TO_CHAR(SQLCODE) || ': ' ||
                         SQLERRM);
END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值