可以免费创建网站的软件,网站域名推广,wordpress背景图片尺寸,做pc端网站用什么框架惯例闲话#xff1a;2024年在不知不自觉中已经到来#xff0c;之前闲人也聊起过2023年是忙碌和收获的一年。今年的任务初步排一下#xff0c;也基本上排到年底去了#xff0c;又会是忙碌的一年。虽然忙碌#xff0c;但是今年对于自己而言#xff0c;有更加重要的事情要去…惯例闲话2024年在不知不自觉中已经到来之前闲人也聊起过2023年是忙碌和收获的一年。今年的任务初步排一下也基本上排到年底去了又会是忙碌的一年。虽然忙碌但是今年对于自己而言有更加重要的事情要去做闲人和朋友一起合作计划要做一件有价值的事给自己这些年从业SAP做一次总结和回顾。虽然前路曲折但已经迈开第一步希望能坚持下去。
闲话到此为止这次借着开发项目库存周转率分析功能和大家聊聊项目物料移动中2个WBS所代表的意义。
项目库存
项目库存移动操作角度相比通用库存需要多录入WBS和Q特殊库存标识这是对项目库存移动较为常见的理解。 从数据结构的角度来看则是增加了WBS的维度。这也容易理解从SAP的项目库存设计来看也验证了这一观点。可以看到MSRP实时库存表、QBEW项目库存评估表中特殊库存标识和WBS作为主键。 从2张表可以看出对于项目库存SAP把物料编码WBS作为一个独立的对象来管理库存数量、金额都属性作为重要信息也是很多项目企业的内部管理报表中需要提取的。这些年的项目实践经验中很多顾问对这类应用很熟悉以上似乎并没什么特别。如果这是最终结论那么项目库存的故事也差不多到这里可以结束了。
后续的故事来源于一个常见而难以实现的需求——按项目分析库存周转率。业务部门需求如下物料入库原材料库后从原材料到线边仓从线边仓反冲消耗这2个环节均要分析库存周转率。周转率报表的实现在于2个要点 1、周转率的分析维度 2、历史期初、期末库存的记录。 项目库存的复杂度
但是任何对象增加作为一个独立维度那么复杂度也同时上升一个数量级。对于项目库存的入和出不同的移动类型产生的有由于增加了WBS维度显而易见的变化是库存条目的数量级将呈现几何级的增加。所以为何在SAP之前的R3ECC时代中没有标准的项目库存周转率报表的原因之一。在S4时代系统性能大幅度上升的时代我们则可以考虑在系统去实现。不过这不是本文的重点还是回到我们要说的主题物料移动的WBS。这是库存周转等相关库存分析的源头。
当增加了WBS维度之后出入库发生数来源则出现了不同于通用库存之外的情况典型的415转WBS。 如上图通过415Q移动类型P001-A库存1个P001-B库存-1个。此类业务对应项目型企业中常见的物料在不同项目间的借料场景。 其他的如411项目转通用412通用转项目库存都会对WBS库存产生波动。这就产生了2个WBS。从MSEG表中可以看到这2个WBS字段存在这就是我们今天要闲谈的主题这2个WBS代表的意义。
MSEG-PS_PSP_PNR MSEG-MAT_PSPNR 不同移动类型下WBS赋值特点
我们挑几个比较典型意义的移动类型来看
1、311Q项目库存在不同库存地点调拨 可以看到MSEG-PS_PSP_PNR MSEG-MAT_PSPNR 这里为了便于说明可能问题实质业财一体化把转出作为贷方转入作为借方和财务概念统一起来 311Q看不出太多的特殊点和通用库存移库类似只是需要指定贷方的WBS。思考一个问题借方WBS和贷方WBS不一一样311Q为何不能实现实现一步法既转库又转WBS
2、415Q项目库存在不同WBS的调拨用于项目间的借料 以上凭证生成后 1520139423A028库存减少600PC 1520139423A023库存增加600PC 415会产生财务凭证说明产生了价值的转移
再看财务凭证表BSEG只有一个字段PROJK是存WBS。这个就很容易理解借贷方分开不同行一个字段就可以表示借贷方。
这里也体现出来SAP的财务和后勤的底层设计思路的区别BSEG的这种结构来说更为简洁但是MSEG同一行既有转出贷方和转入借方对象信息这说明后勤底层设计需要考虑到前端操作影响。由于SAP内核是业财集成业务产生财务所以财务无需注重底表设计对操作的影响更为简洁。 再回顾第一个问题为何311Q不能实现一步法转WBS转库。原因就在这个地方311不产生财务凭证借贷方WBS不一致会发生价值转移必然会产生财务凭证两者就冲突了。所以311Q不允许转WBS。
注意下右边有一已分配WBS要素思考下这个地方是在哪种场景下使用
3、411Q项目库存转通用库存一般用于项目关闭前清理项目余料有用余料调拨到通用物资作为备料使用。
从凭证项上分析 1贷方行特殊库存标识QMSEG-PS_PSP_PNR 空MSEG-MAT_PSPNR 1520137171A024 2借方行特殊库存标识空MSEG-PS_PSP_PNR 1520137171A024MSEG-MAT_PSPNR 空 产生财务凭证财务凭证的借贷方的WBS显示正确。这个地方就很有意思了如果要计算项目库存周转率库存WBS如何判断到底取哪一个从这个场景上看我们应该取MSEG-MAT_PSPNR但是否适用全部移动类型这里先保留结论。 实际操作中发现411Q还支持一步法转物料号通用。 下列凭证说明了一次操作将项目库存410000000000010572 WBS 1520141750A023转为通用库存402300000000000124。产生财务凭证 4、412,通用库存转项目库存一般用于通用材料给项目备料提前锁定库存平衡利库。 412和411Q互为逆向移动类型。 注意前台的显示的差异右边显示贷方左边显示借方
从凭证项上分析 1贷方行特殊库存标识空MSEG-PS_PSP_PNR 1520142020A020MSEG-MAT_PSPNR 空 2借方行特殊库存标识QMSEG-PS_PSP_PNR 空MSEG-MAT_PSPNR 1520142020A020 产生财务凭证财务凭证的借贷方的WBS显示正确。
通过411和412周转库存WBS如何判断已经有结论取MSEG-MAT_PSPNR。注意这个结论这个对报表开发具有重要意义。
5、541Q项目库存标准外协发料。特殊库存外发加工。
541Q移动类型注意S4版本才能支持ECC不支持。 从凭证项上分析 1贷方行特殊库存标识QMSEG-PS_PSP_PNR 1520140091AMSEG-MAT_PSPNR 1520140091A 2借方行特殊库存标识RMSEG-PS_PSP_PNR 1520140091AMSEG-MAT_PSPNR 1520140091A 不产生财务凭证 R库存可以在底表MSRD中查询到前台则需要用事务码MBLB查看 这里更加验证了转出和转入库存WBS字段取MSEG-MAT_PSPNR。
6、221将库存直接消耗到项目上。这里可分为221Q项目库存消耗和221通用库存消耗分别在检验下。 案例中的Z21是从221复制移动类型性质相同。
1221Q 再从财务凭证看 这里的MSEG-MAT_PSPNR意义和上面意义一样表示贷方的库存WBS但是由于是消耗进入了损益 MSEG-PS_PSP_PNR则表示了成本对象。这又是一个关键点。我们在结合下一个211消耗通用库存来理解。
2221将通用材料消耗到项目 凭证行地点WBS为空 通过221移动类型小结MSEG-PS_PSP_PNR必须是成本对象用来承载物料移动产生财务凭证借方数据
总结 物料凭证MSEG-MAT_PSPNR存贷方WBS、MSEG-PS_PSP_PNR存借方WBS
搞清楚了这个原理常用的BAPI_GOODSMVT_CREATE的参数赋值就很清晰了 参数 BAPI2017_GM_ITEM_CREATE-WBS_ELEM 对应 MSEG-PS_PSP_PNR BAPI2017_GM_ITEM_CREATE-VAL_WBS_ELEM 对应 MSEG-MAT_PSPNR
项目库存周转设计思路
理清楚以上项目库存的移动中WBS赋值特点那对于按项目统计库存周转就可以使用SAP标准表来取数。 数据表主键设计 按物料、工厂、WBS、库存地点、年度、月份 通过程序抽取物料凭证写入表完成周转率数据的基表。 贴一段简单代码从MSEG表中获取数据后按照以上主键做collect
SELECTMBEW~BWKEY,MARA~MATNR,MARA~MATKL,MARA~ZGGZL,MARA~ZGGMJ,MARA~MEINS,MBEW~VPRSV,MBEW~STPRS,MBEW~VERPR,MBEW~LBKUM当前库存
FROM MARA
INNER JOIN MBEW ON MBEW~MATNR MARA~MATNR
INNER JOIN LT_MATNR AS A1 ON A1~MATNR MBEW~MATNR
INTO TABLE DATA(LT_PRICE_MBEW).SORT LT_PRICE_MBEW BY BWKEY MATNR.CLEAR:LS_ZTMM_QBEWH_N,LT_ZTMM_QBEWH_N[].LOOP AT LT_MSEG INTO LS_MSEG.LV_BUDAT LS_MSEG-BUDAT_MKPF.LS_ZTMM_QBEWH_N-MATNR LS_MSEG-MATNR.物料号LS_ZTMM_QBEWH_N-WERKS LS_MSEG-WERKS.工厂LS_ZTMM_QBEWH_N-LGORT LS_MSEG-LGORT.库存地点LS_ZTMM_QBEWH_N-PSPNR LS_MSEG-MAT_PSPNR.出入WBSLS_ZTMM_QBEWH_N-LFGJA LS_MSEG-MJAHR.年度LS_ZTMM_QBEWH_N-LFMON LS_MSEG-BUDAT_MKPF4(2).过账月LS_ZTMM_QBEWH_N-MEINS LS_MSEG-MEINS.单位IF LS_MSEG-SHKZG H.LS_ZTMM_QBEWH_N-MENGE_H LS_MSEG-MENGE.货物移动数量,移出ELSEIF LS_MSEG-SHKZG S.LS_ZTMM_QBEWH_N-MENGE_S LS_MSEG-MENGE.货物移动数量,移入ENDIF.COLLECT LS_ZTMM_QBEWH_N INTO LT_ZTMM_QBEWH_N.CLEAR:LS_ZTMM_QBEWH_N.ENDLOOP.其中一赋值语句 LS_ZTMM_QBEWH_N-PSPNR LS_MSEG-MAT_PSPNR.出入WBS就是根据以上结论。否则各种场景下的逻辑判断极其影响程序的效率。 本文简单提一下后续再分享项目库存周转开发过程。