Application Development and Automation 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: 
Read only

Dump in code

Former Member
0 Likes
2,418

Hello experts,

I have replaced old code by creating a function module and used it in code, but while executing program i am getting this dump

Here is the screen shot of FM

For your reference i am attaching code with this. If anybody knows about this issue please share it with me.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,357

Hello experts,

I have solved the problem for dump. But there is minor problem in code there are four radio buttons on screen with parameters referred to internal tables as

  • R_VENJU = itafla
  • R_SAMAND = it_t353i_t
  • R_STARFS = it_pa_timar
  • R_STASKI = it_pa_t353i


What i want to do is when we select first parameter then values in the corresponding table i.e. first is populated. In current code when we select first parameter then values in all tables are populated. So if anybody have any idea regarding this issue please share it with me. I am attaching code for your reference.



FUNCTION ZCS_TIMEUTL.

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  IMPORTING

*"     VALUE(S_SKOSTL) TYPE  BAPI1172_KOSTL_RANGE_TAB

*"     VALUE(S_BUDAT) TYPE  DATE_T_RANGE

*"     VALUE(S_EMPL) TYPE  PERSNO_RANGE_TAB OPTIONAL

*"     VALUE(S_VERDH) TYPE  LXHME_RANGE_C6_T OPTIONAL

*"     VALUE(S_ILART) TYPE  LXHME_RANGE_C3_T OPTIONAL

*"     VALUE(S_REVNR) TYPE  /KYK/TRG_CHAR8 OPTIONAL

*"     VALUE(I_NO_CANC) TYPE  NO_CANCELLATIONS OPTIONAL

*"     VALUE(I_AAETL) TYPE  AFRU-ISMNW OPTIONAL

*"     VALUE(R_VENJU) TYPE  XFLAG DEFAULT 'X'

*"     VALUE(R_SAMAND) TYPE  XFLAG OPTIONAL

*"     VALUE(R_STARFS) TYPE  XFLAG OPTIONAL

*"     VALUE(R_STASKI) TYPE  XFLAG OPTIONAL

*"  TABLES

*"      P_ITAFLA TYPE  ZIT_AFLA

*"      P_IT_T353I_T TYPE  ZIT_T353I_T

*"      P_IT_PA_TIMAR TYPE  ZIT_PA_TIMAR

*"      P_T_PA_T353I TYPE  ZIT_PA_T353I

*"----------------------------------------------------------------------

  p_empl[] = s_empl[].

  p_SKOSTL[] = S_SKOSTL[].

  p_BUDAT[] =  S_BUDAT[].

  p_VERDH[] = S_VERDH[].

  p_ILART[] = S_ILART[].

  p_REVNR[] = S_REVNR[].

  NO_CANC = I_NO_CANC.

  p_AAETL = I_AAETL.

  p_VENJU = R_VENJU.

  p_SAMAND  = R_SAMAND.

  p_STARFS  = R_STARFS.

  p_STASKI  = R_STASKI.

  p_budat-high = sy-datum.

  p_budat-low = sy-datum.

  p_budat-sign  = 'I'.

  p_budat-option  = 'BT'.

  p_budat-low = p_budat-low - 30.

  APPEND p_budat.

*  IF p_venju = 'X'.

  PERFORM putinkostn.

*  IF sy-langu = 'Z' OR sy-langu = 'b'.

*    send_text = 'Sæki tíma'.

*  ELSE.

*    send_text = 'Hours collected'.

*  ENDIF.

*  PERFORM send_gui(saplcozf) USING send_text.

  PERFORM set_no_cancellation_l. " JRF 11.2013

  PERFORM get_timar.

*  CONCATENATE send_text '........' INTO send_text.

*  PERFORM send_gui(saplcozf) USING send_text.

  SORT itafla BY ilart.

  IF p_samand = 'X'.

    PERFORM draga_saman.

  ELSEIF p_starfs = 'X'.

    PERFORM starfsm_samantekt.

  ELSEIF p_staski = 'X'.

*****samantekt á tímum starfsmanna

    PERFORM starfm_og_timateg.

  ELSE.

    SORT itafla BY pernr.

  ENDIF.

  p_ITAFLA[]  = ITAFLA[].

  p_IT_T353I_T[] = IT_T353I_T[].

  p_IT_PA_TIMAR[] = IT_PA_TIMAR[].

  p_T_PA_T353I[]  = iT_PA_T353I[].

ENDFUNCTION.

*&---------------------------------------------------------------------*

*&      Form  putinkostn

*&---------------------------------------------------------------------*

*       Setur inn svið kostnaðarstöðvar og smá fix ef engin starfsm er *

*       valin

*----------------------------------------------------------------------*

*  -->  p_skostl        text

*  <--  p_skostl        text

*  -->  p_empl        text

*  <--  p_empl        text

*----------------------------------------------------------------------*

FORM putinkostn.

*  This mysterious fix removed - AGJ 13.10.2011

*  LOOP AT p_skostl.

*    IF p_skostl-high EQ space.

*      p_skostl-high = p_skostl-low.

*      p_skostl-option = 'BT'.

*      p_skostl-high+7(3) = '300'.

*      MODIFY p_skostl.

*    ENDIF.

*  ENDLOOP.

  IF p_empl-sign EQ space.

    p_empl-sign = 'I'.

    p_empl-option = 'BT'.

    p_empl-low = '000'.

    p_empl-high = '99999999'.

    APPEND p_empl.

  ENDIF.

ENDFORM.                    " putinkostn

*&---------------------------------------------------------------------*

*&      Form  draga_saman

*&---------------------------------------------------------------------*

*       Dregur saman upphaflegan lista(listann sem geymir alla tímana)

*----------------------------------------------------------------------*

*  -->  itafla        text

*  <--  it_t353i_t    text

*----------------------------------------------------------------------*

FORM draga_saman.

  DATA: temp LIKE itafla-ismnw,

        temp_hafnad LIKE itafla-ismnw,

        temp2 TYPE string VALUE 'TRUE',

        t_ilart LIKE itafla-ilart,

        t_ilatx LIKE itafla-ilatx.

