BookmarkSubscribeRSS Feed
FrankPoppe
Quartz | Level 8

Hi,

I was wondering about the relation and meaning of the TypeDefinition objects in the metadata, and the PublicType attributes of other metadata objects.

 

It now seems to me that the TypeDefinition objects can be considered as metadata on the metadata, in the sense that it lists those objects that have an independent position in the folders tab of a SAS client (DI Studio, SAS Management Console).

 

A TypeDefinition object has (a.o.) attributes Name, MetadataType and TypeName.

Objects of a particular TypeDefinition (e.g. Name="User") can then be found by looking for objects of type MetadataType (for User that is 'Person) with the PublicType attribute set to TypeName (in this case 'User').

(The TypeName attribute of a TypeDefinition object often is equal to the Name, but not always.)

 

This all sounds confusing, I am afraid, and I could explain why I am interested, but that would only confuse it more...

 

 

8 REPLIES 8
PaulHomes
Rhodochrosite | Level 12

Hi Frank,

 

Not sure if you have seen these pages, but there is some intro documentation for this in the SAS(R) 9.4 Metadata Model: Reference:

I have been referring to these 2 distinct but interrelated metadata object type sets as model types and public types - though looking through more recent documentation perhaps logical types might be a better term than public types - that will be a hard habit to break 🙂

 

We refer to that metadata about metadata so much that we created a Metacoda Plug-in to browse it - the Public Types Explorer (it's one of our freely available ones). I wrote about it in this blog post a few years ago: Public Types Explorer. All of the attributes you see in the documentation are available as columns in that plug-in - by default we only show the subset that are of most interest to us but the other are easily added. At the time it was mostly as a way of finding which permissions were applicable to the various metadata object types.

 

Hope this is useful.

 

Cheers
Paul

FrankPoppe
Quartz | Level 8

Hi Paul,

Thanks. And sorry for not reacting sooner.

 

I had looked at those links, but read them again and some things are a bit clearer now. 

So, the descendants of the PrimaryType are the objects that can be instantiated independently. But not all of them are used in a PublicType definition. And if there is one, the metadata type is sometimes used without the PublicType attribute set (e.g., most Tree objects have the PublicType set to Folder, some to Folder.SecuredData, but I see also some without the PublicType attribute set).

 

And there are (at least) three places where metadata on the metadata can be found.

  • You have meta-metadata in the form of metadata objects: the PublicType objects.
  • But there is also meta-metadata that you can query but cannot be found as an object: the properties (attributes and associations) that can exist for an object.
  • And there is meta-metadata in the documentation that cannot be retrieved programmatically, like the possible values of an attribute (e.g. SASColumnType for a Column object). That is, I do not know how to determine that through a query.

And, although I do not know if that is ever been done, one could create ones own PublicTypes? 

 

That triggers another question (a bit off-topic, but this is my own topic anyway Smiley Happy). For PublicTypes the DefaultIcon is defined. But in e.g. the Metabrowse screen of a SAS Foundation session, or in the Metacoda metadata explorer, also all other objects (primary and secondary) have their icons. Where are those icons defined? This in fact is, for now, a fourth category of meta-metadata: information I cannot find at all Smiley Frustrated.

 

PaulHomes
Rhodochrosite | Level 12

Hi Frank,

 

Yes, public types are optional subsets within model types. Another example of a model type appearing without a public type are Portal permission trees - they are Tree model types but have no Folder public type (which I guess is why they don't appear in the SAS MC Folders tab - but can be found within the Authorization Manager)

 

Regarding "meta-metadata in the documentation that cannot be retrieved programmatically" it can be retrieved programmatically depending on the API you are using - the Java API classes make this info available and we make use of it in our Metadata Explorer plug-in.

 

I have not attempted to create any additional public types - only consumed the ones that SAS provides. Whilst it might be possible to add them into metadata (using the existing ones as examples), I don't know how all of the existing SAS applications and solutions might handle finding extra 3rd party ones. You may notice that some public types have Java class specifications - I haven't looked into how/where they are used and don't know if there is a documented API for them.

 

Most of the icons specified in DefaultIcon can be found in the sas.icons.jar which can be found in the SAS Versioned JAR Repository. There have been a few cases where we have overridden the DefaultIcon value in our plug-ins due to typos or finding the icons normally used for that type in SAS Management Console is different to what is specified in DefaultIcon.

 

Cheers
Paul

 

 

FrankPoppe
Quartz | Level 8

Hi Paul,

 

Regarding creating new Public Types, that might be useful when one wants to store specific information in e.g. a TextStore or a TimeStamp object (e.g., last time accessed by my application). The objects containing that information then can be selected easily.

I'd guess that where the PublicType is not taken into account, the SAS interfaces will show those objects like any other object of that model type. Where objects are shown on the basis of the PublicType they will be ignored, of course.

(But this is just a sideline, out of curiosity. I don't have concrete plans in that direction.)

 

Regarding the icons, I can find them in that Jar repository. But there are lots of object types for which the DefaultIcon attribute is not set. The icon is there, but how do I know which icon to use? (Except by looking at the SAS interfaces, browsing through the icons, and creating a list by hand.)

 

Cheers,

 

Frank

PaulHomes
Rhodochrosite | Level 12

Hi Frank,

 

I don't remember having to override the icons for many public types so I just had a look at our SAS 9.4 M5 environment using the Metacoda Public Types Explorer and can only find 3 types without a DefaultIcon:

  • Column hierarchy
  • Decision Logic
  • Service

How many do you have with no DefaultIcon and which ones? Which SAS version and maintenance? I see a total of 191 public types in our SAS 9.4 M5 environment. How many do you have? I think the collection of public types will change depending on which SAS products and solutions you have installed (and versions of course). For example our SAS VA 7.4 (9.4 M4) has a total of 182 public types (and the same 3 public types with no DefaultIcon).

 

Cheers

Paul

FrankPoppe
Quartz | Level 8

Hi Paul,

 

I wasn't exact enough in my question about the icons.

Yes, for PublicTypes the icons are defined through the DefaultIcon attribute in the TypeDefinition object for that PublicType.

 

But 'model types' also have their own icons (in e.g. the Metabrowse window in a SAS Foundation session, and elsewhere).  I suppose (?) that these icons are also present in a jar-archive and I was more or less expecting to find those icons defined somewhere as well, but I cannot find that.

That was what I was looking for.

PaulHomes
Rhodochrosite | Level 12

Ah .... I didn't realise you were looking for icons for the model types. I don't have an easy answer for that one. We use a mapping that we derived ourselves (referring to a mixture of public type icons and some of our own specific/generic icons).

 

In terms of the display of icons for model types in SAS products, I can only think of 2 places where you would see them: metabrowse in DMS and the SAS Management Console Authorization Manager plug-in (Resource Management > By Type). The first use old DMS-style icons and the second uses a single generic icon. From my SAS/AF coding days, I vaguely remember the old DMS-style icons were in a SAS catalog somewhere.

FrankPoppe
Quartz | Level 8

OK, this then seems to be the category of meta-metadata that is not available Man Sad

 

Since I will start in september on a project to move applications in Program Entries from mainframe to Windows, I will have ample opportunity to look at those catalogs!

Although I still intend to see whether turning them into a web-based application using SCL-entries wouldn't be a more appealing option for the client.

 

Thanks for sharing your thoughts on this topic!

suga badge.PNGThe SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment. 

Join SUGA 

CLI in SAS Viya

Learn how to install the SAS Viya CLI and a few commands you may find useful in this video by SAS’ Darrell Barton.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 8 replies
  • 2801 views
  • 10 likes
  • 2 in conversation