管理信息化SAP實(shí)施SAPMMETLDesignV1_第1頁
管理信息化SAP實(shí)施SAPMMETLDesignV1_第2頁
管理信息化SAP實(shí)施SAPMMETLDesignV1_第3頁
管理信息化SAP實(shí)施SAPMMETLDesignV1_第4頁
管理信息化SAP實(shí)施SAPMMETLDesignV1_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

管理信息化SAP實(shí)施SAPMMETLDesignV1SAPBI項(xiàng)目MM模塊ETL設(shè)計(jì)說明書當(dāng)前版本:擁有者:最后更新日期:最后更新者:作者:創(chuàng)建日期:批準(zhǔn)者:批準(zhǔn)日期:修訂歷史版本號更新日期修訂作者主要改變描述目錄1.概述52.ETL系統(tǒng)架構(gòu)設(shè)計(jì)62.1庫存模型ETL系統(tǒng)邏輯架構(gòu)62.2庫存模型ETL數(shù)據(jù)流72.2.1日常庫存及呆滯數(shù)據(jù)流72.2.2歷史庫存及呆滯數(shù)據(jù)流82.2.3數(shù)據(jù)源環(huán)境83.庫存模型設(shè)計(jì)103.1PSA設(shè)計(jì)103.2LEVEL1ODS層設(shè)計(jì)113.3LEVEL2EDW層設(shè)計(jì)143.3.1庫存數(shù)據(jù)143.3.2歷史庫存數(shù)據(jù)353.3.3頂正呆滯583.4LEVEL3DM層設(shè)計(jì)684.采購模型設(shè)計(jì)734.1PSA設(shè)計(jì)734.2LEVEL1DSO設(shè)計(jì)734.3LEVEL2EDW設(shè)計(jì)744.4LEVEL3DM設(shè)計(jì)805.MM數(shù)據(jù)裝載流程831.概述本項(xiàng)目ETL部分的核心功能就是按照本設(shè)計(jì)說明書的架構(gòu),將數(shù)據(jù)由數(shù)據(jù)源系統(tǒng)(SAPR3)加載到數(shù)據(jù)倉庫(SAPBW)中。其實(shí)現(xiàn)的困難在于ETL工作將面臨復(fù)雜的源數(shù)據(jù)環(huán)境,包括多種R3標(biāo)準(zhǔn)數(shù)據(jù)源和增強(qiáng)結(jié)構(gòu)、繁多的數(shù)據(jù)種類、巨大的加載數(shù)據(jù)量、錯綜復(fù)雜的數(shù)據(jù)關(guān)系和參差不齊的數(shù)據(jù)質(zhì)量,這些都使ETL的架構(gòu)和應(yīng)用設(shè)計(jì)面臨相當(dāng)?shù)奶魬?zhàn)。通過高效的ETL系統(tǒng)結(jié)構(gòu)、層次化的應(yīng)用功能劃分和BW標(biāo)準(zhǔn)的元素,ETL系統(tǒng)和應(yīng)用架構(gòu)設(shè)計(jì)需要能夠達(dá)到以下目標(biāo):支持在此框架下實(shí)現(xiàn)BW數(shù)據(jù)倉庫所需要的ETL功能;支持在規(guī)定的時間窗口內(nèi)能夠完成數(shù)據(jù)加載工作,即需要滿足日常數(shù)據(jù)加載的性能需求;能夠支持有效的應(yīng)用程序開發(fā)模式,提高開發(fā)效率,盡量減少應(yīng)用開發(fā)成本;減少系統(tǒng)維護(hù)的復(fù)雜性,支持后續(xù)增加新數(shù)據(jù)或功能的開發(fā)工作。ETL設(shè)計(jì)說明書為ETL開發(fā)提供指導(dǎo),著重?cái)⑹鰯?shù)據(jù)倉庫系統(tǒng)ETL系統(tǒng)的架構(gòu)、功能和實(shí)施過程,其中包含了主要數(shù)據(jù)轉(zhuǎn)換過程以及涉及到的客戶化例程的說明。ETL過程依賴于源數(shù)據(jù)的準(zhǔn)備就緒,本設(shè)計(jì)說明書同時也列出了模塊所對應(yīng)的SAP標(biāo)準(zhǔn)數(shù)據(jù)源和主數(shù)據(jù)數(shù)據(jù)源。由于ETL的復(fù)雜性,本設(shè)計(jì)嘗試從多個層面進(jìn)行說明,希望能夠盡可能回答開發(fā)過程中所面臨的問題達(dá)到指導(dǎo)開發(fā)的目的,但實(shí)際開發(fā)過程中,開發(fā)人員仍然可能遇到設(shè)計(jì)說明書沒有涉及的問題,因此,遵循設(shè)計(jì)的基本思想,通過開發(fā)人員的反饋,在開發(fā)的過程中不斷地完善和修正設(shè)計(jì),對于ETL的開發(fā)是非常重要的。對于任何ETL開發(fā)過程中遇到的技術(shù)問題,開發(fā)人員需要與設(shè)計(jì)人員協(xié)商討論,以迅速解決問題,保證開發(fā)順利進(jìn)行。而同時,為保證ETL系統(tǒng)架構(gòu)的完整、統(tǒng)一、程序的可維護(hù)性以及開發(fā)的可管理性,對設(shè)計(jì)的修改必須得到控制,重要的變動必須通過版本管理流程來協(xié)調(diào)進(jìn)行。本設(shè)計(jì)說明書將包括以下部分:架構(gòu)設(shè)計(jì):設(shè)計(jì)對應(yīng)模塊ETL系統(tǒng)的邏輯架構(gòu)以及分析數(shù)據(jù)流。ETL過程說明:包括ETL過程涉及到的各步驟說明,如信息包的更新機(jī)制,轉(zhuǎn)換過程中涉及到的特定例程控制,DTP的執(zhí)行和更新機(jī)制等等。數(shù)據(jù)加載流程:說明了對于本模塊而言在運(yùn)行特定步驟之前需滿足的條件。2.ETL系統(tǒng)架構(gòu)設(shè)計(jì)2.1庫存模型ETL系統(tǒng)邏輯架構(gòu)上圖是ETL系統(tǒng)邏輯架構(gòu)。從宏觀設(shè)計(jì)上,歷史數(shù)據(jù)、初始數(shù)據(jù)加載和日常數(shù)據(jù)加載的ETL都將按照此架構(gòu)設(shè)計(jì)。該架構(gòu)將ETL作為一個整體來設(shè)計(jì)。對于數(shù)據(jù)倉庫的加載,ETL分為數(shù)據(jù)抽取(Extract)、數(shù)據(jù)轉(zhuǎn)換(Transform)以及數(shù)據(jù)加載(Load)3個階段。2.2庫存模型ETL數(shù)據(jù)流2.2.1日常庫存及呆滯數(shù)據(jù)流2.2.2歷史庫存及呆滯數(shù)據(jù)流2.2.3數(shù)據(jù)源環(huán)境數(shù)據(jù)源全部由SAP系統(tǒng)提供,數(shù)據(jù)源包括兩種類型業(yè)務(wù)數(shù)據(jù)數(shù)據(jù)源日常增量源數(shù)據(jù):即物料憑證,2LIS_03_BF初始加載源數(shù)據(jù):即庫存初始化,2LIS_03_BX主數(shù)據(jù)數(shù)據(jù)源文本數(shù)據(jù)源屬性數(shù)據(jù)源層次結(jié)構(gòu)數(shù)據(jù)源3.庫存模型設(shè)計(jì)3.1PSA設(shè)計(jì)PSA數(shù)據(jù)源:庫存模型的PSA業(yè)務(wù)數(shù)據(jù)源包含2LIS_03_BX及2LIS_03_BF,并且使用0CO_PC_ACT_1作為價格數(shù)據(jù)源,計(jì)算庫存價值;數(shù)據(jù)源增強(qiáng):2LIS_03_BF中增強(qiáng)了ZZMAUFNR_IND及UMLGO字段,ZZMAUFNR_IND用來判斷是否是生產(chǎn)訂單大訂單,這個字段的用處是PP模型需要使用,不涉及庫存模型計(jì)算;UMLGO表示收貨庫存地點(diǎn);信息包:2LIS_03_BF信息包包含增量、全量及初始化信息包初始化信息包增量信息包全量信息包3.2Level1ODS層設(shè)計(jì)MM_D131,庫存管理的貨物移動MM_D131是寫優(yōu)化DSO,其結(jié)構(gòu)與PSA一樣,存儲最原始的貨物移動,其結(jié)構(gòu)如下:在2LIS_03_BF到MM_D131的數(shù)據(jù)加載中,在DTP中過濾了不必要的工廠代碼,在過濾器中設(shè)置如下所示:MM_D160,庫存管理的庫存初始化初始化庫存模型是寫優(yōu)化DSO,其結(jié)構(gòu)與2LIS_03_BX保持一致,在數(shù)據(jù)2LIS_03_BX到MM_D160的數(shù)據(jù)加載中,無數(shù)據(jù)過濾;MM_D140,實(shí)際成本核算/物料分類賬3.3Level2EDW層設(shè)計(jì)3.3.1庫存數(shù)據(jù)MM_D223庫存中間數(shù)據(jù)MM_D223從MM_D131加載數(shù)據(jù),過濾掉其中庫存種類為空的數(shù)據(jù);該數(shù)據(jù)源存儲的是物料移入移出的記錄,并無特別計(jì)算;開始例程如下:DELETESOURCE_PACKAGEWHERESTOCKTYPE<>'A'ANDSTOCKTYPE<>'B'ANDSTOCKTYPE<>'C'ANDSTOCKTYPE<>'D'ANDSTOCKTYPE<>'F'ANDSTOCKTYPE<>'H'ANDSTOCKTYPE<>'Q'ANDSTOCKTYPE<>'R'ANDSTOCKTYPE<>'V'.ZFIR_DAY字段是系統(tǒng)庫存初始化日期,從MM_D160讀取,例程如下:SELECTSINGLEPSTNG_DATEINTORESULTFROMAMM_D16000.MM_D227庫存計(jì)算準(zhǔn)備該DSO從MM_D223加載數(shù)據(jù),他主要是記錄各種類型每個月出入庫的值,以便為后面的計(jì)算某月期末庫存做準(zhǔn)備;開始例程中過濾掉非計(jì)算期間的憑證數(shù)據(jù);DATAWA_SCTYPE_TY_S_SC_1.DATA:L_DATETYPED.BREAK-POINT.LOOPATSOURCE_PACKAGEINTOWA_SC.CALLFUNCTION'FIMA_DATE_CREATE'EXPORTINGI_DATE=SY-DATUMI_MONTHS='-1'IMPORTINGE_DATE=L_DATE.CONCATENATEL_DATE+0(6)'01'INTOWA_SC-CALDAY.MODIFYSOURCE_PACKAGEFROMWA_SC.*----------------------Lizz將不再統(tǒng)計(jì)范圍內(nèi)的數(shù)據(jù)刪除begin.IFWA_SC-CALDAY<=WA_SC-ZFIR_DAY.IF(WA_SC-PSTNG_DATE+0(6)<WA_SC-CALDAY+0(6))OR(WA_SC-PSTNG_DATE>WA_SC-ZFIR_DAY).DELETESOURCE_PACKAGE.ENDIF.ELSE.IF(WA_SC-PSTNG_DATE<WA_SC-ZFIR_DAY)OR(WA_SC-PSTNG_DATE+0(6)>WA_SC-CALDAY+0(6)).DELETESOURCE_PACKAGE.ENDIF.ENDIF.*----------------------Lizz將不再統(tǒng)計(jì)范圍內(nèi)的數(shù)據(jù)刪除end.ENDLOOP.DELETESOURCE_PACKAGEWHERESTOR_LOC=''.結(jié)束例程中過濾掉計(jì)算結(jié)果為0的數(shù)據(jù);DELETERESULT_PACKAGEWHEREQUANTITY=0.MM_D223到MM_D227的轉(zhuǎn)換包括多個技術(shù)組;技術(shù)組119的轉(zhuǎn)換如下,用來計(jì)算期間段的銷售數(shù)量,其轉(zhuǎn)換例程:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6).CASESOURCE_FIELDS-MOVETYPE.WHEN'601'OR'602'OR'Z21'OR'Z22'OR'Z01'OR'Z51'OR'Z41'OR'Z42'.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技術(shù)組120的轉(zhuǎn)換如下,用來計(jì)算期間段的廢料產(chǎn)生量,其轉(zhuǎn)換例程:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE='FEIP'AND(SOURCE_FIELDS-MOVETYPE='531'ORSOURCE_FIELDS-MOVETYPE='532').IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDIF.技術(shù)組121的轉(zhuǎn)換如下,用來計(jì)算期間段的生產(chǎn)領(lǐng)用量,其轉(zhuǎn)換例程:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'.CASESOURCE_FIELDS-MOVETYPE.WHEN'261'OR'262'OR'291'OR'292'OR'317'OR'318'OR'Z26'OR'Z27'OR'ZD1'OR'ZD2'.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技術(shù)組115的轉(zhuǎn)換如下,用來計(jì)算期間段的調(diào)撥入庫,其轉(zhuǎn)換例程:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料調(diào)撥入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'323'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的調(diào)撥入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'101'OR'102'OR'122'OR'123'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DF_MOVFLAG<>'F'."非生產(chǎn)入庫IFSOURCE_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'"調(diào)出方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技術(shù)組116的轉(zhuǎn)換如下,用來計(jì)算期間段的調(diào)撥出庫,其轉(zhuǎn)換例程:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料調(diào)撥出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的調(diào)撥出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.技術(shù)組114的轉(zhuǎn)換如下,用來計(jì)算期間段的當(dāng)期出入庫合計(jì),其轉(zhuǎn)換中公式如下:IF(DATE_MONTH(CALDAY)=DATE_MONTH(PSTNG_DATE),IF(DCINDIC='H',QUANTITY*'-1.E+00',QUANTITY),'0')技術(shù)組112的轉(zhuǎn)換如下,用來計(jì)算期間段的出庫(不含調(diào)撥),其轉(zhuǎn)換中公式如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料正常出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'302'OR'312'.RESULT=0.WHEN'122'OR'123'OR'161'OR'162'OR'201'OR'202'OR'241'OR'242'OR'261'OR'262'OR'291'OR'292'OR'309'OR'310'OR'313'OR'314'OR'317'OR'318'OR'322'OR'349'OR'350'OR'502'OR'512'OR'522'OR'532'OR'541'OR'551'OR'552'OR'553'OR'554'OR'555'OR'556'OR'652'OR'653'OR'657'OR'702'OR'704'OR'708'OR'952'OR'953'OR'961'OR'Z03'OR'Z21'OR'Z22'OR'Z26'OR'Z27'OR'Z43'OR'ZB1'OR'ZB2'OR'ZB3'OR'ZB4'OR'ZC1'OR'ZC2'OR'ZD1'OR'ZD2'OR'ZM1'OR'ZM2'OR'ZM3'OR'ZM4'OR'ZR1'OR'ZR2'OR'ZW1'OR'ZW2'OR'323'OR'325'OR'326'OR'601'OR'602'OR'641'OR'642'OR'643'OR'644'OR'950'OR'951'OR'Z02'OR'Z21'OR'Z22'OR'Z41'OR'Z42'OR'Z43'OR'Z61'OR'ZT1'OR'ZT2'.IFSOURCE_FIELDS-DCINDIC='H'."出庫RESULT=-SOURCE_FIELDS-QUANTITY.ELSE."入庫RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'561'OR'562'OR'563'OR'564'OR'565'OR'566'.RESULT=0.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的正常出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'302'OR'312'OR'101'OR'102'OR'122'OR'123'OR'561'OR'562'OR'343'OR'344'OR'321'OR'322'OR'349'OR'350'OR'453'OR'454'OR'459'OR'460'.RESULT=0.WHEN'201'OR'161'OR'162'OR'ZW1'OR'ZR1'OR'ZC1'OR'202'OR'ZW2'OR'ZR2'OR'ZC2'OR'601'OR'602'OR'Z21'OR'Z22'OR'Z01'OR'Z51'OR'Z41'OR'Z42'OR'551'OR'552'OR'553'OR'554'OR'555'OR'556'OR'641'OR'642'OR'643'OR'644'.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHENOTHERS.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=0.ENDIF.ENDCASE.ENDIF.技術(shù)組111的轉(zhuǎn)換如下,用來計(jì)算期間段的正常入庫(不含調(diào)撥)合計(jì),其轉(zhuǎn)換中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料正常入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'101'OR'102'OR'105'OR'106'OR'122'OR'123'OR'131'OR'132'OR'162'OR'301'OR'302'OR'309'OR'310'OR'313'OR'314'OR'321'OR'349'OR'350'OR'501'OR'511'OR'521'OR'531'OR'542'OR'651'OR'655'OR'701'OR'703'OR'707'OR'960'OR'ZM3'OR'ZM4'OR'ZM5'OR'ZM6'OR'ZM7'OR'ZM8'OR'ZN3'OR'ZN4'.IFSOURCE_FIELDS-DCINDIC='H'."出庫RESULT=-SOURCE_FIELDS-QUANTITY.ELSE."入庫RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHENOTHERS.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的正常入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'101'OR'102'OR'122'OR'123'.IFSOURCE_FIELDS-DF_MOVFLAG='F'"生產(chǎn)入庫ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIFSOURCE_FIELDS-DF_MOVFLAG='F'ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=0.ENDIF.ENDCASE.ENDIF.技術(shù)組125的轉(zhuǎn)換如下,用來計(jì)算期間段的退庫\料、其他入庫,其轉(zhuǎn)換中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原料退貨、其他入庫合計(jì)CASESOURCE_FIELDS-MOVETYPE.WHEN'309'OR'310'OR'313'OR'501'OR'511'OR'521'OR'531'OR'542'OR'651'OR'701'OR'ZM5'OR'ZM6'OR'ZM7'OR'ZM8'OR'960'OR'314'OR'350'OR'501'OR'531'OR'707'OR'349'OR'531'OR'703'.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品退貨、其他入庫合計(jì)CASESOURCE_FIELDS-MOVETYPE.WHEN'651'OR'652'OR'Z43'OR'Z44'OR'655'OR'656'.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'101'OR'102'OR'122'OR'123'OR'301'OR'302'OR'311'OR'312'OR'201'OR'161'OR'ZW1'OR'ZR1'OR'ZC1'OR'202'OR'ZW2'OR'ZR2'OR'ZC2'OR'601'OR'602'OR'Z21'OR'Z22'OR'Z01'OR'Z51'OR'Z41'OR'Z42'OR'551'OR'552'OR'553'OR'554'OR'555'OR'556'OR'701'OR'702'OR'703'OR'704'OR'707'OR'713'OR'714'OR'708'OR'711'OR'712'OR'715'OR'716'OR'717'OR'718'OR'641'OR'642'OR'643'OR'644'OR'561'OR'562'OR'343'OR'344'OR'321'OR'322'OR'349'OR'350'OR'453'OR'454'OR'459'OR'460'.RESULT=0.WHENOTHERS.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.MM_D226計(jì)算期初庫存MM_D226通過初始化點(diǎn)庫存及物料移動計(jì)算每個月期初庫存,其數(shù)據(jù)來源于MM_D160及MM_D227;MM_D160到MM_D226轉(zhuǎn)換如下,其中開始例程如下,例程目的為將運(yùn)行月份數(shù)據(jù)補(bǔ)充到SourcePackage中:MM_D160到MM_D226的DTP采用全部加載,見圖;DATAWA_SCTYPE_TY_S_SC_1.DATA:L_DATETYPED.LOOPATSOURCE_PACKAGEINTOWA_SC.CALLFUNCTION'FIMA_DATE_CREATE'EXPORTINGI_DATE=SY-DATUMI_MONTHS='-1'IMPORTINGE_DATE=L_DATE.CONCATENATEL_DATE+0(6)'01'INTOWA_SC-CALDAY.MODIFYSOURCE_PACKAGEFROMWA_SC.ENDLOOP.DELETESOURCE_PACKAGEWHERESTOCKTYPE='H'."刪除轉(zhuǎn)運(yùn)庫存類型的數(shù)據(jù)結(jié)束例程如下,刪除庫存數(shù)量為0的數(shù)據(jù):DELETERESULT_PACKAGEWHEREQUANTITY=0.DTP:MM_D160MM_D226MM_D227到MM_D226轉(zhuǎn)換如下,其中開始例程如下:DELETESOURCE_PACKAGEWHEREVTYPE<>'113'."113出入庫合計(jì)(至初始化點(diǎn))結(jié)束例程中刪除庫存為0的數(shù)據(jù):DELETERESULT_PACKAGEWHEREQUANTITY=0.MM_D224計(jì)算期末庫存MM_D224從MM_D226(期初)和MM_D227(物料移動)中計(jì)算庫存,所以其數(shù)據(jù)來源于此兩個DSO;MM_D227到MM_D224轉(zhuǎn)換如下:開始例程中刪除非當(dāng)期出入庫合計(jì);DELETESOURCE_PACKAGEWHEREVTYPE<>'114'."114當(dāng)期出入庫合計(jì)MM_D226到MM_D224轉(zhuǎn)換如下:開始例程中刪除非當(dāng)期出入庫合計(jì);DELETESOURCE_PACKAGEWHEREVTYPE<>'101'.“刪除非期初的數(shù)據(jù)MM_D222呆滯列表呆滯列表DSO中存儲歷史呆滯和當(dāng)前每月呆滯數(shù)據(jù),其數(shù)據(jù)來源于MM_D230(歷史呆滯)、MM_D223(頂峰呆滯)及MM_D228(頂正呆滯);MM_D230到MM_D222的轉(zhuǎn)換MM_D223到MM_D222的轉(zhuǎn)換開始例程:DATA:L_DATETYPED.SORTSOURCE_PACKAGEBYPLANTASCENDINGSTOR_LOCASCENDINGMATERIALASCENDINGPSTNG_DATEASCENDING."將數(shù)據(jù)源按照工廠、庫存地、物料及憑證日期升序排序,以便最后一筆憑證日期覆蓋前一筆*刪除本庫調(diào)撥數(shù)據(jù)*原材料調(diào)撥入庫DELETESOURCE_PACKAGEWHERE(MATL_TYPE<>'FERT'ANDMATL_TYPE<>'HALB')AND(MOVETYPE='301'ORMOVETYPE='311'ORMOVETYPE='323'ORMOVETYPE='302'ORMOVETYPE='312')AND(MOVE_PLANT='ZTF1'"調(diào)出方為ZTF1本庫ANDZSTOR_LOC<>'1003'ANDZSTOR_LOC<>'1007')AND(PLANT='ZTF1'"接收方為ZTF1本庫ANDSTOR_LOC<>'1003'ANDSTOR_LOC<>'1007').*成品與半成品的調(diào)撥入庫DELETESOURCE_PACKAGEWHERE(MATL_TYPE='FERT'ORMATL_TYPE='HALB')AND(MOVETYPE='101'ORMOVETYPE='102'ORMOVETYPE='122'ORMOVETYPE='123')ANDMOVE_PLANT='ZTF1'"調(diào)出方為ZTF1本庫AND(ZSTOR_LOC<>'1003'ANDZSTOR_LOC<>'1007')ANDPLANT='ZTF1'"接收方為ZTF1本庫AND(STOR_LOC<>'1003'ANDSTOR_LOC<>'1007')ANDDF_MOVFLAG<>'F'.DELETESOURCE_PACKAGEWHERE(MATL_TYPE='FERT'ORMATL_TYPE='HALB')AND(MOVETYPE='301'ORMOVETYPE='311'ORMOVETYPE='302'ORMOVETYPE='312')AND(MOVE_PLANT='ZTF1'"調(diào)出方為ZTF1本庫ANDZSTOR_LOC<>'1003'ANDZSTOR_LOC<>'1007')AND(PLANT='ZTF1'"接收方為ZTF1本庫ANDSTOR_LOC<>'1003'ANDSTOR_LOC<>'1007').*取得執(zhí)行月上月最后一天CALLFUNCTION'FIMA_DATE_CREATE'EXPORTINGI_DATE=SY-DATUMI_MONTHS='-1'I_SET_LAST_DAY_OF_MONTH='X'IMPORTINGE_DATE=L_DATE.DATAWA_SCTYPE_TY_S_SC_1.DELETESOURCE_PACKAGEWHEREPSTNG_DATE+0(6)>L_DATE+0(6).LOOPATSOURCE_PACKAGEINTOWA_SC.CONCATENATEL_DATE+0(6)'01'INTOWA_SC-CALDAY.MODIFYSOURCE_PACKAGEFROMWA_SC.ENDLOOP.結(jié)束例程:DATAWA_ITABTYPE_TY_S_TG_1.DATA:L_MONTHTYPEOICALMONTH.TYPES:BEGINOF_TY_S_TG_1_TMP1,*InfoObject:0PLANT工廠.PLANTTYPEOIPLANT,*InfoObject:0MATERIAL物料.MATERIALTYPEOIMATERIAL,*InfoObject:0CALMONTH日歷年/月.CALMONTHTYPEOICALMONTH,*InfoObject:0STOR_LOC庫存地點(diǎn).STOR_LOCTYPEOISTOR_LOC,*InfoObject:0PSTNG_DATE憑證記帳日期.PSTNG_DATETYPEOIPSTNG_DATE,ENDOF_TY_S_TG_1_TMP1.TYPES:BEGINOF_TY_S_TG_1_TMP2,*InfoObject:0PLANT工廠.PLANTTYPEOIPLANT,*InfoObject:0MATERIAL物料.MATERIALTYPEOIMATERIAL,*InfoObject:0CALMONTH日歷年/月.CALMONTHTYPEOICALMONTH,*InfoObject:0PSTNG_DATE憑證記帳日期.PSTNG_DATETYPEOIPSTNG_DATE,ENDOF_TY_S_TG_1_TMP2.*ZTF1下分本外庫數(shù)據(jù)DATA:ITAB_RESULT1TYPESTANDARDTABLEOF_TY_S_TG_1_TMP1WITHNON-UNIQUEDEFAULTKEY.DATA:WA_TG_1_TMP1TYPE_TY_S_TG_1_TMP1.*ZTF2\ZTF3\TTF1等部分本外庫,以工廠層次來看最后一筆移動的數(shù)據(jù)DATA:ITAB_RESULT2TYPESTANDARDTABLEOF_TY_S_TG_1_TMP2WITHNON-UNIQUEDEFAULTKEY.DATA:WA_TG_1_TMP2TYPE_TY_S_TG_1_TMP2.*ZTF1下1003、1007庫作為外庫處理,其他庫作為本庫處理;ZTF2、ZTF3及TTF1等庫都是單獨(dú)考慮工廠層面呆滯LOOPATRESULT_PACKAGEINTOWA_ITAB.IFWA_ITAB-PLANT='ZTF1'.IFWA_ITAB-STOR_LOC='1003'ORWA_ITAB-STOR_LOC='1007'."外庫WA_TG_1_TMP1-PLANT=WA_ITAB-PLANT.WA_TG_1_TMP1-MATERIAL=WA_ITAB-MATERIAL.WA_TG_1_TMP1-CALMONTH=WA_ITAB-CALMONTH.WA_TG_1_TMP1-STOR_LOC='Wai'."標(biāo)記為外庫WA_TG_1_TMP1-PSTNG_DATE=WA_ITAB-PSTNG_DATE.APPENDWA_TG_1_TMP1TOITAB_RESULT1.ELSE."本庫WA_TG_1_TMP1-PLANT=WA_ITAB-PLANT.WA_TG_1_TMP1-MATERIAL=WA_ITAB-MATERIAL.WA_TG_1_TMP1-CALMONTH=WA_ITAB-CALMONTH.WA_TG_1_TMP1-STOR_LOC='Ben'."標(biāo)記為本庫WA_TG_1_TMP1-PSTNG_DATE=WA_ITAB-PSTNG_DATE.APPENDWA_TG_1_TMP1TOITAB_RESULT1.ENDIF.ELSE."非ZTF1庫WA_TG_1_TMP2-PLANT=WA_ITAB-PLANT.WA_TG_1_TMP2-MATERIAL=WA_ITAB-MATERIAL.WA_TG_1_TMP2-CALMONTH=WA_ITAB-CALMONTH.WA_TG_1_TMP2-PSTNG_DATE=WA_ITAB-PSTNG_DATE.APPENDWA_TG_1_TMP2TOITAB_RESULT2.ENDIF.ENDLOOP.SORTITAB_RESULT1BYPLANTDESCENDINGMATERIALDESCENDINGCALMONTHDESCENDINGSTOR_LOCDESCENDINGPSTNG_DATEDESCENDING."按時間降序排列,為后面讀取做準(zhǔn)備SORTITAB_RESULT2BYPLANTDESCENDINGMATERIALDESCENDINGCALMONTHDESCENDINGPSTNG_DATEDESCENDING."按時間降序排列,為后面讀取做準(zhǔn)備LOOPATRESULT_PACKAGEINTOWA_ITAB.IFWA_ITAB-PLANT='ZTF1'.IFWA_ITAB-STOR_LOC='1003'ORWA_ITAB-STOR_LOC='1007'."外庫READTABLEITAB_RESULT1INTOWA_TG_1_TMP1WITHKEYPLANT=WA_ITAB-PLANTMATERIAL=WA_ITAB-MATERIALCALMONTH=WA_ITAB-CALMONTHSTOR_LOC='Wai'.IFSY-SUBRC=0.L_MONTH=WA_ITAB-CALMONTH-WA_TG_1_TMP1-PSTNG_DATE+0(6)."判斷外庫最后一筆物料移動時間WA_ITAB-PSTNG_DATE=WA_TG_1_TMP1-PSTNG_DATE."更改為外庫最后一筆移動日期IFL_MONTH>=6.WA_ITAB-VTYPE='122'."定義為呆品ELSEIFL_MONTH<6ANDL_MONTH>2.WA_ITAB-VTYPE='123'."定義為滯品ELSEIFL_MONTH=2.WA_ITAB-VTYPE='124'."定義為預(yù)警ENDIF.MODIFYRESULT_PACKAGEFROMWA_ITAB.ENDIF.ELSE."本庫READTABLEITAB_RESULT1INTOWA_TG_1_TMP1WITHKEYPLANT=WA_ITAB-PLANTMATERIAL=WA_ITAB-MATERIALCALMONTH=WA_ITAB-CALMONTHSTOR_LOC='Ben'.IFSY-SUBRC=0.L_MONTH=WA_ITAB-CALMONTH-WA_TG_1_TMP1-PSTNG_DATE+0(6)."判斷外庫最后一筆物料移動時間WA_ITAB-PSTNG_DATE=WA_TG_1_TMP1-PSTNG_DATE."更改為外庫最后一筆移動日期IFL_MONTH>=6.WA_ITAB-VTYPE='122'."定義為呆品ELSEIFL_MONTH<6ANDL_MONTH>2.WA_ITAB-VTYPE='123'."定義為滯品ELSEIFL_MONTH=2.WA_ITAB-VTYPE='124'."定義為預(yù)警ENDIF.MODIFYRESULT_PACKAGEFROMWA_ITAB.ENDIF.ENDIF.ELSE."除ZTF1外的其他庫存READTABLEITAB_RESULT2INTOWA_TG_1_TMP2WITHKEYPLANT=WA_ITAB-PLANTMATERIAL=WA_ITAB-MATERIALCALMONTH=WA_ITAB-CALMONTH.IFSY-SUBRC=0.L_MONTH=WA_ITAB-CALMONTH-WA_TG_1_TMP2-PSTNG_DATE+0(6)."判斷工廠最后一筆物料移動時間WA_ITAB-PSTNG_DATE=WA_TG_1_TMP1-PSTNG_DATE."更改為工廠下最后一筆移動日期IFL_MONTH>=6.WA_ITAB-VTYPE='122'."定義為呆品ELSEIFL_MONTH<6ANDL_MONTH>2.WA_ITAB-VTYPE='123'."定義為滯品ELSEIFL_MONTH=2.WA_ITAB-VTYPE='124'."定義為預(yù)警ENDIF.MODIFYRESULT_PACKAGEFROMWA_ITAB.ENDIF.ENDIF.ENDLOOP.DELETERESULT_PACKAGEWHEREVTYPE<>'122'ANDVTYPE<>'123'ANDVTYPE<>'124'.MM_D228到MM_D222轉(zhuǎn)換,此轉(zhuǎn)換計(jì)算頂正呆滯;開始例程,此例程的作用為刪除三個月前庫存為0的數(shù)據(jù)和當(dāng)前庫存為0的數(shù)據(jù)(如果三個月前庫存為0,則當(dāng)前庫存肯定為近三個月入庫,不符合呆滯定義;如果當(dāng)前庫存為0,則當(dāng)前該物料根本不存在呆滯說法)DELETESOURCE_PACKAGEWHEREQUANTITY='0'ORZQTY2='0'.結(jié)束例程,該例程則是將計(jì)算后不符合呆滯定義的數(shù)據(jù)刪除,保留呆滯數(shù)據(jù);DELETERESULT_PACKAGEWHEREQUANTITY>'0.2'ORZQUANTITY<='0'.3.3.2歷史庫存數(shù)據(jù)MM_D229庫存計(jì)算準(zhǔn)備歷史,其中包含各種類型的數(shù)據(jù)的計(jì)算,如下圖所示其中開始例程如下,在計(jì)算中首先從MM_D110中讀取需要計(jì)算的歷史月份,然后過濾掉從初始化點(diǎn)(ZFIR_DAY)到計(jì)算月份的數(shù)據(jù),以減小后續(xù)計(jì)算數(shù)據(jù)量,提高系統(tǒng)效率;DATA:ITAB_HISTORY_MONTYPESTANDARDTABLEOFTYP_HISTORY_MONWITHNON-UNIQUEDEFAULTKEY,WA_ITAB_HISTORY_MONTYPETYP_HISTORY_MON.DATAWA_SCTYPE_TY_S_SC_1.BREAK-POINT.SELECTCALDAYFROMAMM_D11100INTOCORRESPONDINGFIELDSOFTABLEITAB_HISTORY_MON.SORTITAB_HISTORY_MONDESCENDING.READTABLEITAB_HISTORY_MONINTOWA_ITAB_HISTORY_MONINDEX1.LOOPATSOURCE_PACKAGEINTOWA_SC.WA_SC-CALDAY=WA_ITAB_HISTORY_MON-CALDAY.MODIFYSOURCE_PACKAGEFROMWA_SC.*----------------------Lizz將不再統(tǒng)計(jì)范圍內(nèi)的數(shù)據(jù)刪除begin.IFWA_SC-CALDAY<=WA_SC-ZFIR_DAY.IF(WA_SC-PSTNG_DATE+0(6)<WA_SC-CALDAY+0(6))OR(WA_SC-PSTNG_DATE>WA_SC-ZFIR_DAY).DELETESOURCE_PACKAGE.ENDIF.ELSE.IF(WA_SC-PSTNG_DATE<WA_SC-ZFIR_DAY)OR(WA_SC-PSTNG_DATE+0(6)>WA_SC-CALDAY+0(6)).DELETESOURCE_PACKAGE.ENDIF.ENDIF.*----------------------Lizz將不再統(tǒng)計(jì)范圍內(nèi)的數(shù)據(jù)刪除end..ENDLOOP.DELETESOURCE_PACKAGEWHERESTOR_LOC=''.結(jié)束例程中刪除掉庫存數(shù)量為0的數(shù)據(jù);DELETERESULT_PACKAGEWHEREQUANTITY=0.標(biāo)準(zhǔn)組的轉(zhuǎn)換如下,其轉(zhuǎn)換例程,其意義在于計(jì)算從初始化點(diǎn)到庫存計(jì)算月之間的庫存數(shù)據(jù),如果計(jì)算月小于初始化日期,則計(jì)算的是初始化日期到計(jì)算月之間的物料移動,最后拿初始化點(diǎn)庫存減去物料入庫量,得到計(jì)算點(diǎn)庫存量;如果計(jì)算月在初始化日期之后,則從初始化日期開始的物料入庫量需要加上初始化點(diǎn)數(shù)量;IFSOURCE_FIELDS-CALDAY<=SOURCE_FIELDS-ZFIR_DAY."初始化結(jié)束后,當(dāng)天不再有單據(jù)產(chǎn)生,并且初始化要在24點(diǎn)前結(jié)束IFSOURCE_FIELDS-PSTNG_DATE<=SOURCE_FIELDS-ZFIR_DAY"有效的數(shù)據(jù)統(tǒng)計(jì)范圍ANDSOURCE_FIELDS-PSTNG_DATE>=SOURCE_FIELDS-CALDAY.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIFSOURCE_FIELDS-DCINDIC='H'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ELSE."不在統(tǒng)計(jì)范圍的數(shù)據(jù)RESULT=0.ENDIF.ELSE."選擇數(shù)據(jù)月份的第一天比初始化日期大IFSOURCE_FIELDS-PSTNG_DATE>SOURCE_FIELDS-ZFIR_DAY"有效的數(shù)據(jù)統(tǒng)計(jì)范圍ANDSOURCE_FIELDS-PSTNG_DATE<SOURCE_FIELDS-CALDAY.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ELSE."不在統(tǒng)計(jì)范圍的數(shù)據(jù)RESULT=0.ENDIF.ENDIF.119技術(shù)組用來計(jì)算銷售量0QUANTITY中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6).CASESOURCE_FIELDS-MOVETYPE.WHEN'601'OR'602'OR'Z21'OR'Z22'OR'Z01'OR'Z51'OR'Z41'OR'Z42'.IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.120技術(shù)組用來計(jì)算廢料產(chǎn)生量0QUANTITY中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE='FEIP'AND(SOURCE_FIELDS-MOVETYPE='531'ORSOURCE_FIELDS-MOVETYPE='532').IFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ELSE.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDIF.121技術(shù)組用來計(jì)算生產(chǎn)領(lǐng)用量0QUANTITY中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'.CASESOURCE_FIELDS-MOVETYPE.WHEN'261'OR'262'OR'291'OR'292'OR'317'OR'318'OR'Z26'OR'Z27'OR'ZD1'OR'ZD2'.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.115技術(shù)組用來計(jì)算調(diào)撥入庫量0QUANTITY中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料調(diào)撥入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'323'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的調(diào)撥入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'101'OR'102'OR'122'OR'123'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DF_MOVFLAG<>'F'."非生產(chǎn)入庫(存貨調(diào)撥)IFSOURCE_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'"調(diào)出方本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-MOVE_PLANT='ZTF1'"調(diào)出方本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')ANDSOURCE_FIELDS-PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.116技術(shù)組用來計(jì)算調(diào)撥出庫量0QUANTITY中例程如下:IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料調(diào)撥出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的調(diào)撥出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'302'OR'312'.IF(NOT(SOURCE_FIELDS-PLANT='ZTF1'"調(diào)出方為本庫AND(SOURCE_FIELDS-STOR_LOC<>'1003'ANDSOURCE_FIELDS-STOR_LOC<>'1007')ANDSOURCE_FIELDS-MOVE_PLANT='ZTF1'"接收方為本庫AND(SOURCE_FIELDS-ZSTOR_LOC<>'1003'ANDSOURCE_FIELDS-ZSTOR_LOC<>'1007')))ANDSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.ENDCASE.ENDIF.114技術(shù)組用來計(jì)算當(dāng)期出入庫合計(jì),該轉(zhuǎn)換計(jì)算的是執(zhí)行月當(dāng)月的物料移入移出量;0QUANTITY中公式如下:IF(DATE_MONTH(CALDAY)=DATE_MONTH(PSTNG_DATE),IF(DCINDIC='H',QUANTITY*'-1.E+00',QUANTITY),'0')112技術(shù)組用來計(jì)算正常出庫(不含調(diào)撥)0QUANTITY中例程如下;IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料正常出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'302'OR'312'.RESULT=0.WHEN'122'OR'123'OR'161'OR'162'OR'201'OR'202'OR'241'OR'242'OR'261'OR'262'OR'291'OR'292'OR'309'OR'310'OR'313'OR'314'OR'317'OR'318'OR'322'OR'349'OR'350'OR'502'OR'512'OR'522'OR'532'OR'541'OR'551'OR'552'OR'553'OR'554'OR'555'OR'556'OR'652'OR'653'OR'657'OR'702'OR'704'OR'708'OR'952'OR'953'OR'961'OR'Z03'OR'Z21'OR'Z22'OR'Z26'OR'Z27'OR'Z43'OR'ZB1'OR'ZB2'OR'ZB3'OR'ZB4'OR'ZC1'OR'ZC2'OR'ZD1'OR'ZD2'OR'ZM1'OR'ZM2'OR'ZM3'OR'ZM4'OR'ZR1'OR'ZR2'OR'ZW1'OR'ZW2'OR'323'OR'325'OR'326'OR'601'OR'602'OR'641'OR'642'OR'643'OR'644'OR'950'OR'951'OR'Z02'OR'Z21'OR'Z22'OR'Z41'OR'Z42'OR'Z43'OR'Z61'OR'ZT1'OR'ZT2'.IFSOURCE_FIELDS-DCINDIC='H'."出庫RESULT=-SOURCE_FIELDS-QUANTITY.ELSE."入庫RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHEN'561'OR'562'OR'563'OR'564'OR'565'OR'566'.RESULT=0.ENDCASE.ELSEIFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)AND(SOURCE_FIELDS-MATL_TYPE='FERT'ORSOURCE_FIELDS-MATL_TYPE='HALB')."成品與半成品的正常出庫CASESOURCE_FIELDS-MOVETYPE.WHEN'301'OR'311'OR'302'OR'312'OR'101'OR'102'OR'122'OR'123'OR'561'OR'562'OR'343'OR'344'OR'321'OR'322'OR'349'OR'350'OR'453'OR'454'OR'459'OR'460'.RESULT=0.WHEN'201'OR'161'OR'162'OR'ZW1'OR'ZR1'OR'ZC1'OR'202'OR'ZW2'OR'ZR2'OR'ZC2'OR'601'OR'602'OR'Z21'OR'Z22'OR'Z01'OR'Z51'OR'Z41'OR'Z42'OR'551'OR'552'OR'553'OR'554'OR'555'OR'556'OR'641'OR'642'OR'643'OR'644'.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSEIFSOURCE_FIELDS-DCINDIC='S'.RESULT=SOURCE_FIELDS-QUANTITY.ENDIF.WHENOTHERS.IFSOURCE_FIELDS-DCINDIC='H'.RESULT=-SOURCE_FIELDS-QUANTITY.ELSE.RESULT=0.ENDIF.ENDCASE.ENDIF.111技術(shù)組用來計(jì)算正常入庫(不含調(diào)撥、退料),0QUANTITY中例程如下;IFSOURCE_FIELDS-PSTNG_DATE+0(6)=SOURCE_FIELDS-CALDAY+0(6)ANDSOURCE_FIELDS-MATL_TYPE<>'FERT'ANDSOURCE_FIELDS-MATL_TYPE<>'HALB'."原物料正常入庫CASESOURCE_FIELDS-MOVETYPE.WHEN'101'OR'102'OR'105'OR'106'OR'122'OR'123'OR'131'OR'132'OR'162'OR'301'OR'302'OR'309'OR'310'OR'313'OR'314'OR'321'OR'349'OR'350'OR'501'OR'511'OR'521'OR'531'OR'542'OR'651'OR'655'OR'701'OR'703'OR'707'OR'960'OR'ZM3'OR'ZM4'OR'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論