Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9233

Re: FBV0 with Custom Field Posting Error (does not exist in SAPMF05A 0300)

$
0
0

Hello Again:

 

Sorry for the late response.

Anyway, the BTE is 00001011

 

The function module it uses is as follows.

 

 

FUNCTION zfigl_interface_00001011.

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

*"*"Local Interface:

*"  IMPORTING

*"     VALUE(I_BSEG) LIKE  BSEG STRUCTURE  BSEG

*"     VALUE(I_BKPF) LIKE  BKPF STRUCTURE  BKPF

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

  DATA: ls_dim TYPE zfigl_sl,

        lt_dim LIKE STANDARD TABLE OF ls_dim.

  DATA: ls_bseg LIKE bseg,

        lv_tabix LIKE sy-tabix,

        lv_message(50) TYPE c.

  DATA: ls_sl TYPE zfigl_sl_dim.

  DATA: ls_zsl TYPE zfigl_sl_dim.



  FIELD-SYMBOLS: <fs1> TYPE any,

                 <fs2> TYPE any.

  CLEAR gs_hist.


  IF gt_hist2[] IS INITIAL.



    SELECT INTO CORRESPONDING FIELDS OF TABLE gt_hist2 FROM zfigl_sl_dim WHERE belnr = i_bseg-belnr .

    IF sy-subrc NE 0.

      SELECT buzei saknr zsl_dim FROM vbsegs INTO TABLE gt_hist2 WHERE belnr = i_bseg-belnr.

    ENDIF.

    DELETE FROM zfigl_sl_dim WHERE belnr = i_bseg-belnr.



  ENDIF.



  SELECT * FROM zfigl_sl

        INTO TABLE lt_dim

          WHERE saknr = i_bseg-hkont.

  IF sy-subrc EQ 0.

    ls_zsl-flag = 'X'. "Flag for GL with SL dimension for use in FBVB

