BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ErikLund_Jensen
Rhodochrosite | Level 12

Hi Community

 

I don't know if this question belongs in this community or in administration, so please forgive me if I have choosen the wrong place.

 

After updating to EG 8.2 we get complaints from users, because their projects fail with "invalid SAS name" errors. It turns out that the previous version had the option ValidMemName=Extended set by default, and many users have spaces, national characters etc. in their data set names.

 

We don't want to enable extended names again, but we would like to spare our users from the tedious work of changing all existing projects. So I am looking for a way to identify and change names in EG projects. It wouldn't be difficult to write a program to identify and change names in DI Studio metadata and rename the disk files as well, but I have no idea of how to do it in EG projects. Is it possible?

 

1 ACCEPTED SOLUTION

Accepted Solutions
ChrisHemedinger
Community Manager

First, check that Tools->Project Maintenance won't do what you need.  That tool can rename libraries and servers in a project, but I'm not sure that it can do individual data sets.  If it does, you can use the Migration Wizard (included in the install path with SEGuide.exe) to do the renaming in batch across many project files.

 

If you get desperate...  It's a poorly kept secret that EGP files are zip compressed files with a Project.XML (which defines project contents and structure) and file assets like code, results, logs, etc.  Some customers have had success by cracking this open with a zip tool and modifying the XML.  This is not an approach that SAS documents/supports/sanctions, and if you go down this path you should make backup copies of all EGP files you touch.

SAS For Dummies 3rd Edition! Check out the new edition, covering SAS 9.4, SAS Viya, and all of the modern ways to use SAS!

View solution in original post

4 REPLIES 4
ChrisHemedinger
Community Manager

First, check that Tools->Project Maintenance won't do what you need.  That tool can rename libraries and servers in a project, but I'm not sure that it can do individual data sets.  If it does, you can use the Migration Wizard (included in the install path with SEGuide.exe) to do the renaming in batch across many project files.

 

If you get desperate...  It's a poorly kept secret that EGP files are zip compressed files with a Project.XML (which defines project contents and structure) and file assets like code, results, logs, etc.  Some customers have had success by cracking this open with a zip tool and modifying the XML.  This is not an approach that SAS documents/supports/sanctions, and if you go down this path you should make backup copies of all EGP files you touch.

SAS For Dummies 3rd Edition! Check out the new edition, covering SAS 9.4, SAS Viya, and all of the modern ways to use SAS!
ErikLund_Jensen
Rhodochrosite | Level 12

Hi @ChrisHemedinger 

 

Your Idea worked very well up to the final test. I modified an existing scanning program to identify macro calls and macro definitions in our batch jobs, and that part worked fine. But EG couldn't open my test project after rezipping and renaming. It found errors in the file format. 

 

I have only tried with the native zip engine in windows 10, so every hope isn't lost. I accept your solution because I find your idea really worth crediting, even if it didn't work in first try. Thanks.

 

Tom
Super User Tom
Super User
Why not just have them change the option in the autorun of their projects? Or is the issue that their projects are pointing to datasets outside of the project where the names of the variables (or members) have changed?
ErikLund_Jensen
Rhodochrosite | Level 12

Hi @Tom and @ChrisHemedinger 

 

Thanks for input. 

An easy solution would be to make users aware of the possibility to change local settings, But we want to prevent the use of extended names. In some cases data sets from EG projects are written to libraries defined in DI Studio to used as input in batch jobs, and data sets with extended names are not visible, i.e. cannot be registered as tables in DI Studio, even if they exist in the physical directory. So we want to get rid of of them. 

 

The unzip-change-rezip idea looks promising. I think  that if a user runs a project that fails, and then saves the project, the log with errors will be saved in the zip file also, and it could be used as a starting point to identify the names which should be changed in the SAS code file. I am not sure if table names are kept in other places in the zip folder structure also, but it is definitely worth a try.

 

I will let you know it it works.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1537 views
  • 0 likes
  • 3 in conversation