Perform in anderes Programm

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

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

Perform in anderes Programm

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Hi @ all

Code: Alles auswählen.

FORM TAGESABSCHLUSS_TRACKINGNUMBER USING ZSPEDT UPS_TRACKINGNR.

  PERFORM TRACKINGNR.

ENDFORM.                    "TAGESABSCHLUSS_TRACKINGNUMBER
diese Form rufe ich aus einem anderen Programm mit Code auf.

Code: Alles auswählen.

PERFORM TAGESABSCHLUSS_TRACKINGNUMBER(ZUPS) CHANGING UPS_ZZSPEDT_PACK TMP_TRACKINGNR.
er übergibbt auch alle Werte super aber aus der FORM Trackingnr bekomme ich keine Werte mehr zurück.
In den Form gehen die Werte schon nur ich bekomme keine raus.

Hoffe ihr habts verstanden.

Grüße Adrian

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


Re: Perform in anderes Programm

Beitrag von bliss (ForumUser / 66 / 2 / 6 ) »
Ich verstehe zwar deinen Text und das (ZUPS) in Klammern nicht, aber vielleicht reicht es ja schon, wenn ich dich auf das Schlüsselwort IN PROGRAM verweise, denn darum geht es ja deinem Betreff nach. Und warum benutzt du einmal CHANGING und einmal USING? Du solltest dich entscheiden! Vote for Change! Ja ich denke das ist das Problem. Wenn du USING benutzt, kannst du gar nichts verändern.

Folgende Benutzer bedankten sich beim Autor bliss für den Beitrag:
Adrian

Gruß
bliss
.|.. .. ...| . .|.. ||| |. ||. .| |. |.. .||. .|. ||| ... .||. . .|.

Ich bin Anfänger und meine Tipps sind mit Vorsicht zu genießen.

Re: Perform in anderes Programm

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
bliss hat geschrieben:Wenn du USING benutzt, kannst du gar nichts verändern.
Leider ist das nicht ganz richtig. In ABAP kann man sowohl die Using als auch die Changing Parameter innerhalb der Form-Routine beliebig verändern. Es ist sogar möglich beim Aufruf nur Changing anzugeben während in der Form-Routine nur Using Parameter vorkommen. Wichtig ist nämlich nur die Reihenfolge der Parameter für die Übergabe nicht jedoch ihre Deklaration als Using oder Changing. Genaueres zu dem Thema findet sich auch in der Hilfe.
Man sollte aber denoch aus Gründen der besseren Lesbarkeit versuchen nur Changing Parameter zu verändern und sowohl beim Aufruf als auch bei der Deklaration die gleichen Schlüsselwörter zu verwenden.
btw. das (ZUPS) ist gleich dem IN PROGRAM Befehlszusatz nur eben die alte Variante (nicht OO-konform)

@Adrian:
Versuch wirklich auf beiden Seiten das CHANGING zu verwenden.

lg ADT

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

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: Perform in anderes Programm

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
hab es auf USING geändert weil ich im Augerufenen Programm nur die Werte will die Variablen in die ich die Werte schreibe sind schon deklariert.
Funktioniert immer noch nicht.

Grüße Adrian.

Re: Perform in anderes Programm

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
moment, was genau hast du vor?

Irgendwie musst du ja die Daten die du in der aufgerufenen Form berechnet hast, wieder in dein rufendes Programm zurück transferieren.
Dazu brauchst du einen CHANGING Parameter.

Oder planst du in etwa sowas:
- Rufe Form-Routine und füge Daten für das Program ein
- Rufe Programm mit SUBMIT auf

Das geht nicht, weil SUBMIT eine komplett neue Ausführungsebene (Stack) initiert und man auf die Daten der vorherigen nicht zugreifen kann.

lg ADT

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

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: Perform in anderes Programm

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hi,

Code: Alles auswählen.

      PERFORM TAGESABSCHLUSS_TRACKINGNUMBER IN PROGRAM XY USING UPS_ZZSPEDT_PACK TMP_TRACKINGNR.
In welchem Programm ist die Unterroutine? Du musst das auf jeden Fall mitgeben damit du drauf zugreifen kannst.

Gruß
coco

Folgende Benutzer bedankten sich beim Autor c oco für den Beitrag:
Adrian


