BW在DSO抽取数据时防止出现16进制数错误

上传人:pu****.1 文档编号:546074552 上传时间:2022-11-30 格式:DOCX 页数:4 大小:15.15KB
返回 下载 相关 举报
BW在DSO抽取数据时防止出现16进制数错误_第1页
第1页 / 共4页
BW在DSO抽取数据时防止出现16进制数错误_第2页
第2页 / 共4页
BW在DSO抽取数据时防止出现16进制数错误_第3页
第3页 / 共4页
BW在DSO抽取数据时防止出现16进制数错误_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《BW在DSO抽取数据时防止出现16进制数错误》由会员分享,可在线阅读,更多相关《BW在DSO抽取数据时防止出现16进制数错误(4页珍藏版)》请在金锄头文库上搜索。

1、关于BW上传数据包含无效字符的解决问题出现项目上遇到这样一个问题,从外部的oracle数据库取数到BW在激活DSO寸报错。表头状态细节彳討CE蓝驶蓋巨後正请匱我慕頓痛陥喬風Sij:J提取(信息):一切惟备盘堵口传输(Idoc和TRFC):一切唯备就绪牡理(数据包):一切准备就绪*鼻并行处理(信息):已发生緒倶-ODS活动(更改日志):仍未激活口删除(信息);一切惟备就绪其它(信息);已发生错误正在运行激活:数据目标Z4QM_O22,A5.704到5.70口对归档对象核查的要自动激活的数基/夜取ODS对象Z4QM_O22的主数据标识符时出错主数据标识分配已在10:33:32启动特性Z4FBBZ1

2、的值-200米親E卩与要求级别不符SG$当分配SID时措误:撫作VAL_SID_CONVERT表Z4FBBZ3議特性Z4FBBZ1的值:wangdongxue1D-03-D311:00:40:当分配S1D时诸误;操作VALSIDCONVERT表Z4FBBZ20特性Z4FBBZL的值1-卷换508內径10-15吨分卷当分配SID时错谀按作VAL_SID_CONVERT表Z4FBBZ1终止邀活ODS对Z4QM_022的M记录查看具体信息,显示:特性Z4FBBZ1的值-重卷换508内径,按1015吨分卷,取样查表面质量:(十六进制0A2D2D3ED6D8BEEDBBBB353038C4DABEB6A

3、3ACB0B431307E包含无效的字符消息号BRAIN059尝试过将信息对象设置为小写字符,重新激活dso,更新规则等各种方法,都没有作用。在查看PSA时也并无发现有特殊字符,经过仔细检查,终于在DSC的新数据表里发现问题。原来字符串中包含有空格,抽取到BW系统时,转换成了“#”。重卷换508內径,後止查询SDN得知,类似于“#”等特殊字符在BW里都是不允许的,因此在激活DSO时显示无效字符。(此外,HEX00-HEX1F的字符都是不允许的)Tcode:RSKC可以维护BW允许的特殊字符。但是对于空格,箭头符号等似乎无作用。最好的解决办法是在更新规则里使用例程,将字符串中的“#”再改回到空格

4、。ABAP例程如下:FIELD-SYMBOLS:TYPEx,TYPEc.DATA:ch1(32)TYPExVALUE00200120022003200420052006200720082009200A200B200C200D200E200F20,ch2(32)TYPExVALUE10201120122013201420152016201720182019201A201B201C201D201E201F20.RESULT=COMM_STRUCTUREC/Z4FBBZ1.”通讯结构字段*Theonly#signisnotpermittedIFSTRLEN(RESULT)=1.IFRESULT(1)

5、=#.RESULT(1)=.ENDIF.ENDIF.*ExclamationmarkisnotpermittedasafirstsymbolofthefieldcontentIFRESULT(1)=!.RESULT(1)=.ENDIF.ReplaceInvalidCharactersbySPACEASSIGNch1TOCASTING.ASSIGNTOCASTING.TRANSLATERESULTUSING.ASSIGNch2TOCASTING.ASSIGNTOCASTING.TRANSLATERESULTUSING.* returncode0meansskipthisrecordRETURNC

6、ODE=0.另外还有一段例程,这一段是处理回车、TAB等制表符的:RESULT=SOURCE_FIELDS-ZZENDCUSTOMER.FilterHorizontalwhileRESULTcaCL_ABAP_CHAR_UTILITIES=HORIZONTAL_TAB.clearresult+sy-fdpos(1).endwhile.FilterVERTICAL_TABwhileRESULTcaCL_ABAP_CHAR_UTILITIES=VERTICAL_TAB.clearresult+sy-fdpos(1).endwhile.FilterNEWLINEwhileRESULTcaCL_ABA

7、P_CHAR_UTILITIES=NEWLINE.clearresult+sy-fdpos(1).endwhile.FilterNEWLINEwhileRESULTcaCL_ABAP_CHAR_UTILITIES=CR_LF.clearresult+sy-fdpos(1).endwhile.#系统无法显示的字符,会以#表示,如OxOO-Ox仆均是非法字符,由于这些字符大部分是控制符(回车/进位/换行),在系统中无法显示,系统会用#来表示。3. 以!开头的字符串,这是因为SAP用!xxx来标记xxx被删除,或是临时存储。4. 全部都是#的字符串,女口#,系统使用#标记无法识别的字符。在处理包含上

8、述非法字符的数据时,系统会出现相关的错误信息。上篇提到了BW系统可识别的字符范围,那么具体在哪些时候会发生invalid_characteristics的错误呢?1. 激活DSO时,如果勾选了“生成SID”选项,则系统会更新主数据,如果有非法字符,会引发错误2. Cube加载数据时,会更新主数据,此时如果有非法字符,也会引发错误文件导入数据时,可能由于分隔符、换行符等问题,或者数据问题,发生非法字符错误以上均是由非法字符引起的常见问题,根据发生问题的原因,有以下解决方法:调整系统支持字符范围:通过Tcode:RSKC修改设置ALL_CAPITAL,让系统允许接受各种语言的大写字母及大部分特殊字

9、符,在数据本身无任何问题时,可以使用这种方法来调整。但是这种方法仍然不支持0x00-0x仆、#、!xxx这类符号。1. 通过Routine处理:通常用于连接R3系统时,R3端有大量非法字符,可以通过此方法处理2. 直接在PSA中修改数据:个别数据出现问题可通过此方法作微调用户修改原始数据:通常是在使用平面文件导入数据时使用,由于用户手工导入的数据本身有问题,有系统无法识别的字符串,或者一些无效信息,导致数据无法加载,此时建议直接修改原始数据。*FilterNEWLINEwhileRESULTcaCL_ABAP_CHAR_UTILITIES=FORM_FEED.clearresult+sy-fdpos(1).endwhile.BW数据抽取过程中,尤其是平面文件上数时,经常会碰到invalid_characteristcs错误。在默认设置下,BW支持的字符包含:1. 数字12345678902. 字母ABCDEFGHIJKLMNOPQRSTUVWXYZ3. 符号!&*()+?_:;/,=4. 空格除了上述这些符号,其余的字符都会被视为非法字符,包括:1. 小写字母(未勾选Lowercase时)2. 货币符号

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号