自动过账原理

MM模块的许多操作都能实现在FI模块自动过账,如PO收货、发票验证(LIV)、工单发料、生产车间发料等等。不用说,一定需要在IMG中进行配置才可以实现自动处理。但SAP实现的这种自动配置的机制是怎样的呢?其实也并不复杂,让我们先以一种最简单的情况来了解实现原理和实现流程,然后就可以轻松对各种情况作出配置。
如果我们使用SAP系统,初始化库存一定必不可少。大家都知道初始化库存使用移动类型(movement type) 561/562。现在就先学会配置561 / 562吧,这样,起码可以让系统有一些库存呀。
有一点是大家首先要知道的,如果物料既有数量管理,又有金额管理,则物料异动会产生会计凭证,否则就没有会计凭证产生。
为了便于理解,先告诉大家,系统对MM模块的自动过账配置是存放在T030表中的,我们用Tcode:SE16N查看INT COA配置有以下结果。

简单说明一下:ChAcChart of Account(账目表)Trans.Transaction,用于区分不同的事务类型,VGCdValuation Group Code,评估组代码,暂时不要理它,AMAccount Modification, Val. ClassValuation Class(评估类)。上表的控制机制是这样的:
Chart of Account,Valuation Group Code从范围上进行控制,Transaction + AM + Valuation Class从条件上进行控制。G/L Account(总账科目)有两栏,一栏表示借方,一栏
表示贷方,借贷方科目可以相同,也可以不同。
以第一行为例,在INT账目表中,如果transactionBSVvaluation class3000,则借方科目是400020,贷方科目也是400020。而transaction BSV表示库存账户变化。
存货变动所生成的会计凭证有一个规律,这个规律就是一定有相应存货的增加或减少。比如PO收货会导致存货增加,而发料则导致存货减少。而对应的科目则各不相同。比如PO收货对应的科目是应付账款(SAP中是GR/IR),发料对应的科目应该是生产成本之类。根据这一规律,SAP系统也将存货过账分为存货科目(Stock Account)和消耗科目(Consumption Account)。存货的增加与减少用存货科目, Transaction keyBSX码就是用于存货科目的配置; 对方科目因为各不相同,也就有不同的Transaction key。比如GBB用来配置冲销科目,PRD用来配置价格差异科目等等。有时,一种transaction key还须细分不同的情况,这时就要用到Account Modification了。比如在GBB(冲销科目)中,在冲销科目中,再用BSA(一种account modification)表示初始化科目,用VBR表示物料消耗科目。Transaction keyaccount modification组合在一起,称为价值串(value string),与movement type对应。用户在MM模块过账时,会选择movement type,系统则根据movement type确定价值串,价值串中包含transaction keyaccount modification,据此
到对应的会计科目,自动过账也就实现了。这一段话是理解自动过账的关键。
1) 回到开头,初始化库存移动类型为561 / 562 对应的价值串是WA01WA01包含GBB (Transaction key)BSA (Account modification) (Tcode: OMWN)

2) GBB + BSAINT中的科目配置为(tx:OBYC查看)

Valuation class又有什幺作用呢。在物料主档中,我们要设定物料material typevaluation classMaterial type大体上可为原材料、半成品、产成品等。但会计科目的设定并不一定要根据物料类别,可能更明细一些,比如原材料-A类,原材料-B类。Valuation class就是用来将有相同特性的物料组合在一起,对应不同的会计科目,既可以将material type细分,也可以实现不同material type之间的组合。以下是三种常见情况。
1) 一种物料类别对应一个会计科目
2) 不同物料类别对应同一科目
3) 一种物料类别对应多个会计科目

. 自动过账配置方法
第一步定义Valuation level
Menu Path:

Valuation level可以基于plant, 也可基于company code. SAP建议用plant。相关要点请参看帮助文件,不再多述。

Valuation level can be :Valuation level is a plantorvaluation is company code.
SAP recommend that valuation at plant level is used.
If you want to use application component Production Planning or Costing, you must use valuation at plant level.
The decision you made is valid for the whole client.
Once set, it is not possible to switch the valuation level from plant to company code, or vice versa.
G/L accounts in which material stocks are managed
If material stocks are valuated at company code level, all plant stocks of a material are managed in a joint stock account for each company code.
If material stocks are valuated at plant level, the material stocks for each plant can be ma
naged in different accounts. You can define a separate account determination for each plant.
If several plants are to use account determination, you can group them together in Customizing for Valuation and Account Assignment in the section Account Determination .
第二步:配置MM Account determination, 将用到下面的menu path

2.1– Define valuation control,这一步仅仅是激活或不激活。

2.2 – Group together valuation areas
Valuation area总是与plant的名称相同。如果定义valuation levelplant,则可以通过valuation area group实现自动配置的组合。如valuation area 9999valuation area 9998的自动配置相同,它们可以用同一个group: 1000

2. 3 – Define valuation class
这一步骤又分为三小步,如下图所示:

2.3.1 – Define account category reference
2.3.2 – Define valuation class
2.3.3 – Mapping material type with account category reference
2.3.1 – Define account category reference一般设置与物料类型对应。如:

