Really handy site, to check the end of life date for different operating systems, frameworks and applications.
Month: April 2025
[Workflow] AC Rule
Recently, I had the task of assigning a workflow decision step to some users that were customized in a Z-Table. Normally I would have done this, by creating a container element “Actors”, a task that calls a method to return these Actors and use these Actors in the decision step. But this time I tried a custom AC Rule for the first time and I must say it was much easier than expected.
To begin, simply create a function module. The function module only needs two table parameters, AC_CONTAINER
and ACTOR_TAB
. They can be copied from RH_GET_ACTORS or GM_GET_RESP_FROM_INTERNAL. There you can also check, how to access the AC_CONTAINER
table, if you need any input values from the WF. In my case, I just had to read the Z-Table and return the result via ACTOR_TAB
.
SELECT * FROM ztable INTO TABLE @DATA(lt_table).
LOOP at lt_table INTO DATA(ls_table).
"you can also check if the provided user exists by using function module 'SUSR_USER_CHECK_EXISTENCE'
APPEND VALUE #( otype = 'US' objid = ls_table-userid ) TO actor_tab.
ENDLOOP.
IF lines( actor_tab) = 0.
RAISE nobody_found.
ENDIF.
Then simply go to tcode PFAC, create a rule, provide the function module and check the flag box at the end.

In the PFAC transaction, you can also simulate the rule resolution.

If everything works fine, add the new created rule to the decision step.

And done. Really straight forward.
[ABAP] Escape URL
DATA(path) = escape( val = 'https://url.com/path/with/a space/in/it'
format = cl_abap_format=>e_url ).
[ABAP] Get Filename and Mimetype from uploaded file
DATA data_tab TYPE solix_tab.
DATA filename TYPE string.
DATA path TYPE string DEFAULT 'C:\Users\path\to\my\file.pdf'.
cl_gui_frontend_services=>gui_upload( EXPORTING filename = path )
filetype = 'BIN'
CHANGING data_tab = data_tab ).
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = path
IMPORTING
stripped_name = filename
EXCEPTIONS
x_error = 1
OTHERS = 2.
DATA(file_extension) = /iwwrk/cl_mgw_workflow_rt_util=>get_extention_from_file_name( filename ).
DATA(mimetype) = /iwwrk/cl_mgw_workflow_rt_util=>get_mime_type_from_extension( file_extension ).
Instead of SO_SPLIT_FILE_AND_PATH
you can also use PC_SPLIT_COMPLETE_FILENAME
.
[Home Assistant] Editor shortcuts
All VS Code shortcuts will also work in Home Assistant. I mostly need the following:
Tab | Move lines to right |
Ctrl + Tab (on Linux Mint it’s Shit + Tab) | Move lines to left |
Ctrl + Alt + Mouse selection | Mark area over multiple lines (works only in YAML editor) |
Ctrl + Shift + K | Delete row |
Alt + Arrow key up or down | Move row(s) up or down |
Alt + Shift + Arrow down | Duplicate selected rows |
Ctrl + Shit + / | Comment line/area |
Also, you can simply expand the window you are working in, by clicking on the window title.

