Use of type libraries and custom data types in TestStand 3.1

Consider the following example in CVI 7.0:
#include <cvidef.h>
typedef struct
    int                         t_err;
    unsigned int                err_flags;
    int                         err_code;
    char                        err_msg[1024];
} TEST_ERROR;
int DLLEXPORT DLLSTDCALL   NfctConnect  (int iPortType, int iComPort, int iBaudRate, TEST_ERROR * tstError);
I want to call this function from TestStand 3.1 using the CVI Standard Adapter.
I created a function panel from the header file then I generated a DLL that contains the type library as an embedded resource. Using OLE/COM object viewer I can confirm that the definitions are correct. In TestStand however, all basic types are recognized but the structure is rejected as not being a TestStand type.
However, a C structure is supposed to be assimilated as a container in TestStand. Do I have to manually create a custom data type in TestStand to match my C structure or TestStand can automatically create the container based on the information in the type library (because this information is available it won't be difficult for TestStand to do this automatically)?

Hi Spoli,
At the current time the only adapter that gives you the option to
automatically create a container for a given parameter is the LabVIEW
adapter. In your case you will need to manually create the container
that matches your C struct. I apologize for the inconvenience.
One thing you can do to see this feature in future versions is make a Product Suggestion on our website. Our R&D engineers are always looking for good feedback.
Have a good one Spoli,
Dan Weiland
Applications Engineer
National Instruments
Dan Weiland

Similar Messages

  • Error while recording process using a component with a custom data type

    Hello,
    I created a component that returns a CheckAttachmentResult object. This object contains an int named resultCode and a String named resultMessage. In the CheckAttachmentResult class, I do have a getter and a setter function for both values.
    When I use the component, I can retrieve the CheckAttachmentResult object, see the values that are set (i.e. resultMessage and resultCode) and work on them (for instance build a condition on the resultCode).
    However when the current process goes into a subprocess after having used this component, I get the following error:
    Failed evaluating outgoing routes for action=template:ReceptionDtpBriefingV2/branch:main-branch/pool:POOL/swimlane:Extraction du DTP/action:Check DTP attachments: java.lang.NullPointerException  at com.adobe.idp.auditworkflow.dsc.service.storage.ProcessRecordingStorageImpl.persistDocume ntVariables(ProcessRecordingStorageImpl.java:409)
        at com.adobe.idp.auditworkflow.dsc.service.storage.ProcessRecordingStorageImpl.serialize(Pro cessRecordingStorageImpl.java:390)
        at com.adobe.idp.auditworkflow.dsc.service.storage.ProcessRecordingStorageImpl.persist(Proce ssRecordingStorageImpl.java:151)
        at com.adobe.idp.auditworkflow.dsc.service.AuditWorkflowServiceImpl.auditEvent(AuditWorkflow ServiceImpl.java:62)
        at sun.reflect.GeneratedMethodAccessor1278.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.jav a:118)
        at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:140)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(Transa ctionInterceptor.java:74)
        at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTr ansactionCMTAdapterBean.java:342)
        at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doRequiresNew (EjbTransactionCMTAdapterBean.java:284)
        at sun.reflect.GeneratedMethodAccessor236.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
        at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionConta iner.java:214)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.java:149)
        at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstance Interceptor.java:154)
        at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor. java:54)
        at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)
        at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:389)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
        at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor. java:122)
        at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
        at org.jboss.ejb.Container.invoke(Container.java:873)
        at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)
        at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)
        at $Proxy169.doRequiresNew(Unknown Source)
        at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvi der.java:143)
        at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInt erceptor.java:72)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.interceptor.impl.InvocationStrategyInterceptor.intercept(InvocationStra tegyInterceptor.java:55)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateIntercep tor.java:37)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterc eptor.java:109)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.interceptor.impl.JMXInterceptor.intercept(JMXInterceptor.java:48)
        at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:60)
        at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.invoke(ServiceEngineImpl.java:115)
        at com.adobe.idp.dsc.routing.Router.routeRequest(Router.java:118)
        at com.adobe.idp.dsc.provider.impl.base.AbstractMessageReceiver.routeMessage(AbstractMessage Receiver.java:91)
        at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:21 5)
        at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:57)
        at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
        at com.adobe.workflow.audit.WorkflowAudit.invokeCallback(WorkflowAudit.java:471)
        at com.adobe.workflow.audit.WorkflowAudit.breakpointRouteEvaluationCompleted(WorkflowAudit.j ava:268)
        at com.adobe.workflow.engine.PEUtil.evaluateRules(PEUtil.java:425)
        at com.adobe.workflow.engine.SynchronousBranch.getNextActionOrStallOnFailure(SynchronousBran ch.java:801)
        at com.adobe.workflow.engine.SynchronousBranch.updateBranchInstanceStatus(SynchronousBranch. java:649)
        at com.adobe.workflow.engine.SynchronousBranch.execute(SynchronousBranch.java:887)
        at com.adobe.workflow.engine.ProcessEngineBMTBean.continueBranchAtAction(ProcessEngineBMTBea n.java:2773)
        at com.adobe.workflow.engine.ProcessEngineBMTBean.asyncInvokeProcessCommand(ProcessEngineBMT Bean.java:704)
        at sun.reflect.GeneratedMethodAccessor503.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
        at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionConta iner.java:214)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.java:149)
        at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor. java:54)
        at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)
        at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:1 58)
        at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62)
        at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstance Interceptor.java:154)
        at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
        at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor. java:122)
        at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
        at org.jboss.ejb.Container.invoke(Container.java:873)
        at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:415)
        at org.jboss.ejb.plugins.local.StatelessSessionProxy.invoke(StatelessSessionProxy.java:88)
        at $Proxy202.asyncInvokeProcessCommand(Unknown Source)
        at com.adobe.workflow.engine.ProcessCommandControllerBean.doOnMessage(ProcessCommandControll erBean.java:156)
        at com.adobe.workflow.engine.ProcessCommandControllerBean.onMessage(ProcessCommandController Bean.java:99)
        at sun.reflect.GeneratedMethodAccessor457.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
        at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.j ava:475)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionI nterceptor.java:149)
        at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterc eptor.java:101)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)
        at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:335)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
        at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
        at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)
        at org.jboss.ejb.Container.invoke(Container.java:873)
        at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)
        at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerI nvoker.java:1379)
        at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)
        at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904 )
        at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)
        at org.jboss.mq.SpySession.run(SpySession.java:333)
        at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
        at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
        at java.lang.Thread.run(Thread.java:595)
    It turns out that this error is related to the recording of the process. When I stop the recording, this error disappears. Do you have any idea on what goes wrong ? Did I miss something or made something wrong ?
    I attached the component.xml file of the component to this post.
    Thank you in advance
    Steve

    This seems to be recorded in CAR#405941.  The whole thing is a bit strange but I will try to go over the potential workarounds as best as I can.  I tested a lot of these myself and here is what I found.
    1. Make sure the custom control you have made was created in LabVIEW 2012 or you save it to a previous version.  If you save it to a previous version you might also need to open the .ctl in LabVIEW 2012 and resave it (I needed to do this).  I tried creating my own control in 2012 as well as saving the control to a previous version, both worked but I did not end up with the same result (I don't understand this but I wanted to mention it so that you knew).
    2. It seems that you are able to make the shared variable programmatically by modifying the community example to fit your needs.  If you do not need to create many variables this may be the best option if it works for you.
    I would also try adding the variable from the LabVIEW project you are working on.  This was not a direct troubleshooting step but there are multiple ways to do things in LabVIEW and sometimes one of them works while the other does not.
    Edit: Community Example is here https://decibel.ni.com/content/docs/DOC-16863
    Matt J
    Professional Googler and Kudo Addict
    National Instruments

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

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

  • 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

  • Use an imported RFC's type as type in the custom data object

    Hello,
    I've imported an RFC function in my process. There were created automatically some RFC types describing RFC's input\output parameters. Now I want to create my custom data object type and want to use previously created type in my data object, but I can use only standard types like string or anyType. There aren't any of generated types in the list.
    Is it possible to use generated types as types in a custom data object?

    Hi,
    Where did you import the RFC? In WebDynpro application? If so, you need to expose the types through the Interface Controller then only the types will be visible in BPM process.
    Thanks
    Abhilash

  • [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.  'Items' (OITM) (OITM)

    Dear Experts,
    i am getting the below error when i was giving * (Star) to view all the items in DB
    [Microsoft][SQL Server Native Client 11.0][SQL Server]The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.  'Items' (OITM) (OITM)
    As i was searching individually it is working fine
    can any one help me how to find this..
    Regards,
    Meghanath.S

    Dear Nithi Anandham,
    i am not having any query while finding all the items in item master data i am giving find mode and in item code i was trying to type *(Star) and enter while typing enter the above issue i was facing..
    Regards,
    Meghanath

  • Error in SQL Query The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. for the query

    hi Experts,
    while running SQL Query i am getting an error as
    The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. for the query
    select  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price ,
    T2.LineText
    from OQUT T0  INNER JOIN QUT1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN
    QUT10 T2 ON T1.DocEntry = T2.DocEntry where T1.DocEntry='590'
    group by  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price
    ,T2.LineText
    how to resolve the issue

    Dear Meghanath,
    Please use the following query, Hope your purpose will serve.
    select  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price ,
    CAST(T2.LineText as nvarchar (MAX))[LineText]
    from OQUT T0  INNER JOIN QUT1 T1 ON T0.DocEntry = T1.DocEntry LEFT OUTER JOIN
    QUT10 T2 ON T1.DocEntry = T2.DocEntry --where T1.DocEntry='590'
    group by  T1. Dscription,T1.docEntry,T1.Quantity,T1.Price
    ,CAST(T2.LineText as nvarchar (MAX))
    Regards,
    Amit

  • Joining table using CHAR and VARCHAR data type as indicator

    Hi All,
    I would like to join 3 tables together but I'm unable to get a perfect concordance (using =) between CHAR and VARCHAR data type.
    Does a command exist to get impartially all data treated as CHAR or VARCHAR ?
    Thanks in advance for your help !

    You want the database to perform with such a crappy database design? Good luck with that.. Instead, you need to look at why you are NOT using surrogate integer based keys for your data tables..
    Thank you,
    Tony Miller
    Webster, TX
    If vegetable oil is made of vegetables, what is baby oil made of?
    If this question is answered, please mark the thread as closed and assign points where earned..

  • 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

  • Version number conflicts with NI custom data types

    Custom data type version number conflicts
    Options
    Mark as New
    Bookmark
    Subscribe
    Subscribe to RSS Feed
    Highlight
    Print
    Email to a Friend
    Report to a Moderator
    07-11-2011 08:10 AM
    I am new to Teststand software interface.  While doing my first software release under the guidance of a more experienced colleague, we discovered that Teststand will not run if it detects version number conflicts between custom data types on my machine vs. the production test machine.  I verified differences between all .seq files in my test program directory, but I did not realize that the version number difference exists in the StationGlobals.ini file, which is stored in a different location.  After discovering this, I modified the version number in one of the files.  However, two releases later, I discovered that the version number mismatches in another two files.  This raises several questions for me :
    1.  Is there a way in Teststand to view all the .seq files where a custom data type is used and then change its version number in one attempt?
    2.  Under what instances does Teststand upgrade the version number of a custom data type?
    3.  Are there any tools or scripts within Teststand that can allow the version number of custom data types to be changed in all .ini files when a difference is discovered between the current production test station settings and a new release?
    Please help.

    Have you read this?  http://zone.ni.com/devzone/cda/tut/p/id/7060
    I can tell you that your situation is not uncommon with TestStand.  The key is just doing it right the first time.  haha
    #1- I doubt that this is possible because then TestStand would have to know every location of every .seq on the machine.  You will only see it when you open the sequence file.
    #2- TestStand updates the version every time you change it.  You should get a message popup when you try to save that asks if you want to increment the version or not.  There's also a check box that says Remove Modified Mark From Types.  Look under Station Options in the File tab.  There are some settings there about Type conflicts.
    #3- http://zone.ni.com/devzone/cda/tut/p/id/7910
    http://digital.ni.com/public.nsf/allkb/4153576DA04BEB098625743D00704A09
    Hope this helps,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

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

  • Custom data type causing trouble in deploying shared variable to RT target

    I seem to be having some difficulty in using a network published shared variable created from a custom data type when deployed as an executable on an RT cRIO target.  I'll start by describing why I believe this is where the problem lies.  I created my RT VI in the LabVIEW development environment (LV 2012) and everything works fine.  This VI is pretty simple because it rapidly devolved in to a debug exercise.  The RT VI starts by simply blinking the User LED a couple of times and then starts a simple acquisition loop to read a few values off the hardware using the scan engine (while still blinking the User LED).  After reading the hardware, the values are bundled in to a cluster and written to a network-published shared variable defined by a type def custom control.  The custom control contains five dbl precision floats.  If it matters, the cRIO RT system hosts the shared variable in this case.
    So, I deploy this under the development environment and everything works fine.  The LED blinks merrily along, telling me that the program is running properly.  Running a host VI that reads the network-published shared variable yields the desired result.  All is good.
    Now I want the cRIO system to run this simple program autonomously at startup.  I build it, set it as the startup VI, deploy it and then restart the cRIO target.  The LED never starts blinking... the VI does not seem to run.  I will spare you most of the debugging work and jump to the end.  I basically "Diagram Disabled" various sections of code until the VI started running correctly as an executable.  I kept reducing the size of the disabled code until only one thing was disabled:  the write to the custom data type shared variable.
    So, I guess my question is this:  Are custom data types defined by type def'd custom controls allowed in executable RT programs?  I've read through the cRIO Developers Guide, my NI Real Time Development course book and the Using Shared Variables white paper and I didn't see anything that forbade it.  I know that there are some things not allowed in executables that are allowed in the development environment (front panel property nodes, dialog VIs, OS-specific calls, etc), but no mention of custom data type shared variables.  Any ideas as to why my VI runs in the development environment but fails when compiled unless I remove the write to the network published shared variable?
    Thanks in advance for your help!!
    Solved!
    Go to Solution.

    Paolo,
    So I thought that you meant to disconnect them in the build specification.  Under the Additional Exclusions in the build specification, there is a check box for Disconnect Type Defs.  I checked that box, recompiled, redeployed and it did not work.  At this point I had to give and move forward, so I was going to convert the data typed from a cluster to an array.  When I went in to change the data type in the shared variable pop-up from the project explorer, there was a big button under the variable definition that "Disconnect from Type Def".  Clicked that button, recompiled, redeployed, restarted and everything worked great.  Thank You!!
    I suspect that I'll have to be careful if I change the definition of that data type (add an element, etc) since it is no longer connected to the data type.  We'll cross that bridge when we need to.
    Thanks again

  • Designer Custom Data Type

    Hello,
    I've posted a project at some commercial sites to find someone to help me doing it, but couldn't find any. I thought that it might be impossible doing this type of projects. The following is what was posted expecting someone could help/lead me doing it myself or at least providing any valuable hints, Thank you in advance.
    Looking for an Oracle expert to do the software part of a project.
    A data to be populated in Oracle database, but unfortunately Oracle doesn't support the required data type to hold it.
    An expert has to create custom data type with all required procedures/functions to manipulate the data(Read/Update/Insert/Delete), and provide a method to incorporate the solution in Oracle developer suite to model it.(To use it inside designer tools)
    The solution should allow someone to Create a column in a table to hold (for example) three bits in every row(record), mostly used in the project is three bits, but need the solution to be open and customizable to any number from one up to 21. Viewing/entering the data in a record could be as binary string. Saving in a table physically should be in sampling way to save space.
    The functions/procedures for manipulating the data should be based on record level and block level(several records of one column with start/end points). For record manipulations a binary string should be used, and for block manipulations a sampled structure should be used.
    Thank you for your time.
    Platforms:
    Oracle Database 9i and above.
    Oracle Developer Suite 9i and above.
    */

    not sure what exactly do you mean by custom data type in SQL? if you mean if there is a user defined data type in oracle thru PL/SQL yes there is. by using the %Type you need not to declare the variable data type explicitly. all you need to do is associate the variable to the column name of the table and use the %Type. see this example below.
    SQL> declare
      2    vEmpno   emp.empno%Type;
      3  begin
      4    select empno
      5      into vEmpno
      6      from emp
      7     where ename = 'FORD';
      8    dbms_output.put_line('employee no: '||vEmpno);
      9  end;
    10  /
    employee no: 7902
    PL/SQL procedure successfully completed
    SQL> or if you are looking for a collection of data types see this link about OBJECT TYPES

Maybe you are looking for