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
Related Q&A from Robert Crawford
For better mainframe capacity planning, how do I convert CPU hours to MIPS? And is there a way to calculate the relationship between MIPS and MSUs? Continue Reading
I have two years of experience in mainframe technology, currently working as a mainframe developer. I want to change to Java technology. Continue Reading
I want to replicate DB2 from the mainframe to an AIX box since it's cheaper and the copy can be used for testing. Is this possible? Continue Reading