FI:DMEE配置后文件的银企直连

FI:DMEE配置后文件的银企直连
#1.业务背景
TW希望通过DMEE的配置,将文件下载直接上传给银行,实现自动付款。TW那边银行对文件的格式有规定,需要每个字段按照规定字节输出。具体需求如下(部分需求)
在这里插入图片描述
#2 业务实现
##2.1 业务配置
###2.1.1 事务码:DMEE创建格式树
在这里插入图片描述

###2.1.2 事务码:OBPM1 配置支付媒介格式
在这里插入图片描述
代码页设置为8300
##2.2 业务实现
在此次需求中,最难的是对名称长度的设置。对于数字英文字符,SAP都是一个字节,可以按照字节长度计算。
对于汉字,在SAP内部是用2个字节来表示的,关于名称,若不满40个字节会用半角空格补足,但是当文件下载下来,
发现输出的汉字是按照三个字节计算的。跟银行需要的一个汉字2个字节的输出要求不匹配。
内部做了codepage的转换也不起作用。
后面,经过多次试验,我们发现,当名称长度按照字符计算,并且满足20个字符的时候,SAP会按照一个汉字2个字节
来输出,这样就满足了银行的需求,但是前提是名称必须填满20个汉字。因为有的名称是不能满足20个汉字的,我们就
用了全角空格来填充。
具体实现如下:
在这里插入图片描述
在这里插入图片描述

DATA: ls_item TYPE dmee_paym_if_type,
l_tlen TYPE i,"DMEE定义的字段长度
l_length TYPE i,
l_field(60) TYPE c,"需要出口的DMEE字段
l_name1(40) TYPE c,
l_name TYPE string."字段值

DATA:gw_htab TYPE c.
FIELD-SYMBOLS .

gw_htab = ’ '."全角空格
l_tlen = i_extension-node-length.
IF i_item IS NOT INITIAL.
ls_item = i_item.
ENDIF.

"结构字段的时候
l_field = ‘ls_item’ && ‘-’ && i_extension-node-mp_sc_tab && ‘-’ && i_extension-node-mp_sc_fld.
ASSIGN (l_field) TO .
IF IS NOT INITIAL.
l_name = .
ELSE.
"常量的时候
l_name = i_extension-node-mp_const.
ENDIF.

"获取数据

l_length = cl_abap_list_utilities=>dynamic_output_length( l_name ).
l_length = l_length DIV 2.
IF l_length < l_tlen.
l_length = l_tlen - l_length.
DO l_length TIMES.
CONCATENATE l_name gw_htab INTO l_name.
ENDDO.
ENDIF.
c_value = l_name.

ENDFUNCTION.
##2.3 F110生成付款建议,后下载文件到本地,可以看到名称占了40个字节
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值