Step Type when executing mapping
Hi am a newbee here. I would like to know what are step types when we execute the mapping and if I have a simple map then which one would be the best option?
We have many options (Row Based, Set Based..etc)
Thanks,
Kriti
Ok... it all depends on what your mapping is doing.
Set based provides better performance. In the other hand, there's some operators that won't work in set based mode, so you'll have to alter this property to row based. The "Target Only" tag means it will run in the selected mode only in the target database.
For further info, refer to Oracle Warehouse Builder User's Guide 10g Release 2 (10.2), chapter 15 - Understanding Performance and Advanced ETL Concepts.
Look for the Set Based Versus Row Based Operating Modes section.
Regards
Marcos
Similar Messages
-
Error when executing Maps Updater
Hi,
I installed Nokia Maps Updater version 1.0.12 but I'm not able to use it. It opens and reaches the window where is shows "Checking for Updates" but then I get this error:
"Error
Cannot get enough information about the phone [3].
Unspecified error [1]."
Does anyone what is causing this? Was Nokia already informed about this issue?
Thanks.
_sm
Attachments:
error.JPG 15 KBI forgot to mention the model. This happens with a N78. I didn't try any other model.
-
Need to assign Role into step type mail in recipent type
Hi Experts,
I need to assign role to for step type send mail recipent type . but in drop down there is not any role option to assign . to achive this i created organization then position and assing job to that position then assigne to role under that job . after all in recipent type i assigned with job . but when i execute workflow i am getting error . even i dirctally assign role to position and then assigne that position to recipent type. when executing my workflow i am getting error .
but if a assigne user to position or job my workflow working properlay. is there any proble to assing Role to Job or position.
please let me know is there any extra thing i need to take care when i assign Role to position or Job .
point will rewarded for right answer.Hello,
Get the users assigned to the role into a container element in the previous step of 'SendMail' step and use the same as the recipient of the Sendmail step.
This would be a better and easy option as Arghadip said.
Hope this will help.
Regards,
Samson -
Hi,
I'm getting the following error:
VLD-1111: Mapping cannot be generated due to unknown step type.","This mapping contains conflicting components and there is no compatible step type to generate the mapping. Please modify the mapping and remove conflicting components.
I'm not sure what I'm doing wrong. I have to join two sets of records from different sources. So I've create a SET object and a function to generate null values, in order to expresion for calcs like '(value1 * value2 ) + value3', joins objects to merge attributes, etc. My sources are tables from database.
TIAJavier,
Could it be that you first use the match-merge operator and then try to use the set operator?
If that is the case... then use a table in between to stage the result.
Thanks,
Mark. -
Why do I get error -17500 when calling a batch file using the call executable step type?
I am calling a batch file using the call executable step type. If the path to the batch file contains a space I get error -17500 and a message stating there was an error in "Post". For example the path to the batch file is "c:\TestWin\Test Files\...\Program.bat" When I run this I get the above mentioned error, however if I change my directory structure so the path is now "c:\TestWin\TestFiles\...\Program.bat" it runs fine. I use the browse feature to find my batch file so it is not me typing in a path incorrectly. I have removed the batch file and I get a different error stating that it couldn't find the file so it appears that for my error it can find the file but can't run it. I am
sure that this has something to do with the fact that batch files are written in DOS but really don't want to resort to changing my directory structure on all my test stations. Is there any way to fix this problem so I can leave a space in my path?It appears I have figured it out. This was on another computer so I was unaware of how they used their computer. I like you got it to work in the temp directory and in fact got the program.bat file to work as long as I put it under the temp directory, but when I switched out to my TestWin directory it wouldn't work, so I removed everything from the directory except the batch file it self and it work. What I found out after adding files in one at a time is that the person had a file called "Test" with no file extension in there "c:\TestWin\" directory. Removing this file made it work. Putting the file back broke it. So it appeares that when teststand was running it followed the path saw a space and attempted to grab the "Test" file instead of bro
wsing into the "Test Files" directory. If you create a file in your temp directory called "temp" with no file extension you will see the same problem. Thank you for your help. -
When i run the sequence with ivi step types in simulation mode i get the error Types do not mathc. The step that generates this error is an IviScope step type and is configured as a measurement. Th weird thing is that in real mode is working perfectly. I have three measure steps and i get the error in all of them. The exact error message is:
UUT Result: Error, Error executing substep 'Post'. An exception occurred calling 'RunStep' in 'ISubstep' of 'TestStand Ivi Step Types 1.0 Type Library' An error occurred while executing the step. Component Works IVI Control Error: The IVI Read operation failed on channel '1' for logical name 'SampleScope'. Details: (1
) Types do not match. [IVI Error Code: BFFA0015] Source: TSIviStepTypes [Error Code: -30721, User-defined error code.]
Can someone tell me how to fix this problem?. It seems to me that the simulation generates a diferent type of measurement of that generated in real mode.Update:
The simulation driver appears to be raising the error. By switching to specific driver simulation the error does not occur. This may be a problem in either the class simulation driver or the specific driver.
Scott Richardson
National Instruments -
hi all,
When we executes a mapping through owb normally it works fine.
But the same when executes throgh a process flow it get falies with the f/w error.
*"Set based mode not supported ORA-06512"*
The operating mode is "set based fali over to row based"
In the mapping we are doing some transforamtion and putting the data in a flat file.
Please help in this reagrd.
Regards
ashokHi,
change in processflow configuration property OPERATING_MODE for this mapping to ROW_BASED or ROW_BASED_TARGET_ONLY
Hope this helps! -
RuntimeException when executing application mapping program
Dear Friends
I am trying to send an Idoc from R3 system to an SCMTM system.
I have imported the idoc, message mapping is preconfigured from SAP and requisite configurations in ID have been completed.
I am getting this error in test of Interface mapping (operation mapping).
RuntimeException when executing application mapping program com/sap/xi/tf/_DESADVDELVRY03_to_ShipmentRequestRequest_; Details: com.sap.aii.mappingtool.tf7.IllegalInstanceException; Cannot create target element /ns0:ShipmentRequestRequest. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD.
Please help.
Thank You
Warm Regards
Arjun GhoseHi,
it seems that per your XSD the element "/ns0:ShipmentRequestRequest" needs to be created and filled with a value (occurance min 1). But appearently within your mapping you do not create or fill this element. So the validation of the XML against the XSD fails.
Please check your mapping regarding the element "/ns0:ShipmentRequestRequest".
Reagrds,
Kai -
SWDD abends when dragging a step type into existing template
Hello,
The following steps cause an abend. Has anyone seen this and found a fix?
- Start transaction SWWD
- drag a new step type into an existing workflow template
- at the cursor a plus sign displays
- upon releasing the mouse button the program abends
I created an incident report in OSS. While awaiting their response I thought I would ask the community.
The abend listing is included in an attachment.
Thanks
BruceHi Bruce
Solution: Note 1783103 - Short dump or system hanging during drag and drop in the workflow builder - Same abend message and steps. This note asks to Apply note 1769371 to solve the issue. Please note that the correction comes with SAP GUI 7.30 patch 2 ... Ronen Weisz is correct in saying that the SAP GUI is the culprit here ;-)
regards,
modak -
Got 17300 error when execute IVI step in TestStand
Hi all
This is a PCBA test platform,, a 4072 card is used for two sockets, I locked the DMM blocks in order to have just a socket access it at same time.
but the DMM read step type still often has 17300 error, value invalid or out of range, if run only one socket, did not see same problem.
Confused on this.
*The best Chinese farmer*
Attachments:
dmmerror.JPG 153 KBHi Farmer
The DMM is configed to immediately trigger mode, see attachment, according to the help, immediate means DMM dose not wait for any trigger signal, just read it as soon as the "Read DMM" running.
帖子被paulbin在09-12-2007 10:17 PM时编辑过了
帖子被paulbin在09-12-2007 10:27 PM时编辑过了
*The best Chinese farmer*
Attachments:
DMMConfigWindow.PNG 55 KB -
Random error when executing a workflow (urgent!!)
We are sometimes getting the following error message when a workflow is executed:
"com.waveset.util.WavesetException: Can't call method getObject on class com.waveset.server.InternalSession com.waveset.util.InternalError: ID not passed to ObjectCache.getObject"
This error occurs randomly (sometimes happens and sometimes don't, even when repeating the same test) when executing the create user and update user workflows.
The problem is that in spite of this error, the user is successfully created and provisioned to all resources (when executing the create workflow) and all changes made user to the user are also successfully provisioned (when executing the update user workflow), so we are not quite sure what is causing it.
So far, we've checked across our code to make sure that every time the getObject method is called we are passing to it the following code as context:
<invoke name='getObject'>
<select>
<ref>context</ref>
<ref>:display.session</ref>
<invoke name='getLighthouseContext'>
<ref>WF_CONTEXT</ref>
</invoke>
</select>
But this made no difference.
Any comments on this issue would be much appreciated!
Here are 2 different examples of this error from the logs:
1)
Walking case 'Create User'
Walking case 'Approval'
Processing steps in 'Approval'
Step pass 1
Check completion 'Approve'
Processing work item results from 'testuseradmin'
Step complete 'Approve'
Step pass 2
Resolved reference WF_ACTION_TIMEOUT = null
Step inactive 'Approve'
Step executing 'Check Status'
Action
Evaluating XPRESS
Resolved reference APPROVAL = true
Resolved reference APPROVAL = true
Assigning approved = true
Resolved reference ACTUAL_APPROVER = testuseradmin
Resolved reference ACTUAL_APPROVER = testuseradmin
Assigning actualApprover = testuseradmin
XPRESS returned =
<WavesetResult>
<ResultItem type='error' status='error'>
<ResultError>
<Message>
<Text>XPRESS <invoke> exception:</Text>
</Message>
</ResultError>
</ResultItem>
<ResultItem type='error' status='error'>
<ResultError throwable='com.waveset.util.WavesetException'>
<Message>
<Text>Can't call method getObject on class com.waveset.server.InternalSession</Text>
</Message>
<StackTrace>com.waveset.util.WavesetException: Can't call method getObject on class com.waveset.server.InternalSession
==> com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:229)
	at com.waveset.util.Reflection.invoke(Reflection.java:908)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExGet.evalInternal(ExGet.java:114)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_notnull.evalInternal(ExFunction.java:950)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_and.evalInternal(ExFunction.java:606)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_cond.evalInternal(ExFunction.java:3448)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExFunction$f_append.evalInternal(ExFunction.java:2656)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.evalInternal(ExBlock.java:182)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.eval(ExBlock.java:148)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.Scheduler.execute(Scheduler.java:2612)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1701)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1376)
	at com.waveset.task.TaskManager.launchTask(TaskManager.java:267)
	at com.waveset.server.InternalSession.runTask(InternalSession.java:3373)
	at com.waveset.server.ViewMaster.runTask(ViewMaster.java:931)
	at com.waveset.view.UserViewer.launchUpdate(UserViewer.java:3336)
	at com.waveset.view.UserViewer.checkinView(UserViewer.java:1322)
	at com.waveset.object.ViewMaster.checkinView(ViewMaster.java:747)
	at com.waveset.session.LocalSession.checkinView(LocalSession.java:611)
	at com.waveset.ui.util.GenericViewSource.checkinView(GenericViewSource.java:522)
	at com.waveset.ui.util.GenericEditForm.process(GenericEditForm.java:613)
	at org.apache.jsp.account.modify_jsp._jspService(modify_jsp.java:413)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	... 85 more