*it_t353i_t.

  LOOP AT itafla

    WHERE ilart NE space.

    IF t_ilart EQ itafla-ilart OR temp2 EQ 'T'.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

      temp2 = 'FALSE'.

    ELSE.

      it_t353i_t-ismnw = temp.

      it_t353i_t-hafnad = temp_hafnad.

      it_t353i_t-ilart = t_ilart.

      it_t353i_t-ilatx = t_ilatx.

      it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

      it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

      APPEND it_t353i_t.

      CLEAR: temp, temp_hafnad, t_ilart.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

    ENDIF.

    t_ilart = itafla-ilart.

    t_ilatx = itafla-ilatx.

    AT LAST.

      it_t353i_t-ismnw = temp.

      it_t353i_t-hafnad = temp_hafnad.

      it_t353i_t-ilart = t_ilart.

      it_t353i_t-ilatx = t_ilatx.

      it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

      it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

      APPEND it_t353i_t.

    ENDAT.

  ENDLOOP.

  LOOP AT itafla

    WHERE ilart EQ space.

    it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

    it_t353i_t-ismnw = itafla-ismnw.

    it_t353i_t-hafnad = temp_hafnad.

    it_t353i_t-ilart = itafla-ilart.

    it_t353i_t-ilatx = itafla-ilatx.

    it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

    APPEND it_t353i_t.

  ENDLOOP.

ENDFORM.                    " draga_saman

*&---------------------------------------------------------------------*

*&      Form  get_timar

*&---------------------------------------------------------------------*

*       Sækir tímaskráningu í gagnagrunn út frá valinu í

*       Selection-Screen

*----------------------------------------------------------------------*

FORM get_timar.

  DATA: l_nafn LIKE it_afru-rufnm,

        wa_text TYPE ysdtexts.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE it_afru

           FROM afru AS f

           INNER JOIN aufk AS p ON f~aufnr = p~aufnr

           INNER JOIN afih AS a ON f~aufnr = a~aufnr

           WHERE f~pernr IN p_empl

           AND f~skostl  IN p_skostl

           AND f~isdd    IN p_budat

           AND f~learr   IN p_verdh

* JRF 11.2013

           AND f~stzhl IN gr_stzhl

           AND f~stokz IN gr_stokz

* END JRF 11.2013

           AND a~ilart   IN p_ilart

           AND a~revnr   IN p_revnr.

*skoða töflu caufv og líta á hagnaðarstöð

  IF sy-subrc NE 0.

    CLEAR:p_skostl,p_empl.

    MESSAGE e030(zz).

*            Engin gögn fundust innan tilgreindrar afmörkunar.

    return.

  ENDIF.

  SORT it_afru BY pernr.

  LOOP AT it_afru.

*  breyta mín í klukkustundir

    PERFORM min_to_klst.

    PERFORM ath_reverse_hours.

    PERFORM lesa_nafn_starfsmanns.

    PERFORM lesa_nafn_pontunar.

*    perform check_time_is_rejected."20.11.02 GTE

    IF it_afru-auart = 'PM01' OR it_afru-auart = 'YY00'.

      IF it_afru-kostl IN p_skostl.

*eigin kostnaður

*auart = PM01

*skostl IN p_skostl, sama kostnaðarstöð

*

        SELECT SINGLE * INTO CORRESPONDING FIELDS OF it_afru

          FROM t353i_t

          WHERE ilart = it_afru-ilart

          AND   spras = sy-langu.                           "'Z1'.

        MODIFY it_afru.

        MOVE-CORRESPONDING it_afru TO itafla.

*        WRITE it_afru-pernr to  itafla-pernr.

*        WRITE it_afru-rufnm to  itafla-rufnm.

*        WRITE it_afru-revnr to  itafla-revnr.

*        WRITE it_afru-budat to  itafla-budat.

*        move it_afru-ismnw to  itafla-ismnw.

*        move it_afru-hafnad to  itafla-hafnad.

*        WRITE it_afru-ismne to  itafla-ismne.

*        WRITE it_afru-aufnr to  itafla-aufnr.

*        WRITE it_afru-ktext to  itafla-ktext.

*        WRITE it_afru-skostl to  itafla-skostl.

*        WRITE it_afru-ilart to  itafla-ilart.

*        WRITE it_afru-ilatx to  itafla-ilatx.

*        WRITE it_afru-stokz to  itafla-stokz.

*

*        itafla-hafnad = it_afru-hafnad.

        APPEND itafla.

        ADD itafla-ismnw TO starfsmtimar.

      ELSE.

*millideildarsala

*kostl <> P_SKOSTL, ekki sama kostnaðarstöð

*auart = PM01

        ADD it_afru-ismnw  TO timar_i_millideild.

        ADD it_afru-hafnad TO timar_millideild_hafnad.

        ADD it_afru-ismnw  TO mill_a_starfsmann.

        ADD it_afru-hafnad TO mill_hafnad_a_starfsmann.

      ENDIF.

    ELSEIF ( it_afru-auart BETWEEN 'SM01' AND 'SM02' ) OR

       ( it_afru-auart BETWEEN 'YY01' AND 'YY02' ).

*útselt

*auart = 'SM01' or auart = 'SM02'

      ADD it_afru-ismnw  TO timar_i_utseld.

      ADD it_afru-hafnad TO timar_utseld_hafnad.

      ADD it_afru-ismnw  TO utselt_a_starfsmann.

      ADD it_afru-hafnad TO utselt_hafnad_a_starfsmann.

    ENDIF.

    ADD it_afru-ismnw  TO samtalstimar.

    ADD it_afru-ismnw  TO heild_timar_a_starfsmann.

    ADD it_afru-hafnad TO heild_hafnad_timar_starfsmann.

    l_nafn = it_afru-rufnm.

    AT END OF pernr.

***   velja í it_pa_t353i töflu

      IF mill_a_starfsmann NE 0.

        SELECT SINGLE * FROM ysdtexts

          INTO CORRESPONDING FIELDS OF wa_text

         WHERE langu = sy-langu

           AND pr_name = 'ZSTONES'

           AND fld_name = 'MILLA'.

        it_pa_t353i-pernr  = it_afru-pernr.

        it_pa_t353i-ilart  = wa_text-scrtext_s.

        it_pa_t353i-ilatx  = wa_text-scrtext_l.

        it_pa_t353i-rufnm  = l_nafn.

        it_pa_t353i-ismnw  = mill_a_starfsmann.

        it_pa_t353i-hafnad = mill_hafnad_a_starfsmann.

        APPEND it_pa_t353i.

      ENDIF.

      IF utselt_a_starfsmann NE 0.

        SELECT SINGLE * FROM ysdtexts

          INTO CORRESPONDING FIELDS OF wa_text

         WHERE langu = sy-langu

           AND pr_name = 'ZSTONES'

           AND fld_name = 'UTSELTA'.

        it_pa_t353i-pernr    = it_afru-pernr.

        it_pa_t353i-ilart    = wa_text-scrtext_s.

        it_pa_t353i-ilatx    = wa_text-scrtext_l.

        it_pa_t353i-rufnm    = l_nafn.

        it_pa_t353i-ismnw    = utselt_a_starfsmann.

        it_pa_t353i-hafnad   = utselt_hafnad_a_starfsmann.

        APPEND it_pa_t353i.

      ENDIF.

      it_heild_pernr-pernr  = it_afru-pernr.

      it_heild_pernr-ismnw  = heild_timar_a_starfsmann.

      it_heild_pernr-hafnad = heild_hafnad_timar_starfsmann.

      APPEND it_heild_pernr.

**      velja í it_pa_timar töflu

      it_pa_timar-pernr  = it_afru-pernr.

      it_pa_timar-ismnw  = heild_timar_a_starfsmann.

      it_pa_timar-hafnad = heild_hafnad_timar_starfsmann.

      it_pa_timar-rufnm  = l_nafn.

      APPEND it_pa_timar.

      CLEAR: mill_a_starfsmann,

             mill_hafnad_a_starfsmann,

             utselt_a_starfsmann,

             utselt_hafnad_a_starfsmann,

             heild_timar_a_starfsmann,

             heild_hafnad_timar_starfsmann.

    ENDAT.

  ENDLOOP.

**skrifar í töflu millideildarsölu og útseld

  PERFORM skrifa_millideild.

  PERFORM skrifa_utseld.

  SORT it_afru BY aufnr ismnw.

ENDFORM.                    " get_timar

*&---------------------------------------------------------------------*

*&      Form  min_to_klst

*&---------------------------------------------------------------------*

*       Ef tímar er skráðir sem mín er því breytt í klst

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM min_to_klst.

  IF it_afru-ismne = 'MIN'.

    it_afru-ismnw = it_afru-ismnw / 60.

    it_afru-ismne = 'H'.

    MODIFY it_afru.

  ENDIF.

ENDFORM.                    " min_to_klst

*&---------------------------------------------------------------------*

*&      Form  ath_reverse_hours

*&---------------------------------------------------------------------*

*       Ef tímar hafa verið breytir á að draga þá frá

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM ath_reverse_hours.

  IF it_afru-stokz = 'X'.

    it_afru-ismnw = 0 - it_afru-ismnw.

  ENDIF.

ENDFORM.                    " ath_reverse_hours

*&---------------------------------------------------------------------*

*&      Form  skrifa_millideild

*&---------------------------------------------------------------------*

*       Skrifar tíma sem eru unnir milli deilda

*----------------------------------------------------------------------*

*  <--  p1       itafla.

*----------------------------------------------------------------------*

FORM skrifa_millideild.

  DATA: wa_text TYPE ysdtexts.

  IF timar_i_millideild > 0.

    CLEAR itafla.

    SELECT SINGLE * FROM ysdtexts

      INTO CORRESPONDING FIELDS OF wa_text

     WHERE langu = sy-langu

       AND pr_name = 'ZSTONES'

       AND fld_name = 'MILLA'.

    MOVE wa_text-scrtext_l TO itafla-ilatx.

    MOVE wa_text-scrtext_l TO itafla-rufnm.

    MOVE wa_text-scrtext_s TO itafla-ilart.

**    write 'KST' TO itafla-ismne.

    MOVE timar_i_millideild TO itafla-ismnw.

    MOVE timar_millideild_hafnad TO itafla-hafnad.

    APPEND itafla.

  ENDIF.

ENDFORM.                    " skrifa_millideild

*&---------------------------------------------------------------------*

*&      Form  skrifa_utseld

*&---------------------------------------------------------------------*

*       Skrifar tíma sem hafa verið seldir út

*----------------------------------------------------------------------*

*  <--  p1        itafla.

*----------------------------------------------------------------------*

FORM skrifa_utseld.

  DATA: wa_text TYPE ysdtexts.

  IF timar_i_utseld > 0.

    CLEAR itafla.

    SELECT SINGLE * FROM ysdtexts

      INTO CORRESPONDING FIELDS OF wa_text

     WHERE langu = sy-langu

       AND pr_name = 'ZSTONES'

       AND fld_name = 'UTSELTA'.

    MOVE wa_text-scrtext_l TO itafla-ilatx.

    MOVE wa_text-scrtext_l TO itafla-rufnm.

    MOVE wa_text-scrtext_s TO itafla-ilart.

**    write 'KST' TO itafla-ismne.

    MOVE timar_i_utseld TO itafla-ismnw.

    MOVE timar_utseld_hafnad TO itafla-hafnad.

    APPEND itafla.

  ENDIF.

ENDFORM.                    " skrifa_utseld

*&---------------------------------------------------------------------*

*&      Form  lesa_nafn_starfsmanns

*&---------------------------------------------------------------------*

*       Sækir nafn starfsmanns í gagnagrunn

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM lesa_nafn_starfsmanns.

  IF it_afru-pernr NE space.

    SELECT SINGLE * INTO wa_pa0002

        FROM pa0002

        WHERE pernr = it_afru-pernr.

    CONCATENATE wa_pa0002-vorna wa_pa0002-nachn INTO g_nafn

    SEPARATED BY ' '.

    it_afru-rufnm = g_nafn.

    CLEAR wa_pa0002.

  ENDIF.

ENDFORM.                    " lesa_nafn_starfsmanns

*&---------------------------------------------------------------------*

*&      Form  lesa_nafn_pontunar

*&---------------------------------------------------------------------*

*       Nær í lýsingu á pöntun í gagnagrunn

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM lesa_nafn_pontunar.

  IF it_afru-aufnr NE space.

    SELECT SINGLE * INTO wa_caufv

      FROM caufv

      WHERE aufnr = it_afru-aufnr.

    it_afru-ktext = wa_caufv-ktext.

    CLEAR wa_caufv.

  ENDIF.

ENDFORM.                    " lesa_nafn_pontunar

*&---------------------------------------------------------------------*

*&      Form  starfsm_samantekt

*&---------------------------------------------------------------------*

*       Býr til töflu sem sýnir samantekt starfsmanna

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM starfsm_samantekt.

*it_pa_timar

  DATA: temp    LIKE itafla-ismnw,

        temp2   TYPE string VALUE 'TRUE',

        t_pernr LIKE itafla-pernr,

        t_rufnm LIKE itafla-rufnm.

  SORT itafla BY pernr.

  LOOP AT it_pa_timar.

    it_pa_timar-hlutfall = it_pa_timar-ismnw / samtalstimar * 100.

    MODIFY it_pa_timar.

  ENDLOOP.

ENDFORM.                    " starfsm_samantekt

*&---------------------------------------------------------------------*

*&      Form  starfm_og_timateg

