본문 바로가기
SAP/ABAP

ABAP TABLE 유니크 INDEX 생성 'GUID_CREATE'

by 꿈청(꿈꾸는청년) 2021. 4. 18.
반응형

ABAP Unique Index 생성 GUID

 

오늘은 ABAP에서 Unique Index 역할을 할 수 있는 GUID를 생성해보겠습니다. 데이터를 저장 할 때, 각 Line 별 해당 Unique Key를 생성해주면 됩니다.

 

 

1. TABLE 필드에 고유 KEY 역할 필드를 생성해준다.

 

Data element ( 16자리, 22자리, 32자리 ) built in type 제공해줍니다

 
guid_16, guid_22, guid_32

 

 DATA:
   ld_guid_16 TYPE guid_16,
   ld_guid_22 TYPE guid_22,
   ld_guid_32 TYPE guid_32.

 CALL FUNCTION 'GUID_CREATE'
   IMPORTING
     ev_guid_16 = ld_guid_16
     ev_guid_22 = ld_guid_22
     ev_guid_32 = ld_guid_32.
 
 DATA(ld_new_16) = cl_system_uuid=>create_uuid_x16_static( ).
 DATA(ld_new_22) = cl_system_uuid=>create_uuid_c22_static( ).
 DATA(ld_new_32) = cl_system_uuid=>create_uuid_c32_static( ).
 

 

EX) 데이터 저장 SAVE PROCESS

 

ALV Grid 데이터를 저장 할 시에 기존 이미 테이블에 저장된 데이터의 경우는 GUID를 생성해줄 필요가 없겠죠? 단, 기존 테이블에 없는 경우는 새로 추가된 LINE(행)으로 인식해서 GUID를 생성 해주면 되겠습니다.

 

  //---TABLE에 저장된 데이터//
  
  SELECT * INTO TABLE @DATA(lt_save_low)
    FROM ZTUSER_INFO.

  //---GT_LIST 저장된 데이터 + 화면 리스트(사용자가 추가/삭제 한 데이터)//
  
  LOOP AT gt_list INTO gs_list.

    READ TABLE lt_save_low INTO ls_save_low WITH KEY ID = gs_list-ID.
    IF SY-SUBRC NE 0.
    
      //-- NEW LINE//

      CALL FUNCTION 'GUID_CREATE'
        IMPORTING
          ev_guid_16 = gs_list-ID. "KEY 생성


    ELSE. "EQ 0
    
      //-- Already LINE//
      //ls_user_info (화면list) <-> ls_save_low (저장된 구조체)//

    ENDIF.

    MODIFY gt_list FROM gs_list. //ID 또는 데이터 값 변경 포함//

  ENDLOOP.

 

 

 

 

 

출처:

software-heroes.com/en/blog/abap-obsolete-create-guid

반응형

댓글