2006 Dec 21 9:56 AM
Hi all,
I am using field symbols in my program. Program is going dump for some company codes and working fine for some company codes.
I am confused. Please check this code where the error is shown.
LOOP AT i_final ASSIGNING <fs_final>.
AT NEW belnr.
if <fs_final>-wt_withcd = 'SF' or <fs_final>-wt_withcd = 'XF' OR <fs_final>- wt_withcd = 'WF'.
MOVE <fs_final> TO wa_final1.
g_qsatz = wa_final1-qsatz.
APPEND wa_final1 TO i_final1.
CLEAR wa_final1.
ENDIF.
ENDAT.
READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
IF <fs_final>-wt_withcd = 'SF'.
<fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb1 = <fs_final>-wt_qbshb.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
ENDIF.
IF <fs_final>-wt_withcd = 'XF'.
<fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb2 = <fs_final>-wt_qbshb.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
ENDIF.
IF <fs_final>-wt_withcd = 'WF'.
<fs_final1>-wt_withcd = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb = <fs_final>-wt_qbshb.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
ENDIF.
AT END OF belnr.
<fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
clear g_qsatz.
ENDAT.
ENDLOOP.
Please check the code and help me.
Thanks in advance,
Shalem
2006 Dec 21 10:08 AM
HI Shalem
Please check this code:
LOOP AT i_final ASSIGNING <fs_final>.
AT NEW belnr.
if <fs_final>-wt_withcd = 'SF' or
<fs_final>-wt_withcd = 'XF' OR
<fs_final>- wt_withcd = 'WF'.
MOVE <fs_final> TO wa_final1.
g_qsatz = wa_final1-qsatz.
APPEND wa_final1 TO i_final1.
CLEAR wa_final1.
ENDIF.
ENDAT.
READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
IF sy-subrc EQ 0.
CASE <fs_final>-wt_withcd.
WHEN 'SF'.
<fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb1 = <fs_final>-wt_qbshb.
WHEN 'XF'.
<fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb2 = <fs_final>-wt_qbshb.
WHEN 'WF'.
<fs_final1>-wt_withcd = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb = <fs_final>-wt_qbshb.
ENDCASE.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
AT END OF belnr.
<fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
clear g_qsatz.
ENDAT.
ENDIF.
ENDLOOP.Kind Regards
Eswar
HI Shalem
Please check this code:
LOOP AT i_final ASSIGNING <fs_final>.
AT NEW belnr.
if <fs_final>-wt_withcd = 'SF' or
<fs_final>-wt_withcd = 'XF' OR
<fs_final>- wt_withcd = 'WF'.
MOVE <fs_final> TO wa_final1.
g_qsatz = wa_final1-qsatz.
APPEND wa_final1 TO i_final1.
CLEAR wa_final1.
ENDIF.
ENDAT.
READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
IF sy-subrc EQ 0.
CASE <fs_final>-wt_withcd.
WHEN 'SF'.
<fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb1 = <fs_final>-wt_qbshb.
WHEN 'XF'.
<fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb2 = <fs_final>-wt_qbshb.
WHEN 'WF'.
<fs_final1>-wt_withcd = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb = <fs_final>-wt_qbshb.
ENDCASE.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
AT END OF belnr.
<fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
clear g_qsatz.
ENDAT.
ENDIF.
ENDLOOP.Kind Regards
Eswar
2006 Dec 21 10:01 AM
For this problem the best way is to debug and checkout , slowly debug and check for which company code it is giving dump and analyse if it is different from others
2006 Dec 21 10:02 AM
Hi
When you do the READ TABLE i_final1 ASSIGNING <fs_final1>.
It could be that there is no value for it in <fs_final>. As a result of this
<fs_final1> is not getting assigned and hence when you pass the value
to <fs_final1> the short dump occurs
2006 Dec 21 10:08 AM
HI Shalem
Please check this code:
LOOP AT i_final ASSIGNING <fs_final>.
AT NEW belnr.
if <fs_final>-wt_withcd = 'SF' or
<fs_final>-wt_withcd = 'XF' OR
<fs_final>- wt_withcd = 'WF'.
MOVE <fs_final> TO wa_final1.
g_qsatz = wa_final1-qsatz.
APPEND wa_final1 TO i_final1.
CLEAR wa_final1.
ENDIF.
ENDAT.
READ TABLE i_final1 ASSIGNING <fs_final1> WITH KEY belnr = <fs_final>-belnr.
IF sy-subrc EQ 0.
CASE <fs_final>-wt_withcd.
WHEN 'SF'.
<fs_final1>-wt_withcd1 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb1 = <fs_final>-wt_qbshb.
WHEN 'XF'.
<fs_final1>-wt_withcd2 = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb2 = <fs_final>-wt_qbshb.
WHEN 'WF'.
<fs_final1>-wt_withcd = <fs_final>-wt_withcd.
<fs_final1>-wt_qbshb = <fs_final>-wt_qbshb.
ENDCASE.
<fs_final1>-qsatz = <fs_final1>-qsatz + <fs_final>-qsatz.
AT END OF belnr.
<fs_final1>-qsatz = <fs_final1>-qsatz - g_qsatz.
clear g_qsatz.
ENDAT.
ENDIF.
ENDLOOP.Kind Regards
Eswar
2006 Dec 21 10:30 AM
By your description of the problem it indicates that the issue is purely driven by data and not the code. I agree with Dominic that it can be the issue but it would nice if you can provide the details about the dump and if you try and check in the debugger the particular record values.
Regards
Anurag
2006 Dec 22 10:26 AM
Hey,
Thanks for all your valuable help. It Really helped me. I gave points to the more helpful answer.
Best Regards,
Shalem
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |