Problema curioso en llamada a BAPI desde VB

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • henryq
    Junior Member
    • oct
    • 26

    #1

    Problema curioso en llamada a BAPI desde VB

    Hola.

    Esto realizando una llamada a una BAPI para obtener el listado de proyectos definidos en SAP y mostrarlos en una report hecho con Visual Studio.
    El problema es que la bapi tiene como parametro TABLES una tabla para insertar rangos de seleccion (como SELECT-OPTIONS).

    Pues bien, estoy introduciendo:
    ORDEN.Value(1, "SIGN") = "I"
    ORDEN.Value(1, "OPTION") = "CP"
    ORDEN.Value(1, "LOW") = "P/ETO/" (Este es el inicio del código de proyecto según la máscara)

    Pero no selecciona nada.

    Sin embargo si informo la tabla de la siguiete forma:
    ORDEN.Value(1, "SIGN") = "I"
    ORDEN.Value(1, "OPTION") = "CP"
    ORDEN.Value(1, "LOW") = "P*ETO*"

    Entonces si obtengos registros en la selección.

    En SAP ejecuto la BAPI con ambos parámetros de seleccion y en ambos casos encuentro registros. Ademas exites proyectos que empiezan por "P/ETO/"

    Está claro que el problema está en el "/". ¿Alguien sabe por qué me ocurre esto, ó alguna vez tuvo un problema parecido?
    Gracias
  • sapclen
    Junior Member
    • sep
    • 9

    #2
    BAPI_ACC_DOCUMENT_POST no guarda datos

    Al invocar el objeto BAPI_ACC_DOCUMENT_POST no guarda datos en la tabla BKPF y BSEG, pero si genera el numero de documento, el cual da como respuesta.

    Mi codigo es el siguiente, alguna idea??

    Set objbapiacc = SAPConn.Add("BAPI_ACC_DOCUMENT_POST")

    Set objDocumentHeader = objbapiacc.Exports("DOCUMENTHEADER")

    ' Datos de DocumentHeader

    objDocumentHeader.Value("BUS_ACT") = "RFBU"
    objDocumentHeader.Value("USERNAME") = "RY06336"
    objDocumentHeader.Value("HEADER_TXT") = ActiveSheet.Cells(4, 7).Value
    objDocumentHeader.Value("COMP_CODE") = "0876"
    objDocumentHeader.Value("DOC_DATE") = CDate("05/07/2010")
    objDocumentHeader.Value("PSTNG_DATE") = CDate("05/07/2010")
    objDocumentHeader.Value("TRANS_DATE") = CDate("05/07/2010")
    objDocumentHeader.Value("FISC_YEAR") = 2010
    objDocumentHeader.Value("FIS_PERIOD") = 7
    objDocumentHeader.Value("DOC_TYPE") = "PM"
    objDocumentHeader.Value("REF_DOC_NO") = ActiveSheet.Cells(4, 2).Value


    ' Datos para accountgl

    Set objaccountgl = objbapiacc.Tables("ACCOUNTGL")

    objaccountgl.AppendRow
    objaccountgl.Value(1, "ITEMNO_ACC") = 1
    objaccountgl.Value(1, "GL_ACCOUNT") = "5731105561"
    objaccountgl.Value(1, "ITEM_TEXT") = "TRANSFERENCIA BCO CONTINENTAL A BCP"
    objaccountgl.Value(1, "REF_KEY_3") = "CONTINENTAL A BCP"
    objaccountgl.Value(1, "ACCT_TYPE") = "S"
    objaccountgl.Value(1, "COMP_CODE") = "0876"
    objaccountgl.Value(1, "BUS_AREA") = "EC00"
    objaccountgl.Value(1, "FIS_PERIOD") = 7
    objaccountgl.Value(1, "FISC_YEAR") = 2010
    objaccountgl.Value(1, "PSTNG_DATE") = CDate("05/07/2010")
    objaccountgl.Value(1, "VALUE_DATE") = CDate("05/07/2010")


    ' Datos para accountreceivable

    Set objaccountreceivable = objbapiacc.Tables("ACCOUNTRECEIVABLE")

    objaccountreceivable.AppendRow
    objaccountreceivable.Value(1, "ITEMNO_ACC") = 1
    objaccountreceivable.Value(1, "GL_ACCOUNT") = "5731105561"
    objaccountreceivable.Value(1, "REF_KEY_3") = "CONTINENTAL A BCP"
    objaccountreceivable.Value(1, "COMP_CODE") = "0876"
    objaccountreceivable.Value(1, "BUS_AREA") = "EC00"
    objaccountreceivable.Value(1, "ITEM_TEXT") = "TRANSFERENCIA DE BCO CONTINENTAL A BCP"
    objaccountreceivable.Value(1, "PYMT_CUR_ISO") = "PES"
    objaccountreceivable.Value(1, "PYMT_AMT") = 4.1

    ' Datos para objaccountpayable

    Set objaccountpayable = objbapiacc.Tables("ACCOUNTPAYABLE")

    objaccountpayable.AppendRow
    objaccountpayable.Value(1, "ITEMNO_ACC") = 1
    objaccountpayable.Value(1, "GL_ACCOUNT") = "5731105561"
    objaccountpayable.Value(1, "REF_KEY_3") = "CONTINENTAL A BCP"
    objaccountpayable.Value(1, "COMP_CODE") = "0876"
    objaccountpayable.Value(1, "BUS_AREA") = "EC00"
    objaccountpayable.Value(1, "ITEM_TEXT") = "TRANSFERENCIA DE BCO CONTINENTAL A BCP"
    objaccountpayable.Value(1, "PYMT_CUR_ISO") = "PES"
    objaccountpayable.Value(1, "PYMT_AMT") = 4.1

    Set objcurrencyamount = objbapiacc.Tables("CURRENCYAMOUNT")

    objcurrencyamount.AppendRow
    objcurrencyamount.Value(1, "ITEMNO_ACC") = 1
    objcurrencyamount.Value(1, "CURR_TYPE") = 30
    objcurrencyamount.Value(1, "CURRENCY") = "PES"


    objbapiacc.Call

    Dim objwait As Object
    Set objbapicommit = SAPConn.Add("BAPI_TRANSACTION_COMMIT")
    Set objwait = objbapicommit.Exports("WAIT")
    objwait.Value = "X"

    objbapicommit.Call

    Dim objreturn As Object
    Set objreturn = objbapiacc.Tables("RETURN")

    Set objkey = objbapiacc.Imports("OBJ_KEY")

    Dim mensaje As String
    mensaje = CStr(objkey)


    If mensaje = "$" Then
    Call DisplayError(objreturn)
    Set objbapirollback = SAPConn.Add("BAPI_TRANSACTION_ROLLBACK")
    objbapirollback.Call

    End If


    'SAPConn.Logoff
    Set objbapiacc = Nothing
    Set SAPConn = Nothing
    Alexander Clen Riva Cc.
    Area de Desarrollo de Software
    BizPartner - Perú
    www.bizpartner.biz
    ariva@bizpartner.biz

    Comentario

    Trabajando...