Re: Perform in anderes Programm

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
c oco hat geschrieben:In welchem Programm ist die Unterroutine?
In ZUPS.
Wie ich schon mal angemerkt hab

Code: Alles auswählen.

PERFORM TAGESABSCHLUSS_TRACKINGNUMBER(ZUPS) ...
ist gleich wie

Code: Alles auswählen.

PERFORM TAGESABSCHLUSS_TRACKINGNUMBER IN PROGRAM ZUPS ...
nur eben nicht in ABAP-OO erlaubt.

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

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: Perform in anderes Programm

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
in die FORM springt er auch rein nimmt die Werte mit aber wenn ich in die FORM TRackingnr reinspringe nimmt er die Werte nicht mit und gibt sie auch nicht zurück.

Code: Alles auswählen.

FORM TAGESABSCHLUSS_TRACKINGNUMBER CHANGING ZSPEDT UPS_TRACKINGNR.

  PERFORM TRACKINGNR.

ENDFORM.                    "TAGESABSCHLUSS_TRACKINGNUMBER
Wenn er aus der Form Trackingnr rauskommt haben die Felder ZSPEDT UPS_TRACKINGNR wieder die gleichen Werte wie beim reinspringen.

Grüße Adrian

Re: Perform in anderes Programm

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi!

Lass mich raten:
ZSPEDT und UPS_TRACKINGNR sind im Programm ZUPS global definiert.

Wenn du TAGESABSCHLUSS_TRACKINGNUMBER aufrufst und als Parameter dieselben Namen vergibst wie die globalen Felder "überblenden" diese die globalen Felder. Normalerweise bekommst du außerdem eine Warnung der Syntax-Prüfung.

Richtig wäre es auf diese Weise:

Code: Alles auswählen.

FORM TAGESABSCHLUSS_TRACKINGNUMBER CHANGING par1 par2.
  ZSPEDT = par1.
  UPS_TRACKINGNR = par2.

  PERFORM TRACKINGNR.

ENDFORM.                    "TAGESABSCHLUSS_TRACKINGNUMBER
lg ADT

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

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: Perform in anderes Programm

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Oder so:

Code: Alles auswählen.

FORM TAGESABSCHLUSS_TRACKINGNUMBER CHANGING par1 par2.

      PERFORM TRACKINGNR CHANGING par1 par2.

ENDFORM.                    "TAGESABSCHLUSS_TRACKINGNUMBER

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

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: Perform in anderes Programm

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
In ZUPS.
Wie ich schon mal angemerkt hab
Code: Alles auswählen
PERFORM TAGESABSCHLUSS_TRACKINGNUMBER(ZUPS) ...ist gleich wie
Code: Alles auswählen
PERFORM TAGESABSCHLUSS_TRACKINGNUMBER IN PROGRAM ZUPS ...nur eben nicht in ABAP-OO erlaubt.
Danke :-).
aber wenn ich in die FORM TRackingnr reinspringe nimmt er die Werte nicht mit und gibt sie auch nicht zurück.
ok ich war zu langsam. Schließe mich ADT an.

Gruß
coco

Folgende Benutzer bedankten sich beim Autor c oco für den Beitrag:
Adrian


Re: Perform in anderes Programm

Beitrag von Adrian (Specialist / 126 / 61 / 0 ) »
Ok Danke alle hat geklappt.

Grüße Adrian

Seite 1 von 1

Vergleichbare Themen

8
Antw.
3353
Views
Perform
von spot » 13.09.2004 08:25 • Verfasst in ABAP® für Anfänger
2
Antw.
1645
Views
SAPSCRIPT PERFORM
von NEON » 07.12.2005 12:54 • Verfasst in ABAP® Core
8
Antw.
2683
Views
Perform Synchronized
von Adrian » 13.12.2013 11:35 • Verfasst in ABAP® für Anfänger
2
Antw.
2412
Views
PERFORM ... IF FOUND
von Thomas R. » 10.08.2005 14:59 • Verfasst in ABAP® Core
6
Antw.
1485
Views
Perform in Sapscript
von dkast » 18.10.2017 13:34 • Verfasst in ABAP® für Anfänger

Ü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

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 36
Interne Tabelle
vor 18 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 36
Interne Tabelle
vor 18 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141