本文主要介绍在S4 HANA OP中金税接口的后台配置及前台操作。具体请参照如下内容:
目录
4. 创建金税编号范围-(T-code: GTI_NUM_NR)
7. 生成GTI导出文件-Outbound new app configration
8. 生成GTI导入文件- Create Inbound Files from Golden Tax System
9. 按照SD billing查询GTI报表- Search by Billing Document
10. 按照VAT Invoice number查询报表- Search by VAT Invoice Number
后台配置
1. 激活业务功能-SFW5
最新版本的金税接口有三个业务功能,分别是:FIN_LOC_CI_1, FIN_LOC_CI_9,FIN_LOC_CI_26。可以使用事务代码SFW5依次激活它们。
2. 激活服务-SICF
在树状列表找到‘APP_IDGT ’的节点,右键后选中‘激活服务’。
3. 创建角色(BP)
该步骤用于创建可以使用金税接口的角色,在该角色中,将需要金税接口涉及到的"事务代码”和”web Dynpro Application”分配到该角色,具体操作如下:
输入自定义的角色名称和描述:
在角色中将金税接口涉及到的"事务代码”和”web Dynpro Application”分配到该角色:
点击“web Dynpro Application”后,进入以下界面选择需要添加的具体功能。
需要将以下6个金税接口功能添加到该角色:
- AC_IDGT_OUTPUT_CTRL Personalization Settings
- AC_IDGT_OUTBOUND_NEW Outbound new app configration
- AC_IDGT_INBOUND Create Inbound Files from Golden Tax System
- AC_IDGT_OUTBOUND_CANC Create Outbound Cancellation Files for Golden Tax System
- AC_IDGT_REP_OI_DOC Search by Billing Document
- AC_IDGT_REP_OI_VAT Search by VAT Invoice Number
Web Dynpro 上每个应用程序配置都类似于传统SAP上的一个事务代码。目前金税有留个应用程序配置 : 个性化设置,创建到金税系统的出站文件,创建金税系统的出站取消文件,从金税系统创建入站文件, 按开票凭证搜索以, 按增值税专用发票号码搜索。
另外还需要将以下2个事务代码加入角色:
- GT_TCN Maintain Tax classification number
- GT_CUS Set Customer Type
以上所有操作,创建了一个金税接口涉及到的所有功能的角色,然后将该角色分配给用户即可。
4. 创建金税编号范围-(T-code: GTI_NUM_NR)
因为金税接口模块有自己的凭证,所以可以理解为一个小模块,因此需要为金税接口模块凭证维护编号范围。
5. 定义GTI Tax invoice key
以上配置顶定义了在生成outbound file的时候,系统进行的一些处理。例如:传输类型可以选择文本文件/Excel文件/在线集成。最大项目数定义了一张发票最大的行项目的总行数,如果超过这个数便会拆分等等。
每个字段的意义如下:
Line Item Limit: 该字段用于定义在生成GTI的outbound文件时,每个GTI编号所包含的最大行数,GTI编号就是SAP系统金税接口模块生成的凭证编号,每个凭证有抬头,有行项目。如果GTI凭证的行项目数量超过该数字,则系会自动进行拆分,系统会生成一个新的GTI编号。例如此处维护了3,在生成outbound file时,如果invoice data一共有5行,则系统会自动将前3行放在一个GTI编号中,后2行放在一个另一个GTI编号。
Net Value: 该字段用于定义在生成GTI的outbound文件时,每个GTI编号所有行项目的金额之和的最大值,GTI编号就是SAP系统金税接口模块生成的凭证编号,每个凭证有抬头,有行项目。如果一个GTI各行总金额大于该数字,则系会自动进行拆分,系统会生成多个GTI凭证从而保证每个GTI凭证的总金额小于等于该金额。系统在进行拆分时,是按照单价金额拆分的。例如:
有个billing,数量10PC,单价100CNY/PC,因此不含税总金额=10000CNY。如果此处设置的金额为8200CNY, 那么系统在拆分时,不是将金额拆分为8200和1800。系统是按照数量进行拆分的。系统会将10PC拆分为8PC和2PC,因此拆分后的2个GTI凭证中,一个是8PC,8000CNY,另一个是2PC,2000CNY。
Currency:该字段用于控制SD billing的币种。只有交易币种为此处维护的币种的SD billing才会金税模块取到。注意:如果此处留空,则代表本位币。
Price Mode:用于控制发给GTI的单位price是否包含税。即:含税价/不含税价。
Transfer Type:用于明确在执行生成outbound file的时候,生成的文件格式是txt, excel,xml等。
Rounding Differences:最大rounding differences容差值。在GTI中进行拆分合并的时候,拆分合并后的数据可能会出现tax amount<>net amount * VAT tax rate的情况。例如
合并前税的总金额是1.15,合并后用8.89*0.13=1.16,这样合并前后差了0.01,那么在生成outbound file的时候,点击 按钮,系统会根据此处设置的最大容差值进行检查,看此合并前后的产生的差异是否超过此处设置的容差。如果超过则报错。注意合并前后tax amount的金额不会变化,此例里合并后tax amount依然是1.15,只是用net amount*tax rate公式进行计算得到的tax amount 1.16和该行对应的实际tax amount 1.15相差0.01,可以理解为实际值相对理论值偏移了0.01,所以此处叫容差值。
拆分例子也是同理,此处不再重复。
对于中国金税系统,虽然可以接收外部系统传入的tax amount进行开票,但是金税系统也会检查外部系统传入的tax amount和基于公式net amount * tax rate算出的金额的差异不得超过0.0625CNY,如果超过,则中国金税系统不允许导入(也就是说金税系统不会接收任意的tax amount,传入的net amount,tax rate, tax amount三者的关系必须满足“net amount * tax rate ”和“tax amount”的差异不超过0.0625CNY)。通常此处设置为“0.06”。
Follow-up Action:该字段用于控制如果单价过高,即使数量是1,该行的总金额也超过了字段“Net Value”中定义的拆分临界金额时,系统该如何处理。有三种选项,如下:
1. Q Raise an error message: 系统会不进行拆分,直接报错。此时该SD billing无法生产GTI凭证,无法发送到金税系统。
2. P Proceed with item split(partial quantity to lines):系统仍旧会进行拆分,系统会拆分为2个数量为小数的GTI凭证,单价不变,从而数量*单价的每个拆分后GTI凭证的进行不超过字段“Net Value”中定义的拆分临界金额。
3. P Proceed with item split(keep quantity as 1 for lines): 系统仍旧会进行拆分,系统会拆分为2个数量为1的GTI凭证,其中一个GTI凭证的单价变更为Net Value”中定义的拆分临界金额,另一个GTI凭证的单价为剩余金额,从而数量*单价的每个拆分后GTI凭证的进行不超过字段“Net Value”中定义的拆分临界金额。
例如:Net Value”中定义的拆分临界金额为2990,可是billing中的金额为3000,那么:
如果选择2时,系统拆分结果如下:
GTI凭证 |
单价 |
数量 |
金额 |
1 |
3000.00 |
0.996 |
2988.00 |
2 |
3000.00 |
0.004 |
12.00 |
注意:数量的位数为3位,第一行系统会取最大的导致金额不超过net value临界值的数量。如果是0.097,那么金额就变成了2991了。
如果择3时,系统拆分结果如下:
GTI凭证 |
单价 |
数量 |
金额 |
1 |
2990.00 |
1.00 |
2990.00 |
2 |
10.00 |
1.00 |
10.00 |
注意:第一行的单价就是net value临界值,第二行的单价就是拆分前总金额-第一行金额的余额。
Combine Flag:用于控制在生成outbound file的时候,是否可以将positive billing和negative billing进行 combine。有3个选项如下:
1. Not allowed to combine positive documents with negative ones: 不允许进行合并,否则会报错。案例如下:
选择positive 和negative billing,点击combine,系统报错。
2. Allowed to combine positive documents with negative ones:允许进行合并,但是需要手动combine。。案例如下: