-
Rückgabeparameter bei SBMRMTCMD
Hallo zuammen,
ich suche was wie einen Rückgabeparameter bei einem SBMRMTCMD.
Ein Programm von System 1 soll ein Programm auf System 2 aufrufen welches einen Wert wieder zurück an das aufrufende Programm auf System 1 gibt.
Gibts da eine Möglichkeit ?
Vielen Dank im Voraus
Viele Grüße Harald
-
Offiziell nicht,
änder mit Pgm2 eine datara auf System 1
Der Job auf System 1 kann die abfragen
Für ein Fehlerhändling sollte System1 nicht länger als x auf den Inhalt warten.
(normalerweise nach 10 Minuten fertig, warte max 20 Minuten o.ä.)
Läuft in 'normalen' Abläufen stabil.
Wir haben auf system 2 auch schon mal via sql und connect to einen datensatz auf system 1 updaten lassen, quasi als zwischenstatus Bericht bei einem 3 Stunden Pgm
Gruß
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
... am einfachsten über SQL als stored procedure aufrufen. Die ganzen workarounds mit DTAARA (schauder) und update auf einen Satz etc. gehen doch wieder schief, wenn das Porgramm parallel öfter aufgerufen wird oder abbricht.
D*B
-
Solange beide Systeme eine AS/400 sind bieten sich 2 Möglichkeiten:
a) SQL mittels Procedure, wie Dieter schon sagt
b) die gute alte ICF-Datei (Programm-Aufruf und Kommunikation)
-
SQL procedure geht eigentlich (fast) in jeder Kombination, dank ArdGate.
D*B
-
Dafür benötige ich aber immer einen SQL-Server (muss ja nicht Microsoft sein) auf dem Zielsystem um einen SQL-Call abzusetzen.
-
... einen Dämon (Serverdienst), der da lauscht brauchst Du eh' (REXEC für SBMRMTCMD etc.) und ICF geht auch nur, wenn da ein SNA Dienst drauf wartet, das ist nun mal Grundlage des Geschäfts.
D*B
-
Hallo zusammen, erst mal vielen Dank wieder für die vielen Lösungen, wobei ich gestehen muss dass ich weder mit einer ICF Datei (und wenn ist es schon sehr lange her und ich kann mich nicht mehr erinnern) noch mit SQL Procedure gearbeitet habe. Dass von Robi habe ich mir auch bereits überlegt allerdings mit einer DDM-File und ID somit kann Programm A Programm B mit ID aufrufen und Programm A wartet bis in der Datei die ID mit dem Ergebniswert steht. Das letztere ist zwar umständlich aber für mich verständlich, es sei denn jemand will mir das mit den Stored Procedure in SQL erklären. Das hört sich für mich gut an, habe allerdings noch nichts damit gemacht.
-
Wobei der Rexec-Client in Windows immer da ist und nur aktiviert werden braucht. Im Zweifel gibt's beim CA auch noch den "Eingehenden fernen Befehl".
ICF ist ja auch eher auf AS/400-Kommunikation beschränkt. Ggf. gibt's ja noch den einen oder anderen "Groß-Hobel" (IBM's Mainfraim's) irgendwo im Einsatz die ICF noch können.
-
Zitat von harkne
Hallo zusammen, erst mal vielen Dank wieder für die vielen Lösungen, wobei ich gestehen muss dass ich weder mit einer ICF Datei (und wenn ist es schon sehr lange her und ich kann mich nicht mehr erinnern) noch mit SQL Procedure gearbeitet habe. Dass von Robi habe ich mir auch bereits überlegt allerdings mit einer DDM-File und ID somit kann Programm A Programm B mit ID aufrufen und Programm A wartet bis in der Datei die ID mit dem Ergebniswert steht. Das letztere ist zwar umständlich aber für mich verständlich, es sei denn jemand will mir das mit den Stored Procedure in SQL erklären. Das hört sich für mich gut an, habe allerdings noch nichts damit gemacht.
ICF File ist im Vergleich zu stored Procedure ungleich aufwändiger. Mit dem SQL Befehl CREATE PROCEDURE kann man jedes *PGM als externe stored procedure registrieren und dabei sowohl IN, OUT als auch INOUT Parameter verwenden. Aufgerufen werden diese stored Procedures dann mit dem SQL Befehl call (in einem embedded SQL Programm); macht man vorher einen connect an die remote database, dann findet der Aufruf auf einem anderen System statt. Einfach und schnell, lesbar und stabil.
@Baldur: ICF (Intersystem Communication Function, das sind doch SNA Altlasten, das würde ich doch heute keinem mehr empfehlen/zumuten.
D*B
-
Hallo Herr Bender, lokal hat das mit der Stored Procedure super funktioniert. Jetzt fehlt mir allerdings noch der Aufruf auf das ferne System. Was muss ich als connect machen ? Wenn ich über STRSQL connect angebe und Auswahl 2 (Fern) mache sehe ich trotzdem nur die lokale Datenbank.
Viele Grüße Harald
-
... auf der clientseite braucht man einen Eintrag im remote database directory (ADDRDBDIRE ist dein Freund) und dann macht man einen connect to und ist auf dem fernen System. Im richtigen Leben macht man das dann in einem embedded SQL Programm, damit man auch an die Rückgabe drankommt. Masochisten fummeln da auch gerne mit Oops Nerv rum.
D*B
Similar Threads
-
By rebe in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 12-02-02, 10:51
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks