Code: Alles auswählen.
DATA: begin of iNBEW occurs 0,
FALNR like N1ANF-PATNR,
BWIDT like NBEW-BWIDT,
end of iNBEW.
DATA: begin of iNLEM occurs 0,
ANFID like NLEM-ANFID,
IBGDT like NLEM-IBGDT,
end of iNLEM.
DATA: begin of iN1ANF occurs 0, "Ausgabe
FALNR like N1ANF-FALNR,
PATNR like N1ANF-PATNR,
ANFID like N1ANF-ANFID,
IBGDT like NLEM-IBGDT,
ERDAT like N1ANF-ERDAT,
TAGE TYPE i,
end of iN1ANF.
clear iN1ANF. refresh iN1ANF.
clear iNLEM. refresh iNLEM.
SELECT FALNR BWIDT FROM NBEW into corresponding fields of table iNBEW
WHERE FALNR BETWEEN S_FALLNR-LOW AND S_FALLNR-HIGH
AND BWART = 'OP'
AND STORN = ' '.
SELECT ANFID IBGDT FROM NLEM CLIENT SPECIFIED INTO CORRESPONDING FIELDS OF TABLE iNLEM for all entries in iNBEW
WHERE FALNR = iNBEW-FALNR
AND IBGDT = iNBEW-BWIDT
AND ERBOE = 'OP'
AND OPNR = ' '
AND STOID = ' '.
SELECT FALNR PATNR ERDAT ANFID FROM N1ANF CLIENT SPECIFIED into corresponding fields of table iN1ANF for all entries in iNLEM
WHERE ANFID = iNLEM-ANFID.
LOOP AT iNLEM.
LOOP AT iN1ANF WHERE ANFID = iNLEM-ANFID.
MOVE-CORRESPONDING iNLEM TO iN1ANF.
MODIFY iN1ANF.
ENDLOOP.
ENDLOOP.
LOOP AT iN1ANF.
iN1ANF-TAGE = iN1ANF-IBGDT - iN1ANF-ERDAT.
MODIFY iN1ANF.
DELETE ADJACENT DUPLICATES FROM iN1ANF
COMPARING ANFID.
ENDLOOP.
Code: Alles auswählen.
LOOP AT iNLEM.
LOOP AT iN1ANF WHERE ANFID = iNLEM-ANFID.
MOVE-CORRESPONDING iNLEM TO iN1ANF.
MODIFY iN1ANF.
ENDLOOP.
ENDLOOP
Code: Alles auswählen.
LOOP AT iN1ANF.
iN1ANF-TAGE = iN1ANF-IBGDT - iN1ANF-ERDAT.
MODIFY iN1ANF.
DELETE ADJACENT DUPLICATES FROM iN1ANF
COMPARING ANFID.
ENDLOOP
Code: Alles auswählen.
LOOP AT itab ASSIGNING <wa>
Code: Alles auswählen.
loop at itab. Modify...
Code: Alles auswählen.
SELECT INTO TABLE
Code: Alles auswählen.
SELECT INTO CORRESPONDING FIELDS OF TABLE
Code: Alles auswählen.
clear iN1ANF. refresh iN1ANF.
clear iNLEM. refresh iNLEM.
Code: Alles auswählen.
SELECT FALNR BWIDT FROM NBEW into corresponding fields of table iNBEW
Code: Alles auswählen.
for all entries in iNBEW
DAS INTO CORRESPONDING FILEDS bei den SELECTS kannst du rausnehmen. Da die ITABS genau die Felder in richtiger Reihenfolge enthalten, die du liestswonny hat geschrieben:Könntet Ihr mir ein paar performance tipps geben?
Ja, das ist glaube ich der hauptgrund, ich habe wirklich nicht gerade eindeutige keyfelder bzw zu wenige.ewx hat geschrieben:Hi!
mach mal eine Laufzeitanalyse (SE30), dann siehst du, wo genau viel Zeit verbraucht wird. Evtl. ist es ein Select, bei dem du zu wenig keyfelder mitgibst und es keinen Index auf der Tabelle gibt.