-- 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;