Вы находитесь на странице: 1из 10

DATA lt_appgoals_tmp TYPE STANDARD TABLE OF zappgoals. DATA lt_appgoals TYPE STANDARD TABLE OF zappgoals.

DATA lw_appgoal TYPE zappgoals. DATA lv_lines_g TYPE syindex. DATA lv_lines_b TYPE syindex. DATA lv_cnt TYPE i. DATA lw_return TYPE bal_s_msg. DATA lv_row TYPE HAP_ROW_IID. DATA lt_body_elements_tmp TYPE hap_t_body_elements. DATA lw_body_cell_tmp TYPE hap_s_body_cells. DATA: l_enhancement_type TYPE hap_enhancement_type. DATA: lt_body_elements_add TYPE hap_t_body_elements_add, lt_body_elements_struc_add TYPE hap_t_body_elements_struc_add. SELECT * FROM zappgoals INTO TABLE lt_appgoals WHERE begda LE sy-datum AND endda GE sy-datum. IF sy-subrc = 0. lt_appgoals_tmp[] = lt_appgoals[]. DELETE lt_appgoals_tmp WHERE goal_type ne 'C'. DESCRIBE TABLE lt_appgoals_tmp LINES lv_lines_g. ENDIF. lt_body_elements_tmp[] = pt_body_elements[]. CLEAR: lw_values. READ TABLE lt_values INTO lw_values WITH KEY from = '00000007'. IF sy-subrc = 0. CLEAR lw_body_elements_p. READ TABLE pt_body_elements INTO lw_body_elements_p WITH KEY element_id = lw_values-to. * BINARY SEARCH. IF sy-subrc = 0. CLEAR lw_body_elements_n. READ TABLE pt_body_elements INTO lw_body_elements_n WITH KEY parent = lw_body_elements_p-row_iid. * BINARY SEARCH. IF sy-subrc = 0. CLEAR: lw_appgoal. READ TABLE lt_appgoals_tmp INTO lw_appgoal INDEX 1. IF sy-subrc = 0. CLEAR: LW_BODY_CELL_TMP. LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP

* * * ENDIF.

TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_p-row_iid AND column_iid = '0002'. AND value_text_available = 'X' AND cell_value_availability = 'D' AND cell_value_class = 'M'.

DELETE lt_body_elements_tmp WHERE element_id ne lw_body_elements_n-element_id. DESCRIBE TABLE lt_body_elements_tmp LINES lv_lines_b. CLEAR: lw_appgoal, lv_row, lv_cnt. LOOP AT lt_appgoals_tmp INTO lw_appgoal. lv_cnt = lv_cnt + 1. IF lv_cnt LE lv_lines_b. CLEAR: lw_body_elements_tmp. LOOP AT pt_body_elements INTO lw_body_elements_tmp WHERE row_iid GT lv_row AND element_id eq lw_body_elements_n-element_id. lw_body_elements_tmp-name = lw_appgoal-OBJ_DESC. CLEAR: LW_BODY_CELL_TMP. READ TABLE pt_body_cells INTO lw_body_cell_tmp WITH KEY row_iid = lw_body_elements_tmp-row_iid. * * * IF sy-subrc = 0. LW_BODY_CELL_TMP-value_txt = lw_appgoal-target. LW_BODY_CELL_TMP-value_num = lw_appgoal-target. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_tmp-row_iid AND column_iid = '0003'. * * * ENDIF. MODIFY pt_body_elements FROM lw_body_elements_tmp TRANSPORTING name WHERE row_iid = lw_body_elements_tmp-row_iid. lv_row = lw_body_elements_tmp-row_iid. AND AND AND value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'. value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'.