***ADDED FOR CHANGE DOCUMENT

    IF i_bseg-belnr IS NOT INITIAL AND ( sy-tcode = 'FV60' OR

                                         sy-tcode = 'FV50' OR

                                         sy-tcode = 'FB08' OR

                                         sy-tcode = 'FBV0' OR

                                         sy-tcode = 'FBVB' OR sy-tcode = 'FBV2' )

                                   AND i_bseg-zsl_dim IS INITIAL .



      READ TABLE gt_hist2 INTO gs_hist2 WITH KEY buzei = i_bseg-buzei

                                                 hkont i_bseg-hkont.

      IF sy-subrc = 0.

        READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei         "Added 2/12/2013

                                                 hkont i_bseg-hkont.

        IF sy-subrc NE 0.

          gs_hist-buzei = i_bseg-buzei.

          gs_hist-hkont = i_bseg-hkont.

          gs_hist-zsl_dim = gs_hist2-zsl_dim.

          gs_hist-dmbtr = gs_hist2-dmbtr.

          gs_hist-flag = gs_hist2-flag.

          gs_hist-flag = 'X'.

          APPEND gs_hist TO gt_hist.

        ENDIF.

        DELETE ADJACENT DUPLICATES FROM gt_hist COMPARING buzei hkont.

      ENDIF.

    ELSEIF i_bseg-belnr IS INITIAL AND sy-tcode = 'FB08'.

      IF i_bseg-zsl_dim IS NOT INITIAL.

        gs_hist-buzei = i_bseg-buzei.

        gs_hist-hkont = i_bseg-hkont.

        gs_hist-zsl_dim = i_bseg-zsl_dim.

        gs_hist-dmbtr = gs_hist2-dmbtr.

        gs_hist-flag = 'X'.

        APPEND gs_hist TO gt_hist.

        DELETE ADJACENT DUPLICATES FROM gt_hist COMPARING buzei hkont.

      ENDIF.

    ENDIF.



    READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                             hkont i_bseg-hkont.

    IF sy-subrc NE 0 AND i_bseg-zsl_dim IS INITIAL.

      DELETE gt_hist WHERE buzei = i_bseg-buzei.

      gs_hist-buzei = i_bseg-buzei.

      gs_hist-hkont = i_bseg-hkont.

      gs_hist-zsl_dim = gs_sl-zsl_dim.

      gs_hist-dmbtr = i_bseg-dmbtr.

      gs_hist-flag = 'X'.

      APPEND gs_hist TO gt_hist.

    ELSEIF sy-subrc NE 0 AND i_bseg-zsl_dim IS NOT INITIAL.. "Added 3/12/2013

      DELETE gt_hist WHERE buzei = i_bseg-buzei.

      gs_hist-buzei = i_bseg-buzei.

      gs_hist-hkont = i_bseg-hkont.

      gs_hist-zsl_dim = i_bseg-zsl_dim.

      gs_hist-dmbtr = i_bseg-dmbtr.

      gs_hist-flag = 'X'.

      APPEND gs_hist TO gt_hist.

    ENDIF.



    IF sy-ucomm EQ 'ZK' OR sy-ucomm = 'COBL_MORE'.

      IF sy-tcode = 'FB01' OR

         sy-tcode = 'FBS1' OR

         sy-tcode = 'FBD1' OR

         sy-tcode = 'F-04' OR

         sy-tcode = 'FB50' OR

         sy-tcode = 'FB60' OR

         sy-tcode = 'FBZ1' OR

         sy-tcode = 'FB05' OR

         sy-tcode = 'FBD1' OR

         sy-tcode = 'F-02' OR

         sy-tcode = 'FBD5' OR

         sy-tcode = 'FV60' OR

         sy-tcode = 'FV50' OR

         sy-tcode = 'FBV2' OR

         sy-tcode = 'FBV0'.



        CLEAR: gs_hist , gs_sl ,lv_tabix.

        gv_saknr = i_bseg-hkont.

        READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                 hkont i_bseg-hkont.

        IF sy-subrc = 0.

          gs_sl-zsl_dim = gs_hist-zsl_dim.

          gs_hist-dmbtr = i_bseg-dmbtr.

          lv_tabix = sy-tabix.

          CALL SCREEN 0100 STARTING AT 40 10 ENDING AT 85 10.

          gs_hist-zsl_dim = gs_sl-zsl_dim.

          MODIFY gt_hist FROM gs_hist INDEX lv_tabix.

          CLEAR: gs_hist.

          ASSIGN '(SAPMF05A)BSEG-ZSL_DIM' TO <fs1>.

          ASSIGN (<fs1>) TO <fs2>.

          CHECK sy-subrc = 0.

          <fs2> = gs_sl-zsl_dim.



        ENDIF.



      ELSEIF sy-tcode = 'FVB1'.



        CLEAR: gs_hist , gs_sl ,lv_tabix.

        READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                 hkont i_bseg-hkont..

        IF sy-subrc = 0.

          gs_sl-zsl_dim = gs_hist-zsl_dim.

          gs_hist-dmbtr = i_bseg-dmbtr.

          lv_tabix = sy-tabix.

          CALL SCREEN 0100 STARTING AT 40 10 ENDING AT 85 10.

          gs_hist-zsl_dim = gs_sl-zsl_dim.

          MODIFY gt_hist FROM gs_hist INDEX lv_tabix.

          CLEAR: gs_hist.

          ASSIGN '(SAPLF040)BSEG-ZSL_DIM' TO <fs1>.

          ASSIGN (<fs1>) TO <fs2>.

          CHECK sy-subrc = 0.

          <fs2> = gs_sl-zsl_dim.

        ENDIF.

      ENDIF.



      IF sy-tcode = 'FBV2' AND i_bseg-belnr IS NOT INITIAL. "For additional Line item saving in customized table

        ls_zsl-belnr = i_bseg-belnr.

        ls_zsl-gjahr = i_bseg-gjahr.

        ls_zsl-buzei = i_bseg-buzei.

        ls_zsl-hkont = i_bseg-hkont.

        READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                 hkont = i_bseg-hkont.

        IF sy-subrc EQ 0.

          ls_zsl-zsl_dim = gs_hist-zsl_dim.

          ls_zsl-dmbtr = i_bseg-dmbtr.

          INSERT zfigl_sl_dim FROM ls_zsl.

          IF sy-subrc NE 0.

            MODIFY zfigl_sl_dim FROM ls_zsl.

          ENDIF.

          CLEAR gs_hist.

        ENDIF.

      ENDIF.





    ENDIF.



  ELSE.

    IF sy-tcode NE 'FBV0'.

      DELETE gt_hist WHERE buzei = i_bseg-buzei.

      DELETE FROM zfigl_sl_dim WHERE belnr = i_bseg-belnr AND buzei = i_bseg-buzei.

    ENDIF.

  ENDIF.







  IF sy-ucomm EQ 'BS' OR sy-ucomm EQ 'BU' OR sy-ucomm EQ 'BP'

                      OR sy-ucomm EQ 'AB' OR sy-ucomm EQ 'GO'

                      OR ( sy-ucomm = space AND sy-tcode = 'FBVB').

****For Posting of Parked Documents.

    IF sy-tcode = 'FV50' OR sy-tcode = 'FV60' OR sy-tcode = 'FBV2'.

