cancel
Showing results for 
Search instead for 
Did you mean: 

Insert new Partner to KNVP

emin78
Explorer
0 Kudos
FUNCTION z_knvp_insert_partner.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_KUNNR) TYPE KUNNR
*" VALUE(I_VKORG) TYPE VKORG
*" VALUE(I_VTWEG) TYPE VTWEG
*" VALUE(I_SPART) TYPE SPART
*" VALUE(I_PARVW) TYPE PARVW
*" VALUE(I_PARNR) TYPE PARNR
*" EXCEPTIONS
*" EXSIST
*"----------------------------------------------------------------------

DATA: t_xknvp TYPE TABLE OF fknvp,
t_yknvp TYPE TABLE OF fknvp,
ls_knvp TYPE fknvp,
ls_knvp_old TYPE fknvp,
ls_kna1 TYPE kna1,
ls_knb1 TYPE knb1.



SELECT SINGLE * FROM kna1 INTO ls_kna1
WHERE kunnr = i_kunnr.

SELECT SINGLE * FROM knb1 INTO ls_knb1
WHERE kunnr = i_kunnr.

ls_knvp-kunnr = i_kunnr.
ls_knvp-vkorg = i_vkorg.
ls_knvp-vtweg = i_vtweg.
ls_knvp-spart = i_spart.
ls_knvp-parvw = i_parvw.
ls_knvp-parnr = i_parnr.
ls_knvp-kz = 'I'.

*Prüfen ob ein Eintrag mit diesen Parametern bereits exsistiert!
SELECT SINGLE * FROM knvp INTO CORRESPONDING FIELDS OF ls_knvp_old
WHERE kunnr = i_kunnr
AND vkorg = i_vkorg
AND vtweg = i_vtweg
AND spart = i_spart
AND parvw = i_parvw
AND parnr = i_parnr.

IF ls_knvp_old IS NOT INITIAL.
RAISE exsist.
EXIT.
ENDIF.

APPEND ls_knvp TO t_xknvp. "Neue Daten
* APPEND ls_knvp TO t_yknvp. Alte Daten.

CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
EXPORTING
i_kna1 = ls_kna1
i_knb1 = ls_knb1
TABLES
t_xknvp = t_xknvp
t_yknvp = t_yknvp
* EXCEPTIONS
* OTHERS = 23
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
COMMIT WORK AND WAIT .
ENDIF.



ENDFUNCTION.

The FuBa exits with Error message 'exsist'.

Why?

irfanjazz1
Participant
0 Kudos

for this line going to exit. because data is coming from select query. try to debug the program or FM.

IF ls_knvp_old IS NOT INITIAL.
RAISE exsist.
EXIT.
ENDIF.

write this code it will be work.

IF ls_knvp_old IS INITIAL.
RAISE exsist.
EXIT.
ENDIF.

Accepted Solutions (0)

Answers (0)