on 2025 Apr 10 6:41 PM
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-POOLS: slis.
TABLES: t001w, mara, afko, t003o, mkal, caufv, jest, tj02t, tj30, afpo, ser05, objk.
TYPES: BEGIN 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 c LENGTH 40,
status_usuario TYPE c LENGTH 8,
total_ns TYPE c LENGTH 40,
psmng TYPE afpo-wemng,
status_confirm TYPE c 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.
DATA: t_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.
PARAMETERS: p_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.
PARAMETERS: p_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.
DATA: l_total_ns TYPE i 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.
Thanks....
Request clarification before answering.
| User | Count |
|---|---|
| 7 | |
| 6 | |
| 6 | |
| 5 | |
| 4 | |
| 3 | |
| 3 | |
| 3 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.