SAP_ABAP_FI

ABAP->Stru.를 Char형식으로 변환, Char을 Stru으로 변환 본문

SAP_ABAP_Source

ABAP->Stru.를 Char형식으로 변환, Char을 Stru으로 변환

abapjun 2023. 3. 2. 09:44
728x90
반응형

DATABEGIN OF ls_job,
        tabname TYPE tabname VALUE 'BKPF',
        data    TYPE REF TO data,
      END   OF ls_job,
      lr_str TYPE REF TO data.


FIELD-SYMBOLS<fs_data> TYPE STANDARD TABLE,
               <fs_val>  TYPE any.

"--> itab -> char로 변환할 fs
CREATE DATA lr_str TYPE zchar30000.
ASSIGN lr_str->TO <fs_val>.

"-->Char 3000인 str, table type 생성
CREATE DATA ls_job-data TYPE TABLE OF zchar30000.
ASSIGN ls_job-data->TO <fs_data>.

SELECT *
  INTO TABLE @DATA(lt_bkpf)
  FROM bkpf
 WHERE gjahr '2022'.

"--> 스트럭쳐 구조를 STRING구조로 변환하는 작업
LOOP AT lt_bkpf ASSIGNING FIELD-SYMBOL(<fs_wa>).
  CALL FUNCTION 'SO_STRUCT_TO_CHAR'
    EXPORTING
      ip_struct <fs_wa>
    IMPORTING
      ep_string <fs_val>.
  APPEND <fs_val> TO <fs_data>.
ENDLOOP.
"--> 스트럭쳐 구조를 STRING구조로 변환하는 작업




DATAlr_line    TYPE REF TO data,
      lr_tabline TYPE REF TO data.

FIELD-SYMBOLS<fs_to_val> TYPE any,
               <fs_to_tab> TYPE STANDARD TABLE.
BREAK-POINT.

CREATE DATA lr_line TYPE (ls_job-tabname)" 대상 아이템에 스트럭쳐를 구함

ASSIGN lr_line->TO <fs_to_val>.

CREATE DATA lr_tabline TYPE TABLE OF (ls_job-tabname)" 대상 아이템에 인터널테이블를 구함

ASSIGN lr_tabline->TO <fs_to_tab>.

*--> STRING구조를 -> 대상 테이블의 구조로 변환하는 작업
LOOP AT <fs_data> ASSIGNING <fs_val>.

  CALL FUNCTION 'SO_CHAR_TO_STRUCT'
    EXPORTING
      ip_string     <fs_val>
      ip_structname ls_job-tabname
    IMPORTING
      ep_struct     <fs_to_val>.
  APPEND <fs_to_val> TO <fs_to_tab>.

ENDLOOP.

728x90
반응형

'SAP_ABAP_Source' 카테고리의 다른 글

SAP_ORACLE_DB_SELECT_Program  (0) 2023.03.04
내가 필요한 Class.zip  (0) 2023.03.02
ABAP_Program Runtime  (0) 2023.03.02
SHDB->ABAP 소스 없이 디비에서 조회 후 값 Insert  (0) 2023.02.21
SE16N- 강제 모디파이  (0) 2023.02.21