ZM01作为原材料的参考。ZM02作为半成品的参考。等等。
2.3.2 – Define valuation class相同的评估类具有相同的科目确定。

以上是以手表业为例。设置8001Case(),所用到的account category referenceZM01,其它依此类推
2.3.3 – Mapping material type with account category reference



ROH(raw material)为例,对应的account category referenceZM01.这一步有什幺作用呢,其实就是限制ROH物料类型可用的valuation class。用MM03可以作如下图所示测试:对ZM01来说,可用的valuation class80018005。下图是系统中的验证(物料TEST_CA
SE的物料类别是ROH)

4 - Configure account determination (Tcode: OMWB / OBYC)
4.1 进入下图所示界面,到BSX所在行

4.2 双击BSX行,输入账目表(chart of accounts), 进入下图所示界面,设置记账规则

○ Debit/Credit – 是否借贷方用不同的科目。对于BSX来说,不可设,即借贷方科目必须相同。
○ Valuation modification – 是否参照valuation grouping codeValuation class – 是否不同的valuation class用不同的科目。
这一界面为设置规则(rules),第一次设置时系统会自动进入此界面。储存规则后才可进行科目设置。
4.3储存规则后按“Acccounts”按钮,设定各valuation class所对应的科目。设置后,按储存。

4.4用同样的方法设置transaction GBB的记账规则和会计科目
Rules:

Accounts:

完成以上步骤,即可实现库存初始化了。可以在系统中进行simulation.
. 配置其它transactionAccount Determination举例
以上是标准设置流程,对各种不同的事务,主要是知悉所用到的Transaction Accounts Modification是什幺。以下给出部分Transaction key
- 配置PO收货 (movement type: 101 / 102) :WRX
- 配置物料成本中心发货的科目确定(movement type 201 /202):GBB / VBR
- 配置库存盘盈盘亏的科目确定 (movement type: 701 /702) :GBB/INV
- 配置物料报废的科目确定(movemtn type: 551) :GBB / VNG
- 工單收貨科目確定GBB / AUF
-
配置重新估价的科目确定:UMB
MR21重新定价或价格控制为S的物料收货时,价格差异的科目确定。
ob62 assign company code to chart of account
oby6/omwb/obyc
fs00 display G/L account centrally
今天收获挺多,挺有意思,把account determination整了一把,也犯了一个错误,把OBYC里面的GBB INT “rule"给修改,把以下所有的数据都整没有了,一下午OBYC就挺难进的,总被其它用户锁住了,等了好久,也观察了好久,终于悟出来了一些东东,有意思
 
MB1C 在一个新的工厂和一个新的评估级别总是报错reference groupaccount determination for entry INT GBB 0001 BSA 0001 not possible.
BSX inventory posting, BSA为期初科目material managment--valuation and account assignment--account determination---account determination without wizard--group together valuation area--val area0001(plant)/cocode0001(company)/chrtacctsINT/val grpg
code0001(对应OBYC里面的valuation modif0001)

FS00  科目 300000-inventory-raw material    "create/bank/interest"--post automatically only indicator was ticked.
399999clearing account-stocktake results
开篇:对于Value String的理解
Value String定义:定义了一系列的步骤优先顺序,每一个步骤都连接到不同的过账事务码,而这个顺序本身就称作价值串。价值串你可以看作是一种记账的规则,为物料移动或者发票校验包含了一系列的科目分配特征。并且物料移动的科目确定实际上是通过分配给移动类型的记账价值串来确定。注释:就常见的而言:WA01:出库WA01:寄售WE01:入库WE06:消耗另外,就是WE141516WF01等等了。
Value String的应用理解:
首先,我们察看T156W的表,所有的价值串都在这里了,拿WA04做例子,如下图:

我们可以看到,WA04总共包括这么几种情况,详细信息,可以SE11察看表T156W。其次,我们进入OYBC,进入GBB的自动记帐-科目界面:

再次,OMJJ,移动类型界面——更新控制:

我们可以很清楚的看到移动类型621的更新控制可分这么多种—— 科目分组:

那我门现在看,我们就可以把移动类型自动过帐到科目分成3部分,一:更新控制二:价值串,三:科目分配,其中价值串(value string)和科目有部分重合。
其他相关链接:
问题一:FI如何与SD集成、自动过账
    FI/SD通过tcode VKOAbilling设置过帐科目,用户可以创建自己的科目定义数据表。 科目是做到COA级的,通过KOFI/KOFK这两个condition type确定分别过帐到FICO凭证中。 由于PricingProc.是同SalesOrg.相关联的,所以科目在Organization上首先要做到SalesOrg. 级,其后的AccountKey是在PricingProc.中和不同的PriceConditionType相关联的,决定着最终销售收入、折扣、附加费用、预提等过到不同科目上。
问题二:FIMM 接口配置
      FI/MM通过tcode OBYC为所有的库存移动设置过帐科目,系统用不同的TransactionKey决定了不同的移动类型/业务类型,对于这些TK的含义,SAPLIB中有较为详细的解释,可参阅。
      科目的配置可以按照需要做在ValuationArea(Plant)ValuationClass层。 特别是我认为FI/MM AccountDetermination中最有意思的就是TKGBB的科目定义,其中有一个东东叫做GeneralModificationKey,这个GMK是同MovementType直接相连的;除了很多标准的GMK之外,用户也可以自定义,并将它们同自定义的MovementType相关联,以决定不同的MT连接 到不同的过帐科目上。
