ABAP에서 난수를 생성하는 RANDOM 관련 함수 모음 11가지


ABAP 프로그램을 개발하다 보면 자주 사용하는 것은 아니지만 가끔 난수(Random) 값이 필요한 경우가 있습니다.

필요한 난수가 숫자인 경우도 있고, 문자열인 경우도 있습니다.
그리고 지정된 자릿수의 숫자 또는 문자열의 난수가 필요한 경우도 있습니다.

SAP에서 기본적으로 제공하는 RANDOM 관련 함수가 의외로 많이 있습니다. 비즈니스 환경에 따라 Random 값을 많이 사용하는 경우가 있는 듯 합니다.

이번 글에서는 SAP에서 제공하는 Random 관련 함수(Function Module) 중에서 비교적 사용성이 많아 보이는 함수들을 위주로 ABAP에서 난수를 생성하는 RANDOM 관련 함수 모음에 대해 설명해 보겠습니다.

RANDOM_I2

– Function : RANDOM_I2 (rnd_min ~ rnd_max 사이의 숫자 리턴)

– 사용 예 : 

CALL FUNCTION ‘RANDOM_I2’     “
* EXPORTING
*   rnd_min = 0               ” datatype-integer2
*   rnd_max = 100             ” datatype-integer2
  IMPORTING
    rnd_value =  rnd_data.    ” datatype-integer2
 
ABAP에서 난수를 생성하는 RANDOM 관련 함수 모음 - RANDOM_I2

RANDOM_AMOUNT

– Function : RANDOM_AMOUNT (rnd_min ~ rnd_max 사이의 화폐단위에 대한 금액 리턴)

– 사용 예 :

CALL FUNCTION ‘RANDOM_AMOUNT’    “
* EXPORTING
*   rnd_min = ‘-10000000’       ” bbseg-wrbtr
*   rnd_max = ‘10000000’        ” bbseg-wrbtr
*   valcurr = ‘KRW’             ” tcurx-currkey
  IMPORTING
    rnd_amount =  rnd_data.       ” bbseg-wrbtr
 
ABAP 난수발생(Random) 관련 함수 모음 - RANDOM_AMOUNT

RANDOM_I4

– Function : RANDOM_I4 (rnd_min ~ rnd_max 사이의 숫자 리턴)

– 사용 예 :

CALL FUNCTION ‘RANDOM_I4’    “
* EXPORTING
*   rnd_min = 0                 ” datatype-integer4
*   rnd_max = 100               ” datatype-integer4
  IMPORTING
    rnd_value =   rnd_data.    ” datatype-integer4
 
ABAP 난수발생(Random) 관련 함수 모음 - RANDOM_I4

GENERAL_GET_RANDOM_INT

– Function : GENERAL_GET_RANDOM_INT (0 ~ range값 범위의 숫자 리턴)

– 사용 예 :

CALL FUNCTION ‘GENERAL_GET_RANDOM_INT’ “Provides a random int within 0 and RANGE
  EXPORTING
    range =   9999                  ” i             The random int will be <= range
  IMPORTING
    random =   rnd_data.            ” i             Random value
 
ABAP 난수발생(Random) 관련 함수 모음 - GENERAL_GET_RANDOM_INT

GENERAL_GET_RANDOM_PWD

– Function : GENERAL_GET_RANDOM_PWD (문자와 숫자가 섞인 문자열 리턴)

– 사용 예 :

CALL FUNCTION ‘GENERAL_GET_RANDOM_PWD’ “Creates a random (alpha)-numeric password
  EXPORTING
    number_chars =   10           ” i             Specifies the number of characters
  IMPORTING
    random_pwd =    rnd_data.     ” string        Random password of (alpha)-numeric characters
 
ABAP 난수발생(Random) 관련 함수 모음 - GENERAL_GET_RANDOM_PWD

GENERAL_GET_RANDOM_STRING

– Function : GENERAL_GET_RANDOM_STRING (문자로만 이루어진 문자열 리턴)

– 사용 예 :

CALL FUNCTION ‘GENERAL_GET_RANDOM_STRING’ “Creates a random strings
  EXPORTING
    number_chars =   10           ” i             Specifies the number of generated chars
  IMPORTING
    random_string =   rnd_data.   ” string        Generated string
 
ABAP 난수발생(Random) 관련 함수 모음 - GENERAL_GET_RANDOM_STRING

QF05_RANDOM_INTEGER

– Function : QF05_RANDOM_INTEGER

– 사용 예 :

CALL FUNCTION ‘QF05_RANDOM_INTEGER’ “Random (whole) number
* EXPORTING
*   ran_int_max = 100           ” qf00-ran_int  Greatest required value
*   ran_int_min = 1             ” qf00-ran_int  Smallest required value
  IMPORTING
    ran_int =    rnd_data       ” qf00-ran_int  Random number
  EXCEPTIONS
    INVALID_INPUT = 1.          ” RAN_INT_MIN > RAN_INT_MAX
 
ABAP 난수발생(Random) 관련 함수 모음 - QF05_RANDOM_INTEGER

GENERATE_SEC_RANDOM

– Function : GENERATE_SEC_RANDOM (length 숫자의 2배 길이에 해당하는 문자열 리턴)

– 사용 예 :

CALL FUNCTION ‘GENERATE_SEC_RANDOM’ “
  EXPORTING
    length = 16                 ” i
  IMPORTING
    random =    rnd_data        ” xstring
  EXCEPTIONS
    INVALID_LENGTH = 1          “
    NO_MEMORY = 2               “
    INTERNAL_ERROR = 3 .        “
 
ABAP 난수발생(Random) 관련 함수 모음 - GENERATE_SEC_RANDOM

SXMS_CREATE_RANDOM_NUMBER

– Function : SXMS_CREATE_RANDOM_NUMBER (4자리 숫자 리턴)

– 사용 예 :

CALL FUNCTION ‘SXMS_CREATE_RANDOM_NUMBER’ “
* EXPORTING
*   messageguid =               ” sxmsmguid     Integration Engine: Message ID
  IMPORTING
    random_number =  rnd_data.  ” int4
 
ABAP 난수발생(Random) 관련 함수 모음 - SXMS_CREATE_RANDOM_NUMBER

CACS_RANDOM_I4

– Function : CACS_RANDOM_I4 (rnd_min ~ rnd_max 사이의 숫자 리턴)

– 사용 예 :

CALL FUNCTION ‘CACS_RANDOM_I4’ “
* EXPORTING
*   rnd_min = 0                 ” integer4
*   rnd_max = 100               ” integer4
  IMPORTING
    rnd_value =   rnd_data.     ” integer4
 
ABAP 난수발생(Random) 관련 함수 모음 - CACS_RANDOM_I4

ISU_RANDOM_INTEGER

– Function : ISU_RANDOM_INTEGER

– 사용 예 :

CALL FUNCTION ‘ISU_RANDOM_INTEGER’ “
* EXPORTING
*   ranint_max = 99             ” regen-maxcount
  IMPORTING
    ranint_number =  rnd_data.  ” regen-maxcount
 
ABAP 난수발생(Random) 관련 함수 모음 - ISU_RANDOM_INTEGER





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기