《SAP内供半成品成本估算不含内部作业费用问题解决方案.docx》由会员分享,可在线阅读,更多相关《SAP内供半成品成本估算不含内部作业费用问题解决方案.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SAP 系统内供半成品本钱估算不含内部作业费用问题解决方案问题描述:目前事业部的物料选购或加工方式较多,依据实际业务的不同,针对物料主数据 MRP2 视图的“选购类型”定义存在以下四种方式:a. 事业部不能自制和内供交易,只能外购的,则为 F 外购;b. 事业部不能自制且内供不供给原材料的,则为 F 外购;c. 事业部能够自制或内供需供给原材料的,则为 E 自制或 X 两者皆可;d. 事业部不能自制但委外需供给原材料的,则为 F30 外包;选购类型的定义,直接与本钱估算中的核算方式与结果相关联,定义不同的选购类型,所需要的根底数据也不同:a. 选购类型为 F,价格掌握为 V 移动平均价,只能估
2、算物料本钱;b. 选购类型为 F30,价格掌握为 V 移动平均价,需要供给物料 BOM,估算物料本钱和加工费;c. 选购类型为 E 或 X,价格掌握为 S 标准价,需要供给物料 BOM 和工艺路线,估算物料本钱和内部作业费用;但是,目前的内供交易方式, 如事业部内供需要供给原材料时,需求方和供给方都定义选购类型为 E 或 X,但是需求方只定义了物料 BOM,却无法定义物料的工艺路线。因此,需求方工厂在本钱估算时只计算了物料本钱,未计算物料内部作业费用,造成半成品的本钱估算存在差异。实现方案: 方案一:针对内供交易需要供给原材料的,需求方物料选购类型定义为 E30,维护物料 BOM,但不维护工艺
3、路线,本钱估算时计算物料本钱和外包加工本钱取信息记录内部交易价,必需存在外包的信息记录,需求方生成的选购申请带 L, 在选购转单时修改为 U。同时,标准物料选购类型,依据交易类型不同,明确需求方物料的选购类型定义规章如下:1. 物料只能外购的,选购类型为 F,特别选购类型为空,不维护 BOM;2. 物料只能委外的,选购类型为 F,特别选购类型为 30;并维护 BOM;3. 物料只能自制的,选购类型为E,特别选购类型为空,并维护BOM 和工艺路线;4. 物料为内供交易,但需要供给原材料的,选购类型为 E,特别选购类型为 30,并维护 BOM;5. 物料为内供交易,但不需要供给原材料的,选购类型为
4、 F,特别选购类型为空,不维护 BOM。程序实现函数模块 CK_F_KALKTAB_PROCESS 增加:DATA:IS_KALKTAB TYPE CKKALKTAB.IF SY-TCODE = ”CK11N” OR SY-TCODE = ”CK40N”.DATA:LS_KALKTAB TYPE CKKALKTAB.DATA:IS_EINA TYPE EINA .DATA:LS_EINA TYPE TABLE OF EINA WITH HEADER LINE.* DATA:LS_EINA_2 TYPE TABLE OF EINA WITH HEADER LINE. DATA:it_tline
5、TYPE TABLE OF tline WITH HEADER LINE.DATA:IS_EINETYPEEINE.DATA:LS_EINETYPETABLE OF EINE.DATA:IS_MAKTTYPEMAKT ,LS_MAKTTYPETABLE OF MAKT.DATA:L_MATNRTYPEMATNR,L_WERKSTYPEEINA_LIFNR.DATA:IT_MBEWTYPETABLE OF MBEW WITHHEADERLINE.DATA:IT_MATKL TYPE MARA-MATKL . DATA:LT_MARA TYPE TABLE OF MARA WITHHEADERLI
6、NE.DATA:LT_EINATYPETABLEOFEINAWITHHEADERLINE.DATA:LT_EINETYPETABLEOFEINEWITHHEADERLINE.DATA:NUM TYPE I.DATA:1_17 TYPE p decimals 2.DATA:L_STPRS TYPE MBEW-STPRS.DATA:X TYPE C.“BAPI 返回消息S 正确E 错误DATA:IT_MAPL TYPE TABLE OF MAPL WITH HEADER LINE.*DATA:RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE.SELECT
7、*FROM MAPLINTO CORRESPONDING FIELDS OF TABLE IT_MAPLWHERE MATNR = LF_CAUFVD-MATNRAND WERKS = LF_CAUFVD-WERKSAND DATUV = SY-DATUM . X = ”E”.LOOP AT IT_MAPL.EXPORTINGCALL FUNCTION ”BAPI_ROUTING_EXISTENCE_CHECK”GROUP=IT_MAPL-PLNNRGROUPCOUNTER=IT_MAPL-PLNAL VALIDFROM=T_KALKTAB-KADKYVALIDTODATE=T_KALKTAB
8、-STEAS TABLESIF RETURN IS INITIAL.RETURN= RETURN .X = ”S”.ENDLOOP.ENDIF. IF X = ”E”.“没有工艺路线执行下面代码IF SY-SUBRC 0.READ TABLE T_KALKTAB INTO IS_KALKTAB WITH KEY TYPPS = ”L”.“猎取物料号 、选购信息记录*SELECT INTO CORRESPONDING FIELDS OF TABLE LS_EINAFROMEINA INNER JOIN EINE ON EINAINFNR = EINEINFNR WHERE MATNR = LF_
9、CAUFVD-MATNRAND ESOKZ = ”3”AND einenetpr ne 0.AND EINALOEKZ EQ ”IF LS_EINA is INITIAL. SELECT *FROM EINA INNER JOIN EINE ON EINAINFNR = EINEINFNRINTO CORRESPONDING FIELDS OF TABLE LS_EINAWHERE matnr = lf_caufvd-matnr AND esokz NE ”3”AND einaloekz EQ ”DATA i_name TYPE thead-tdname.AND einenetpr ne 0.
10、LOOP AT LS_EINA.i_name = LS_EINA-infnr.CLEAR it_tline.CALL FUNCTION ”ZTT_DEFU_READTEXT”EXPORTINGin_id= ”AT” in_name= i_namein_object = ”EINA”it_lines = it_tline.TABLES IF sy-subrc = 0.IF sy-subrc 0 or it_tline-tdline ne ”X”.READ TABLE it_tline INDEX 3.DELETE LS_EINA.ENDIF.DELETE LS_EINA.ELSE.ENDIF.E
11、NDIF.ENDLOOP.*endSORT LS_EINA BY LIFNR ERDAT DESCENDING.IF LS_EINA IS INITIAL.“ 没有选购信息记录报错 CALL FUNCTION ”CM_F_MESSAGE”IF T_CKIBEW-BUKRS EQ ”1800”.EXPORTING ARBGB=”CK”MSGNR=”903” MSGTY=”I”MSGV1=LF_CAUFVD-MATNRMSGV2=LF_CAUFVD-WERKS OBJECT_DEPENDENT=”X”WERKS=LF_CAUFVD-WERKS XCEPTIONS MESAGE_TYPE_NOT_V
12、ALID = 1NO_SY_MESSAGE=2OTHERS=3.EIF SY-SUBRC 0.WITH LF_CAUFVD-WERKS LF_CAUFVD-MATNR.MESSAGE ID ”CK” TYPE ”I” NUMBER ”903”ENDIF.else.CALL FUNCTION ”CM_F_MESSAGE” EXPORTING ARBGB=”CK”MSGNR=”903” MSGTY=”E”MSGV1=LF_CAUFVD-MATNR MSGV2=LF_CAUFVD-WERKS OBJECT_DEPENDENT=”X”WERKS=LF_CAUFVD-WERKS XCEPTIONS ME
13、SAGE_TYPE_NOT_VALID = 1NO_SY_MESSAGE=2OTHERS=3.MESSAGE ID ”CK” TYPE ”E” NUMBER ”903”EIF SY-SUBRC 0.WITH LF_CAUFVD-WERKS LF_CAUFVD-MATNR.ENDIF.ENDIF.READ TABLE T_KALKTAB INTO IS_KALKTAB INDEX 1 .ELSE. IF SY-SUBRC = 0.IS_KALKTAB-POSNR = SY-TFILL + 1.READ TABLELS_EINA INTO IS_EINA INDEX 1.IS_KALKTAB-TY
14、PPS = ”L”.IF SY-SUBRC = 0.IS_KALKTAB-MATNR = IS_EINA-MATNR.“物料号IS_KALKTAB-INFNR = IS_EINA-INFNR.“信息记录IS_KALKTAB-LIFNR = IS_EINA-LIFNR.“供给商“依据选购信息记录猎取供给商SELECT INTO CORRESPONDING FIELDS OF TABLE LS_EINE*FROMEINE“猎取税率WHERE INFNR = IS_EINA-INFNR.DATA: BEGIN OF IT_A003 OCCURS 0,KBETR TYPE KONP-KBETR,MWS
15、KZ TYPE A003-MWSKZ,END OF IT_A003.INTO CORRESPONDING FIELDS OF TABLE IT_A003SELECT A003MWSKZ KONPKBETRFROM A003 INNER JOIN KONP ON A003KNUMH = KONPKNUMH WHERE A003KAPPL = ”TX”AND A003KSCHL = ”MWVS”AND A003ALAND = ”CN”.“猎取物料描述SELECTINTO CORRESPONDING FIELDS OF TABLE LS_MAKTMAKTX AND SPRAS = SY-LANGU.
16、FROM MAKTWHERE MATNR = IS_KALKTAB-MATNRENDIF.TAB-MATNR.IS_KALKTAB-LTEXT = IS_MAKT-MAKTX.“物料描述READ TABLE LS_MAKT INTO IS_MAKT WITH KEY MATNR = IS_KALK IF SY-SUBRC = 0.READ TABLE LS_EINE INTO IS_EINE WITH KEY INFNR =IS_EINA-INFNR.IF SY-SUBRC = 0.IS_KALKTAB-EKORG = IS_EINE-EKORG.“选购组织IS_KALKTAB-PEINH =
17、 ”100”.“价格单位IS_KALKTAB-PEINH_2 = ”100”.“价格单位IS_KALKTAB-PEINH_3 = ”100”.“价格单位READ TABLE IT_A003 WITH KEY MWSKZ = IS_EINE-MWSKZ.IF IS_KALKTAB-LIFNR ”0000009999”.CLEAR :1_17.IF SY-SUBRC = 0.1_17 =( IT_A003-KBETR / ”1000” ) + 1 .if 1_17 ne ”0”.ENDIF.IS_KALKTAB-WERTN = ( IS_EINE-NETPR / IS_EINE-PEINH ) *
18、 IS_KALKTAB-MENGE / 1_17.“净价E-PEINH )* IS_KALKTAB-MENGE / 1_17.“净价IS_KALKTAB-WRTFW_KPF = ( IS_EINE-NETPR / IS_EINIS_KALKTAB-WRTFW_POS = ( IS_EINE-NETPR / IS_EINIS_KALKTAB-GPREIS = IS_KALKTAB-WERTN * IS_KAE-PEINH ) * IS_KALKTAB-MENGE / 1_17.“净价LKTAB-PEINH / 1_17.ALKTAB-PEINH / 1_17.IS_KALKTAB-OPREIS
19、=IS_KALKTAB-WERTN* IS_KIS_KALKTAB-TPREIS = IS_KALKTAB-WERTN* IS_KALKTAB-PEINH / 1_17.else.IS_KALKTAB-WERTN = ( IS_EINE-NETPR / IS_EINE-P EINH ) * IS_KALKTAB-MENGE .“净价E-PEINH )* IS_KALKTAB-MENGE .“净价IS_KALKTAB-WRTFW_KPF = ( IS_EINE-NETPR / IS_EINIS_KALKTAB-WRTFW_POS = ( IS_EINE-NETPR / IS_EINE-PEINH
20、 ) * IS_KALKTAB-MENGE .“净价IS_KALKTAB-GPREIS = IS_KALKTAB-WERTN * IS_KAIS_KALKTAB-OPREIS =IS_KALKTAB-WERTN* IS_KLKTAB-PEINH .ALKTAB-PEINH .ALKTAB-PEINH .IS_KALKTAB-TPREIS = IS_KALKTAB-WERTN* IS_Kendif.READ TABLE IT_A003 WITH KEY MWSKZ =IS_EINE-MWSKELSE.Z.IF SY-SUBRC = 0.CLEAR :1_17.1_17 =( IT_A003-KB
21、ETR / ”1000” ) + 1 .ENDIF.IS_KALKTAB-WERTN = ( IS_EINE-NETPR / IS_EINE-PEIF 1_17 NE ”0”.INH ) * IS_KALKTAB-MENGE / 1_17.“净价IS_KALKTAB-WRTFW_KPF = ( IS_EINE-NETPR / IS_EIN E-PEINH ) * IS_KALKTAB-MENGE / 1_17.“净价E-PEINH ) * IS_KALKTAB-MENGE / 1_17.“净价IS_KALKTAB-WRTFW_POS = ( IS_EINE-NETPR / IS_EINIS_K
22、ALKTAB-GPREIS = IS_KALKTAB-WERTN * IS_KAIS_KALKTAB-OPREIS =IS_KALKTAB-WERTN* IS_KLKTAB-PEINH / 1_17.ALKTAB-PEINH / 1_17.IS_KALKTAB-TPREIS = IS_KALKTAB-WERTN* IS_KALKTAB-PEINH / 1_17.IS_KALKTAB-WERTN = ( IS_EINE-NETPR / IS_EINE-PEelse.INH ) * IS_KALKTAB-MENGE .“净价IS_KALKTAB-WRTFW_KPF = ( IS_EINE-NETP
23、R / IS_EINE-PEINH ) * IS_KALKTAB-MENGE .“净价IS_KALKTAB-WRTFW_POS = ( IS_EINE-NETPR / IS_EIN E-PEINH ) * IS_KALKTAB-MENGE .“净价LKTAB-PEINH .IS_KALKTAB-GPREIS = IS_KALKTAB-WERTN * IS_KAIS_KALKTAB-OPREIS =IS_KALKTAB-WERTN* IS_KIS_KALKTAB-TPREIS = IS_KALKTAB-WERTN* IS_KALKTAB-PEINH .ALKTAB-PEINH .ENDIF.EN
24、DIF.IS_KALKTAB-KOAKZ=”.IS_KALKTAB-VERWS=”.IS_KALKTAB-STRAT=”3”.IS_KALKTAB-SPOSN=”.IS_KALKTAB-DISST=”.IS_KALKTAB-STLKN=”0”.*IS_KALKTAB-ZAEHLER = ”0”.IS_KALKTAB-KOMOK = ”.ENDIF.ENDIF.IS_KALKTAB-KSTAR = ”5001030100”.call function ”CM_F_MESSAGE”APPEND IS_KALKTAB TO T_KALKTAB .exporting arbgb=”CK”msgnr=”
25、902” msgty=”I”MSGV1=lf_caufvd-matnr MSGV2=lf_caufvd-werks OBJECT_DEPENDENT=”X”WERKS=lf_caufvd-werks xceptions MESAGE_TYPE_NOT_VALID = 1NO_SY_MESSAGE=2others=3.message id ”CK” type ”I” number ”902”eif sy-subrc 0.with LF_CAUFVD-MATNR LF_CAUFVD-WERKS.ENDIF.endif.ENDIF.ENDIF. ENDIF. ENDIF.方案二:不作物料主数据、选购
26、信息记录等根底数据的变动,基于现有业务数据,通过对 CK11N 本钱估算程序作增加,实现针对物料不存在工艺路线时,猎取最近内部转储选购订单,取内部交易价生成一笔 L 转包的内部作业费用。同时,标准物料选购类型,依据交易类型不同,明确需求方物料的选购类型定义规章如下:1. 物料只能外购的,选购类型为 F,特别选购类型为空,不维护 BOM;2. 物料只能委外的,选购类型为 F,特别选购类型为 30;并维护 BOM;3. 物料只能自制的,选购类型为E,特别选购类型为空,并维护BOM 和工艺路线;4. 物料为内供交易,但需要供给原材料的,选购类型为 E,特别选购类型为空,并维护 BOM;5. 物料为内供交易,但不需要供给原材料的,选购类型为 F,特别选购类型为空,不维护 BOM。