***ADDED FOR EDIT OF PARK DOCUMENTS WITH DOCUMENT NUMBER

      IF i_bseg-belnr IS NOT INITIAL AND ( sy-tcode = 'FV60' OR sy-tcode = 'FV50' OR sy-tcode = 'FBV2').

        READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                 hkont = i_bseg-hkont.

        IF sy-subrc EQ 0.

          ls_zsl-belnr = i_bseg-belnr.

          ls_zsl-gjahr = i_bseg-gjahr.

          ls_zsl-buzei = gs_hist-buzei.

          ls_zsl-hkont = gs_hist-hkont.

          ls_zsl-zsl_dim = gs_hist-zsl_dim.

          INSERT zfigl_sl_dim FROM ls_zsl.

          UPDATE vbsegs SET zsl_dim = gs_hist-zsl_dim

                            sgtxt = gs_hist-zsl_dim

                                                        WHERE belnr = i_bseg-belnr

                                                          AND gjahr = i_bseg-gjahr

                                                          AND buzei = gs_hist-buzei

                                                          AND saknr = gs_hist-hkont.

          IF sy-subrc NE 0.

            MODIFY zfigl_sl_dim FROM ls_zsl.

          ENDIF.

        ENDIF.

      ENDIF.

****END ADDED

      IF i_bseg-belnr IS NOT INITIAL AND ( sy-ucomm EQ 'BS' OR sy-ucomm EQ 'BU'  ).



        SELECT SINGLE *

          FROM zfigl_sl_dim

          INTO ls_sl

          WHERE belnr = i_bseg-belnr

          AND gjahr = i_bseg-gjahr

            AND buzei = i_bseg-buzei.

        IF sy-subrc = 0.

          READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                   hkont i_bseg-hkont.

          IF sy-subrc = 0.

            gs_hist-zsl_dim = ls_sl-zsl_dim.

            MODIFY gt_hist FROM gs_hist INDEX sy-tabix.

            IF sy-batch IS INITIAL.       "Inserted by jperalta 12/14/2012, to avoid deletion of parked documents run in background

              DELETE zfigl_sl_dim FROM ls_sl.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

***When Parking transfer the value to bseg For Posting and saving

    IF ( sy-tcode = 'FV50' OR

         sy-tcode = 'FV60' OR

         sy-tcode = 'FB50' OR

         sy-tcode = 'FB60' OR

         sy-tcode = 'FBV0' OR

         sy-tcode = 'FBVB' ) .



      IF sy-tcode = 'FBV0'. "For use in FBVB Transaction

        ls_zsl-belnr = i_bseg-belnr.

        ls_zsl-gjahr = i_bseg-gjahr.

        ls_zsl-buzei = i_bseg-buzei.

        ls_zsl-hkont = i_bseg-hkont.

        IF i_bseg-zsl_dim IS NOT INITIAL.

          ls_zsl-zsl_dim = i_bseg-zsl_dim.

        ELSE.

          READ TABLE gt_hist INTO gs_hist WITH KEY buzei = i_bseg-buzei

                                                   hkont = i_bseg-hkont.

          IF sy-subrc EQ 0.

            ls_zsl-zsl_dim  = gs_hist-zsl_dim.

          ENDIF.

        ENDIF.

        ls_zsl-dmbtr = i_bseg-dmbtr.

        IF i_bseg-dmbtr = 0.

          DELETE gt_hist WHERE buzei = i_bseg-buzei.

        ELSE.

          DATA: lv_buzei TYPE buzei.

          SELECT MAX( buzei ) FROM zfigl_sl_dim INTO lv_buzei WHERE belnr = i_bseg-belnr.



          IF gv_buzei NE i_bseg-buzei.

            gv_buzei = i_bseg-buzei.

            IF i_bseg-buzei NE '001'.

              ls_zsl-buzei = lv_buzei + 1.

            ENDIF.

            INSERT zfigl_sl_dim FROM ls_zsl.

            IF sy-subrc NE 0.

              MODIFY zfigl_sl_dim FROM ls_zsl.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.





      READ TABLE gt_hist INTO gs_hist WITH KEY buzei i_bseg-buzei

                                               hkont i_bseg-hkont.

      IF sy-subrc = 0.

        gs_sl-zsl_dim = gs_hist-zsl_dim.

        ASSIGN '(SAPMF05A)BSEG-ZSL_DIM' TO <fs1>.

        ASSIGN (<fs1>) TO <fs2>.

        CHECK sy-subrc = 0.

        <fs2> = gs_sl-zsl_dim.

      ENDIF.

    ENDIF.

****For Checking of SL.

    IF gt_hist[] IS NOT INITIAL.

      IF sy-tcode EQ 'FBVB'.

        READ TABLE gt_hist INTO gs_hist WITH KEY zsl_dim = space

                                                 flag = 'X'.

      ELSE.

        READ TABLE gt_hist INTO gs_hist WITH KEY zsl_dim = space.

      ENDIF.

      IF sy-subrc EQ 0.

        CONCATENATE 'Please Input SL Dimension for GL'

                      gs_hist-hkont INTO lv_message SEPARATED BY space.

        MESSAGE lv_message TYPE 'E'.

      ENDIF.

    ENDIF.

  ENDIF.

***END


ENDFUNCTION.


Viewing all articles
Browse latest Browse all 9233

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>