业务需求:
在SAP程序中,会经常要处理一些较为复杂的字符串:
例如:在使用BAPI创建会计凭证时,在填充会计凭证抬头文本时,业务有如下要求:
抬头文本:供应商X01 汇款凭证{ 制证人X02,制证日期X03 } 特殊备注!
要求:
- X01需要去掉前导0
- X02 为用户账号
- X03 为日.月.年;例如:31.7.2023
- 特殊字符: { }
- X01,{,}后面有空格
实现步骤:
一、SAP引入新语法 String Template(字符串模板);用于处理字符串及其格式转换。
字符串模板格式如下:|字符串{ 变量 }|
注意:
- 字符串:区分大小写,空格有效。
- 字符串:如有特殊字符,例如出现| ,{,}或者 \时,需要用转义符 \。
- 变量:前后要有空格。
- 变量:可以进行格式设置。
二、实现如下:
代码如下:
**定义-变量
DATA: L_LIFNR TYPE BSEG-LIFNR VALUE '123', "供应商-编号
L_LIFNR_T TYPE STRING, "供应商-文本
L_TEXT TYPE STRING. "抬头-文本
**处理-供应商信息
L_LIFNR_T = |供应商{ L_LIFNR ALPHA = OUT }|.
CONDENSE L_LIFNR_T."去掉前后空格
**处理-拼接抬头文本
L_TEXT = |{ L_LIFNR_T } 汇款凭证\{ 制证人{ SY-UNAME },制证日期{ SY-DATUM DATE = ENVIRONMENT } \},特殊备注!|.
WRITE L_TEXT.