Ver la Versión Completa : Select con variables de DB externa
Necesito ayuda, pues necesito desarrollar un programa que lea las variables de una Base de datos externa al sap, y con esto realizar un select a las tablas BSEG y BKPF o un join de los dos, la tabla esta formada por 4 columnas: TABLA, CAMPO, INDICADOR, CONDICION. Por ejemplo existe una fila con los siguientes campos: BSEG, BELNR, SUM(DMBTR), GJAHR = '2009'. y finalmente con estos datos realizar un insert a una tabla. (select BELNR SUM(DMBTR) FROM BSEG into IT_ROWS where GJAHR = '2009')
DATA: dbs TYPE dbcon-con_name.
DATA: con(20) TYPE c.
CON = 'OWBSAP'. "DB Connection in DBCO above
DATA: BEGIN OF wa OCCURS 15,
P_TAB like dd02l-tabname,
P_CAMP(100) type c,
END OF wa.
DATA: BEGIN OF itbl OCCURS 15,
TABNAME like dd02l-tabname,
CAMP(100) type c,
COUNT_ROWS TYPE I,
END OF itbl.
EXEC SQL.
connect to :con
ENDEXEC.
EXEC SQL.
set connection :con
ENDEXEC.
EXEC SQL.
OPEN C FOR
SELECT tabla_fuente, campo from sap_registros where procesar = 'SI'
ENDEXEC.
DO.
EXEC SQL.
FETCH NEXT C INTO :wa
ENDEXEC.
IF sy-subrc NE 0.
EXIT.
ENDIF.
APPEND wa TO itbl.
ENDDO.
EXEC SQL.
CLOSE C
ENDEXEC.
EXEC SQL.
DISCONNECT :CON
ENDEXEC.
LOOP AT itbl.
SELECT SINGLE tabname INTO itbl-TABNAME
FROM dd02l
WHERE tabname EQ itbl-TABNAME.
IF sy-subrc <> 0.
itbl-COUNT_ROWS = '0'.
ELSE.
SELECT (itbl-campo) COUNT( * ) INTO itbl-COUNT_ROWS FROM (itbl-TABNAME) .
ENDIF.
EXEC SQL.
connect to :con
ENDEXEC.
EXEC SQL.
set connection :con
ENDEXEC.
EXEC SQL.
update sap_registros
set NRO_REGISTROS_SAP = :itbl-COUNT_ROWS, PROCESAR = 'NO'
WHERE TABLA_FUENTE = :itbl-TABNAME
ENDEXEC.
ENDLOOP.
No funciona.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web