We recently converted our system to being Unicode compliant. We had set the Unicode attribute on most of our programs some time ago, but some were missed and we set the attribute on most of the rest before the flag was set in the production system.
We knew that some would probably be missed, so we monitored dumps in the production system right after the go-live. Things went smoothly for the most part but we did encounter one interesting situation.
After one program dumped, I set the Unicode attribute for it, but when I tried to activate it, it gave a number of syntax errors (it appeared to have been copied from a standard SAP program in 1995). One of the errors was that there was a single field with a name like Z_FIELD-ONE. Dashes are not allowed in Unicode program field names. I changed the name in all places in the program to Z_FIELD_ONE and activated the program with no errors. I ran transaction UCCHECK on the program and it showed no further problems. I exported it to the test system and when I tried it out it displayed the normal screens without a syntax error.
But when I looked at the display, one of the fields which should have data, did not. After doing some research, I found that the program field name that I had changed was also a screen field. I changed the screen field name (to Z_FIELD_ONE) and it tested correctly.
Now I know that setting the Unicode attribute, fixing any syntax errors and running UCCHECK with no errors does not guarantee that there will be no other problems. But I was surprised to see that although the syntax checker did not allow Z_FIELD-ONE as a program field name, it did not complain about it as a screen field name.
Just another thing to watch out for.