Problem solve Get help with specific problems with your technologies, process and projects.

How do I RECEIVE DBCS field with explicit Shift-out and Shift-In characters?

When PS=8 is defined in a DFHMDF macro, BMS Map do not wrap Shift-in & Shift-out characters around graphic/DBCS field, upon EXEC CICS RECEIVE. (These fields have been defined as PIC N or G).

How do I RECEIVE these DBCS field with explicit Shift-out and Shift-In characters? (This is to avoid UCTRAN translating DBCS character set to Uppercase).

I cannot use SOSI=YES , since I need pure DBCS characters in each field defined with PS=8 & Fields are defined as Graphic in Database.

The whole point of pure DBCS fields (defined as PS=8 on the DFHMDF macro) is that such fields are not encapsulated by Shift in (SI) and Shift out (SO) characters. This is defined by the 3270 Datastream architecture When an application issues a BMS RECEIVE command, the terminal returns pure DBCS fields without SO and SI, since this is how they are stored in the device buffer.

The 3270 READ command issued by CICS terminal control on behalf of BMS is such that 3270 extended field attributes are not returned by the device and hence CICS has no idea whether any field is defined as PS=8 or not. Even if CICS had this knowledge, it cannot wrap SO and SI characters around these fields because existing pure DBCS-capable applications would cease to work. I think that UCTRAN=NO must be specified for terminals which are DBCS capable. The CICS Terminal Control and BMS functions both provide Global User Exits which could be used to perform uppercase translation based on the customers' knowledge of their applications, or upper case translation could be performed in the application programs themselves. I appreciate that this is not a satisfactory solution, but I do not know what else to suggest.

Dig Deeper on IBM system z and mainframe systems

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.