Skip to Content
0
Former Member
Jun 09, 2011 at 01:58 AM

Adding negative amount in C_TH_DATA

91 Views

Hi All,

currently I'm creating function exit for adding new record in table c_th_data.

In exit there is 1 field with type amount.

the proble is every time amount field have negative value, it converted into 0 (zero).

I'm using field symbol. in work area structure it's still in negative but when it's stored temporary table ( <t> ), the value is zero.

Any advice?

  LOOP AT c_th_data INTO <s_data_wa>.
*    CREATE DATA lr_struc LIKE <l>.
*    ASSIGN lr_struc->* TO <s>.

    MOVE-CORRESPONDING <s_data_wa> TO WA_CHECK.
    MOVE-CORRESPONDING <s_data_wa> TO WA_CHECKN.
    READ TABLE T_SEG INTO WA_SEG WITH KEY FISCYEAR = WA_CHECK-0FISCYEAR
                                 COSTCENTER_SEND = WA_CHECK-0COSTCENTER.
    IF SY-SUBRC EQ 0.
      LOOP AT T_SEG INTO WA_SEG FROM SY-TABIX.
        IF WA_SEG-FISCYEAR NE WA_CHECK-0FISCYEAR OR
           WA_SEG-COSTCENTER_SEND NE WA_CHECK-0COSTCENTER.
           EXIT.
        ENDIF.
        READ TABLE T_ALLSC INTO WA_ALLSC WITH KEY ALLSTRUC = WA_SEG-ALLSTRUC.
        IF SY-SUBRC EQ 0.
          LOOP AT T_ALLSC INTO WA_ALLSC FROM SY-TABIX.
            IF WA_ALLSC-ALLSTRUC NE WA_SEG-ALLSTRUC.
              EXIT.
            ENDIF.
            IF WA_CHECK-0COSTELMNT GE WA_ALLSC-COSTELMNT_FROM AND
               WA_CHECK-0COSTELMNT LE WA_ALLSC-COSTELMNT_TO.
                  MOVE-CORRESPONDING WA_CHECK TO WA_CHECKN.
                  WA_CHECKN-0COSTELMNT = WA_ALLSC-COSTELMNT_ASS.
                  WA_CHECKN-ZAIP_AMNT = WA_CHECK-ZAIP_AMNT * WA_SEG-FACTOR / 100.
                  WA_CHECKN-ZAIP_AMNT = WA_CHECKN-ZAIP_AMNT * -1.
                  MOVE-CORRESPONDING WA_CHECKN TO <s_data_wa>.

**     in <s_data_wa>.  value stil negative*        
                  *INSERT <s_data_wa> INTO TABLE <t>.     " in <t> the value zero*              

              ENDIF.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDLOOP.
  INSERT LINES OF <t> INTO TABLE c_th_data.