$Web Proc Send or $Web ProcSend

From m204wiki
Revision as of 15:22, 19 September 2011 by JAL2 (talk | contribs) (moved $Web ProcSend to $Web Proc Send: foolish consistency)
Jump to navigation Jump to search

<section begin="desc" />Add contents of procedure to response<section end="desc" />

$Web_ProcSend adds the contents of a procedure to the client buffer. $WEB_PROC_SEND is a synonym for $Web_ProcSend.

Syntax

<section begin="syntax" /> %RC = $WEB_PROC[_]SEND( filename, procname, p_flag ) <section end="syntax" />

$WEB_PROC_SEND is a callable $function (see Calling Sirius Mods $functions).

$Web_ProcSend takes three arguments and returns a status code.

filename
  • As a name only.
  • Prefixed with "FILE" or GROUP.
The name of the Model 204 file or group containing the procedure to be sent. This parameter is optional. If it is not specified, the default file or group is used. The parameter may be specified in either of these ways: "GROUP". In this case, "FILE JANWEB" will look for the specified procedure in the file named JANWEB, "GROUP JANWEB" will look for the procedure in the group named JANWEB, and a bare "JANWEB" will look in a group first if it is open, then in a file. The file privileges for this procedure file must be at least X'02' (copy or display internal procedures).
procname The name of the Model 204 procedure to be sent to the client. This parameter is required.
p_flag Processing indicators for how the client should handle the procedure. This parameter is optional. It consists of a combination of blank-separated options. Valid options are:
BINARY Procedure must be in either the binary or the base64 encoded format used by Janus Web Server. For further description of these encodings, see Janus Web Server will perform no EBCDIC to ASCII translation on the contents.
CR Indicates that lines of text data should be separated by the ASCII carriage return (X'0D') character. This parameter has no effect if the BINARY option is used, and it is mutually exclusive with the LF and CRLF parameters.
CRLF Indicates that lines of text data should be separated by the ASCII carriage return and line feed (X'0D0A') characters. This parameter has no effect if the BINARY option is used, and it is mutually exclusive with the CR and LF parameters.
LF Indicates that lines of text data should be separated by the ASCII line feed (X'0D') character. This parameter has no effect if the BINARY option is used, and it is mutually exclusive with the CR and CRLF parameters.
MORE More data will be sent to the browser after the procedure.
SSI The procedure content sent to the web buffer should be scanned for Server Side Include tags to see if the server needs to substitute content into the HTML. "SSI" can be specified for either the CMD or SEND form of the JANUS WEB ON command. See for a discussion of how Server Side Include tags can be used.
TEXT Content is treated as plain text: Janus Web Server will translate from EBCDIC to ASCII, regardless of the mime type. :note. Unless you specify TEXT, or unless the output mime type (see $Web_Type) starts with the string "text/", $Web_ProcSend assumes BINARY.
Code Meaning
0 Procedure successfully sent.
-1 Not a web thread

$WEB_PROCSEND return codes

Sample code follows:

%X = $Web_Type('text/HTML') %X = $Web_On ... %X = $Web_ProcSend( 'PROMOS', 'SALUTATION', 'MORE' ) %X = $Web_Put_Text( '

Dear ' WITH %FULLNAME) %X = $Web_ProcSend( 'PROMOS', 'DUFF_BEER_PROMO', 'MORE' ) %X = $Web_Put_Text( '

Act now ' WITH %FIRSTNAME WITH ', while supplies last' ) %X = $Web_ProcSend( 'PROMOS' ) STOP

This sample shows how customized lines of HTML can be interspersed with static bodies of HTML by alternate calls to $Web_ProcSend and $Web_Put_Text. First the procedure SALUTATION is sent to the client buffer from file PROMOS. The MORE flag allows us to continue sending. Next a customized greeting is placed in the buffer, then the body of the document is taken from procedure DUFF_BEER_PROMOTION, again with the MORE flag, then a custom sign-off line, then the end of the HTML document without the MORE flag.

The $WEB_PROC_SEND without the MORE sends all the content that has been accumulated to that point, followed by the indicated procedure. After everything has been sent, the connection with the client is terminated. Any functions that start with $Web that require a connection with the client would cause a user restart after this point, as would any other attempt to communicate with the client. Because of this, there's relatively little that can usually be done after a $WEB_PROC_SEND without MORE (or a $Web_Done); so it's not atypical, as in this example, for such a call to be followed almost immediately by a STOP statement.