반응형
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.
출처:
반응형
'SAP > ABAP' 카테고리의 다른 글
GET/SET PARAMETER , IMPORT/EXPORT MEMORY ID, CALL TRANSACTION (0) | 2021.04.20 |
---|---|
ABAP Tabstrip 탭스트립 실습 (1) | 2021.04.18 |
ABAP SET_READY_FOR_INTPUT '수정' Toolbar (0) | 2021.04.13 |
ABAP ALV GRID EVENT CLASS METHOD 구문 (0) | 2021.04.12 |
ABAP ALV GRID SPLIT 화면분할 (3) | 2021.04.08 |
댓글