Non-3270s terminal should submit request and get response through Tuxedo ATMI tpcall(). The service name of tpcall() should follow the convention described in the following section; in addition, data buffer type exchanged with server ARTWTRN/ARTWTR1 could only be Tuxedo FML32. The detailed FML32 fields and each data structure will be described in the following section.In order to distinguish the service invoked by non-3270s clients from the service invoked by TN3270 terminal, ARTWTRN/ARTWTR1 sever advertises each CICS transaction as a Tuxedo service with the name prefix WEB_. When client submits the request to ARTWTRN/ARTWTR1, the service name of tpcall must follow the convention.Table 1 lists all FML32 FIELDs, which will be published in $KIXDIR/include/msgflds32.
The name of the current MAPSET, which will be displayed in Client’s UI.This field will be added/changed by ARTWTRN/1. Client can get the MAPSET name from this field. The name of the current MAP, which will be displayed in Client’s UI.This field will be added/changed by ARTWTRN/1. Client can get the MAP name from this field. The terminal control characters of the command “CICS SEND”, “CICS SEND MAP”, “CICS SEND TEXT”, and “CICS SEND CONTROL”.At times, CICS APIs above will be invoked with some control options, such as FREEKB, ALARM, ERASE, ERASEUP, CURSOR, etc; therefore, these control options should be inserted to this FML field. Mainframe CICS provides a utility to generate the Copybook from the Mapset file. The Copybook is used to define the structure of the application data when transaction invokes CICS SEND/RECEIVE MAP.At ART CICS runtime, we also provide a corresponding utility tcxmapgen, which generates the Copybook from Mapset file; regarding that the structure of Copybook generated by tcxmapgen is almost the same as the one generated in Mainframe CICS, application data exchanged between the Client and ARTWTRN/1 must follow the definition in the Copybook of each Mapset.For CICS SEND/RECEIVE and CICS SEND TEXT, ARTWTRN/1 and Client just need to insert the plain textual characters into the field CX_WEB_APPDATA.The head file might not match the copybook generated from BMS file by ART CICS offline utility tcxmapgen at runtime due to data structure alignment on open system. It might need customers to adjust copybook by padding appropriate FILLER.If SEND MAP/TEXT command sets cursor option, IC should be inserted into the header of 3270 data stream with the following format in the case of SEND command without cursor option. If this command sets option ERASE, the cursor will set to the upper left corner of the screen.At ART CICS runtime, we define a FML field CX_WEB_CTRL_CHAR, a CARRAY with 12 bytes, to store these control characters; however, in this release, we plan to support CMD, WCC, and IC, all of which are mostly used. The data sequence of this field is as below:Only the first 6 characters will be used in this field, the rest 6 characters will be reserved with X’00’, and the code of these characters will be set as EBCDIC, not ASCII. SBA, ROW, COL, and IC will be set with X’00’ in the buffer if there is no need to set cursor; If IC is not set via the option cursor of CICS commands, but set in MAPSET/MAP file, no IC will be set in this field and customers need to handle IC themselves.At ART CICS runtime, we defined a FML field CX_WEB_AID to store these three characters and AID will always be function key of the keyboard, such as Enter, Clear, F01~F24, etc. ROW and COL mean the current cursor position when terminal sends the inbound data stream to application program. The code of these characters will be set as EBCDIC, not ASCII.
• In case of using Tuxedo FML32 buffer, COMMREA can be exchanged in the request/response, mirror transaction and TWA can be validated, even CHANNEL and CONTAINER can also be used.In case of using Tuxedo RECORD buffer, COMMAREA can be exchanged using RECORD data area. Mirror transaction, TWA, or CHANNEL/CONTAINER are not supported.Tuxedo client should send/receive request/response through Tuxedo ATMI tpcall(). In addition, data buffer type exchanged with server ARTDPL can only be Tuxedo FML32 or RECORD. Please refer to section DPL Servers (ARTDPL) for the details of ARTDPL services.Three kinds of services published by ARTDPL can be accessed by Tuxedo clients. User can choose one of them depending on real scenario.DPL <program> can be advertised by ARTDPL as a Tuxedo service. And the prefix of service name is the CICS region <sysid>_ which current ARTDPL server belongs to. If client tries to call this service and exchange the COMMAREA with ARTDPL server, the following FML32 fields must be present in the request:Meanwhile, the FML32 filed CX_PROGRAM must not be present, because ARTDPL server can realize the name of DPL program to be executed from the service name.
• Type B: MIRROR_<transid>
• Type C: <applid>_MIRROR_<transid>Mirror transaction can also be advertised by as a Tuxedo service. And the prefix of service name is the MIRROR_ or <applid>_MIRROR_. In this case, mirror transaction and TWA is always enabled. User needs configure the mirror transactions and their TWA size in the transactions.desc at first. If client tries to call these two services and exchange the COMMAREA with ARTDPL server, the following FML32 fields MUST be present in the request:To use RECORD as the data buffer to call ARTDPL server, you should configure IN-TYPE and OUT-TYPE for the called program in programs.desc. When you use RECORD, Tuxedo clients can only use Type A services.Table 2 lists all FML32 FIELDs, which will be published in $KIXDIR/include/msgflds32.
Table 2 FML32 FIELDS
• You must define the mirror transactions and their TWA size in transactions.desc. The definitions can be CICS system mirror transactions CSMI/CVMI or customized mirror transactions. For more information, see Supporting TWA in ARTDPL in the Oracle Tuxedo Application Runtime for CICS User Guide.The following example defines two mirror transactions. CSMI is the system default mirror transaction; MIR1 is the user-defined mirror transaction.
• Specify the target mirror transaction and its TWA size in the request to ARTDPL, the following FML32 fields must to be present:Specify the target mirror transaction to be used in executed DPL program. If CX_TRANSID is not present in the request, system mirror transaction CSMI/CVMI will be located. If CSMI/CVMI is not present in transactions.desc, SYSIDERR occurs. If the specified CX_TRANSID is not a valid mirror transaction defined in the transactions.desc, SYSIDERR occurs.In request to ARTDPL, if CX_TRANSID is present, ARTDPL sets EIBTRNID as the value of CX_TRANSID. If CX_TRANSID is not present, the EIBTRNID is set to system mirror transaction CSMI/CVMI.If DPL program aborts, ARTDPL server returns TPFAILS to client. User can get the CICS ABEND code from FML32 field CX_ABENDCODE in the response of ARTDPL.