*&---------------------------------------------------------------------*

*       Býr til töflu sem sýnir samantekt á tímum starfsmanna

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM starfm_og_timateg.

*it_pa_timar

  DATA: temp LIKE itafla-ismnw,

        temp_hafnad LIKE itafla-ismnw,

        temp2 TYPE string VALUE 'TRUE',

        t_pernr LIKE itafla-pernr,

        t_rufnm LIKE itafla-rufnm,

        t_ilart LIKE itafla-ilart,

        t_ilatx LIKE itafla-ilatx,

        l_timar_a_starfsmann LIKE itafla-ismnw.

  SORT itafla BY pernr ilart.

  LOOP AT itafla

    WHERE pernr NE space.

    IF t_ilart NE itafla-ilart AND temp2 NE 'T'.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      it_pa_t353i-rufnm = t_rufnm.

      APPEND it_pa_t353i.

      CLEAR: temp,temp_hafnad.

      temp2 = 'TRUE'.

    ENDIF.

    IF t_pernr EQ itafla-pernr OR temp2 EQ 'T'.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO it_pa_t353i-hafnad.

      temp2 = 'FALSE'.

    ELSE.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      it_pa_t353i-rufnm = t_rufnm.

      APPEND it_pa_t353i.

      CLEAR: temp, temp_hafnad, t_pernr.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

    ENDIF.

    t_pernr = itafla-pernr.

    t_rufnm = itafla-rufnm.

    t_ilart = itafla-ilart.

    t_ilatx = itafla-ilatx.

    AT LAST.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-rufnm = t_rufnm.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      APPEND it_pa_t353i.

    ENDAT.

  ENDLOOP.

  LOOP AT itafla

    WHERE ilart EQ space.

    it_pa_t353i-ismnw = itafla-ismnw.

    it_pa_t353i-hafnad = itafla-hafnad.

    it_pa_t353i-pernr = itafla-pernr.

    it_pa_t353i-rufnm = itafla-rufnm.

    it_pa_t353i-ilart = t_ilart.

    it_pa_t353i-ilatx = t_ilatx.

    APPEND it_pa_t353i.

  ENDLOOP.

  SORT it_pa_t353i BY pernr ilart.

  LOOP AT it_pa_t353i.

    READ TABLE it_heild_pernr WITH KEY pernr = it_pa_t353i-pernr.

    it_pa_t353i-hlutfall = it_pa_t353i-ismnw /

                          it_heild_pernr-ismnw * 100.

    MODIFY it_pa_t353i.

  ENDLOOP.

ENDFORM.                    " starfm_og_timateg

*&---------------------------------------------------------------------*

*&      Form  check_time_is_rejected

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM check_time_is_rejected.

  SELECT SINGLE absta INTO it_afru-absta

    FROM vbup AS vbup

    INNER JOIN vbap AS vbap ON vbup~vbeln = vbap~vbeln

                           AND vbup~posnr = vbap~posnr

    WHERE vbap~zzrueck = it_afru-rueck

    AND   vbap~zzrmzhl = it_afru-rmzhl.

  IF sy-subrc = 0.

    IF it_afru-absta = 'C'.

      it_afru-hafnad = it_afru-ismnw.

    ENDIF.

    MODIFY it_afru.

  ENDIF.

ENDFORM.                    " check_time_is_rejected

*---------------------------------------------------------------------*

*       FORM USER_COMMAND                                             *

*---------------------------------------------------------------------*

*       ........                                                      *

*---------------------------------------------------------------------*

FORM user_command USING ucomm selfield.

ENDFORM.                    "user_command

* JRF 11.2013

*&---------------------------------------------------------------------*

*&      Form  set_no_cancellation_l

*&---------------------------------------------------------------------*

*       set select options for no cancellation

*----------------------------------------------------------------------*

FORM set_no_cancellation_l .

  IF NOT no_canc IS INITIAL.

    gr_stzhl-sign   = 'I'.

    gr_stzhl-option = 'EQ'.

    gr_stzhl-low    = '00000000'.

    APPEND gr_stzhl.

    gr_stokz-sign   = 'I'.

    gr_stokz-option = 'EQ'.

    gr_stokz-low    = ' '.

    APPEND gr_stokz.

  ENDIF.

ENDFORM.                    " set_no_cancellation_l

* END JRF 11.2013


Thanks


Avadhut

8 REPLIES 8
Read only

0 Likes
2,357

The definition of P_BUDAT in program and in function module looks different.

In Program


SELECT-OPTIONS: p_skostl FOR afru-skostl OBLIGATORY MEMORY ID vap,                                

                                  p_budat  FOR afru-budat  OBLIGATORY,

In Function Module


S_BUDAT TYPE DATE_T_RANGE

Make sure you are using same data type in selection screen definition & function module.

If not  before passing the values to function module define local variables with same

data type of importing parameter of function module and assign the values from selection variables.

Read only

Former Member
0 Likes
2,357

Hi,

is there any reason to call the FM after the selection screen rather than start of selection.

Dump is clearly saying..the FM is giving problem because the data types are mismatching to pass the values.

I would suggest just pass the required parameters and test one by one and find the which param is giving problems.

try and check

CALL FUNCTION 'ZCS_TIMEUTL'

   EXPORTING

    S_SKOSTL            = P_SKOSTL

    S_BUDAT             = P_BUDAT

    S_EMPL              = P_EMPL

    S_VERDH             = P_VERDH

*   S_ILART             = P_ILART

*   S_REVNR             = P_REVNR

*   I_NO_CANC           = NO_CANC

*   I_AAETL             = P_AAETL

*   R_VENJU             = P_VENJU

*   R_SAMAND            = P_SAMAND

*   R_STARFS            = P_STARFS

*   R_STASKI            = P_STASKI

Read only

Former Member
0 Likes
2,358

Hello experts,

I have solved the problem for dump. But there is minor problem in code there are four radio buttons on screen with parameters referred to internal tables as

  • R_VENJU = itafla
  • R_SAMAND = it_t353i_t
  • R_STARFS = it_pa_timar
  • R_STASKI = it_pa_t353i


What i want to do is when we select first parameter then values in the corresponding table i.e. first is populated. In current code when we select first parameter then values in all tables are populated. So if anybody have any idea regarding this issue please share it with me. I am attaching code for your reference.



FUNCTION ZCS_TIMEUTL.

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  IMPORTING

*"     VALUE(S_SKOSTL) TYPE  BAPI1172_KOSTL_RANGE_TAB

*"     VALUE(S_BUDAT) TYPE  DATE_T_RANGE

