在章节“物料单位的小数点”的基础上,本文继续说明物料单位取整对MRP的影响
本文简要介绍当设置物料单位为取整后,对MRP的影响,相关操作如下
事务代码MM01维护产成品ZMTO100,
事务代码MM01维护原材料ZROH200,设置单位为PC,设置原材料的批量类型设置为双周汇总(2W),
事务代码CUNI,设置单位PC设置为取整(图标2处)
维护产成品ZMTO100的BOM,设置一个产成品需要1.11个原材料ZROH200
事务代码MD61维护产成品的独立需求
运行MRP,得到对组件ZROH200的需求如下
| 产成品数量 | 每个产成品需要的组件数量 | 对组件的相关需求数量 |
| 101 | 1.11 | =101*1.11=112.11 |
| 101 | 1.11 | =101*1.11=112.11 |
相关需求的数量,系统自动进行了取整,变成了113个
原材料的批量类型设置为双周汇总,因此汇总二个相关需求的数量产生采购申请的数量为226个
1.1 金税系统中的税额说明
国内企业销售产品给国内客户时,正常产品需要缴纳17%的增值税,而金税(Golden Tax)系统就是用来出具纸面的增值税发票的。
在金税系统中,金税发票的开具有二种方式。
方法1:不通过接口手工出具
不通过接口手工出具增值税发票时,税额是根据含税金额或者不含税金额乘以税率计算得出的,不能够修改。
方式2:通过接口导入
通过接口出具增值税发票时,税额是可以通过接口从SAP中的发票中直接传输到金税中,但此时系统将会检查传入的税额和系统根据不含税金额计算得到的税额是否有差异,如果差异大于0.0625CNY,金税系统将不允许导入。
1.2 SAP中税额计算原理
在不改变系统配置的情况下,SAP中税额的计算规则如下
系统是整张单据计算税额,每一行也会计算税额,每一行计算出的税额的总和和整张单据直接计算的税额有差异,则以整张单据计算出的税额为准,差异金额在金额最大的一行调整。
譬如创建一张销售订单,并创建相应的发货单、发票,税率为17%,系统根据每一行的不含税金额和税率计算出每一行的税额,具体销售发票如下图所示。
对整张单据进行合计,整张单据的不含税金额合计等于2117.91,税额合计为360.11,但另外一方面,系统根据整张单据的不含税金额2117.91乘以税率计算得出税额等于360.04。
系统以抬头金额计算出来的税额为准,而抬头金额计算出来的税额(360.04)减去行项目合计的税额(360.11)差异为-0.07元,因此系统将-0.07元调整到行项目中金额最大的一行,如果有多行,则调整到第一行,本例中,行项目140金额最大,因此调整后的行项目的不含税金额和税额如下表所示
1.3 SAP系统发票和金税系统中的税额差异说明
上文的示例中
如果通过手工方式在金税系统中出具增值税发票,那么SAP中的税额将比金税中少7分钱
通过接口传输的方式,那么传输到金税中,金税系统将报错,提示行项目140传入的税额和系统计算的税额有差异,大于6分钱。
同样是上文的例子,假设行项目120的不含税111.85,则抬头金额计算出的税额和行项目的差异金额为6分钱,此时
如果通过手工出具增值税发票,那么SAP中的税额将比金税中少6分钱
如果接口传输的方式,由于差异不大于6分钱,因此可以传输到金税系统中,没有错误发生。
1.4 小结与差异调整处理
上文中,描述了SAP发票金额与金额发票税额出现差异的最大的一个原因,除此之外,由于金税系统和SAP系统毕竟是二个系统,譬如sap中金额是2位小数点,金税中小数点位数最多可以十位,这样还可能有其它的原因导致差异发生
因此
1)对于上文的情况导致的差异,可以通过修改系统标准配置,事代码V/06设置税的条件类型MWST和MWSI为非组定价(Group Condition),当设置为非组定价时,系统就不再根据抬头金额计算税额,就不会出现抬头金额计算出的税额和行项目累计金额有差异
2)出具发票时,保证SAP中的含税金额和金税中一致,即SAP中对客户的应收和给客户的发票中的总金额是一致的。
3)其他情况下,此时如果仍然有差异,只是可能收入(不含税金额)多一点,税额少一点或者收入(不含税金额)少一点,税额多一点,因此每个月月底统计当月金税开票金额、不含税金额、税额,统计SAP中开票金额、不含税金额、税额,然后手工做财务凭证在收入和税金之间进行调整。
1.1.1 SAP表修改概览
SAP中的表分为配置表和业务数据表二大类,正常来说
后台的表中如果有错误,应该通过修改配置的方式来修改。
前台的表中如果有错误,应该修改相应的单据,如果该单据无法修改,应采用冲销单据,然后重新创建新的单据的方法。
但在某些情况下,我们可能需要采用暴力手段,直接修改表,最典型的情况是在一台无数人使用、非规范管理的Ides系统中,在这个Ides系统中有时会有一些错误存在,譬如本人使用的一台Ides系统中,MRP运行后,产生541的预留69014,查看该预留时,系统出现错误。
正常来说是通过事务代码OMJJ来配置移动类型,但是字段预留是无法修改的,此时只能通过暴力方法。
直接修改表最重要的原则就是,在采用暴力手段之前,务必保证修改的值是准确的,否则将导致不可预测的结果,我们首先要在另外一台SAP服务器中查看,该字段正确的值是什么,可以看到该字段正确的值为U。
1.2 修改表的方法
SAP中,具体而言,可以有以下三种方法可以直接修改表
本例中,移动类型的参数预留对应的表字段为T156-rstyp,移动类型为541.
1.2.1 方法1:通过SE16N用&SAP_EDIT直接修改表记录
SE16N,输入表名、移动类型以及选择相应字段,然后输入&sap_edit,回车,即提示
,点击执行(F8)
此时系统为可编辑状态
可以直接修改值,可以插入值、删除值
1.2.2 方法2:事务代码SE16进入Debug界面,直接修改表字段值
事务代码SE16,输入表T156,移动类型541,执行,在下图中命令输入框中,输入/H,系统则将进入debug,出现提示![]()
在Debug的界面中的第八十六行,设置断点(BreakPoint),然后执行到断点,修改字段Code的值,从Show(显示)修改为Edit(编辑)。
修改Code值完毕后,继续执行,则可以修改表字段的值,当修改晚相应的字段值,点击保存
1.2.3 方法3通过ABAP程序更改表
譬如在本例中,通过以下程序,可直接修改表字段值
REPORT zchange_t156_rstyp.
tables t156.
UPDATE T156 SET rstyp = 'U'
WHERE bwart = '541'.
if sy-subrc is initial.
WRITE / 'Field T156-RSTYP changed from " " to "U"'.
else.
WRITE / 'Field T156-RSTYP could not be changed'.
endif.
生产订单的状态的存储
生产订单创建时,对应的系统状态为CTRD(新建)
生产订单被释放后,其对应的系统状态为REL(释放),状态CTRD将被设置为非激活。
生产订单技术完成后,其对应的系统状态为TECH,状态REL将被设置为非激活。
如下图所示,事务代码CO03 查看生产订单 5100000064
点击按钮” 状态”后,如下左图所示,系统默认将显示生产订单的当前有效状态(Active Status),点击按钮“过滤后,如下右图所示,系统将显示所有的状态,包括当前有效的和曾经有效的状态。
具体而言,对于生产订单5100000064
当生产订单新创建时,其状态为CTRD
当生产订单释放时,其状态变为REL,而状态CTRD将变成非激活状态。
可以在系统中查看生产订单的状态的变更历史
点击按钮“choose“或者”All changes”或者“History”可以看到状态的变更历史
生产订单的状态的存储
系统在表AUFK中记录工单对应的系统状态对象号码(Object Number),在表Jest中记录对象所包含的状态,在表TJ02T记录状态的描述。
具体而言,三个表之间的关系关系为AUFK-OBJNR --> JEST-STAT --> TJ02T-TXT04
JEST-INACT 为X的,则是非激活的,过滤掉就行了。
在SAP中,当用户使用修改(新建)的事务代码来维护数据时,系统将会该数据相关的表来进行锁定,以防止其他用户同时该数据。
譬如:用户A正在对物料1001在工厂1000下维护工厂数据,此时用户B如果也对物料1001在工厂1000下进行维护,一般来说,此时系统将出现提示,提示用户B,该物料已经在工厂1000下锁定。
根据当前的具体操作,系统将锁定表的特定条目。
下文中,将列举示例来说明表条目锁定。
1.1.1 操作实例
如图所示,在客户端820系统中,用户S821使用事务代码MM02修改T-ASA02的物料主数据的销售视图。
此时执行事务代码SM12
字段“用户名”:在用户名中输入S821,不输入则显示当前系统所有用户正在锁定的表条目。
字段“锁定参数”
如果我们希望查询特定对象(如物料AAA被谁锁定),则可以在锁定参数中输入具体的对象和对象值,可用通配符*,如*AAA*。
执行事务代码,查看到如下图所示结果
字段“时间”代表用户开始锁定的时间,本例中,即用户S821使用事务代码MM02修改物料T-ASA02的开始时间,一般来说,用户使用事务代码修改某对象的开始时间即为锁定时间。
字段“表名”和“锁定参数”:代表锁定的表,本例中用户修改物料主数据的销售视图等信息,因此将会锁定四个物料的相关表,具体而言如下
MARA 是物料主数据的基本视图的表,锁定参数分别代表820客户端 物料T-ASA02
MARC 是物料主数据的工厂视图的表, 锁定参数分别代表820客户端 物料T-ASA02 工厂1200
MBEW是物料主数据的工厂评估视图的表,锁定参数分别代表820客户端 物料T-ASA02 评估类型(工厂)1200
MVKE是物料主数据的销售视图表,其锁定参数分别代表820客户端 物料T-ASA02 销售组织1000,分销渠道10
字段:锁定方式(Lock Mode)
锁定方式有三种
S (Shared lock, read lock)
E (Exclusive lock, write lock)
X (Exclusive lock, extended write lock, cannot be cumulated)
模式E:当更改数据的时候设置为此模式。
模式S:本身不需要更改数据,但是希望显示的数据不被别人更改。
模式X:和E类似,但是不允许累加,完全独占。
双击任意一行,可以看到用户S821在使用何事务代码(MM02)锁定了该表记录。
1.2 发票校验与表锁定
正常来说,当我们一进入维护业务数据的界面后,系统就对该业务数据相关的表进行锁定,直至该用户推出某个操作,才结束表条目的锁定。
对于部分操作,如发票校验系统可以配置何时进行表锁定
如下图所示,事务代码MIRO对物料ZMTO的二张采购订单(4500017313
4500017348)进行发票校验
此时通过事务代码SM12查看表条目锁定
系统锁定了三个表
EKPO:采购订单行项目表
EKKO:采购订单抬头表
由于发票校验可能会影响物料的评估价格,因此系统将锁定表MBEW:物料主数据的评估视图表
修改后台配置
事务代码SRPO>物料管理》General Settings for Materials Management》Set Up Material Block for Invoice Verification
在此处设置发票校验时,系统如何锁定物料的表(MBEW),是在发票校验的开始,还是在发票校验过账或者模拟时进行锁定。
当修改为在发票过账时,再进行锁定,再次通过SM12查看,可以看到发票校验时,在发票过账前,表MBEW不会被锁定了。
1.3 物料移动与表锁定
事务代码SRPO>物料管理》General Settings for Materials Management》Set material block for goods movements
后台还可以设置物料货物移动时,如何锁定表
可以设置二种锁定机制
锁定机制1:Exclusive block(排斥性锁定)
该机制同大部分的机制,一进入货物移动的界面,输入某个物料,则锁定关于该物料的工厂和评估视图的表(MARC和MBEW).
锁定机制2:Late block for goods movements
当数据真正将要保存时,才进行锁定,尽可能晚的锁定来保证锁定时间尽可能的短
优点是通过设置共享锁定(shared lock)几个用户可以同时对物料进行货物移动,也就是用户A进行货物移动的界面时,不会排斥性的锁定表,其他用户仍然可以进入,当数据最终保存时,系统才真正锁定表。
缺点是物料主数据将会被多次读取,将对系统负荷产生负面的影响。
1.4 自定义表与表锁定
对于可能有多个人员进行维护的自定义表,也应该设置表条目锁定机制,防止不同的人同时修改表的同一条记录。
其实现过程也比较简单。
更多文章请参见:







