Reserved Words
Some words are built into ProcessModel’s language and cannot be used as names for your own entities, activities, variables, attributes, or scenario parameters. Using one as a name causes an error before the simulation starts, and ProcessModel tells you which word is reserved.
If you need a name that clashes, add an underscore as a prefix or a suffix, for
example time_ or _time, to make it usable.
Reserved words
Section titled “Reserved words”Statements and control flow: Real, Int, SET, INC, DEC, RESET,
CLEAR, GET, FREE, USE, WAIT, TIME, PROCESS, IF, THEN, ELSE,
ELSEIF, ENDIF, WHILE, LOOP, GOTO, EXIT, RETURN, CREATE, ROUTE,
SEND, NEWNAME, STORE, TAKE, UNSTORE, REQUEST, SIGNAL, CALL,
DISPLAY, DEBUG.
Operators: AND, OR, NOT.
Math functions: ABS, CEIL, FLOOR, ROUND, TRUNC, SIGN, MIN,
MAX, MOD, POW, SQRT, EXP, LN, LOG10, CLAMP.
String functions: CONCAT, LEFT, RIGHT, MID, FIND, LEN, UPPER,
LOWER, TRIM, REPLACE.
Distributions: the short forms E, N, U, T, W, G and the full names
Normal, Exponential, Weibull, Gamma, Lognormal, Uniform, Triangular,
Beta, Erlang, Rayleigh, Pareto, Logistic, Poisson, Binomial,
Geometric, and the other built-in distributions.
System values and queries: SimTime, Clock, Id, RAND, PERCENT,
ENTITYCOUNT, EXITCOUNT, WIP, COUNT, SUM, and the Entity, Activity,
Resource, Queue, Inventory, Gate, and Signal queries.
LegacyHow this worked in the previous version
What reserved words are used by the system that cannot be used to name entities, activities, variables, attributes, scenario parameters, etc.

The following words are reserved by the system and cannot be used as variable names, attributes, or scenario parameters. Using these reserved words will result in a simulation error. Rather than use a reserved word directly an underscore can be applied as a prefix or a suffix to make the word usable as one of the names variables, attributes, or scenario parameters.
Note: If a reserved word is used in the action logic, ProcessModel will produce a message before simulation starts, the message will say * is a reserved word.
accum, activate, all, alt, and, animate, arraydims(), arraydimsize(), as, b, backup, begin, bi, board, break, breakblk, bvatime, by, calday(), caldom(), calhour(), calmin(), calmonth(), calyear(), cancel, cap(), case, char(), claim, clock, clock(), close, combine, condition, cont, contents, contents(), convey, cost, create, cyclestart, d2, d3, d4, d5, day, debug, dec, default, dep, dispatch, display, do, dosload, downqty(), drop, dtdelay(), dtleft(), e, else, empty, end, ent, ent(), entity, entity(), entries, entries(), er, exit, exp(), fifo, first, for, forlocation(), format, forresource(), free, freecap, freecap(), freeunits, full, g, geo, get, getcost, getresrate, goto, graphic, group, groupqty(), hide, hr, id, if, iff, ig, in, inc, incentcost, incloccost, increscost, inf, infinite, install labels, int, join, jointly, jointlyget, keep, l, labels, last, lifo, ln, ln(), load, loc(), location, location(), locstate(), log, lu, maparr, match, min, mod, most, move, move for, move on, move with, ms, n, name, newgraphic, newname, next, next(), off, or, order, ot, ownedresource, ownedresource(), p, p5, p6, pause, percent, percentage, percentop(), percentutil(), pick, preemptedres, preemptor, priority, prompt, queue, rand, rand(), random, read, real, real(), recently, rename, report, res(), reserve, reset, reset stats, resource, resourceunit(), resqty, return, round, round(), route, sec, send, setrate, show, skip, snapshot, sound, split, split as, sqrt, sqrt(), stop, t, take, then, threadnum, time, timeleft, timesused(), timeused, to, trace, trunc, trunc(), turn, u, ungroup, units, units(), unload, until, up, use, variable, vatime, view, w, wait, warmup, while, wk, write, writeline, xsub, xwrite.
The “Else is a reserved word” message
Section titled “The “Else is a reserved word” message”When using a single FREE command in my If - Then block I get the error “Else is a reserved word” even though my action logic syntax appears to be correct.
When using FREE statements in an If - Then or If - Then - Else block, subroutines are being called by the system to update statistics before the FREE command is executed. This makes the action logic a multi-line block, requiring the use of open / close squirly brackets.
Even though the FREE command may be the only line of action logic in your If - Then block, there are actually multiple actions occurring since there are statistical update subroutines being called. To eliminate this error simply include open / close squirrely brackets in your If - Then block.
Example:
SWYgdl9Db3VudGVyID0gMiBUaGVuCgl7CglGcmVlIEFsbAoJfQ==
The “Macro name is a reserved name” message
Section titled “The “Macro name is a reserved name” message”When the model is simulated the following error is received.

Translation Status: Normal Run, Compiler Initialization Compiler Initialization Macro name ‘ACCUM’ is a reserved name.
Reason
Section titled “Reason”You used a reserved name when creating a “Descriptive” attribute or variable value (look in the descriptor list), or a scenario parameter name.
Solution
Section titled “Solution”Change the attribute/variable descriptor name or scenario parameter name.