Wrapped exception:
com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExGet.evalInternal(ExGet.java:114)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_notnull.evalInternal(ExFunction.java:950)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_and.evalInternal(ExFunction.java:606)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_cond.evalInternal(ExFunction.java:3448)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExFunction$f_append.evalInternal(ExFunction.java:2656)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.evalInternal(ExBlock.java:182)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.eval(ExBlock.java:148)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.Scheduler.execute(Scheduler.java:2612)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1701)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1376)
	at com.waveset.task.TaskManager.launchTask(TaskManager.java:267)
	at com.waveset.server.InternalSession.runTask(InternalSession.java:3373)
	at com.waveset.server.ViewMaster.runTask(ViewMaster.java:931)
	at com.waveset.view.UserViewer.launchUpdate(UserViewer.java:3336)
	at com.waveset.view.UserViewer.checkinView(UserViewer.java:1322)
	at com.waveset.object.ViewMaster.checkinView(ViewMaster.java:747)
	at com.waveset.session.LocalSession.checkinView(LocalSession.java:611)
	at com.waveset.ui.util.GenericViewSource.checkinView(GenericViewSource.java:522)
	at com.waveset.ui.util.GenericEditForm.process(GenericEditForm.java:613)
	at org.apache.jsp.account.modify_jsp._jspService(modify_jsp.java:413)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
