cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

DBIF_RSQL_INVALID_ CX_SY_OPEN_SQL_DB

Antonio08
Discoverer
0 Likes
181

Good afternoon!

I'm trying to run the program below but it's giving the following DUMP: DBIF_RSQL_INVALID_RS
CX_SY_OPEN_SQL_DB, could someone help me solve the problem?  Below is my code.

REPORT  ztsar_report_order_management.

TYPE-POOLSslis.

TABLESt001wmaraafkot003omkalcaufvjesttj02ttj30afposer05objk.

TYPESBEGIN OF y_final,
       aufnr          TYPE caufv-aufnr,
       plnbez         TYPE caufv-plnbez,
       maktx          TYPE makt-maktx,
       gamng          TYPE caufv-gamng,
       wemng          TYPE afpo-wemng,
       vfmng          TYPE afpo-vfmng,
       werks          TYPE caufv-werks,
       status_sistema TYPE LENGTH 40,
       status_usuario TYPE LENGTH 8,
       total_ns       TYPE LENGTH 40,
       psmng          TYPE afpo-wemng,
       status_confirm TYPE LENGTH 20,
      END OF y_final,


BEGIN OF y_caufv,
aufnr  TYPE caufv-aufnr,
auart  TYPE caufv-auart,
werks  TYPE caufv-werks,
objnr  TYPE caufv-objnr,
gltrp  TYPE caufv-gltrp,
gstrp  TYPE caufv-gstrp,
rsnum  TYPE caufv-rsnum,
gamng  TYPE caufv-gamng,
plnbez TYPE caufv-plnbez,
plnme  TYPE caufv-plnme,
END OF y_caufv,

BEGIN OF y_makt,
maktx  TYPE makt-maktx,
matnr  TYPE makt-matnr,
spras  TYPE makt-spras,
END OF y_makt,

BEGIN OF y_t001w,
werks TYPE t001w-werks,
END OF y_t001w,

BEGIN OF y_jest,
objnr  TYPE jest-objnr,
inact   TYPE jest-inact,
stat    TYPE jest-stat,
END OF y_jest,

BEGIN OF y_mara,
matnr TYPE mara-matnr,
END OF y_mara,


BEGIN OF y_afpo,
aufnr  TYPE afpo-aufnr,
vfmng   TYPE afpo-vfmng,
wemng   TYPE afpo-wemng,
pamng   TYPE afpo-pamng,
elikz   TYPE afpo-elikz,
verid  TYPE afpo-verid,
END OF y_afpo,

BEGIN OF y_mkal,
mdv01   TYPE mkal-mdv01,
matnr   TYPE mkal-matnr,
werks   TYPE mkal-werks,
verid   TYPE mkal-verid,
END OF y_mkal,

BEGIN OF y_mkal2,
         matnr TYPE mkal-matnr,
         verid TYPE mkal-verid,
       END OF y_mkal2,

BEGIN OF y_ser05,
ppaufnr  TYPE ser05-ppaufnr,
obknr    TYPE ser05-obknr,
total_ns TYPE i,
END OF y_ser05,

BEGIN OF y_objk,
obknr   TYPE objk-obknr,
equnr   TYPE objk-equnr,
sernr   TYPE objk-sernr,
END OF y_objk,

BEGIN OF y_afko,
aufnr TYPE afko-aufnr,
gstrp TYPE afko-gstrp,
END OF y_afko,

BEGIN OF y_t003o,
auart TYPE t003o-auart,
END OF y_t003o,

BEGIN OF y_tj02t,
spras TYPE tj02t-spras,
istat TYPE tj02t-istat,
txt04 TYPE tj02t-txt04,
END OF y_tj02t,

BEGIN OF y_tj30,
stsma TYPE tj30-stsma,
estat TYPE tj30-estat,
END OF y_tj30,

t_caufv  TYPE y_caufv,
t_makt   TYPE y_makt,
t_jest   TYPE y_jest,
t_tj02t  TYPE y_tj02t,
t_tj30   TYPE y_tj30,
t_afpo   TYPE y_afpo,
t_ser05  TYPE y_ser05,
t_objk   TYPE y_objk,
t_final  TYPE y_final,
t_mkal   TYPE y_mkal,
t_afko   TYPE y_afko,
t_t003o  TYPE y_t003o,

y_t_final TYPE STANDARD TABLE OF t_final,
y_t_caufv TYPE STANDARD TABLE OF t_caufv,
y_t_mkal  TYPE STANDARD TABLE OF t_mkal,
y_t_afko  TYPE STANDARD TABLE OF t_afko,
y_t_afpo  TYPE STANDARD TABLE OF t_afpo,
y_t_t003o TYPE STANDARD TABLE OF t_t003o,
y_t_tj30  TYPE STANDARD TABLE OF t_tj30,
y_t_jest  TYPE STANDARD TABLE OF t_jest,
y_t_tj02t TYPE STANDARD TABLE OF t_tj02t,
y_t_ser05 TYPE STANDARD TABLE OF t_ser05,
y_t_objk  TYPE STANDARD TABLE OF t_objk.


