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

Going for dump while using field symbols

Former Member
0 Likes
829

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
807

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

5 REPLIES 5
Read only

Former Member
0 Likes
807

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

Read only

Former Member
0 Likes
807

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

Read only

Former Member
0 Likes
808

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

Read only

Former Member
0 Likes
807

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

Read only

Former Member
0 Likes
807

Hey,

Thanks for all your valuable help. It Really helped me. I gave points to the more helpful answer.

Best Regards,

Shalem