MUNDOSAP

MUNDOSAP (foro/index.php)
-   Otros lenguajes: VB, JAVA (foro/forumdisplay.php?f=6)
-   -   Problema curioso en llamada a BAPI desde VB (foro/showthread.php?t=36621)

henryq 06/05/10 13:53:02

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 20/07/10 16:16:18

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


Husos Horarios son GMT. La hora en este momento es 11:04:36.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web