*"     VALUE(S_EMPL) TYPE  PERSNO_RANGE_TAB OPTIONAL

*"     VALUE(S_VERDH) TYPE  LXHME_RANGE_C6_T OPTIONAL

*"     VALUE(S_ILART) TYPE  LXHME_RANGE_C3_T OPTIONAL

*"     VALUE(S_REVNR) TYPE  /KYK/TRG_CHAR8 OPTIONAL

*"     VALUE(I_NO_CANC) TYPE  NO_CANCELLATIONS OPTIONAL

*"     VALUE(I_AAETL) TYPE  AFRU-ISMNW OPTIONAL

*"     VALUE(R_VENJU) TYPE  XFLAG DEFAULT 'X'

*"     VALUE(R_SAMAND) TYPE  XFLAG OPTIONAL

*"     VALUE(R_STARFS) TYPE  XFLAG OPTIONAL

*"     VALUE(R_STASKI) TYPE  XFLAG OPTIONAL

*"  TABLES

*"      P_ITAFLA TYPE  ZIT_AFLA

*"      P_IT_T353I_T TYPE  ZIT_T353I_T

*"      P_IT_PA_TIMAR TYPE  ZIT_PA_TIMAR

*"      P_T_PA_T353I TYPE  ZIT_PA_T353I

*"----------------------------------------------------------------------

  p_empl[] = s_empl[].

  p_SKOSTL[] = S_SKOSTL[].

  p_BUDAT[] =  S_BUDAT[].

  p_VERDH[] = S_VERDH[].

  p_ILART[] = S_ILART[].

  p_REVNR[] = S_REVNR[].

  NO_CANC = I_NO_CANC.

  p_AAETL = I_AAETL.

  p_VENJU = R_VENJU.

  p_SAMAND  = R_SAMAND.

  p_STARFS  = R_STARFS.

  p_STASKI  = R_STASKI.

  p_budat-high = sy-datum.

  p_budat-low = sy-datum.

  p_budat-sign  = 'I'.

  p_budat-option  = 'BT'.

  p_budat-low = p_budat-low - 30.

  APPEND p_budat.

*  IF p_venju = 'X'.

  PERFORM putinkostn.

*  IF sy-langu = 'Z' OR sy-langu = 'b'.

*    send_text = 'Sæki tíma'.

*  ELSE.

*    send_text = 'Hours collected'.

*  ENDIF.

*  PERFORM send_gui(saplcozf) USING send_text.

  PERFORM set_no_cancellation_l. " JRF 11.2013

  PERFORM get_timar.

*  CONCATENATE send_text '........' INTO send_text.

*  PERFORM send_gui(saplcozf) USING send_text.

  SORT itafla BY ilart.

  IF p_samand = 'X'.

    PERFORM draga_saman.

  ELSEIF p_starfs = 'X'.

    PERFORM starfsm_samantekt.

  ELSEIF p_staski = 'X'.

*****samantekt á tímum starfsmanna

    PERFORM starfm_og_timateg.

  ELSE.

    SORT itafla BY pernr.

  ENDIF.

  p_ITAFLA[]  = ITAFLA[].

  p_IT_T353I_T[] = IT_T353I_T[].

  p_IT_PA_TIMAR[] = IT_PA_TIMAR[].

  p_T_PA_T353I[]  = iT_PA_T353I[].

ENDFUNCTION.

*&---------------------------------------------------------------------*

*&      Form  putinkostn

*&---------------------------------------------------------------------*

*       Setur inn svið kostnaðarstöðvar og smá fix ef engin starfsm er *

*       valin

*----------------------------------------------------------------------*

*  -->  p_skostl        text

*  <--  p_skostl        text

*  -->  p_empl        text

*  <--  p_empl        text

*----------------------------------------------------------------------*

FORM putinkostn.

*  This mysterious fix removed - AGJ 13.10.2011

*  LOOP AT p_skostl.

*    IF p_skostl-high EQ space.

*      p_skostl-high = p_skostl-low.

*      p_skostl-option = 'BT'.

*      p_skostl-high+7(3) = '300'.

*      MODIFY p_skostl.

*    ENDIF.

*  ENDLOOP.

  IF p_empl-sign EQ space.

    p_empl-sign = 'I'.

    p_empl-option = 'BT'.

    p_empl-low = '000'.

    p_empl-high = '99999999'.

    APPEND p_empl.

  ENDIF.

ENDFORM.                    " putinkostn

*&---------------------------------------------------------------------*

*&      Form  draga_saman

*&---------------------------------------------------------------------*

*       Dregur saman upphaflegan lista(listann sem geymir alla tímana)

*----------------------------------------------------------------------*

*  -->  itafla        text

*  <--  it_t353i_t    text

*----------------------------------------------------------------------*

FORM draga_saman.

  DATA: temp LIKE itafla-ismnw,

        temp_hafnad LIKE itafla-ismnw,

        temp2 TYPE string VALUE 'TRUE',

        t_ilart LIKE itafla-ilart,

        t_ilatx LIKE itafla-ilatx.

*it_t353i_t.

  LOOP AT itafla

    WHERE ilart NE space.

    IF t_ilart EQ itafla-ilart OR temp2 EQ 'T'.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

      temp2 = 'FALSE'.

    ELSE.

      it_t353i_t-ismnw = temp.

      it_t353i_t-hafnad = temp_hafnad.

      it_t353i_t-ilart = t_ilart.

      it_t353i_t-ilatx = t_ilatx.

      it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

      it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

      APPEND it_t353i_t.

      CLEAR: temp, temp_hafnad, t_ilart.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

    ENDIF.

    t_ilart = itafla-ilart.

    t_ilatx = itafla-ilatx.

    AT LAST.

      it_t353i_t-ismnw = temp.

      it_t353i_t-hafnad = temp_hafnad.

      it_t353i_t-ilart = t_ilart.

      it_t353i_t-ilatx = t_ilatx.

      it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

      it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

      APPEND it_t353i_t.

    ENDAT.

  ENDLOOP.

  LOOP AT itafla

    WHERE ilart EQ space.

    it_t353i_t-hlutfall = it_t353i_t-ismnw / samtalstimar * 100.

    it_t353i_t-ismnw = itafla-ismnw.

    it_t353i_t-hafnad = temp_hafnad.

    it_t353i_t-ilart = itafla-ilart.

    it_t353i_t-ilatx = itafla-ilatx.

    it_t353i_t-aaetlun = it_t353i_t-hlutfall / 100 * p_aaetl.

    APPEND it_t353i_t.

  ENDLOOP.

ENDFORM.                    " draga_saman

