BOM数据,是制造业SAP系统管理最为重要的主数据之一。

了解PP模块的顾问都知道,BOM数据是具有时间维度的,代表着产品的不断演变过程。可以在不同的时间轴节点上查询历史BOM数据。

换句话说BOM就是产品全生命周期的一个缩影。

想要达到BOM的生命周期管理,需要启动BOM变更管理(OS27)。

此时会有增加一个主数据-ECN:工程变更号/工程变更通告。

在SAP系统,可以很方便的查询BOM历史数据、不同的BOM展开结构、版本对比等,但在整个BOM变更管理中,变更审核/断点管理也特别想知道,分配给工程师的ECN修改了什么内容。

反映在SAP业务需求:ECN修改记录。

标准功能通过ECN查询修改记录,可以说是个灾难,即使在S4也没有进步。

了解BOM后台表的顾问,可能会通过STPO和STAS的查询ECN修改记录:

其实简单BOM的获取函数:‘CSAP_MAT_BOM_READ’

和订单BOM获取函数:‘CSAP_ORD_BOM_ITEM_SELECT‘

出参结构T_STPO,也体现着修改逻辑,只要定义好逻辑,可以开发出直观ECN修改记录。

通过函数获取T_STPO,获取到BOM行数据:

LOOP AT lt_stpo INTO lw_stpo .
CLEAR gw_stpo.
gw_stpo-werks = p_werks.
gw_stpo-aennr_search = in_aennr.
gw_stpo-stlan = in_stlan.
gw_stpo-matnr = in_matnr.
gw_stpo-stlty = in_stlty.
gw_stpo-stlnr = in_stlnr.
gw_stpo-stlkn = lw_stpo-item_node.
gw_stpo-stpoz = lw_stpo-item_count.
gw_stpo-posnr = lw_stpo-item_no.
gw_stpo-idnrk = lw_stpo-component.
gw_stpo-aennr = lw_stpo-change_no.
gw_stpo-vbeln = in_order.
gw_stpo-vbpos = in_vbpos.
gw_stpo-annam = lw_stpo-created_by.
gw_stpo-aennr_end = lw_stpo-chg_no_to.
gw_stpo-postp = lw_stpo-item_categ.

CALL FUNCTION ‘UNITS_STRING_CONVERT’
EXPORTING
units_string = lw_stpo-comp_qty
dcpfm = l_dcpfm
IMPORTING
units = gw_stpo-menge
EXCEPTIONS
invalid_type = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
gw_stpo-sortf = lw_stpo-sortstring.
APPEND gw_stpo TO gt_stpo.
ENDLOOP.

通过BOM函数获取的字段STVKN为空

还需要填充STVKN字段值:

SELECT stlty stlnr stlkn stpoz vgknt AS stvkn
INTO CORRESPONDING FIELDS OF TABLE
lt_stpo_update
FROM stpo
FOR ALL ENTRIES IN gt_stpo
WHERE stlty = gt_stpo-stlty
AND stlnr = gt_stpo-stlnr
AND stlkn = gt_stpo-stlkn
AND stpoz = gt_stpo-stpoz
AND vgknt <> ‘’.
IF lt_stpo_update[] IS NOT INITIAL.
LOOP AT lt_stpo_update INTO lw_stpo_update.
READ TABLE gt_stpo INTO gw_stpo WITH KEY stlty = lw_stpo_update-stlty
stlnr = lw_stpo_update-stlnr
stlkn = lw_stpo_update-stlkn
stpoz = lw_stpo_update-stpoz.
IF sy-subrc EQ 0.
gw_stpo-stvkn = lw_stpo_update-stvkn.
MODIFY gt_stpo FROM gw_stpo INDEX sy-tabix.
ENDIF.
ENDLOOP.

以上ECN及BOM数据获取完整后

根据BOM的数据分析是新增、删除、还是修改。

LOOP AT gt_stpo INTO gw_stpo .
IF gw_stpo-aennr_end <> ‘’.
IF gw_stpo-aennr_end = in_aennr.
MOVE-CORRESPONDING gw_stpo TO gw_stpo_b_e.
gw_stpo_b_e-menge_end = gw_stpo-menge.
gw_stpo_b_e-sortf_end = gw_stpo-sortf.
APPEND gw_stpo_b_e TO gt_stpo_b_e.
ENDIF.
ENDIF.
IF gw_stpo-aennr = in_aennr.
MOVE-CORRESPONDING gw_stpo TO gw_stpo_b.
APPEND gw_stpo_b TO gt_stpo_b.
ENDIF.
ENDLOOP.

如果aennr_end = 为空,

而且STVKN为空,代表这是新增行

LOOP AT gt_stpo_b INTO gw_stpo_b .
l_index = sy-tabix.
IF gw_stpo_b-stvkn = ‘’." 不存在继承节点-则属于新增
gw_stpo_b-action = ‘新增’.
APPEND gw_stpo_b TO gt_stpo_result.
DELETE gt_stpo_b INDEX l_index.

如果aennr_end = 为空,

STVKN不为空,代表这是修改行或者替换
ELSE."存在继承节点 -则属于修改
READ TABLE gt_stpo_b_e INTO gw_stpo_b_e WITH KEY aennr_end = gw_stpo_b-aennr stlkn = gw_stpo_b-stvkn."查找父节点
IF sy-subrc EQ 0.
l_index_e = sy-tabix.
IF gw_stpo_b_e-idnrk = gw_stpo_b-idnrk.
gw_stpo_b_e-action = ‘修改前’.
gw_stpo_b-action = ‘修改后’ .

