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
20/07/10, 16:16:18
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
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web