BW - 문자 처리 관련 방법

2018. 5. 9. 15:40SAP/BW

BW - PSA 데이터 DSO, CUBE 등으로 적재 시 TEXT를 변경해서 넣고 싶을 때



TEXT 내역 중 특정 TEXT는 다른 형태로 적재하고자 할 때가 있음.



이럴 경우 PSA -> DSO, CUBE 등으로 전송되는 변환 부분의 해당 Routine에 ABAP Function 패턴을 사용하여 변경 가능.




사용 루틴


RESULT =. 가 표시되는 영역에서 상단 패턴을 클릭.


팝업창에서 CALL FUNCTION 부분에 'STRING_REPLACE' 입력 후 확인.



로직 입력 용 라인에 해당 Function 문이 추가된 것을 확인 가능




내가 작성한 로직은 다음과 같음...


DATA T_TEXT(40TYPE C.   " 소스필드의 값을 담을 변수 선언


    T_TEXT SOURCE_FIELDS-TXZ01.   " 선언한 변수에 소스필드값 지정.

CALL FUNCTION 'STRING_REPLACE'
  EXPORTING
    PATTERN                   '#'    " 바꾸고자 하는 문자 지정.
    SUBSTITUTE                ' '    " 바뀌게 될 문자 지정.
*   MAX_REPLACES              = 0
* IMPORTING
*   NUMBER_OF_REPLACES        =
  CHANGING
    TEXT                      T_TEXT     " 바뀔 문자내역이 담긴 변수 지정.
* EXCEPTIONS
*   WRONG_STRING_LENGTH       = 1
*   OTHERS                    = 2
          .
*IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.


     RESULT T_TEXT.       " 조건에 따라 변경된 내역을 결과값으로 받음.



이렇게 작성한 후 점검 및 저장을 하고 규칙 테스트 진행



의도한 것은 # 부분을 공백으로 처리하고 싶었으나 테스트 해보니 빈칸없이 들어옴...


이때 위 공백을 일반 SPACE Bar를 눌러 생성한 공백이 아닌


ㄱ + 한자키 > 특수문자 1번 공백을 넣으면 해당 부분을 공백으로 제대로 인식함.




이렇게 TEXT 변환 작업 완료.


원래 작성하려던 BRAIN 290 오류 관련 사항은 TEST 완료 후 재작성하겠음.