About a year ago (wow, has it been that long?), I posted an example program that lets you report on the contents of a SAS information map. Using my example, you can see the data items, filters, and folder structure within a given information map.
Last week a reader posted a comment, wondering how to also learn the names of the SAS tables that contribute to the SAS information map's definition. I know that you can't get to that information using the information map dictionary tables, but I did learn that it is possible using PROC INFOMAPS and the LIST statement.
Here is an example that relates to the information map that I reported on earlier:
proc infomaps; update infomap "Cars" mappath="/Shared Data/Maps"; list datasources; run; |
The output goes to the SAS log:
Total datasources: 1 Data source: Sample Data.CARS_1993 ID: CARS_1993 Name: CARS_1993 Description:
Wow, I guess that was a pretty simple information map, with only one data source. I'm sure that you can come up with more complex examples.
6 Comments
Hey there, Chris.
Question: Can we control whether or not we *want* the users to have this capability to view the underlying data structures (albeit metadata structures)?
(As we know) InfoMaps are effectively simplified business views of potentially complex data.
I can think of good cases for both sides of this discussion.
Looking forward to catching up with you when you are next Down Under.
Andrew,
I *knew* that someone would ask about this! No, I don't think there is a way to prevent a user from accessing this information via PROC INFOMAPS...as long as they have the capability to run a SAS program. (Thus SAS Web Report Studio users, and even SAS Add-In for Office users, would find it difficult to achieve from within those applications.)
As long as you have READMETADATA access to the Info Map, which you must have in order to use it, I think you can see this information as well.
(Will be Down Under at various venues during August...perhaps I'll run into you at one of the SAS events.)
Great Info!
Can any one tell me how to update the sas information map given that the data souce .i.e. the sas table for the map is updated. I want my SAS wrs to get fresh numbers, very month once the sas table is refreshed as well as the info map.
Thanks in advance!
Cheers!
An information map is a business *view* of the data. This definition doesn't contain the actual data values - those reside in the source tables (or are calculations defined in the map). As long as your source tables are updated periodically (for example, every month), then there is no additional action needed. Any user of SAS Web Report Studio will always see the latest numbers.
Chris,
Is there a way to have SAS generate the proc infomap code used to create the infomap. Example: boss created an infomap a while ago. I want to see what the code would have been if it were generated using proc infomap instead of SAS Information Map Studio.
Sumner
Sumner,
I don't think there is a way to "reverse-engineer" an infomap into a PROC INFOMAPS step. While PROC INFOMAPS allows you to do a lot of things, I believe that some features of Information Maps (supported by SAS Information Map Studio) are not accessible by this syntax. I think the best you can do is to report on the construct of the map -- data items, tables, and so on. When you use the SASIOIME engine to "assign" an information map library (as EG does when you open a map), there are dictionary tables that reveal lots of information about what the map contains. You can use the EG approach as a guide.