</StackTrace>
<ResultError throwable='com.waveset.util.InternalError'>
<Message id='OBJECT_CACHE_NO_ID'>
</Message>
<StackTrace>com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExGet.evalInternal(ExGet.java:114)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_notnull.evalInternal(ExFunction.java:950)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_and.evalInternal(ExFunction.java:606)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExFunction$f_cond.evalInternal(ExFunction.java:3448)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExFunction$f_append.evalInternal(ExFunction.java:2656)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.evalInternal(ExBlock.java:182)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExBlock.eval(ExBlock.java:148)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.Scheduler.execute(Scheduler.java:2612)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1701)
	at com.waveset.task.Scheduler.launchTask(Scheduler.java:1376)
	at com.waveset.task.TaskManager.launchTask(TaskManager.java:267)
	at com.waveset.server.InternalSession.runTask(InternalSession.java:3373)
	at com.waveset.server.ViewMaster.runTask(ViewMaster.java:931)
	at com.waveset.view.UserViewer.launchUpdate(UserViewer.java:3336)
	at com.waveset.view.UserViewer.checkinView(UserViewer.java:1322)
	at com.waveset.object.ViewMaster.checkinView(ViewMaster.java:747)
	at com.waveset.session.LocalSession.checkinView(LocalSession.java:611)
	at com.waveset.ui.util.GenericViewSource.checkinView(GenericViewSource.java:522)
	at com.waveset.ui.util.GenericEditForm.process(GenericEditForm.java:613)
	at org.apache.jsp.account.modify_jsp._jspService(modify_jsp.java:413)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
</StackTrace>
</ResultError>
</ResultError>
</ResultItem>
<ResultItem type='error' status='error'>
<ResultError>
<Message>
<Text>XPRESS <invoke> exception:</Text>
</Message>
</ResultError>
</ResultItem>
<ResultItem type='error' status='error'>
<ResultError throwable='com.waveset.util.WavesetException'>
<Message>
<Text>Can't call method getObject on class com.waveset.server.InternalSession</Text>
</Message>
<StackTrace>com.waveset.util.WavesetException: Can't call method getObject on class com.waveset.server.InternalSession
==> com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:229)
	at com.waveset.util.Reflection.invoke(Reflection.java:908)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.getBinding(ExState.java:893)
	at com.waveset.expression.ExReference.evalInternal(ExReference.java:252)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExDefvar.call(ExDefvar.java:257)
	at com.waveset.expression.ExState.geMandar_S: Thank you very much for your reply.
