The XML Exchange File

The Service Engine is started with a special parameter that specifies the name of the file that will be used for all XML exchange operations. The BIS Request Handler takes the current request, encodes it using XML, and places the request into this file when the service program calls B$ReadRequest. If desired, the B$ReadRequest can also pass the XML Exchange information strictly via memory.

Important: The file is not created until B$ReadRequest is called.

BIS places the fully qualified name of this file into the BIS_FILENAME environment variable when the Service Engine is started. The filename, therefore, is accessible to the COBOL program via the C$GetEnv function:

01 BIS-Exchange-File-Info.
   05 BIS-Exchange-File-Result    PIC 9 BINARY.
   05 BIS-Exchange-File-Name.     
      10 FILLER                   PIC X OCCURS 200 TIMES.

CALL "C$GetEnv" USING "BIS_FILENAME", 
                      BIS-Exchange-File-Name, 
                      BIS-Exchange-File-Result.

On BIS/IIS, the value of this variable is the fully qualified pathname of the file and the filename has this form:

XMLExchange-hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh.xml

The file is created in the Windows TEMP directory. The h characters are replaced by hexadecimal digits, and the name is guaranteed to be globally unique.

On BIS/Apache, the value of this variable is the fully qualified pathname of the file and has this form:

bisiiiiiiiiiiiiiiiiiiiiii-ssss.xml

The file is created in the directory indicated by the Service Engine's TempDir configuration keyword. The i characters are replaced by the session's identifier and the s characters are replaced by a decimal number representing the number of the service within the session.