DATA ls_prte TYPE prteb.
DATA lv_index TYPE sy-tabix.
CALL FUNCTION 'CJDT_PRTE_GET'
EXPORTING
proj_imp = proj-pspnr
prps_imp = prps-pspnr
IMPORTING
prte_exp = ls_prte
index_exp = lv_index.
IF lv_index IS INITIAL.
CALL FUNCTION 'CJDT_TRTAB_CREATE'
EXPORTING
projwa = proj
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'CJDT_PRTE_GET'
EXPORTING
proj_imp = proj-pspnr
prps_imp = prps-pspnr
IMPORTING
prte_exp = ls_prte
index_exp = lv_index.
ENDIF.
CHECK lv_index IS NOT INITIAL.
CHECK ls_prte-pstrt NE proj-plfaz OR
ls_prte-pende NE proj-plsez OR
ls_prte-estrt NE proj-sprog OR
ls_prte-eende NE proj-eprog.
ls_prte-pstrt = proj-plfaz.
ls_prte-pende = proj-plsez.
ls_prte-estrt = proj-sprog.
ls_prte-eende = proj-eprog.
CALL FUNCTION 'CJDT_PRTE_MODIFY'
EXPORTING
index_imp = lv_index
prte_imp = ls_prte
EXCEPTIONS
OTHERS = 1.
* check and save dates
CALL FUNCTION 'CJTR_POST_DATES'
EXCEPTIONS
sched_wrong = 1
check_top_down = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.