*&---------------------------------------------------------------------*

*&      Form  get_timar

*&---------------------------------------------------------------------*

*       Sækir tímaskráningu í gagnagrunn út frá valinu í

*       Selection-Screen

*----------------------------------------------------------------------*

FORM get_timar.

  DATA: l_nafn LIKE it_afru-rufnm,

        wa_text TYPE ysdtexts.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE it_afru

           FROM afru AS f

           INNER JOIN aufk AS p ON f~aufnr = p~aufnr

           INNER JOIN afih AS a ON f~aufnr = a~aufnr

           WHERE f~pernr IN p_empl

           AND f~skostl  IN p_skostl

           AND f~isdd    IN p_budat

           AND f~learr   IN p_verdh

* JRF 11.2013

           AND f~stzhl IN gr_stzhl

           AND f~stokz IN gr_stokz

* END JRF 11.2013

           AND a~ilart   IN p_ilart

           AND a~revnr   IN p_revnr.

*skoða töflu caufv og líta á hagnaðarstöð

  IF sy-subrc NE 0.

    CLEAR:p_skostl,p_empl.

    MESSAGE e030(zz).

*            Engin gögn fundust innan tilgreindrar afmörkunar.

    return.

  ENDIF.

  SORT it_afru BY pernr.

  LOOP AT it_afru.

*  breyta mín í klukkustundir

    PERFORM min_to_klst.

    PERFORM ath_reverse_hours.

    PERFORM lesa_nafn_starfsmanns.

    PERFORM lesa_nafn_pontunar.

*    perform check_time_is_rejected."20.11.02 GTE

    IF it_afru-auart = 'PM01' OR it_afru-auart = 'YY00'.

      IF it_afru-kostl IN p_skostl.

*eigin kostnaður

*auart = PM01

*skostl IN p_skostl, sama kostnaðarstöð

*

        SELECT SINGLE * INTO CORRESPONDING FIELDS OF it_afru

          FROM t353i_t

          WHERE ilart = it_afru-ilart

          AND   spras = sy-langu.                           "'Z1'.

        MODIFY it_afru.

        MOVE-CORRESPONDING it_afru TO itafla.

*        WRITE it_afru-pernr to  itafla-pernr.

*        WRITE it_afru-rufnm to  itafla-rufnm.

*        WRITE it_afru-revnr to  itafla-revnr.

*        WRITE it_afru-budat to  itafla-budat.

*        move it_afru-ismnw to  itafla-ismnw.

*        move it_afru-hafnad to  itafla-hafnad.

*        WRITE it_afru-ismne to  itafla-ismne.

*        WRITE it_afru-aufnr to  itafla-aufnr.

*        WRITE it_afru-ktext to  itafla-ktext.

*        WRITE it_afru-skostl to  itafla-skostl.

*        WRITE it_afru-ilart to  itafla-ilart.

*        WRITE it_afru-ilatx to  itafla-ilatx.

*        WRITE it_afru-stokz to  itafla-stokz.

*

*        itafla-hafnad = it_afru-hafnad.

        APPEND itafla.

        ADD itafla-ismnw TO starfsmtimar.

      ELSE.

*millideildarsala

*kostl <> P_SKOSTL, ekki sama kostnaðarstöð

*auart = PM01

        ADD it_afru-ismnw  TO timar_i_millideild.

        ADD it_afru-hafnad TO timar_millideild_hafnad.

        ADD it_afru-ismnw  TO mill_a_starfsmann.

        ADD it_afru-hafnad TO mill_hafnad_a_starfsmann.

      ENDIF.

    ELSEIF ( it_afru-auart BETWEEN 'SM01' AND 'SM02' ) OR

       ( it_afru-auart BETWEEN 'YY01' AND 'YY02' ).

*útselt

*auart = 'SM01' or auart = 'SM02'

      ADD it_afru-ismnw  TO timar_i_utseld.

      ADD it_afru-hafnad TO timar_utseld_hafnad.

      ADD it_afru-ismnw  TO utselt_a_starfsmann.

      ADD it_afru-hafnad TO utselt_hafnad_a_starfsmann.

    ENDIF.

    ADD it_afru-ismnw  TO samtalstimar.

    ADD it_afru-ismnw  TO heild_timar_a_starfsmann.

    ADD it_afru-hafnad TO heild_hafnad_timar_starfsmann.

    l_nafn = it_afru-rufnm.

    AT END OF pernr.

***   velja í it_pa_t353i töflu

      IF mill_a_starfsmann NE 0.

        SELECT SINGLE * FROM ysdtexts

          INTO CORRESPONDING FIELDS OF wa_text

         WHERE langu = sy-langu

           AND pr_name = 'ZSTONES'

           AND fld_name = 'MILLA'.

        it_pa_t353i-pernr  = it_afru-pernr.

        it_pa_t353i-ilart  = wa_text-scrtext_s.

        it_pa_t353i-ilatx  = wa_text-scrtext_l.

        it_pa_t353i-rufnm  = l_nafn.

        it_pa_t353i-ismnw  = mill_a_starfsmann.

        it_pa_t353i-hafnad = mill_hafnad_a_starfsmann.

        APPEND it_pa_t353i.

      ENDIF.

      IF utselt_a_starfsmann NE 0.

        SELECT SINGLE * FROM ysdtexts

          INTO CORRESPONDING FIELDS OF wa_text

         WHERE langu = sy-langu

           AND pr_name = 'ZSTONES'

           AND fld_name = 'UTSELTA'.

        it_pa_t353i-pernr    = it_afru-pernr.

        it_pa_t353i-ilart    = wa_text-scrtext_s.

        it_pa_t353i-ilatx    = wa_text-scrtext_l.

        it_pa_t353i-rufnm    = l_nafn.

        it_pa_t353i-ismnw    = utselt_a_starfsmann.

        it_pa_t353i-hafnad   = utselt_hafnad_a_starfsmann.

        APPEND it_pa_t353i.

      ENDIF.

      it_heild_pernr-pernr  = it_afru-pernr.

      it_heild_pernr-ismnw  = heild_timar_a_starfsmann.

      it_heild_pernr-hafnad = heild_hafnad_timar_starfsmann.

      APPEND it_heild_pernr.

**      velja í it_pa_timar töflu

      it_pa_timar-pernr  = it_afru-pernr.

      it_pa_timar-ismnw  = heild_timar_a_starfsmann.

      it_pa_timar-hafnad = heild_hafnad_timar_starfsmann.

      it_pa_timar-rufnm  = l_nafn.

      APPEND it_pa_timar.

      CLEAR: mill_a_starfsmann,

             mill_hafnad_a_starfsmann,

             utselt_a_starfsmann,

             utselt_hafnad_a_starfsmann,

             heild_timar_a_starfsmann,

             heild_hafnad_timar_starfsmann.

    ENDAT.

  ENDLOOP.

