New Type Definition Vs. Multiple Constraints

I'm thinking of making a change to an existing database. We currently have check constraints on table columns enforcing business rules for those columns. (e.g. "ADDRESS1 has to contain a number".)
ADDRESS1 shows up all over the place in our tables. If we were to change this rule to "ADDRESS1 has to contain a number other than 0" I would have a lot of work to do changing each constraint and the chance of a typo is pretty great.
Would it be better to create a datatype that was the same length and had this restriction on it and then change the datatype of my ADDRESS1 columns to match? At that point I only have to make the change in one place anytime the business rule changes. If that is the way to go, does anyone have an example of creating a type that is a VARCHAR2 with restrictions? I'm having a hard time finding examples that aren't datatypes with multiple columns in them.
If I'm on the wrong track could someone please propose a better way to handle these types of things. Remember we are full of check constraints and most occur in multiple tables.
Thanks in advance,
Chris S.

Let's look at this from the other side of the street...
Using TYPEs to store data permanently is bad practice i.e. not relational. But as you appear to have a heavily denormalised database anyway you're no worse off by using them (but see below). ccording to the documentation Oracle does not support constraints on TYPEs. We can apply constraints on tables that use them but where's the fun in that? Let's have some user defined constructors....
SQL> CREATE OR REPLACE TYPE address AS OBJECT
  2  (  plot_no NUMBER(10),
  3     postcode VARCHAR2(10),
  4     street_1  VARCHAR2(30),
  5     street_2   VARCHAR2(30),
  6     county VARCHAR2(10),
  7      CONSTRUCTOR FUNCTION address(plot_no NUMBER, postcode VARCHAR2) RETURN SELF AS RESULT,
  8      CONSTRUCTOR FUNCTION address(plot_no NUMBER, postcode VARCHAR2,street_1 VARCHAR2,
  9                                   street_2 VARCHAR2, county VARCHAR2) RETURN SELF AS RESULT
10  ) NOT FINAL;
11  /
Type created.
SQL> CREATE OR REPLACE TYPE BODY address IS
  2      CONSTRUCTOR FUNCTION address(plot_no NUMBER, postcode VARCHAR2)
  3          RETURN SELF AS RESULT
  4      IS
  5        x_postcode exception;
  6        PRAGMA exception_init(x_postcode, -20001);
  7      BEGIN
  8         IF postcode IS NULL THEN
  9              RAISE x_postcode;
10         END IF;
11         SELF.plot_no := plot_no;
12         SELF.postcode := postcode;
13         SELF.street_1 := NULL;
14         SELF.street_2 := NULL;
15         SELF.county := NULL;
16         RETURN;
17      EXCEPTION
18         WHEN x_postcode THEN raise_application_error(-20001, 'Postcode cannot be null!');
19      END;
20      CONSTRUCTOR FUNCTION address(plot_no NUMBER, postcode VARCHAR2,street_1 VARCHAR2,
21                                   street_2 VARCHAR2, county VARCHAR2)
22          RETURN SELF AS RESULT
23      IS
24        x_postcode exception;
25        PRAGMA exception_init(x_postcode, -20001);
26      BEGIN
27         IF postcode IS NULL THEN
28              RAISE x_postcode;
29         END IF;
30         SELF.plot_no := plot_no;
31         SELF.postcode := postcode;
32         SELF.street_1 := street_1;
33         SELF.street_2 := street_2;
34         SELF.county := county;
35         RETURN;
36      EXCEPTION
37         WHEN x_postcode THEN raise_application_error(-20001, 'Postcode cannot be null!');
38      END;
39  END;
40  /
Type body created.
SQL> CREATE TABLE emp_addresses (id NUMBER, addr address)
  2  /
Table created.
SQL> INSERT INTO emp_addresses VALUES (1, address(123, 'SW12 900'))
  2  /
1 row created.
SQL> INSERT INTO emp_addresses VALUES (2, address(56, null))
  2  /