CLEAR: lw_body_elements_tmp. exit. ENDLOOP. else. refresh: lt_body_elements_add[], lt_body_elements_struc_add. CLEAR: l_enhancement_type, lw_return. CALL FUNCTION 'HRHAP_DOC_BODY_ENHANCE_FREE' EXPORTING row_iid = lw_body_elements_n-parent plan_version = G_PLVAR s_appraisal_id = GS_APPRAISAL_ID s_doc_processing = GS_DOC_PROCESSING t_header_appraiser = GT_HEADER_APPRAISER t_header_appraisee = GT_HEADER_APPRAISEE t_header_part_appraisers = GT_HEADER_P_APPRAISER t_header_others = GT_HEADER_OTHERS s_header_dates = GS_HEADER_DATES s_header_status = GS_HEADER_STATUS t_body_elements = GT_BODY_ELEMENTS trusted_call = 'X' IMPORTING enhancement_type = l_enhancement_type t_body_elements_add = lt_body_elements_add t_body_elements_struc_add = lt_body_elements_struc_add s_return = lw_return. IF lw_return-msgty = 'E'. ELSE. CALL FUNCTION 'HRHAP_DOC_BODY_ENHANCE' EXPORTING row_iid = lw_body_elements_n-parent plan_version = G_PLVAR s_appraisal_id = GS_APPRAISAL_ID t_header_appraiser = GT_HEADER_APPRAISER t_header_appraisee = GT_HEADER_APPRAISEE t_header_part_appraisers = GT_HEADER_P_APPRAISER t_header_others = GT_HEADER_OTHERS s_header_dates = GS_HEADER_DATES s_header_status = GS_HEADER_STATUS t_body_columns = GT_BODY_COLUMNS free_enhancement = 'X' trusted_call = 'X' enhancement_type = l_enhancement_type t_body_elements_add = lt_body_elements_add t_body_elements_struc_add = lt_body_elements_struc_add IMPORTING s_return = lw_return CHANGING s_doc_processing = GS_DOC_PROCESSING t_body_elements = GT_BODY_ELEMENTS t_body_element_descr = GT_BODY_ELEMENT_DESCR t_body_element_buttons = GT_BODY_ELEMENT_BUTTONS t_body_cells = GT_BODY_CELLS t_body_cell_notes = GT_BODY_CELL_NOTES t_body_cell_val_values = GT_BODY_CELL_VAL_VALUES

t_body_cell_val_ranges t_body_cell_val_c_like t_body_cell_val_descr IF lw_return-msgty = 'E'. ELSE.

= GT_BODY_CELL_VAL_RANGES = GT_BODY_CELL_VAL_C_LIKE = GT_BODY_CELL_VAL_DESCR.

CLEAR: lw_body_elements_tmp. LOOP AT pt_body_elements INTO lw_body_elements_tmp WHERE row_iid GT lv_row AND element_id eq lw_body_elements_n-element_id. lw_body_elements_tmp-name = lw_appgoal-OBJ_DESC. CLEAR: LW_BODY_CELL_TMP. READ TABLE pt_body_cells INTO lw_body_cell_tmp WITH KEY row_iid = lw_body_elements_tmp-row_iid. * value_text_available = 'X' * cell_value_availability = 'X' * cell_value_class = 'M'. IF sy-subrc = 0. LW_BODY_CELL_TMP-value_txt = lw_appgoal-target. LW_BODY_CELL_TMP-value_num = lw_appgoal-target. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_tmp-row_iid AND column_iid = '0003'. * * * ENDIF. MODIFY pt_body_elements FROM lw_body_elements_tmp TRANSPORTING name WHERE row_iid = lw_body_elements_tmp-row_iid. lv_row = lw_body_elements_tmp-row_iid. CLEAR: lw_body_elements_tmp. exit. ENDLOOP. ENDIF. endif. ENDIF. ENDLOOP. endif. endif. AND AND AND value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'.

*CLEAR: lw_body_elements_tmp. *LOOP AT lt_body_elements_tmp INTO lw_body_elements_tmp. * *

