背景:
通常对于采购的原材料,成本估算的时候配置的取值策略中一般都会使用采购信息记录取价格;遗憾的是系统标准的逻辑(最低价原则以及 仅取标准采购信息记录)有时候并不能满足业务的需求。
常见的需求有以下两种:
1、 对于既有常规采购又有供应商寄售的物料,希望在取不到标准采购信息记录的情况下,进一步搜索寄售采购信息记录;
2、 取最近维护的采购信息记录,而不是众多供应商中最低的哪一家;或者是其他的逻辑(总之并非是最低价)。
解决方案:
SAP notes1483014 - Costing: BAdI to determine purchase info records 引入了一个新的 BADI BAdI FIND_INFORECORD_MATERIAL;通过此增强可以干涉标准逻辑,满足需求。具体用法如下:
此增强下有如下两个“方法”。
第一个方法GET_PROCESSING_DATA里面参考实现如下:
E_PROCESS_MATERIAL = 'X' 意味着将对本次的物料执行特殊逻辑
E_NUMBER_OF_CALLS = 2 . 意味着将进行两次采购信息记录的搜索(注意:如果第一次成功,将跳出循环,不执行第二次)
以上两个参数的设置在本次参考中没有加任何条件,真实场景实现的时候可以根据业务需求加入各种触发条件(比如只有当采购类型为F30的时候才 E_NUMBER_OF_CALLS = 2)。
第二个方法FIND_INFORECORD里面参考实现如下:
1、在第一个“方法中”我们设定进行两次采购信息记录的搜索;当第一次(取标准采购信息记录)不成功的情况下;将执行第二次,此处设定第二次取寄售采购信息记录 c_esokz = '2'(当未赋值的时候,系统默认就是标准采购信息记录)。
2、此处我们指定在第一次搜索采购信息记录的时候,根据自定义的逻辑直接指定取某一个供应商的采购信息记录()
e_bqpex_provided = 'X' 即告诉系统本次不使用系统的采购信息记录逻辑(跳过),而是直接提供具体某一个采购信息记录
es_bqpex-FLIEF = '0000100087'. es_bqpex-ekorg = '9002'. 即直接指定供应商 100087,采购组织 9002 的采购信息记录
注意:此处用了硬编码便于演示。实际实现中 es_bqpex-FLIEF和es_bqpex-ekorg 的值需要根据需求编写逻辑取出来(比如取众多采购信息记录中的最近维护的一条)。
上海九慧信息科技有限公司是一家专注于企业数字化转型的高科技企业。公司创立于2010年,团队成员来自于国内外知名企业管理及应用咨询公司,具有丰富的企业管理咨询、信息系统建设、管理应用系统实施及应用软件开发经验。作为SAP中国金牌合作伙伴,九慧信息凭借专业服务能力及优异的项目交付质量。公司秉承”九德立信,慧智成业、思勤行健,途远共赢”的理念,以“价值交付,成就卓越,回报时代”为使命,九慧信息立志为各行业客户持续提供优质的咨询及实施服务。