alguien que sepa mucho de BAPI_ACC_DOCUMENT_POST

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • maeve
    Junior Member
    • abr
    • 17

    #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
Trabajando...