How do I pass a custom data type to a dll in TestStand?

I need to add a new feature / function to an existing TestStand program.  The original program uses a custom data type for the LabVIEW VISA (serial com) reference, as shown below.  I want to use the StationGlobals.VISA_Ref in my call to the dll.
The VI prototype is shown below.  The VISA Ref In is a basic VISA reference control (serial comm) from LabVIEW.  Nothing special.
I am stuck at trying to figure out how to configure the VISA Ref In parameter...  I've searched this forum and the only posts which seem close to what I am attempting to do did not have any responses... I hope to be "luckier".. 
Attachments:
LVIOctrl.PNG ‏23 KB
VIprototype.PNG ‏20 KB
ConfigParm.PNG ‏37 KB

What you are describing is similar to this, right?  http://digital.ni.com/public.nsf/allkb/22BF02003B4588808625717F003ECD67
I tried something similar to what you described.... unfortunately, TestStand is holding on to the serial port and has not let go yet...  Which causes a run-time error within the LabVIEW code (dll) because the resource it is trying to use (COM port) is not available... 
I will check the code and see whether they use the serial port after it gets to the new feature...  Otherwise, I may close the port, use it within LabVIEW (dll), close it and then re-open within TestStand...  That's why I wanted to pass the reference directly...  Although, the way you describe it, it may be possible to pass that same reference indirectly and get the dll to work without having to play with closing / opening references.  I'll explore that tomorrow.
Thanks.

