PDA

Ver la Versión Completa : Ayuda con BAPi


jiman1983
05/03/08, 17:05:09
Hola a todos, he estado investigando sobre una BApi pero no encuentro información al respecto. Quisiera saber si algunos de ustedes me puede ayudar, mi problema es el siguiente:

Quiero ligar un bp a un caso creado en CRM, segun me dijeron la bapi para realizar esto es BAPI_CASE_ADDELEMENTS, tengo los datos necesarios para rellenar las estructuras nada más que no se como... los datos que tengo disponibles en este momento son el GUID de caso y el número de BP con el cual quiero ligarlo. Ojalá alguien pueda ayudarme, gracias!

jiman1983
06/03/08, 17:47:31
Despues de mucho buscar y debuggear encontre la respuesta... aqui les dejo la función por si algun día se les presenta el mismo problema..

FUNCTION ZCRM_LIGARBPCASO .
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(PARTNER) TYPE BU_PARTNER
*" VALUE(ID_CASE) TYPE SCMG_EXT_KEY
*" EXCEPTIONS
*" NO_EXISTECASO
*" ERROR_DESCONOCIDO
*"----------------------------------------------------------------------

data: lt_identification like TABLE OF BAPIPROPME WITH HEADER LINE,
lt_insertion like TABLE OF bapidocins WITH HEADER LINE,
lt_relations like TABLE OF bapireltb WITH HEADER LINE,
lt_return like TABLE OF bapiret2 WITH HEADER LINE.

data: gui_case type BAPISCMGCASE-CASE_GUID,
descrip(255).

SELECT SINGLE CASE_GUID into gui_case from SCMG_T_CASE_ATTR WHERE EXT_KEY eq id_case.

IF sy-subrc eq 4.
MESSAGE ID '00' TYPE 'E' NUMBER 398
WITH 'El caso proporcionado no ha sido creado.'
RAISING NO_EXISTECASO.
ENDIF.

lt_identification-ELEM_NO = 1.
lt_identification-NAME = '%SPS_ID%' .
lt_identification-VALUE = 'CRM_BUSINESS_PARTNER'.
append lt_identification.

lt_identification-ELEM_NO = 1.
lt_identification-NAME = 'BOR_OBJECT_ID' .
lt_identification-VALUE = partner.
append lt_identification.

lt_identification-ELEM_NO = 1.
lt_identification-NAME = 'BOR_OBJECT_TYPE' .
lt_identification-VALUE = 'BUS1006'.
append lt_identification.


CONCATENATE 'Interlocutor Comercial' partner INTO descrip SEPARATED BY space.

lt_insertion-ELEM_NO = '1'.
lt_insertion-ANCHOR = 'C1'.
lt_insertion-DESCRIPTION = descrip.
append lt_insertion.

lt_relations-ELEM_NO = '1'.
lt_relations-RELATION = 'C1'.
append lt_relations.


CALL FUNCTION 'BAPI_CASE_ADDELEMENTS'
EXPORTING
GUID = gui_case
* SKIP_ERRORS =
NEW_VERSION = 'X'
TABLES
ELEMENT_IDENTIFICATION = lt_identification
ELEMENT_INSERTION = lt_insertion
* ELEMENT_ATTRIBUTES =
ELEMENT_RELATIONS = lt_relations
RETURN = lt_return
.


IF NOT lt_return[] IS INITIAL.
LOOP AT lt_return Where type = 'E'.
ENDLOOP.
MESSAGE ID '00' TYPE 'E' NUMBER 398
WITH lt_return-message
RAISING error_desconocido.
ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.


ENDFUNCTION.