Batch-Programm eindeutig bestimmen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Batch-Programm eindeutig bestimmen

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
Hallo,

ich habe mit folgendem Problem zu kämpfen:

Ein Batch-Programm läuft parallel ja in "Blöcken" ab. (keine Ahnung wie das im SAP Jargon richtig heißt)
Dieses Programm, das ja nun mehrfach vorhanden ist, meldet mir Nachrichten zurück. Wie kann ich nun feststellen aus welchem Block die Meldung gekommen ist.

danke im vorraus

cut1

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


Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Wie sehen die "Meldungen" denn aus?
Wenn du das Job-Protokoll meinst, dann kannst du bei der Definition des Jobs unterschiedliche Drucktitel definieren.

Ansonsten helfen evtl. Varianten weiter.

Gruß, Enno

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
Hi Enno

hmmm mit Meldungen meinte ich das dieses Programm
das parallel läuft einen FuBa aufruft. Dieser FuBa
soll nun wissen welcher Block ihn aufgerufen hat.
Ich denke mal mit sy-cprog komme ich da nicht weiter
da ja das Programm immer das gleiche ist.

deswegen dachte ich mir vielleicht haben diese "Blöcke" ja auch einen Index oder sowas den ich dann weiter verwenden könnte.

....

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Dann müsstest du den "Block" als Parameter im Programm mitgeben oder im Programm so eine Art "Stack" aufbauen. Also das erste Programm setzt in einer DDIC-Tabelle "1", das nächste setzt einen drauf etc. Das könntest du dann an den Fuba übergeben.

Gruß, Enno

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
hmmm,

ich denke diesen Stack wirds wohl irgendwo im SAP schon geben.

Programm xy läuft paralell in 4 Blöcken ab, daher stell ich mir das so vor das 4x das Programm xy im Speicher steht. SAP muss ja nun wissen wissen was sie
gerade in welchen Block macht. Dieses "in welchen Block" hatte ich gehofft als irgendein systemfeld zu
bekommen.

oder habe ich deine Antwort falsch interpretiert ??

gruss cut1

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Die Prozesse wissen voneinander nichts.
Evtl. hilft dir die Prozeßnummer weiter: FB TH_GET_OWN_WP_NO .
Gruß, Enno

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
super, das werd ich mal ausprobieren ...

SUBRC LIKE SY-SUBRC Return-Code des FB
WP_NO LIKE WPINFO-WP_NO Eigene Workprozess-Nr.

WP_PID LIKE WPINFO-WP_PID Pid des eigenen Work-Prozesses

WP_INDEX LIKE WPINFO-WP_INDEX

die Workprozess-Nr wird wohl die Nummer meines "Blocks sein", weist du vielleicht noch zusätzlich was die Pid und dieser WP_Index ist ???

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Schau mal in die SM50... :wink:
ob du dann die Workprozeßnr oder die Prozeß-ID nimmst, ist in deinem Fall dann wohl wurscht.
Gruß, Enno.

Beitrag von Andreas Flügel (ForumUser / 5 / 0 / 0 ) »
Hallo,

wenn ich richtig verstanden habe, wird dasselbe
Programm in mehreren Prozessen im Batch gestartet.
Um zwischen diesen unterscheiden zu können, bist
Du sicher mit dem Tipp von ewx bestens bedient.
Falls das aber doch noch nicht alles sein sollte,
was Du über den aufrufer wissen willst, mag der
FBaustein SYSTEM_CALLSTACK ganz interessant für Dich
sein wie auch die Möglichkeit, per "dirty assign"
Variablenwerte aus dem Aufrufer-Programm zu lesen.
Beispiel dafür:

FIELD-SYMBOLS: <fs>.
DATA caller_variable(60) TYPE c.
caller_variable = '(CALLER)TESTFLAG'.
REPLACE 'CALLER' WITH sy-cprog INTO caller_variable.
CONDENSE caller_variable NO-GAPS.
ASSIGN (caller_variable) TO <fs>.


Gruß

Andreas

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
@ewx

thanx .... super, funktioniert wunderbar :lol: mein WE ist gerettet ...


@Andreas, danke für die weiterführenden Variante ...


als info:

PID:

Prozeß-Identifikation des Betriebssystems. Mittels dieser Zahl kann der Prozeß mit Kommandos des Betriebssystems bearbeitet werden (z.B. ps oder kill in UNIX).


wp_no:

Dieses Feld zeigt die interne Workprozeß-Nr an. Dieser Nummer wird z.B. auch in der Liste der System-Logs festgehalten, sodaß ein eindeutiger Bezug zu einem Workprozeß gegeben ist. Des weiteren ist jedem Workprozeß eine Liste von Trace-Dateien zugeordnet, deren Namen nach dem Muster dev_..<Workprozeß-Nr> gebildet werden. Diese Dateien werden im "work"-Directory des Servers erzeugt.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2737
Views
Ermitteln ausführendes Programm einer Batch Input Mappe
von markus1234 » 05.07.2017 13:38 • Verfasst in ABAP® Core
1
Antw.
1810
Views
Fertigungsaufträge eindeutig zuordnen
von Thor2000 » 24.07.2008 14:56 • Verfasst in ABAP® Core
1
Antw.
1268
Views
Ist dieser SELECT immer eindeutig?
von Troilus » 05.01.2008 21:25 • Verfasst in ABAP® für Anfänger
1
Antw.
1333
Views
Fehlermeldung "Zahlungsempfänger nicht eindeutig" bei FB60
von Doobie » 11.04.2023 16:15 • Verfasst in Financials
0
Antw.
2717
Views
LSMW Programm in ABAP Programm überführen
von mherke » 07.02.2007 15:02 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 1941
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 3764