MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Tabla sin rellenar (foro/showthread.php?t=77106)

sapbcvl 09/05/17 13:52:58

Tabla sin rellenar
 
Hola, estoy intentando recuperar informacion y almacenarla en una workarea, pero de los 17 campos que hay solo se guarda 1 (cstatut). El programa no falla, pero en el debug no se almacenan el resto de valores.

Adjunto codigo:

TYPES: BEGIN OF ty_sortie,
zelcstatutboncii TYPE zpm_boncii-cstatut,
zelnumeroe TYPE zpm_signalisatio-nenrrec,
zdate_fin_tran TYPE zpm_signalisatio-dattransai,
zheure_fin_tran TYPE zpm_signalisatio-dattransai,
zdate_arrive TYPE zpm_intervent-datdint,
zheure_arrive TYPE zpm_intervent-datdint,
zheure_fin_int TYPE zpm_intervent-datfiint,
zellibmotifsig TYPE zpm_signalisatio-cmotifsig,
zelmotifusg TYPE zpm_signalisatio-motifusg,
zellnatincid TYPE zpm_incident-cnatincid,
zellnatconsta TYPE zpm_intervent-cnatconsta,
facteurcause TYPE zpm_incident-cnatincid,
zellnatdepan TYPE zpm_incident-cnatdepan,
zelactrenf TYPE zpm_incident-actrenf,
zellsuitinc TYPE zpm_incident-csuitinc,
zelresumeint TYPE zpm_intervent-resumeint,
zerror TYPE char200,
END OF ty_sortie.

DATA: wa_sortie TYPE ty_sortie.

SELECT SINGLE idsig INTO lv_idsig
FROM zpm_signalisatio
WHERE numpdl = i_pce_number
%_HINTS ORACLE 'INDEX("ZPM")'.


SELECT cstatut INTO wa_sortie
FROM zpm_boncii
WHERE idsig = lv_idsig.
ENDSELECT.

SELECT cmotifsig nenrrec dattransai motifusg INTO CORRESPONDING FIELDS OF wa_sortie
FROM zpm_signalisatio
WHERE idsig = lv_idsig.
ENDSELECT.

SELECT datdint datfiint cnatconsta resumeint INTO CORRESPONDING FIELDS OF wa_sortie
FROM zpm_intervent
WHERE idsig = lv_idsig.
ENDSELECT.

SELECT cnatincid cnatincid cnatdepan actrenf csuitinc INTO CORRESPONDING FIELDS OF wa_sortie
FROM zpm_incident
WHERE idsig = lv_idsig.
ENDSELECT.

Gracias

damianrvgq 09/05/17 14:52:10

Nombre de los campos de la estructura
 
Hola sapbcvl,

Al hacer las Select con INTO CORRESPONDING FIELDS OF...los nombres de los campos de las tablas y los de la estructura deben coincidir. Para tu ejemplo:

TYPES: BEGIN OF ty_sortie,
cstatut TYPE zpm_boncii-cstatut,
nenrrec TYPE zpm_signalisatio-nenrrec,
dattransai TYPE zpm_signalisatio-dattransai,
dattransai TYPE zpm_signalisatio-dattransai, "No puede haber campos que quieras recuperar de diferentes tablas que tengan el mismo nombre
datdint TYPE zpm_intervent-datdint,
datdint TYPE zpm_intervent-datdint,
datfiint TYPE zpm_intervent-datfiint,
cmotifsig TYPE zpm_signalisatio-cmotifsig,
motifusg TYPE zpm_signalisatio-motifusg,
cnatincid TYPE zpm_incident-cnatincid,
cnatconsta TYPE zpm_intervent-cnatconsta,
cnatincid TYPE zpm_incident-cnatincid,
cnatdepan TYPE zpm_incident-cnatdepan,
actrenf TYPE zpm_incident-actrenf,
csuitinc TYPE zpm_incident-csuitinc,
resumeint TYPE zpm_intervent-resumeint,
zerror TYPE char200,
END OF ty_sortie.

Una BestPractice sería sustituir los SELECT..ENDSELECT por SELECT SINGLE, no se si las has puesto así por algún requerimiento en concreto.

Un saludo.

sapbcvl 10/05/17 07:53:04

Muchas gracias, me ha servido!


Husos Horarios son GMT. La hora en este momento es 09:24:12.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web