Indeed we are using the inbuilt Approval process in all of our workflows. We call that process from our approval activity and we pass to it the "approver" variable as an argument as follows:
<Activity id='8' name='Manager Approval'>
<Variable name='manager' value='$(user.accounts[Lighthouse].idmManager)'/>
<Action id='0' process='Approval'>
<Argument name='user' value='$(user)'/>
<Argument name='approvalTemplate' value='AIO - New User Approval'/>
<Argument name='approvalForm' value='AIO - Approval Form'/>
<Argument name='approver'>
<ref>manager</ref>
</Argument>
.......... As far as I could investigate, the "approver" variable is passed to the "Approval" process, and this is seen in the logs:
Walking case 'Create User'
Walking case 'Approval'
Processing steps in 'Approval'
Step pass 1
Check completion 'Approve'
Processing work item results from 'testuseradmin'
Step complete 'Approve'
Step pass 2
Resolved reference WF_ACTION_TIMEOUT = null
Step inactive 'Approve'
Step executing 'Check Status'
Action
Evaluating XPRESS
Resolved reference APPROVAL = true
Resolved reference APPROVAL = true
Assigning approved = true
Resolved reference ACTUAL_APPROVER = testuseradmin
Resolved reference ACTUAL_APPROVER = testuseradmin
Assigning actualApprover = testuseradmin
XPRESS returned =
<WavesetResult>
<ResultItem type='error' status='error'>
<ResultError>
<Message>
<Text>XPRESS <invoke> exception:</Text>
</Message>
</ResultError>
</ResultItem>
<ResultItem type='error' status='error'>
<ResultError throwable='com.waveset.util.WavesetException'>
<Message>
<Text>Can't call method getObject on class com.waveset.server.InternalSession</Text>
</Message>
<StackTrace>com.waveset.util.WavesetException: Can't call method getObject on class
com.waveset.server.InternalSession
==> com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
</StackTrace>
</ResultError>
</ResultError>
</ResultItem>
</WavesetResult>
Assimilating last application result into task result
Step complete 'Check Status'
Step inactive 'Approve'
Step pass 3
Resolved reference useSignedApprovals = false
Resolved reference approved = true
Step inactive 'Check Status'
Step executing 'Approved'
Action
Argument op = audit
Argument action = Approve
Resolved reference actualApprover = testuseradmin
Argument subject = testuseradmin
Argument approver = testuseradmin
Argument type = ObjectGroup
Argument name = Top:Bill Payment:Shared Services
Argument accountId = mcontrol1
Argument fullname = Marcelo Control
Argument email = [email protected]
Resolved reference delegator = njefe
Resolved reference approver = testuseradmin
Resolved reference actualApprover = testuseradmin
Resolved reference delegator = njefe
Argument error = Delegated by njefe
Resolved reference comments = null
Argument attributes = {Comments=null}
Resolved reference WF_TRANSACTION_SIGNATURE = null
Calling application 'com.waveset.session.WorkflowServices'
Application requested argument op
Application requested argument logResultErrors
Application requested argument action
Application requested argument status
Application requested argument type
Application requested argument subject
Application requested argument name
Application requested argument resource
Application requested argument accountId
Application requested argument error
Application requested argument parameters
Application requested argument trackedAttributes
Application requested argument attributes
Application requested argument originalAttributes
Application requested argument overflowAttributes
Application requested argument auditableAttributesList
Application requested argument organizations
Step complete 'Approved'
Step inactive 'Check Status'
Step pass 4
Step inactive 'Approved'
Step executing 'end'
Step inactive 'end'
Completing case 'Approval'
Step inactive 'Approved'
Processing steps in 'Create User'
Step pass 1
Check completion 'Manager Approval'
Check subcase result 'Approval'
Subcase complete
Returning from actualApprover to actualApprover = testuseradmin
Returning from applicationEscalator to actualEscalator = null
Returning from approved to managerApproved = true
Returning from comments to comments = null
Step complete 'Manager Approval'
Step pass 2
Resolved reference error = null
Resolved reference managerApproved = true
Resolved reference WF_ACTION_ERROR = null
Step inactive 'Manager Approval'
Step executing 'Provision'
Action
Resolved reference transforms.preProvisionRule = null
Resolved reference transforms.preProvisionForm = null
Creating subcase Data Transformation
Step inactive 'Manager Approval'
Step pass 3
Check completion 'Provision'
Check subcase result 'null'
Subcase waiting
----------------------------------------In spite of that, the error ocurred (I've eliminated some StackTrace lines for clarity reasons, but you can find them in my original post).
Furthermore, we've encountered this error in other activities diffrent from the "Approval" process. Here's another log example of this error:
Walking case 'AIO - Update Resource Account WF'
Walking case 'Rename Task'
Processing steps in 'Rename Task'
Step pass 1
Initializing variables
Initial Case Variables
name = Solicitud de Acceso en Proceso de jjefe (04/08/2008 @ 17:12:04)
Case title set to 'Rename Task'
Step executing 'Find Unique Name'
Action
Resolved reference makeUnique = null
Condition evaluated false
Step complete 'Find Unique Name'
Step inactive 'Find Unique Name'
Step executing 'Rename'
Action
Evaluating XPRESS
Resolved reference name = Solicitud de Acceso en Proceso de jjefe (04/08/2008 @ 17:12:04)
Resolved reference WF_CASE_OWNER = jjefe
Resolved reference name = Solicitud de Acceso en Proceso de jjefe (04/08/2008 @ 17:12:04)
Resolved reference name = Solicitud de Acceso en Proceso de jjefe (04/08/2008 @ 17:12:04)
XPRESS returned =
<WavesetResult>
<ResultItem type='error' status='error'>
<ResultError>
<Message>
<Text>XPRESS <invoke> exception:</Text>
</Message>
</ResultError>
</ResultItem>
<ResultItem type='error' status='error'>
<ResultError throwable='com.waveset.util.WavesetException'>
<Message>
<Text>Can't call method getObject on class com.waveset.server.InternalSession</Text>
</Message>
<StackTrace>com.waveset.util.WavesetException: Can't call method getObject on class com.waveset.server.InternalSession
==> com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:229)
	at com.waveset.util.Reflection.invoke(Reflection.java:908)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExRule$Argument.evalInternal(ExRule.java:345)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:172)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.TaskThread.run(TaskThread.java:132)
