Poststep callback in process model

I have a gui that relies on my running a poststep callback after each step. I want to place it in my process model for the parallel model, but it appears to be an engine callback. Is there a way to place poststep operations in the process model so I don't need to have the poststep callback in my sequence files?

Steve,
just use the callback override for the "ProcessModelPostStep" Callback. This will be executed far all executed steps in all clientsequencefiles.
hope this helps,
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.

Similar Messages

  • Can I override Engine Callback in Process Model?

    I'm confused. I suppose I can put the SequenceFilePostStep and the SequenceFilePostStepRuntimeError callbacks into the Process Model I use and thus override this engine callback for all my sequence files what I execute using this Process Model. What I actually see is that I should create these engine callbacks in each of my sequence files to make them work. The ones from Process Model are not called. Call Stack I have is <Process Model> - <Top Sequence File> - <Called Sequence File (where the error take place)>. So, I'd like to maintain my engine callbacks in one place <Process Model> instead of many places <Called Sequence File>.
    Sergey Kolbunov
    CLA, CTD
    Solved!
    Go to Solution.

    Hi,
    If you'd like to maintain the engine callbacks in one place <Process Model> instead of many places <Called Sequence File>, then use ProcessModelPostStep and ProcessModelPostStepRuntimeError in your process model sequence file. These will be fired after each step in the client sequence. TS Reference Manual Table 10-1, "After the engine executes each step in any client
    sequence file the process model calls and each step in any resulting subsequence calls."
    The equivalent of this would be to use SequenceFilePostStep and the SequenceFilePostStepRuntimeError callbacks in all of your client sequence files. BTW if you wanted a comprehensive error handler you could use ProcessModelPostStepRuntimeError and SequenceFilePostStepRuntimeError in your process model. This would cover all the steps in the process model sequences, and in the client test sequences.
    I think engine callbacks are enabled and disabled, as opposed to overridden. 
    cc

  • Best way to modify Sequential Process Model for report generation.

    I am using the Sequential Process Model in my application and the TestStand Reference Manual, (Figure A-1), clearly shows the following processing sequence:
    ...<part removed>
        Call the Test Sequence
        Display the UUT results
        Generate a Report
        Log Result to a Database
    ...<more removed>
    I want to generate the report BEFORE displaying the results to the operator, or at a minimum, I want to generate the report in parallel with displaying the results to the operator.  Currently, the problem I have is that when the test is done I have some automated scripts that take the data file and do some statistical processing on it, but the way the Sequential Process Model is set up, the test might finish but until the operator acknowledges the PASS/FAIL results display, the resulting file is never created.  It could be overnight, over the weekend, or several days before an operator comes back and says, "Oh that last test finished, I guess I can press the OK button!", but until they do, I get no data.  So I want the report generated no matter what, and right after the test finishes.
    Any ideas as to how that might be best accomplished?
    Thanks a billion -  Ski (noob)

    Ray,
    Is that new in 4.2 that the engine won't call a callback with nothing in it?  I just did it and it seemed to work fine.  I'm using 4.1.1 though.
    Ski,
    Maybe there is a better solution for what you want.  Are you using the SequentialModel?  What version of TS do you use?  Why does the report have to be written before the pass/fail banner displays?  The pass/fail banner gets displayed in the PostUUT callback.  Like Ray said if you just put that in your client sequence you won't see the banners.  However, I'm assuming there is more to this than just that.  I'm assuming you want to see the report because of your external analyzer that is gathering the statistical data.  And then based on that data you want to allow the user other options.  Is this correct? 
    If so then I would override the PostUUT callback and then use a different callback (possible the ProcessCleanup callback) to displaly the banners.  You could even do this without modifying the process model (which I always try to avoid).  Just override both the PostUUT and ProcessCleanup callbacks.  And then put code in the ProcessCleanup to behave like you need.
    Or if you want you can modify the process model and create a new callback lower in the process model.  Then have that new one do the post report analysis.
    Just some thoughts.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Runtime error in process model and sequence still passes

    I am doing some custom initialization in the process model (in the ProcessSetup callback). I call a .NET module that may throw an exception under certain error conditions. This causes the the process model to jump to the Cleanup section of the process model (not the client sequence file cleanup) and that's okay. The problem I have is that in my UI I am getting the AxAppMgr_ExecutionEnded event and the e argument's exec.ResultStatus property indicates "Passed". I want it to indicate "Error" or "Incomplete" or something other than passed. The client sequence never ran at all. While it had no failures, it could not have passed.
    How do I force the status to be "Error" or something other than "Passed"?
    Solved!
    Go to Solution.

    Ryan,
    I am just getting back to this. Thanks for the response.
    I have my own sequence that gets called from ProcessSetup in the process model. That sequence sets up some station global variables for me including some Object References. One of the object references is a .NET object used to read a file. If that file does not exist, then the .NET object throws an exception which results in TestStand presenting a dialog with the error message and options about what to do next. I don't want our technicians getting that dialog box so I changed the Station Options to "Run Cleanup" on Run-time error. 
    The process model jumps to its Cleanup section when the run-time error is received. 
    Does that give you the information you need?
    Incidentally, I am able to look at the e.exec.ErrorObject in the AxAppMgr_EndExecution event handler and I can see the error as suggested by Doug above.
    Thanks.

  • Parallel Process Model Entry

    Hello,
    First, using LabVIEW 2011 and TestStand 2010 SP1.
    We have a custum GUI setup to use the sequential model.  At the heart of it, when we hit start, it accesses the Single Pass entry point and runs it with some modifications we've made.  Now, we'd like to have a setup that can test multiple DUTs and use the Parallel Process Model.  I'd like to have our GUI basically perform the same functions as the built in popup when running the TestUUTs entry point.  I've seen the PreUUT callback where you can disable the built in popup.  But what I can't seem to figure out is how to initiate a test socket test because it doesn't seem to line up with an entry point necessarily.
    When they push the start button next to DUT 0, I want to start socket 0.  And if they hit the start button next to DUT 1, I want to start socket 1.  What entry point does the GUI use to make this happen?  Does the GUI need to start an entry point (IE Test UUTs) then send more information later to start a test?  if so, where does TestStand wait for that information within the parallel process model?
    Thanks.

    One way you could do it is as follows:
    Still override PreUUT like in the example and add code which posts a UIMessage synchronously to the UI and then waits for a persocket notification (e.g. you can use the socket index as part of the name to make a per socket notification). Then in your UI, handle the UIMessageEvent on the ApplicationMgr. When you get the UIMessage from your PreUUT you will know it's ready and you can then update your UI to enable the start button, and when the user presses it, you can then Set() the notification to tell the testsocket thread to continue.
    for example, in preuut:
    Create Notification "MyUIStartNotification Socket 1"
    Thread.PostUIMessage(UIMsg_UserMessageBase + 1, RunState.TestSockets.MyIndex, "MyUIStartNotification Socket 1", null, true)
    Wait on Notification "MyUIStartNotification Socket 1"
    In your UI
    Handle UIMsg_UserMessageBase + 1
    Enable Start Button
    When start button pushed, Set Notification that corresponds to that socket. Pass any data needed with the notification, for example, create a container that contains a serialnumber property and a continuetesting property and pass that with the Set operation. In your PreUUT code get that data from the notification and update your parameters.
    Not simple, but doable.
    -Doug

  • How do I automate parallel process model?

    Hello,
    I need to modify parallel process model so it runs in automated mode. The serial number will come from a serial bar code reader and the operator does not have to press OK on the operator screen. How can I do it?
    Thanks
    CT.

    Either you can write your own preUUT callback sequence or you can modify modelsupport2.dll which provides the standard serialnumber input panel. You can find the source code for modelsupport2.dll in <teststand directory>/Components\Models\TestStandModels.

  • Getting sequence filename and sequence name in process model error handler

    We are using the sequential process model and would like to log sequence step error information to a file.  We have an Error Handler callback in SequentialModel.seq and that is where we will write to the error file.  In the Error Handler callback, I can get the error container info for the step where the error occurs and the name of the that step thru the Error Handler Step parameter.  I would also like to record the sequence file and the sequence where the error occurred, but I have not been able to find those in the sequence context.  I know they are available because the TestStand RunTime Error dialog box displays them.  How can I access the name of the sequence file and the name of the sequence where the error occurred?
    Thanks,
    Hans

    Hey hans,
    Use the API.  Since you already have the Step object reference coming in as a parameter you can just use a few ActiveX steps to get the Sequence File and Sequence from which the error was thrown.
    Step.Sequence
    Sequence.Name (gets the name of the sequence)
    Sequence.SequenceFile
    SequenceFile.Path (gets the path of the sequence file)
    So basically just 4 activex steps.  I hope this helps.
    Regards,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • What property is the current step name in MainSequen​ce (client sequence) stored in to access in a process model?

    I'm trying to get the name of the current step that is about to be run in the MainSequence from a Process Model. This will be accessed in a "ProcessModelPreStep" callback. Thanks!

    Hi
    (TestStand 2.0.1f1)
    I have a attached an example ProcessModelPreStep callback to get that step name. I use the NameOf ( Parameters.Step).
    I hope this is what you are after.
    Regards
    Ray Farmer
    Regards
    Ray Farmer
    Attachments:
    SequentialModel.seq ‏161 KB

  • Reversal Process Model using PUOCBA

    Hi Guys,
    There is a requirement in our Co. to set up a reversal process model using PUOCBA.
    As far as i know, it is a pretty standard process and we need to copy standard process model SAPUSOCV and create our own and use the same in PUOCBA selecting the reversal option.
    I am doing my every steps correctly, but some how in table T52OCG the Processing type field is not converted to 'V' which is necessay for reversal and it does not allow me to do reversal.
    Kindly brief me on the same , if you have face the same kind of problem or have worked on it.
    Regards,
    Ketal Parikh.
    1-847-330-4127

    Hi Jim,
    So this is my understanding. You have two different sequence files that are run for two different Test Environments. These two environments uses two different data structures to perform some initialization on two different instruments.
    The best way to do so without any modification to the sequential process model is to create Sequence File Globals. So lets say that you have test sequence 1 and test Sequence 2. The two data structures will be DataStruct 1 and DataStruct 2. So open your Test sequence 1 in the sequence editor. From the "View" drop down box on the sequence editor, select "Sequence File Types" and create your DataStruct 1 here. Similarly do that same for Test Sequence 2, create DataStruct2.
    Now use the ProcessSetup and ProcessCleanup callback. Again you shouldn't modify your process model. Go to Edit Menu >> Sequence File Callbacks. Select your callbacks and click add. This will automatically add your callbacks to your Test Sequence files. Now you can add the code relevant to your instruments here and you have access to your datastructure as well. The beauty with callbacks is, you can override the ones in your process model by the ones in your sequence files. This is automatically done, when you place the callback in your sequence file. Now we have accomplished what you wanted to do without a single modification to your process model.
    I hope this helps
    Sijin Karayil
    National Instruments

  • Programmatically disabling database reporting in new 2012 process model?

    Hi,
    We have recently upgraded from teststand 2010 to 2012, and with that has come a few days of porting our fairly heavily modified "older" process model into the new one with a plugin architecture.  All is finally running smooth except for one thing which has me stumped all afternoon. 
    In our other process model, all we had to do was put a precondition on the process model step "log to database", based on the response in a custom process executed in PostUUT.  It does not appear so straight forward with the new architecture, since there is no explicit top level "log to database" sequence to simply put a precondition. 
    So what I have tried, unsuccessfully, is
    Move PostUUT sequence ahead of the "Model Plugins - UUT Done", which appears is the one which eventually calls the log to database steps (through many subsequence calls).
    Then programmatically setting the following flags in PostUUT if the user chooses not to log to database (this database plugin is enabled by default in configure/result processing:
    Parameters.ModelPluginConfiguration.Plugins[1].PluginSpecific.Options.DisableDatabaseLogging = True
    Parameters.ModelPluginConfiguration.Plugins[1].Base.Enabled = False
    It seems that in a  sequence in modelsupport.seq, Call UUT done/Batch Done, has a for loop that eventually iterates on the database options cluster (element 1 in this case), but ignores that fact that the above flags are set such to disable logging. 
    What is the proper/preferred way to disable database logging if chosen at the end of the run by the user?
    Thanks
    David Jenkinson

    Hi,
    I did see that it is now being called in that file, but was hesitant to put the modification there, because new installations of disksets in the future would overwrite that modelsupport.seq, and I'd have to re-code that pre-condition every time we upgrade.  And if I save-as, is there the risk that future updates of modelsupport.seq, or NI-logger, will get lost, when the updates are necessary?  I was hoping to get away with either modifying the process model (which we have under source control), or modifying a property in memory which somehow bypasses database logging programmatically.  There do seem to be properties in existence which imply they would prevent logging, but they don't work when setting them to values other than what they were originally assigned (dicated by the report options before the run).
    An no we are not using OTF for this very reason, to choose if a test run is to be logged to the database after the run. 
    Is there a callback to enable that overrides this default sequence call? 

  • Custom Unattended Process Model Based Upon Duration of Test

    I am looking to develop a test system that:
    Runs the Batch Process Model
    Displays a Custom UUT Serial Number dialog once upon start
    This dialog will also display the desired test duration and various instrument settings
    Loops on the MainSequence for a fixed amount of time OR Loops on the main sequence for a fixed number of iterations
    This should be implemented in the process model
    Does not display any pop-up dialogs during testing
    The goal is for the test to run "unattended"
    I started with a copy of the Test UUTs process model, but wanted to get some advice on how others would design this system.
    A few questions:
    What is the best method for implementing the looping on the MainSequence for a fixed amount of time in the process model?
    What is the best method for avoiding pop-up dialogs from occurring during the test?
    Thanks!
    CLA, CTA

    Put the call to MainSequence inside of a While loop. Use Seconds() to get current time, store in variable and then measure difference between subsequent calls to Seconds() and that variable to determine if your timeout has been met. You can also increment a counter in this loop as well.
    Use custom PreUUT, PostUUT, ProcessModelPostStepRunTimeError and ProcessModelPostStepFailure callbacks. All TestStand-based popups occur in those four areas. There are examples of handling run time errors and failures in the TestStand example folder.
    CTA, CLA, MTFBWY

  • Secondary Process Model

    The TestStand Reference Manual states on page A-4:
    "In addition to using a primary, or parent, process model file, you can use a secondary, or child, process model file to encapsulate specific functionality, such as report generation."
    A "secondary process model" file is also mentioned on page 10-3:
    "A primary process model file can directly call model callback sequences in a secondary process model file. At run time, if the client sequence file of the primary sequence file implements a callback defined in the secondary process model file, TestStand invokes the callback sequence in the client sequence file, even if the primary process model file does not define the callback. You must add a copy of the callback sequence to the primary model file for the callback to appear in the Sequence File Callbacks dialog box for the client sequence file."
    I cannot find any additional information on the secondary process model.
    Can anyone explain how a secondary process model would be used?
    Are there any examples using a secondary process model?
    Thanks!
    CLA, CTA
    Solved!
    Go to Solution.

    1. How does one create/designate a secondary/child process model?
    It appears this is done by creation of a callback sequence in a "child" sequence file AND the "parent sequence file".  Is this correct?
    To create a process model in general you would open a sequence file and go to Edit>>Sequence File Properties.  Then on the Advanced tab change the Type to Model.  For it to become a secondary/child process model you would make a sequence call to it from the primary process model.  For instance the SequentialModel.seq at one point makes a call to ProcessOTFStepResult in either of the Engine callbacks in there.  Then the ProcessOTFStepResult sequence makes a call to PutOneResultInReport (if you are using the reportgen_txt.seq).  Then the PutOneResultInReport sequence makes a call to ModifyReportEntry (which is a callback).  However, if I have a client sequence file I would like to intercept that result and do some modifications.  So I would override that callback.  But since ProcessOTFStepResult and PutOneResultInReport are not in the process model there needs to be a mechanism for me to override that from the client.  This is because reportgen_txt.seq has different behavior than reportgen_html.seq or reportgen_xml.seq.  So it doesn't make sense to put everything in the process model.  Otherwise, your PM would be ridiculously large.  But you also need to make a copy of the callback in the PM so the client can see it.
    2. Is the parent sequence file callback simply acting as a pointer to the child sequence file callback?  Yes and No.  It depends on if it's invoked in the secondary PM or in the primary PM.
    3. How many levels of "child process models" can one create?  Is it possible to create a "third process model"? I just tested this out and it looks like you can.  But you do not have to put the callback in your secondary one.  Just the third layer and primary PM. 
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Instrument identification in process model

    Hi All,
    I have a set of Instrument using LXI,VXI,PXI,MXI and GPIB buses. I have the code module in Labview to indentify and initialize the instruments. I need to identify the instuments every time the Test sequence is loaded,hence i'm thinking to modify the process model to do the same.
    But i don have any idea,where to integrate my code module in process model. I require some suggestions for the same.
    Thanks in advance
    Regards
    VDC

    Hi VDC,
    I have tried the mentioned Callbacks. All workes as assumed. I figured out that SequenceFile callback ist probably not the best for you because you can not give the instrument handel to your running execution(uut) with a SequenceFile Global (OK there are other solutions but i think they are too deep or not effectiv.)
    I think you should try Pre and Post(for Cleanup Handles) UUT Loop
    Just try the TS4.0 example
    Greetings
    Juergen
    =s=i=g=n=a=t=u=r=e= Click on the Star and see what happens :-) =s=i=g=n=a=t=u=r=e=
    Attachments:
    DemoSeqFileCallback.seq ‏7 KB
    DemoUutLoopCallback.seq ‏8 KB

  • Effective Language for Business Process Modelling in a Web Community

    It's a very exciting idea of having business process definition/innovation a community driven process.
    Just Imagine a stituation where somebody can innovate a process on a theoritical level which is then perfected by   business community opinion/examples for benchmarking, effectiveness, relevance etc.
    The ultimate business community dream would be Finding their process in the community. Finding merits and demerits of their process. Explore for a refinement to the process. Getting a copy of their newly created process and
    droping it into their IT system and the wonderful IT system upgrading itself to the new process and executing it.
    The Impact of simplification would be enormous:
    Just check out the possibilities
    Every businessman would be an IT user to get ideas for business and business execution
    The IT Guy would be recognized as process maker
    For a business entity Presentation during AGM could be extra transparent :-).
    A very concrete step in this direction would be to have a language or tool which is very easy to understand and drives people for exploration.
    My Wish would be a Visual web tool which defines a specific business process in the most simple form, and from there somebody can explore the enhancements to the process.
    For example a simple selling process done in medicine shop is
    listening the order verbally , delivering it immediately, getting cash immediately and [typing the Invoice on XL or Word or POS machines], printing it and then giving to Customer.
    after selecting this business process on the tool one should be able to explore the possible process
    enhancements with known business benefits
    like
    a) offer credit facility to customer--> just a worklist to collect pending money
    b) take order now and supply later for non available medicines
    c)Start home delivery
    The businessman should be able to select (1) or (2) which then becomes his new process.
    This can be sent to his IT landscape which should be able to interprete it and then grow itself Ah.... 
    dreaming
    [or atleast the model should tell the IT guy what to do!!].
    The generic business Process enhancements Options are not too many and can be defined and classified
    See the Options in the above mentioned business process context
    1)Automation[Create Purchase order from ]
    2)Increasing depth [The above example a,b,c are for increasing depth]
    3)Step simplification[In the above example instead of word using the POS Machine is simple]
    4)Resource utilization[If you have a PC and don't want to buy POS Machine then type the invoice on a Word :-)]
    5)Delegation
    5)Workforce optimization {any examples :-)community driven}
    7)Process optimization (How to deliver the medicine route wise)
    8)Colloboration (Using courier to send medicine)
    9)Knowledge provision (giving sales/payment trends,)
    The idea is so simple but making this tool highiely context(business) sensitive and intuitive is challenge.
    But anyway it's not impossible to have a business process language which is effective and an IT systems for which starting point is a business process. The IT system which takes your business process and executes them
    wonderfully.
    looking forward for this future
    Anand
    Message was edited by: Anand Rai
    Message was edited by: Anand Rai

    Hi Dilip,
    Thanks a lot for your reply.
    I'm also interested to know from community what are different tools used by them for process modelling?
    What are their merits?
    1)are they easily understandabale
    2) do they come with business context
    3)whether they can be used in a web comunity? Like somebody can give feedback or business case for a particular business process/step.
    4)Does it drive the IT automation
    5)Are there any appservers which take business model and generate/grow applications
    6)How the different modelling applications should communicate?
    7)Common standards
    For example
    I have used rational rose and RAD like VB they are complicated/simple enough to generate model based applications but the business representation and business context is totally missing. I would seek something with more business context or knowledgebase.
    Regards Anand

  • Finding the name of my teststand sequence in the process model

    I would like to be able to find the file path and name of a teststand sequence in the process model. I have created a simple vi which will display this information when run in a sequence. If i insert the vi into the process model, the file path and name returned is that of the process model and not the sequence under exectution. Is there a way of extracting this information in the process model?

    Davepar -
    If you are executing in the process model you can use the following as a lookup string if you are in the root context "RunState.ProcessModelClient.Path" or "RunState.Root.RunState.ProcessModelClient.Path" if you are not in the root context.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