DATAt_caufv   TYPE STANDARD TABLE OF y_caufv,
      w_caufv   TYPE t_caufv,

      t_mkal    TYPE TABLE OF y_mkal,
      w_mkal    TYPE t_mkal,

      t_mkal2   TYPE TABLE OF y_mkal2,
      w_mkal2   TYPE y_mkal2,

      t_jest    TYPE TABLE OF y_jest,
      w_jest    TYPE t_jest,

      t_tj02t   TYPE TABLE OF y_tj02t,
      w_tj02t   LIKE LINE OF t_tj02t,

      t_tj30    TYPE TABLE OF y_tj30,
      w_tj30    LIKE LINE OF t_tj30,

      t_afpo    TYPE TABLE OF y_afpo,
      w_afpo    TYPE t_afpo,

      t_ser05   TYPE TABLE OF y_ser05,
      w_ser05   LIKE LINE OF t_ser05,

      t_objk    TYPE TABLE OF y_objk,
      w_objk    LIKE LINE OF t_objk,

      t_final   TYPE TABLE OF y_final,
      w_final   TYPE t_final,

      t_makt    TYPE TABLE OF y_makt,
      w_makt    LIKE LINE OF t_makt.

SELECTION-SCREEN BEGIN OF BLOCK 002 WITH FRAME TITLE text-002.
PARAMETERSp_werks TYPE caufv-werks OBLIGATORY.

SELECT-OPTIONS:
  s_aufnr FOR caufv-aufnr,
  s_matnr FOR caufv-plnbez,
  s_auart FOR caufv-auart,
  s_gstrp FOR caufv-gstrp.

*SELECT-OPTIONS: s_matnr FOR mara-matnr  MATCHCODE OBJECT mat1,
*                s_aufnr FOR caufv-aufnr MATCHCODE OBJECT aufnr,
*                s_auart FOR t003o-auart MATCHCODE OBJECT auart,
*                s_mdv01 FOR mkal-mdv01  MATCHCODE OBJECT mdv01,
*                s_gstrp FOR afko-gstrp  MATCHCODE OBJECT gstrp.
SELECTION-SCREEN END OF BLOCK 002.

SELECTION-SCREEN BEGIN OF BLOCK 003 WITH FRAME TITLE text-003.
PARAMETERSp_lib AS CHECKBOX DEFAULT 'X',
            p_abas    AS CHECKBOX,
            p_numser  AS CHECKBOX,
            p_prod    AS CHECKBOX,
            p_conc    AS CHECKBOX,
            p_encer  AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK 003.

AT SELECTION-SCREEN.

  IF p_lib IS INITIAL AND
     p_abas IS INITIAL AND
     p_numser IS INITIAL AND
     p_prod IS INITIAL AND
     p_conc IS INITIAL AND
     p_encer IS INITIAL.
    MESSAGE 'Selecionar no mínimo um código de Status' TYPE 'E'.
  ENDIF.

  SELECT aufnr werks gltrp gstrp rsnum gamng plnbez plnme objnr
    FROM caufv
    INTO TABLE t_caufv
    WHERE aufnr  IN s_aufnr
      AND plnbez IN s_matnr
      AND werks  p_werks
      AND auart  IN s_auart
      AND gstrp  IN s_gstrp.

    IF sy-subrc <> 0.
  MESSAGE 'Nenhuma ordem encontrada.' TYPE 'I'.