*ENDLOOP. ENDIF. CLEAR: lw_values. READ TABLE lt_values INTO lw_values WITH KEY from = '00000008'. IF sy-subrc = 0. CLEAR lw_body_elements_p. READ TABLE pt_body_elements INTO lw_body_elements_p WITH KEY element_id = lw_values-to. * BINARY SEARCH. IF sy-subrc = 0. CLEAR: lw_appgoal. READ TABLE lt_appgoals INTO lw_appgoal WITH KEY goal_type = 'O'. IF sy-subrc = 0. CLEAR: LW_BODY_CELL_TMP. LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_p-row_iid * AND value_text_available = 'X' AND column_iid = '0002'. * AND cell_value_availability = 'X' * AND cell_value_class = 'M'. * endif. endif. endif. CLEAR: lw_values. READ TABLE lt_values INTO lw_values WITH KEY from = '00000009'. IF sy-subrc = 0. CLEAR lw_body_elements_p. READ TABLE pt_body_elements INTO lw_body_elements_p WITH KEY element_id = lw_values-to. * BINARY SEARCH. IF sy-subrc = 0. CLEAR: lw_appgoal. READ TABLE lt_appgoals INTO lw_appgoal WITH KEY goal_type = 'P' goal_subtype = '01'. IF sy-subrc = 0. CLEAR: LW_BODY_CELL_TMP.

LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_p-row_iid AND column_iid = '0002'. * * * endif. endif. endif. CLEAR: lw_values. READ TABLE lt_values INTO lw_values WITH KEY from = '00000010'. IF sy-subrc = 0. CLEAR lw_body_elements_p. READ TABLE pt_body_elements INTO lw_body_elements_p WITH KEY element_id = lw_values-to. * BINARY SEARCH. IF sy-subrc = 0. CLEAR: lw_appgoal. READ TABLE lt_appgoals INTO lw_appgoal WITH KEY goal_type = 'P' goal_subtype = '02' obj_code = '0000000000'. IF sy-subrc = 0. CLEAR: LW_BODY_CELL_TMP. LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_p-row_iid AND column_iid = '0002'. * * * endif. CLEAR lw_body_elements_n. READ TABLE pt_body_elements INTO lw_body_elements_n AND AND AND value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'. AND AND AND value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'.

* IF sy-subrc = 0.

WITH KEY parent = lw_body_elements_p-row_iid. BINARY SEARCH.

refresh: lt_appgoals_tmp[]. lt_appgoals_tmp[] = lt_appgoals[]. delete lt_appgoals_tmp WHERE ( goal_type ne 'P' OR goal_subtype ne '02' ) or obj_code eq '0000000000'. refresh: lt_body_elements_tmp[]. lt_body_elements_tmp[] = pt_body_elements[]. DELETE lt_body_elements_tmp WHERE element_id ne lw_body_elements_n-element_id. CLEAR: lv_lines_b. DESCRIBE TABLE lt_body_elements_tmp LINES lv_lines_b. CLEAR: lw_appgoal, lv_row, lv_cnt. LOOP AT lt_appgoals_tmp INTO lw_appgoal. lv_cnt = lv_cnt + 1. IF lv_cnt LE lv_lines_b. CLEAR: lw_body_elements_tmp. LOOP AT pt_body_elements INTO lw_body_elements_tmp WHERE row_iid GT lv_row AND element_id eq lw_body_elements_n-element_id. lw_body_elements_tmp-name = lw_appgoal-OBJ_DESC. CLEAR: LW_BODY_CELL_TMP. READ TABLE pt_body_cells INTO lw_body_cell_tmp WITH KEY row_iid = lw_body_elements_tmp-row_iid. * value_text_available = 'X' * cell_value_availability = 'X' * cell_value_class = 'M'. IF sy-subrc = 0. LW_BODY_CELL_TMP-value_txt = lw_appgoal-target. LW_BODY_CELL_TMP-value_num = lw_appgoal-target. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_tmp-row_iid AND column_iid = '0003'. CLEAR: LW_BODY_CELL_TMP. LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value

* * * ENDIF.

WHERE AND AND AND AND

row_iid = lw_body_elements_tmp-row_iid column_iid = '0002'. value_text_available = 'X' cell_value_availability = 'X' cell_value_class = 'M'.

