Client fileglobal access by process model

I have the same question as posted in knowledge base article:
http://digital.ni.com/public.nsf/allkb/f970e072b4b41ef786256e30007505b2
However, the stated solution in the knowledge based article appears to be unavailable for TestStand1.03.
Basically I'm trying to access the fileglobals of a client from within the process model.  The only appearent path is the RunState.ProcessModelClient.Data.FileGlobalDefaults but this is just the default states of the client's variables.  I need the actual runtime copies.
{section from the knowledge based article}
Configuration for first step
Object Reference: RunState.Execution
Automation Server: NI Teststand API 3.0 (1.0)  TestStand API 1.0
Object Class: Execution
Action: Call Method
Method: GetFileGlobals    (option is not available,  there is GetModelSequenceFile, GetSequenceFile, GetStates, and GetThread)
Parameters
Return Value: Locals.FileGlobals
sequencefileParam: RunState.ProcessModelClient
I'm actually using a CVI Dll to access the variables.  I'm passing in "ThisContext" and then using:
CAObjHandle      SeqContextHandle = ThisContext passed from teststand
    tsErrChk(TS_PropertyGetValString(SeqContextHandle, &errorInfo, "FileGlobals.SoftwarePN",0,&pszKeyName));
This works great for accessing the FileGlobals of the process model, but not for the fileglobals of the client.
Maybe there is a different ObjHandle to get to the client, but I don't know where it is.