Caused by: com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	... 31 more
Wrapped exception:
com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExRule$Argument.evalInternal(ExRule.java:345)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:172)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.TaskThread.run(TaskThread.java:132)
</StackTrace>
<ResultError throwable='com.waveset.util.InternalError'>
<Message id='OBJECT_CACHE_NO_ID'>
</Message>
<StackTrace>com.waveset.util.InternalError: ID not passed to ObjectCache.getObject
	at com.waveset.util.WavesetException.checkBreakpoint(WavesetException.java:513)
	at com.waveset.util.WavesetException.<init>(WavesetException.java:114)
	at com.waveset.util.InternalError.<init>(InternalError.java:75)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:527)
	at com.waveset.object.ObjectCache.getObject(ObjectCache.java:480)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:478)
	at com.waveset.server.InternalSession.getObject(InternalSession.java:497)
	at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.waveset.util.Reflection.invoke(Reflection.java:885)
	at com.waveset.util.Reflection.invoke(Reflection.java:846)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:171)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExInvoke.evalInternal(ExInvoke.java:130)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.object.Rule.eval(Rule.java:955)
	at com.waveset.workflow.ExpressionState.resolveRule(ExpressionState.java:233)
	at com.waveset.expression.ExState.externalRule(ExState.java:565)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:184)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExRule$Argument.evalInternal(ExRule.java:345)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.expression.ExRule.evalInternal(ExRule.java:172)
	at com.waveset.expression.ExNode.eval(ExNode.java:79)
	at com.waveset.expression.ExNode.evalToObject(ExNode.java:498)
	at com.waveset.workflow.WorkflowEngine.evaluate(WorkflowEngine.java:1463)
	at com.waveset.workflow.WorkflowEngine.initVariables(WorkflowEngine.java:2017)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:3312)
	at com.waveset.workflow.WorkflowEngine.makeTransition(WorkflowEngine.java:2863)
	at com.waveset.workflow.WorkflowEngine.checkExplicitTransitions(WorkflowEngine.java:2754)
	at com.waveset.workflow.WorkflowEngine.checkTransitions(WorkflowEngine.java:2540)
	at com.waveset.workflow.WorkflowEngine.processSteps(WorkflowEngine.java:1945)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1797)
	at com.waveset.workflow.WorkflowEngine.walkCases(WorkflowEngine.java:1705)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:843)
	at com.waveset.workflow.WorkflowEngine.execute(WorkflowEngine.java:505)
	at com.waveset.workflow.WorkflowExecutor.execute(WorkflowExecutor.java:236)
	at com.waveset.task.TaskThread.run(TaskThread.java:132)
</StackTrace>
</ResultError>
</ResultError>
</ResultItem>
</WavesetResult>
Assimilating last application result into task result
Step complete 'Rename'
Step inactive 'Find Unique Name'
Step pass 2
Step inactive 'Rename'
Completing case 'Rename Task'
Processing steps in 'AIO - Update Resource Account WF'
Step pass 1
Check completion 'Rename Temporary Task'
Check subcase result 'Rename Task'
Subcase complete
Step complete 'Rename Temporary Task'
Step pass 2
Step inactive 'Rename Temporary Task'
Step executing 'end'
Step inactive 'end'
Completing case 'AIO - Update Resource Account WF'
Step inactive 'Rename Temporary Task'
Deleting work item for action Edit Request
Deleting invalid work item #ID#5F564652662387E3:-15828051:11B8E51257D:-7CEE
Finished executing workflow case AIO - Update Resource Account WF
***************************************The code that genereted this log is something like this:
<Configuration name='Rename Task' creator='%STARTUP%Configurator' createDate='1214936621250' lastModifier='Configurator' lastModDate='1216397579578' lastMod='1'>
<Extension>
<WFProcess name='Rename Task' maxSteps='0'>
<Comments>
 Rename the current workflow task instance.
 </Comments>
<Variable name='name' input='true'>
<Comments>
 New task instance name.
 </Comments>
</Variable>
<Variable name='makeUnique' input='true'>
<Comments>
 If true, causes this task to append a suffix to the end
 of 'name' in order to enforce uniqueness. Otherwise
 this task fails if a task already exists called 'name'.
 </Comments>
