Power Builder - Base de datos MaxDB

   
Vista:
Imágen de perfil de antonio

Base de datos MaxDB

Publicado por antonio (1114 intervenciones) el 25/02/2012 21:00:36
Hola a todos:

¿Alguien sabessi PowerBuilder se puede conectar a una base de datos llamada MaxDB ?

Esta base de datos la usa el SAP.

Si tienen un ejemplo se los agradecere infinitamente.


Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Base de datos MaxDB

Publicado por Daniel Giugliano (1 intervención) el 11/03/2012 22:35:47
Hola Antonio, yo solo me he podido conectar via RFC, pero no directamente... tu ha podido conectar directamente????

Avisame .

Anexo te emvio como he podido extraer informacion desde MAXDB

oleobject objBAPICONTROL
oleobject sapConnection
oleobject objUserList
oleobject lo_obj_captura
oleobject objtabfield
integer il_sapok, i, ll_num_filas
string ls_datos, st_sociedad
Long ll_new, ll_ejercicio, ll_dias_vencido

objBAPICONTROL = create oleobject
il_sapok = objBAPIControl.ConnectToNewObject( "SAP.Functions" )

sapConnection = objBAPIControl.Connection


sapConnection.Client = "400"
sapConnection.Language = "ES"
sapConnection.System = "P01"
sapConnection.SystemNumber = "00"
sapConnection.Applicationserver = "192.168.101.11"
sapConnection.User = "dgiugliano"
sapConnection.Password = "valencia13"
sapConnection.AutoLogon = True

dw_1.reset()
dw_2.reset()

If sapConnection.Logon(0, True) <> True Then
MessageBox ("Cannot logon!","Logon Failed!")
Else
// MessageBox ("Logon!","Logon Successful!")
End If

objuserlist = objbapicontrol.add("RFC_READ_TABLE")
objuserlist.exports("QUERY_TABLE","BSID")
objtabfield = objuserlist.Tables("FIELDS")
objtabfield.AppendRow()
objtabfield.Value(1, "FIELDNAME", "BUKRS")
objtabfield.AppendRow()
objtabfield.Value(2, "FIELDNAME", "KUNNR")
objtabfield.AppendRow()
objtabfield.Value(3, "FIELDNAME", "BELNR")
objtabfield.AppendRow()
objtabfield.Value(4, "FIELDNAME", "BLART")
objtabfield.AppendRow()
objtabfield.Value(5, "FIELDNAME", "SHKZG")
objtabfield.AppendRow()
objtabfield.Value(6, "FIELDNAME", "ZBD1T")
objtabfield.AppendRow()
objtabfield.Value(7, "FIELDNAME", "BLDAT")
objtabfield.AppendRow()
objtabfield.Value(8, "FIELDNAME", "DMBTR")



IF objuserlist.call() = true then
lo_obj_captura = objuserlist.tables("Data")

ll_num_filas = lo_obj_captura.rowcount()

// dw_1.dataobject = "d_sap_bsid"
dw_1.setTransObject(sqlca)
for i = 1 to ll_num_filas
ls_datos = lo_obj_captura.value(i, 1)
st_sociedad = mid(ls_datos, 1, 4)
if st_sociedad = ls_cia then
ll_new = dw_1.insertrow(0)
dw_1.setitem(ll_new, "burkrs", mid(ls_datos, 1, 4))
dw_1.setitem(ll_new, "KUNNR", mid(ls_datos, 5, 10))
dw_1.setitem(ll_new, "BELNR", mid(ls_datos, 15, 10))
//dw_1.setitem(ll_new, "BLDAT", mid(ls_datos, 27, 10))
dw_1.setitem(ll_new, "BLART", mid(ls_datos, 25, 2))
dw_1.setitem(ll_new, "SHKZG", mid(ls_datos, 27, 1))
dw_1.setitem(ll_new, "ZBD1T", mid(ls_datos, 28, 3))
dw_1.setitem(ll_new, "BLDAT", mid(ls_datos, 31, 8))
dw_1.setitem(ll_new, "DMBTR", mid(ls_datos, 39, 12))
end if
next
end if


// Borra archivo de Credito y Cobranza
DELETE FROM tctxc ;
COMMIT;

Long j
String st_indicador
dec{2} ld_monto_deuda
ll_new =0
for j = 1 to dw_1.rowcount()

Long ll_dias, ll_fec_doc, ll_fec_venc
Date dd_dia_vencimiento
String st_fecha
ll_new = dw_2.insertrow(0)
ll_ejercicio = j
if ll_ejercicio > 9999 then
ll_ejercicio = 1
end if
dw_2.setitem(ll_new, "ccejer", ll_ejercicio)
dw_2.setitem(ll_new, "ccperi", 99)
dw_2.setitem(ll_new, "cctdoc", trim(dw_1.getitemstring(j,"blart")))
dw_2.setitem(ll_new, "ccndoc", trim(dw_1.getitemstring(j,"belnr")))
ll_fec_doc = long(dw_1.getitemstring(j,"bldat"))
st_fecha = mid(string(ll_fec_doc),7,2) + '/' +mid(string(ll_fec_doc),5,2) + '/' +mid(string(ll_fec_doc),1,4)
dw_2.setitem(ll_new, "ccfech", ll_fec_doc)
ll_dias = long(dw_1.getitemstring(j,"zbd1t"))
dd_dia_vencimiento = relativedate( date(st_fecha), ll_dias )
ll_fec_venc = long(mid(string(dd_dia_vencimiento),7,4) + mid(string(dd_dia_vencimiento),4,2) + mid(string(dd_dia_vencimiento),1,2) )
dw_2.setitem(ll_new, "ccfeve", ll_fec_venc)
dw_2.setitem(ll_new, "ccccli", trim(dw_1.getitemstring(j,"kunnr")))

st_indicador = trim(dw_1.getitemstring(j,"SHKZG"))

ld_monto_deuda = dec(dw_1.getitemstring(j,"dmbtr"))

if st_indicador = 'H' then
dw_2.setitem(ll_new, "ccpvta", ld_monto_deuda * -1 )
dw_2.setitem(ll_new, "ccpacu", 0 )
dw_2.setitem(ll_new, "ccsald", ld_monto_deuda * -1)
else
dw_2.setitem(ll_new, "ccpvta", ld_monto_deuda )
dw_2.setitem(ll_new, "ccpacu", 0 )
dw_2.setitem(ll_new, "ccsald", ld_monto_deuda )
end if

ll_dias_vencido = daysafter( dd_dia_vencimiento , today() )
dw_2.setitem(ll_new, "ccpado", ll_dias_vencido )

next

dw_2.SetTransObject(sqlca)
IF dw_2.Update() = 1 THEN
Commit;
ELSE
Rollback;
Messagebox("Advertencia","Error de Base de Datos")
END IF










Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar