ABAP 例程程序在SAP BW TRANFORMATION中的应用,去除非法字符
来源:互联网 发布:eplan软件 64位 编辑:程序博客网 时间:2024/05/01 04:57
在标准DSO中,由于数据源的复杂性,经常会会激活失败,常见的原因是非法字符。非法字符通常有几种:
1,小写字母,如果INFOOBJECT 没有点选允许小写的选项,会造成激活失败
2,德语,法语中英语没有的字符。
解决的方法有多种,例如在RSKC添加,但是如果非法字符未知的话,还是难以解决。比较稳妥的方法是用例程解决。
CONSTANTS:
c_allowed_char TYPE c LENGTH 200 VALUE
'!,<>?/\:;"''ABCDEFGHI JKLMNOPQRSTUVWXYZ!%^&*()__+=1234567890', " 定义BW中所有的字符为常量
c_escape TYPE c VALUE 'Ø'. " because '!' is a valid character too “将非法字符统一转换为同一字符Ø
DATA: l_allowed_char TYPE c LENGTH 200,
l_alocnum TYPE c LENGTH 000050,
l_len TYPE i,
l_time TYPE i.
" get list of allowed characters - from system config
CALL FUNCTION 'RSKC_ALLOWED_CHAR_GET' ”调用FM, 得到系统全部的合法字符
IMPORTING
e_allowed_char = l_allowed_char.
IF sy-subrc <> 0.
" if it fails, get use standard list, from constant 如果调用失败,则用常量
l_allowed_char = c_allowed_char.
ENDIF.
MOVE source_fields-alocnum TO l_alocnum.
TRANSLATE l_alocnum TO UPPER CASE. “全部转换为大写,注意SAP BW 里,小写为非法
l_len = STRLEN( l_alocnum ).
DO l_len TIMES. "这里的调用循环,原理就不解释了
IF l_alocnum+l_time(1) CN l_allowed_char .
l_alocnum+l_time(1) = c_escape.
ENDIF.
l_time = l_time + 1.
ENDDO.
REPLACE ALL OCCURRENCES OF c_escape IN l_alocnum WITH space.
CONDENSE l_alocnum.
result = l_alocnum.
- ABAP 例程程序在SAP BW TRANFORMATION中的应用,去除非法字符
- SAP ABAP在BW中的应用
- sap bw 中 InfoPackage 中的abap例程过滤
- C# 去除字符串中的非法字符
- BW运行“非法字符”抽取
- java去除非法字符
- 去除非法字符
- SAP BW ODS无效字符自动处理程序【升级版】
- SAP BW中的基本概念
- 去除SAP中的一些特殊字符
- ABAP SAP 程序放在哪个库表中
- BW:对于非法字符的控制
- BW:对于非法字符的控制
- BW:SAP 字符(摘自SAP HELP)
- 去除文件名的非法字符
- 真龙写的去除非法字符
- SAP BW中的数据挖掘
- HTTP在abap中的应用
- 【Leetcode】Permutations
- OpenGL--动作管理
- 游戏引擎理论与实现系列01-生成窗口
- mysqldump 备份
- 游戏引擎理论与实现系列03-生成图像
- ABAP 例程程序在SAP BW TRANFORMATION中的应用,去除非法字符
- [Leetcode] 126. Word Ladder II
- [Leetcode] 127. Word Ladder
- Blog hello world
- WPF Commend 命令
- 3月30日--4月8日(共20小时,剩3800小时)
- 查看路由信息的几种方法
- 【spring-mvc】SpringMVC中的转发与重定向
- ubutu下Sublime Text 2的安装