300x250
728x90
Number Range에 대해서..
쉽게 말하자면 새 데이터를 삽입하거나 할 때 순서대로 번호를 부여하는 범위를 설정하는 것이라고 보면 된다.
#전 블로그에서도 썼기 때문에 바로 넘어가겠다.
SAP GUI vs CLOUD
여기서 중요한 것은 GUI는 T-Code : SNRO을 통해서 Number Range을 생성하면 된다.
하지만 Cloud는 (아직까지?) Number Range Object을 직접 만들고, Intervel Object도 직접 만들어야 한다.
시작하기 앞서 다음과 같은 Table 있다고 하자.
여기서 증가시켜 줄 것은Building_ID이다.
Object Name의 자릿수는 최대 10자리이다.
Number Range 생성하기
1. Class을 만들어보자.
2. 사용자에게 맞게 값을 넣어보자.
3. ( IF_OO_ADT_CLASSRUN )을 사용해서 다음과 같이 만들자.
4. Number Range Object을 생성해 보자. 해당하는 입력 값에 따라서 값을 넣어주면 된다.
# Object Name : ZNR_BLD_GJ
# 로직은 밑에 더 보기를 확인 바란다.
더보기
DATA : nr_attribute TYPE cl_numberrange_objects=>nr_attribute,
obj_text TYPE cl_numberrange_objects=>nr_obj_text,
lv_returncode TYPE cl_numberrange_objects=>nr_returncode,
lv_errors TYPE cl_numberrange_objects=>nr_errors.
nr_attribute-buffer = 'X'.
nr_attribute-object = 'ZNR_BLD_GJ'.
nr_attribute-domlen = 'ZD_BUILD_GJ'.
nr_attribute-percentage = 10.
nr_attribute-devclass = 'Y_GAMJA_UPLOAD'.
" nr_attribute-corrnr = ''. "
obj_text-langu = 'E'.
obj_text-object = 'ZNR_BLD_GJ'.
obj_text-txt = 'Building ID Range'.
obj_text-txtshort = 'Building ID'.
TRY.
cl_numberrange_objects=>create(
EXPORTING
attributes = nr_attribute
obj_text = obj_text
IMPORTING
errors = lv_errors
returncode = lv_returncode ).
CATCH cx_number_ranges
INTO DATA(lx_number_range).
ENDTRY.
3. Interval Object 생성해 보자. Interval 설정을 사용자에 맞게 값을 넣어보자.
# 로직은 밑에 더 보기를 확인 바란다.
더보기
DATA:
nrt_interval TYPE cl_numberrange_intervals=>nr_interval,
nrs_interval LIKE LINE OF nrt_interval.
nrs_interval-subobject = ''.
nrs_interval-nrrangenr = '01'.
" nrs_INTERVAL-toyear "
nrs_interval-fromnumber = '1000000'.
nrs_interval-tonumber = '9999999'.
nrs_interval-procind = 'I'.
APPEND nrs_interval TO nrt_interval.
TRY.
CALL METHOD cl_numberrange_intervals=>create
EXPORTING
interval = nrt_interval
object = 'ZNR_BLD_GJ'
subobject = ''
IMPORTING
error = DATA(error)
error_inf = DATA(error_inf)
error_iv = DATA(error_iv).
CATCH cx_nr_object_not_found
INTO DATA(lx_no_obj_found).
CATCH cx_number_ranges
INTO DATA(cx_number_ranges).
ENDTRY.
4. 이제 실행을 시켜보자.
# 오른쪽 클릭해서 [Run As] -> [ABAP Applocation (Console) 눌러보자 또는 F9를 누르면 실행이 된다.
5. Number Range 생성이 된 것이다. 확인 하는 방법은 패키지를 선택해서 Refresh을 클릭하거나 F5를 눌러보자.
그럼 다음과 같이 패키지 안에 Number Range가 생성 되어있는 걸 볼 수 있다.
Number Range 사용하는 방법
1. 기본 프로그램 예시를 들어본다면) 우리가 봐야 할 것은 빨간 박스이다. Number_get을 통해서 설정했던 Number Range Object와 Interval Object을 값에 맞게 넣어보자.
# 로직은 밑에 더 보기를 확인 바란다.
더보기
DATA lv_bldg_num TYPE n LENGTH 5.
cl_numberrange_runtime=>number_get(
EXPORTING
nr_range_nr = '01'
object = 'ZNR_BLD_GJ'
quantity = 1
IMPORTING
number = DATA(number)
returncode = DATA(ret_code)
returned_quantity = DATA(ret_qty)
).
2. 실행을 시켜서 데이터를 생성해보면 다음과 같이 Number Range가 실행이 되는 걸 볼 수 있다.
끝.
728x90
'.BTP > ..Cloud ABAP(RAP)' 카테고리의 다른 글
SAP RAP to BAS 연결 정리(BTP) (0) | 2023.07.21 |
---|---|
SAP RAP Side effects 정리 (2) | 2023.07.12 |
SAP RAP 첨부파일 올리기 (10) | 2023.06.21 |
SAP RAP 아이콘( Icon ) 설정 하는 방법 (11) | 2023.06.20 |
SAP RAP Dropdown List 설정하기 ( Value Help ) (12) | 2023.06.20 |