l Leonid
on

 

Dear all,

I am validating define.xml 2.0 and getting this issue, "Missing Value Level metadata for QVAL in Dataset <dataset>" for all my SUPPQUAL datasets, and I cannot figure out why. Here's the definition of SUPPAE.QVAL:

<ItemDef OID="SUPPAE.QVAL" Name="QVAL" DataType="text" Length="7" SASFieldName="QVAL">
<Description>
<TranslatedText>Data Value</TranslatedText>
</Description>
<def:ValueListRef ValueListOID="SUPPAE.QNAM"/>
</ItemDef>
 

It does reference the value list with ID "SUPPAE.QNAM". This value list is defined too:

<def:ValueListDef OID="SUPPAE.QNAM">
<ItemRef ItemOID="SUPPAE.QNAM.AEENRF" OrderNumber="1" Mandatory="No" Role="Timing">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEENRF"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT1" OrderNumber="2" Mandatory="No" Role="Record  Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT1"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT3" OrderNumber="3" Mandatory="No" Role="Record  Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT3"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT4" OrderNumber="4" Mandatory="No" Role="Record  Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT4"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT5" OrderNumber="5" Mandatory="No" Role="Record  Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT5"/>
</ItemRef>
<ItemRef ItemOID="SUPPAE.QNAM.AEACT6" OrderNumber="6" Mandatory="No" Role="Record  Qualifier">
<def:WhereClauseRef WhereClauseOID="Where.SUPPAE.QNAM.AEACT6"/>
</ItemRef>
</def:ValueListDef>
 

What could be the problem?

Thanks a lot!

Leonid

 

 

 

Forums: Define.xml

d Dmitry
on August 26, 2017

Hi Leonid,

Is it possible that you have an ItemDef element with OID "SUPPAE.QNAM"? If so, I guess that may cause the issue as OID should be unique within MetaDataVersion element.

Although there is no required naming convention for OIDs, the approach used in Define-XML 2.0 specification is a good one and can help to avoid issues. If it was used, the ItemDef OID for QVAL would be "IT.SUPPAE.QVAL" and ValueListDef OID for it would be "VL.SUPPAE.QVAL".

 

 

s Sergiy
on August 28, 2017

Hi Leonid, 

Your sample code is not enough for diagnostics.

While defining Value Level Metadata you need to have 4 diffrent sections.

  • QVAL variable has a reference to ValueList (3) -> (1)
  • Each item in Value List has a reference to WhereClause (1) -> (2)
  • Value Level item is defined by ItemDef element (4)

Here is an example:

(1)
<def:ValueListDef OID="VL.SUPPAE.QVAL">
    <ItemRef ItemOID="IT.SUPPAE.QVAL.SUPPAE.QNAM.AETRTEM" OrderNumber="1" Mandatory="No" MethodOID="MT.AETRTEM">
        <def:WhereClauseRef WhereClauseOID="WC.SUPPAE.QNAM.AETRTEM"/>
    </ItemRef>
    ....    
</def:ValueListDef>

.....

(2)              
<def:WhereClauseDef OID="WC.SUPPAE.QNAM.AETRTEM">
    <RangeCheck SoftHard="Soft" def:ItemOID="IT.SUPPAE.QNAM" Comparator="EQ">
        <CheckValue>AETRTEM</CheckValue>
    </RangeCheck>
</def:WhereClauseDef>

.....         

(3)         
<ItemDef OID="IT.SUPPAE.QVAL" Name="QVAL" DataType="text" Length="60" SASFieldName="QVAL">
    <Description> 
        <TranslatedText xml:lang="en">Data Value</TranslatedText>
    </Description>
    <def:ValueListRef ValueListOID="VL.SUPPAE.QVAL"/>
</ItemDef>

.....

(4)

<ItemDef OID="IT.SUPPAE.QVAL.SUPPAE.QNAM.AETRTEM" Name="SUPPAE.QNAM.AETRTEM" DataType="text" Length="1" SASFieldName="QVAL">
    <CodeListRef CodeListOID="CL.NY"/>
    <def:Origin Type="Derived"/>
</ItemDef>
....

Regards, 

Sergiy

r Radhika
on May 14, 2024

High risk of Truncated value SD1096 

Even when the variable is precisely 200 in length, this error persists. Could Pinnacle read supplementary variables in case truncation doesn't occur?

j Jozef
on May 14, 2024

Presumably "false positive" ...
I think that the algorithm (falsely) assumes that when the 200th byte is a non-blank, there should come more ...
And "High risk" is a stupid message ... How can such an algorithm even try to quantify a risk ...

Time to get rid of 40-year old SAS-XPT anyway ...

Want a demo?

Let’s Talk.

We're eager to share and ready to listen.

Cookie Policy

Pinnacle 21 uses cookies to make our site easier for you to use. By continuing to use this website, you agree to our use of cookies. For more info visit our Privacy Policy.