</Variable>
<Activity id='0' name='Find Unique Name' hidden='true'>
<Action id='0'>
<Comments>
 The 'name' passed in may be suffixed with something that
 makes it unique if necessary
 </Comments>
<Condition>
<isTrue>
<ref>makeUnique</ref>
</isTrue>
</Condition>
<expression>
<block>
<defvar name='uniqueName'>
<ref>name</ref>
</defvar>
<defvar name='counter'>
<i>0</i>
</defvar>
<while>
<cond>
<invoke name='getObjectIfExists'>
<invoke name='getLighthouseContext'>
<ref>WF_CONTEXT</ref>
</invoke>
<invoke name='findType' class='com.waveset.object.Type'>
<s>TaskInstance</s>
</invoke>
<ref>uniqueName</ref>
</invoke>
<s>false</s>
</cond>
<block>
<set name='counter'>
<add>
<ref>counter</ref>
<i>1</i>
</add>
</set>
<set name='uniqueName'>
<concat>
<ref>name</ref>
<s>(</s>
<ref>counter</ref>
<s>)</s>
</concat>
</set>
<s>true</s>
</block>
<s>false</s>
</while>
<set name='name'>
<ref>uniqueName</ref>
</set>
</block>
</expression>
</Action>
<Transition to='Rename'/>
<WorkflowEditor x='43' y='10'/>
</Activity>
<Activity id='1' name='Rename'>
<Action id='0'>
<Comments>
 First rename the object in the repository. The last
 argument is an options map containing the name under which
 we will lock the object.
 Next rename it in memory so when the scheduler eventually
 saves it back into the repository it doesn't overwrite
 the name we just changed.
 </Comments>