ELSE.
gw_stpo_b_e-action = ‘替换前’.
gw_stpo_b-action = ‘替换后’.

DELETE gt_stpo_b_e INDEX l_index_e.

在处理新增、修改或者替换后,剩余的为删除行:
IF gw_stpo_b_e-aennr_end = in_aennr…
CLEAR gw_stpo_b_e-menge_end.
gw_stpo_b_e-action = ‘删除’.

ENDLOOP.

APPEND LINES OF gt_stpo_result TO gt_stpo_result_all.

最终获取到BOM的ECN修改记录

按照业务用户的要求,展现数据结构如变更前后的库存、采购等数据。

SAP ECN修改记录实现方案相关推荐

  1. SAP 差旅报销集成方案的实现

    跨国集团通常都会有一个财务共享中心SSC的集中处理业务部门,用于统计来自各个公司的差旅报销,而1).传统的OA审批 虽然审批流是优势存在着需要SAP数据二次录入,数据不同步等困难,2).如果终端用户都 ...

  2. SAP+ 差旅报销集成方案的实现

    跨国集团通常都会有一个财务共享中心SSC的集中处理业务部门,用于统计来自各个公司的差旅报销,而1).传统的OA审批 虽然审批流是优势存在着需要SAP数据二次录入,数据不同步等困难,2).如果终端用户都 ...

  3. SAP SD 退货处理方案

    客户投诉的另一种解决办法是退货,退货在 SAP系统 中有三种处理方案. 1.标准退货流程 标准退货流程是指在发生退货时,先将被退回的货物入库,然后将需要补给客户的货物出库.在标准退货流程下,首先要建立 ...

  4. 喜讯:恭喜法大大、爱数、休恩、腾领等多家伙伴通过 SAP 集成方案认证

    近日,法大大.爱数.休恩.腾领.致远.新文朔.傲讯全通.赛普克等多家厂商完成 SAP 集成方案认证,并荣登 SAP 最新集成产品认证列表,详细集成方案已在 SAP 官网发布(www.sap.com-P ...

  5. 给我提供一个SAP的调研方案MM模块的

    以下是一个SAP MM模块调研方案的概要: 了解SAP MM模块的功能: SAP MM模块是一种物料管理模块,主要用于管理物料采购.库存管理.库存盘点等. 了解SAP MM模块的流程: 流程包括物料采 ...

  6. S/4 HANA – 是ERP皇帝的新装,还是SAP王国的新基石

    HANA这货 当您看到本文的时候,应该是知道,或者听说过SAPHANA的,"内存计算.实时计算.独领风骚.业界最领先的内存计算技术,革命性的内存数据库产品,内存计算平台,天下武功,唯快不破: ...

  7. SAP实施方法论之探讨-现状调研与需求分析

    如何做好现状调研与需求分析 SAP实施方法论涵盖五大步骤,包括:项目准备.蓝图设计.系统实现.最后准备.上线与支持.本次结合多次项目的实际体会,先仅针对如何做蓝图设计阶段的"现状调研与需求分 ...

  8. SAP CRM RDS快速部署解决方案

    为了简化部署和实施,SAP推出了一系列的RDS快速部署(Rapid Deployment Solution)解决方案.RDS有明确的License范围,用户可以选择相关功能模块.据称最短在8周内即可实 ...

  9. SAP移动战略与HANA已为BI爆发做好准备

    轻点 SAP BusinessObjects 工具,进入BPI模块,就可以看到不同的产品线情况.从中选取最前三项或者前四项,就可以看到这些业务中有多少来自现有客户,有多少来自潜在客户,由谁负责,还能按 ...

最新文章

  1. C++11中std::bind的使用
  2. java面试常问问题(中级及以下工程师)
  3. OpenCV 均值滤波
  4. python3.5安装pygame_安装pygame for Python3.5
  5. Linux网络编程 | 信号 :信号函数、信号集、统一事件源 、网络编程相关信号
  6. Jmeter参数化 CSV Data Set Config界面说明
  7. 《大数据》2020年第4期目次摘要
  8. 奇怪的信 c语言 整数位数为偶数求和
  9. Windows 10 windows 11 如何离线安装NetFx3
  10. asp.net铁路安全预警与决策支持系统
  11. linux 代码编辑器软件下载,Visual Studio Code下载
  12. HTML5+CSS3基础
  13. 关于电脑程序无响应的常见原因以及解决办法
  14. LVDS 显示屏的两种接口标准:VESA 和 JEIDA;单/双路 LVDS 信号
  15. 梦中香巴拉——云南游记
  16. 宅家神器—epub阅读器
  17. H3C交换机命名与板卡命名
  18. 咸鱼前端—CSS高级技巧
  19. 有哪些适合放在程序员办公桌上的高逼格物件?
  20. 国内可以为程序员提供兼职的平台有哪些?

热门文章

  1. Google Play商店 v13.8.16
  2. 小学生正确使用计算机,有关小学学生使用计算机守则
  3. ZYNQ——FPGA工程之VGA彩条显示
  4. 错误:C2001: 常量中有换行符
  5. 年前用Python,选出好基金,稳赚一笔
  6. Vert.x - SpringBoot 整合 vertx
  7. 【论文翻译】VIBE 基于视频的人体3D形状和姿态估计
  8. 怎么能在家赚钱?这6种方法可以尝试下!
  9. Pycharm创建虚拟环境
  10. unity制作小游戏