ProjectWise CEL has no direct FULLNAME replacement. It builds the path from the folders between the top folder and the current folder, then appends the document name.
This is an algorithm redesign, not a variable rename.
map() selects folder names and join() inserts the separator.
thisDocument or thisFolder can be null during document creation, so production use may need a guard.
Migration goal
Build a text path from folder names and the document name.
What changes
$DOCUMENT.FULLNAME$ has no direct replacement. CEL gets a folder list, maps it to names, joins them with a separator, and appends the document.
Why the CEL solution is clearer
Every path-building step is reviewable. The same approach can use folder descriptions or another separator without accessing internal database structures.
Before deployment
Test documents at different hierarchy depths and document creation. In that scenario, thisDocument and thisFolder can be null.
Sources
BENTLEY-PW-CEL-SYSVARS — FULLNAME has no direct replacement.
BENTLEY-PW-CEL-EXAMPLES — official path-building pattern.
BENTLEY-PW-CEL-NULLS — null context during document creation.