Use FM : GENERAL_GET_RANDOM_STRING.
Example :
DATA : lw_guid TYPE string.
CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
EXPORTING
number_chars = 32
IMPORTING
random_string = lw_guid.
Use FM : GENERAL_GET_RANDOM_STRING.
Example :
DATA : lw_guid TYPE string.
CALL FUNCTION 'GENERAL_GET_RANDOM_STRING'
EXPORTING
number_chars = 32
IMPORTING
random_string = lw_guid.
Convert date to default external format :
DATA : lw_date_ext TYPE char10,
lw_date TYPE datum.
WRITE lw_date TO lw_date_ext.
Other way to do that since 7.40 :
DATA lv_date TYPE d value '20190718'.
DATA(l_user_format) = |{ lv_date DATE = USER }|. "RAW, ISO, USER, ENVIRONMENT
WRITE l_user_format.
Convert date to specified external format :
DATA : lw_date_ext TYPE char10,
lw_date TYPE datum.
CALL FUNCTION 'SLS_MISC_CONVERT_TO_DATE'
EXPORTING
p_date = lw_date
p_date_format = 'DD.MM.YYYY'
IMPORTING
p_date_string = lw_date_ext.
See also Convert date to internal format.
With 7.40 :
DATA : lw_date_ext TYPE char10,
lw_date TYPE datum.
lw_date = |{ lw_date_ext+6(4) }{ lw_date_ext+3(2) }{ lw_date_ext(2) }|.
With FM :
DATA : lw_date_ext TYPE char10,
lw_date TYPE datum.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = lw_date_ext " ==> 10.10.2017
IMPORTING
date_internal = lw_date " ==> 20171010
EXCEPTIONS
date_external_is_invalid = 1.
See also Convert date to external format.
Synthax to increase line size of report :
(To be specified at begining of report with report name declaration)
REPORT zreport_name LINE-SIZE 130.
Use program RV80HGEN.
Sometimes the standard automatically add this report in transport request (TR).
If not done automatically, you can add it manually in your workbench TR :
Display the object list of your transport request or task. Switch to Change mode, insert row :
R3TR | XPRA | RV80HGEN
Calculate runtime in microseconds :
DATA: lw_t1 TYPE i,
lw_t2 TYPE i,
lw_elapsed TYPE i.
* Get the time and put in lw_t1.
GET RUN TIME FIELD lw_t1.
* Wait 3 seconds.
CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
SECONDS = 3.
* Get the time and put in lw_t2.
GET RUN TIME FIELD lw_t2.
* Calculate the different between lw_t2 and lw_t1.
lw_elapsed = lw_t2 - lw_t1. " In microseconds.
lw_elapsed = ELAPSED / 1000000. " In seconds.
* Display the runtime.
WRITE:/ ' Runtime =', lw_elapsed, 'seconds'.
If your measure may overload 36 min, do not store the run time in a type i (integer) variable.
You should use a type numeric, like :
DATA: lw_t1(200) TYPE n,
Below, my personal code snippets :
Read MoreIf you want to add the mandant in your where clause (to force use of an index for instance), you have to add statement CLIENT SPECIFIED.
SELECT * FROM table_name CLIENT SPECIFIED INTO TABLE gi_table_name
FOR ALL ENTRIES IN li_table
WHERE mandt = sy-mandt " To force Index 001
AND field1 = li_table-field1
AND field1 = li_table-field2.
CALL FUNCTION 'C14ALD_BAPIRET2_SHOW'
TABLES
I_BAPIRET2_TAB = T_RETURN_MESSAGE. " T_RETURN with type BAPIRET2_TAB