#1
|
|||
|
|||
alguien que sepa mucho de BAPI_ACC_DOCUMENT_POST
Hola a todos, vuelvo con una pregunta, a ver quien me puede ayudar.
Tengo una funcion, que se las copio a continuacion, que llama a la bapi que nombré en el titulo. FUNCTION Z_EP_CASH_MVMNT . *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" VALUE(ZPEP_FI_DOC_HEADER) TYPE ZSEP_FI_DOC_HEADER *" TABLES *" ZPEP_GL_ITEM STRUCTURE ZSEP_GL_ITEM *" ZPEP_MESSAGE STRUCTURE ZSEP_MESSAGE *"---------------------------------------------------------------------- DATA: s_header TYPE bapiache09, t_accountgl TYPE TABLE OF bapiacgl09, s_accountgl TYPE bapiacgl09, t_currency TYPE TABLE OF bapiaccr09, s_currency TYPE bapiaccr09, t_return TYPE TABLE OF bapiret2, s_return TYPE bapiret2. REFRESH zpep_message. s_header-bus_act = 'RFBU'. s_header-header_txt = zpep_fi_doc_header-text. s_header-comp_code = zpep_fi_doc_header-comp_code. s_header-doc_date = zpep_fi_doc_header-doc_date. s_header-pstng_date = zpep_fi_doc_header-pos_date. s_header-doc_type = 'SA'. s_header-ref_doc_no = zpep_fi_doc_header-reference. s_header-username = sy-uname. * s_header-CURRENCY = zpep_fi_doc_header-currency. LOOP AT zpep_gl_item. s_accountgl-itemno_acc = sy-tabix. s_accountgl-gl_account = zpep_gl_item-account. s_accountgl-ITEM_TEXT = zpep_gl_item-text. s_accountgl-ALLOC_NMBR = zpep_gl_item-alloc_nmbr. s_accountgl-COSTCENTER = zpep_gl_item-COSTCENTER. s_currency-itemno_acc = s_accountgl-itemno_acc. s_currency-curr_type = '00'. s_currency-currency = zpep_fi_doc_header-currency. s_currency-amt_doccur = zpep_gl_item-amount. APPEND: s_accountgl TO t_accountgl, s_currency TO t_currency. CLEAR: s_accountgl, s_currency. ENDLOOP. CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST' EXPORTING documentheader = s_header IMPORTING obj_type = s_header-obj_type obj_key = s_header-obj_key obj_sys = s_header-obj_sys TABLES accountgl = t_accountgl currencyamount = t_currency return = t_return. IF s_header-obj_key+1 IS INITIAL. LOOP AT t_return INTO s_return. zpep_message-id = '66'. zpep_message-text = s_return-message. APPEND zpep_message. ENDLOOP. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. zpep_message-id = '00'. MESSAGE s000(zmep001) INTO zpep_message-text. append zpep_message. ENDIF. ENDFUNCTION. Bueno, el tema es el siguiente: esta funcion la utilizo en un servidor SAP 5.0 y funciona ok. Dentro de BAPI_ACC_DOCUMENT_POST se llama a check_and_fill_acc_document, y dentro de ella a reference_create_prelim. Este ultimo carga en los campos obj_type, obj_key y obj_sys los valores que necesita para seguir corriendo la bapi original. En un SAP 4.6, la bapi_acc_document_post es diferente, y no existe reference_create_prelim. El problema es que en ese servidor no se estan cargando los 3 valores de obj_type, obj_key y obj_sys y me devuelve un error porque no los tiene. ¿alguien sabe de que forma se pueden obtener estos valores? no quisiera llegar a "duplicar" la bapi original en una funcion z, por miedo a que varias cosas no funcionen, pero ademas por miedo a que si hay alguna mejora a esa bapi (nota, o lo que sea), tengamos que volver a duplicarla... gracias desde ya Maeve |
Herramientas | Buscar en Tema |
Desplegado | |
|
|