接触EBS刚刚不久,对于我这种菜鸟,看着超过百行的代码,头都有些发晕。前几天导师给我一个十级BOM的语句,语句中各个表中关系比较清晰,但是语句过于繁琐,一直想进行优化,今天正好有时间,重写了一下BOM树结构,便于自己以后应用。
由父节点向子节点查询:
select level bom_level, --等级
bom_trees.sub_item_id, --子节点
bom_trees.sub_item_code, --子节点物料编码
bom_trees.sub_item_name, --子节点物料说明
bom_trees.parent_item_id, --父节点
bom_trees.parent_item_code, --父节点物料编码
bom_trees.parent_item_name --父节点物料说明
from (select msi_sub.inventory_item_id sub_item_id,
msi_sub.segment1 sub_item_code,
msi_sub.description sub_item_name,
msi.inventory_item_id parent_item_id,
msi.segment1 parent_item_code,
msi.description parent_item_name,
msi.organization_id organization_id
from bom_inventory_components bic,
bom_bill_of_materials bom,
mtl_system_items_b msi,
mtl_system_items_b msi_sub
where msi.inventory_item_id = bom.assembly_item_id
and msi.organization_id = bom.organization_id
and msi.organization_id = 103
and bom.bill_sequence_id = bic.bill_sequence_id
and bom.alternate_bom_designator is null
and bom.organization_id = 103
and bic.disable_date is null
and bic.component_item_id = msi_sub.inventory_item_id
and msi_sub.organization_id = 103
) bom_trees --BOM树结构规则
connect by prior bom_trees.sub_item_id = bom_trees.parent_item_id
start with bom_trees.parent_item_code =
'C.HP.MZL1.BSW.250-040YB-KJ01-28065' --父节点物料编码
order by bom_level;
分享到:
相关推荐
- 父节点与子节点:父节点包含子节点,如`<body>`是`<p>`的父节点。 - 同胞节点:同一级别的节点,例如`<p>`和`<div>`在`<body>`下是同胞。 4. DOM节点的访问与操作 - `getElementById()`:通过指定ID获取元素,...
后序遍历是一种先访问子节点再访问父节点的遍历方式。在树形结构中,后序遍历通常用于需要先处理所有子节点然后再处理当前节点的情况,例如计算一个文件夹及其所有子文件夹的总大小等场景。 #### 实现细节 下面是...
深度遍历则自顶向下,先访问子节点,再回溯至父节点,适用于深度优先的搜索策略。 以Solidworks为例,遍历装配树的代码示例如下: (1) 获取装配图的根组件; (2) 从根组件出发,递归遍历所有子组件。 通过上述接口...
- 这一步是构建BOM树的基础,确保了函数能够正确地展开从输入物料开始的所有子物料。 3. **递归展开BOM**: - 使用`WHILE @@ROWCOUNT > 0`循环,不断递归查找下一层的物料信息。 - 在每次循环中,都会将找到的...
首先,父表通常存储树结构中的顶层节点或父节点,而子表则包含所有子节点。在描述中提到的查询需求,是关于如何从这两个表中检索出一个完整的树状结构。这通常需要执行两种类型的查询:一种是从父表出发,查找所有子...
在Compiere系统中,产品结构通常由物料清单(Bill of Materials,简称BOM)来定义,这是一个关键的概念,用于描述产品如何通过组件和子组件进行组装。"树形产品BOM"指的是BOM以层次结构的方式展示,便于用户直观理解...
3. **递归查询**:由于BOM具有层级关系,因此需要递归地查询子组件。这可以通过编写自定义ABAP程序实现,或者使用内建的ABAP函数模块,如`BOM_TREE_F4`进行树形展开。 4. **循环与嵌套**:在ABAP中,可以使用`LOOP ...
1. DOM树结构:每个HTML元素都是一个节点,可以有子节点和父节点。通过遍历DOM树,可以找到任何元素或文本。 2. DOM节点类型:主要有元素节点、属性节点、文本节点等。例如,`<div>`是一个元素节点,`class`属性是...
一棵树由一个根节点(root)开始,根节点可以有零个或多个子节点。子节点也可以有子节点,形成分支,这使得树形结构具有层次性。树的最底层节点称为叶子节点(leaf node),它们没有子节点。非叶子节点则称为内部...
在C#中,你可以定义一个类来表示树节点,包含节点值、左子节点引用和右子节点引用。二叉树常用于搜索、排序等操作。 "父子关系树"则是更一般化的树结构,每个节点可以有任意数量的子节点,而不仅仅是两个。这种结构...
- 节点之间有层级关系,如父节点、子节点和同胞节点 - 文档顶部的节点是根节点,没有父节点 - 节点可以有任意数量的子节点,而同胞节点是拥有相同父节点的节点 - 可以通过JavaScript访问并操作这些节点,包括修改、...
BOM结构可以被视作一棵树,其中产品位于树的根节点,而叶子节点则代表最基本的材料或零件。 **BOM的作用:** - **物料管理:** 通过BOM,企业可以清晰地了解某一产品由哪些原材料组成。 - **生产计划:** BOM遍历...
BOM表通常包含以下字段:产品ID,父组件ID,子组件ID,数量等。其中,产品ID代表最终产品,父组件ID表示该组件属于哪个产品,子组件ID则标识了产品中的组成部分,数量字段记录了每个组件的数量。 顺查和反查是两种...
- `document.insertBefore()`:在指定的父节点下插入一个新的子节点到已有的某个子节点之前。 - **删除元素** - `document.removeChild()`:从父节点中删除指定的子节点。 - **创建文档片段** - `document....
在编程中,通常使用类或者对象来表示树的节点,包含节点的值、子节点列表以及指向父节点的引用。 2. **企业信息系统应用**: - **公司组织架构**:在人力资源管理系统中,树状图控件用于显示公司的部门和员工层级...
树型结构表是数据库中用来存储树形数据的一种数据表,该表通过自引用的方式记录每个节点及其父节点的关联信息,形成树状结构。 在三大主流数据库系统中,Oracle和IBM DB2均内置了递归查询的实现,能够高效地遍历树...
- `appendChild(node)`:将一个子节点添加到父节点的末尾。 - `insertBefore(newNode, referenceNode)`:在参考节点之前插入新的节点。 - `removeChild(node)`:从父节点中删除指定的子节点。 3. **属性和文本...
在Windows平台的MRP系统中,BOM常以树形结构呈现,通过Treekey和Parent标识节点关系。这种方法提供更美观直观的界面,用户操作简便,尤其适合单件小批量生产。但面对多系列多产品的情况,数据量会迅速增加,反查零件...