**skrifar í töflu millideildarsölu og útseld

  PERFORM skrifa_millideild.

  PERFORM skrifa_utseld.

  SORT it_afru BY aufnr ismnw.

ENDFORM.                    " get_timar

*&---------------------------------------------------------------------*

*&      Form  min_to_klst

*&---------------------------------------------------------------------*

*       Ef tímar er skráðir sem mín er því breytt í klst

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM min_to_klst.

  IF it_afru-ismne = 'MIN'.

    it_afru-ismnw = it_afru-ismnw / 60.

    it_afru-ismne = 'H'.

    MODIFY it_afru.

  ENDIF.

ENDFORM.                    " min_to_klst

*&---------------------------------------------------------------------*

*&      Form  ath_reverse_hours

*&---------------------------------------------------------------------*

*       Ef tímar hafa verið breytir á að draga þá frá

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM ath_reverse_hours.

  IF it_afru-stokz = 'X'.

    it_afru-ismnw = 0 - it_afru-ismnw.

  ENDIF.

ENDFORM.                    " ath_reverse_hours

*&---------------------------------------------------------------------*

*&      Form  skrifa_millideild

*&---------------------------------------------------------------------*

*       Skrifar tíma sem eru unnir milli deilda

*----------------------------------------------------------------------*

*  <--  p1       itafla.

*----------------------------------------------------------------------*

FORM skrifa_millideild.

  DATA: wa_text TYPE ysdtexts.

  IF timar_i_millideild > 0.

    CLEAR itafla.

    SELECT SINGLE * FROM ysdtexts

      INTO CORRESPONDING FIELDS OF wa_text

     WHERE langu = sy-langu

       AND pr_name = 'ZSTONES'

       AND fld_name = 'MILLA'.

    MOVE wa_text-scrtext_l TO itafla-ilatx.

    MOVE wa_text-scrtext_l TO itafla-rufnm.

    MOVE wa_text-scrtext_s TO itafla-ilart.

**    write 'KST' TO itafla-ismne.

    MOVE timar_i_millideild TO itafla-ismnw.

    MOVE timar_millideild_hafnad TO itafla-hafnad.

    APPEND itafla.

  ENDIF.

ENDFORM.                    " skrifa_millideild

*&---------------------------------------------------------------------*

*&      Form  skrifa_utseld

*&---------------------------------------------------------------------*

*       Skrifar tíma sem hafa verið seldir út

*----------------------------------------------------------------------*

*  <--  p1        itafla.

*----------------------------------------------------------------------*

FORM skrifa_utseld.

  DATA: wa_text TYPE ysdtexts.

  IF timar_i_utseld > 0.

    CLEAR itafla.

    SELECT SINGLE * FROM ysdtexts

      INTO CORRESPONDING FIELDS OF wa_text

     WHERE langu = sy-langu

       AND pr_name = 'ZSTONES'

       AND fld_name = 'UTSELTA'.

    MOVE wa_text-scrtext_l TO itafla-ilatx.

    MOVE wa_text-scrtext_l TO itafla-rufnm.

    MOVE wa_text-scrtext_s TO itafla-ilart.

**    write 'KST' TO itafla-ismne.

    MOVE timar_i_utseld TO itafla-ismnw.

    MOVE timar_utseld_hafnad TO itafla-hafnad.

    APPEND itafla.

  ENDIF.

ENDFORM.                    " skrifa_utseld

*&---------------------------------------------------------------------*

*&      Form  lesa_nafn_starfsmanns

*&---------------------------------------------------------------------*

*       Sækir nafn starfsmanns í gagnagrunn

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM lesa_nafn_starfsmanns.

  IF it_afru-pernr NE space.

    SELECT SINGLE * INTO wa_pa0002

        FROM pa0002

        WHERE pernr = it_afru-pernr.

    CONCATENATE wa_pa0002-vorna wa_pa0002-nachn INTO g_nafn

    SEPARATED BY ' '.

    it_afru-rufnm = g_nafn.

    CLEAR wa_pa0002.

  ENDIF.

ENDFORM.                    " lesa_nafn_starfsmanns

*&---------------------------------------------------------------------*

*&      Form  lesa_nafn_pontunar

*&---------------------------------------------------------------------*

*       Nær í lýsingu á pöntun í gagnagrunn

*----------------------------------------------------------------------*

*  -->  it_afru        text

*  <--  it_afru        text

*----------------------------------------------------------------------*

FORM lesa_nafn_pontunar.

  IF it_afru-aufnr NE space.

    SELECT SINGLE * INTO wa_caufv

      FROM caufv

      WHERE aufnr = it_afru-aufnr.

    it_afru-ktext = wa_caufv-ktext.

    CLEAR wa_caufv.

  ENDIF.

ENDFORM.                    " lesa_nafn_pontunar

*&---------------------------------------------------------------------*

*&      Form  starfsm_samantekt

*&---------------------------------------------------------------------*

*       Býr til töflu sem sýnir samantekt starfsmanna

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM starfsm_samantekt.

*it_pa_timar

  DATA: temp    LIKE itafla-ismnw,

        temp2   TYPE string VALUE 'TRUE',

        t_pernr LIKE itafla-pernr,

        t_rufnm LIKE itafla-rufnm.

  SORT itafla BY pernr.

  LOOP AT it_pa_timar.

    it_pa_timar-hlutfall = it_pa_timar-ismnw / samtalstimar * 100.

    MODIFY it_pa_timar.

  ENDLOOP.

ENDFORM.                    " starfsm_samantekt

*&---------------------------------------------------------------------*

*&      Form  starfm_og_timateg

*&---------------------------------------------------------------------*

*       Býr til töflu sem sýnir samantekt á tímum starfsmanna

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM starfm_og_timateg.

