miércoles, 20 de enero de 2010

Conectar SAP con DB SQL e insertar registros en el SQL directamente

En ABAP podemos grabar directamente en una DB externa a pedido de algún cliente, en este caso había que conectarse con una DB SQL Server, esto se realiza manteniendo una conexión con la DB y desde abap usando SQL NATIVO.

Pasos a seguir.
1- Establecer la conexión via tx DBCO


Enlace DB: es el nombre que nosotros queramos es el nombre con el cual dsp en el Código usaremos.
SGBD: Es el tipo de Server MSS (SQL Server)
Usuario y Password para acceder a la DB
Info Con.: El string de conexión con la DB.

2- Código Fuente
El SQL Nativo debemos ejecutarlo dentro de sentencias.
EXEC SQL
...
ENDEXEC.

"Primero nos conectamos
EXEC SQL.
CONNECT TO 'MULTINT3R' AS 'R'
ENDEXEC.

EXEC SQL.
SET CONNECTION 'R'
ENDEXEC.

"Loopeamos la tabla interna que deseamos grabar e insertamos los valores
LOOP AT IT_SQL.
EXEC SQL.
INSERT INTO ZRemito
(Remito, RemitoInterno, OT, Modelo, IMEI, ModReemp, IMEIReemp, Garantia, Precio, Moneda, NroFormularioSIC,Operador, TipoReg, codFallaAccionParte, FallaAccionParte, TextoFallaAccionParte, Cantidad, FechaHora,Usuario)
VALUES (:IT_SQL-REMITO, :IT_SQL-remito_sap, :IT_SQL-aufnr,:IT_SQL-Modelo, :IT_SQL-imei, :IT_SQL-modreemp,:IT_SQL-IMEIReemp, :IT_SQL-Garantia, :IT_SQL-Precio, :IT_SQL-Moneda, :IT_SQL-FSIC, :IT_SQL-Operador,:IT_SQL-LETRA, :IT_SQL-COD, :IT_SQL-Falla, :IT_SQL-Falla_t, :IT_SQL-Cantidad, :IT_SQL-Fecha, :IT_SQL-Usuario)
ENDEXEC.
ENDLOOP.

EXEC SQL.
SET CONNECTION DEFAULT
ENDEXEC.

No hay comentarios:

Publicar un comentario