I have two sequences that use the same resource with one a higher priority than the other. As the resource is shared I want to use a common queue for entities using the resource. In order to distinguish the entities I use an entity attribute (P) with values 1 for the higher priority sequence and 2 for the lower sequence. The respective SEIZE objects then have a "match" expression - this.obj.P==1 and this.obj.P==2
This is accepted by the model BUT when I run it the model breaks with an exception:
EXCEPTION AT TIME: 2.911487 s
Error: null
com.jaamsim.input.ExpEvaluator$EntityResolver.resolve(ExpEvaluator.java:303)
com.jaamsim.input.ExpParser$ResolveOutput.evaluate(ExpParser.java:227)
com.jaamsim.input.ExpParser$BinaryOp.evaluate(ExpParser.java:389)
com.jaamsim.input.ExpParser$Expression.evaluate(ExpParser.java:110)
com.jaamsim.input.ExpEvaluator.evaluateExpression(ExpEvaluator.java:364)
com.jaamsim.Samples.SampleExpression.getNextSample(SampleExpression.java:62)
com.jaamsim.ProcessFlow.LinkedService.getNextMatchValue(LinkedService.java:116)
com.jaamsim.ProcessFlow.Seize.startProcessing(Seize.java:78)
com.jaamsim.ProcessFlow.Seize.queueChanged(Seize.java:71)
com.jaamsim.ProcessFlow.Queue$DoQueueChanged.process(Queue.java:251)
com.jaamsim.events.EventManager.executeTarget(EventManager.java:175)
com.jaamsim.events.EventManager.execute(EventManager.java:256)
com.jaamsim.events.Process.run(Process.java:101)
Any suggestions much appreciated
cheers
Kevin
As for you other questions.....I regret I am very much an amatuer at this :)
thanks again
cheers
Kevin
seizequeuematch.cfg's sieze units will only consider the match values if I let the simentities accumulate(I changed the resource capacity from 10 to 1 for this) and even then, EntityGenerator1_1 is processed incorrectly. Is this a bug?
(I would also like to ask whether its possible to write a conditional expression for the seize unit's match value which can return the default 'null' value if a condition is met?)
I think I understand my issue however: I thought the match expression in the SEIZE referenced the entity that would be passed in - as suggested by the hover help (this.obj.Attrib1). I think this is wrong as there is no obj
The entities in a queue can stuck if matching is used and if [Queue].obj, the entity added last, is already left the queue. I solved this problem in the past by making the entities in the queue constantly reneging back to the queue. This way [Queue].obj almost always points to an entity in the queue.
I tried to use an expression for renegeTime to only renege the entities if [Queue].obj is left the queue(by checking the attribute this.obj.QueueState)
Harry,
I will create a dashboard for monitoring some parameters of the model and I found the custom outputs very useful for debugging. I also redesigned the data structure of the recipe to anticipate the restriction of data types in arrays in new versions of JaamSim.
Zoli