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 / plan.md
Created November 11, 2026 10:11
OCI plan

Splitting hvam/oci2609 into mergeable PRs

The branch adds OCI registry repositories (issue #6618) in one change: 91 files, about +5,900/−230 lines, of which roughly 3,000 are tests and fixtures. This plan cuts it into PRs that each pass CI on their own, can be reviewed in one sitting, and keep main releasable.

The previous implementation plan (design, artifact profile, open validation items) is in commit 8b744379 if it is needed again.

Target model: OCI is a third repository type

abapGit has two repository types today:

@larshp
larshp / gist:32b78377a508d14afdc2f4adf6d318a3
Created November 4, 2026 10:27
Bobs Rocket Fuel, Tileable
0eNrdXd1u20YTfRdeS8XO7C8NfE9SGIFsMS1RSVQoyakb+N0/0kptyuZo56zTiwS9qV35aHZ3fs4OD6ffqrvNqdn37e5Y3Xyr2vtud6hufv9WHdo/dqvN+LvdattUN9X9n822vV9tlvvNavjw06Jqd+vm7+qGnhYzH7/r7pbNprk/9t3m8dD0kz/gp9tF1eyO7bFtzl/2/MPjp91pezd88oYW/6Ls231TLap9dxg+3O1G/AFgaX36zS+qx/Ffbf2bfxpNeAPCEEiaB7GL6Xru+m73T7Mc8ZbHbvlH35126xxynEd2H0bm0eZFtW77YZefP5Nmvscj28CCsQECCfMgEQLx8yAJAnHzIHUeJGb9i0zhCcZLr7s4QeK5byLIXuEMiSEU4RDpMiIeuna93J+2+wwcS5t4GQbdQ9N/3nRflw+rzUPORBZiljyyUMnl6dLn1Wf67P2KM42F8E4HnxD4cHnsCnhFBE1AhVhmU2ikENZMhXisSaTM0JpJsNEW2mgEPFeG995NZ9fskTVLOZtfQ+kNiZjD81fT46IafhhNOSeMXXvs2/tl93e7Hq07/7dPX06rzWDA8Jld128HWjJnlKIc+bwLJwjFCig1coj+0nHnWIuBrBJc1VKhVUbjWpYRG6X6YS2EIrE8V7bS90Hk5tB9IbpX5WILFSp7yWsU8LGQ5tgrcTy7TenjXxR1S6qRfGQv646cj1bbbbdrV1gacqbQFvMf2EJltvC7bXczabr7o9mB9nCZZ7/nSHP+5hSpg7O3AOcgFCEBOV/o+3zF92cXDSULvsILZ9Hjh5fxPunNFQ+XkF2XroFOwWIpeyPyBkIRiIQnCEVYkWcIRaAj3kIoAgnxDkIRSIj3EIrAkn1AUCSy4SOEIp3RZZ1btf3zBXrp5vFeqEuGCW/aL6fhLj7AYUnWQ8XQoOR8zPrLdVtA0AN0OzSXp5cnAUERcCZ7mCEfcK7OXpCChVAkWy57KYfT3eG4GkGWdh7xJYBn0RDW6tIVWjlXKUI+IF2+hxo
@larshp
larshp / object_types_list.abap
Created October 1, 2026 06:44
object_types_list.abap
PARAMETERS:
p_pack TYPE tdevc-devclass OBLIGATORY,
p_type TYPE tadir-object DEFAULT 'CLAS' OBLIGATORY.
DATA lt_packages TYPE RANGE OF tdevc-devclass.
START-OF-SELECTION.
APPEND VALUE #( sign = 'I' option = 'EQ' low = p_pack )
TO lt_packages.
@larshp
larshp / oauth_secret_update.abap
Last active August 19, 2026 10:36
oauth_secret_update.abap
DATA(lo_writer) = cl_oa2c_config_writer_api=>load(
i_profile = iv_profile
i_configuration = iv_configuration ).
lo_writer->set_client_secret( iv_secret ).
lo_writer->save( ).
@larshp
larshp / ztabl_wrong_delflag.abap
Created June 5, 2026 09:32
ztabl_wrong_delflag.abap
REPORT zhvam.
TABLES tadir.
SELECT-OPTIONS s_devc FOR tadir-devclass OBLIGATORY DEFAULT 'Z*' OPTION CP.
SELECT-OPTIONS s_objn FOR tadir-obj_name.
FORM run.
SELECT * FROM tadir INTO TABLE @DATA(lt_tadir)
@larshp
larshp / serialize_postprocess.abap
Last active April 12, 2026 09:20
Version code inspector variant
METHOD zif_abapgit_exit~serialize_postprocess.
CONSTANTS lc_variant TYPE sci_chkv VALUE 'FOOBAR'.
CONSTANTS lc_package LIKE iv_package VALUE 'ZFOOBAR'.
IF iv_package = lc_package.
* requires https://github.com/larshp/upDOWNci
DATA(lv_xml) = zcl_updownci=>build_xml(
iv_user = ''
iv_name = lc_variant ).
METHOD zif_abapgit_exit~wall_message_repo.
IF is_repo_meta-local_settings-flow = abap_true.
ii_html->add( zcl_abapgit_gui_chunk_lib=>render_error(
iv_error = |WARNING: This repository is flow enabled, use this view at own risk| ) ).
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_committer_info.
DATA lv_username TYPE string.
IF sy-uname = 'FOO'.
cl_gui_frontend_services=>get_user_name(
CHANGING
user_name = lv_username
EXCEPTIONS
cntl_error = 1
@larshp
larshp / abaplint-cla.md
Created October 5, 2024 05:22
Contributor License Agreement

Contributor Agreement

Individual Contributor Exclusive License Agreement

(including the Traditional Patent License OPTION)

Thank you for your interest in contributing to Heliconia Labs ApS's abaplint ("We" or "Us").

The purpose of this contributor agreement ("Agreement") is to clarify and document the rights granted by contributors to Us. To make this document effective, please follow the instructions at https://github.com/abaplint/cla.

@larshp
larshp / mgf1.abap
Last active April 9, 2024 12:29
Mask generation function in ABAP
METHOD mgf1.
* https://en.wikipedia.org/wiki/Mask_generation_function
DATA lv_counter TYPE i.
DATA lv_sha1 TYPE xstring.
DATA lv_xstr TYPE xstring.
DATA lv_c TYPE x LENGTH 4.
WHILE xstrlen( rv_mask ) < iv_length.