Skip to content

Instantly share code, notes, and snippets.

View larshp's full-sized avatar
🤷‍♂️
ABAP and more ABAP 拉尔斯

Lars Hvam larshp

🤷‍♂️
ABAP and more ABAP 拉尔斯
View GitHub Profile
@larshp
larshp / adler32.abap
Created June 18, 2014 14:35
Adler32 checksum implemented in ABAP, see http://en.wikipedia.org/wiki/Adler-32
TYPES: t_checksum TYPE x LENGTH 4.
FORM adler32 USING pv_xstring TYPE xstring
CHANGING cv_checksum TYPE t_checksum.
CONSTANTS: c_adler TYPE i VALUE 65521.
DATA: lv_index TYPE i,
lv_a TYPE i VALUE 1,
@larshp
larshp / zcl_ci_naming.abap
Created July 7, 2014 13:35
"Inherit" from CL_CI_TEST_ABAP_NAMING_NEW
class ZCL_CI_NAMING definition
public
inheriting from CL_CI_TEST_INCLUDE
final
create public .
public section.
methods CONSTRUCTOR .
@larshp
larshp / permute.abap
Last active August 29, 2015 14:07
Permutations
METHOD permute.
DATA: lv_length TYPE i,
lv_value TYPE i,
lt_perm LIKE LINE OF et_perm,
lt_new LIKE LINE OF et_perm.
DO iv_count TIMES.
CLEAR lt_perm.
REPORT zfoobar.
START-OF-SELECTION.
DATA: lt_table TYPE TABLE OF i,
lv_value LIKE LINE OF lt_table.
APPEND 2 TO lt_table.
APPEND 2 TO lt_table.
PERFORM run.
DATA:
source_tab TYPE rswsourcet,
obj_source TYPE REF TO if_oo_clif_source.
obj_source = cl_oo_factory=>create_instance( )->create_clif_source(
clif_name = 'ZCL_AOC_CATEGORY'
version = 'A' ).
obj_source->get_source( IMPORTING source = source_tab ).
METHOD set_sy_message.
me->if_t100_message~t100key-msgid = sy-msgid.
me->if_t100_message~t100key-msgno = sy-msgno.
me->if_t100_message~t100key-attr1 = 'MSGV1'.
me->if_t100_message~t100key-attr2 = 'MSGV2'.
me->if_t100_message~t100key-attr3 = 'MSGV3'.
me->if_t100_message~t100key-attr4 = 'MSGV4'.
me->msgv1 = sy-msgv1.
me->msgv2 = sy-msgv2.
class Timer {
private times;
private count;
private startTime: number;
public constructor() {
this.times = {};
this.count = {};
}
* try avoiding using class cl_distributionlist_bcs
* it causes strange dumps in concurrent situations
* instead do it "old style":
CALL FUNCTION 'SO_DLI_READ'
EXPORTING
distributionlist = iv_distlist
system_dli = abap_true
TABLES
member = lt_member
objpara = lt_objpara
DATA: lv_data TYPE string,
lv_int TYPE i VALUE 38.
WHILE lv_int <> 0.
IF lv_int MOD 2 = 0.
CONCATENATE '0' lv_data INTO lv_data.
ELSE.
CONCATENATE '1' lv_data INTO lv_data.
ENDIF.
lv_int = lv_int DIV 2.
@larshp
larshp / zdynamic.abap
Last active July 26, 2017 11:19
Suppress initial fields in CALL TRANSFORMATION
REPORT zdynamic.
START-OF-SELECTION.
PERFORM easy.
FORM difficult.
DATA: ls_usr02 TYPE usr02,
lv_xml TYPE string,
lv_index TYPE i,