Code: Alles auswählen.
REPORT ZEQUISTAT.
"I0184 = ELAG
DATA status TYPE TABLE OF JSTAT WITH HEADER LINE.
status-STAT = 'I0184'.
CALL FUNCTION 'STATUS_CHANGE_INTERN'
EXPORTING
* CHECK_ONLY = ' '
CLIENT = '100'
objnr = 'IE000000000010006921'
* ZEILE = ' '
* SET_CHGKZ =
* IMPORTING
* ERROR_OCCURRED =
* OBJECT_NOT_FOUND =
* STATUS_INCONSISTENT =
* STATUS_NOT_ALLOWED =
tables
status = status
* EXCEPTIONS
* OBJECT_NOT_FOUND = 1
* STATUS_INCONSISTENT = 2
* STATUS_NOT_ALLOWED = 3
* OTHERS = 4
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ''
"IMPORTING
"RETURN = ''
.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
tekko
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
tekko
Code: Alles auswählen.
DATA status TYPE STANDARD TABLE OF jstat WITH DEFAULT KEY.
APPEND value( stat = 'I0184' ) TO status.Code: Alles auswählen.
DATA status TYPE STANDARD TABLE OF jstat WITH DEFAULT KEY.
DATA status_line TYPE jstat.
status_line-stat = 'I0184'.
APPEND status_line TO status.Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
tekko
Vielen Dank.a-dead-trousers hat geschrieben: ↑12.03.2020 19:20ich glaub ich hab bei nochmaliger Durchsicht deines Codings den Fehler gefunden:
Deine Tabelle STATUS ist leer. Weil du nur die Kopfzeile befüllt hast. Es fehlt ein APPEND. Was noch besser wäre, ist die Angabe einer Kopfzeile (with header line) gänzlich wegzulassen. Das ist "altes Coding" und sollte nicht mehr verwendet werden.
Übrigens hättest du den Fehler mit aktivieren der Exception STATUS_INCONSISTENT auch abfangen und erkennen können. Daher wie schon vorhin geschrieben: Immer die Exceptions und das dazugehörige Fehlerhandling ausprogrammieren.
Da reicht 7.40, und Du hast einen kleinen Syntaxfehler drin (hinter Deinem Value fehlt die Raute) Es geht auch noch eleganter, ganz ohne APPEND:adt hat geschrieben:Sofern ihr 7.50 und höher im Einsatz habt, lässt sich das ganz leicht lösen:
Code: Alles auswählen.
status[] = value #( ( stat = 'I0184' ) ).Für ein Testprogramm wie dieses (viel mehr ist es ja nicht) ist das noch nicht mal nötig. Da er die Exception nicht abgefangen hat, muss er ja in einen Dump gelaufen sein. In dem steht alles drin, was man wissen muss, um die Fehlerursache zu finden.Übrigens hättest du den Fehler mit aktivieren der Exception STATUS_INCONSISTENT auch abfangen und erkennen können. Daher wie schon vorhin geschrieben: Immer die Exceptions und das dazugehörige Fehlerhandling ausprogrammieren.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
a-dead-trousers