SAPMM_ETL_Design_V1.docx

上传人:飞**** 文档编号:44917759 上传时间:2022-09-22 格式:DOCX 页数:82 大小:3.75MB
返回 下载 相关 举报
SAPMM_ETL_Design_V1.docx_第1页
第1页 / 共82页
SAPMM_ETL_Design_V1.docx_第2页
第2页 / 共82页
点击查看更多>>
资源描述

《SAPMM_ETL_Design_V1.docx》由会员分享,可在线阅读,更多相关《SAPMM_ETL_Design_V1.docx(82页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、SAP BI 项目MM 模块 ETL 设计说明书当前版本:拥有者:最后更新日期:最后更新者:作者:创建日期:批准者:批准日期:修订历史版本号更新日期修订作者主要改变描述目录1.概述.42.ETL 系统架构设计.52.1库存模型 ETL 系统逻辑架构.52.2库存模型 ETL 数据流.62.2.1日常库存及呆滞数据流.62.2.2历史库存及呆滞数据流.72.2.3数据源环境.73.库存模型设计.93.1PSA 设计.93.2LEVEL1 ODS 层设计.103.3LEVEL2 EDW 层设计.133.3.1库存数据.133.3.2历史库存数据.333.3.3顶正呆滞.543.4LEVEL3 DM

2、 层设计.654.采购模型设计.694.1PSA 设计.694.2LEVEL1 DSO 设计.694.3LEVEL2 EDW 设计.704.4LEVEL3 DM 设计.765.MM 数据装载流程.791.概述本项目ETL部分的核心功能就是按照本设计说明书的架构,将数据由数据源系统(SAP R3)加载到数据仓库(SAPBW)中。其实现的困难在于ETL工作将面临复杂的源数据环境,包括多种R3标准数据源和增强结构、繁多的数据种类、巨大的加载数据量、错综复杂的数据关系和参差不齐的数据质量,这些都使ETL的架构和应用设计面临相当的挑战。通过高效的ETL系统结构、层次化的应用功能划分和BW标准的元素,ET

3、L系统和应用架构设计需要能够达到以下目标:支持在此框架下实现 BW 数据仓库所需要的 ETL 功能;支持在规定的时间窗口内能够完成数据加载工作,即需要满足日常数据加载的性能需求;能够支持有效的应用程序开发模式,提高开发效率,尽量减少应用开发成本;减少系统维护的复杂性,支持后续增加新数据或功能的开发工作。ETL设计说明书为ETL开发提供指导,着重叙述数据仓库系统ETL系统的架构、功能和实施过程,其中包含了主要数据转换过程以及涉及到的客户化例程的说明。ETL过程依赖于源数据的准备就绪,本设计说明书同时也列出了模块所对应的SAP标准数据源和主数据数据源。由于ETL的复杂性,本设计尝试从多个层面进行说

4、明,希望能够尽可能回答开发过程中所面临的问题达到指导开发的目的,但实际开发过程中,开发人员仍然可能遇到设计说明书没有涉及的问题,因此,遵循设计的基本思想,通过开发人员的反馈,在开发的过程中不断地完善和修正设计,对于ETL的开发是非常重要的。对于任何ETL开发过程中遇到的技术问题,开发人员需要与设计人员协商讨论,以迅速解决问题,保证开发顺利进行。而同时,为保证ETL系统架构的完整、统一、程序的可维护性以及开发的可管理性,对设计的修改必须得到控制,重要的变动必须通过版本管理流程来协调进行。本设计说明书将包括以下部分:架构设计:设计对应模块 ETL 系统的逻辑架构以及分析数据流。ETL 过程说明:包

5、括 ETL 过程涉及到的各步骤说明,如信息包的更新机制,转换过程中涉及到的特定例程控制,DTP 的执行和更新机制等等。数据加载流程:说明了对于本模块而言在运行特定步骤之前需满足的条件。2.ETL系统架构设计2.1 库存模型 ETL 系统逻辑架构上图是 ETL 系统逻辑架构。从宏观设计上,历史数据、初始数据加载和日常数据加载的 ETL 都将按照此架构设计。该架构将 ETL 作为一个整体来设计。对于数据仓库的加载,ETL 分为数据抽取(Extract)、数据转换(Transform)以及数据加载(Load)3 个阶段。2.2 库存模型 ETL 数据流2.2.1 日常库存及呆滞数据流2.2.2 历史

6、库存及呆滞数据流2.2.3 数据源环境数据源全部由 SAP 系统提供,数据源包括两种类型业务数据数据源日常增量源数据:即物料凭证,2LIS_03_BF初始加载源数据:即库存初始化,2LIS_03_BX主数据数据源文本数据源属性数据源层次结构数据源3.库存模型设计3.1 PSA 设计PSA 数据源:库存模型的 PSA 业务数据源包含 2LIS_03_BX 及 2LIS_03_BF,并且使用 0CO_PC_ACT_1 作为价格数据源,计算库存价值;数据源增强:2LIS_03_BF 中增强了 ZZMAUFNR_IND 及 UMLGO 字段,ZZMAUFNR_IND 用来判断是否是生产订单大订单,这个

7、字段的用处是 PP 模型需要使用,不涉及库存模型计算;UMLGO 表示收货库存地点;信息包:2LIS_03_BF 信息包包含增量、全量及初始化信息包初始化信息包增量信息包全量信息包3.2 Level 1 ODS 层设计MM_D131,库存管理的货物移动MM_D131 是写优化 DSO,其结构与 PSA 一样,存储最原始的货物移动,其结构如下:在 2LIS_03_BF 到 MM_D131 的数据加载中,在 DTP 中过滤了不必要的工厂代码,在过滤器中设置如下所示:MM_D160,库存管理的库存初始化初始化库存模型是写优化 DSO,其结构与 2LIS_03_BX 保持一致,在数据 2LIS_03_

8、BX 到 MM_D160 的数据加载中,无数据过滤;MM_D140,实际成本核算/物料分类账3.3 Level 2 EDW 层设计3.3.1 库存数据MM_D223 库存中间数据MM_D223 从 MM_D131 加载数据,过滤掉其中库存种类为空的数据;该数据源存储的是物料移入移出的记录,并无特别计算;开始例程如下:DELETE SOURCE_PACKAGEWHERE STOCKTYPE A AND STOCKTYPE B AND STOCKTYPE CAND STOCKTYPE D AND STOCKTYPE F AND STOCKTYPE HAND STOCKTYPE Q AND STOC

9、KTYPE R AND STOCKTYPE V.ZFIR_DAY 字段是系统库存初始化日期,从 MM_D160 读取,例程如下:SELECT SINGLE PSTNG_DATE INTO RESULT FROM/BIC/AMM_D16000.MM_D227 库存计算准备该 DSO 从 MM_D223 加载数据,他主要是记录各种类型每个月出入库的值,以便为后面的计算某月期末库存做准备;开始例程中过滤掉非计算期间的凭证数据;DATA WA_SC TYPE _TY_S_SC_1.DATA:L_DATE TYPE D.BREAK-POINT.LOOP AT SOURCE_PACKAGE INTO WA

10、_SC.CALL FUNCTION FIMA_DATE_CREATEEXPORTINGI_DATE=SY-DATUMI_MONTHS=-1IMPORTINGE_DATE=L_DATE.CONCATENATE L_DATE+0(6)01 INTO WA_SC-CALDAY.MODIFY SOURCE_PACKAGE FROM WA_SC.*-Lizz 将不再统计范围内的数据删除 begin.IF WA_SC-CALDAY=WA_SC-/BIC/ZFIR_DAY.IF(WA_SC-PSTNG_DATE+0(6)WA_SC-/BIC/ZFIR_DAY).DELETE SOURCE_PACKAGE.E

11、NDIF.ELSE.IF(WA_SC-PSTNG_DATE WA_SC-CALDAY+0(6).DELETE SOURCE_PACKAGE.ENDIF.ENDIF.*-Lizz 将不再统计范围内的数据删除 end.ENDLOOP.DELETE SOURCE_PACKAGE WHERE STOR_LOC=.结束例程中过滤掉计算结果为 0 的数据;DELETE RESULT_PACKAGE WHERE QUANTITY=0.MM_D223 到 MM_D227 的转换包括多个技术组;技术组 119 的转换如下,用来计算期间段的销售数量,其转换例程:IF SOURCE_FIELDS-PSTNG_DAT

12、E+0(6)=SOURCE_FIELDS-CALDAY+0(6).CASE SOURCE_FIELDS-MOVETYPE.WHEN 601 OR 602 OR Z21 OR Z22 OR Z01 OR Z51OR Z41 OR Z42.IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技术组 120 的转换如下,用来计算期间段的废料产生量,其转换例程:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SO

13、URCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE=FEIPAND(SOURCE_FIELDS-MOVETYPE=531 ORSOURCE_FIELDS-MOVETYPE=532).IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDIF.技术组 121 的转换如下,用来计算期间段的生产领用量,其转换例程:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELD

14、S-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERTAND SOURCE_FIELDS-MATL_TYPE HALB.CASE SOURCE_FIELDS-MOVETYPE.WHEN 261 OR 262 OR 291 OR 292OR 317 OR 318 OR Z26 OR Z27OR ZD1 OR ZD2.IF SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技术组 115 的转换

15、如下,用来计算期间段的调拨入库,其转换例程:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERTAND SOURCE_FIELDS-MATL_TYPE HALB.原物料调拨入库CASE SOURCE_FIELDS-MOVETYPE.WHEN 301 OR 311 OR 323.IF(NOT(SOURCE_FIELDS-MOVE_PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS

16、-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 302 OR 312.IF(NOT(SOURCE_FIELDS-MOVE_PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BI

17、C/ZSTOR_LOC 1007)AND SOURCE_FIELDS-PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE=FERTOR SOURCE_FIELDS-M

18、ATL_TYPE=HALB).成品与半成品的调拨入库CASE SOURCE_FIELDS-MOVETYPE.WHEN 101 OR 102 OR 122 OR 123.IF(NOT(SOURCE_FIELDS-MOVE_PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)

19、AND SOURCE_FIELDS-DF_MOVFLAG F.非生产入库IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDIF.WHEN 301 OR 311.IF(NOT(SOURCE_FIELDS-MOVE_PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-PLANT=Z

20、TF1 接收方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 302 OR 312.IF(NOT(SOURCE_FIELDS-MOVE_PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-PLANT=ZTF1

21、接收方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技术组 116 的转换如下,用来计算期间段的调拨出库,其转换例程:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERTAND SOURCE_FIELDS-MATL_TYPE H

22、ALB.原物料调拨出库CASE SOURCE_FIELDS-MOVETYPE.WHEN 301 OR 311.IF(NOT(SOURCE_FIELDS-PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-MOVE_PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=H.R

23、ESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 302 OR 312.IF(NOT(SOURCE_FIELDS-PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-MOVE_PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=S.RESU

24、LT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE=FERTOR SOURCE_FIELDS-MATL_TYPE=HALB).成品与半成品的调拨出库CASE SOURCE_FIELDS-MOVETYPE.WHEN 301 OR 311.IF(NOT(SOURCE_FIELDS-PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURC

25、E_FIELDS-STOR_LOC 1007)AND SOURCE_FIELDS-MOVE_PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 302 OR 312.IF(NOT(SOURCE_FIELDS-PLANT=ZTF1 调出方为本库AND(SOURCE_FIELDS-STOR_LOC 1003AND SOURCE_F

26、IELDS-STOR_LOC 1007)AND SOURCE_FIELDS-MOVE_PLANT=ZTF1 接收方为本库AND(SOURCE_FIELDS-/BIC/ZSTOR_LOC 1003AND SOURCE_FIELDS-/BIC/ZSTOR_LOC 1007)AND SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技术组 114 的转换如下,用来计算期间段的当期出入库合计,其转换中公式如下:IF(DATE_MONTH(CALDAY)=DATE_MONTH(PSTNG_DATE),IF(

27、DCINDIC=H,QUANTITY*-1.000000000000000E+00,QUANTITY),0)技术组 112 的转换如下,用来计算期间段的出库(不含调拨),其转换中公式如下:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERTAND SOURCE_FIELDS-MATL_TYPE HALB.原物料正常出库CASE SOURCE_FIELDS-MOVETYPE.WHEN 301 OR 311 OR 302 OR 312.RESULT=0.WHEN 122

28、OR 123 OR 161 OR 162 OR 201 OR 202OR 241 OR 242 OR 261 OR 262 OR 291 OR 292OR 309 OR 310 OR 313 OR 314 OR 317 OR 318OR 322 OR 349 OR 350 OR 502 OR 512 OR 522OR 532 OR 541 OR 551 OR 552 OR 553 OR 554OR 555 OR 556 OR 652 OR 653 OR 657 OR 702OR 704 OR 708 OR 952 OR 953 OR 961 OR Z03OR Z21 OR Z22 OR Z26

29、 OR Z27 OR Z43 OR ZB1OR ZB2 OR ZB3 OR ZB4 OR ZC1 OR ZC2 OR ZD1OR ZD2 OR ZM1 OR ZM2 OR ZM3 OR ZM4 OR ZR1OR ZR2 OR ZW1 OR ZW2OR 323 OR 325 OR 326 OR 601 OR 602 OR 641OR 642 OR 643 OR 644 OR 950 OR 951 OR Z02OR Z21 OR Z22 OR Z41 OR Z42 OR Z43 OR Z61OR ZT1 OR ZT2.IF SOURCE_FIELDS-DCINDIC=H.出库RESULT=-SOU

30、RCE_FIELDS-QUANTITY.ELSE.入库RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 561 OR 562 OR 563 OR 564 OR 565 OR 566.RESULT=0.ENDCASE.ELSEIF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE=FERTOR SOURCE_FIELDS-MATL_TYPE=HALB).成品与半成品的正常出库CASE SOURCE_FIELDS-MOVETYPE.WHEN 301 O

31、R 311 OR 302 OR 312OR 101 OR 102 OR 122 OR 123OR 561 OR 562 OR 343 OR 344 OR 321 OR 322OR 349 OR 350 OR 453 OR 454 OR 459 OR 460.RESULT=0.WHEN 201 OR 161 OR 162 OR ZW1 OR ZR1 OR ZC1OR 202 OR ZW2 OR ZR2 OR ZC2 OR 601 OR 602OR Z21 OR Z22 OR Z01 OR Z51 OR Z41 OR Z42OR 551 OR 552 OR 553 OR 554 OR 555 OR

32、 556OR 641 OR 642 OR 643 OR 644.IF SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN OTHERS.IF SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=0.ENDIF.ENDCASE.ENDIF.技术组 111 的转换如下,用来计算期间段的正常入库(不含调拨)合计,其转换中

33、例程如下:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERT AND SOURCE_FIELDS-MATL_TYPE HALB.原物料正常入库CASE SOURCE_FIELDS-MOVETYPE.WHEN 101 OR 102 OR 105 OR 106 OR 122 OR 123 OR 131 OR 132OR 162 OR 301 OR 302 OR 309 OR 310 OR 313 OR 314 OR 321OR 349 OR 350 OR 501 OR

34、511 OR 521 OR 531 OR 542 OR 651OR 655 OR 701 OR 703 OR 707 OR 960 OR ZM3 OR ZM4 OR ZM5OR ZM6 OR ZM7 OR ZM8 OR ZN3 OR ZN4.IF SOURCE_FIELDS-DCINDIC=H.出库RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.入库RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN OTHERS.ENDCASE.ELSEIF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDA

35、Y+0(6)AND(SOURCE_FIELDS-MATL_TYPE=FERTOR SOURCE_FIELDS-MATL_TYPE=HALB).成品与半成品的正常入库CASE SOURCE_FIELDS-MOVETYPE.WHEN 101 OR 102 OR 122 OR 123.IF SOURCE_FIELDS-DF_MOVFLAG=F 生产入库AND SOURCE_FIELDS-DCINDIC=H.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIF SOURCE_FIELDS-DF_MOVFLAG=F AND SOURCE_FIELDS-DCINDIC=S.RESUL

36、T=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=0.ENDIF.ENDCASE.ENDIF.技术组 125 的转换如下,用来计算期间段的退库料、其他入库,其转换中例程如下:IF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND SOURCE_FIELDS-MATL_TYPE FERTAND SOURCE_FIELDS-MATL_TYPE HALB.原料退货、其他入库合计CASE SOURCE_FIELDS-MOVETYPE.WHEN 309 OR 310 OR 313 OR 501 OR 511OR

37、521 OR 531 OR 542 OR 651 OR 701OR ZM5 OR ZM6 OR ZM7 OR ZM8 OR 960OR 314 OR 350 OR 501 OR 531 OR 707OR 349 OR 531 OR 703.IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIF SOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_

38、FIELDS-MATL_TYPE=FERTOR SOURCE_FIELDS-MATL_TYPE=HALB).成品退货、其他入库合计CASE SOURCE_FIELDS-MOVETYPE.WHEN 651 OR 652 OR Z43 OR Z44OR 655 OR 656.IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN 101 OR 102 OR 122 OR 123 OR 301OR 302 OR 311 OR 312 OR 201 O

39、R 161OR ZW1 OR ZR1 OR ZC1 OR 202 OR ZW2OR ZR2 OR ZC2 OR 601 OR 602 OR Z21OR Z22 OR Z01 OR Z51 OR Z41 OR Z42OR 551 OR 552 OR 553 OR 554 OR 555OR 556 OR 701 OR 702 OR 703 OR 704OR 707 OR 713 OR 714 OR 708 OR 711OR 712 OR 715 OR 716 OR 717 OR 718OR 641 OR 642 OR 643 OR 644 OR 561OR 562 OR 343 OR 344 OR

40、 321 OR 322OR 349 OR 350 OR 453 OR 454 OR 459OR 460.RESULT=0.WHEN OTHERS.IF SOURCE_FIELDS-DCINDIC=S.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.MM_D226 计算期初库存MM_D226 通过初始化点库存及物料移动计算每个月期初库存,其数据来源于 MM_D160 及 MM_D227;MM_D160 到 MM_D226 转换如下,其中开始例程如下,例程目的为将运行月份数据补充到SourcePackage 中:MM_D160 到 MM_D226

41、 的 DTP 采用全部加载,见图;DATA WA_SC TYPE _TY_S_SC_1.DATA:L_DATE TYPE D.LOOP AT SOURCE_PACKAGE INTO WA_SC.CALL FUNCTION FIMA_DATE_CREATEEXPORTINGI_DATE=SY-DATUMI_MONTHS=-1IMPORTINGE_DATE=L_DATE.CONCATENATE L_DATE+0(6)01 INTO WA_SC-CALDAY.MODIFY SOURCE_PACKAGE FROM WA_SC.ENDLOOP.DELETE SOURCE_PACKAGE WHERE ST

42、OCKTYPE=H.删除转运库存类型的数据结束例程如下,删除库存数量为 0 的数据:DELETE RESULT_PACKAGE WHERE QUANTITY=0.DTP:MM_D160MM_D226MM_D227 到 MM_D226 转换如下,其中开始例程如下:DELETE SOURCE_PACKAGE WHERE VTYPE 113.113出入库合计(至初始化点)结束例程中删除库存为 0 的数据:DELETE RESULT_PACKAGE WHERE QUANTITY=0.MM_D224 计算期末库存MM_D224 从 MM_D226(期初)和 MM_D227(物料移动)中计算库存,所以其数

43、据来源于此两个 DSO;MM_D227 到 MM_D224 转换如下:开始例程中删除非当期出入库合计;DELETE SOURCE_PACKAGE WHERE VTYPE 114.114当期出入库合计MM_D226 到 MM_D224 转换如下:开始例程中删除非当期出入库合计;DELETE SOURCE_PACKAGE WHERE VTYPE 101.“删除非期初的数据MM_D222 呆滞列表呆滞列表 DSO 中存储历史呆滞和当前每月呆滞数据,其数据来源于 MM_D230(历史呆滞)、MM_D223(顶峰呆滞)及 MM_D228(顶正呆滞);MM_D230 到 MM_D222 的转换MM_D22

44、3 到 MM_D222 的转换开始例程:DATA:L_DATE TYPE D.SORT SOURCE_PACKAGE BY PLANT ASCENDING STOR_LOC ASCENDING MATERIALASCENDINGPSTNG_DATE ASCENDING.将数据源按照工厂、库存地、物料及凭证日期升序排序,以便最后一笔凭证日期覆盖前一笔*删除本库调拨数据*原材料调拨入库DELETE SOURCE_PACKAGE WHERE(MATL_TYPE FERT AND MATL_TYPE HALB)AND(MOVETYPE=301 OR MOVETYPE=311 OR MOVETYPE=3

45、23 ORMOVETYPE=302 OR MOVETYPE=312)AND(MOVE_PLANT=ZTF1 调出方为 ZTF1 本库AND/BIC/ZSTOR_LOC 1003AND/BIC/ZSTOR_LOC 1007)AND(PLANT=ZTF1 接收方为 ZTF1 本库AND STOR_LOC 1003AND STOR_LOC 1007).*成品与半成品的调拨入库DELETE SOURCE_PACKAGE WHERE(MATL_TYPE=FERT OR MATL_TYPE=HALB)AND(MOVETYPE=101 OR MOVETYPE=102 OR MOVETYPE=122 ORMO

46、VETYPE=123)AND MOVE_PLANT=ZTF1 调出方为 ZTF1 本库AND(/BIC/ZSTOR_LOC 1003AND/BIC/ZSTOR_LOC 1007)AND PLANT=ZTF1 接收方为 ZTF1 本库AND(STOR_LOC 1003AND STOR_LOC 1007)AND DF_MOVFLAG F.DELETE SOURCE_PACKAGE WHERE(MATL_TYPE=FERT OR MATL_TYPE=HALB)AND(MOVETYPE=301 OR MOVETYPE=311 OR MOVETYPE=302 ORMOVETYPE=312)AND(MOV

47、E_PLANT=ZTF1 调出方为 ZTF1 本库AND/BIC/ZSTOR_LOC 1003AND/BIC/ZSTOR_LOC 1007)AND(PLANT=ZTF1 接收方为 ZTF1 本库AND STOR_LOC 1003AND STOR_LOC 1007).*取得执行月上月最后一天CALL FUNCTION FIMA_DATE_CREATEEXPORTINGI_DATE=SY-DATUMI_MONTHS=-1I_SET_LAST_DAY_OF_MONTH=XIMPORTINGE_DATE=L_DATE.DATA WA_SC TYPE _TY_S_SC_1.DELETE SOURCE_P

48、ACKAGEWHERE PSTNG_DATE+0(6)L_DATE+0(6).LOOP AT SOURCE_PACKAGE INTO WA_SC.CONCATENATE L_DATE+0(6)01 INTO WA_SC-CALDAY.MODIFY SOURCE_PACKAGE FROM WA_SC.ENDLOOP.结束例程:DATA WA_ITABTYPE _TY_S_TG_1.DATA:L_MONTH TYPE/BI0/OICALMONTH.TYPES:BEGIN OF _TY_S_TG_1_TMP1,*InfoObject:0PLANT 工厂.PLANTTYPE/BI0/OIPLANT,*

49、InfoObject:0MATERIAL 物料.MATERIALTYPE/BI0/OIMATERIAL,*InfoObject:0CALMONTH 日历年/月.CALMONTHTYPE/BI0/OICALMONTH,*InfoObject:0STOR_LOC 库存地点.STOR_LOCTYPE/BI0/OISTOR_LOC,*InfoObject:0PSTNG_DATE 凭证记帐日期.PSTNG_DATETYPE/BI0/OIPSTNG_DATE,ENDOF _TY_S_TG_1_TMP1.TYPES:BEGIN OF _TY_S_TG_1_TMP2,*InfoObject:0PLANT 工厂

50、.PLANTTYPE/BI0/OIPLANT,*InfoObject:0MATERIAL 物料.MATERIALTYPE/BI0/OIMATERIAL,*InfoObject:0CALMONTH 日历年/月.CALMONTHTYPE/BI0/OICALMONTH,*InfoObject:0PSTNG_DATE 凭证记帐日期.PSTNG_DATETYPE/BI0/OIPSTNG_DATE,ENDOF _TY_S_TG_1_TMP2.*ZTF1 下分本外库数据DATA:ITAB_RESULT1 TYPE STANDARD TABLE OF _TY_S_TG_1_TMP1WITH NON-UNIQU

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com