11-07-2008 10:29 AM
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
11-07-2008 4:11 PM
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