MODIFY pt_body_elements FROM lw_body_elements_tmp TRANSPORTING name WHERE row_iid = lw_body_elements_tmp-row_iid. lv_row = lw_body_elements_tmp-row_iid. CLEAR: lw_body_elements_tmp. exit. ENDLOOP. else. refresh: lt_body_elements_add[], lt_body_elements_struc_add. CLEAR: l_enhancement_type, lw_return. CALL FUNCTION 'HRHAP_DOC_BODY_ENHANCE_FREE' EXPORTING row_iid = lw_body_elements_n-parent plan_version = G_PLVAR s_appraisal_id = GS_APPRAISAL_ID s_doc_processing = GS_DOC_PROCESSING t_header_appraiser = GT_HEADER_APPRAISER t_header_appraisee = GT_HEADER_APPRAISEE t_header_part_appraisers = GT_HEADER_P_APPRAISER t_header_others = GT_HEADER_OTHERS s_header_dates = GS_HEADER_DATES s_header_status = GS_HEADER_STATUS t_body_elements = GT_BODY_ELEMENTS trusted_call = 'X' IMPORTING enhancement_type = l_enhancement_type t_body_elements_add = lt_body_elements_add t_body_elements_struc_add = lt_body_elements_struc_add s_return = lw_return. IF lw_return-msgty = 'E'. ELSE. CALL FUNCTION 'HRHAP_DOC_BODY_ENHANCE' EXPORTING row_iid = lw_body_elements_n-parent plan_version = G_PLVAR s_appraisal_id = GS_APPRAISAL_ID t_header_appraiser = GT_HEADER_APPRAISER t_header_appraisee = GT_HEADER_APPRAISEE t_header_part_appraisers = GT_HEADER_P_APPRAISER t_header_others = GT_HEADER_OTHERS s_header_dates = GS_HEADER_DATES s_header_status = GS_HEADER_STATUS t_body_columns = GT_BODY_COLUMNS free_enhancement = 'X' trusted_call = 'X' enhancement_type = l_enhancement_type

t_body_elements_add t_body_elements_struc_add IMPORTING s_return CHANGING s_doc_processing t_body_elements t_body_element_descr t_body_element_buttons t_body_cells t_body_cell_notes t_body_cell_val_values t_body_cell_val_ranges t_body_cell_val_c_like t_body_cell_val_descr IF lw_return-msgty = 'E'. ELSE.

= lt_body_elements_add = lt_body_elements_struc_add = lw_return = = = = = = = = = = GS_DOC_PROCESSING GT_BODY_ELEMENTS GT_BODY_ELEMENT_DESCR GT_BODY_ELEMENT_BUTTONS GT_BODY_CELLS GT_BODY_CELL_NOTES GT_BODY_CELL_VAL_VALUES GT_BODY_CELL_VAL_RANGES GT_BODY_CELL_VAL_C_LIKE GT_BODY_CELL_VAL_DESCR.

CLEAR: lw_body_elements_tmp. LOOP AT pt_body_elements INTO lw_body_elements_tmp WHERE row_iid GT lv_row AND element_id eq lw_body_elements_n-element_id. lw_body_elements_tmp-name = lw_appgoal-OBJ_DESC. CLEAR: LW_BODY_CELL_TMP. READ TABLE pt_body_cells INTO lw_body_cell_tmp WITH KEY row_iid = lw_body_elements_tmp-row_iid. * value_text_available = 'X' * cell_value_availability = 'X' * cell_value_class = 'M'. IF sy-subrc = 0. LW_BODY_CELL_TMP-value_txt = lw_appgoal-target. LW_BODY_CELL_TMP-value_num = lw_appgoal-target. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_tmp-row_iid AND column_iid = '0003'. CLEAR: LW_BODY_CELL_TMP. LW_BODY_CELL_TMP-value_txt = lw_appgoal-weight. LW_BODY_CELL_TMP-value_num = lw_appgoal-weight. clear: LW_BODY_CELL_TMP-no_value. MODIFY pt_BODY_CELLs FROM LW_BODY_CELL_TMP TRANSPORTING value_txt value_num no_value WHERE row_iid = lw_body_elements_tmp-row_iid AND column_iid = '0002'. * * * AND AND AND value_text_available = 'X' cell_value_availability = 'X' cell_input_note_5022 = 'X'

* ENDIF.

AND

cell_value_class = 'M'.

MODIFY pt_body_elements FROM lw_body_elements_tmp TRANSPORTING name WHERE row_iid = lw_body_elements_tmp-row_iid. lv_row = lw_body_elements_tmp-row_iid. CLEAR: lw_body_elements_tmp. exit. ENDLOOP. ENDIF. endif. ENDIF. ENDLOOP. endif. endif. endif.

Вам также может понравиться