46
18 December 2014 Memo Sender(s): Recipient(s): CC: Subject: 1. Introduction ********************************************************** * 1st day of current fiscal period * based on 0FISCPER WHEN 'Z1DOFCP' . IF i_step = 2 . CALL FUNCTION 'DATE_TO_PERIOD_CONVERT' EXPORTING i_date = sy - datum * I_MONMIT = 00 i_periv = 'WD' IMPORTING e_buper = buper e_gjahr = gjahr * EXCEPTIONS * INPUT_FALSE = 1 * T009_NOTFOUND = 2 * T009B_NOTFOUND = 3 * OTHERS = 4 . IF sy - subrc <> 0 . © Sopra Group, 2022 / Ref. : 20141218-151253-mhsadkaoui 1/46

Project SAP ABAP Customer exit Bex Var.docx

Embed Size (px)

Citation preview

Sopra Group

18 December 2014 18 December 2014

0 0 1 0 0 1 1 false 20141218-151253-mhsadkaoui 4 en-GB 1 2014-12-18T16:06:08.6558465+01:00 false true false false false MemoMemo

Sender(s):

Recipient(s):

CC:

Subject:

Introduction***********************************************************1stdayofcurrentfiscalperiod*basedon0FISCPERWHEN'Z1DOFCP'.IFi_step=2.

CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datum*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=bupere_gjahr=gjahr*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.IFsy-subrc0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.

CALLFUNCTION'FIRST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=gjahr*I_MONMIT=00i_periv='WD'i_poper=buperIMPORTINGe_date=ls_date*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.IFsy-subrc0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.**************************************************************1stdayofcurrentcalendarmonth*basedon0CALMONTHWHEN'Z1DOFCM'.IFi_step=2.

ls_date=sy-datum.ls_date+6(2)='01'.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.***************************************************************1stfiscalperiodofcurrentfiscalyear*basedon0CALYEARWHEN'Z1POFCY'.IFi_step=2.

gjahr=sy-datum(4).buper='001'.

CONCATENATEgjahrbuperINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.*****************************************Periodislastperiodinintervalor,incaseofnoselection,the*actualperiodWHEN'ZIFPERL'.IFi_step=2.

*checkwhetherthevariable0I_FPERisfilledornotREADTABLEi_t_var_rangeWITHKEYvnam='0I_FPER'TRANSPORTINGNOFIELDS.IFsy-subrc=0."entryfound*taleperiodformdatain0I_FPERLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_FPER'.CLEARl_s_range.IFloc_var_range-highISINITIAL.gjahr=loc_var_range-low(4).buper=loc_var_range-low+4(3).ELSE.gjahr=loc_var_range-high(4).buper=loc_var_range-high+4(3).ENDIF.

CONCATENATEgjahrbuperINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.EXIT.ENDLOOP.

ELSE.*incaseofnoperiodisenteredintheselectionscreen*deriveactualperiodfromactualdateCLEARl_s_range.

ls_date=sy-datum-1.

CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=ls_date*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=bupere_gjahr=gjahr*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.IFsy-subrc0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.

CONCATENATEgjahrbuperINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF."entryfor0I_FPERfound

ENDIF.***************************************************************BBERGER-Derniereperiodedel'intervallesaisieWHEN'ZLASTPER'.IFi_step=2.

READTABLEi_t_var_rangeWITHKEYvnam='0I_FISCN'TRANSPORTINGNOFIELDS.IFsy-subrc=0.LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_FISCN'.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=loc_var_range-high.APPENDl_s_rangeTOe_t_range.ENDLOOP.ENDIF.ENDIF.*BBERGER-Derniereperiodedel'intervallesaisie

*effectivedateislastdayofreportingperiod(day)WHEN'ZEFFDYP'.IFi_step=2.

*checkwhetherthevariableisfilledornotREADTABLEi_t_var_rangeWITHKEYvnam='0I_DAYS'TRANSPORTINGNOFIELDS.IFsy-subrc=0."entryfound

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.CLEARl_s_range.IFloc_var_range-highISINITIAL.ls_date=loc_var_range-low.ELSE.ls_date=loc_var_range-high.ENDIF.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.EXIT.ENDLOOP.

ELSE."noentryfor0I_DAYSfound*incase,nodataarefoundfor0I_DAYS,derivedate*fromactualdateCLEARl_s_range.

ls_date=sy-datum-1.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF."entryfor0I_DAYSfound

ENDIF.*****************************************************************effectivedatebasedon0I_DAYWT

WHEN'ZEFFDAY'.

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYWT'.ls_date=loc_var_range-low.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.EXIT.ENDLOOP.***********************************************************************effectivedateislastdayofreportingperiod(Week)WHEN'ZEFFPER'.

IFi_step=2.

DATA:loc_yearLIKEt009b-bdatj,loc_poperLIKEt009b-poper,loc_dateLIKEsy-datum.

*checkwhetherentryisfoundfor0I_FPERornotREADTABLEi_t_var_rangeWITHKEYvnam='0I_FPER'TRANSPORTINGNOFIELDS.IFsy-subrc=0."entryfound

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_FPER'.CLEARl_s_range.IFloc_var_range-highISINITIAL.loc_year=loc_var_range-low(4).loc_poper=loc_var_range-low+4(3).ELSE.loc_year=loc_var_range-high(4).loc_poper=loc_var_range-high+4(3).ENDIF.

CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=loc_year*I_MONMIT=00i_periv='WD'i_poper=loc_poperIMPORTINGe_date=loc_date*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.IFsy-subrc0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.

l_s_range-low=loc_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.EXIT.ENDLOOP.

ELSE."noentryfound

DATA:fiperLIKEt009b-poper,fyearLIKEt009b-bdatj.

REFRESHe_t_range.CLEARl_s_range.

ls_date=sy-datum-1.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF."entryforvariable0I_FPER?ENDIF.*******************************************************************effectivedateisyesterdaybydefaultWHEN'ZEFFACT'.

REFRESHe_t_range.CLEARl_s_range.

ls_date=sy-datum-1.l_s_range-low=ls_date.

l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.*********************************************************************numberofperiodsinreportingintervalWHEN'ZNUMPINT'.DATA:l_numperidTYPEi,hlp_yearTYPEi.

DATA:wa_i_s_var_rangeTYPErrs0_s_var_range.DATA:l_year(4)TYPEc,l_period(3)TYPEc,h_year(4)TYPEc,h_period(3)TYPEn,l_year_n(4)TYPEn,h_year_n(4)TYPEn,h_period_n(3)TYPEn.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='0I_FPER'"changedINTOwa_i_s_var_range.

IFsy-subrcNE0."nodatafoundEXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_rangeTOl_s_range.

l_year=l_s_range-low(4).l_period=l_s_range-low+4(3).h_year=l_s_range-high(4).h_period=l_s_range-high+4(3).

IFl_yearISINITIALORh_yearISINITIAL.MESSAGEx000(00).ENDIF.

IFl_yearEQh_year.l_numperid=h_period-l_period+1.ELSE.l_numperid=h_period.h_year=h_year-1.

WHILEh_year>l_year.h_year_n=h_year.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.********************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid=l_numperid+h_period.h_year=h_year-1.ENDWHILE.h_year_n=h_year.h_period_n=h_period.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_period_nEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.***********************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period=h_period_n.l_numperid=l_numperid+(h_period-l_period+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid.APPENDl_s_rangeTOe_t_range.ENDIF.**********************************************************numberofperiodsinreportingintervalWHEN'ZNUMPFIS'.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='0I_FISCN'"changedINTOwa_i_s_var_range.

IFsy-subrcNE0."nodatafoundEXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_rangeTOl_s_range.

l_year=l_s_range-low(4).l_period=l_s_range-low+4(3).h_year=l_s_range-high(4).h_period=l_s_range-high+4(3).

IFl_yearISINITIALORh_yearISINITIAL.MESSAGEx000(00).ENDIF.

IFl_yearEQh_year.l_numperid=h_period-l_period+1.ELSE.l_numperid=h_period.h_year=h_year-1.

WHILEh_year>l_year.h_year_n=h_year.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.********************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid=l_numperid+h_period.h_year=h_year-1.ENDWHILE.h_year_n=h_year.h_period_n=h_period.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_period_nEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.*******************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period=h_period_n.l_numperid=l_numperid+(h_period-l_period+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid.APPENDl_s_rangeTOe_t_range.ENDIF.

*************************************************************************ALO-30032011*ListofvendorsintableZBWSRM03

WHEN'VENDSRM'.

IFi_step=2.

DATA:BEGINOFwt_vendsrmOCCURS0,vendLIKEZBWSRM03-zvendnum.DATA:ENDOFwt_vendsrm.

SELECTZVENDNUMINTOwt_vendsrm-vendFROMZBWSRM03.appendwt_vendsrm.ENDSELECT.

LOOPatwt_vendsrm.

CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT=wt_vendsrm-vendIMPORTINGOUTPUT=wt_vendsrm-vend.

l_s_range-SIGN='I'.l_s_range-OPT='EQ'.l_s_range-LOW=wt_vendsrm-vend.APPENDl_s_rangeTOe_t_range.

ENDLOOP.

ENDIF.******************************************************************ALO-08022011*NumberofperiodsinreportingintervalforreceptiononopenorderDMIDII

WHEN'ZNUMREC'.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='ZRECWEEK'"changedINTOwa_i_s_var_range.

IFsy-subrcNE0."nodatafound

CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=0.APPENDl_s_rangeTOe_t_range.

EXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_rangeTOl_s_range.

l_year=l_s_range-low(4).l_period=l_s_range-low+4(3).h_year=l_s_range-high(4).h_period=l_s_range-high+4(3).

IFl_yearISINITIAL.MESSAGEx000(00).ENDIF.

IFh_yearISINITIAL.

CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=1.

APPENDl_s_rangeTOe_t_range.

ELSE.

IFl_yearEQh_year.l_numperid=h_period-l_period+1.ELSE.l_numperid=h_period.h_year=h_year-1.

WHILEh_year>l_year.h_year_n=h_year.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.*****************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid=l_numperid+h_period.h_year=h_year-1.ENDWHILE.h_year_n=h_year.h_period_n=h_period.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_period_nEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.******************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period=h_period_n.l_numperid=l_numperid+(h_period-l_period+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid.APPENDl_s_rangeTOe_t_range.ENDIF.

ENDIF.***********************************************************************ALO-08022011*NumberofperiodsinreportingintervalforshipmentonopenorderDMIDII

WHEN'ZNUMSHI'.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='ZSHIWEEK'"changedINTOwa_i_s_var_range.

IFsy-subrcNE0."nodatafound

CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=0.APPENDl_s_rangeTOe_t_range.

EXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_rangeTOl_s_range.

l_year=l_s_range-low(4).l_period=l_s_range-low+4(3).h_year=l_s_range-high(4).h_period=l_s_range-high+4(3).

IFl_yearISINITIAL.MESSAGEx000(00).ENDIF.

IFh_yearISINITIAL.

CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=1.

APPENDl_s_rangeTOe_t_range.

ELSE.

IFl_yearEQh_year.l_numperid=h_period-l_period+1.ELSE.l_numperid=h_period.h_year=h_year-1.

WHILEh_year>l_year.h_year_n=h_year.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.*********************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid=l_numperid+h_period.h_year=h_year-1.ENDWHILE.h_year_n=h_year.h_period_n=h_period.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_ni_periv='WD'IMPORTINGe_anzbuper=h_period_nEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period=h_period_n.l_numperid=l_numperid+(h_period-l_period+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid.APPENDl_s_rangeTOe_t_range.ENDIF.

ENDIF.**********************************************************************VDZ-11082010*numberofperiodsinreportingintervalforspeedWHEN'ZNUMPSP2'.DATA:l_numperid_speedTYPEi,hlp_year_speedTYPEi.

DATA:wa_i_s_var_range_speedTYPErrs0_s_var_range.DATA:l_year_speed(4)TYPEc,l_period_speed(3)TYPEc,h_year_speed(4)TYPEc,h_period_speed(3)TYPEn,l_year_n_speed(4)TYPEn,h_year_n_speed(4)TYPEn,h_period_n_speed(3)TYPEn.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='ZSPEEDW2'"changedINTOwa_i_s_var_range_speed.

IFsy-subrcNE0."nodatafoundEXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_range_speedTOl_s_range.

l_year_speed=l_s_range-low(4).l_period_speed=l_s_range-low+4(3).h_year_speed=l_s_range-high(4).h_period_speed=l_s_range-high+4(3).

IFl_year_speedISINITIALORh_year_speedISINITIAL.MESSAGEx000(00).ENDIF.

IFl_year_speedEQh_year_speed.l_numperid_speed=h_period_speed-l_period_speed+1.ELSE.l_numperid_speed=h_period_speed.h_year_speed=h_year_speed-1.

WHILEh_year_speed>l_year_speed.h_year_n_speed=h_year_speed.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n_speedi_periv='WD'IMPORTINGe_anzbuper=h_period_speedEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.**************************************************************************intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid_speed=l_numperid_speed+h_period_speed.h_year_speed=h_year_speed-1.ENDWHILE.h_year_n_speed=h_year_speed.h_period_n_speed=h_period_speed.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n_speedi_periv='WD'IMPORTINGe_anzbuper=h_period_n_speedEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period_speed=h_period_n_speed.l_numperid_speed=l_numperid_speed+(h_period_speed-l_period_speed+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid_speed.APPENDl_s_rangeTOe_t_range.ENDIF.***********************************************************************ALO-14/10/2010*1erjourdel'annecalendaireparrapportauparamtre0I_DAYWTWHEN'Z1DAYYEA'.

DATA:v_year1(4)TYPEn.DATA:v_date1LIKEsy-datum.

IFi_step=2.

READTABLEi_t_var_rangeWITHKEYvnam='0I_DAYWT'TRANSPORTINGNOFIELDS.

IFsy-subrc=0."entryfound

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYWT'.CLEARl_s_range.ENDLOOP.ENDIF.

MOVEloc_var_range-low(4)TOv_year1.

CONCATENATEv_year1'01''01'INTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.

*ALO-14/10/2010*1erjourdumoiscalendaireparrapportauparamtre0I_DAYS

WHEN'Z1DAYMTH'.

DATA:v_month1(6)TYPEn.

IFi_step=2.

READTABLEi_t_var_rangeWITHKEYvnam='0I_DAYWT'TRANSPORTINGNOFIELDS.

IFsy-subrc=0."entryfound

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYWT'.CLEARl_s_range.ENDLOOP.ENDIF.

MOVEloc_var_range-low(6)TOv_month1.

CONCATENATEv_month1'01'INTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.

*VDZ-10052010*formulavariablepourleportailspeedWHEN'ZSPEEDWK'.DATA:l_numperid2TYPEi,hlp_year2TYPEi.

DATA:wa_i_s_var_range2TYPErrs0_s_var_range.DATA:l_year2(4)TYPEc,l_period2(3)TYPEc,h_year2(4)TYPEc,h_period2(3)TYPEn,l_year_n2(4)TYPEn,h_year_n2(4)TYPEn,h_period_n2(3)TYPEn.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='ZSPEEDW2'"changedINTOwa_i_s_var_range2.

IFsy-subrcNE0."nodatafoundEXIT.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_range2TOl_s_range.

l_year2=l_s_range-low(4).l_period2=l_s_range-low+4(3).h_year2=l_s_range-high(4).h_period2=l_s_range-high+4(3).

IFl_year2ISINITIALORh_year2ISINITIAL.MESSAGEx000(00).ENDIF.

IFl_year2EQh_year2.l_numperid2=h_period2-l_period2+1.ELSE.l_numperid2=h_period2.h_year2=h_year2-1.

WHILEh_year2>l_year2.h_year_n2=h_year2.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n2i_periv='WD'IMPORTINGe_anzbuper=h_period2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid2=l_numperid2+h_period2.h_year2=h_year2-1.ENDWHILE.h_year_n2=h_year2.h_period_n2=h_period2.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n2i_periv='WD'IMPORTINGe_anzbuper=h_period_n2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period2=h_period_n2.l_numperid2=l_numperid2+(h_period2-l_period2+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid2.APPENDl_s_rangeTOe_t_range.ENDIF.

*Effectivedateislastdayofreportingperiod.*ThecalculationisbasedonthevariablesZPREPER3(field0FISCPER3)*andZPREPERY(field0FISCYEAR).Botharefilledviauserexit.They*containthepreviousperiodandthefiscalyearoftheprevious*period,bothbasedonsy-datum.

WHEN'ZEFFPER3'.

IFi_step=2.

*checkwhetherentriesarefoundornotREADTABLEi_t_var_rangeWITHKEYvnam='ZPREPERY'TRANSPORTINGNOFIELDS.IFsy-subrc=0."entryfoundREADTABLEi_t_var_rangeWITHKEYvnam='ZPREPER3'TRANSPORTINGNOFIELDS.IFsy-subrc=0."entryfound

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='ZPREPERY'.

IFloc_var_range-highISINITIAL.loc_year=loc_var_range-low.ELSE.loc_year=loc_var_range-high.ENDIF.ENDLOOP.

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='ZPREPER3'.IFloc_var_range-highISINITIAL.loc_poper=loc_var_range-low.ELSE.loc_poper=loc_var_range-high.ENDIF.ENDLOOP.

CLEARl_s_range.

CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=loc_year*I_MONMIT=00i_periv='WD'i_poper=loc_poperIMPORTINGe_date=loc_date*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.IFsy-subrc0.*MESSAGEIDSY-MSGIDTYPESY-MSGTYNUMBERSY-MSGNO*WITHSY-MSGV1SY-MSGV2SY-MSGV3SY-MSGV4.ENDIF.

l_s_range-low=loc_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.EXIT.

ENDIF.

ELSE."noentryfound

REFRESHe_t_range.CLEARl_s_range.

ls_date=sy-datum-1.

l_s_range-low=ls_date.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF."entryforvariable

ENDIF.

*Getnumberofpreviousfiscalyearperiod(field0FISCPER3)*Thecalculationisbasedonsy-datum.DATA:noofperiLIKEt009-anzbp.WHEN'ZPREPER3'.

IFi_step=2.

*NMN05.01.2005*DATA:noofperi(3)TYPEc.*DATA:noofperiLIKEt009-anzbp.*

CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datum*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.

*actualperiodis1st->period0doesnotexist!IFfipern=1.

fyearn=fyearn-1.

CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=fyearn*I_MONMIT=00i_periv='WD'IMPORTINGe_anzbuper=noofperiEXCEPTIONSinput_false=1t009b_notfound=2t009_notfound=3OTHERS=4.fipern=noofperi.ELSE.fipern=fipern-1.ENDIF.

IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.

REFRESHe_t_range.CLEARl_s_range.l_s_range-low=fipern.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.

*Getfiscalyearofthepreviousperiod.*Thecalculationisbasedonsy-datum.

WHEN'ZPREPERY'.

IFi_step=2.

CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datum*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.

*actualperiodis1st->previousperiodbelongstopreviousyear!IFfipern=1.fyearn=fyearn-1.ENDIF.

REFRESHe_t_range.CLEARl_s_range.l_s_range-low=fyearn.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDIF.

*numberofDay'sinintervallWHEN'ZIDAYS'.

IFi_step=2.

DATA:date_from(6)TYPEp,date_to(6)TYPEp,total_daysTYPEi.

CLEARloc_var_range.

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.date_from=loc_var_range-low.

IFloc_var_range-highISINITIAL.total_days=1.ELSE.date_to=loc_var_range-high.total_days=(date_to-date_from)+1.ENDIF.

CLEARl_s_range.

l_s_range-low=total_days.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

ENDLOOP.ENDIF.

*RcuprationdeladatedesSoldesparlenumrod'ID.WHEN'ZDATSOLD'.

IFi_step=2.

DATA:BEGINOFwt_dateOCCURS0,date_debTYPEd,date_finTYPEd.DATA:ENDOFwt_date.

CLEARloc_var_range.

LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='ZID'.

SELECT/bic/zdatedeb/bic/zdatefinINTOwt_dateFROM/bic/pzidsoldesWHERE/bic/zidsoldes=loc_var_range-low.APPENDwt_date.ENDSELECT.

CLEARl_s_range.

l_s_range-low=wt_date-date_deb.l_s_range-low=l_s_range-low-1.CONDENSEl_s_range-low.l_s_range-high=wt_date-date_fin.CONDENSEl_s_range-high.l_s_range-sign='I'.l_s_range-opt='BT'.APPENDl_s_rangeTOe_t_range.

ENDLOOP.ENDIF.*************************************************************Previousweek-52PreviousweekWHEN'Z52PERI'.IFi_step=2.DATA:ld_curdateLIKEsy-datum,w_dateLIKEsy-datum,ld_poperLIKEt009b-poper,ld_fiscyearLIKEt009b-bdatj.w_date=sy-datum.ld_curdate=w_date-7.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=ld_curdatei_periv='WD'IMPORTINGe_buper=ld_popere_gjahr=ld_fiscyearEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFNOTsy-subrcISINITIAL.CLEARld_poper.CLEARld_fiscyear.ENDIF.CLEARl_s_range.CONCATENATEld_fiscyearld_poperINTOl_s_range-high.ld_curdate=w_date-364.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=ld_curdatei_periv='WD'IMPORTINGe_buper=ld_popere_gjahr=ld_fiscyearEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFNOTsy-subrcISINITIAL.CLEARld_poper.CLEARld_fiscyear.ENDIF.

CONCATENATEld_fiscyearld_poperINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='BT'.APPENDl_s_rangeTOe_t_range.

ENDIF.*************************************************************LastdayofpastweekWHEN'ZLDPW'OR'ZLDPW2'.

*GetweeknumberfromactivedayCALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datumi_periv='WD'IMPORTINGe_buper=ld_poper2e_gjahr=ld_fiscyear2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

*TestifnewyearIFld_poper2='001'.

ld_fiscyear2=ld_fiscyear2-1.

*GetthenumberofweeksofthepreviousyearCALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'IMPORTINGe_anzbuper=n_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

*Previousweek=lastweekofpastyearld_poper3=n_period.

ELSE.

*Previousweek=presentweek-1ld_poper3=ld_poper2-1.

ENDIF.

*GetlastdayofpastweekCALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'i_poper=ld_poper3IMPORTINGe_date=w_date2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

REFRESHe_t_range.CLEARl_s_range.l_s_range-low=w_date2.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

*LastdayofpastweekpreviousyearWHEN'ZLDPWPY'.*GetweeknumberfromactivedayCALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datumi_periv='WD'IMPORTINGe_buper=ld_poper2e_gjahr=ld_fiscyear2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

*TestifnewyearIFld_poper2='001'.

ld_fiscyear2=ld_fiscyear2-1.

*GetthenumberofweeksofthepreviousyearCALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'IMPORTINGe_anzbuper=n_periodEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

*Previousweek=lastweekofpastyearld_poper3=n_period.

ELSE.*Previousweek=presentweek-1ld_poper3=ld_poper2-1.ENDIF.

*GetlastdayofpastweekCALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'i_poper=ld_poper3IMPORTINGe_date=w_date2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

REFRESHe_t_range.CLEARl_s_range.w_date2=w_date2-364.l_s_range-low=w_date2.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.

WHEN'ZCREACTD'.*FindthehighdateoftheselectionforrateCRE:fordaysLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.w_date2=loc_var_range-high.CLEARl_s_range.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.IFsy-subrcNE0.*FindthehighdateoftheselectionforrateCRE:forweek,takethe*lastdayoftheweekLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0P_PRFP1'.w_periode=loc_var_range-low.ld_poper2=w_periode+4(3).ld_fiscyear2=w_periode(4).CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'i_poper=ld_poper2IMPORTINGe_date=w_date2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

CLEARl_s_range.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.IFsy-subrcNE0andi_step=2.CLEARl_s_range.l_s_range-low=sy-datum.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDIF.

ENDIF.

WHEN'ZCREACWK'.*FindthehighdateoftheselectionforrateCRE:fordaysLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.w_date2=loc_var_range-high.CLEARl_s_range.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.IFsy-subrcNE0.*FindthehighdateoftheselectionforrateCRE:forweek,takethe*lastdayoftheweekLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_FPER'.w_periode=loc_var_range-low.ld_poper2=w_periode+4(3).ld_fiscyear2=w_periode(4).CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'i_poper=ld_poper2IMPORTINGe_date=w_date2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

CLEARl_s_range.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.IFsy-subrcNE0andi_step=2.CLEARl_s_range.l_s_range-low=sy-datum.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDIF.

ENDIF.

WHEN'ZCREPRVD'.*FindthehighdateoftheselectionpreviousyearforrateCRE:for*daysLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.w_date2=loc_var_range-high.w_date2=w_date2-366.CLEARl_s_range.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.IFsy-subrcNE0.*FindthehighdateoftheselectionforrateCRE:forweek,takethe*lastdayoftheweekofthepreviousyearLOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0P_PRFP1'.w_periode=loc_var_range-low.ld_poper2=w_periode+4(3).ld_fiscyear2=w_periode(4).CALLFUNCTION'LAST_DAY_IN_PERIOD_GET'EXPORTINGi_gjahr=ld_fiscyear2i_periv='WD'i_poper=ld_poper2IMPORTINGe_date=w_date2EXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

CLEARl_s_range.w_date2=w_date2-366.l_s_range-low=w_date2.CONDENSEl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDLOOP.ENDIF.WHEN'ZCURWK'.IFi_step=2.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=sy-datum*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.REFRESHe_t_range.CLEARl_s_range.CONCATENATEfyearnfipernINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='EQ'.APPENDl_s_rangeTOe_t_range.ENDIF.

WHEN'ZDTEDTE'.IFi_step=2.DATA:year_inf(4).DATA:year_high(4).DATA:date(8).DATA:date_nb(8).CLEARloc_var_range.DATA:date_to1LIKEsy-datum.DATA:date_from1LIKEsy-datum.LOOPATi_t_var_rangeINTOloc_var_rangeWHEREvnam='0I_DAYS'.IFNOTloc_var_range-lowISINITIAL.year_inf=loc_var_range-low(4).year_inf=year_inf-1.CLEARl_s_range.date=loc_var_range-low.IFdate+4(4)='0229'.CONCATENATEyear_inf'0101'INTOdate_nb.date_from1=date_nb.CONCATENATEyear_inf'1231'INTOdate_nb.date_to1=date_nb.total_days=(date_to1-date_from1)+1.IFtotal_days='365'.date+4(4)='0228'.ENDIF.ENDIF.CONCATENATEyear_infdate+4(4)INTOl_s_range-low.CONDENSEl_s_range-low.ENDIF.IFNOTloc_var_range-highISINITIAL.year_high=loc_var_range-high(4).year_high=year_high-1.

date=loc_var_range-high.IFdate+4(4)='0229'.CONCATENATEyear_high'0101'INTOdate_nb.date_from1=date_nb.CONCATENATEyear_high'1231'INTOdate_nb.date_to1=date_nb.total_days=(date_to1-date_from1)+1.IFtotal_days='365'.date+4(4)='0228'.ENDIF.ENDIF.IFdate+4(4)='0228'.CONCATENATEyear_high'0101'INTOdate_nb.date_from1=date_nb.CONCATENATEyear_high'1231'INTOdate_nb.date_to1=date_nb.total_days=(date_to1-date_from1)+1.IFtotal_days='366'.date+4(4)='0229'.ENDIF.ENDIF.

CONCATENATEyear_highdate+4(4)INTOl_s_range-high.ENDIF.l_s_range-sign='I'.l_s_range-opt='BT'.APPENDl_s_rangeTOe_t_range.ENDLOOP.ENDIF.

WHEN'ZKPILIM'.*recherchedelasemainedudernierjourdumoisprcdent.DATA:date_kpiLIKEsy-datum.IFi_step=2.date_kpi=sy-datum.*CONCATENATEdate_kpi(6)'01'INTOdate_kpi.*date_kpi=date_kpi-1.CLEARloc_var_range.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=date_kpi*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.REFRESHe_t_range.CLEARl_s_range.*permetdercuperlapremieresemainedelaperiode*encours.(avecuneannedcoupeenpriodede4semaines)fipern=fipern-1.fipern=trunc(fipern/4)*4.

iffipern=0.

fipern='052'.fyearn=fyearn-1.

ENDIF.

CONCATENATEfyearnfipernINTOl_s_range-low.l_s_range-sign='I'.l_s_range-opt='LE'.APPENDl_s_rangeTOe_t_range.ENDIF.

WHEN'ZPERSRM'.

DATA:date_kpi2LIKEsy-datum.

IFi_step=2.date_kpi2=sy-datum.

CLEARloc_var_range.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=date_kpi2*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.REFRESHe_t_range.CLEARl_s_range.*permetdercuperlapremieresemainedelaperiode*encours.(avecuneannedcoupeenpriodede4semaines)fipern=fipern-1.fipern=trunc(fipern/4)*4.

IFfipern=0.

fipern=52.

ENDIF.

l_s_range-low=fipern.l_s_range-sign='I'.l_s_range-opt='LE'.APPENDl_s_rangeTOe_t_range.

ENDIF.

WHEN'ZNBPRKPI'.*recherchedelasemainedudernierjourdumoisprcdent.IFi_step=2.date_kpi=sy-datum.CONCATENATEdate_kpi(6)'01'INTOdate_kpi.date_kpi=date_kpi-1.CLEARloc_var_range.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=date_kpi*I_MONMIT=00i_periv='WD'IMPORTINGe_buper=fiperne_gjahr=fyearnEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.IFsy-subrc0.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.

CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=fipern.APPENDl_s_rangeTOe_t_range.ENDIF.

*numberofperiodsinreportingintervalWHEN'ZNBPRSRM'.DATA:l_numperid_srmTYPEi,hlp_year_srmTYPEi.

DATA:wa_i_s_var_range_srmTYPErrs0_s_var_range.DATA:l_year_srm(4)TYPEc,l_period_srm(3)TYPEc,h_year_srm(4)TYPEc,h_period_srm(3)TYPEn,l_year_n_srm(4)TYPEn,h_year_n_srm(4)TYPEn,h_period_n_srm(3)TYPEn.

IFi_step=2."afterthepopup

READTABLEi_t_var_rangeWITHKEYvnam='ZSRM26WK'"changedINTOwa_i_s_var_range_srm.IFsy-subrcNE0."nodatafoundREADTABLEi_t_var_rangeWITHKEYvnam='ZSRM56WK'"changedINTOwa_i_s_var_range_srm.IFsy-subrcNE0.READTABLEi_t_var_rangeWITHKEYvnam='Z56WKNIK'"changedINTOwa_i_s_var_range_srm.IFsy-subrcNE0.EXIT.ENDIF.ENDIF.ENDIF.

MOVE-CORRESPONDINGwa_i_s_var_range_srmTOl_s_range.

l_year_srm=l_s_range-low(4).l_period_srm=l_s_range-low+4(3).h_year_srm=l_s_range-high(4).h_period_srm=l_s_range-high+4(3).

IFl_year_srmISINITIALORh_year_srmISINITIAL.MESSAGEx000(00).ENDIF.

IFl_year_srmEQh_year_srm.l_numperid_srm=h_period_srm-l_period_srm+1.ELSE.l_numperid_srm=h_period_srm.h_year_srm=h_year_srm-1.

WHILEh_year_srm>l_year_srm.h_year_n_srm=h_year_srm.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n_srmi_periv='WD'IMPORTINGe_anzbuper=h_period_srmEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

l_numperid_srm=l_numperid_srm+h_period_srm.h_year_srm=h_year_srm-1.ENDWHILE.h_year_n_srm=h_year_srm.h_period_n_srm=h_period_srm.CALLFUNCTION'GET_ACCOUNT_OF_PERIODS'EXPORTINGi_gjahr=h_year_n_srmi_periv='WD'IMPORTINGe_anzbuper=h_period_n_srmEXCEPTIONSinput_false=1t009_notfound=2t009b_notfound=3OTHERS=4.

IFsy-subrcNE0.MESSAGEx000(00).ENDIF.

*intheyear2004andafterthateverysixthyearthenumberofWD*periodsareactually53whereastheotheryearsonlyuse52periods

h_period_srm=h_period_n_srm.l_numperid_srm=l_numperid_srm+(h_period_srm-l_period_srm+1).ENDIF.CLEARl_s_range.l_s_range-sign='I'.l_s_range-opt='EQ'.l_s_range-low=l_numperid_srm.APPENDl_s_rangeTOe_t_range.ENDIF.

WHEN'ZCURFPER'.

data:periodliket009b-poper,yearlikeT009B-BDATJ.CALLFUNCTION'DATE_TO_PERIOD_CONVERT'EXPORTINGi_date=SY-DATUM*I_MONMIT=00i_periv='WD'IMPORTINGE_BUPER=periodE_GJAHR=year*EXCEPTIONS*INPUT_FALSE=1*T009_NOTFOUND=2*T009B_NOTFOUND=3*OTHERS=4.l_s_range-sign='I'.l_s_range-opt='EQ'.CONCATENATEyearperiodintol_s_range-low.APPENDl_s_rangetoe_t_range.

WHEN'ZMAG_AFV'.TABLESZMAG_AFV.IFi_step=2."afterthepopupl_s_range-sign='I'.l_s_range-opt='EQ'.SELECT*FROMZMAG_AFV.IFZMAG_AFV-Z_TYPE='P'.l_s_range-low=ZMAG_AFV-Z_VALUE.APPENDl_s_rangetoe_t_range.ELSEIFZMAG_AFV-Z_TYPE='D'.SELECTPLANTFROM/bi0/pplantINTOl_s_range-lowWHEREDISTR_CHAN=ZMAG_AFV-Z_VALUEANDOBJVERS='A'.APPENDl_s_rangetoe_t_range.ENDSELECT.ENDIF.ENDSELECT.ENDIF. Sopra Group, 2014 / Ref. : 20141218-151253-mhsadkaoui1/47 Sopra Group, 2014 / Ref.: 20141218-151253-mhsadkaoui47/47