2014 Jan 25 5:03 PM
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.
2014 Jan 27 12:01 PM
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
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
2014 Jan 25 5:37 PM
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.
2014 Jan 25 5:44 PM
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
2014 Jan 27 12:01 PM
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
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
2014 Jan 27 12:38 PM
I see the statement if p_venju = 'X' as commented in your code.
2014 Jan 27 12:42 PM
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.
2014 Jan 27 12:59 PM
The statement IF p_venju = 'X' is of no use that why it is commented out.
2014 Jan 27 12:11 PM
Hi,
Data type of function module parameter interface and program fields data type not matching.
Regards,
2014 Jan 27 12:52 PM
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