PDA

View Full Version : NET.Data Parameterübergabe??



Seiten : [1] 2

Dschainers
26-11-09, 07:49
Hallo Forum,
kann man bei NET.DATA Parameter übergeben??
Die Übergabe mittels PC-Dateien kenne ich. Ich meine aber sowas wie *entry Plist oder so. So dass ich das IFS nicht verwenden muss.
Oder gibt es eine Möglichkeit ohne dem IFS bei der Parameterübergabe auszukommen??

Ich hab von der ganzen Geschichte wenig Ahnung??!!:)

Viele Grüße
Dschainers

holgerscherer
26-11-09, 08:11
Hallo Forum,
kann man bei NET.DATA Parameter übergeben??

Das klingt etwas missverständlich, Net.Data ist eine Makrosprache, die durch HTTP-Requests aufgerufen wird.
Hier gibst Du die Parameter im HTTP-Format, wie z.B.

http://www.DeineSeite.de/cgibin/makrodatei.nd/htmlblock?parameter1=bla&parameter2=blubber

Oder meinst Du etwas anderes?

-h

Dschainers
26-11-09, 08:51
Hallo Holger,

vielen Dank für die schnelle Antwort.

Mein NET.DATA Makro sieht so aus:
%DEFINE ILEPGM = "/QSYS.LIB/RSCHHTTP.LIB/CALLRPG6.PGM"
%DEFINE OUT1 = " "
%DEFINE OUTFILE = "/PLEX/TEMP/LESE.PAR"
%DEFINE MODE = "w+"

%FUNCTION(DTW_DIRECTCALL) DCFUNCTION(IN CHAR(13) INP1,
OUT CHAR(50) OUTP2)
{ %EXEC { $(ILEPGM) %} %}

%HTML(RUN) {
@DCFUNCTION("KF919 ", OUT1)
@DTWF_OPEN(OUTFILE, MODE, "100", "CCSID=850")
@DTWF_WRITEFILE(OUTFILE, OUT1)
%}

Wie muss nun das Makro aussehen, wenn ich die Parameter übergebe?

Meine Anwendung sieht folgendermaßen aus:
Über ein VB Script wird ein Wert eingegeben, dieser soll an das Makro übergeben werden. Das Makro soll den Wert an ein RPG Programm übergeben.
Das RPG Programm tut was damit, ermittelt einen Rückgabeparameter und soll diesen über das Makro wieder an das VB Script zurückgeben.

Hoffentlich habe ich mich richtig ausgedrückt.

Übrigens, ich bin nur soweit gekommen, weil ich das Dokument "NET.DATA für Einsteiger" von dir gelesen habe.

Vielen Dank

holgerscherer
26-11-09, 13:27
Über ein VB Script wird ein Wert eingegeben, dieser soll an das Makro übergeben werden. Das Makro soll den Wert an ein RPG Programm übergeben.
Das RPG Programm tut was damit, ermittelt einen Rückgabeparameter und soll diesen über das Makro wieder an das VB Script zurückgeben.

Huhu zurück :)

Also, Net.Data produziert "nur" HTML-Output, und da ist eine Ausgabe von Parametern nicht explizit vorgesehen, Dein VB-Programm kriegt ja eine Webseite zurück (je nach Funktionsaufruf, den Du verwendest, in eine Struktur oder ein File). Das Ausgabe-Ergebnis sollte also so aussehen, dass Dein VB-Programm damit etwas anfangen kann.

Ich verwende das beispielsweise für einen Delphi-Client, der via WebServices Daten von der AS400 holt. Das Ergebnis ist "XML für arme", welches ich dann im Delphi-Programm auswerte.

Beispiel:

PC sendet eine Anfrage an die AS400:


http://meine.as400/cgibin/meinscript.nd/kundeninfo?kdnr=123

und erhält eine Ausgabe von Net.Data zurück. Das muss ja nicht HTML sein, kann z.B. so aussehen:


<DATA>
<KDNR>
123
</KDNR>
<NAME1>
Müller GmbH
</NAME1>
<TELEFON>
0123-45656
</TELEFON>
...
</DATA>

Der Kreativität sind da keine Grenzen gesetzt. XML kannst Du Dir auch so zusammenstricken, oder nimmst ein eigenes, schlanges Format, das man schnell analysieren kann.

Viel Erfolg,
Holger
(editiert wg. Autoformatierung vom Forum)

Fuerchau
26-11-09, 13:34
Wenn du schon VB-Script machst, bietet sich ggf. ADO und SQL eher an, ist bestimmt auch einfacher.

Für SQL kannst du dann einfach eine Procedure mit Ein-/Ausgabe-Parametern erstellen. Diese ruft dein RPG'le auf und im Command-Objekt erhältst du die Ergebnisse.
Ansonsten ist halt volle SQL-Funktionalität gegeben.

NET.DATA existiert zwar noch, wird aber wohl nicht mehr gewartet.

Dschainers
26-11-09, 13:48
Also danke erst mal:confused:

Ich werd's probieren.

Viele Grüße
Dschainers

holgerscherer
26-11-09, 15:32
NET.DATA existiert zwar noch, wird aber wohl nicht mehr gewartet.

Ja, ist relativ ruhig, aber noch nicht ganz tot - zur Not muss man das aus der IBM rauslösen wie mit CGIDEV2, denn für einige Fälle ists noch schlank und brauchbar. Habe einige Kunden, deren Aussendienstanbindung nur via HTTP Port 80 geht, und da will ich keine neue Baustelle aufreissen, sondern den Altbau schön modernisieren. Und persönlich finde ich die Methode funktional.

Habe einige Experimente mit PHP und der gleichen Methodik gemacht, das geht mit der Performance arg in die Knie :(

-h

Dschainers
26-11-09, 15:45
Noch eine Frage, da ich mich da nicht so auskenne:
Wie muss ich die Entry-Parameter im NET.DATA Makro definieren, ich hab keine Ahnung??:confused:

holgerscherer
27-11-09, 01:00
Noch eine Frage, da ich mich da nicht so auskenne:
Wie muss ich die Entry-Parameter im NET.DATA Makro definieren, ich hab keine Ahnung??:confused:

Ganz einfach: gar nicht. Net.Data ist eine Interpreter-Sprache, und sobald man einen HTML-Block mit Parametern aufruft, existieren die entsprechenden Variablen. Leider ist hier die GrossKlein-Schreibung (zumindest innerhalb der Net.Data-Scripte) kriegsentscheident.

-h

Dschainers
27-11-09, 08:01
Vielen Dank Holger, jetzt hat's geklappt.

Jetzt hab ich nur noch 1 Problem, das Ergebnis möchte ich in eine Textdatei schreiben, aber nicht im IFS sondern auf den PC z.B. auf C:\temp.
Das Schreiben ins IFS funktioniert, was muss ich tun damit ich auf C:\temp schreiben kann??
FFI_PATH hab ich probiert, ich glaube aber ich mache da was falsch??
Geht das überhaupt??