*it_pa_timar

  DATA: temp LIKE itafla-ismnw,

        temp_hafnad LIKE itafla-ismnw,

        temp2 TYPE string VALUE 'TRUE',

        t_pernr LIKE itafla-pernr,

        t_rufnm LIKE itafla-rufnm,

        t_ilart LIKE itafla-ilart,

        t_ilatx LIKE itafla-ilatx,

        l_timar_a_starfsmann LIKE itafla-ismnw.

  SORT itafla BY pernr ilart.

  LOOP AT itafla

    WHERE pernr NE space.

    IF t_ilart NE itafla-ilart AND temp2 NE 'T'.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      it_pa_t353i-rufnm = t_rufnm.

      APPEND it_pa_t353i.

      CLEAR: temp,temp_hafnad.

      temp2 = 'TRUE'.

    ENDIF.

    IF t_pernr EQ itafla-pernr OR temp2 EQ 'T'.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO it_pa_t353i-hafnad.

      temp2 = 'FALSE'.

    ELSE.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      it_pa_t353i-rufnm = t_rufnm.

      APPEND it_pa_t353i.

      CLEAR: temp, temp_hafnad, t_pernr.

      ADD itafla-ismnw TO temp.

      ADD itafla-hafnad TO temp_hafnad.

    ENDIF.

    t_pernr = itafla-pernr.

    t_rufnm = itafla-rufnm.

    t_ilart = itafla-ilart.

    t_ilatx = itafla-ilatx.

    AT LAST.

      it_pa_t353i-ismnw = temp.

      it_pa_t353i-hafnad = temp_hafnad.

      it_pa_t353i-pernr = t_pernr.

      it_pa_t353i-rufnm = t_rufnm.

      it_pa_t353i-ilart = t_ilart.

      it_pa_t353i-ilatx = t_ilatx.

      APPEND it_pa_t353i.

    ENDAT.

  ENDLOOP.

  LOOP AT itafla

    WHERE ilart EQ space.

    it_pa_t353i-ismnw = itafla-ismnw.

    it_pa_t353i-hafnad = itafla-hafnad.

    it_pa_t353i-pernr = itafla-pernr.

    it_pa_t353i-rufnm = itafla-rufnm.

    it_pa_t353i-ilart = t_ilart.

    it_pa_t353i-ilatx = t_ilatx.

    APPEND it_pa_t353i.

  ENDLOOP.

  SORT it_pa_t353i BY pernr ilart.

  LOOP AT it_pa_t353i.

    READ TABLE it_heild_pernr WITH KEY pernr = it_pa_t353i-pernr.

    it_pa_t353i-hlutfall = it_pa_t353i-ismnw /

                          it_heild_pernr-ismnw * 100.

    MODIFY it_pa_t353i.

  ENDLOOP.

ENDFORM.                    " starfm_og_timateg

*&---------------------------------------------------------------------*

*&      Form  check_time_is_rejected

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM check_time_is_rejected.

  SELECT SINGLE absta INTO it_afru-absta

    FROM vbup AS vbup

    INNER JOIN vbap AS vbap ON vbup~vbeln = vbap~vbeln

                           AND vbup~posnr = vbap~posnr

    WHERE vbap~zzrueck = it_afru-rueck

    AND   vbap~zzrmzhl = it_afru-rmzhl.

  IF sy-subrc = 0.

    IF it_afru-absta = 'C'.

      it_afru-hafnad = it_afru-ismnw.

    ENDIF.

    MODIFY it_afru.

  ENDIF.

ENDFORM.                    " check_time_is_rejected

*---------------------------------------------------------------------*

*       FORM USER_COMMAND                                             *

*---------------------------------------------------------------------*

*       ........                                                      *

*---------------------------------------------------------------------*

FORM user_command USING ucomm selfield.

ENDFORM.                    "user_command

* JRF 11.2013

*&---------------------------------------------------------------------*

*&      Form  set_no_cancellation_l

*&---------------------------------------------------------------------*

*       set select options for no cancellation

*----------------------------------------------------------------------*

FORM set_no_cancellation_l .

  IF NOT no_canc IS INITIAL.

    gr_stzhl-sign   = 'I'.

    gr_stzhl-option = 'EQ'.

    gr_stzhl-low    = '00000000'.

    APPEND gr_stzhl.

    gr_stokz-sign   = 'I'.

    gr_stokz-option = 'EQ'.

    gr_stokz-low    = ' '.

    APPEND gr_stokz.

  ENDIF.

ENDFORM.                    " set_no_cancellation_l

* END JRF 11.2013


Thanks


Avadhut

Read only

0 Likes
2,357

I see the statement if p_venju = 'X' as commented in your code.

Read only

0 Likes
2,357

Hi,

You can write the selects based on the radio button! if first radio button selected, wether you can try execute the code based on this! or

after FM you can referesh the internal tables which are not relavent for the selected radio button.

Read only

0 Likes
2,357

The statement IF p_venju = 'X' is of no use that why it is commented out.

Read only

Former Member
0 Likes
2,357

Hi,

Data type of function module parameter interface and program fields data type not matching.

Regards,

Read only

Former Member
0 Likes
2,357

I do not go to MARA table. Can you please help?




FORM handle_user_command USING r_ucomm LIKE sy-ucomm

                                rs_selfield TYPE slis_selfield.

   CASE r_ucomm.

     WHEN '&IC1'.

       SET PARAMETER ID 'DTB' FIELD 'MARA'.

       PERFORM bdc_dynpro      USING 'SAPMSRD0' '0102'.

       PERFORM bdc_field       USING 'BDC_CURSOR' 'RSRD1-TBMA_VAL'.

       PERFORM bdc_field       USING 'BDC_OKCODE' '=BACK'.

       PERFORM bdc_field       USING 'RSRD1-TBMA' 'X'.

       PERFORM bdc_field       USING 'RSRD1-TBMA_VAL' 'MARA'.

       PERFORM bdc_dynpro      USING 'SAPLSD41' '2200'.

       PERFORM bdc_field       USING 'BDC_CURSOR' 'DD02D-TABCLTEXT'.

       PERFORM bdc_field       USING 'BDC_OKCODE' '=TDSH'.

       PERFORM bdc_field       USING 'BDC_SUBSCR' 'SAPLSD41'.

      CALL  TRANSACTION 'SE11' USING bdcdata MODE 'E'.

  ENDCASE.

ENDFORM.                    "handle_user_command







FORM BDC_DYNPRO USING PROGRAM TYPE ANY

                      DYNPRO TYPE ANY.

  CLEAR BDCDATA.

  BDCDATA-PROGRAM  = PROGRAM.

  BDCDATA-DYNPRO   = DYNPRO.

  BDCDATA-DYNBEGIN = 'X'.

  APPEND BDCDATA TO BDCDATA.

ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*

*        Insert field *

*----------------------------------------------------------------------*

FORM BDC_FIELD USING FNAM TYPE ANY

                     FVAL TYPE ANY.

  CLEAR BDCDATA.

  BDCDATA-FNAM = FNAM.

  BDCDATA-FVAL = FVAL.

  APPEND BDCDATA TO BDCDATA.

ENDFORM.                    "BDC_FIELD