ENDIF.

  SELECT objnr stat inact
    FROM jest
    INTO TABLE t_jest
    FOR ALL ENTRIES IN t_caufv
    WHERE  objnr t_caufv-objnr
       AND inact ''.

  SELECT istat spras txt04
    FROM tj02t
    INTO TABLE t_tj02t
    FOR ALL ENTRIES IN t_jest
    WHERE istat t_jest-stat
      AND spras 'PT'.

  SELECT stsma estat
    FROM tj30
    INTO TABLE t_tj30
    FOR ALL ENTRIES IN t_jest
    WHERE stsma 'ZPP_HEL'
      AND estat t_jest-stat.

  SELECT aufnr vfmng wemng psmng pamng elikz verid
    FROM afpo
    INTO TABLE t_afpo
    FOR ALL ENTRIES IN t_caufv
    WHERE aufnr t_caufv-aufnr.

  SELECT matnr werks mdv01
    FROM mkal
    INTO TABLE t_mkal
    FOR ALL ENTRIES IN t_caufv
    WHERE matnr t_caufv-plnbez
    AND werks t_caufv-werks.

  SELECT matnr verid
    FROM mkal
    INTO TABLE t_mkal2
    FOR ALL ENTRIES IN t_afpo
    WHERE verid t_afpo-verid.

  SELECT obknr ppaufnr
    FROM ser05
    INTO TABLE t_ser05
    FOR ALL ENTRIES IN t_caufv
    WHERE ppaufnr t_caufv-aufnr.

  SELECT obknr equnr
    FROM objk
    INTO TABLE t_objk
    FOR ALL ENTRIES IN t_ser05
    WHERE obknr t_ser05-obknr.

  SELECT matnr spras maktx
   FROM makt
   INTO TABLE t_makt
   FOR ALL ENTRIES IN t_caufv
   WHERE matnr t_caufv-plnbez
   AND spras 'PT'.

  LOOP AT t_caufv INTO w_caufv.

    CLEAR w_final.
    w_final-aufnr   w_caufv-aufnr.
    w_final-plnbez  w_caufv-plnbez.
    w_final-werks   w_caufv-werks.
    w_final-gamng   w_caufv-gamng.

    READ TABLE t_ser05 INTO w_ser05 WITH KEY ppaufnr w_caufv-aufnr.
    IF sy-subrc 0.
      w_final-total_ns w_final-total_ns.
    ENDIF.

    LOOP AT t_jest INTO w_jest WHERE objnr w_caufv-objnr.

      READ TABLE t_tj02t INTO w_tj02t WITH KEY istat w_jest-stat.
      IF sy-subrc 0.
        CONCATENATE w_final-status_sistema w_tj02t-txt04 INTO w_final-status_sistema SEPARATED BY ' '.
      ENDIF.
    ENDLOOP.

    LOOP AT t_tj30 INTO w_tj30 WHERE estat w_jest-stat.
      CONCATENATE w_final-status_usuario w_tj30-estat INTO w_final-status_usuario SEPARATED BY ' '.
    ENDLOOP.

  read table t_makt into w_makt with key matnr w_caufv-plnbez spras 'PT'.
    if sy-subrc 0.
      w_final-maktx w_makt-maktx.
  endif.

  read table t_afpo into w_afpo with key aufnr w_caufv-aufnr.
    if sy-subrc 0.

      w_final-psmng w_afpo-pamng w_afpo-wemng.
      w_final-wemng w_afpo-wemng.
      w_final-vfmng w_afpo-vfmng.

    IF w_afpo-vfmng 0.
      w_final-status_confirm 'Não confirmado'.
    ELSEIF w_afpo-vfmng < w_caufv-gamng.
      w_final-status_confirm 'Parcialmente confirmado'.
    ELSEIF w_afpo-vfmng >= w_caufv-gamng.
      w_final-status_confirm 'CONFIRMADO'.
    ENDIF.


    DATAl_total_ns TYPE VALUE 0.

    LOOP AT t_ser05 INTO w_ser05 WHERE ppaufnr w_caufv-aufnr.
      READ TABLE t_objk INTO w_objk WITH KEY obknr w_ser05-obknr.
      IF sy-subrc 0.
        l_total_ns l_total_ns + 1.
      ENDIF.
    ENDLOOP.

    w_final-total_ns l_total_ns.
   ENDIF.
  ENDLOOP.


  PERFORM saida.

*&---------------------------------------------------------------------*
*&      Form  SAIDA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM saida.
*
*  CLEAR:   ls_fieldcat.
*  REFRESH: lt_fieldcat.

  DATA:  lt_fieldcat TYPE          slis_t_fieldcat_alv,
         ls_fieldcat TYPE LINE OF  slis_t_fieldcat_alv,
         lv_layout   TYPE          slis_layout_alv.

  ls_fieldcat-fieldname 'AUFNR'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Ordem'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'PLNBEZ'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Material'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'MAKTX'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Descrição'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'GAMNG'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Quantidade da Ordem'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'WEMNG'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Quantidade Fornecida'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'VFMNG'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_l 'Quantidade Confirmada'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'WERKS'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Centro'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'STATUS_SISTEMA'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Status de Sistema'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'STATUS_USUARIO'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Status de Usuário'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'TOTAL_NS'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'NS Atribuído'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'PSMNG'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_m 'Saldo a Produzir'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname 'STATUS_CONFIRM'.
  ls_fieldcat-tabname   't_final'.
  ls_fieldcat-seltext_l 'Status de Confirmação'.
  ls_fieldcat-just      'C'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR  ls_fieldcat.

  lv_layout-colwidth_optimize 'X'.
  lv_layout-zebra             'X'.
  lv_layout-detail_popup      'X'.


  " Exibir o ALV
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      is_layout     lv_layout
      it_fieldcat   lt_fieldcat
    TABLES
      t_outtab      t_final
    EXCEPTIONS
      program_error 1
      OTHERS        2.

ENDFORM.          


Antonio08_0-1744306729092.png

Thanks....

 

Accepted Solutions (0)

Answers (0)