Generate random number using QF05_RANDOM_INTEGER SAP function module within your ABAP code

I found with this function module that the first number it generates is not always random. I.e. if you execute the ABAP report below multiple times in quick succession each time the initial number generated will be the same. After that however the remaining (2nd & 3rd) numbers do seem to become random. Therefore to use it effectively it could just be a case of ignoring the first number each time a program is executed. Having said all this if there is a few minutes between each execution of QF05_RANDOM_INTEGER then the first number will change!!!!

Copy the below ABAP code into a new report to see this functionality in action and confirm for yourself how random the numbers are. Also see my testing results.

Generate random number
*&---------------------------------------------------------------------*
*& Report  ZQF05_RANDOM_INTEGER.
*&
*&---------------------------------------------------------------------*
*&created by  QF05_RANDOM_INTEGER*
*&
*&---------------------------------------------------------------------*
REPORT  ZQF05_RANDOM_INTEGER.
DATA: ld_ranint type QF00-RAN_INT,
      ld_maxint type QF00-RAN_INT,
      ld_minint type QF00-RAN_INT.
***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
ld_minint = 1.
ld_maxint = 1000.
do 3 times.
CALL FUNCTION 'QF05_RANDOM_INTEGER'
EXPORTING
  RAN_INT_MAX   = ld_maxint
  RAN_INT_MIN   = ld_minint
IMPORTING
  RAN_INT       =  ld_ranint
EXCEPTIONS
  INVALID_INPUT = 1
  OTHERS        = 2.
 WRITE:/ ld_ranint.
enddo.

Testing results

Initial result


1 second after previous run


1 second after previous run



A few minutes later


1 second after previous run


1 second after previous run

So basically looking at the test results it seems to get its initail result from some kind of incremental number range which gets updated every few minutes, then any further numbers are generated randomly from that. Based on these results i would always ignore the first number generated when using this function module.


Related Articles

ABAP4_CALL_TRANSACTION sap function module
BAPI_ALM_ORDER_MAINTAIN sap BAPI / Function Module to create a work order
Function module BAPI_EMPLCOMM_CREATE to maintain the SAP HR communication infotype 0105
CLPB_EXPORT sap function module
CLPB_IMPORT sap function module
CONVERT_DATE_TO_EXTERNAL sap function module
CREATE_TEXT sap function module
CURRENCY_AMOUNT_DISPLAY_TO_SAP sap function module to Convert currency value from display to SAP
CURRENCY_AMOUNT_SAP_TO_DISPLAY FM to Convert currency value from SAP to display
DATE_COMPUTE_DAY sap function module
DATE_TO_DAY sap function module
DOCU_READ sap function module
ENQUEUE_READ sap function module
F4IF_INT_TABLE_VALUE_REQUEST sap function module
FILE_GET_NAME sap function module
SAP Application specific function modules
SAP Custom function modules
SAP field conversion function modules
SAP HR specific function modules
SAP development function modules
Retrieve employees address details (own data)
Function Module DYNP_VALUES_UPDATE to Change screen field contents
sxpg_command_execute FM to Execute external commands (FTP Scripts)
DETERMINE_PERIOD FM to Retrieve fiscal year and period
Function module HR_INFOTYPE_OPERATION to maintain SAP HR infotypes
RH_PM_GET_STRUCTURE FM to retrieve HR Organisation Structure
Validate WBS (code used in ME21)
HR_READ_INFOTYPE SAP FM to Read infotype data
READ_TEXT FM to Read SAP texts
ADDR_PERS_COMP_COMM_MAINTAIN to Update sap users email address plus other details (own data)
HR_PERSONAL_WORK_SCHEDULE to Retrieve employees work schedule
NUMBER_GET_NEXT to get next number in number range sap function module
RSEC_GENERATE_PASSWORD SAP FM to generate user password
The SAP internet user functionality and Password BAPIs
SAPGUI_SET_FUNCTIONCODE sap function module to execute function code
SX_INTERNET_ADDRESS_TO_NORMAL SAP function module to check email format is correct