Resultlist and AddExtraRe​sult

Some of our tests (VIs) have significant interaction with test equipment, and perform a large number of measurements, and comparisons to ranges to determine pass/fail.  We do all of this inside the VI's by having them read a config file when they run, they perform the test, use the range info (from the config file) to determine pass/fail, then they report back to TestStand whether the test passed or failed.  The test step is of type Pass/Fail.  For several reasons, we did not use the Multi-Numeric step type.  However, we want to add to the Report Text the ranges and measured vales.  We pass all this data back to TestStand, but currently don't do anything with it.  How can we insert that information into the report?  Do we use AddExtraResult somehow?

If your data is in Teststand (for example a local varable) you can test it and get it in the report by using a test step of the "none" addapter type (not a  LV  type).  Change your adapter to <none> and place the step test type you want.  The in the edit limits window, change the source in the data source to the data you want to test.  The results will be put into the report like your other steps.  Repeat this for any other data you want to test.Message Edited by paulmw on 02-21-2007 01:59 PM

Similar Messages

  • ResultList and Container objects

    The Java ResultList and Container objects are used in SAP Mapping UDF's ...does anyone know which specific jar files contain these object definitions ?
    Thanks,
    Rod.

    For PI 7.0(3.0) you need the libraries: aii_mt_rt.jar, aii_map_api.jar, aii_utilxi_misc.jar
    For PI 7.1 you need the libraries: com.sap.xi.mapping.tool.lib_api.jar, com.sap.xpi.ib.mapping.lib.jar, com.sap.aii.utilxi.server.jar
    /people/stefan.grube/blog/2005/12/30/test-user-defined-functions-for-the-xi-graphical-mapping-tool-in-developer-studio

  • In VB how do I pass my low and high limit results from a TestStand Step into the ResultList and how do I retrieve them from the same?

    I am retrieving high and low limits from step results in VB code that looks something like this:
    ' (This occurs while processing a UIMsg_Trace event)
    Set step = context.Sequence.GetStep(previousStepIndex, context.StepGroup)
    '(etc.)
    ' Get step limits for results
    Set oStepProperty = step.AsPropertyObject
    If oStepProperty.Exists("limits", 0&) Then
    dblLimitHigh = step.limits.high
    dblLimitLow = step.limits.low
    '(etc.)
    So far, so good. I can see these results in
    VB debug mode.
    Immediately after this is where I try to put the limits into the results list:
    'Add Limits to results
    call mCurrentExecution.AddExtraResult("Step.Limits.High", "UpperLimit")
    call mCurrentExecution.AddExtraResult("Step.Limits.Low", "LowerLimit")
    (No apparent errors here while executing)
    But in another section of code when I try to extract the limits, I get some of the results, but I do not get any limits results.
    That section of code occurs while processing a UIMsg_EndExecution event and looks something like this:
    (misc declarations)
    'Get the size of the ResultList array
    Call oResultList.GetDimensions("", 0, sDummy, sDummy, iElements, eType)
    'Step through the ResultList array
    For iItem = 0 To iElements - 1
    Dim oResult As PropertyObject
    Set oResult = oResultList.GetPropertyObject("[" & CStr(iItem) & "]", 0)
    sMsg = "StepName = " & oResult.GetValString("TS.StepName", 0) & _
    ", Status = " & oResult.GetValString("Status", 0)
    If oResult.Exists("limits", 0&) Then
    Debug.Print "HighLimit: " & CStr(oResult.GetValNumber("Step.Limits.High", 0))
    Debug.Print "LowLimit: " & CStr(oResult.GetValNumber("Step.Limits.Low", 0))
    End If
    '(handle the results)
    Next iItem
    I can get the step name, I can get the status, but I can't get the limits. The "if" statement above which checks for "limits" never becomes true, because, apparently the limit results never made it to the results array.
    So, my question again is how can I pass the low and high limit results to the results list, and how can I retrieve the same from the results list?
    Thanks,
    Griff

    Griff,
    Hmmmm...
    I use this feature all the time and it works for me. The only real
    difference between the code you posted and what I do is that I don't
    retrieve a property object for each TestStand object, instead I pass the
    entire sequence context (of the process model) then retrieve a property
    object for the entire sequence context and use the full TestStand object
    path to reference sub-properties. For example, to access a step's
    ResultList property called "foo" I would use the path:
    "Locals.ResultList[0].TS.SequenceCall.ResultList[].Foo"
    My guess is the problem has something to do with the object from which
    you're retrieving the property object and/or the path used to obtain
    sub-properties from the object. You should be able to break-point in the
    TestStand sequence editor immediately after the test step in question
    executes, then see the extra results in the step's ResultList using the
    context viewer.
    For example, see the attached sequence file. The first step adds the extra
    result "Step.Limits" as "Limits", the second step is a Numeric Limit (which
    will have the step property of "Limits") test and the third step pops up a
    dialog if the Limits property is found in the Numeric Limit test's
    ResultList. In the Sequence Editor, try executing with the first step
    enalbled then again with the first step skipped and breakpoint on the third
    step. Use the context viewer to observe where the Limits property is added.
    That might help you narrow in on how to specify the property path to
    retrieve the value.
    If in your code, you see the extra results in the context viewer, then the
    problem lies in how you're trying to retrieve the property. If the extra
    results aren't there, then something is wrong in how you're specifying them,
    most likely a problem with the AddExtraResult call itself.
    One other thing to check... its hard to tell from the code you posted... but
    make sure you're calling AddExtraResult on the correct execution object and
    that you're calling AddExtraResult ~before~ executing the step you want the
    result to show up for. Another programmer here made the mistake of assuming
    he could call AddExtraResult ~after~ the step executed and TestStand would
    "back fill" previously executed steps. Thats not the case. Also, another
    mistake he made was expecting the extra results to appear for steps that did
    not contain the original step properties. For example, a string comparison
    step doesn't have a "Step.Limits.High" property, so if this property is
    called out explicitly in AddExtraResult, then the extra result won't appear
    in the string comparison's ResultList entry. Thats why you should simply
    specify "Step.Limits" to AddExtraResul so the Limits container (whose
    contents vary depending on the step type) will get copied to the ResultList
    regardless of the step type.
    I call AddExtraResult at the beginning of my process model, not in a UI
    message handler, so there may be some gotcha from calling it that way. If
    all else fails, try adding the AddExtraResult near the beginning of your
    process model and see if the extra results appear in each step's ResultList.
    Good luck,
    Bob Rafuse
    Etec Inc.
    [Attachment DebugExtraResults.seq, see below]
    Attachments:
    DebugExtraResults.seq ‏20 KB

  • Merging X XML files, sorting the resultlist and finally execute a distinct?

    I have several questions about an XSLT file that I should write:
    1� First, I get X paths to XML files. It can be 2, 3, 4, ... whatever a number. I don't know exactly the total amount of XML files.
    I need to merge them dynamicly to one resultset.
    2� Next, I need to sort them on a specific node (remark: every XML file has the same DOM tree)
    3� Finally, I want to distinct the values because some of the nodes are in file 1, 2, 3 ... So I don't want duplicates.
    I guess this is not possible in XSLT? I can't use Java, so it should be done using XSLT ;;;

    Have a look here:
    [http://www.jenitennison.com/xslt/index.html|http://www.jenitennison.com/xslt/index.html]
    under the "Sorting" and "Grouping" sections. Also consider using XSLT 2.0, which has built-in grouping elements which make the convoluted XSLT 1.0 techniques unnecessary.

  • Saving ResultList as binary file

    Hi,
    I like to store my ResultList as binary on file drive. The aim is to safe drive space and execution time for creating the report (XML or ASCII) for each UUT.
    At the moment i had nothing figured out doing such stuff in TS.
    Thats the reason why I started this thread to discuss with you what is possible or impossible.
    Do not care about the programming language. LV,CVI,C++,C# or anything else is welcome.
    My idea sounds simple
    1.) Creating : Take the address space of the ResultList and save it to disk. Problem: Size of Buffer !!
    2.) Consuming: Take the Binary file and put it back to TS and let a the TestReport (XML, ASCII or whatever you want) Callback running.
    Greetings from the lake of Constance, Germany
    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=

    Hi Johann,
    Thanks for your answer. But unfortunately it pointed not out what I really want to know. Or lets say what i want to discuss.
    The major task is: Is there a way to safe a the complete ResultList (if you take a look into the TestReport-Callback it will be variable "Parameters.MainSequenceResults") as a binary-file without any modifiactions or generator/parser stuff.
    The first aim of this procedure should be no loss of data by saving huge number of file drive space. The Second is saving execution time for generating the report file in the Testreport callback.
    The last few "lunch-breaks" I have dealed with this question to figure out a useful solution.
    I have found several things in TS4.0 that deal with this topic the serialization of data
    One the one hand there is a Engine method "SerializeObjects" . I got this running (I hoped so) for binary data but for re-building
    just for visualizing the data to an Operator. I found no running solution. On the other hand there is PropertyObject method
    "Serialize" This stuff was working fine. But data always have been stored in INI-Format on file. So there was no great benefit
    on file size.
    While looking on the TS4.0 poster on the wall i was focused on PropertyObjectFile. And with it found a resonable solution for this task. It is simple. Create a  PropertyObjectFile, do some settings like binary and path, get the parent PropertyObject from it, and ceate a new varaiable in the data folder. Now take the ResultList, clone and add it to your variable. The last step is saving.
    A comparsion to the XML-Report (shipped with NI)
    Binary  <-->  XML
    Filesize: 23 kB  <--> 2202 kB  that is a reduction of filedrive space of over 95% !!!
    Executiontime 160ms <--> 1960ms  that means i have to spent only 8% of time as in XML
    I have attached an example. It writes the report on Root C:\report.dat
    For you and all other members feel free to test it and please tell me what you think about it.
    If there is an other solution so lets discuss it.
    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:
    ResultListAsBinary.seq ‏12 KB

  • New value in resultlist

    Hi
    I had a question. I found some solution in this forum, but i do not understand.
    I want to add a new value to the resultlist. I had to expand the database table "STEP_RESULT" with the column "Seriennummer".
    How can I add this new value to the resultlist and how can I set/get it?
    best regarts
    René

    Hi,
    add here a *.doc with screenshots about adding Locals.Test2-StringProperty to Report. Once i used the AddExtraResultMethod direct as PreExpression (Runstate.Execution.AddExtraResult("Locals.Test2","meinsxy2") before i used the Locals.Test2 in the Expression of Statement Step and the other once i used it in SequentialModel -> SetupResultSettings-Subsequence(Modellsupport.seq) -> Statement-Expression (RunState.Execution.AddExtraResult("Locals.Test2","meinsxy3))
    So when ever comes in followings Steps the Locals.Test2 (also with other values) - it will be added to ResultList as "meinsxy2" or "meinsxy3" Name.
    So hope it helps to understand the AddExtraResult Method.
    Note: The Advanced Flag of Locals.Test2 must set to "Include in Report" - therefore rightclick on Locals.Test2 in the VariablesPane of Sequence...
    Best Regards
    Johann
    Attachments:
    AddExtraResult.doc ‏640 KB

  • Changing Step Name in XML Report programmaticaly

    I am trying to change the step name programmaticaly in TestStand to reflect in the XML report. The step is executed several times in a loop, and every time the loop runs I want the step to be named differently in the XML report. For example, the names will be something like this < Test1: Signal Name 1>, <Test2: Signal Name 2> ....etc. Any help on this will be appreciated .
    Thanks,
    Sam

    Hi,
    The best time to change the name is before you perform the test, then it will get inserted in the ResultList and hence into your report.
    I have attached one way of doing this. You can also perform it after the Step you wish to change, in which case you would use the RunState.PreviousStep as a reference.
    You could call the API method as part of your code.
    Remeber, if you use a PropertyLoader to load Limits, and you have placed this inside the loop, then your Limits file for the Step Name must match the new step name not the old one that you see statically.
    This is a TS3.5 example.
    Hope this helps
    Regards
    Ray Farmer
    Regards
    Ray Farmer
    Attachments:
    Sequence File1.seq ‏25 KB

  • How to call a custom transaction in retailstore which runs in same session?

    Hey guys,
    hope you can give me some hints. OK, i have a resultlist and it should be possible to call a SAPGui transaction via webgui service. This works fine but the link which i created has no info about the current session ID. I build an URL with the function modul ITS_GET_URL and concatenate it with the neccessary transaction code and parameter. Then i call this URL by function ITS_BROWSER_WINDOW_OPEN. A new browser window is opened with the right transaction in webgui. But if i hit the button back, i get the message, i was succesfully logged off. This wasn't the result which i want.
    What i want is to call the transaction via webgui and this transaction should run in same window and in same session. Any idea how to do that?
    I know i need to build an URL with a valid session ID for the transaction, but how can i do that?
       thx,
          Wei-Ming

    Hello Sal.
    This does not look like an ABAP issue, but rather JavaScript, JQuery or whatever you are using to handle the button-click-event in your "Internet Service" web application.
    You might try window.open("http://xxx...me23n","_self").
    Best regards,
    Frank.

  • JPQL - No UPPER() in ORDER BY clause??

    I have created a NamedQuery and am attempting to order my returned collection using the ORDER BY clause, however, the specification asks for string ordering to be case insensitive. It seems that I cannot do that with the Java Persistence Query Language - or at least the implementation that we are using. I am using Glassfish v2ur2 with uses Oracle TopLink Essentials - 2.0.1, Build b04-fcs (found in my Exception message).
    I suspect that the only way to do what I want is to create a Comparator for the ResultList and run a sort after I get the result list from my EntityManager. Is that correct or is my syntax wrong in my JPQL?
    Here is my named query (cut from a larger list of named queries), pretty simple:
    @NamedQuery(name = "MyObject.findAll", query = "SELECT a FROM MyObject a ORDER BY UPPER(a.myString), a.Id")Here is a summary exception report that I receive:
    ===========================================================================
       Exception: javax.ejb.EJBException
       Description: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: null; nested exception is:
            Exception [TOPLINK-8024] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.excepti
    ons.EJBQLException
    Exception Description: Syntax error parsing the query [MyObject.findAll: SELECT a FROM MyObject a WHERE ORDER BY UPPER(a.myString), a.Id], line 1, column 81: syntax error at [UPPER].
    Internal Exception: line 1:81: expecting IDENT, found 'UPPER'
    (Stack-Trace Included)
    ===========================================================================

    Post Author: krypton
    CA Forum: Data Connectivity and SQL
    Thanks Lynn
    I tried your suggestion. But there is one probelm.
    When i sort the data in descending order using the count(calls) field, the data is returned but the customer's name appears multiple times along with their calls raised.
    E.g, if customer Mark raised multiple calls i.e. 2, 5, and 10 calls, then the report will show
    Mark   2
    Mark  5
    Mark 10
    But is there a way to aggregate all the calls for mark and show them only once:
    such as Mark   17
    Thanks

  • Hierarchical structure message mapping in PI

    Hello All,
    I have a source and target structure in graphical message mapping
    <?xml version="1.0" encoding="UTF-8"?>
    <Material_MT>
       <row>    0..unbounded
          <MATERIAL_ID>1234</MATERIAL_ID>
          <DEL_FLAG>
         </row>
      <row>    0..unbounded
          <MATERIAL_ID>1234</MATERIAL_ID>
          <DEL_FLAG>Y</DEL_FLAG>
         </row>
      <row>  
          <MATERIAL_ID>4567</MATERIAL_ID>
          <DEL_FLAG>N</DEL_FLAG>
         </row>
    <row>  
          <MATERIAL_ID>1234</MATERIAL_ID>   
          <DEL_FLAG>N</DEL_FLAG>
         </row>
    </Material_MT
    Materials can repeat in the source structure but their flags could be different
    Target structure
    <Mat>  1..1
    <Mat_update> 0..unbounded
       <Matid>
               <Matreg>
                     <Matcomplete/>
                     <tuple>
                          <id/>
                      </tuple>    
               </Matreg>
         </Matid>
         <recordind>
                <id>
          </recordind>
    </Mat_update>
    Now, the requirement is
    1) For each <MATERIAL_ID>  in the source, map its corresponding flag <DEL_FLAG> value <Matcomplete/ field in the target ,
    2) For each  <MATERIAL_ID> in the source, take its corresponding value and make a soap  lookup call in mdm to get tuple ids (mutiple value per material possible) and map each to <id> (under <tuple>)
    3) For each <MATERIAL_ID> in the source, take its corresponding value and make a soap lookup call in mdm to get <recordind> (single value per material) and map to <id> under <recordind>
    Now, I have done soap lookup for 2)  and getting multiple tupleIDs for a single material
    For 3) also, I am doing a lookup and getting a single ID back 
    Both 2)   and 3) are achieved using  udf soap lookup  - 2) will return a resultlist and 3 a single string value
    My main question is how to do message mapping for achieving step1, 2 and 3. Pls help...its needed badly
    Thanks
    mike

    Hi Mike,
    Below is the logic as per my understanding.
    1- Direct mapping from DEL_FLAG> value <Matcomplete/ field in the target
    2- After lookup Map multiple Tuple Id's to Tuble node.
    3-After lookup Map  recordind to Id .
    If you want it in detail let me know the sample output structure with values.
    Regards,
    Sudha

  • How can I get Test Stand to print failues only?

    Rather than getting a large report file with hundreds of passes and only one failure, how do I configure Test Stand to only print the failures to the report?

    Hi,
    the engine callbacks are simply a sequence that gets called when a particular thing happens (i.e. Post Step).
    There's three types
    SequenceFile (for steps that execute in that sequence file whether it's a client sequence file or a process model)
    ProcessModel (for steps that execute in the client sequence file run under this process model, but NOT the steps in the ProcessModel)
    Station (for all steps on that installation - found in the StationCallbacks.seq sequencefile)
    If the engine callback appears in more than one of the three places, then the lowest one (seq file->proc model->station listed lowest to highest)is used.
    In your case, you could use any of them depending on your architecture.
    Personally, r
    emoving from the resultlist is easier than working out whether to add to it, but that gets tricky when you have steps which loop.
    If you decide to make up your own add, then the PostStepFailure is the callback sequence to use (go to edit->sequencefilecallbacks). You'll have to add a new element to the resultlist, and start fleshing it out with the result container of the step (which you still have access to as a parameter) plus the TS container.
    This would go into the Runstate.Caller.Locals.ResultList[x]
    Also, don't forget to disable the result collection on all the steps in the test sequence, plus all the ones in your poststepfailure callback, since you're doing your own.
    I'm attaching what I've done so far as an example - not quite finished, but it's done the TS container. Just now need to do the actual result container.
    I'll keep working on it but for now you can see what I'm getting at.
    Hope that gives you a kick start with the callbacks bit
    Sacha Emery
    National Instrumen
    ts (UK)
    // it takes almost no time to rate an answer
    Attachments:
    collect_only_failures.seq ‏31 KB

  • Adding time module column using c#

    Hi All,I use NI GUI Example in c#
    and I need to add time module column to the execution view by code.
    I use: "axExecutionView.Columns.Insert("_MODULE_TIME",Nat​ionalInstruments.TestStand.Interop.UI.SeqViewColum​nTypes.SeqViewColumnType_Expression,100,-1);"
    but it doesn't work,
    Tnx,

    For tracing, using the following expression for the column will work:
    (PropertyExists("Locals.ResultList") && PropertyExists("Step.TS.Id") && GetNumElements(Locals.ResultList) > 0 && PropertyExists("Locals.ResultList[" + Str(GetNumElements(Locals.ResultList) - 1) + "].TS.ModuleTime") && Locals.ResultList[GetNumElements(Locals.ResultList​) - 1].TS.StepId == Step.TS.Id) ? Str(Locals.ResultList[GetNumElements(Locals.Result​List) - 1].TS.ModuleTime, "%f") : ""
    Of if what you really want is TotalTime, change ModuleTime above to TotalTime.
    The problem is when you hit a breakpoint and it refreshes the whole step list, you will then only get the time for the last step.
    The reason why this is a harder problem than you might think is that the time results for a step are not stored on the step itself, they are only stored in Locals.ResultList and only if the step was actually set to record results. The expression above just looks at the last result in the result list and if it is for the current step, then it displays the module time for that step. This works while tracing because only the previous step at the tracepoint is refreshed. At a breakpoint, when it tries to refresh the entire view, only the last step matches the last result. If you wanted it to work in more cases you'd have to do somewhat of a search through the result list for each step, which would be slow and tricky to implement in an expression.
    Another alternative you might want to consider is using the On-The-Fly report generation setting instead. That generates the report while the steps are still executing, and the report already includes the module times (or at least it can depending on what settings you use for the report).
    Hope this helps,
    -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

  • Concatinating multiline by using UDF

    Hi all,
    In my scenario , I am having the condition , If that condition is true then we have to concatenate the multiple note into one value. Here I written UDFby selecting the option as Context value, In this case it is returing void. How can I add the concating values to resultList and how can I map to target field.
    Regards,
    Sri

    Esha,
    I do not have specific documentation about its implementation, but :
    1 - import SALERT_CREATE RFC structure definition (I did this in a CORE swcv that is referenced across all needing swcvs)
    2 - I built my own RFC lookup wrapper to provide easy to use lookup methods (input as String or DOM object)
    3 - I built SALERT_CREATE input structures and values in a dedicated static class called in my mappings
    4 - this class calls RFC lookup wrapper method that serialize those input values and calls the suitable RFC receiver channel with the whole msg containing alert details (providing category and containers are defined in ALRTCATDEF)
    I'll try to get some source code snippets if you need'em
    Rgds
    Chris

  • User Defined Mapping

    Hi All,
         My Source Structure is
    <root>
      <Header>
         <BankCode>8911</BankCode>
         <Bank>State Bank Of India</Bank>
      </Header>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000981</ChequeNo>
         <Amount>10000</Amount>
      </Detail>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000982</ChequeNo>
         <Amount>50000</Amount>
      </Detail>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000983</ChequeNo>
         <Amount>45000</Amount>
      </Detail>
    </root>
    My Target Structure is
      <Header>
         <BankCode>8911</BankCode>
         <Bank>State Bank Of India</Bank>
      </Header>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000981</ChequeNo>
         <Amount>10000</Amount>
      </Detail>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000982</ChequeNo>
         <Amount>50000</Amount>
      </Detail>
      <Detail>
         <AccountNo>12345</AccountNo>
         <ChequeNo>000983</ChequeNo>
         <Amount>45000</Amount>
      </Detail>
      <Trailer>
         <TotalCheques>3</TotalCheques>
         <Total>105000</Total>
      </Trailer>
    </root>
    My requirement is to add all the amount fields in Detail Node (1:Unbounded) and put it into Total field in Trailer Node (1:1)
    I thought of using ResultList and parsing it. If any better solution is there then please Suggest me a Solution.
    Thanks in advance.
    Regards
    Nagesh

    Hi,
    Since the details node is 0..ub, I guess you would have to make use of ResultList in a UDF.
    You would have to take all the amount tags as input to the UDF, using a String array, and add them by looping through this array.
    Regards,
    Smitha.

Maybe you are looking for