Application Development 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: 

SD Invoice (item) update FM/BAPI

Former Member
0 Kudos

Hi all!

I've been trying tu update a item field (VBRP-VKAUS). But its not working.

this is a part of my code where I'm doing it:

CALL FUNCTION 'RV_INVOICE_DOCUMENT_READ'
          EXPORTING
            konv_read                  = 'X'
            vbrk_i                     = l_vbrk
          TABLES
            xkomv                      = xkomv
            xvbpa                      = xvbpa
            xvbrk                      = xvbrk
            xvbrp                      = xvbrp.

        IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.

        LOOP AT xkomv WHERE knumh IS NOT INITIAL.
          SELECT * FROM konp
          APPENDING CORRESPONDING FIELDS OF TABLE xkomp
          WHERE knumh = xkomv-knumh .

        ENDLOOP.

        READ TABLE xvbrp ASSIGNING <vbrp> WITH KEY
        vbeln = l_vbrp-vbeln
        posnr = l_vbrp-posnr.

        CHECK sy-subrc = 0.

        MOVE 'E' TO <vbrp>-abrvw.
        MOVE 'E' TO <vbrp>-vkaus.

        CALL FUNCTION 'RV_INVOICE_ITEM_MAINTAIN'
          EXPORTING
            vbrp_i                  = l_vbrp
           redetermine_tp          = 'X'
          IMPORTING
            vbrp_e                  = z_vbrp
          TABLES
            xkomfk                  = xkomfk
            xkomv                   = xkomv
            xthead                  = xthead
            xvbfs                   = xvbfs
            xvbpa                   = xvbpa
            xvbrk                   = xvbrk
            xvbrp                   = xvbrp
            xvbss                   = xvbss.

        yvbrp[] = xvbrp[].

        READ TABLE xvbrp ASSIGNING <vbrp> WITH KEY
        vbeln = l_vbrp-vbeln
        posnr = l_vbrp-posnr.

        CHECK sy-subrc = 0.

        MOVE 'E' TO <vbrp>-abrvw.
        MOVE 'E' TO <vbrp>-vkaus.

        READ TABLE xvbrk INDEX 1.

        CALL FUNCTION 'RV_INVOICE_DOCUMENT_UPDATE'
            EXPORTING
              vbsk_i             = ivbsk
              pricing_type       = 'A'
            TABLES
              xkomfk             = xkomfk
              xkomk              = xkomk
              xkomp              = xkomp
              xkomv              = xkomv
              xthead             = xthead
              xvbfs              = xvbfs
              xvbpa              = xvbpa
              xvbrk              = xvbrk
              xvbrp              = xvbrp
              xvbss              = xvbss.

This operation is done by item. Actualy, tables parameters only contains a single line (item that I need to change).

Am I doing somethig wrong? Is there another way???

Thanks all!

Carlos

1 REPLY 1

Former Member
0 Kudos

No need to break your mind!!! 😛

I've found the solution:

First:

Call function 'RV_INVOICE_ITEM_MAINTAIN'

then, to make changes efective:

Call function 'RV_INVOICE_DOCUMENT_ADD'

with parameters:

WITH_POSTING = 'A'

PREISFINDUNGSART = 'I'

Hope that it helps somebody!

cheers!

Edited by: Carlos Constantino on Nov 7, 2008 5:12 PM