METHOD adjust_numbers.
LOOP AT mapped-zi_tasks INTO DATA(ls_task)
where %key-taskkey is initial.
READ ENTITY IN LOCAL MODE zi_tasks
ALL FIELDS
WITH VALUE #( ( %pid = ls_task-%pid ) )
RESULT DATA(result).
DATA(project) = result[ 1 ]-project.
SELECT SINGLE MAX(
CAST( right( task_key,
length( task_key )
- instr( task_key, '-' ) )
AS INT4 ) ) AS max_key
FROM zbc_tasks
WHERE project = @project
INTO @DATA(max_key).
DATA(nextKey) = |{ project }-{ max_key + 1 }|.
APPEND VALUE #( %key-taskkey = nextKey
%pid = ls_task-%pid )
TO mapped-zi_tasks.
ENDLOOP.
ENDMETHOD.