INSERT INTO emp_addresses VALUES (2, address(56, null))
ERROR at line 1:
ORA-20001: Postcode cannot be null!
ORA-06512: at "SCOTT.ADDRESS", line 18
ORA-06512: at line 1
SQL> A caveat: we cannot change the TYPE spec once it's in use. If we want to change the TYPE not only do we have to drop the TYPE BODY we also have to drop any TABLE that has a column defined as our TYPE. This limits the flexibility of abstract data type as data storage solution. Just make sure you get the signature right before going into production with it.
Also, of course, this doesn't solve your major aim, which was avoiding work. You are still going to have to turn all your address columns into an ADDRESS object. This can be done using Agent 355099's automation techniques but undermines the object (oh ho!) of the exercise.
In short: stick to relational columns with constraints for your data.
Cheers, APC

Similar Messages

  • How to search with multiple constraints in the new java API?

    I'm having a problem using the new MDM API to do searches with multiple constraints.  Here are the classes I'm trying to use, and the scenario I'm trying to implement:
    Classes:
    SearchItem: Interface
    SearchGroup: implements SearchItem, empty constructor,
                 addSearchItem (requires SearchDimension and SearchConstraint, or just a SearchItem),
                 setComparisonOperator
    SearchParameter: implements SearchItem, constructor requires SearchDimension and SearchConstraint objects
    Search: extends SearchGroup, constructor requires TableId object
    RetrieveLimitedRecordsCommand: setSearch method requires Search object
    FieldDimension: constructor requires FieldId object or FieldIds[] fieldPath
    TextSearchConstraint: constructor requires string value and int comparisonOperator(enum)
    BooleanSearchConstraint: constructor requires boolean value
    Scenario:
    Okay, so say we have a main table, Products.  We want to search the table for the following:
    field IsActive = true
    field ProductColor = red or blue or green
    So the question is how to build this search with the above classes?  Everything I've tried so far results in the following error:
    Exception in thread "main" java.lang.UnsupportedOperationException: Search group nesting is currently not supported.
         at com.sap.mdm.search.SearchGroup.addSearchItem(Unknown Source)
    I can do just the ProductColor search like this:
    Search mySearch = new Search(<Products TableId>);
    mySearch.setComparisonOperator(Search.OR_OPERATOR);
    FieldDimension myColorFieldDim = new FieldDimension(<ProductColor FieldId>);
    TextSearchConstraint myTextConRed = new TextSearchConstraint("red",TextSearchConstraint.EQUALS);
    TextSearchConstraint myTextConBlue = new TextSearchConstraint("blue",TextSearchConstraint.EQUALS);
    TextSearchConstraint myTextConGreen = new TextSearchConstraint("green",TextSearchConstraint.EQUALS);
    mySearch.addSearchItem(myColorFieldDim,myTextConRed);
    mySearch.addSearchItem(myColorFieldDim,myTextConBlue);
    mySearch.addSearchItem(myColorFieldDim,myTextConGreen);
    the question is how do I add the AND of the BooleanSearchConstraint?
    FieldDimension myActiveFieldDim = new FieldDimension(<IsActive FieldId>);
    BooleanSearchConstraint myBoolCon = new BooleanSearchConstraint(true);
    I can't just add it to mySearch because mySearch is using OR operator, so it would return ALL of the Products records that match IsActive = true.  I tried creating a higher level Search object like this:
    Search topSearch = new Search(<Products TableId>);
    topSearch.setComparisonOperator(Search.AND_OPERATOR);
    topSearch.addSearchItem(mySearch);
    topSearch.addSearchItem(myActiveFieldDim,myBoolCon);
    But when I do this I get the above "Search group nesting is currently not supported" error.  Does that mean this kind of search cannot be done with the new MDM API?

    I'm actually testing a pre-release of SP05 right now, and it still is not functional.  The best that can be done is to use a PickListSearchConstraint to act as an OR within a field.  But PickList is limited to lookup Id values, text attribute values, numeric attribute values and coupled attribute values.  It works for me in some cases where I have lookup Id values, but not in other cases where the users want to search on multiple text values within a single field.

  • Definition of a new type of invoice for Evaluated Receipt Settlemen (ERS)

    Hello,
    I need to define a new type of invoice for Evaluated Receipt Settlemen (ERS). Is it possible? What should i do to configure the system?
    Thanks in advance,
    Luis Álvarez.

    Hi,
    ERS is used for invoice plan & invoicing plan for leasing agreements like, aim to considerably reduce the manual data entry effort in the purchasing and invoice verification (A/P) department.
    The invoicing plan enables you to schedule the desired dates for the creation of invoices relating to the planned procurement of materials or services independently of the actual receipt of the goods or actual performance of the services. It list the dates on which you wish to create and then pay the invoices.
    The steps are,
    1.XK02: In Purchasing Data tick the check box of AutoEvalGRSetmt Del,
    2.ME12: Should not select No ERS check box,
    3.ME21N: Create PO,
    4.MIGO: Receive Goods,
    5.MRRL: Evaluated Receipt Settlement
    Link may be useful.
    http://help.sap.com/saphelp_srm30/helpdata/en/fb/8dec38574c2661e10000000a114084/content.htm

  • "New lifecycle definition" fails with "Unexpected error"

    This problem has been previously posted without resolution.
    Select "Lifecycle Definitions -> New lifecycle definition".
    Error:
    "Unexpected error, unable to find item name at application or page level.
    A severe error has occurred. Possible causes may include moving directly to a page using the browser history or Back key, multiple users attempting to change the same data or an application defect. Please visit the Support page under the Help Tab to report the error.
    Press here to return to the parent page"
    A resolution to this would be apprciated.
    Please note this problem is based on APEX 4. About to retest on APEX 3.2 to see if it is happening there.
    Edited by: user774105 on 7/03/2011 17:26
    Have back ported to 3.2 and the problem no longer occurs. Not sure what has changed between versions, but there are a number of links in the Assitant that fail with the above error in APEX 4.
    Edited by: user774105 on 7/03/2011 19:45

    Hi
    I have also encounter the same error . Currently i have apex version 4.
    User: SYSTEM
    Unexpected error, unable to find item name at application or page level.
    A severe error has occurred. Possible causes may include moving directly to a page using the browser history or Back key, multiple users attempting to change the same data or an application defect. Please visit the Support page under the Help Tab to report the error.
    Press here to return to the parent page
    Any solution for this with apex version 4
    Thanks and Regards
    Ganesan Sivaraman

  • What's wrong with this content type definition?

    Could someone tell me what's wrong with this content type definition? When I click "New Folder" in a custom list, it should bring two fields 1) Name 2) Custom Order. However in my case when I click new folder, I see 1) Member (which is totally
    weird) 2) custom order. Where is it getting that Member field from?
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <!-- Parent ContentType: Folder (0x0120) -->
    <ContentType ID="0x012000c0692689cafc4191b6283f72f2369cff"
    Name="Folder_OrderColumn"
    Group="Custom"
    Description="Folder with order column"
    Inherits="TRUE"
    Version="0">
    <FieldRefs>
    <FieldRef ID="{35788ED2-8569-48DC-B6DE-BA72A4F87B7A}" Name="Custom_x0020_Order" DisplayName="Custom Order" />
    </FieldRefs>
    </ContentType>
    </Elements>

    Hi,
    According to your post, my understanding is that you had an issue about the custom content type with custom column.
    I don’t think there is any issue in the content type definition, and it also worked well in my environment.
    Did you have the Member field in the project?
    I recommend you create a simple project only with one custom Order column and one custom Folder_OrderColumn, then you can add more fields one by one.
    By doing this, it will be easier to find out the root cause of this error.
    Thanks,
    Jason
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jason Guo
    TechNet Community Support

  • Passing a reference to a type definition to a SubVI

    I have created a type definition that I would like to use across my application. This particular type definition is also the front panel control to my top level VI. I wanted to pass a reference to this control to my SubVi's so that they could dereference as needed and in very rare cases update the values on the front panel. However, as I built the application I noticed that I was breaking the control reference as I updated the type definition. This implies that they type of the reference changes as I change the type definition.
    How do I go about building the reference I need or is there some other way to do this that works just as well. Even if I can't make a reference to the control that is tied to the type definition, I'm willing to pass in a variant who can house the reference as long as I can build the data type (the reference) inside my SubVis.
    Solved!
    Go to Solution.

    Okay, so I tried all three approaches in a SubVI, here's what happened.
    My approach was simply to create a Type Def control, right-click and create a Reference. Then create a control from that reference by right-clicking the output of the reference and selecting the Create Control option. I then pasted this 'cluster' reference into my SubVi, made it an input and then wired up the reference in the parent to the control in the SubVi.
    Result: This breaks when you update the Type Definition.
    Next, Ben's approach (or my best effort at doing what he suggested). I created a control from reference to the type def. I cut it from the parent VI and pasted it into a new type def. I then put the type def in the SubVI and set it as an input.
    Result: This breaks when you update the Type Definition (but it actually takes a bit longer for the error to propogate).
    Finally, Christian's solution (or my best effort). I took the type def reference and put it through a To More Generic Class guy, casting it to a Control Refnum. I put a Control Refnum on the front panel of my SubVI and wired it to a To More Specific Class guy. I created a control of the type def in the subvi, hid it, and created a reference. I wired the reference to the more specific guy and verified I was getting the right data.
    Result: It works!
    It's possible I just didn't understand how to make the reference type def you were referring to Ben. I would prefer a method with less verbage. I pass this refnum into a class which holds it. Since I can't replicate the type exactly prior to run time (i.e. create a control that is exactly a reference to the type definition of my front panel), I have to save the reference as a Control Refnum and cast it every time I need it (i.e. create a control from the typedef, create a reference frome the type def, etc). More verbage than optimal, but still good!
    Thanks for the help.

  • Error: Set type Z contains multiple-value attributes

    Hi forum,
    I have a problem when i try to assign a set type with the same value but diferent name on another set type to the same product category.
    This is the detail of the error but i dont know where i have to set this indicator:
    If you set this indicator for a particular hierarchy, all categories and set types in this hierarchy are created in the PME.
    This gives you the following extended maintenance options at category level:
    You can assign set types with multiple-value attributes
    You can restrict value ranges and maintain default values for attributes of customer set types.
    Any sugerence about this?
    Regards and thanks in advance,
    Mon

    Hi Nelson,
    I create two set types, the description is not the problem. I have discover that when i try to assign these attributes in the same set type or in other appears this error.
    The set types have the same values. For example:
    zcountry1. Values: sp - spain. fr - france.
    zcountry2. Values: sp - spain. fr - france.
    When i try to configurate the comm_hierarchy in my category appears this error:
    Set type zcountry2 contains multiple-value attributes.
    Diagnosis
    The set type ZGAME5 contains multiple-value attributes. It cannot be assigned to the category as extended maintenance has not been activated.
    Procedure
    Multiple-value attributes are stored in the PME. If you want to use the set type ZGAME5, you must set the Extended Maintenance Options indicator for the hierarchy.
    Extended Maintenance Is Possible for the Hierarchy
    Definition
    If you set this indicator for a particular hierarchy, all categories and set types in this hierarchy are created in the PME.
    This gives you the following extended maintenance options at category level:
    You can assign set types with multiple-value attributes
    You can restrict value ranges and maintain default values for attributes of customer set types.
    Where is this indicator¿? in R3?
    So, these are the steps...can anybody help to me?
    Regards and thanks in advance.

  • Error Master Type definition could not be found : FPGA

    I am having similar/exact error condition as in the below post..
    http://forums.ni.com/t5/LabVIEW/Error-Master-Copy-for-Type-Definition-Could-Not-Be-Found/m-p/1496866...
    The *.lvbit file i am using was compiled in Labview 8.2.1 and I am now using 2009 version of Labview.  Unlike the suggested solution, recompilation of *.lvbit file is ruled out due to lack of source code access.
    Any help towards troubleshooting is appreciated...

    Because I am a bad scientist, I do not know exactly what fixed my problem because I changed more than one variable at once.
    Here's what I did:
    Removed auto-populating folder from project (doubt this mattered, still broken after this)
    Changed my open FPGA VI reference from using a bitfile to using a VI, selected my FPGA VI, NO MORE BROKEN RUN ARROW! YAY.
    The above finding led me to go look at my FPGA bitfiles on disk -- I had two of them (weird). Usually a compilation just overwrites the older file.
    Just in case the names give any insight, they are:
    Older:  NASATTRControlCo_FPGATarget_FPGAMain_25B3817B.lvbitx
    Newer: NASATTRControlCo_FPGATarget_FPGAMain_25AF817B.lvbitx
    I went back to my open FPGA VI reference, and selected the most recent bitfile that I compile this morning -- No more broken run arrow.
    I have a feeling this may be due to selecting an old bitfile, but usually if the bitfile doesn't include the control, it won't show up in the read/write control node. If anyone from NI would like to comment on this I'd appreciate the insight on what may have happened.
    I am wondering if it's because I installed 2010 SP 1? Who knows but it's fixed now.
    CLA, LabVIEW Versions 2010-2013

  • Wrong TYPES definition?

    Hi experts,
    For my selection I define a internal table
    This works:
    DATA: it_lab_data  TYPE TABLE OF zmm_lab_offen,
         wa_lab_data  TYPE zmm_lab_offen.
    If I select something I can see the table is filled.
    Now, for my selection I need a temporary field more than my transparent table (zmm_lab_offen) has. So I tried to define a new TYPE including this table.
    TYPES: BEGIN OF s_lab_data,
             struk TYPE zmm_lab_struktur,
             loekz TYPE boolean,
           END OF s_lab_data.
    TYPES: tt_lab_data TYPE STANDARD TABLE OF s_lab_data WITH DEFAULT KEY.
    DATA: it_lab_data TYPE tt_lab_data.
    SELECT *
    FROM  'inner join over 3 tables'
    INTO CORRESPONDING FIELDS OF TABLE it_lab_data
    WHERE ...
    But this doesn't work. The Selection even imports 1600 rows but all fields are empty or has the value '0'!
    What am I doing wrong??? I 've got the TYPES definition by the "ABAP Objects" book...
    Regards,
    Steffen

    can't be used in OO context --> generates an error
    In the keywordmanual it is recommend to use
    DATA: BEGIN OF rec,
            rec LIKE s,
          END OF rec.
    instead of
    DATA: BEGIN OF rec,
            INCLUDE STRUCTURE s.
    DATA:   ...
          END OF rec.
    but this also don't work for me. LIKE and STRUCTURE cannot be used in methods. I have to use TYPE...
    regards,
    steffen

  • Type definitions w/ embedded attributes

    I am hoping you can help me resolve a problem in creating valid type definitions
    with embedded attributes. I've followed the vcard example from the Dev Guide; yet there is something that I am missing. I've have not included </BEANCLASSPATH> in the type definitions, as they were described as optional. If the addition of </BEANCLASSPATH> is necessary,do I need to create beans for each embedded structure within the parent? Following are the errant type definitions and their respective error codes returned from the parser:
    PARENT (PROPTYPE2) TYPE DEFINITION
    <?xml version="1.0" standalone="yes" ?>
    <ClassObject>
    <name>PropType2</name>
    <Description>Demo of Prop Pilot 1</Description>
    <Superclass RefType="name">
    Document
    </Superclass>
    <Attributes>
    <Attribute>
    <Name>Title</Name>
    <DataType>String</DataType>
    <Datalength>128</Datalength>
    </Attribute>
    <Attribute>
    <Name>Salutation</Name>
    <DataType>PublicObject</DataType>
    <ClassDomain RefType="name">PropType2SalutationDomain
    </ClassDomain>
    </Attribute>
    </Attributes>
    </ClassObject>
    PARSER ERROR:
    500 STOR:IFS-12605: XMLPARSER: COULD NOT FIND OBJECT BY NAME
    (PropType2SalutationDomain)
    EMBEDDED (SALUTATION) TYPE DEFINITION
    <?xml version="1.0" standalone="yes" ?>
    <ClassObject>
    <name>PropType2Salutation</name>
    <Description>Demo Prop Salutation Info</Description>
    <Superclass RefType="name">
    ApplicationObject
    </Superclass>
    <Attributes>
    <Attribute>
    <Name>Client</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>ClientTitle</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Address</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Date</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>BodyText</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Zoan</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>ZoanTitle</Name>
    <DataType>String</DataType>
    </Attribute>
    </Attributes>
    </ClassObject>
    PARSER ERROR:
    500 STOR:IFS-30002: UNABLE TO CREATE NEW LIBRARY OBJECT
    SALUTATION DOMAIN
    <?xml version="1.0" standalone="yes" ?>
    <ClassDomain>
    <name>PropType2SalutationDomain</name>
    <DomainType>1</DomainType>
    <Class>
    <ArrayElement RefType="name">PropType2Salutation
    </ArrayElement>
    </Class>
    </ClassDomain>
    PARSER ERROR:
    500 STOR:IFS-12620 PARSER: SYNTAX ERROR (CLASS)
    Thanks in advance for your help.

    <?xml version="1.0" standalone="yes" ?>
    <ClassObject>
    <name>PropType2</name>
    <Description>Demo of Prop Pilot 1</Description>
    <Superclass RefType="name">
    Document
    </Superclass>
    <Attributes>
    <Attribute>
    <Name>Title</Name>
    <DataType>String</DataType>
    <Datalength>128</Datalength>
    </Attribute>
    <Attribute>
    <Name>Salutation</Name>
    <DataType>PublicObject</DataType>
    <ClassDomain RefType="name">PropType2SalutationDomain
    </ClassDomain>
    </Attribute>
    </Attributes>
    </ClassObject>There is nothing wrong with the above. It will work once
    the ClassDomain 'PropType2SalutationDomain' is successfully
    created.
    >
    PARSER ERROR:
    500 STOR:IFS-12605: XMLPARSER: COULD NOT FIND OBJECT BY
    NAME
    (PropType2SalutationDomain)
    EMBEDDED (SALUTATION) TYPE DEFINITION
    <?xml version="1.0" standalone="yes" ?>
    <ClassObject>
    <name>PropType2Salutation</name>
    <Description>Demo Prop Salutation Info</Description>
    <Superclass RefType="name">
    ApplicationObject
    </Superclass>
    <Attributes>
    <Attribute>
    <Name>Client</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>ClientTitle</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Address</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Date</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>BodyText</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>Zoan</Name>
    <DataType>String</DataType>
    </Attribute>
    <Attribute>
    <Name>ZoanTitle</Name>
    <DataType>String</DataType>
    </Attribute>
    </Attributes>
    </ClassObject>The problem here is that 'Date' is not a valid column name;
    SQL does not allow 'Date' as a column name.
    >
    PARSER ERROR:
    500 STOR:IFS-30002: UNABLE TO CREATE NEW LIBRARY OBJECT
    SALUTATION DOMAIN
    <?xml version="1.0" standalone="yes" ?>
    <ClassDomain>
    <name>PropType2SalutationDomain</name>
    <DomainType>1</DomainType>
    <Class>
    <ArrayElement RefType="name">PropType2Salutation
    </ArrayElement>
    </Class>
    </ClassDomain>The correct tag would be 'Classes', not 'Class'.
    null

  • Mysterious unsaved changes in project: Class type definition stored in member VI?

    Hi,
    I'm wondering: why does LabVIEW show changes in a member VIs of a class when I only change the type definition (cluster) of the class in way that the member VI has nothing to do with the changes?
    Example:
    Class A{
      int a;
      int b; //new! -> changes in A.lvclass and A.ctl
      incr(){ this.a++;} //why incr.vi needs to be updated/saved upon adding b?
    Strangely enough, when I don't save the changes and close the project, everything looks fine after re-opening the project (no broken VIs etc.), but the issue with the unsaved changes remains.
    The thing is that I don't want to upload "fake" changes into our configuration management system as my colleagues would think that I really did changes to the VIs.
    Thanks!
    Peter

    Peter,
    it seems to me that the issue is connected to association or containment. Did you incorporate that in your small example?
    Does it happen if you previously mass compile the VIs before you add the dummy item to the class' private data?
    Currently, it seems more like a bug if indeed all items have "separate compiled code" set (e.g. in the project).
    Is it possible that some single items have that option disabled? Remember: Setting the option in the LV options or the project properties, it refers to NEW items. Existing items are not changed by that "global" settings.
    Norbert
    EDIT: You can write a small tool to check this. Make the project path the input parameter, use VI Server to load that project and load all items and query the "separate compiled code" option. If an item has the option disabled, you might want to extend the tool to change the setting and save that item. Remember that the setting is available for more than 'only' VI-files!
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • New type of questopns

    i need new type of Questions, a matrix with multiple text boxes in row? is it available or how we can build one?

    Hi,
    We don't yet support this.  This idea has been suggested in our ideas section.  I suggest you vote for it there, as we do look at the ideas section when deciding what new features to work on.  Here's links to ideas that have been suggested:
    http://forums.adobe.com/ideas/1046
    http://forums.adobe.com/ideas/1709
    Thanks,
    Todd

  • Can't get the New Entry Definition "FAMILY" Template

    Hello,
    I'm Trying to create a New entry Definition form to create tasks in a folder where I need to add some custom fields for each created task.
    The problem is that when I choose "Folder" - "Form/View Designers", later "New" - "Entry Definitions", no matter what Entry Family I choose, allways I got the same "template" with the next fields:
    - Title
    - Guest
    - Description
    - Attachments
    - Buttons
    For me, those are the fields for a "File" Entry family type and not for a "Task" Entry family type.
    I had logged into the system as administrator, and opened the "Form/View Designers", "Entry Definitions", and looked into the "Task entry (_taskEntry), and looked so much different, with so much more fields like:
    Title
    Description
    Status
    Due Date (start_end)
    Priority
    Assigned to
    Status
    Completed %
    Is very difficult to create all those fields from the scratch, I think there must be a way to create a "New Entry Definition" taking the "tasks" fields template...is there a way to do that?....
    To check if my system installation wasn't the problem, I logged into vibe.novell.com and tried to create a new task entry definition, and got the same template.
    Thank you in advance!

    The entry family has nothing to do with predefined fields. If you want the same fields like Task entry, then use copy option of the task definition.
    Regards
    Pawel

  • Delay when applying large, hierarchical type definitions

    Hello,
    I searched around using various terms, but couldn't readily find posts on what I'm experiencing.
    Has anyone else noticed huge delays when applying large, hierarchical type definitions?  I've got about a dozen nested type definitions of clusters, each containing anywhere from 10 to 100 controls, and they're used throughout a large application.  When I open any member of that hierarchy, make a small change, and hit apply, I see the hourglass (spinning ring of death in Vista/7) for a good two to five minutes.
    A short term workaround has been to close all dependent VIs and typedefs, and then make an isolated edit.  Then, if I open the whole application again, I see some compiling taking place, but it seems to take a lot less time than when the whole application is open.
    I could have sworn that I read a discussion by some others commiserating about this at some point, but now I can't find it.
    Has this been addressed, and has anyone heard if there's any development effort to improve this?
    Thanks,
    Jim

    Hi Fred,
    Thanks for getting back to me on this.
    > You could use more specific typedefs and not a massive one to pass data through VIs.
    It's funny, I've actually adopted using larger typdefs in the last year or two for architectural simplicity, and that's when I've noticed this becoming a problem. In fact, for what it's worth, right now I'm using a data reference to store the "data dictionary" (large typedef) but that doesn't really help the issue.
    From an architectural sense, it makes things easier for me because I have much fewer wires to pass around most of my data is in one place.
    > Or you could pass a queue reference to the subVIs and have the queue be made of of elements that are the large type definition.
    Actually, I'm using a data reference right now, which is somewhat analogous to what you're suggesting. (Maybe not? I also use queues and notifiers depending on the situation.) I haven't really seen this technique help the issue; I'm still noticing the large delays, but only when editing the typedefs.
    The only way I've really found relief is to separate the large typedef into smaller ones and pass them around separately. This is kind of a pain because it means I have many more references to data structures to keep track of.
    > If this is causing major problems, let me know, and I'll pass along your concerns to R&D.
    Actually, if I'm to be honest, it really is starting to become a hassle. I hit apply and end up working on something else for a few minutes while the compiler chugs away. I'd be really interested in an improvement in this area. If it makes things easier, I can discuss this via email and upload an application I'm working on as an example. (Multiple large apps I'm working on exhibit this behavior)
    Thanks again for your help.
    Regards,
    Jim

  • Type definition and reference

    Hello,
    when I look at the "Usage" column in the Types view, am I right to assume that the first location given for a type is where the type is defined, all others where it is referenced?
    Example:
    Name                 Type                           Version    Usage
    OMS_StdQueueInput    Container, Type Definition     0.0.0.4    OMS_Types.ini; OMS_LocalTypes.ini; OMSStart.seq    No comment
    So here I would assume, that the type OMS_StdQueueInput is defined in OMS_Types.ini and used/referenced in OMS_LocalTypes.ini and OMSStart.seq. Is that correct?
    Regards,
    Peter
    Solved!
    Go to Solution.

    By INI file do you mean a TestStand Type Palette File?
    A new feature was added to TestStand (in 4.1 I think so you should have it) that allows you to control when automatic conflict resolution (choosing the highest version of  a type silently) occurs. The setting is located on the File tab of the Station Options dialog and is called "Allow Automatic Type Conflict Resolution". In general, I recommend changing it to the slightly more restrictive setting of "Only If a Type Palette File has the Higher Version" because this will get rid of the possibility of automatic conflict resolution when opening two sequence files with different versions of a type when the type does not exist in a type palette file. But if your type will always be in a type palette file then the default setting is fine.
    First, some background information.
    Automatic Type Conflict Resolution - This occurs when a file is opened whose type is different from the version already loaded into memory, and the criteria for automatic resolution is met (i.e. the station option setting allows it, neither verison of the type is marked as modified, and the different versions of the type have different version numbers). When automatic resolution occurs TestStand automatically chooses the version of the type with the highest version number.
    Let me know if you want me to explain other terms.
    What I'd recommend for type management:
    1) Create a type palette file for your standard types. Make sure all deployed and development systems are using/loading this type palette file. If you need more details on how to do this please let us know.
    2) Control updates to these types using a source code control system to control updating of the type palette file(s). Ideally, only one person should be editing a type palette file at a time. Source code control systems can be used to enforce this.
    3) Let your developers know that they should only edit types in the type palette files and not in individual sequence files.
    4) Try to make all changes to your types and substep code backwards compatible so that old sequences will continue to work with newer versions of the types. If you have to break backwards compatibility, consider creating a new type instead and use the new type from now on, but leave the old type there for backwards compatibility (you can use flags to hide the old version of the types from the insert menu if needed).
    If you use a type palette file in this way I think you will get something close to what you are asking for. With the default setting for "Allow Automatic Type Conflict Resolution", if all of your TestStand systems are loading your standard type palette files then you will either get the version in the type palette file or your will get a type conflict dialog if the version in the sequence file is newer. There will be no possibility of silently using a version other than the one in the type palette file. Is this sufficient for your needs or are you looking for something different. If you are looking for something different please let us know the specific behavior you require.
    Hope this helps,
    -Doug

Maybe you are looking for