![clip_image002[6] clip_image002[6]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202072359206882.jpg)
![clip_image004[6] clip_image004[6]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/20120207235921918.jpg)
![clip_image006[9] clip_image006[9]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202072359227113.jpg)









![clip_image002[12] clip_image002[12]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652146057.jpg)
![clip_image004[12] clip_image004[12]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/2012020216521692.jpg)
![clip_image006[14] clip_image006[14]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652165731.jpg)
![clip_image008[12] clip_image008[12]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652185863.jpg)
![clip_image010[14] clip_image010[14]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652192374.jpg)
![clip_image012[17] clip_image012[17]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652208013.jpg)
![clip_image014[14] clip_image014[14]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201202/201202021652213129.jpg)
![clip_image002[4] clip_image002[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008559597.jpg)
![clip_image004[4] clip_image004[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/20120108000855121.jpg)
![clip_image006[4] clip_image006[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008555071.jpg)
![clip_image008[4] clip_image008[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008577971.jpg)
![clip_image010[4] clip_image010[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/20120108000858347.jpg)
![clip_image012[4] clip_image012[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008581186.jpg)
![clip_image014[4] clip_image014[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008593312.jpg)
![clip_image016[4] clip_image016[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080008598579.jpg)
![clip_image018[4] clip_image018[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/20120108000900705.jpg)
![clip_image020[4] clip_image020[4]](http://images.cnblogs.com/cnblogs_com/SAPFrankyue/201201/201201080009007607.jpg)