12-21-2011 01:26 PM
I am new to SAS EG and we have a number of EG projects. These projects can have quite a few code blocks (sas code) and would like to know of a way where a programmer could search through the code blocks looking for specific text strings or variable names.
I have tried using WINZIP to open up an EG project but all the code blocks have the name of "code.sas" and unable to save these code blocks within a specific directory because they all have the same name and I really do not want to have to rename each code.sas to another name. If I was able to save these all in a single directory then I can use search tools to do what I would like to do.
It would really be nice to have this feature built into SAS EG project but have not been able to find such a utility. It would be nice to have a feature for SAS code much like the "Project LOG" - to be able to see all the code in a single window/view to do a search.
Any help would be great.
12-21-2011 01:46 PM
I, too, am new to EG, but think that making the code segments so that they ARE NOT embedded will allow you to search through them like you would with any regular SAS code.
12-29-2011 05:10 AM
If this is kind of a "once-off" then you could just export the whole projects as code (file/export/export all code in project...).
If you want this to do this on a regular bases then I think you need to use the project.xml file in the .egp zip archive as starting point to kind of mimik what the export does for you - or you try to figure out what "export all code in project..." is actually doing and if you're able to call this "module" from outside EG with something like VB. Not my area though but may be someone can tell you more.
01-05-2012 09:51 AM
I've done as Patrick says myself, as a one-off.
7-zip allows you to extract multiple EGP files at once into folders named after each project, and maintains the structure within the .egp zip format files. This allows you to extract all of the code.sas files, as they're actually split into seperate files. The normal windows search function then allows you to search through all the files for the keywords you're looking for.
It's not ideal for anything but a one-off exercise mind you. Also I couldn't see a way to tie the code.sas file with its name in the EG project - I guess it's stored in project.xml somewhere though...
01-10-2012 11:14 AM
A way to get all the code from a process flow is from the Create Stored Process wizard. Then you could just search in one code node (Program).
Right-click your process flow in the Project Tree
Choose "Create Stored Procss"
Click NEXT in the wizard (don't worry about any parameters, this will be cancelled)
Copy all the code (Ctrl-A will select all)
Paste in a code node (Program)
12-25-2014 08:15 AM
Chris Hemedinger of SAS Institute provided me with a solution that works. The code/tool to do this is located at this URL - http://blogs.sas.com/content/sasdummy/2013/01/25/egp-search-tool2/
You can download the tool on your Windows Platform and run the code without having to get your IT people involved.
Thanks Chris for the tool and making it available to all.
12-25-2014 08:53 AM
Charles still wondering what:
- you do mean with Without IT people involved?
In a professional organization desktops are closed ones and are as the server being monitored on not allowed changes.
As Eguide in dependent on the Windows registry and you have to change the installation of EGuide I am seeing a contradiction.
- What is your goal with that search-tool?
As not all code is needing to be present in EGP project it can contains links to where the code really is.
It can be even located on a server and being under control of release management by that having underpinned the used version.
12-25-2014 12:53 PM
Unless your desktop/laptop is restricted to add software, you can install Chris' tool on your desktop without having to involve IT folks.
My goal is to find/replace text strings within EG projects. Not all people who code EG projects use links to outside code. And when you have over 4000 EG projects to monitor or maintain then finding text strings is EXTREMELY cumbersome. Ideally, I would have liked a FIND and REPLACE tool. But Chris Hemedinger's tool can at least find the text string and provide an output that can be used as a check off list so if changes are needed, you can keep track of what changes are needed.
As for all code not being within EG projects, I can still do a text string search using existing tools outside of EG. That is a minor task compared to opening each and every EG project, searching through each program node for a specific string.
I understand in the newer version of EG (7?) that there will be a search facility but it will not currently allow you to search other EG projects without opening each one. Eventually, I will HOPE that SAS Institute will have such a tool as Chris' to make maintenance easier, including a FIND and REPLACE within an EG project but also able to do this outside of an EG project without having to open it first.