Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
You say you want to put a '1' in a field. This implies a 1-byte printable character. Is this field a 1-byte ZD field in position 235 or a 2-byte PD field starting at position 234? If the former, your control card is putting a 1-byte PD rather than a 1-byte ZD value at that location.
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
Quote:
Month-End-key Binary 3 ,Starting Position - 234
What exactly does this mean? Does it mean a 3-byte binary value starting in position 234 or something else? How does that correspond to the X'001C' value you're overlaying? That would be a 2-byte PD 1. A 2-byte binary 1 would be X'0001'. A 3-byte binary 1 would be X'000001'. You need to figure out what you really want and let us know before we can help you.
BTW, since your records are VB, it would be better to use 236 as the last position for the variable part of the record, rather than using 236,1969 (a fixed field) as the last field.
Alternatively, you could use OVERLAY to just overlay the bytes you want instead of using BUILD to rebuild the entire record.
If you're not familiar with DFSORT and DFSORT's ICETOOL, I'd suggest reading through "z/OS DFSORT: Getting Started". It's an excellent tutorial, with lots of examples, that will show you how to use DFSORT, DFSORT's ICETOOL and DFSORT Symbols. You can access it online, along with all of the other DFSORT books, from: