Code: Alles auswählen.
Form fehlend_dso.
if miss_obj = 'X'.
SORT l_t_rsdodso DESCENDING BY odsobject+6(2).
DESCRIBE TABLE l_t_rsdodso LINES l_tabix.
DO.
CLEAR: ty_rsdodso, ty_rsdodso2.
READ TABLE l_t_rsdodso INTO ty_rsdodso INDEX l_tabix.
IF sy-subrc EQ 0.
SUBTRACT 1 FROM l_tabix.
READ TABLE l_t_rsdodso INTO ty_rsdodso2 INDEX l_tabix.
ENDIF.
ADD 1 TO ty_rsdodso-odsobject+6(2).
WHILE ty_rsdodso-odsobject+6(2) LT ty_rsdodso2-odsobject+6(2).
WRITE: /01 'Fehlendes Objekt', ty_rsdodso-odsobject.
ADD 1 TO ty_rsdodso-odsobject+6(2).
ENDWHILE.
IF ty_rsdodso2-odsobject IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDIF.
Endform.
Code: Alles auswählen.
if objekt = 'O01'.
PERFORM dso.
PERFORM ODSO.
if last_obj = 'X' and next_obj <> 'X' and miss_obj <> 'X'.
PERFORM lastobj_dso.
ELSEIF next_obj = 'X' and last_obj <> 'X' and miss_obj <> 'X' .
PERFORM nextobj_dso.
ELSEIF last_obj = 'X' and next_obj = 'X' and miss_obj <> 'X'.
PERFORM bothobj_dso.
Elseif miss_obj = 'X' and last_obj <> 'X' and next_obj <> 'X'.
PERFORM fehlend_dso.
ELSEIF last_obj <> 'X' and next_obj <> 'X'.
PERFORM allausg_dso.
Endif.
ENDIF.
Heute morgen war ich in der KFZ-Werstatt. Hab dem Schrauber gesagt: "Auto ist kaputt, mach mal ganz" und bin gegangen. Der hat schön doof geschaut, aber wird den Fehler mit dem Kühlwasser schon irgendwann finden.patlau hat geschrieben:Existiert aber 01,02,05, dann funktioniert es nicht...
Code: Alles auswählen.
Form fehlend_iobj.
if miss_obj = 'X'.
SORT l_t_rsdiobj DESCENDING BY iobjnm+7(1).
DESCRIBE TABLE l_t_rsdiobj LINES l_tabix.
DO.
CLEAR: ty_rsdiobj, ty_rsdiobj2.
READ TABLE l_t_rsdiobj INTO ty_rsdiobj INDEX l_tabix.
IF sy-subrc EQ 0.
SUBTRACT 1 FROM l_tabix.
READ TABLE l_t_rsdiobj INTO ty_rsdiobj2 INDEX l_tabix.
ENDIF.
ADD 1 TO ty_rsdiobj-iobjnm+7(1).
WHILE ty_rsdiobj-iobjnm+7(1) LT ty_rsdiobj2-iobjnm+7(1).
WRITE: /01 'Ausgelassenes Objekt, welches zuerst erstellt werden muss: ', ty_rsdiobj-iobjnm.
ADD 1 TO ty_rsdiobj-iobjnm+7(1).
ENDWHILE.
IF ty_rsdiobj2-iobjnm IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDIF.
Endform.
Angenommen in deiner Tabelle wären folgende Einträge:SORT l_t_rsdiobj DESCENDING BY iobjnm+7(1).
Wenn der aktuelle Wert in ty_rsdiobj-iobjnm+7(1) gerade 9 ist, dann hast du ein Problem. Entweder es gibt einen Dump oder das Ergebnis ist 0.ADD 1 TO ty_rsdiobj-iobjnm+7(1).
Code: Alles auswählen.
if objekt = 'O01'.
PERFORM dso.
PERFORM ODSO.
if miss_obj = 'X'.
PERFORM fehlend_dso.
elseif last_obj = 'X' and next_obj <> 'X' .
PERFORM lastobj_dso.
ELSEIF next_obj = 'X' and last_obj <> 'X'.
PERFORM nextobj_dso.
ELSEIF last_obj = 'X' and next_obj = 'X' .
PERFORM bothobj_dso.
ELSEIF last_obj <> 'X' and next_obj <> 'X'.
PERFORM allausg_dso.
Endif.
ENDIF.
Form fehlend_dso.
if miss_obj = 'X'.
SORT l_t_rsdodso DESCENDING BY odsobject.
DESCRIBE TABLE l_t_rsdodso LINES l_tabix.
DO.
CLEAR: ty_rsdodso, ty_rsdodso2.
READ TABLE l_t_rsdodso INTO ty_rsdodso INDEX l_tabix.
IF sy-subrc EQ 0.
SUBTRACT 1 FROM l_tabix.
READ TABLE l_t_rsdodso INTO ty_rsdodso2 INDEX l_tabix.
ENDIF.
ADD 1 TO ty_rsdodso-odsobject+7(2).
WHILE ty_rsdodso-odsobject+7(2) LT ty_rsdodso2-odsobject+7(2).
WRITE: /01 'Ausgelassenes Objekt, welches zuerst erstellt werden muss: ', ty_rsdodso-odsobject.
ADD 1 TO ty_rsdodso-odsobject+7(2).
ENDWHILE.
IF ty_rsdodso2-odsobject IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDIF.
Endform.
Code: Alles auswählen.
if objekt <> 'O01' and objekt <> 'O02' and miss_obj <> 'X'.
PERFORM infos.
elseif objekt <> 'O01' and objekt <> 'O02' and miss_obj = 'X'.
PERFORM fehlend_iobj.
ENDIF.
Form fehlend_iobj.
if miss_obj = 'X'.
SORT l_t_rsdiobj DESCENDING BY iobjnm.
DESCRIBE TABLE l_t_rsdiobj LINES l_tabix.
DO.
CLEAR: ty_rsdiobj, ty_rsdiobj2.
READ TABLE l_t_rsdiobj INTO ty_rsdiobj INDEX l_tabix.
IF sy-subrc EQ 0.
SUBTRACT 1 FROM l_tabix.
READ TABLE l_t_rsdiobj INTO ty_rsdiobj2 INDEX l_tabix.
ENDIF.
ADD 1 TO ty_rsdiobj-iobjnm+7(1).
WHILE ty_rsdiobj-iobjnm+7(1) LT ty_rsdiobj2-iobjnm+7(1).
WRITE: /01 'Ausgelassenes Objekt, welches zuerst erstellt werden muss: ', ty_rsdiobj-iobjnm.
ADD 1 TO ty_rsdiobj-iobjnm+7(1).
ENDWHILE.
IF ty_rsdiobj2-iobjnm IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDIF.
Endform. "fehlend_icu
wäre grad für mich der einzig sinnvolle Grund dafür. Bitte mal debuggen und testen. Und dann herausfinden wo und warum es verloren geht.Thanatos82 hat geschrieben:hast du mal die Tabelle bei DESCRIBE TABLE angeklickt um zu schauen ob sie Werte hat?