Ver Mensaje Individual
  #3  
Viejo 23/01/20, 16:57:30
sconoredhot sconoredhot is offline
Senior Member
 
Fecha de Ingreso: feb 2008
Localización: Argentina, Rosario
Mensajes: 341
Ejemplo

te paso un ejemplo para poder modificar proveedores en la parte de sociedad en la BP:

DATA: ls_data_prov TYPE vmds_ei_extern,
ls_data_comp TYPE vmds_ei_company,
ls_data_tax TYPE vmds_ei_wtax_type,
ls_proveedor TYPE vmds_ei_main,
ls_mensajes TYPE cvis_message,
ls_mensaje TYPE bapiret2.

DATA: lv_msg TYPE string.

CLEAR: ls_data_prov,
ls_data_comp,
ls_data_tax,
ls_proveedor,
ls_mensajes.
"Proveedor a modificar
ls_data_prov-header-object_instance-lifnr = pf_lfbw-lifnr.
ls_data_prov-header-object_task = 'M'.
"Sociedad
ls_data_comp-data_key-bukrs = pf_lfbw-bukrs.
ls_data_comp-task = 'M'.
"Datos de la retención a modificar
ls_data_tax-data_key = pe_witht.
ls_data_tax-task = pe_task."'M'.
ls_data_tax-data-wt_subjct = pe_lfbw-wt_subjct.
ls_data_tax-datax-wt_subjct = 'X'.
ls_data_tax-data-qsrec = pe_lfbw-qsrec.
ls_data_tax-datax-qsrec = 'X'.
ls_data_tax-data-wt_withcd = pe_wt_withcd.
ls_data_tax-datax-wt_withcd = 'X'.
ls_data_tax-data-wt_exnr = pe_lfbw-wt_exnr.
ls_data_tax-datax-wt_exnr = 'X'.
ls_data_tax-data-wt_exrt = pe_lfbw-wt_exrt.
ls_data_tax-datax-wt_exrt = 'X'.
ls_data_tax-data-wt_exdf = pe_lfbw-wt_exdf.
ls_data_tax-datax-wt_exdf = 'X'.
ls_data_tax-data-wt_exdt = pe_lfbw-wt_exdt.
ls_data_tax-datax-wt_exdt = 'X'.
ls_data_tax-data-wt_wtexrs = pe_lfbw-wt_wtexrs.
ls_data_tax-datax-wt_wtexrs = 'X'.

APPEND: ls_data_tax TO ls_data_comp-wtax_type-wtax_type,
ls_data_comp TO ls_data_prov-company_data-company,
ls_data_prov TO ls_proveedor-vendors.

CALL METHOD vmd_ei_api=>initialize( ).

CLEAR: ls_mensajes.
CALL METHOD vmd_ei_api=>maintain_bapi
EXPORTING
iv_test_run = space
iv_collect_messages = 'X'
is_master_data = ls_proveedor
IMPORTING
es_message_defective = ls_mensajes.

IF ls_mensajes-is_error EQ 'X'.
ps_status = icon_red_light.
CLEAR ls_mensaje.
READ TABLE ls_mensajes-messages INTO ls_mensaje WITH KEY id = 'E'.
IF sy-subrc IS INITIAL.
CLEAR lv_msg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = ls_mensaje-id
no = ls_mensaje-number
v1 = ls_mensaje-message_v1
v2 = ls_mensaje-message_v2
v3 = ls_mensaje-message_v3
v4 = ls_mensaje-message_v4
IMPORTING
msg = lv_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
ps_result = lv_msg.
ENDIF.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ps_status = icon_green_light.
ps_result = TEXT-016.
REPLACE: '&1' IN ps_result WITH pe_lifnr,
'&2' IN ps_result WITH gc_rg18.
ENDIF.

Espero que te sirva.
Slds.
__________________
Sebas

Desarrollador ABAP.
Responder Con Cita