on 07-17-2014 6:23 AM
Hi All
We have the download upload functionality of appraisal template in PDF by offline layout setting in phap_catalog_pa. My query is can the upload and download of the template can be done in excel also. Our requirement is to download the appraisal template as configured in phap_catalog_pa in excel and then uploading back the same through portal. Please suggest if this can be done and how to proceed further.
Thanks
Hi yury
Thanks a lot. Your blog is very helpful. My major concern is uploading dynamic fields which gets generated at run time . Let me know if you find any solution for the same.
Thanks
Smriti
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have found a solution. FM HRHAP_DOC_BODY_ENHANCE
In this example the program add two dynamic elements for qualification.
REPORT ZYS_APR_UPLOAD_DYN.
DATA: wa_prepare TYPE zys_upload,
g_template_id TYPE hap_template_id,
g_header_defaulting TYPE flag,
gs_return TYPE bal_s_msg,
gs_menu TYPE hap_s_menu, "for status
gs_appraisal_id TYPE hap_s_appraisal_id,
gs_doc_processing TYPE hap_s_doc_processing,
gs_header_texts TYPE hap_s_header_texts,
gs_header_status TYPE hap_s_header_status,
gs_header_dates TYPE hap_s_header_dates,
gt_header_add_data TYPE hap_t_header_add_data,
gs_header_display TYPE hap_s_header_display,
gt_header_appraiser TYPE hap_t_header_appraiser ,
gt_header_appraisee TYPE hap_t_header_appraisee ,
gt_header_p_appraiser TYPE hap_t_header_part_appraisers ,
gt_header_others TYPE hap_t_header_others,
gt_buttons TYPE hap_t_buttons,
gt_body_columns TYPE hap_t_body_columns,
gs_body_columns LIKE LINE of gt_body_columns,
gt_body_elements TYPE hap_t_body_elements,
gs_body_elements LIKE LINE of gt_body_elements,
gt_body_element_descr TYPE hap_t_body_element_descr,
gt_body_element_buttons TYPE hap_t_body_element_buttons,
gt_body_cells TYPE hap_t_body_cells,
gs_body_cells like line of gt_body_cells,
gt_body_cell_val_values TYPE hap_t_body_cell_val_values,
gt_body_cell_val_ranges TYPE hap_t_body_cell_val_ranges,
gt_body_cell_val_c_like TYPE hap_t_body_cell_val_c_like,
gt_body_cell_val_descr TYPE hap_t_body_cell_val_descr,
gt_body_cell_notes TYPE hap_t_body_cell_notes,
ls_header_appraiser TYPE hap_s_header_appraiser,
ls_header_appraisee TYPE hap_s_header_appraisee.
DATA: COUNTER(5) type n VALUE '00003',
lv_template_id TYPE objektid,
date type sy-datum,
lv_pernr TYPE pernr_d,
s_return TYPE bal_s_msg,
lt_status_notes TYPE hap_t_status_note,
lv_error TYPE flag,
ls_wd_return TYPE bal_s_msg,
ET_BODY_ELEMENTS_ADD type HAP_T_BODY_ELEMENTS_ADD,
wa_BODY_ELEMENTS_ADD like line of ET_BODY_ELEMENTS_ADD.
START-OF-SELECTION.
gs_header_dates-ap_start_date = '01.01.2014'.
"endda
gs_header_dates-ap_end_date = '31.12.2014'.
gs_header_dates-ap_date_set = '31.12.2014'.
"APPRAISER
FREE gt_header_appraiser.
ls_header_appraiser-plan_version = '01'.
ls_header_appraiser-type = 'P'.
lv_pernr = '1000800'."wa_prepare-value.
ls_header_appraiser-id = lv_pernr.
APPEND ls_header_appraiser TO gt_header_appraiser .
"APPRAISEE
FREE gt_header_appraisee.
ls_header_appraisee-plan_version = '01'.
ls_header_appraisee-type = 'P'.
lv_pernr = '1000800'."wa_prepare-value.
ls_header_appraisee-id = lv_pernr.
APPEND ls_header_appraisee TO gt_header_appraisee .
wa_BODY_ELEMENTS_ADD-NEW_ELEMENT_TYPE = 'Q'.
wa_BODY_ELEMENTS_ADD-NEW_ELEMENT_ID = '50000392'.
APPEND wa_BODY_ELEMENTS_ADD to et_BODY_ELEMENTS_ADD.
wa_BODY_ELEMENTS_ADD-NEW_ELEMENT_ID = '50000399'.
APPEND wa_BODY_ELEMENTS_ADD to et_BODY_ELEMENTS_ADD.
CALL FUNCTION 'HRHAP_DOC_BODY_ENHANCE'
EXPORTING
row_iid = '0001'"wd_comp_controller->enhance_row_iid
plan_version = '01'
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 = ' '
trusted_call = 'X'
enhancement_type = ' '
t_body_elements_add = et_body_elements_add
* T_BODY_ELEMENTS_STRUC_ADD =
IMPORTING
s_return = ls_wd_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 = gt_body_cell_val_ranges
t_body_cell_val_c_like = gt_body_cell_val_c_like
t_body_cell_val_descr = gt_body_cell_val_descr.
"Saving document
CALL FUNCTION 'HRHAP_DOC_UPDATE_BODY_AND_SAVE'
EXPORTING
plan_version = '01'
IMPORTING
s_return = s_return
CHANGING
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_texts = gs_header_texts
s_header_dates = gs_header_dates
s_header_status = gs_header_status
s_header_display = gs_header_display
t_body_columns = gt_body_columns
t_body_elements = gt_body_elements
t_body_cells = gt_body_cells[]
t_body_cell_notes = gt_body_cell_notes
t_status_notes = lt_status_notes.
IF s_return IS NOT INITIAL .
WRITE: / s_return-msgid , s_return-msgty ,s_return-msgno ,s_return-msgv1, s_return-msgv2, s_return-msgv3 .
ENDIF.
counter = counter + 1.
Hi Yury
I have few dynamic fields in the template , for example , training and qualification catalog , which gets open up after clicking on add button . Can that be build in the excel as well.
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi.
You have to create a report which reads all fields of your appraisal template: You can do it e.g with function module HRHAP_DOCUMENT_GET_DETAIL ( all dynamic fields will be included ) . After that this report has to create a excel. There are a view ways to create excel from abap...PLease search in scn to find the way which fits best for you.
best regards
Martin Hastik
You need to develop this feature.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
91 | |
8 | |
7 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.