Anyone that has burned by OLAP cube problems, ADSync issues in Project Server 2003 is definitely sitting up at this point.  All the systems integrating within the Microsoft “stack” creates opportunity for incorrect characters.  What is valid in AD may not be valid in Project Server and what is valid in Project Server may not be valid in OLAP. How the data is sequenced together makes the difference. The position on the character in the string can determine if the character is supported or not. For example an underscore _ in AD will fail if it prefaces the object name but is OK any other place in the string.  The good news is the design of Project Server 2007 takes into account the following rules and should fail your operation before the offending character propagates to the infrastructure component. But as I learned with Lookup Tables, not all rules are readily apparent.  And these rules will apply to the PSI calls you make (or attempt to make because you’ll get exceptions thrown at you for using illegal characters.)

OLAP

Follow these guidelines when your name objects:

             All names must begin with a letter, with the exception of virtual dimensions.

             The name of a virtual dimension must start with a tilde (~) character.

             A dimension can contain a single period (.) in its name if it contains multiple hierarchies. This period serves to separate the dimension name from the hierarchy name. (For example, consider MyDim.Hier1 and MyDim.Hier2, where MyDim is a dimension with two hierarchies, named Hier1 and Hier2.)

             Private dimensions must contain the cube name followed by a caret (^) character and the dimension name. 

             Avoid most symbol characters. Some objects have specific limitations regarding nonalphanumeric characters, while other objects supply meaning to certain nonalphanumeric characters, such as the tilde (~) and caret (^) characters. The following table lists characters that are not allowed.

Data source   

: / \ * | ? " () [] {} <>     

Level 

. , ; ' ` : / \ * | ? " & % $ ! - + = [] {}  

Dimension    

, ; ' ` : / \ * | ? " & % $ ! - + = () [] {} 

All other objects 

. , ; ' ` : / \ * | ? " & % $ ! - + = () [] {}        

 

The following reserved names should not be used for DSO objects:

             AUX, CLOCK$, COM#, CON, LPT#, NUL, PRN

SQL Server

The following characters are not supported in SQL Server

             /  \   : [  ]  .  =

LDAP

The following characters are not supported in LDAP

·         (  )  \  NUL

Windows SharePoint Services

The following characters are not supported in WSS

·         : /  \ : * ? " < > | # { } % & ~ or tab characters and multiple periods.

Trailing spaces at the very end of a file name (for example, "filename.doc ") are not supported in WSS.

If a file, folder, or URL name in your original site contains one of these characters, it is replaced with an underscore (_). Multiple periods are replaced with a single period. Additional digits may be appended to the file or folder name if there are conflicting renaming changes.

NTFS

The following characters are forbidden in file and directory names

·         " / \ * ? < > | :

Other

If a server name (web server) is installed with a Netbios name that contains an underscore “_” Internet Explorer will prevent you from logging on to a site that uses SQL Server to validate user name.

 

In other words in various parts of the application, Project Server doesn’t support

  / " ; : < > | [ ] , . ' ? ~ ` ! $ % ^ & * ( ) - + = { } 

 

**** I’d like to give credit to Michael Jordan from the MCS Center of Excellence for pulling together this information.  I’m paraphrasing him (under his permission) since I think this is a pretty important topic.

BTW I’ll be on holiday next week.  So I’ll be taking a week off from posting by design J.