Mit Hilfe der WebFacing-Umgebungs-API können Sie überprüfen, ob ein Benutzer über einen Webbrowser oder über die 5250-Emulation auf Ihre Anwendung zugreift. Abhängig von der Art des Zugriffs, den ein Benutzer hat, können Sie mit dieser API das Verhalten Ihres Programms ändern. Sie könnten beispielsweise ein zusätzliches Feld oder einen anderen Text anzeigen lassen, wenn über einen Browser auf Ihr Programm zugegriffen wird, und dieses Feld bzw. diesen Text unterdrücken, wenn der Zugriff über die 5250-Emulation erfolgt.
Die WebFacing-Umgebungs-API wird als QqfEnvironment bezeichnet und ist Bestandteil der WebFacing-Serverlaufzeit. Beim Namen der externen Prozedur, QqfEnvironment, muss Groß-/Kleinschreibung beachtet werden. Es handelt sich dabei um eine Prozedur, die in ein Serviceprogramm mit Namen QQFENV eingebunden ist, das sich in der Bibliothek QSYS befindet. Die API gibt den Wert 1 zurück, wenn die Anwendung unter WebFacing läuft, und den Wert 0, wenn sie unter 5250-Emulation ausgeführt wird.
Die Beispiele unten zeigen, wie diese API verwendet wird. Im RPG-Beispiel ist die externe Prozedur QqfEnvironment mit DSpec QQFENV definiert. In diesem Beispiel wurde für das DSpec QQFENV derselbe Name vergeben wie für das Serviceprogramm und es wurde als ganze Zahl definiert, da die Prozedur 0 oder 1 zurückgibt. Außerdem wurde ein DSpec rc definiert, um den Wert 0 oder 1 aufzunehmen, wenn Eval rc = QQFENV ausgeführt wird. Das RPG-Programm verwendet dann den Wert von rc, um fallabhängig das Verhalten des Programms zu bestimmen und um zu entscheiden, was in der DDS-Anzeige angezeigt werden wird.
Wenn im DDS-Beispiel unten der Wert für rc im RPG-Modul NICHT 1 ist, wird der Text "Anwendung läuft nicht in der WebFacing-Umgebung" angezeigt. Wenn der Wert für rc 1 ist, wird der Text "Anwendung läuft in der WebFacing-Umgebung" angezeigt.
.........1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 FCHKENVFM CF E Workstn * DQQFENV PR 10I 0 Extproc('QqfEnvironment') * Drc S 10I 0 * C Eval rc = QQFENV C Eval FLD001 = rc * C Dow NOT *IN03 * C If rc = 1 C Eval *in01 = *on * C Else C Eval *IN01 = *off C EndIf * C Exfmt FMT01 C EndDo * C Eval *inlr = *on
....+A*..1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 A*%%TS SD 20010924 150104 USERID REL-V4R4M0 5769-PW1 A*%%EC A DSPSIZ(24 80 *DS3) A R FMT01 A*%%TS SD 20010924 150104 USERID REL-V4R4M0 5769-PW1 A CA03(03) A 1 24'WebFacing-Umgebungs-API testen' A DSPATR(HI) A 10 3'F3=Exit' A COLOR(BLU) A N01 5 13'Anwendung läuft nicht in der - A Webfacing-Umgebung' A 01 6 15'Anwendung läuft in der - A WebFacing-Umgebung' A COLOR(RED) A FLD001 4S 0O 7 39 A 7 22'QqfEnvironment:' A A*%%GP SCREEN1 01