Maybe you are looking for

  • My itunes won't recognise any of the music that is already stored on my computer or let me sync anything to my new ipod nano!! any ideas??

    I recently bought a new ipod nano and when i got it home and connected it to my computer I was told my version of i-tunes was not compatable and I had to un-install it and then download it again.  After I did this 4 times i eventually managed to get

  • I am having trouble signing in

    I am having trouble signing in to Adobe Converter from PDF to Microsoft. I just signed up for a year renewal and the system keeps telling me that I made an error in my adobe id or password. Help

  • Need info for COPA (Cost based profitability analysis)- Archiving objects

    Hi All, SAP have introduced new 2 Archiving objects COPAA_xxxx, and COPAB_xxxx instead of the old archiving object COPA1_xxxx. Where xxxx = operating concern. Can any one please give the document path how to archive the COPA data. Means exactly i wan

  • How can I turn off Comping???

    Im new to Logic Studio and while doing some vocal takes the audio regions keep tripling and confusing me. I dont know whats happening and whats what. Ive lost so many takes because of it.  I do realise it probably is a good function and usefull but f

  • Linear Fit Settings

    Hello everyone I am using Linear Fit.vi to calculate Slope. Are there guidelines to make the right choice for "weight", "tolerance" and "method" taking into consideration the kind of data? Thanks. Dan07. Solved! Go to Solution.