Similar Messages

  • How can I create a custom data type that is a 2D array of string by using TestStand API?

    Hi all,
    I'm new in TestStand:
    I'm able to create a custom data type that is a 1D array of string but I cannot find the way to create a 2D array of string.
    Can anyone help me?
    Thank you in advance.
    Federico

    I made it!!
    Indeed my 2D array is an item of a container:
    /*  Create a new container */
    RunState.Engine.NewPropertyObject(Locals.NewDataType,PropValType_Container,False,"",0)
    /*  Create an array of strings as item of the container */
    Locals.NewDataType.NewSubProperty("Array_2D",PropValType_String,True,"",0)
    /*  Reshape the array as an empty 2D array */
    Locals.NewDataType.GetPropertyObject("Array_2D",0).Type.ArrayDimensions.SetBoundsByStrings("[0][0]","[][]")
    being:
    NewDataType a local property (type Object)
    Attachments:
    AddCustomTypeAndCreateFileGlobals.seq ‏11 KB

  • How can take a Custom Data Type in TestStand and create a LabVIEW DataType?

    I am using LV 8.2 and TS 3.5.
    I have an existing Custom Data Type in TestStand and I want to make a LabView Type Def.  The TS DataType contains 11 elements: a Visa Resource Container of 2 elements (String, DeviceName and Number, Session), 9 Numerics and 1 String Array.  For Backwards compatability, I cannot modify the TestStand DataType.
    Thanks,
    Jean

    Hi Goldee,
    You should be able to do that. It's a two step procedure.
    1) Creates in LV a custom datatype that maps 1:1 yours TS datatype.
    2) Go in the TypePalette in the properties of yours TS Datatype and check into LV Cluster Passing Menu'. Here you can Connect a specific Field of the TS datatype to a Specific Label of the corresponding LV datatype. Once you've done it the TS datatype will result modified, I mean "starred" but the change you applied should not impact the datatype structure itself only the way you pass it to LV.
    Have a good day
    FiloP
    It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong.
    Richard P. Feynman

  • How to access the Custom Data type variable given in Expression edit control To and From LabVIEW

    Hello, I would like to know how to access the custom data type variable given in the Espression Edit Control from LabVIEW and vice-versa
    Say, the FileGlobals.Reference_Handle (Custom Data Type Variable) contains the
    VISA I/O session (Which in turn contains VISA_DeviceName: String, Session: Number),
    Channel1: Number and
    Channel2: Number
    I am expecting the user to give FileGlobals.Reference_Handle as the input at the ExpressionEdit Control in the edit screen of the VI Call.
    I would like to know how to get the values of this custom data type to LabVIEW?
    Say, if I have the Cluster in LabVIEW like VISA I/O session (Deive Name and Session Number), Channel1 and Channel2
    how do i need to set this cluster to the Custom Data type variable in TestStand?
    Thanks and Regards
    Prakash 

    Hi,
    TestStand to LabVIEW: i didnt understand what you r trying to achieve. But if you are using references, Use Property nodes and Invoke nodes to achieve what you want in LabVIEW.
     LabVIEW to TestStand: check the image below: You need to click the button next to 'container'. I have used a cluster output in the VI.
    Hope this helps
    .......^___________________^
    ....../ '---_BOT ____________ ]
    ...../_==O;;;;;;;;_______.:/
    Attachments:
    1.JPG ‏187 KB

  • Call Oracle procedure with custom data type within Java and Hibernate

    I have a custom date TYPE in Oracle
    like
    CREATE TYPE DATEARRAY AS TABLE OF DATE;
    and I have a Oracle function also
    like
    CREATE OR REPLACE FUNCTION doesContain (list DATEARRAY, val VARCHAR2) RETURN NUMBER
    IS
    END doesContain;
    In my Java class,
    I have a collection which contain a list of java.util.Date objects
    When I call Oracle function "doesContain", how to pass my java collection to this Oracle function ...
    anyone can provide solutions?
    Please !!!
    Thanks,
    Pulikkottil

    Vu,
    First of all you need to define your types as database types, for example:
    create or replace type T_ID as table of number(5)Then you need to use the "oracle.sql.ARRAY" class. You can search this forum's archives for the term "ARRAY" in order to find more details and you can also find some samples via the JDBC Web page at the OTN Web site.
    Good Luck,
    Avi.

  • Where to define new custom data type ?

    Hi,
    In the past (TS 3.5) I've created our own custom type palette file which has been used
    to store new data types and then passed the file to other colleagues. The file would be
    stored in the ......\Program Files\.......\User area.
    My question has arose because we are now using TS 4.1/4.2 which no longer has separate
    NI and User directories in \Program Files.
    Because I now want to edit an existing custom data type, I find that our custom type palette has
    fallen by the way side, forgot about.
    Even though I can see the custom data type definitions within sequence files that employ
    the custom data types, which means I can modify them locally, I intend to return to
    a custom type palette, i.e. global definition.
    What is the relationship between data definitions in a custom type palette and the custom data
    type definitions within a sequence file ?
    When does a palette file update a sequence file ?, which takes control in the event of conflicts ?,
    is a palette file actually necessary if separate sequence files using the same custom data type
    can update each other ? What is good practice when defining custom data types ?
    thanks,
    Gary.
    Solved!
    Go to Solution.

    Hey guys, 
    This is an very interesting thread, and I whole heartedly agree with the advice given so far. I simply wanted to offer some additional advice on type conflicts - which with further answer the initial question regarding which type definition takes precedence in the event of a conflict. 
    It is important to note that TestStand uses type Names and version numbers to identify the different types. It is also important to note that when you use a customer type definition within a sequence, the sequence file (.seq) which houses the sequence will retain a copy of the type definition. This makes distributing sequence files much easier. However, it also opens the door to potential type conflicts. 
    TestStand only allows one uniquely named type to be loaded into memory at any given time, so it uses the versions number of the type to attempt to automatically resolve these conflicts. For example, TestStand can be setup to load whichever type has the highest version number (note that this can be changed via the Preferences tab of the Station Options dialog box). 
    All of this information and more can be found in the following tutorials...
    TestStand Type Versioning and Conflicts
    How Do I Make a Custom Step Type?
    Thanks for your time. I hope this has been useful!
    Message Edited by RER on 02-05-2010 07:58 AM
    Rich R
    Applications Engineer
    National Instruments UK & Ireland

  • TestStand custom data types

    I created a container in custom data types and pass it into a VI as an input variable. The problem is whenever I step into my VI, the values passed in from the container changed to another set of value, also the value is not random, I could consistently get back the same value. Is there any setting that I need to apply when using the container?

    There is no special setting required. Look at the simple example in the attach. I have created a custom data type "cluster" containing string, numeric and boolean variables. If you will execute the VI then you will se how appropriate values pass to the VI.
    Hope this will help,
    Max
    Attachments:
    screen.JPG ‏140 KB
    stub.vi ‏6 KB
    test.seq ‏5 KB

  • New Effective CAL essay: How do I create an abstract data type in CAL?

      <p><strong>How do I create an abstract data type in CAL?</strong></p>  <p> </p>  <p>An <em>abstract data type</em> is one whose internal representation can be changed without needing to modify the source code of client modules that make use of that type. For software maintainability, it is a good idea to make a type that is subject to change or enhancement into an abstract data type. Another reason to create an abstract data type is to enforce invariants for values of the type that can only be ensured by using <em>constructor functions</em> (i.e. functions that return values of that type).</p>  <p> </p>  <p>In principle it is simple to create an abstract data type in CAL. For an algebraic data type, make the type constructor public and all data constructors private. For a foreign data type, make the type constructor public and the implementation scope private. If a scope qualifier is omitted, the scope is taken to be private.</p>  <p> </p>  <p>For example, the Map algebraic data type has the public type constructor Map and the data constructors Tip and Bin are each private, so it is an abstract data type.</p>  <p> </p>  <p>/** A map from keys (of type {@code k@}) to values</p>  <p>   (of type {@code a@}). */</p>  <p><strong>data</strong> <strong>public</strong> Map k a <strong>=</strong></p>  <p>    <strong>private</strong> Tip <strong>|</strong></p>  <p>    <strong>private</strong> Bin</p>  <p>        size      <strong>::</strong> <strong>!</strong>Int</p>  <p>        key       <strong>::</strong> <strong>!</strong>k</p>  <p>        value     <strong>::</strong> a</p>  <p>        leftMap   <strong>::</strong> <strong>!(</strong>Map k a<strong>)</strong></p>  <p>        rightMap  <strong>::</strong> <strong>!(</strong>Map k a<strong>);</strong></p>  <p><strong> </strong></p>  <p><strong> </strong></p>  <p>There are a number of invariants of this type: the size field represents the number of elements in the map represented by its Bin value. The keys in leftMap are all less than key, which in turn is less than all the keys in rightMap.  In particular, non-empty Map values can only be created if the key parameter type is a member of the Ord type class.</p>  <p> </p>  <p>Values of the Map type can be created outside the Cal.Collections.Map module only by using constructor functions such as insert:</p>  <p> </p>  <p>insert <strong>::</strong> Ord k <strong>=></strong> k <strong>-></strong> a <strong>-></strong> Map k a <strong>-></strong> Map k a<strong>;</strong></p>  <p><strong>public</strong> insert <strong>!</strong>key value <strong>!</strong>map <strong>= ...</strong></p>  <p> </p>  <p>The owner of the Cal.Collections.Map module must ensure that all invariants of the Map type are satisfied, but if this is done, then it will automatically hold for clients using this function.</p>  <p> </p>  <p>Some examples of foreign abstract data types are Color, StringNoCase  and RelativeDate:</p>  <p> </p>  <p><strong>data</strong> <strong>foreign</strong> <strong>unsafe</strong> <strong>import</strong> <strong>jvm</strong> <strong>private</strong> "java.awt.Color"</p>  <p>    <strong>public</strong> Color<strong>;</strong></p>  <p><strong> </strong></p>  <p><strong>data</strong> <strong>foreign</strong> <strong>unsafe</strong> <strong>import</strong> <strong>jvm</strong> <strong>private</strong> "java.lang.String"</p>  <p>    <strong>public</strong> StringNoCase<strong>;</strong></p>  <p><strong> </strong></p>  <p><strong>data</strong> <strong>foreign</strong> <strong>unsafe</strong> <strong>import</strong> <strong>jvm</strong> <strong>private</strong> "int"</p>  <p>    <strong>public</strong> RelativeDate<strong>;</strong></p>  <p> </p>  <p>The private implementation scope for Color means that a foreign function whose type involves Color can only be declared in the Cal.Graphics.Color module where the Color type is defined. A foreign function declaration involving the Color type relies on the compiler knowing that the Color type corresponds to java.awt.Color to resolve the corresponding Java entity i.e. it must know about the implementation of the Color type. Having a private implementation scope means that the Color type can be changed to correspond to a different Java class, or indeed to be an algebraic type, without the risk of breaking client code.</p>  <p> </p>  <p>In all these three cases there are useful, and different, design reasons to adopt a private implementation scope:</p>  <p> </p>  <p>For RelativeDate, the Java implementation type int represents a coded Gregorian date value in the date scheme used by Crystal Reports. Not all int values correspond to valid dates, and the algorithm to map an int to a year/month/day equivalent is fairly complicated, taking into account things like Gregorian calendar reform. Thus, it is desirable to hide the implementation of this type.</p>  <p> </p>  <p>For StringNoCase, the implementation is more straightforward as a java.lang.String. The reason to adopt a private implementation scope is to ensure that all functions involving StringNoCase preserve the semantics of StringNoCase as representing a case-insensitive string value. Otherwise it is very easy for clients to declare a function such as:</p>  <p> </p>  <p><strong>foreign</strong> <strong>unsafe</strong> <strong>import</strong> <strong>jvm</strong> "method replace"</p>  <p>    replaceChar <strong>::</strong> StringNoCase <strong>-></strong> Char <strong>-></strong> Char <strong>-></strong> StringNoCase<strong>;</strong></p>  <p> </p>  <p>which does not handle case-insensitivity correctly, but is a perfectly valid declaration. This declaration results in a compilation error when it is placed outside the module in which StringNoCase is defined because of the private implementation scope of StringNoCase.</p>  <p> </p>  <p>For Color, the issue is somewhat more subtle. The java.awt.Color implementation type is semantically the same as the CAL Color type. The problem is that java.awt.Color is mutable (since it can be sub-classed to create a mutable type). It is preferable for a first-class CAL type to not be mutable, so we simply make the implementation scope private to ensure that this will be the case. </p>  <p> </p>  <p>A somewhat less encapsulated kind of abstract data type can be created using <em>friend modules </em>and <em>protected</em> scope. For example, if an algebraic type is public, and all its data constructors are protected, then the data constructors can be accessed in the friend modules of the module in which the type is defined. Effectively this means that the implementation of the semantics of the type stretches over the module in which the type is defined, and all of its friend modules. These must all be checked if the implementation of the type is modified. </p>  <p> </p>  <p>Given the merits of abstract data types discussed above, it is perhaps surprising that most of the core types defined in the Prelude module are not abstract data types. For example: Boolean, Char, Int, Double, String, List, Maybe, Either, Ordering, JObject, JList, and all record and tuple types are non-abstract types. </p>  <p> </p>  <p>There are different reasons for this, depending on the particular type involved. </p>  <p> </p>  <p>For example, Boolean, List, Maybe, Either and Ordering are all rather canonical algebraic data types with a long history in functional languages, with many standard functions using them. They are thus guaranteed never to change. In addition, their values have no particular design invariants that need to be enforced via constructor functions. Exposing the data constructors gives clients some additional syntactic flexibility in using values of the type. For example, they can pattern match on the values using case expressions or let patterns.</p>  <p> </p>  <p>Essentially the same explanation holds for record and tuple types. Although non-tuple record types are less canonical, they do correspond to the fundamental notion of an anonymous named-field product type. The "anonymous" here simply means that the programmer can create an entirely new record type simply by creating a value; the type does not have to be declared anywhere prior to use.</p>  <p> </p>  <p>Char, Int, Double, String, JObject and JList are foreign types where in fact part of the semantics of the type is that we want clients to know that the type is a foreign type. For example, we want clients to know that Prelude.Int is essentially the Java primitive unboxed int type, and has all the semantics you would expect of the Java int type i.e. this is quite different from RelativeDate which is using int as its implementation type in a very tactical way that we may choose to change. One can think of a public foreign type declaration with public implementation scope as simply introducing the Java type into the CAL namespace.</p>  <p> </p>  <p>One interesting point here is with CAL&#39;s naming convention for public foreign types. We prefix a type name by "J" (for "Java") for foreign types with public implementation type such that the underlying Java type is mutable. This is intended as mnemonic that the type is not a pure functional type and thus some caution needs to be taken when using it. For example, Prelude.JObject has public Java implementation type java.lang.Object.</p>  <p> </p>  <p>In the case where the underlying Java type is not mutable, we do not use the prefix, since even though the type is foreign; it is basically a first class functional type and can be freely used without concern. For example, Prelude.String has public Java implementation type java.lang.String.</p>  <p> </p>  <p>In the case where the implementation type is private, then the fact that the type is a foreign type, whether mutable or not, is an implementation detail and we do not hint at that detail via the name. Thus Color.Color has as its private Java implementation type the mutable Java type java.awt.Color. </p>  <p> </p>  <p>When creating abstract data types it is important to not inadvertently supply public API functions that conflict with the desired public semantics of the type. For example, if the type is publicly a pure-functional (i.e. immutable) type such as Color, it is important not to expose functions that mutate the internal Java representation.</p>  <p> </p>  <p>A more subtle case of inadvertently exposing the implementation of a type can occur with derived instances. For example, deriving the Prelude.Outputable and Prelude.Inputable type classes on a foreign type, whose implementation type is a mutable Java reference type, allows the client to gain access to the underlying Java value and mutate it
    (by calling Prelude.output, mutating, and then calling Prelude.input). The solution in this case is to not derive Inputable and Outputable instances, but rather to define a custom Inputable and Outputable instance that copies the underlying values.</p>

    Hi Pandra801,
    When you create a the external content type, please try to add a filter based on your select statement.
    http://arsalkhatri.wordpress.com/2012/01/07/external-list-with-bcs-search-filters-finders/
    Or, try to create a stored procedure based on your select statement, then create ECT using the SQL stored procedure.
    A step by step guide in designing BCS entities by using a SQL stored procedure
    http://blogs.msdn.com/b/sharepointdev/archive/2011/02/10/173-a-step-by-step-guide-in-designing-bcs-entities-by-using-a-sql-stored-procedure.aspx
    I hope this helps.
    Thanks,
    Wendy
    Wendy Li
    TechNet Community Support

  • Issue with creating array of custom data type - WebLogic Integration

    Hi,
    We are doing WebLogic integration with Siebel for which from Siebel side we have generated java wrapper class which has all the methods, input\outputs defined and in\out params are serialized along with get\set methods. Following are the details of the input\output args.
    Account_EMRIO.java
    public class Account_EMRIO implements Serializable, Cloneable, SiebelHierarchy {
    protected String fIntObjectFormat = null;
    protected String fMessageType = "Integration Object";
    protected String fMessageId = null;
    protected String fIntObjectName = "Account_EMR";
    protected String fOutputIntObjectName = "Account_EMR";
    protected ArrayList <AccountIC> fintObjInst = null;
    Above class also includes constructors\overloaded constructor\getters\setters
    public AccountIC getfintObjInst() {    
    if(fintObjInst != null) {
    return (AccountIC)fintObjInst.clone();
    }else{
    return null;
    public void setfintObjInst(AccountIC val) {
    if(val != null) {
    if(fintObjInst == null) { 
    fintObjInst = new ArrayList<AccountIC>();
    fintObjInst.add(val);
    For the nested user defined data type AccountIC, it is defined in another java class as below
    AccountIC.java
    public class AccountIC implements Serializable, Cloneable, SiebelHierarchy {
    protected String fname = null;
    protected String fParent_Account_Id= null;
    protected String fPrimary_Organization = null;
    With the above, I was able to get all the AccountIC in the wsdl correctly and using this I was able to set the input param in the client
    WSDL:
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fintObjInst" type="tns:accountIC" minOccurs="0"/>
    </xs:sequence>
    <xs:complexType name="accountIC">
    <xs:sequence>
    <xs:element name="fName" type="xs:string" minOccurs="0"/>
    <xs:element name="fParent_Account_Id" type="xs:string" minOccurs="0"/>
    <xs:element name="fPrimary_Organization" type="xs:string" minOccurs="0"/>
    minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    Now, I wanted to make slight difference in getter method of class Account_EMRIO method getfintObjInst so that an array of AccountIC is retured as output.
    public ArrayList<AccountIC> getfintObjInst() {    
    if(fintObjInst != null) {
    return (ArrayList<AccountIC>)fintObjInst.clone();
    }else{
    return null;
    With the above change, once the wsdl is generated, I am no longer getting fintObjInst field for AccountIC due to which I am unable to get the array list of accountIC
    WSDL:
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    The issue that I am facing here is, we have a custom data type(AccountIC) which has several fields in it. In the output I need a array of AccountIC. In the java bean, when this type was defined as
    protected ArrayList <AccountIC> fintObjInst = null; I was unable to get a array of AccountIC. this gets complicated as inside a AccountIC there is array of contacts as well and all the time I am getting just the first records and not a array.
    To summarize: How to get xsd:list or maxoccurs property for a field in WSDL for the user defined\custom datatype?
    Can someone help me with this.
    Thanks,
    Sudha.

    can someone help with this??

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

  • Share the customed data types between sequence files

    Is there any way to share the customed data type , ex. containter, between the sequence files?
    I created some containters, ex, datatype1 in the File1.seq. The other
    file File2.seq calls a subsequence which pass the datatype1 as
    parameter. But now I have to copy the datatype1in the custom data type
    section in the File2.seq. I didn't find the way in the teststand , when
    I want to insert a container which is from another file.
    The disdavantage of this way is , if the data type is changed, you have to change the data type in both files.
    Thanks
    Sundog

    You can add the data type to the station globals.  Then they would be updated for each sequence that uses them.
    Open the stations globals and change the view to Global Types.  Add your type there.
    Message Edited by paulmw on 01-10-2007 01:01 PM
    * I noticed that I can't find the type when tring to create a local varable using the above steps, so it looks like this won't exactly work.
    Message Edited by paulmw on 01-10-2007 01:06 PM

  • Updating custom data types

    I've updated a custom data type and redeployed my component; however, I'm not seeing the update take.  What do I need to do to see the update?  Restart the server?
    Thanks
    Dan Stremkowski
    Thrivent Financial

    Hi there,
    you can use your own classes as service method argument or return type. But you should not forget to do a type mapping on both the service and client side.
    I can tell you, how I am sending and receiving my own datatype called "FileBean" which is a simple JavaBean with getter() and setter() methods for the properties.
    I'm using axis for deployment and tomcat as the web server, where my service runs on (currently only local but in future this will be remote).
    Service class: "InstallationService.java"
    Bean class: "FileBean.java"
    Client class: "FileSaving.java"
    My deploy.wsdd file has the following entry:
    <beanMapping qname="myNS:FileBean"
      xmlns:myNS="http://packageDelarationBackwards"
      languageSpecificType="java:packageDeclaration.FileBean"/>
    ...The method header in my service:
    public FileBean storeAttachments(FileBean file)The important part of my Client:
    QName qnFileBean = new QName("http://packageDelcarationBackwards", "FileBean");
    call = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
    call.setOperationName(new QName("InstallationService","storeAttachments"));
    call.setReturnType(qnFileBean);
    call.registerTypeMapping(
                            FileBean.class,
                            qnFileBean,
                            new BeanSerializerFactory(FileBean.class, qnFileBean),
                            new BeanDeserializerFactory(FileBean.class, qnFileBean));
    ....After deploying the service and starting the server I can send my "FileBean", work with it and give it back.
    Hope this helped. If you need more information, just let me know.
    Steffi

  • JBO-27021: Failed to load custom data type value at index 1

    I have an adf table and an adf form in a jspx page. Well, the function of it is pretty basic CRUD. During our testings, we seem to have no problem at all but after deploying it to our remote server, we've been getting this error every time we delete the 'first' record in the table. We tried deleting other records and it worked perfectly fine. This is the first time we've encountered an error like this and we don't really know how to debug this, since it's working fine locally. Any help would be appreciated. Thanks!
    here's the pop-up error after trying to delete the first record
    JBO-27021: Failed to load custom data type value at index 1 with java object of type oracle.jbo.domain.Number due to java.sql.SQLException.
    I'm using jdev 11g and the latest webLogic server

    I have a similar problem,
    I have a VO with a query of the form: "SELECT d.campoUno, d.campoDos, sum(d.campoTres) as campoTres FROM TablaUno d
    WHERE <conditions>
    GROUP BY d.campoUno, d.campoDos",
    to modify the query for "SELECT d.campoUno, d.campoDos, *d.campoCuatro*, sum(d.campoTres) as campoTres FROM TablaUno d
    WHERE <conditions>
    GROUP BY d.campoUno, d.campoDos, *d.campoCuatro*"
    throws an exception: "javax.faces.el.EvaluationException: oracle.jbo.AttributeLoadException: JBO-27021: Failed to load custom data type value at index 16..............Caused by: java.sql.SQLException: Invalid column index
    The attribute was added well in xml definitions.
    I use JDeveloper 11.1.1.4.0
    any suggestions?

  • Customized data type

    i tried to make a simple Dynamic Invocation Interface client sample. how do i set input and output a customized data type and how do i invoke the method that uses the customized data type?thank you.

    bump...Any solution to this problem? I am also facing the same issue.

  • Custom data types for Web Service services

    Instead of language primitives (int, double) or Strings, is it possible to define custom data types (i.e. classes) for use in a service method argument or as a service return type? For example, if I create a class called MyClass then could I use it as an argument n a service as follows: someServiceMethod( MyClass myClassInstance). A service returning the custom type might look like this: MyClass getTheClassServiceMethod(String someString). Are either of these ideas possible?

    Hi there,
    you can use your own classes as service method argument or return type. But you should not forget to do a type mapping on both the service and client side.
    I can tell you, how I am sending and receiving my own datatype called "FileBean" which is a simple JavaBean with getter() and setter() methods for the properties.
    I'm using axis for deployment and tomcat as the web server, where my service runs on (currently only local but in future this will be remote).
    Service class: "InstallationService.java"
    Bean class: "FileBean.java"
    Client class: "FileSaving.java"
    My deploy.wsdd file has the following entry:
    <beanMapping qname="myNS:FileBean"
      xmlns:myNS="http://packageDelarationBackwards"
      languageSpecificType="java:packageDeclaration.FileBean"/>
    ...The method header in my service:
    public FileBean storeAttachments(FileBean file)The important part of my Client:
    QName qnFileBean = new QName("http://packageDelcarationBackwards", "FileBean");
    call = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
    call.setOperationName(new QName("InstallationService","storeAttachments"));
    call.setReturnType(qnFileBean);
    call.registerTypeMapping(
                            FileBean.class,
                            qnFileBean,
                            new BeanSerializerFactory(FileBean.class, qnFileBean),
                            new BeanDeserializerFactory(FileBean.class, qnFileBean));
    ....After deploying the service and starting the server I can send my "FileBean", work with it and give it back.
    Hope this helped. If you need more information, just let me know.
    Steffi

Maybe you are looking for

  • UOM in SRM 7.0 Documents

    Hello experts, We are implementing ECS scenario in SRM 7.0. We found that Look up help for UOM in SC and PO shows only SI units (Like Kg,M,s).However Non SI Units like Feet,Yard, Pound,Square feet etc do not show up. These units are still widely used

  • Adobe AIR is not installing on my LSC

    I installed the correct version of Adobe AIR base on this link http://get.adobe.com/air/ vesrion 15. This version should fix the problem but I still get the same problem. The installation of Adobe AIR has failed. Now exiting the setup. Can some one h

  • IOS 8 How to control SCNCamera by myself

    I m developing a APP using SCNKit on iOS8.0 using Xcode Beta2. I have some issues of controlling the camera of a scene. I want the camera focus a point and rotate around the object only in the positive y direction and have a parallel version with X-Z

  • 805 SQLPlus to Sun 7.3.4: ORA-12162

    Hi, I have installed Net8 and SQL*Plus from 8.0.5 on SuSE Linux 6.0. Using SQL*Plus from Linux to a Server V7.3.4.2 on Win NT works OK, but using it against a Server V7.3.4.0.1 on Solaris 2.6 gives the error ORA-12162: TNS: service name is incorrectl

  • Unable to use Nokia E63 as internet modem - "Conne...

    Hi, I am having trouble getting my Nokie E63 to work as a modem to get my laptop online. I have just installed the latest Nokia OVI Suite (3.1.1.90) and everything synced fine. However, when I try click on "Tools" and "Connect to internet" nothing ha