Hi,
Not sure if this is available in version 1.03, but have you tried setting the SequenceFile properties to use the same fileglobals for each execution. This maybe your only option if available.
Regards
Ray Farmer
Regards
Ray Farmer

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

  • How to load the sequence file from the process model?

    Does anyone have an example process model that loads a sequence file? The out-of-the-box process models assume the sequence file is already loaded. I want the process model to identify the UUT type and load the appropriate sequence file based on that.

    Mark,
    A better solution to your question can be accomplised if you have TestStand 2.0.
    Within the entry point of a process modle you can set the client sequence using Execution.ClientFile(). This is a new method of TestStand 2.0. It was specifically designed so that you could dynamically set the client sequence within the process model.
    Currently the entry points in the default process models (i.e. Test UUTs and Single Pass) are configured to Show Entry Point When Client File Window is Active. This means that you must open and have active a client sequence file before you can execute one of the entry point. You probably do not want this implementation if you are going to set the client file during the entry point execution. To change this you will need to go the sequence properties of your entry point (while the sequence is open select Edit>>Sequence Properties), switch to the Model tab of the entry point's property dialog box, and enable Show Entry Point For All Windows. The entry point will then appear whether or not you have an open sequence file active.
    You will need to add at least 3 steps to your entry point sequence that all use the ActiveX Automation Adapter. Remember that MUST disable Record Results for any step you add to the process model. The 3 steps will perform the following tasks:
    1) Obtains a sequence file reference of the file that you want to be the client sequence file. You will need to use the Engine.GetSequenceFileEx method. You will need a local variable (ActiveX data type) in which to store the sequence file reference.
    2) Set the client sequence file using the Execution.ClientFile property.
    3) Close the reference to the client sequence file in the Cleanup step group of your entry point sequence using Engine.ReleaseSequenceFileEx
    I am attaching a SequenceModel.seq file (the default process model in TestStand 2.0) in which we have modified the TestUUTs entry point as described above.
    Note that you'll be prompted to enter the path to your client sequence file. This is a message popup that you can delete and it was added for your review only.
    Good luck in your project,
    Azucena Perez
    National Instruments
    Attachments:
    sequentialmodel.seq ‏164 KB

  • 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

  • Guided Business Process modelling with Activity Guide

    HI everybody ,
    Please suggest where the bmp-services-client.jar will be available?
    I am getting the following error upon deployment of human task forms which are using the ADF data controls for workflow :-
    Caused By: java.lang.ClassNotFoundException: oracle.bpel.services.datacontrol.types.Number
    The human task forms are taskflow components of a soa composite containing a bpmn process which stitches these taskflows into an Activity Guide.
    Any help will be appreciated.
    Regards,
    Shailendra Nema.

    Another roadblock when trying "Guided Business Process modelling with Activity Guide"
    I get the following error when trying to access the AG instance from the AG ADF client --
    Runtime error in AG Query Service. Failure in queryAGDisplayInfos.
         at oracle.bpel.services.workflow.activityguide.query.impl.AGQueryServiceWSIF.queryAGDisplayInfos(AGQueryServiceWSIF.java:136)
         at oracle.bpel.services.workflow.activityguide.query.soap.AGQueryServiceSOAP.queryAGDisplayInfos(AGQueryServiceSOAP.java:57)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Caused By: javax.ejb.EJBException: EJB Exception: : java.lang.NullPointerException
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructTaskDisplayInfo(BpmAGQueryService.java:1160)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructMilestoneDisplayInfo(BpmAGQueryService.java:1060)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructMilestoneDisplayInfoList(BpmAGQueryService.java:869)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructAGDisplayInfo(BpmAGQueryService.java:730)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.queryAGDisplayInfos(BpmAGQueryService.java:268)
         at oracle.bpm.services.activityguide.impl.CombinedAGQueryService.queryAGDisplayInfos(CombinedAGQueryService.java:58)
         at oracle.bpm.services.activityguide.impl.CombinedAGQueryService.queryAGDisplayInfos(CombinedAGQueryService.java:76)
         at oracle.bpm.services.activityguide.impl.BaseAGQueryService.queryAGDisplayInfos(BaseAGQueryService.java:144)
    Caused By: java.lang.NullPointerException
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructTaskDisplayInfo(BpmAGQueryService.java:1160)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructMilestoneDisplayInfo(BpmAGQueryService.java:1060)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructMilestoneDisplayInfoList(BpmAGQueryService.java:869)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.constructAGDisplayInfo(BpmAGQueryService.java:730)
         at oracle.bpm.services.activityguide.impl.BpmAGQueryService.queryAGDisplayInfos(BpmAGQueryService.java:268)
         at oracle.bpm.services.activityguide.impl.CombinedAGQueryService.queryAGDisplayInfos(CombinedAGQueryService.java:58)
         at oracle.bpm.services.activityguide.impl.CombinedAGQueryService.queryAGDisplayInfos(CombinedAGQueryService.java:76)
    I am able to access the workitem in worklistapp and the composite instance process flow shows that the first activity in the bpm process is in Running state.
    Please suggest.

  • 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 to add process model results to the sequence file results?

    After my sequence file runs, I would like to add some additional results using the process model. I need to log my equipment list which is obtained by the process model. Alternatively, I could add a sub-sequence to the end of each of my sequence files for doing this, but that would create maintenance problems if I ever needed to change the way equipment is logged. Does anyone know a way to (1) append process model results to the sequence file results or (2) force each client sequence file to call a sub-sequence before returning to the process model.

    Mark -
    The report and database process model routines expect a single subsequence step result that invoked MainSequence. This result contains the results from the sequence call.
    In TestStand after the process model root sequence call to MainSequence is performed, the property Locals.ResultList[0] is the MainSequence result. The subproperty Locals.ResultList[0].TS.SequenceCall.ResultList contains the results from the steps in MainSequence.
    One option is to create a subsequence call in the process model that logs the equipment info in the results for its steps. The call to the subsequence should not be checked to record results.
    This subsequence would have a parameter called ResultList. The Result type does not exist in the Insert menu, so you can only create the parameter by copying the empty Locals.ResultList and pasting it in the parameters. Then change its type from By Value to By Reference.
    In the setup of the subsequence, add the following steps which do not record results. These steps rename the Locals.ResultList parameter to ResultListOrig, and then create a new Locals.ResultList alias property that really references Parameters.ResultList. This way any additions to the Locals.ResultList really append to the Parameter.ResultList.
    Setup
    Step: "Rename Locals.ResultList"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultListORIG"
    Record Results: False
    Step: "Create Alias in Locals"
    StepType, Adapter: Actioin, Active-X
    Description:
    Action, Call PropertyObject.SetPropertyObject ("ResultList",
    0x201 ' Not Owning and Create, Parameters.ResultList)
    Record Results: False
    In the Main steps, you add your equipment info steps which record results.
    In the Cleanup steps you undo the steps performed in Setup.
    Cleanup
    Step: "Delete Alias in Locals"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Call PropertyObject.DeleteSubProperty ("ResultList",
    0x400 ' Refer to Alias)
    Record Results: False
    Step: "Rename Locals.ResultListORIG"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultList"
    Record Results: False
    I have attached a TS 2.0 version of SequentialModel.Seq that has a AppendResults subsequence in it and this is invoked after MainSequence in Single Pass entry point.
    Hope this helps...
    Scott Richardson (NI)
    Scott Richardson
    National Instruments
    Attachments:
    SequentialModel.Seq ‏174 KB

  • Process Modelling in GP

    I have two questions concerning process modelling in the guided procedures:
    1. After designing a process (for example 'my first process') I cannot change a block or an callable object, without generating a new version (which is a feature, I think). But there is a mistake in the HTML page (which ist in the first content package). Is there a possibility to change or update the HTML page (or GP parts generally) without creating a new version.
    2. Is there a possibility to access an old version of an object. For example simply check, which HTML page is in the first version of the content package?

    Hi Christian,
    Each time you modify anything in the object, including the HTML page, you need to create a new version of it. Old (deprecated) versions are still available for already started processes where they are used, but you can't access and browse them as objects in the design time.
    Regards,
    Zornitsa

  • 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~

  • 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

  • Station Info using Batch Process Model

    Hi,
    I have a test sequence that use a sequential process model and I grab station information using the following.
    RunState.Root.Locals.StationInfo.StationID
    RunState.Root.Locals.StationInfo.LoginName
    I am creating a new test sequence which uses the batch process model - when I try to grab the Station Info data using the syntax above I get the following error 
    Unknown variable or property name 'RunState.Root.Locals.StationInfo'.
    Can some please advise if I am accessing the wrong area when using a batch process model?
    Thanks & Regards,
    Shane.
    Solved!
    Go to Solution.

    In the batch and parallel models you can access this information using:
    RunState.Root.Parameters.ModelData.StationInfo
    -Doug

  • New to business process modelling

    Hello all,
    I am new to business process modelling.Can anyone suggest a case study / link / download which can take me through a example of modelling a business process ( eg procure to pay , order to cash etc) . I would be more interested from AFS ( apparel and soft good industry ) scenarios.
    Regards,
    utpal

    Dear Mandar,
    I will put the format of traceability matrix in Wiki as lot of people have requested me for this. Weightages we use for evaluating differences between client's expected std processes and builiding block (SAP ) std processess again depends on the interaction between client and the consulting company. As the more deviation is more standard proces, the more is the cost to develop and further maintain Z-functionalities.
    A method used to validate the compliance of a process or product with the requirements for that process or product.  The requirements are each listed in a row of the matrix and the columns of the matrix are used to identify how and where each requirement has been addressed.
    Basic details of Traceability Matrix:
    Description
    A table that traces the requirements to the system deliverable component for that stage that responds to the requirement.
    Size and Format
    For each requirement, identify the component in the current stage that responds to the requirement.  The requirement may be mapped to such items as a hardware component, an application unit, or a section of a design specification.
    BASELINE TRACEABILITY MATRIX
    Description
    A table that documents the requirements of the system for use in subsequent stages to confirm that all requirements have been met.
    Size and Format
    Document each requirement to be traced.  The requirement may be mapped to such things as a hardware component, an application unit, or a section of a design specification.
    Traceability Matrix Table (Sample)    
    Identifier Requirement
    Priority (e.g., (M)andatory, (D)esirable, or (O)ptional) Change Requests
    Module (or Hardware Component, Application Unit, Deliverable Section, e.g., Design Specification) Test Case or Test Scenario
    Change the topics as appropriate for the project and traceability matrix function. 
    Add a line for each requirement, for example:   
    1 Accounts Payable    
    1.1 Maintains multiple bank accounts for payment purposes M CR003 Setup Bank Information S1
    Please go through this link:
    http://help.sap.com/bp_bblibrary/600/html/J57_EN_DE.htm
    Hope this helps you.
    Please let me know in case of any queries.
    Regards,
    Rakesh

  • 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~

Maybe you are looking for