• BW:对于非法字符的控制


    其实这也是个老生常谈的问题

    无非就是业务上搞出一堆乱七八糟的字符,这些字符到了BW这边,就变成了井号(#)

       

    这个解决办法有这么几种:

    1、直接改PSA

    PSA可以修改,可是这样治标不治本,顶多是我们这边数据上载正常了,可是数据跟业务上的录入还是有差别

    2、在转换中写Start Routine

    贴一段其华兄的代码:

    DATA: TEMP_SR_POID TYPE /BI0/OISR_POID.

       

    clear TEMP_SR_POID.

    TEMP_SR_POID = SOURCE_FIELDS-SR_POID.

       

    if TEMP_SR_POID CN '#' .

    REPLACE '#' WITH '' INTO TEMP_SR_POID.

    else.

    TEMP_SR_POID = TEMP_SR_POID.

       

    CONDENSE TEMP_SR_POID NO-GAPS.

    RESULT = TEMP_SR_POID.

    ENDIF.

    方法类似,不过是把'#'替换成''或者' '

    也是和方法1类似,只不过是升级了一下,不用手工操作,代价就是上载的效率和传输的流程

    3、增强数据源

    这个方法比较惨,因为井号(#)在源系统中指不定是啥字符呢,仔细算算得有十几个,都控制的话代价比较大,不如写Start Routine,只不过一个PSA可能会上载到多个模型,就得写多个Start Routine。

    4、找业务修改R3的数据

    这个好,改完了BW再抽一遍完事儿,不过协调起来比较复杂

    5、增强业务系统

    在用户输入或者批导的时候,控制输入,当遇到这种垃圾字符的时候,就提示错误,禁止写入,这是最好的办法。

  • 相关阅读:
    0x00 Java 研习录
    0x00 Linux From Scratch 实战
    第一章:Java编程入门
    陈洋总结
    pthread_detach
    explicit用法
    Java动态加载DLL方法
    ToolHelp32 函数
    android根据子view里面的数量自动排版的一个ViewGroup
    安装CocoaPods学习
  • 原文地址:https://www.cnblogs.com/hanmos/p/2794923.html
Copyright © 2020-2023  润新知