STATUS_CHANGE_INTERN

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

STATUS_CHANGE_INTERN

Beitrag von tekko (ForumUser / 62 / 30 / 1 ) »
Hallo Leute,

was ist an diesem Code falsch?
Wenn ich das über SE37 mache funktioniert das einwandfrei.

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        = ''
          .

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: STATUS_CHANGE_INTERN

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Vermutlich ein Fehler bei den Datentypen. (INVALID_TYPE Exception oder so ähnlich)
Wenn du den Aufruf über die SE37 machst sorgt die Laufzeitumgebung dafür, dass die Schnittstelle mit der richtigen Typisierung versorgt wird. In deinem Programm bist du dafür verantwortlich. Prüfe einfach alle Parameter des Funktionsbausteins und ob du den richtigen Typ verwendest. Vorallem die Länge wird hier gern übersehen. Zum Schluss auch noch sicherstellen, dass alle nicht-optionalen Parameter auch wirklich versorgt sind und sei es nur mit einer "leeren" Variablen. Die Exception-Parameter zu versorgen hilft auch oft weiter wenn man einem Fehler in der internen Verarbeitung auf die Schliche kommen will.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
tekko

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: STATUS_CHANGE_INTERN

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
ich 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.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
tekko

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: STATUS_CHANGE_INTERN

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Sofern ihr 7.50 und höher im Einsatz habt, lässt sich das ganz leicht lösen:

Code: Alles auswählen.

DATA status TYPE STANDARD TABLE OF jstat WITH DEFAULT KEY.
APPEND value( stat = 'I0184' ) TO status.
Sonst ist es ein wenig aufwändiger:

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

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: STATUS_CHANGE_INTERN

Beitrag von tekko (ForumUser / 62 / 30 / 1 ) »
a-dead-trousers hat geschrieben:
12.03.2020 19:20
ich 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.
Vielen Dank.
Append hat gefehlt :)

Re: STATUS_CHANGE_INTERN

Beitrag von DeathAndPain (Top Expert / 2010 / 271 / 425 ) »
adt hat geschrieben:Sofern ihr 7.50 und höher im Einsatz habt, lässt sich das ganz leicht lösen:
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:

Code: Alles auswählen.

status[] = value #( ( stat = 'I0184' ) ).
(Die eckigen Klammern darf man auch weglassen, sofern man die Tabelle ohne Kopfzeile deklariert.)
Ü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.
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.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
a-dead-trousers


Seite 1 von 1

Vergleichbare Themen

1
Antw.
102130
Views
CLFMAS: Change Pointer - Combining one or more Change Pointers in Single IDOC
von ABAPLover » 21.08.2024 22:41 • Verfasst in ABAP® Core
0
Antw.
105118
Views
1
Antw.
3151
Views
Intern Tabelle als IN/OUT Parameter
von samir_nrw » 16.02.2011 15:32 • Verfasst in ABAP Objects®
8
Antw.
3612
Views
Eventhandler „intern“ oder „extern“?
von ralf.wenzel » 11.09.2019 18:55 • Verfasst in ABAP Objects®
4
Antw.
59762
Views
Change DIS
von Icke0801 » 05.04.2017 16:12 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor 22 Stunden von Manfred K. gelöst 2 / 148
LSMW-Problem
vor 4 Tagen von mazu gelöst 5 / 1450
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1450

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor 22 Stunden von Manfred K. gelöst 2 / 148
LSMW-Problem
vor 4 Tagen von mazu gelöst 5 / 1450
ATC Finding in Smartforms
vor einer Woche von sap_enthusiast 2 / 1450

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 87270
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 140510