REPORT zctreatment.
INCLUDE zctreatment_top.
START-OF-SELECTION.
DATA: lwa_p1000 TYPE hrp1000,
lwa_p0001 TYPE pa0001,
lv_msg TYPE string,
gv_stop TYPE char1.
* Campaign validity check
SELECT SINGLE * FROM zpftcamp_head INTO gwa_camp_head WHERE campaign = s_campid-low AND process = 'HP' AND camp_begda LE sy-datum AND camp_endda GE sy-datum.
IF sy-subrc NE 0.
MESSAGE ID '00' TYPE 'I' NUMBER 2.
EXIT.
ENDIF.
* Employee number validity check.
CLEAR: lv_msg, lwa_p1000.
LOOP AT s_pernr.
SELECT SINGLE * FROM pa0001 INTO lwa_p0001 WHERE pernr = s_pernr-low AND begda LE sy-datum AND endda GE sy-datum.
IF sy-subrc NE 0.
MESSAGE ID 'LR' TYPE 'I' NUMBER 22 WITH s_pernr-low.
gv_stop = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF gv_stop EQ 'X'.
CLEAR gv_stop.
EXIT.
ENDIF.
* Brach validity check
CLEAR: lv_msg, lwa_p1000.
LOOP AT s_branch.
SELECT SINGLE * FROM hrp1000 INTO lwa_p1000 WHERE plvar = '01' AND otype = '9Y' AND objid = s_branch-low AND begda LE sy-datum AND endda GE sy-datum.
IF sy-subrc NE 0.
CONCATENATE text-031 s_branch-low text-030 INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
gv_stop = 'X'.
ENDIF.
ENDLOOP.
IF gv_stop EQ 'X'.
CLEAR gv_stop.
EXIT.
ENDIF.
* Organizational Unit check.
CLEAR: lv_msg, lwa_p1000.
LOOP AT s_ou.
SELECT SINGLE * FROM hrp1000 INTO lwa_p1000 WHERE plvar = '01' AND otype = 'O' AND objid = s_ou-low AND begda LE sy-datum AND endda GE sy-datum.
IF sy-subrc NE 0.
CONCATENATE text-029 s_ou-low text-030 INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
gv_stop = 'X'.
ENDIF.
ENDLOOP.
IF gv_stop EQ 'X'.
CLEAR gv_stop.
EXIT.
ENDIF.
DATA: gv_answer.
IF ck_test IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Confirmation'
text_question = text-025
text_button_1 = 'Yes'(026)
* ICON_BUTTON_1 = ' '
text_button_2 = 'No'(027)
* ICON_BUTTON_2 = ' '
default_button = '2'
display_cancel_button = ' '
IMPORTING
answer = gv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
IF gv_answer EQ '2'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
REFRESH gt_camp_head[].
SELECT * FROM zpftcamp_head INTO TABLE gt_camp_head WHERE campaign IN s_campid AND camp_begda LE sy-datum AND camp_endda GE sy-datum.
REFRESH: gt_1001_ou[],
gt_1001_emp[].
IF NOT s_branch[] IS INITIAL.
* Get all Org Units based on branch.
SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_ou
WHERE plvar = '01'
AND otype = '9Y'
AND objid IN s_branch
AND rsign = 'B'
AND relat = 'Z96'
AND sclas = 'O'
AND sobid IN s_ou
AND begda LE sy-datum
AND endda GE sy-datum.
IF sy-subrc EQ 0.
* Filter Org Units based on the selection criteria.
SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_emp
FOR ALL ENTRIES IN gt_1001_ou
WHERE plvar = '01'
AND otype = 'P'
AND rsign = 'B'
AND relat = 'Z97'
AND sclas = 'O'
AND sobid = gt_1001_ou-sobid
AND begda LE sy-datum
AND endda GE sy-datum.
IF sy-subrc EQ 0.
LOOP AT gt_1001_emp INTO gwa_1001_emp.
READ TABLE gt_1001_ou INTO gwa_1001_ou WITH KEY sobid = gwa_1001_emp-sobid.
IF sy-subrc EQ 0.
gwa_oubr-emp = gwa_1001_emp-objid.
gwa_oubr-br = gwa_1001_ou-objid.
gwa_oubr-ou = gwa_1001_emp-sobid.
APPEND gwa_oubr TO gt_oubr.
CLEAR gwa_oubr.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ELSE.
* if only Org Unit it seleceted.
IF NOT s_ou IS INITIAL.
* Filter Org Units based on the selection criteria.
REFRESH: gt_1001_emp[],
gt_oubr.
SELECT objid sobid FROM hrp1001 INTO CORRESPONDING FIELDS OF TABLE gt_1001_emp
WHERE plvar = '01'
AND otype = 'P'
AND rsign = 'B'
AND relat = 'Z97'
AND sclas = 'O'
AND sobid IN s_ou
AND begda LE sy-datum
AND endda GE sy-datum.
IF sy-subrc EQ 0.
LOOP AT gt_1001_emp INTO gwa_1001_emp.
gwa_oubr-emp = gwa_1001_emp-objid.
gwa_oubr-ou = gwa_1001_emp-sobid.
APPEND gwa_oubr TO gt_oubr.
CLEAR gwa_oubr.
ENDLOOP.
ENDIF.
ELSE.
* No branch and No orgunit
ENDIF.
ENDIF.
REFRESH: r_employee[].
LOOP AT gt_oubr INTO gwa_oubr.
wa_emp-sign = 'I'.
wa_emp-option = 'EQ'.
wa_emp-low = gwa_oubr-emp.
APPEND wa_emp TO r_employee.
CLEAR wa_emp.
ENDLOOP.
REFRESH: gt_9020[],
gt_9021[],
gt_all[].
DATA: lt_1001 TYPE TABLE OF p1001,
ls_1001 TYPE p1001,
lv_objid TYPE plog-objid.
IF rb_all EQ 'X' OR rb_hpgr EQ 'X'.
SELECT * FROM pa9020 INTO TABLE gt_9020 WHERE pernr IN s_pernr AND cmpgn IN s_campid AND begda LE sy-datum AND endda GE sy-datum.
IF sy-subrc EQ 0.
LOOP AT gt_9020 INTO gwa_9020.
IF gwa_9020-pernr IN r_employee.
* Get Campaign details.p
READ TABLE gt_camp_head INTO gwa_camp_head WITH KEY campaign = gwa_9020-cmpgn.
IF sy-subrc EQ 0.
IF gwa_9020-endda NE gwa_camp_head-camp_endda.
* Move record to output table.
* pernr
gwa_all-pernr = gwa_9020-pernr.
* Read IT0002 data.
REFRESH gt_0002[].
CLEAR gwa_0002.
CALL FUNCTION 'RH_READ_INFTY'
EXPORTING
authority = 'DISP'
plvar = '01'
otype = 'P'
objid = gwa_9020-pernr
infty = '0002'
begda = sy-datum
endda = sy-datum
TABLES
innnn = gt_0002
EXCEPTIONS
all_infty_with_subty = 1
nothing_found = 2
no_objects = 3
wrong_condition = 4
wrong_parameters = 5
OTHERS = 6.
READ TABLE gt_0002 INTO gwa_0002 INDEX 1.
IF sy-subrc EQ 0.
* name2
gwa_all-vorna = gwa_0002-vorna.
* nachn
gwa_all-nachn = gwa_0002-nachn.
ENDIF.
READ TABLE gt_oubr INTO gwa_oubr WITH KEY emp = gwa_9020-pernr. "#EC WARNOK
IF sy-subrc EQ 0.
* branch
gwa_all-branch = gwa_oubr-br.
* org_unit
gwa_all-org_unit = gwa_oubr-ou.
ELSE.
* No branch and No OU selected.
* Get OU
CLEAR lv_objid.
lv_objid = gwa_9020-pernr.
CALL FUNCTION 'RH_READ_INFTY_1001'
EXPORTING
authority = 'DISP'
with_stru_auth = 'X'
plvar = '01'
otype = 'P'
objid = lv_objid
istat = '1'
subty = 'BZ97'
begda = sy-datum
endda = sy-datum
TABLES
i1001 = lt_1001
* OBJECTS =
EXCEPTIONS
nothing_found = 1
wrong_condition = 2
wrong_parameters = 3
OTHERS = 4.
IF sy-subrc EQ 0.
READ TABLE lt_1001 INTO ls_1001 WITH KEY otype = 'P' objid = lv_objid sclas = 'O'.
IF sy-subrc EQ 0.
gwa_all-org_unit = ls_1001-sobid.
* Get Branch
CLEAR lv_objid.
lv_objid = ls_1001-sobid.
CALL FUNCTION 'RH_READ_INFTY_1001'
EXPORTING
authority = 'DISP'
with_stru_auth = 'X'
plvar = '01'
otype = 'O'
objid = lv_objid
istat = '1'
subty = 'AZ96'
begda = sy-datum
endda = sy-datum
TABLES
i1001 = lt_1001
* OBJECTS =
EXCEPTIONS
nothing_found = 1
wrong_condition = 2
wrong_parameters = 3
OTHERS = 4.
IF sy-subrc EQ 0.
READ TABLE lt_1001 INTO ls_1001 WITH KEY otype = 'O' objid = lv_objid sclas = '9Y'.
IF sy-subrc EQ 0.
gwa_all-branch = ls_1001-sobid.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* cmpgn
gwa_all-cmpgn = gwa_9020-cmpgn.
* camp_endda
gwa_all-camp_endda = gwa_camp_head-camp_endda.
* oldgr_endda
gwa_all-oldgr_endda = gwa_9020-endda.
* newgr_endda
gwa_all-newgr_endda = gwa_camp_head-camp_endda.
* oldbr_endda
* newbr_endda
* comment(100)
*Move campaign enddate to 9020 enddate
CLEAR: gv_old_endda,
gwa_p9020.
gv_old_endda = gwa_9020-endda.
MOVE-CORRESPONDING gwa_9020 TO gwa_p9020.
gwa_p9020-infty = '9020'.
gwa_p9020-endda = gwa_camp_head-camp_endda.
gwa_p9020-aedtm = sy-datum.
gwa_p9020-uname = sy-uname.
* Update Infotype 9020.
IF ck_test IS INITIAL.
* CLEAR gv_nocommit.
* ELSE.
* gv_nocommit = 'X'.
* ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = gwa_p9020-pernr.
CLEAR: gwa_return.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '9020'
number = gwa_p9020-pernr
objectid = gwa_p9020-objps
validityend = gwa_9020-endda
validitybegin = gwa_p9020-begda
recordnumber = gwa_p9020-seqnr
record = gwa_p9020
operation = 'MOD'
dialog_mode = '0'
* nocommit = gv_nocommit
IMPORTING
return = gwa_return.
IF gwa_return-number = '000' OR gwa_return-type = 'S'.
IF ck_test IS INITIAL.
gwa_all-status = '@08@'.
gwa_all-comment = 'End date modification could be performed'(019).
ELSE.
* gwa_all-status = '@09@'.
* gwa_all-comment = 'End date modification could be performed'(019).
ENDIF.
ELSE.
IF gwa_return-type = 'E'.
gwa_all-status = '@0A@'.
CONCATENATE text-020 gwa_p9020-pernr text-021 INTO gwa_all-comment SEPARATED BY space.
ENDIF.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING
number = gwa_p9020-pernr.
ENDIF.
IF NOT ck_test IS INITIAL.
gwa_all-status = '@09@'.
gwa_all-comment = 'End date modification could be performed'(019).
ENDIF.
APPEND gwa_all TO gt_all.
CLEAR gwa_all.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
IF rb_all EQ 'X' OR rb_hpbr EQ 'X'.
SELECT * FROM pa9021 INTO TABLE gt_9021 WHERE pernr IN s_pernr AND cmpgn IN s_campid AND begda LE sy-datum AND endda GE sy-datum.
IF sy-subrc EQ 0.
LOOP AT gt_9021 INTO gwa_9021.
IF gwa_9021-pernr IN r_employee.
* Get Campaign details.p
READ TABLE gt_camp_head INTO gwa_camp_head WITH KEY campaign = gwa_9021-cmpgn.
IF sy-subrc EQ 0.
IF gwa_9021-endda NE gwa_camp_head-camp_endda.
* Move record to output table.
* pernr
gwa_all-pernr = gwa_9021-pernr.
* Read IT0002 data.
REFRESH gt_0002[].
CLEAR gwa_0002.
CALL FUNCTION 'RH_READ_INFTY'
EXPORTING
authority = 'DISP'
plvar = '01'
otype = 'P'
objid = gwa_9020-pernr
infty = '0002'
begda = sy-datum
endda = sy-datum
TABLES
innnn = gt_0002
EXCEPTIONS
all_infty_with_subty = 1
nothing_found = 2
no_objects = 3
wrong_condition = 4
wrong_parameters = 5
OTHERS = 6.
READ TABLE gt_0002 INTO gwa_0002 INDEX 1.
IF sy-subrc EQ 0.
* name2
gwa_all-vorna = gwa_0002-vorna.
* nachn
gwa_all-nachn = gwa_0002-nachn.
ENDIF.
READ TABLE gt_oubr INTO gwa_oubr WITH KEY emp = gwa_9021-pernr. "#EC WARNOK
IF sy-subrc EQ 0.
* branch
gwa_all-branch = gwa_oubr-br.
* org_unit
gwa_all-org_unit = gwa_oubr-ou.
ENDIF.
* cmpgn
gwa_all-cmpgn = gwa_9021-cmpgn.
* camp_endda
gwa_all-camp_endda = gwa_camp_head-camp_endda.
* oldgr_endda
* newgr_endda
* oldbr_endda
gwa_all-oldbr_endda = gwa_9021-endda.
* newbr_endda
gwa_all-newbr_endda = gwa_camp_head-camp_endda.
* comment(100)
*Move campaign enddate to 9021 enddate
CLEAR: gv_old_endda,
gwa_p9021.
gv_old_endda = gwa_9021-endda.
MOVE-CORRESPONDING gwa_9021 TO gwa_p9021.
gwa_p9021-infty = '9021'.
gwa_p9021-endda = gwa_camp_head-camp_endda.
gwa_p9021-aedtm = sy-datum.
gwa_p9021-uname = sy-uname.
* *************
* Update Infotype 9021.
IF ck_test IS INITIAL.
* CLEAR gv_nocommit.
* ELSE.
* gv_nocommit = 'X'.
* ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = gwa_9021-pernr.
CLEAR: gwa_return.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '9021'
number = gwa_p9021-pernr
objectid = gwa_p9021-objps
validityend = gwa_9021-endda
validitybegin = gwa_p9021-begda
recordnumber = gwa_p9021-seqnr
record = gwa_p9021
operation = 'MOD'
dialog_mode = '0'
* nocommit = gv_nocommit
IMPORTING
return = gwa_return.
IF gwa_return-number = '000' OR gwa_return-type = 'S'.
IF ck_test IS INITIAL.
gwa_all-status = '@08@'.
gwa_all-comment = 'End date modification could be performed'(019).
ELSE.
gwa_all-status = '@09@'.
gwa_all-comment = 'End date modification could be performed'(019).
ENDIF.
ELSE.
IF gwa_return-type = 'E'.
gwa_all-status = '@0A@'.
CONCATENATE text-020 gwa_p9020-pernr text-021 INTO gwa_all-comment SEPARATED BY space.
ENDIF.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING
number = gwa_9021-pernr.
ENDIF.
IF NOT ck_test IS INITIAL.
gwa_all-status = '@09@'.
gwa_all-comment = 'End date modification could be performed'(019).
ENDIF.
APPEND gwa_all TO gt_all.
CLEAR gwa_all.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
IF gt_all IS INITIAL.
MESSAGE text-028 TYPE 'I'.
EXIT.
ENDIF.
END-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module ALV_GRID_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE alv_grid_0100 OUTPUT.
PERFORM free.
IF go_custom_container_100 IS INITIAL.
CREATE OBJECT go_custom_container_100
EXPORTING
container_name = 'GV_CONTAINER'.
ENDIF.
CLEAR go_grid_100.
IF go_grid_100 IS INITIAL.
CREATE OBJECT go_grid_100
EXPORTING
i_parent = go_custom_container_100.
ENDIF.
PERFORM build_fieldcat_100.
IF rb_all EQ 'X'.
gs_layout_100-grid_title = 'Group Potential and Branch Potential Updation'(022)."'PA9020 and PA9021 Updation'.
ELSEIF rb_hpgr EQ 'X'.
gs_layout_100-grid_title = 'Group Potential Updation'(023)."'PA9020 Updation'.
ELSEIF rb_hpbr EQ 'X'.
gs_layout_100-grid_title = 'Branch Potential Updation'(024)."'PA9021 Updation'.
ENDIF.
gs_layout_100-cwidth_opt = 'X'.
PERFORM outputlog_alv_disp CHANGING gt_all.
ENDMODULE. " ALV_GRID_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form FREE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM free .
IF go_grid_100 IS NOT INITIAL.
CALL METHOD go_grid_100->free
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
FREE go_grid_100.
ENDIF.
ENDIF.
IF go_custom_container_100 IS NOT INITIAL.
CALL METHOD go_custom_container_100->free
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
FREE go_custom_container_100.
ENDIF.
ENDIF.
ENDFORM. " FREE
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT_100
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_fieldcat_100 .
DATA:ls_fcat TYPE lvc_s_fcat.
REFRESH: gt_fieldcat_100[].
* IF rb_all EQ 'X'. "Fieldcatlog for All
ls_fcat-col_pos = 1.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'STATUS'.
ls_fcat-coltext = 'Status'.
ls_fcat-outputlen = 7.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 2.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'PERNR'.
ls_fcat-coltext = 'Personal Number'(006).
ls_fcat-outputlen = 17.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 3.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'VORNA'.
ls_fcat-coltext = 'First Name'(007).
ls_fcat-outputlen = 25.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 4.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'NACHN'.
ls_fcat-coltext = 'Last name'(008).
ls_fcat-outputlen = 25.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 5.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'BRANCH'.
ls_fcat-coltext = 'Branch'(009).
ls_fcat-outputlen = 10.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 6.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'ORG_UNIT'.
ls_fcat-coltext = 'Organisational unit'(010).
ls_fcat-outputlen = 26.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 7.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'CMPGN'.
ls_fcat-coltext = 'Campaign Id selected'(011).
ls_fcat-outputlen = 24.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 8.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'CAMP_ENDDA'.
ls_fcat-coltext = 'End date campaign'(012).
ls_fcat-outputlen = 24.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 9.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'OLDGR_ENDDA'.
ls_fcat-coltext = 'Old end date HP Group'(013).
ls_fcat-outputlen = 33.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 10.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'NEWGR_ENDDA'.
ls_fcat-coltext = 'New end date HP Group'(014).
ls_fcat-outputlen = 34.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 11.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'OLDBR_ENDDA'.
ls_fcat-coltext = 'Old end date HP Branch'(015).
ls_fcat-outputlen = 37.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 12.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'NEWBR_ENDDA'.
ls_fcat-coltext = 'New end date HP Branch'(016).
ls_fcat-outputlen = 35.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
ls_fcat-col_pos = 13.
ls_fcat-tabname = 'GT_ALL'.
ls_fcat-fieldname = 'COMMENT'.
ls_fcat-coltext = 'Comment'(017).
ls_fcat-outputlen = 100.
APPEND ls_fcat TO gt_fieldcat_100.
CLEAR ls_fcat.
* ELSEIF rb_hpgr EQ 'X'. "Fieldcatlog for Branch
*
* ls_fcat-col_pos = 1.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'PERNR'.
* ls_fcat-coltext = 'Personal Number'(006).
* ls_fcat-outputlen = 17.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 2.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'NAME2'.
* ls_fcat-coltext = 'First Name'(007).
* ls_fcat-outputlen = 25.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 3.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'NACHN'.
* ls_fcat-coltext = 'Last name'(008).
* ls_fcat-outputlen = 25.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 4.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'BRANCH'.
* ls_fcat-coltext = 'Branch'(009).
* ls_fcat-outputlen = 10.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 5.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'ORG_UNIT'.
* ls_fcat-coltext = 'Organisational unit'(010).
* ls_fcat-outputlen = 26.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 6.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'CAMPAIGN'.
* ls_fcat-coltext = 'Campaign Id selected'(011).
* ls_fcat-outputlen = 24.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 7.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'CAM_ENDDA'.
* ls_fcat-coltext = 'End date campaign'(012).
* ls_fcat-outputlen = 24.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 8.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'OLDGR_ENDDA'.
* ls_fcat-coltext = 'Old end date HP Group'(013).
* ls_fcat-outputlen = 33.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
* ls_fcat-col_pos = 9.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'NEWGR_ENDDA'.
* ls_fcat-coltext = 'New end date HP Group'(014).
* ls_fcat-outputlen = 34.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 10.
* ls_fcat-tabname = 'GT_BRANCH'.
* ls_fcat-fieldname = 'COMMENT'.
* ls_fcat-coltext = 'Comment'(017).
* ls_fcat-outputlen = 100.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ELSEIF rb_hpbr EQ 'X'. "Fieldcatlog for Org unit
*
* ls_fcat-col_pos = 1.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'PERNR'.
* ls_fcat-coltext = 'Personal Number'(006).
* ls_fcat-outputlen = 17.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 2.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'NAME2'.
* ls_fcat-coltext = 'First Name'(007).
* ls_fcat-outputlen = 25.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 3.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'NACHN'.
* ls_fcat-coltext = 'Last name'(008).
* ls_fcat-outputlen = 25.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 4.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'BRANCH'.
* ls_fcat-coltext = 'Branch'(009).
* ls_fcat-outputlen = 10.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 5.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'ORG_UNIT'.
* ls_fcat-coltext = 'Organisational unit'(010).
* ls_fcat-outputlen = 26.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 6.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'CAMPAIGN'.
* ls_fcat-coltext = 'Campaign Id selected'(011).
* ls_fcat-outputlen = 24.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 7.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'CAM_ENDDA'.
* ls_fcat-coltext = 'End date campaign'(012).
* ls_fcat-outputlen = 24.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 8.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'OLDBR_ENDDA'.
* ls_fcat-coltext = 'Old end date HP Branch'(015).
* ls_fcat-outputlen = 37.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 9.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'NEWGR_ENDDA'.
* ls_fcat-coltext = 'New end date HP Branch'(016).
* ls_fcat-outputlen = 35.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
*
* ls_fcat-col_pos = 10.
* ls_fcat-tabname = 'GT_ORGUNIT'.
* ls_fcat-fieldname = 'COMMENT'.
* ls_fcat-coltext = 'Comment'(017).
* ls_fcat-outputlen = 100.
*
* APPEND ls_fcat TO gt_fieldcat_100.
* CLEAR ls_fcat.
* ENDIF.
ENDFORM. " BUILD_FIELDCAT_100
*&---------------------------------------------------------------------*
*& Form OUTPUTLOG_ALV_DISP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM outputlog_alv_disp CHANGING i_disp_table TYPE STANDARD TABLE.
CALL METHOD go_grid_100->set_table_for_first_display
EXPORTING
* it_toolbar_excluding = gt_exclude_100
is_layout = gs_layout_100
CHANGING
it_fieldcatalog = gt_fieldcat_100
it_outtab = i_disp_table[].
* Set editable cells to ready for input initially
CALL METHOD go_grid_100->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
ENDFORM. " OUTPUTLOG_ALV_DISP
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS100'.
SET TITLEBAR 'TITLE100'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. "user_command_0100 INPUT
*******************************************************************************
* A D M I N I S T R A T I O N *
*******************************************************************************
* Program ID : HP_CO03 *
* Version : Initial *
* SAP Version : ECC 6.0 *
* Program Name : zphp_ctreatment *
* Created by : Rajasekhar Puppala *
* Created on : 02.19.2014 *
* Description : HP End Campaign Treatment *
*******************************************************************************
* C H A N G E H I S T O R Y *
*******************************************************************************
* Change Id : *
* Author : *
* Changed On : *
* Request No : *
* Description : *
*******************************************************************************
*&---------------------------------------------------------------------*
*& Include ZPHP_CTREATMENT_TOP
*&---------------------------------------------------------------------*
INCLUDE .
INCLUDE .
TABLES: zpftcamp_head,
hrp1002,
hrp1000,
pa0002,
pa0003,
pa9020,
pa9021,
zphp_potentbran.
*******Internal table declaration******************
DATA: gt_9020 TYPE STANDARD TABLE OF pa9020,
gt_9021 TYPE STANDARD TABLE OF pa9021,
gwa_9020 TYPE pa9020,
gwa_9021 TYPE pa9021,
gwa_p9020 TYPE p9020,
gwa_p9021 TYPE p9021.
DATA: gwa_return TYPE bapireturn1.
DATA: gt_0002 TYPE p0002_tab,
gwa_0002 TYPE p0002,
gv_return TYPE symsgno,
gv_nocommit LIKE bapi_stand-no_commit.
TYPES: BEGIN OF ty_all,
status TYPE icon_d, "c,
pernr TYPE pa9020-pernr,
vorna TYPE pa0002-vorna,
nachn TYPE pa0002-nachn,
branch TYPE hrp1000-objid,
org_unit TYPE hrp1000-objid,
cmpgn TYPE zpftcamp_head-campaign,
camp_endda TYPE zpftcamp_head-camp_endda,
oldgr_endda TYPE pa9020-begda,
newgr_endda TYPE pa9020-begda,
oldbr_endda TYPE pa9021-begda,
newbr_endda TYPE pa9021-begda,
comment(100) TYPE c,
END OF ty_all.
DATA: gwa_all TYPE ty_all,
gt_all TYPE TABLE OF ty_all.
*TYPES: BEGIN OF ty_branch,
*
* pernr TYPE pa9020-pernr,
* name2 TYPE pa0002-vorna,
* nachn TYPE pa0002-nachn,
* branch TYPE hrp1000-objid,
* org_unit TYPE hrp1000-objid,
* cmpgn TYPE zpftcamp_head-campaign,
* camp_endda TYPE zpftcamp_head-camp_endda,
* oldgr_endda TYPE pa9020-begda,
* newgr_endda TYPE pa9020-begda,
* comment(100) TYPE c,
*
*END OF ty_branch.
*
*DATA: gwa_branch TYPE ty_branch,
* gt_branch TYPE TABLE OF ty_branch.
*
*TYPES: BEGIN OF ty_orgunit,
*
* pernr TYPE pa9020-pernr,
* name2 TYPE pa0002-vorna,
* nachn TYPE pa0002-nachn,
* branch TYPE hrp1000-objid,
* org_unit TYPE hrp1000-objid,
* campaign TYPE zpftcamp_head-campaign,
* cam_endda TYPE zpftcamp_head-camp_endda,
* oldbr_endda TYPE pa9021-begda,
* newbr_endda TYPE pa9021-begda,
* comment(100) TYPE c,
*
*END OF ty_orgunit.
*
*DATA: gwa_orgunit TYPE ty_orgunit,
* gt_orgunit TYPE TABLE OF ty_orgunit.
*...............ALV.............................
DATA: gt_fieldcat_100 TYPE lvc_t_fcat.
DATA: gv_disp_table TYPE string.
DATA: go_grid_100 TYPE REF TO cl_gui_alv_grid.
DATA: go_custom_container_100 TYPE REF TO cl_gui_custom_container.
DATA: gs_layout_100 TYPE lvc_s_layo,
gr_alv TYPE REF TO cl_salv_table,
gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table.
TYPES: BEGIN OF ty_1001_ou,
objid TYPE p1001-objid,
sobid TYPE p1001-sobid,
END OF ty_1001_ou.
TYPES: BEGIN OF ty_oubr,
emp TYPE objid,
br TYPE objid,
ou TYPE objid,
END OF ty_oubr.
DATA: gt_oubr TYPE STANDARD TABLE OF ty_oubr,
gwa_oubr TYPE ty_oubr.
DATA: gt_1001_ou TYPE STANDARD TABLE OF ty_1001_ou,
gwa_1001_ou LIKE LINE OF gt_1001_ou,
gt_1001_emp TYPE STANDARD TABLE OF ty_1001_ou,
gwa_1001_emp LIKE LINE OF gt_1001_ou.
DATA: r_employee TYPE RANGE OF objid,
wa_emp LIKE LINE OF r_employee.
DATA: gt_camp_head TYPE STANDARD TABLE OF zpftcamp_head,
gwa_camp_head TYPE zpftcamp_head.
DATA: gv_old_endda TYPE p0001-endda.
******selection screen declaration****************
SELECTION-SCREEN:BEGIN OF BLOCK selection WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_campid FOR zpftcamp_head-campaign MATCHCODE OBJECT zphp_campaign OBLIGATORY NO-EXTENSION NO INTERVALS.
**Radio buttons
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: rb_all RADIOBUTTON GROUP auth USER-COMMAND rusr.
SELECTION-SCREEN COMMENT 7(5) text-003 FOR FIELD rb_all.
PARAMETERS: rb_hpgr RADIOBUTTON GROUP auth.
SELECTION-SCREEN COMMENT 14(18) text-004 FOR FIELD rb_hpgr.
PARAMETERS: rb_hpbr RADIOBUTTON GROUP auth.
SELECTION-SCREEN COMMENT 41(18) text-005 FOR FIELD rb_hpbr.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_pernr FOR pa0003-pernr. "hrp1002-objid.
SELECT-OPTIONS: s_branch FOR zphp_potentbran-zbranch MATCHCODE OBJECT zh_branch.
SELECT-OPTIONS: s_ou FOR hrp1000-objid MATCHCODE OBJECT zp_e_orgunit.
SELECTION-SCREEN END OF BLOCK selection.
SELECTION-SCREEN:BEGIN OF BLOCK other WITH FRAME TITLE text-002.
PARAMETERS: ck_test AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK other.
---------------------------------------------------------------------------
**********************
*** CALL SCREEN 100***
**********************
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE alv_grid_0100.
PROCESS AFTER INPUT.
MODULE user_command_0100.
No comments:
Post a Comment