[转自SAP屠夫]不同公司代码使用不同汇率类型的替代
时间:2009-04-14 20:33来源:未知作者:admin 点击:225次
汇率替代方案: 业务需求 : 同一SAP Client运行了海外和国内多个公司代码,希望不同公司代码各自使用不同汇率类型,各自维护汇率。
业务分析: SAP 本身显然认为, 同一SAP Client下的所有公司代码应该使用同一套汇率实际记帐,这个汇率类型就是默认的月平均汇率M, OBA7凭证
汇率替代方案:
业务需求:
同一SAP Client运行了海外和国内多个公司代码,希望不同公司代码各自使用不同汇率类型,各自维护汇率。
业务分析:
SAP本身显然认为, 同一SAP Client下的所有公司代码应该使用同一套汇率实际记帐,这个汇率类型就是默认的月平均汇率M, OBA7凭证类型已经默认M汇率类型,见下图-[1],如果修改为P,则SA凭证将使用P汇率类型。
图片1
由于凭证类型是整个集团有效,如果为了取得不同汇率类型去为不同公司代码复制一套凭证类型显然太折腾,也不大现实。
当然,你可以为期末外币评估和外币报表折算设计一汇率类型比如叫C;或者KEPM做全年利润计划时设置一P汇率类型,那么实际记帐如何使不同公司代码使用不同汇率类型并各自维护自己的汇率呢?
逻辑分析:
首先分析一下设计逻辑,看看BKPF会计凭证抬头表,由于SAP最多可使用多达3个本位币,因此BKPF涉及3种汇率类型和对应的3种汇率。
第1本位币:
BKPF-KURSF:汇率值(第1本位币汇率)
BKPF-WWERT: 汇率换算日期
注意第1本位币并未设置汇率类型,因为默认从凭证类型中获取,通常就是M,除非你特意为某凭证类型指定另外的汇率类型,因此BKPF中不再为第1本位币设置汇率类型字段。
第2/3附加本位币:
BKPF-KUTY2/BKPF-KUTY3: 第二和第三本位币汇率类型
BKPF-KURS2/BKPF-KURS3: 第二和第三本位币转换汇率
设置附加本位币:(TCODE:OB22)
OB22:第一本位币的汇率类型默认为M,汇率日期从换算日期,这个换算日期实际上就是过帐日期,除非你去修改,见F-02的一个截图,除非你修改换算日期,否则它将等于过帐日期,并通过该日期去获取OB08。
图片2
如果只涉及1个本位币,无需要OB22设置汇率类型,如果涉及多本位币,则可为附加本位币设
置汇率类型和换算日类型,这个类型可以是过帐日期、凭证日期或者专门的换算日期。
图片3
奇怪的是,第1本位币的汇率类型和换算日期已经固定,不能做任何修改。
有个用户要求后勤发票校验MIRO是否能让换算日期默认取发票日期(发票日期反应在FI就是凭证日期),很可惜,默认做不到!
解决方法:
如何做到不同公司代码使用不同汇率类型呢?假设某集团不涉及附加本位币,要求海外使用汇率类型M,国内使用汇率类型Z,思路步骤如下:
(1).Tcode:OB07新建立另一汇率类型比如叫Z 。
(2).Tcode:OB08各自维护汇率
(3).前面分析过,BKPF第1本位币不涉及汇率类型,只涉及汇率,因此修改GB01表
并根据换算日期读取该汇率类型对应的汇率,替代为BKPF-KURSF 。
FI总程序
I.OBBH设置抬头替代,使用退出例程,见下图-[1]:
图片4
I.SE38: 运行RGUGBR00重新生产程序,必须的!
II.SE38检查动态程序GBTDMFI0(不同企业可能程序名不一),其中有个重要例程叫
数
G_VSR_SUBSTITUTION_CALL,设置一断点,然后读出替代动态程序名称,见下图:
图片5。