<expression>
<block>
<invoke name='renameObject'>
<invoke name='getLighthouseContext'>
<ref>WF_CONTEXT</ref>
</invoke>
<invoke name='findType' class='com.waveset.object.Type'>
<s>TaskInstance</s>
</invoke>
<invoke name='getId'>
<invoke name='getTask'>
<ref>WF_CONTEXT</ref>
</invoke>
</invoke>
<ref>name</ref>
<map>
<s>user</s>
<ref>WF_CASE_OWNER</ref>
</map>
</invoke>
<invoke name='setName'>
<invoke name='getTask'>
<ref>WF_CONTEXT</ref>
</invoke>
<ref>name</ref>
</invoke>
<invoke name='setDisplayName'>
<invoke name='getTask'>
<ref>WF_CONTEXT</ref>
</invoke>
<ref>name</ref>
</invoke>
</block>
</expression>
</Action>
<WorkflowEditor x='174' y='13'/>
</Activity>
</WFProcess>
</Extension>
<MemberObjectGroups>
<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
</MemberObjectGroups>
</Configuration>
.......................................Any ideas on why this is happening?
Thanks a lot in advance. -
Assignment of Step type and CR step for MDG_S
Hi
This is in continuaton for thread MDG_S workflow.
I original issue which is for MDGS when I assigned WS543000005 to CR type and sumitted CR goes no where,
As as per SWEL it shows No Reciver Found enen though GET_AGENT table is maintained.
In another system I found that WS531000044 is assigned ti CR Type Then I tested it and found that CR creates Work Items also upto final processing.
as per below
Before CR Submission : CR status is 02: Changes to be executed
After CR Submission : CR status is 01:To be considered and Approved
After CR Reviewer approves : CR status is 09: Dependant Data to be processed /Approved
After Purchase reviewer Finalize processing :CR status is 09: Dependant Data to be processed /Approved
After Finainace reviewer Finalixe processing :CR status is 09: Dependant Data to be processed /Approved
Now I can not see CR any where even though CR step 04 and 04 assigned to my user ID
I have some questions as Description in Define Change Request Steps is not Mataching with description in GET_AGENT desesion table.
Also it is observed that step 80 is not assigned to WS531000044 in IMG node Define Change Request Steps but it can be seen in GET_AGENT decesion table and step no 06 and 07 does not appears in GET_AGENT decesion table ( In edit mode).
Can you explain from where assignment of CR steps to CR type in desion table are taken ino accout ?
Why description is not matched for steps under IMG and in decesion table?
Can you explain me releationship between CR step and step type,CR Status and where they \maintained in IMG and how proceeses modelling is diffenent t for determination of Next CR step in case of WS531000044 ?Please keep in mind that "hard-wired" workflow templates are just that: hard-wired. This means that a specific workflow template (for example WS53100044) will always have the same number of steps, each step will always have the same type and number, agents will always be assigned in the same way, and those can't be altered by configurations. To understand each workflow template's behavior, you can either open that template in transaction PFTC or SWDD, or alternatively, read the exact behavior in SAP Help documentation. You basically need to google the workflow template number and you should be able to find the description of each template's behavior (by the way, the number you type has an extra zero so if you can't find a match on Google, you will know why ).
Now, the assignment of CR steps to CR type is done in the workflow template itself and NOT in the decision table. See the first screenshot:
The step number above "should" correspond to what is in the configuration table (for readability and consistency of documentation purposes). However, if for some reason, it does not, the hard-coded value is the value that will actually be considered. So, in technical terms, the assignment of step numbers in MDGIMG has no influence on how the workflow template will behave. Again, the main purpose is for the corresponding description in the step number configuration table to show on the CR window.
The other thing is the step type. A step type purpose is mainly to indicate what set of buttons will show at the top of the CR window. The fact that step types are represented by numbers confuse a lot of people with step numbers. I would have personally preferred if step types were a 2-char field so that a clear distinction can be made between step types and step numbers. In any case, buttons on the CR correspond to actions and you can see in MDGIMG that you can assign step types to actions. SAP delivers a pre-defined set of step types and associated actions. Those must NOT be altered because they could break the standard workflow templates. However, you can create your own custom step types and link them with as many actions (standard or custom actions) as you like. But again, you can't assign those custom step types to hard-wired workflow templates. You can only use them in your custom workflow templates or in the rule-based workflow.
Now, the question is how does the hard-wired workflow know what step type to use. The answer is easy: you can either find that in the SAP Help documentation or in the workflow template definition in transaction SWDD. For the above screenshot, the step type is 2. You can find that if you double-click the task ID TS75707980 (or display it using transaction PFTC) and look in the "Cntainer" tab. In this case, this task will ALWAYS have type 2. Other tasks are assigned different step types or are more dynamic in the sense that they expect the step type to be passed from the main workflow template calling them. For example TS53200002 will always have type 7, TS60808005 will always have type 5, and TS60807954 accepts the step type dynamically. This last one is the one used in the rule-based workflow (hence it has to read the step type configured in the decision table).
I hope this answers you question. You definitely need some level of workflow design/build knowledge in order to be able to completely understand all of this. Hopefully, this gives you a good starting point. -
Hi everybody,
I'm looking for tips, pointers,directions... to be able to perform this operation in TS 4.0 sequence Editor, if it's even possible...
I'm managing a test system with a "home-made" virtual instruments abstraction Layer complementary to IVI classes for instruments which do not have classes defined, customizing the sequence editor accordingly for developpers of my department.
So basically when the instrument is IVI, the developper uses the built-in IVI step-type type and when it is not, he uses the the custom step types that I developped for this particular class of instruments.
However there are classes where I do have both IVI and specific drivers available and I do need to use both in the test sequence.
For example let's say there are two sources of DC power available in the testbench, one being a programmable IVI compliant DC power supply, and the other one composed of fixed "blocks" of DC power supply managed by externals relays and you need to use them both in the test sequence.
What I would like to be able to do in the sequence editor is inserting the appropriate step type at edit time just by selecting the source of power supply (by a ring or enum for eg), and if the first ressource is selected, it inserts IVI step type, and if the second ressource is chosen, it inserts the appropriate custom step type.
Any Ideas on how to accomplish this ?
Regards,
Cyril
Cyril Bouton
Active LabVIEW Developper
Solved!
Go to Solution.Hello Cyril,
Here is an idea that could be done:
You could create a dynamic step by having a step that holds all the properties for both configurations (the superset of the necessary variables) and an extra one that indicates which 'mode' the step is in. Then you create the main Edit substep in whichever language you desire. That substep window will then have a box/dropdown/etc. at the top you can use to choose between modes A & B. When the user changes the value, you would dynamically change the rest of the window to contain the appropriate properties for mode A or B. You then copy the property values in that window to the Step properties, and copy the mode to your variable and you can run the step in that mode. When the step then runs, it checks the mode variable, and depending on its value, it will run the step in mode A or B.
Now we could add a dialog that allows us to choose when we put a step down but we should still allow the user to change later via the Edit substep we create.
I don't think we can create something that inserts a completely different step, but we can have one step that has the ability to do both and we can pick which one we execute. Also note we still don't have the ability to edit the Panels for a step, so we have to use a new window that we call from our Edit substep to complete the step.
Hope this helps.
Regards,
Olivier L. | Certified LabVIEW Developer -
Add-on step types for TestStand?
I am almost certainly reinventing some wheels with Teststand by creating some basic test types.
For example, I just wrote a custom step type for taking an analog measurement from a DAQmx instrument. Surely someone has done this before, and surely someone will want to do it again. There's nothing proprietary about code that simple, and I'd be happy to give it away if there was a place to post it.
Two questions:
1. Is there an open-source repository for sharing custom step types?
2. Are there add-ons for purchase with canned step types beyond those which come with TestStand?
-ArthurHi Jigg,
I looked at Averna.com, and I don't see any add-ins available on their website. It looks like they offer services mostly.
It's a good point about TS projects being so varied and customized. However, if custom step types are well architected, as the built-in step types are, then they ought to be reusable by others.
You're right also that I can accomplish my DAQmx steps easily using an Action step with the LV adapter. My motivation for the custom step is to improve the interface for setting up such an action. In particular, when using an IO channel in TS, I have to manually type in a text string for the DeviceName value, whereas I'd like to choose from a list of global names (e.g. with the global channel list control in LV). I can get this affect by using an Enum in a wrapper VI, which maps to an array of channel constants; but this is fragile if the available channels are changed (e.g. added, removed or renamed in MAX).
Additionally, a custom step type is better than a step template for my purposes, because I can propagate changes in the step type to instances of steps throughout the test. This is incredibly valuable to me during development and debugging. It saves me time when I want to update a step that I've used many times throughout a test sequence. Although TS isn't itself a programming language, I find that I expect it to share certain traits with programming languages to facilitate development, such as type abstractions and a strict enforcement of congruency between types and instances. But I digress....
Thanks for your suggestions. -
Problems with Custom Data Types when converting from TS 1.0 to 3.0.
I am currently involved in the process of converting a test environment from TestStand 1.0, LabVIEW 5.1, and Windows NT to TestStand 3.0, LabVIEW 7.0, and Windows XP. We use a custom Operator Interface developed in LV. Based on the entered Model and Serial number, the appropriate Test Sequence is called. We also use a custom Process Model. The steps in the Test Sequence are either LV code modules or DLLs created in C++. We have LV SubVIs and C++ API functions that allow the developers of the test steps to add data to various Custom Data Types. For example, a developer may set up a test to add a note (Step.Result.Notes[x].String) when the test fails. Step.Result.Notes is a container for an array of strings. The attempt to set a note first attempts to use SetDimensions to redimension the array, then SetValString to set the value. These notes are added to the report. On the old system, everything worked fine. A note could be added to any result. On the new system, if a note is added to say the 5th result, but results 1-4 do not have a note, the test sequence ends and the Operator Interface returns to waiting for data entry (as if no test ever happened). No report is generated. The LabVIEW libraries have been modified to solve this problem by calling SetDimensions to incrementally increase the array size by one, and populating the unused TestStand array elements with an empty array of LabVIEW strings using the SetValString call . In other words, based on the previous example, if the user wants to set a note for the 5th result, the notes for results 1-4 must first be sent an empty array of strings. The report will only display the note for Result 5 (as desired). In addition to this being cumbersome, attempting to implement the same workaround in the C++ API has been unsuccessful because even though the note arrays for unwanted notes (1-4) is initialized with nothing, it is still displayed as a note (empty) on the report. If anybody knows what is wrong and what the solution is, it will be appreciated.
Aaron,
Thanks for your reply. I will attempt to clarify. I am working with a single step. The step calls a DLL. The DLL performs many 'checks' on the UUT (e.g. Model Number Check, Serial Number Check, Calibration Constants Check, etc.). Under the Type Palette - MyTypes.ini, we have a Step Type called TEST_DLL with a container in it called Results. In the Results container are a number of things, but I will only list the important ones:
Notes (Array of Type 'Notes'; Type 'Notes' is a Custom Data Type (container, Type Definition)containing an array of strings called 'String')
-Notes are generally set when on of the checks fails, otherwise no Note is set for the check.
Val (Array of Type 'Val'; Type 'Val' is Custom Data Type (container, Type Definition) containing a Boolean called 'Boolean')
-Val indicates whether the check passed of failed
Pseudocode example:
//Model Number Check
check# = 0;
resultBOOL = ModelNumberCheck();
SetDimensions("Step.Result.Val", 0, "[0]", check#);
SetValBoolean("Step.Result.Val[check#].Boolean", 0, resultBOOL);
if(resultBOOL == FAIL)
Note# = 0;
SetDimensions("Step.Result.Notes", 0, "[0]", check#);
SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Model Number Check failed");
Note# = 1;
SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Model Number = 1234");
//Serial Number Check
check# = 1;
resultBOOL = SerialNumberCheck();
SetDimensions("Step.Result.Val", 0, "[0]", check#);
SetValBoolean("Step.Result.Val[check#].Boolean", 0, resultBOOL);
if(resultBOOL == FAIL)
Note# = 0;
SetDimensions("Step.Result.Notes", 0, "[0]", check#);
SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Serial Number does not match expected");
More Checks
As you can see above, the "Step.Result.Val" array is redimensioned for every check. The "Step.Result.Notes" array is only redimensioned when a note needs to be added for a failing check. If the entire step executes and no check adds a note, the sequence is fine. If every check fails and therefore every check adds a note, the sequence is fine. However, if there are any gaps (e.g. check 0 adds a note, check 1 does not add a note, and check 2 tries to add a note), the sequence will stop. If I add blank notes for every check that would otherwise not have a note, the sequence completes, but the report shows the blank note.
Also, the exact code that is causing these problems runs fine on our old systems (TestStand 1.0). I hope that I clarified the problem and thanks again for the help.
Maybe you are looking for
-
Financial Reporting Batch Scheduler Error - EPM 11.1.2.1
Hi, I just downloaded, installed and configured 11.1.2.1 on a test server. Defaults were used and all products have been configured to run on the same database (SQL Server). Mostly everything seems to be working, but when I try to open up "Batch Sche
-
Small letters in guide display quide
letters too small on xfinity x1 guide displays
-
The only date that I can have in my database for some reason is mm/dd/yy. what is the code to make it dd/mm/yy?
-
Command for view i/o rate cisco nexus
Hi I need a command for view input and output rate on all interface for device nexus 7000 and nexus 5000 The command sh interface show more information, I only need view rx and tx on switch 3750, 2960 i use sh interface summary and in nexus do not ex
-
Resize Columns In Table2 based on Table1
I have two tables. One with data and one with totals on that data. I want the totals table to resize it's columns based on the column sizes of the data table. Do you know how to do that? Thanks, Zeke