Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

next work day using the factory calendar

Former Member
0 Kudos

Hi Experts,

how to determine next "work day" using the factory calendar??

Regards,

satish.

1 ACCEPTED SOLUTION

former_member242255
Active Contributor
0 Kudos

Give the date and calendar to this Fm BKK_GET_NEXT_WORKDAY

5 REPLIES 5

former_member242255
Active Contributor
0 Kudos

Give the date and calendar to this Fm BKK_GET_NEXT_WORKDAY

Former Member
0 Kudos

hi,

please use FM : FIMA_DAY_CONVERT_TO_WORKINGDAY

IT WILL HELP YOU

Regards

Rahul

kesavadas_thekkillath
Active Contributor
0 Kudos

table it_days will have the dates in it.

using logic get it from there

Former Member
0 Kudos

Hi Satish,

Look At the sample code,,

It give the No of factory calendar Working days..


FORM DATE_AGE  USING    VALUE(P_MATLIST_DSDAT) VALUE(P_DATUM)
                        P_LV_AGING1.

  DATA: DATE_BEGIN         TYPE SY-DATUM,
        DATE_END           TYPE SY-DATUM,
        CURRENT_DATE       TYPE SY-DATUM,
        WORKING_INDICATOR  TYPE SCAL-INDICATOR,
        WORKDAYS           TYPE I,
        FACTORY_CALENDAR   TYPE SCAL-FCALID.

  DATE_BEGIN       = P_MATLIST_DSDAT.
  DATE_END         = P_DATUM.
  FACTORY_CALENDAR = '01'.

  CURRENT_DATE = DATE_BEGIN.
  DO.
    IF CURRENT_DATE GE DATE_END.
      EXIT.
    ENDIF.
    CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
      EXPORTING
        DATE                         = CURRENT_DATE
        FACTORY_CALENDAR_ID          = FACTORY_CALENDAR
      IMPORTING
        WORKINGDAY_INDICATOR         = WORKING_INDICATOR
      EXCEPTIONS
        CALENDAR_BUFFER_NOT_LOADABLE = 1
        CORRECT_OPTION_INVALID       = 2
        DATE_AFTER_RANGE             = 3
        DATE_BEFORE_RANGE            = 4
        DATE_INVALID                 = 5
        FACTORY_CALENDAR_NOT_FOUND   = 6
        OTHERS                       = 7.
    IF WORKING_INDICATOR IS INITIAL.
      ADD 1 TO WORKDAYS.
    ENDIF.
    ADD 1 TO CURRENT_DATE.
  ENDDO.

  MOVE WORKDAYS TO P_LV_AGING1.

Thanks & regards,

Dileep .C

Former Member
0 Kudos

Answered