die Tabelle wird nur in dieser Methode benutzt und wird mit einem Select auf die DB aufgebaut.Haubi hat geschrieben:Leider schreibst Du nicht, wie die Tabelle aufgebaut wird und wo Du sie sonst benutzt.
Code: Alles auswählen.
SELECT * FROM prps
INTO CORRESPONDING FIELDS OF TABLE lt_prps
WHERE prctr IN lr_prctr
AND pkokr = i_kokrs.
Das war auch meine Befürchtung. Dann ist ein Loop also unumgänglich.Haubi hat geschrieben:Wenn Du aber vorhast, mit ER_OBJNR auch wieder eine DB-Abfrage zu machen verdoppelt sich Dein Problem. Eventuell wäre es also besser, die Objektnummern direkt aus LT_PRPS in ER_OBJNR zu übernehmen - ohne DB-Zugriff.
Jop, der ist aber zigmal schneller als die DB-Abfrage. Außerdem benötigst Du ihn sowieso für Deinen COLLECT, der da noch rumgeisterte.c oco hat geschrieben:Hi Haubi,
die Tabelle wird nur in dieser Methode benutzt und wird mit einem Select auf die DB aufgebaut.Haubi hat geschrieben:Leider schreibst Du nicht, wie die Tabelle aufgebaut wird und wo Du sie sonst benutzt.Code: Alles auswählen.
SELECT * FROM prps INTO CORRESPONDING FIELDS OF TABLE lt_prps WHERE prctr IN lr_prctr AND pkokr = i_kokrs.
Das war auch meine Befürchtung. Dann ist ein Loop also unumgänglich.Haubi hat geschrieben:Wenn Du aber vorhast, mit ER_OBJNR auch wieder eine DB-Abfrage zu machen verdoppelt sich Dein Problem. Eventuell wäre es also besser, die Objektnummern direkt aus LT_PRPS in ER_OBJNR zu übernehmen - ohne DB-Zugriff.
Gruß
coco
Code: Alles auswählen.
DATA: lt_prps TYPE HASHED TABLE OF ty_pspnr WITH UNIQUE KEY objnr.
DELETE lt_prps_auth WHERE display IS NOT INITIAL.
IF lt_prps_auth IS NOT INITIAL.
mx_check_authority = abap_true.
ENDIF.
lt_prps = lt_prps_tmp.
REFRESH lt_prps_tmp.
LOOP AT lt_prps_auth ASSIGNING <fs_prps_auth>.
READ TABLE lt_prps ASSIGNING <fs_prps> WITH TABLE KEY objnr = <fs_prps_auth>-objnr.
IF sy-subrc = 0.
DELETE TABLE lt_prps FROM <fs_prps>.
ENDIF.
ENDLOOP.
LOOP AT lt_prps ASSIGNING <fs_prps>.
lsr_objnr-low = <fs_prps>-objnr.
APPEND lsr_objnr TO er_objnr.
CLEAR: ls_pspnr_info.
ls_pspnr_info-posid = <fs_prps>-posid.
ls_pspnr_info-pspnr = <fs_prps>-pspnr.
ls_pspnr_info-objnr = <fs_prps>-objnr.
ls_pspnr_info-prctr = <fs_prps>-prctr.
ls_pspnr_info-post1 = <fs_prps>-post1.
ls_pspnr_info-psphi = <fs_prps>-psphi.
ls_pspnr_info-pkokr = <fs_prps>-pkokr.
ls_pspnr_info-izwek = <fs_prps>-izwek.
ls_pspnr_info-isize = <fs_prps>-isize.
INSERT ls_pspnr_info INTO TABLE et_pspnr_info.
ls_prctr_info-prctr = <fs_prps>-prctr.
ls_prctr_info-kokrs = <fs_prps>-pkokr.
COLLECT ls_prctr_info INTO et_prctr_info.
ENDLOOP.