In 17.1 label access was made more strict so that it throws an exception when you try to access a label that isn't there. Synchronize and Join activities have their Partition ID fields set by default to token.splitID. This now throws an exception if the token doesn't have a splitID. For 17.1.1 we've updated that line to be token.splitID? , which is the way you can say get me the value of this label if it exists.
You have a couple options:
1. You could wait until we release 17.1.1 (hopefully tomorrow) and then open the old 17.0 version of your model in 17.1.1 and the update script will update all fields that say token.splitID to token.splitID?
2. Go through and change the partitionID of each activity to token.splitID? or just clear it out with the X button if your don't want to use a partitionID.
3. If you're not even using the splitID field on any of the activities you can run this script to zero out the splitIDs:
treenode pfs = model().subnodes.assert("Tools").subnodes.assert("ProcessFlow");
for(int i = 1; i <= pfs.subnodes.length; i++) {
treenode pF = pfs.subnodes;
for(int j = 2; j <= pF.subnodes.length; j++) {
treenode activity = pF.subnodes;
if(isclasstype(activity, "ProcessFlow::Join") || isclasstype(activity, "ProcessFlow::Synchronize")) {
treenode partitionID = getvarnode(activity, "partitionID");
if(getsdtvalue(partitionID, "stringValue") == "splitID") {
partitionID.subnodes.clear();
partitionID.value = 0;
}
}
}
}
Matthew Gillespie
FlexSim Software Developer