Special characters @, !, and #

The characters at sign (@), exclamation mark (!), and number sign (#) have special usage in the Workload Automation Programming Language syntax.

at sign (@)
Used to identify object variables and to generate email addresses that have no qualifying domain name.
exclamation mark (!)
The default value for variable prefixing when VARSUB SCAN is activated.
number sign (#)
Used in object variables to prefix count fields to indicate the number of segments of a particular type. It is also used as a count indicator for VARSET ENVATTR.

However, these characters can be displayed differently when different code pages for different countries are used. They appear exactly as documented for US English (CP 37) and United Kingdom (CP 285); instead, some or all of them might appear differently in code pages for other languages. To find out what the characters actually are for your code page, run the SHOW OPTIONS command.

The following example shows the output of the SHOW OPTIONS command using a non-English code page (CP 280):
03/07 23.10.25 EQQI200I SHOW OPTIONS                                            
03/07 23.10.25 EQQI602A OPTIONS in effect ADOICHK(N) ADPFX(ADHOC#) ADSFX()      
            ...EQQI602A ADVALFROM(A) ADVERS(Y) ADWS(CPU1) ARGUMENT()            
            ...EQQI602A BLSTYLE(TWS) CALENDAR(DEFAULT) CCREMOVE(A) CHARAT(§)    
            ...EQQI602A CHARBANG(é) CHARHASH(£) CHARMAIL(§) CHECK(Y) COMEND(*/) 
            ...EQQI602A COMMIT(1000) COMPSUCC(WARNING) COMSTART(/*) CONINFO(047 
            ...EQQI602A 059 062 063 064 129 130 136 144 185 252 254 255)        
            ...EQQI602A CONNAME(ADCDMST1) CONTENTION(30,10) CONWAIT(2,1)        
            ...EQQI602A CONWARN(138 341) CPDEPR(Y) CPFAIL(ABORT) DATA()         
            ...EQQI602A DATE(150307) DBMODE(ADD) DECODE(ONLY) DELAY(0)          
            ...EQQI602A DELAYCMD(DELETE EXECUTE INSERT REPLACE) DELETE(N)       
            ...EQQI602A DELFILE(OUTDEL) DLM(-END-OF-INPUT-TEXT-) DROP()         
            ...EQQI602A DUPAUTO(Y) DURSEC(Y) DURUNIT(SECONDS)                   
The following OPTIONS keywords are available to set the characters to the value you want to use in your code page:
CHARAT
Sets a character to replace the at sign (@) for object variables.
CHARBANG
Sets a character to replace the exclamation mark (!) for the default variable prefix.
CHARHASH
Sets a character to replace the number sign (#) for object and ENVATTR count values.
CHARMAIL
Sets a symbol to replace the at sign (@) used in email addresses.

CHARAT and CHARMAIL are separate keywords, because the at sign (@) for email addresses must match what is used by the SMTP service, which is external to Workload Automation Programming Language. The at sign (@) in object variables affects only Workload Automation Programming Language.

For these OPTIONS you cannot use standard upper or lower case alphabetic characters, numbers, minus signs (-), or periods (.). They must not be in conflict with any other CHARxxxx or VARNAMES keyword. Setting OPTIONS CHARAT(@) CHARBANG(!) CHARHASH(#) CHARMAIL(@) in your code page ensures that the special characters appear as documented in your system.
Note: These OPTIONS keywords change only these characters for the uses specified. When the same characters are used as part of the data in your system, or part of field names in OUTPUT statements or object variables, the characters are displayed according to your code page.