Sample Code
Decision
Don't place decision to execute in the subroutine
check not ( s_workdt[] is initial ).
perform get_start_end_date.
form get_start_end_date.
...more processing...
endform.
instead do:
If not ( s_workdt[] is initial ). perform get_start_end_date. endif.