Select con variables de DB externa

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • gatex
    Junior Member
    • sep
    • 4

    #1

    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')
  • gatex
    Junior Member
    • sep
    • 4

    #2
    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.

    Comentario

    Trabajando...