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: 

RP_CALC_DATE_IN_INTERVAL issues

Former Member
0 Kudos

why my program goes to dump, it shows,

When calling the function module "RP_CALC_DATE_IN_INTERVAL", one of the

  parameters

needed according to the interface description was not specified.

This parameter was "DAYS".

data: vm1 type sy-datum,

         vm2 type sy-datum,

         vm3 type sy-datum,

         vd1 type sy-datum,

         vd2 type sy-datum,

         vd3 type sy-datum.

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = p_date

*         DAYS            = 0

       MONTHS          = '01'

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vm1

             .

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = p_date

       DAYS            = 01

*         MONTHS          =

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vd1

             .

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = vm1

*         DAYS            = 0

       MONTHS          = 01

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vm2

             .

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = vm1

       DAYS            = 01

*         MONTHS          =

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vd2

             .

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = vm2

*      DAYS            = 0

       MONTHS          = 01

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vm3

             .

   CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       DATE            = vm2

       DAYS            = 01

*         MONTHS          =

      SIGNUM          = '-'

*         YEARS           =

    IMPORTING

      CALC_DATE       = vd3

             .

   loop at gt_mseg into gs_mseg.

     read table gt_mkpf into gs_mkpf index 1.

     if sy-subrc = 0.

       read table g_t_totals_flat into g_s_totals_flat with key matnr = gs_mseg-matnr.

       if sy-subrc = 0.

         if gs_mkpf-budat BETWEEN vm1 and vd1.

             g_s_totals_flat-cons_month_1 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

*          endif.

         endif.

         if gs_mkpf-budat between vm2 and vd2.

             g_s_totals_flat-cons_month_2 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

         endif.

         if gs_mkpf-budat BETWEEN vm3 and vd3.

             g_s_totals_flat-cons_month_3 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

         endif.

       endif.

     endif.

   endloop

5 REPLIES 5

former_member209120
Active Contributor
0 Kudos

Hi  Manisha jaiswal ,

Try like this

DATA: vm1 TYPE sy-datum,

          vm2 TYPE sy-datum,

          vm3 TYPE sy-datum,

          vd1 TYPE sy-datum,

          vd2 TYPE sy-datum,

          vd3 TYPE sy-datum.

PARAMETERS : P_date type P0001-BEGDA.


CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = p_date

          DAYS            = '0'

     months          = '01'

    signum          = '-'

          YEARS           = '0'

  IMPORTING

    calc_date       = vm1

           .



CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = p_date

     days            = 01

         MONTHS          = '0'

    signum          = '-'

          YEARS           = '0'

  IMPORTING

    calc_date       = vd1

           .



CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = vm1

         DAYS            = '0'

     months          = 01

    signum          = '-'

         YEARS           = '0'

  IMPORTING

    calc_date       = vm2

           .

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = vm1

     days            = 01

          MONTHS          = '0'

    signum          = '-'

         YEARS           = '0'

  IMPORTING

    calc_date       = vd2

           .





CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = vm2

      DAYS            = '0'

     months          = 01

    signum          = '-'

          YEARS           = '0'

  IMPORTING

    calc_date       = vm3

           .



CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

   EXPORTING

     date            = vm2

     days            = 01

          MONTHS          = '0'

    signum          = '-'

          YEARS           = '0'

  IMPORTING

    calc_date       = vd3

           .

loop at gt_mseg into gs_mseg.

     read table gt_mkpf into gs_mkpf index 1.

     if sy-subrc = 0.

       read table g_t_totals_flat into g_s_totals_flat with key matnr = gs_mseg-matnr.

       if sy-subrc = 0.

         if gs_mkpf-budat BETWEEN vm1 and vd1.

             g_s_totals_flat-cons_month_1 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

*          endif.

         endif.

         if gs_mkpf-budat between vm2 and vd2.

             g_s_totals_flat-cons_month_2 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

         endif.

         if gs_mkpf-budat BETWEEN vm3 and vd3.

             g_s_totals_flat-cons_month_3 = gs_mseg-menge.

             append g_s_totals_flat to g_t_totals_flat1  .

             clear g_s_totals_flat.

         endif.

       endif.

     endif.

   endloop

arivazhagan_sivasamy
Active Contributor
0 Kudos

Hi Manisha,

You must pass the values for following fields, since all are mandatory.

DATE

DAYS

MONTHS

YEARS

                             

Arivazhagan S

former_member220538
Active Participant
0 Kudos

Hi,

In the FM RP_CALC_DATE_IN_INTERVAL all the input parameters are required except 'SIGNUM'. Please check the import parameters to the FM RP_CALC_DATE_IN_INTERVAL.

You have to pass date,day,month and year.

Regards,

Jeffin

Former Member
0 Kudos

Hi Manisha,

In the FM RP_CALC_DATE_IN_INTERVAL, the following are the mandatory parameters. So pass the values of mandatory  parameters when you call FM

  • DATE
  • DAYS
  • MONTHS
  • YEARS

Regards,

Riju Thomas.

Former Member
0 Kudos

Use this:

DATA: week       TYPE numc1,
          days       TYPE t5a4a-dlydy,
          date        TYPE p0001-begda,
          months   TYPE t5a4a-dlymo,
          years      TYPE t5a4a-dlyyr.

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
     EXPORTING
       date      = date
       days      = days
       months    = months
       signum    = '+'
       years     = years
     IMPORTING
       calc_date = date.

Regards

Vivek