问题三:实例说明
可以按照资料到系统中配置一下,并做一些例子,有助于理解这些科目配置
3.1 对于收货(特别是来自采购的收货)和发票录入IV/LIV,常用的TransactionKey为:
BSX ValuationClass相关联的所有基于存货科目的过帐
FR1Fr3 运费和关税的清帐科目(需要通过IV/LIVClear,类似GR/IR科目)
FR2FR4 运费和关税预提科目(无需Clear)
WRX 存货GR/IR科目
DIF SmallDifference(小金额差异),未超过发票价差容限的金额过到此科目(OMR6中定义ToleranceLimit)
KDM 处理收货同收发票汇率不一致造成的差异过帐
KDR 处理收外币发票时,由于四舍五入的原因造成的本币金额同GRIR本币金额不一致的
差异过帐
UPF 处理UnplannedDeliveryCost(计划外运费)是否单独过到某个制定科目而不是过到存货或价差科目
PRD 标准成本法下处理PPV的科目,即采购价差科目
3.2对于发货和其他库存移动,常用的TransactionKey通常只需要关注GBB,即所谓库存移动的抵减或对应科目,其中比较重要的一个概念就是GeneralModificationKey,这个东东是同MovemtType关联的, 较常用的有:
AUF : Acct.AssignmtPP/CO订单的收货和结算
BSA : 通过561/562做库存初始化的过帐科目
INV : 库存差异导致的收入和费用科目,一般为P+L科目
VAX/VAY: 销售订单的发货成本科目
VBO : 委托加工业务,提供给供应商的库存出货科目
VBR : 处理内部发货业务,如直接消耗到成本中心、资产或内部订单等
VKA : 基于Acct.Assignmt的销售订单业务,如BTOMTO业务等
VKP : 基于Acct.Assignmt的项目业务,如BTPMTP业务等
ZOB : PO收退货,如501/502
ZOF : PP订单收退货,如521/522
同样,你可以基于自定义的MovemtType,设置相关联的自定义的GMK,并在GBB中指定科目。 此外,如果启用MaterialLedger、标准成本法核算货ProductCostbyPeriod等,相关的LKWPRV PRPPRQPRY等也需要做相关设置,详见帮助。
3.3 对于收货科目设置,举个稍复杂的例子:
A000工厂下的物料AValuationClassV000;拟在MM/InfoRecord中定价2%的采购运费,不需要通过IV/LIV清帐;价差容限定义1元以下为SmallDifference;在采购过程中发生了计划外运费,并希望过到制定科目上;收发票时的汇率同收货时不同,有差异。
示例会计科目如下:
1401 原材料存货科目
2181 预提运费
5121 计划外运费
5122 SmallDifference
5151 汇率差异
6000 存货GR/IR
可通过OBYC配置为:
库存过帐 BSX A000 V000 1401
预提运费 FR2 A000 V000 2181
小额价差 DIF 5122
计划外运 UPF 5121
汇率差异 KDM A000 V000 5151
GR/IR WRX A000 V000 6000
收货时的分录为(MAP计价方式,忽略VAT)
Dr. 1401 1020.00
Cr. 6000 1000.00
2181 20.00
收采购发票时的分录为:
Dr. 6000 1000.00
5121 100.00
5122 0.80
5151 1.20
Cr. A/P 1102.00
收运费发票的分录:
Dr. 2181 20.00
Cr. A/P 20.00
比如你用MB1A通过201PGI,在OMJJ中你可以看到有一个Account Grouping,双击进去后有如下一条String: 201 K X X WA03 2 GBB VBR。其中K表示Consumption Posting,而GBB VBR是连接Account的关键。用OBYC,选择GBB(指库存抵减过帐)双击,里面比较复杂的设置有可能是:Valuation Modif.(a Plant) > General Modif.(VBR) > VC > Account!。这样,201就通过GBB,VBR同相关科目联到了一起。当然,这是个很简单的例子,SAP对于不同的Special Stock,数量、金额是否更新,都会在OMJJ 中引用不同的所谓(Value String),这个东东比较复杂,我是做FICO的,了解得不多,不过很值得研究啊.101是针对采购、生产和成本控制订单收货的MT,在OMJJ>Account Groupg. 中你可以
看到常用的Movemt. IndicatorB(采购订单)和F(生产订单),请特别注意看Consumption Posting(A,V,)字段有值的那些行,他们链接的Transaction KeyKBS,这个KBS叫做Account Assigned Purchase-Order,在OBYC中是无法手工配置科目的。SAPMovement TypePost String/Value String中处理这种KBS时,会直接指向库存科目,即在BYC中,Transaction KeyBSX库存科目定义。刚才提到在OMJJ>Account Grouping中的101那些行,它们的Value StringWE06,你可以用t-code SE16看一个表叫做T156W,查看WE06的那些行,你会发现: