2006 Dec 20 12:10 PM
Hi
I have a date
Please tell what is the function module used to find the givan date is working day or not for a particular organisation.
thanks in advance
regards
shoban.
2006 Dec 20 12:13 PM
Hi check the FM
CO2Z_FACT_CALENDAR_CHECK_DATE
Also please check
FM <b>'DATE_CHECK_WORKINGDAY'</b>
Hi check the FM
CO2Z_FACT_CALENDAR_CHECK_DATE
Also please check
FM <b>'DATE_CHECK_WORKINGDAY'</b>
2006 Dec 20 12:13 PM
Hi check the FM
CO2Z_FACT_CALENDAR_CHECK_DATE
Also please check
FM <b>'DATE_CHECK_WORKINGDAY'</b>
2006 Dec 20 12:14 PM
use fm
date_check_workingday
pass the calender id relavent to TFACD OR ENTRY OF T001-FABKL for the plant.
regards,
vijay
2006 Dec 20 12:20 PM
hi,
check the FM DATE_CHECK_WORKINGDAY
CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
EXPORTING
DATE = SY-DATUM
FACTORY_CALENDAR_ID = '01'
MESSAGE_TYPE = 'E'
EXCEPTIONS
DATE_AFTER_RANGE = 1
DATE_BEFORE_RANGE = 2
DATE_INVALID = 3
DATE_NO_WORKINGDAY = 4
FACTORY_CALENDAR_NOT_FOUND = 5
MESSAGE_TYPE_INVALID = 6
OTHERS = 7.
do reward if it helps,
priya.
2006 Dec 20 12:24 PM
better not to hardcode the calender id as it is defined for a plant at company code level .
REPORT ZEX8 .
tables : VBAK.
PARAMETERS : P_WERKS LIKE T001W-WERKS OBLIGATORY.
select-options : s_date for vbak-erdat OBLIGATORY.
DATA : WRK_DYS TYPE I ,
TOT_DYS TYPE I ,
HOL_DYS TYPE I.
DATA: calid LIKE tfacd-ident.
DATA : BEGIN OF ITAB OCCURS 0,
DATE LIKE SY-DATUM,
END OF ITAB.
DATA : BEGIN OF IWRK OCCURS 0,
WRDATE LIKE SY-DATUM,
END OF IWRK.
DATA : BEGIN OF IHOL OCCURS 0,
HOLDAY LIKE SY-DATUM,
END OF IHOL.
DATA : V_DATE LIKE SY-DATUM.
IF S_DATE-LOW ne '00000000'.
PERFORM FILLTAB.
ENDIF.
* LOOP AT ITAB.
* WRITE:/ ITAB-DATE.
* ENDLOOP.
DESCRIBE TABLE ITAB LINES TOT_DYS.
WRITE:/ 'TOTAL NUMBER OF DAYS ARE', TOT_DYS.
PERFORM FCT_CALID.
PERFORM WRK_DAYS.
PERFORM DISP_WRKDYS.
PERFORM DISP_HOLDAYS.
form FILLTAB.
ITAB-DATE = S_DATE-LOW.
APPEND ITAB.
IF S_DATE-HIGH ne '00000000'.
IF S_DATE-LOW = S_DATE-HIGH.
EXIT.
ENDIF.
ADD 1 To S_DATE-LOW.
PERFORM FILLTAB.
ENDIF.
endform. " FILLTAB
*&---------------------------------------------------------------------*
*& Form WRK_DAYS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form WRK_DAYS.
LOOP AT ITAB.
V_DATE = ITAB-DATE.
CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
EXPORTING
date = V_DATE
factory_calendar_id = CALID "over here
message_type = 'I'
EXCEPTIONS
DATE_AFTER_RANGE = 1
DATE_BEFORE_RANGE = 2
DATE_INVALID = 3
DATE_NO_WORKINGDAY = 4
FACTORY_CALENDAR_NOT_FOUND = 5
MESSAGE_TYPE_INVALID = 6
OTHERS = 7
.
IF SY-SUBRC EQ 0.
IWRK-WRDATE = V_DATE.
APPEND IWRK.
CLEAR IWRK.
ELSE.
IHOL-HOLDAY = V_DATE.
APPEND IHOL.
CLEAR IHOL.
ENDIF.
ENDLOOP.
endform. " WRK_DAYS
*&---------------------------------------------------------------------*
*& Form DISP_WRKDYS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISP_WRKDYS.
DESCRIBE TABLE IWRK LINES WRK_DYS.
LOOP AT IWRK.
AT FIRST.
skip.
WRITE:/5 'WORKING DAYS'.
SKIP.
ENDAT.
WRITE:/5 IWRK-WRDATE.
ENDLOOP.
WRITE:/ 'Total number of working days are', wrk_Dys.
skip.
endform. " DISP_WRKDYS
*&---------------------------------------------------------------------*
*& Form DISP_HOLDAYS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DISP_HOLDAYS.
DESCRIBE TABLE IHOL LINES HOL_DYS.
LOOP AT IHOL.
AT FIRST.
skip.
WRITE:/5 'NON WORKING DAYS ARE '.
SKIP.
ENDAT.
WRITE:/5 IHOL-HOLDAY.
ENDLOOP.
WRITE:/ 'Total number of NON working days are', HOL_Dys.
skip.
endform. " DISP_HOLDAYS
*&---------------------------------------------------------------------*
*& Form FCT_CALID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form FCT_CALID.
SELECT SINGLE fabkl INTO calid FROM t001w
WHERE werks = P_werks.
endform. " FCT_CALIDregards,
vijay
2006 Dec 20 12:22 PM
Hi swetha,
1>u can use this fm 'HOLIDAY_GET' to get no of holidays betn 2 dates
2>this fm to check whether holiday r not 'HOLIDAY_CHECK_AND_GET_INFO'
3>this fm will give next/previous working day 'DATE_CONVERT_TO_FACTORYDATE'
For all these u have to give Calender id as export parameter that is configured in the sap system
Regards
giri
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |