首页 > 其他分享 >标准API展开BOM代码

标准API展开BOM代码

时间:2024-03-19 09:24:41浏览次数:20  
标签:-- 代码 number item flag API bom id BOM


--BOM_EXPLOSION_temp是一个临时表,在展BOM的时候,是一个很有用的表,存放了组成料件层次。默认时是没有记录的,加入下列的语句:
DECLARE
l_group_id NUMBER;
l_error_message VARCHAR2(1000);
l_error_code NUMBER;
BEGIN
SELECT bom.bom_explosion_temp_s.NEXTVAL --取下一个序列
INTO l_group_id
FROM DUAL;

BEGIN
apps.bompexpl.exploder_userexit(verify_flag => NULL,
org_id => 122,
order_by => 1,
grp_id => l_group_id,
session_id => NULL,
levels_to_explode => 10, ----展开十层
bom_or_eng => 1,
impl_flag => 1,
plan_factor_flag => NULL,
explode_option => 2,
MODULE => 2,
cst_type_id => NULL,
std_comp_flag => 2,
expl_qty => 1,
item_id => 32523, --:inventory_item_id_parent, --- (select inventory_item_id from mtl_system_items_b where organization_id=89 and segment1='FWP14(A)-PLN'),
alt_desg => NULL,
comp_code => NULL,
rev_date => to_char(sysdate,
'yyyy/mm/dd hh24:mi:ss'), --版本日期
err_msg => l_error_message,
ERROR_CODE => l_error_code);
COMMIT;
END;

dbms_output.put_line(l_error_code || l_error_message);
END;
---查询
select * from BOM_EXPLOSION_temp;

-- 还有一种更加准确
DECLARE err_meg VARCHAR2(100);
ERROR_CODE VARCHAR2(100);
BEGIN
bompxinq.exploder_userexit(verify_flag => 0,
org_id => 122,
order_by => 1,
grp_id => 0,
session_id => 0,
levels_to_explode => 10,
bom_or_eng => 1, -- 1 bom 2 eng
impl_flag => 2,

plan_factor_flag => 1,

explode_option => 1,

module => 2,

cst_type_id => 2, --average
std_comp_flag => 2,

expl_qty => 1,
item_id => 35463,
unit_number_from => NULL,
unit_number_to => NULL,
alt_desg => '',
comp_code => '',
rev_date => '',

err_msg => err_meg,
ERROR_CODE => ERROR_CODE);

END;

SELECT * FROM bom_small_expl_temp;

--代码三:
procedure expand_bom(p_org_id number, p_item_no varchar2) is v_cnt number;

l_grp_id number;
l_session_id number;
l_org_id number;
l_levels_to_explode number;
l_module number default 2; -- bom = 2
l_cst_type_id number default - 1; -- all cost = -1 else 0
l_item_id number;
l_bom_or_eng number := 1; --1 bom 2 eng
l_rev_date varchar2(30) := to_char(sysdate, 'YYYY/MM/DD HH24:MI:SS'); --Must be this
l_err_msg varchar2(250);
l_error_code number;
begin
-- 首先要有一个group id
select bom_explosion_temp_s.nextval into l_grp_id from dual;

-- 其次要得到一个session id
select bom_explosion_temp_session_s.nextval
into l_session_id
from dual;

-- Find item_id
select inventory_item_id
into l_item_id
from mtl_item_flexfields
where organization_id = p_org_id
and item_number = p_item_no;

-- determine maximum levels to explode from bom_explosions
select maximum_bom_level
into l_levels_to_explode
from bom_parameters
where organization_id = p_org_id;

delete bom_explosion_tmp where top_item_id = l_item_id;

--delete bom_explosion_temp;
commit;

cuxbompexpl.exploder_userexit(verify_flag => 0, -- DEFAULT 0
org_id => p_org_id,
order_by => 1, -- DEFAULT 1
grp_id => l_grp_id,
session_id => l_session_id,
levels_to_explode => 5, --l_levels_to_explode,
bom_or_eng => l_bom_or_eng,
impl_flag => 1, -- DEFAULT 1
plan_factor_flag => 2, -- DEFAULT 2
explode_option => 2, -- DEFAULT 2
module => l_module, -- DEFAULT 2
cst_type_id => l_cst_type_id,
std_comp_flag => 0,
expl_qty => 1, -- DEFAULT 1
item_id => l_item_id,
alt_desg => '',
comp_code => '',
rev_date => l_rev_date,
err_msg => l_err_msg,
error_code => l_error_code);

if (l_error_code <> 0) then
rollback;
dbms_output.put_line('ERROR: ' || l_err_msg);
else
select count(*)
into v_cnt
from bom_explosion_temp
where group_id = l_grp_id;
dbms_output.put_line('Count=' || v_cnt);
commit;
end if;

/*
insert into bom_explosion_tmp
select * from bom_explosion_temp;
--where top_item_id =l_item_id
commit; */
end;

标签:--,代码,number,item,flag,API,bom,id,BOM
From: https://www.cnblogs.com/ivenlin/p/18082000

相关文章

  • 上述代码传递一个对象的化,是否容易造成子组件的多次重复渲染
    constrenderStartTime=useCallback((text,record,idx,changeTableData)=>{ return( <CacheRender dataIndex="startTime" controlRules={()=>startTimeRules(record,idx,measTableRef.current)} compType="input" t......
  • 自然语言:如何通过机器学习和自然语言处理技术训练生成一个AI?有没有代码展示
    要通过机器学习和自然语言处理技术训练生成一个AI,有一些步骤和代码示例可以帮助你。1.数据收集和准备:首先,需要收集和准备用于训练的数据。这可以是文本数据集,例如新闻文章、电影评论等。确保数据集的质量和多样性。2.数据清洗和预处理:清洗和预处理数据是一个重要的步骤。这可......
  • 【算法设计】实验五分支限界法(附源代码)
    这里写目录标题一、上机目的二、上机内容与要求三、上机步骤四、上机结果1、将课本6.2节单源最短路径算法改为程序,并进行测试和验证2、将课本6.3节装载问题改为程序,并进行测试和验证。一、上机目的1、通过分支限界法的示例程序进一步理解分支限界法的基本思想;2、运......
  • java常用应用程序编程接口(API)——Stream概述
    前言:stream是jdk8以后新增的API,熟练操作后会非常实用。打好基础,daydayup!!StreamStream也称为Stream流,用于操作集合或者数组的数据。Stream流大量的结合了Lambda的语法风格,使代码更简洁,可读性更好 Stream的使用Stream的使用有三个步骤:1,获取Stream流,与数据源建立连接......
  • 【20.2】Django框架Form组件之渲染HTML代码
    【一】引入forms组件只会帮我们渲染用户输入的标签(input/select...)【二】书写forms组件forms.pyfromdjangoimportforms#定义form类classMyForm(forms.Form):#username:字符串类型最小三位,最大八位username=forms.CharField(max_length=8,min......
  • 【20.7】Django表单API详解
    【一】引入声明:以下的Form、表单等术语都指的的广义的Django表单。Form要么是绑定了数据的,要么是未绑定数据的。如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单。如果未绑定,则无法进行验证(因为没有数据可以验证!),但它仍然可以以HTML形式呈现空白表单。若要......
  • webapi通过docker部署到Linux的两种方式
    docker安装官网删除dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine安装sudoyuminstall-yyum-utilssudoyum-config-manage......
  • 代码随想录算法训练营day27 | leetcode 39. 组合总和、40. 组合总和 II、131. 分割回
    目录题目链接:39.组合总和-中等题目链接:40.组合总和II-中等题目链接:131.分割回文串-中等题目链接:39.组合总和-中等题目描述:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形......
  • 【Django开发】0到1美多商城项目md教程第2篇:展示用户注册页面,1. 创建用户模块子应用
    美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设计和定义。短信验证码,避免频繁发送短信验证码。账号登录,用户名登录。登录,登录开发文档。用户基本信息,查询......
  • 软件测试 自动化测试selenium API
    文章目录1.webdriverAPI1.1定位元素1.1.1CSS选择器定位元素1.1.2XPath定位元素1.1.3标签定位元素1.1.4关闭浏览器1.1.5css选择器和xpath选择器之间的区别2.操作测试对象2.1鼠标点击、键盘输入、获取元素文本2.2submit提交表单3.添加等待3.1添加强......