bw在dso抽取数据时防止出现16进制数错误

bw在dso抽取数据时防止出现16进制数错误

ID:33898918

大小:51.00 KB

页数:5页

时间:2019-03-01

bw在dso抽取数据时防止出现16进制数错误_第1页
bw在dso抽取数据时防止出现16进制数错误_第2页
bw在dso抽取数据时防止出现16进制数错误_第3页
bw在dso抽取数据时防止出现16进制数错误_第4页
bw在dso抽取数据时防止出现16进制数错误_第5页
资源描述:

《bw在dso抽取数据时防止出现16进制数错误》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、关于BW上传数据包含无效字符的解决问题出现项目上遇到这样一个问题,从外部的oracle数据库取数到BW,在激活DSO时报错。查看具体信息,显示:特性Z4FBBZ1的值'-->重卷换508内径,按10~15吨分卷,取样.查表面质量:'(十六进制'0A2D2D3ED6D8BEEDBBBB353038C4DABEB6A3ACB0B431307E31')包含无效的字符消息号BRAIN059尝试过将信息对象设置为小写字符,重新激活dso,更新规则等各种方法,都没有作用。在查看PSA时也并无发现有特殊字符,经过仔细检查,终于在DSO的新数据表里发现问题。原来字符串中包含有空格,抽取到BW系统时,转换成了

2、“#”。查询SDN得知,类似于“#”等特殊字符在BW里都是不允许的,因此在激活DSO时显示无效字符。(此外,HEX00-HEX1F的字符都是不允许的)Tcode:RSKC。可以维护BW允许的特殊字符。但是对于空格,箭头符号等似乎无作用。最好的解决办法是在更新规则里使用例程,将字符串中的“#”再改回到空格。ABAP例程如下:FIELD-SYMBOLS:TYPEx,TYPEc.DATA:ch1(32)TYPExVALUE'00200120022003200420052006200720082009200A200B200C200D200E200F20',ch2(32)TYPExVA

3、LUE'10201120122013201420152016201720182019201A201B201C201D201E201F20'.RESULT=COMM_STRUCTURE-/BIC/Z4FBBZ1.”通讯结构字段*Theonly#signisnotpermittedIFSTRLEN(RESULT)=1.IFRESULT(1)='#'.RESULT(1)=''.ENDIF.ENDIF.*Exclamationmarkisnotpermittedasafirstsymbolofthefield*contentIFRESULT(1)='!'.RESULT(1)=''.ENDIF.*Re

4、placeInvalidCharactersbySPACEASSIGNch1TOCASTING.ASSIGNTOCASTING.TRANSLATERESULTUSING.ASSIGNch2TOCASTING.ASSIGNTOCASTING.TRANSLATERESULTUSING.*returncode<>0meansskipthisrecordRETURNCODE=0.另外还有一段例程,这一段是处理回车、TAB等制表符的:RESULT=SOURCE_FIELDS-ZZENDCUSTOMER.*FilterHorizontalw

5、hileRESULTcaCL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.clearresult+sy-fdpos(1).endwhile.*FilterVERTICAL_TABwhileRESULTcaCL_ABAP_CHAR_UTILITIES=>VERTICAL_TAB.clearresult+sy-fdpos(1).endwhile.*FilterNEWLINEwhileRESULTcaCL_ABAP_CHAR_UTILITIES=>NEWLINE.clearresult+sy-fdpos(1).endwhile.*FilterNEWLINEwhileRE

6、SULTcaCL_ABAP_CHAR_UTILITIES=>CR_LF.clearresult+sy-fdpos(1).endwhile.*FilterNEWLINEwhileRESULTcaCL_ABAP_CHAR_UTILITIES=>FORM_FEED.clearresult+sy-fdpos(1).endwhile.BW数据抽取过程中,尤其是平面文件上数时,经常会碰到invalid_characteristcs错误。在默认设置下,BW支持的字符包含:1.数字12345678902.字母ABCDEFGHIJKLMNOPQRSTUVWXYZ3.符号!%&*()'"+<->?_:;/,=4

7、.空格除了上述这些符号,其余的字符都会被视为非法字符,包括:1.小写字母(未勾选Lowercase时)2.货币符号3.#系统无法显示的字符,会以#表示,如0x00-0x1F均是非法字符,由于这些字符大部分是控制符(回车/进位/换行...),在系统中无法显示,系统会用#来表示。4.以!开头的字符串,这是因为SAP用!xxx来标记xxx被删除,或是临时存储。5.全部都是#的字符串,如######,系统使用#标记无

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。