<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Autocall macro library in EG / BI server in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78940#M7782</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, I agree with Chris. If you use INSERT, I think you'll be OK. I would recommend that you pick some naming convention for your macros to prevent colliding with any other macros by haviing a unique name, then you should be OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 09 Jun 2012 00:26:36 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2012-06-09T00:26:36Z</dc:date>
    <item>
      <title>Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78933#M7775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm a bit confused about how to define autocall macro libraries in EG/ BI server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;If I open EG (connecting to linux server) and do %put %sysfunc(getoption(sasautos)) I get&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;( "SASEnvironment/SASMacro" '!SASROOT/sasautos' )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;So !SASROOT/sasautos is the usual environment variable pointing to .../sasautos, which has the autocal macros SAS provides (%left etc).&amp;nbsp;&amp;nbsp; It points to the same directory as the SASautos fileref.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;But what is SASEnvironment/SASMacro pointing to? I'm not finding it on the server (and not sure where to look).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;I ask because I wanted to add my own personal autocall library to the search path.&amp;nbsp; Was planning to do this by adding:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;options sasautos=("/home/mymacros/" sasautos);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;As code to be submitted when server is connected.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;But before I do that, wanted to make sure that there aren't any macros in "SASEnvironment/SASMacro" that I need (in which case I would need to keep this in the search path).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;Thanks,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"&gt;-Q.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 17:57:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78933#M7775</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2012-06-08T17:57:10Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78934#M7776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi:&lt;/P&gt;&lt;P&gt;&amp;nbsp; I would not recommend tampering with the location of the SASAUTOS, especially in a BI configuration. Generally, the autocall macro library, along with the SAS formats location is defined to your servers -- you do not want to tamper with this. Even if it's empty, right now, you can't guarantee that your admin person won't drop a macro in there that needs to run under certain circumstances.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; On my single user install, for example, my location is defined down in the Lev1 folder like this&lt;/P&gt;&lt;P&gt;(Windows install, local machine, no remote servers):&lt;/P&gt;&lt;P&gt;c:\SAS\Config\Lev1\SASApp\SASEnvironment\SASMacro&lt;/P&gt;&lt;P&gt;and there are these other directories, too:&lt;/P&gt;&lt;P&gt;c:\SAS\Config\Lev1\SASApp\SASEnvironment\SASFormats&lt;/P&gt;&lt;P&gt;c:\SAS\Config\Lev1\SASApp\SASEnvironment\SASCode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; In the above, SASApp is the name of my application server context -- so this piece of the name might be different. The high level part of the path should be different, too. I would recommend that you speak with your SAS Administrator and/or Tech Support before altering your autocall path in a BI Platform install.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 20:18:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78934#M7776</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2012-06-08T20:18:59Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78935#M7777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Cynthia,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Would you even recommend against just pre-pending a path to the current autocall search path (like this &lt;A href="http://listserv.uga.edu/cgi-bin/wa?A2=ind0210e&amp;amp;L=sas-l&amp;amp;H=1&amp;amp;P=7860"&gt;macro &lt;/A&gt;from Peter Crawford)? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That is, use soft code to determine the current autocall option in effect from whatever the SAS admin has defined, in my case would return:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"&gt;&amp;nbsp; ( "SASEnvironment/SASMacro" '!SASROOT/sasautos' )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And then pre-pend my personal autocall library to that:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"&gt;&amp;nbsp; ("/home/mymacros"&amp;nbsp; "SASEnvironment/SASMacro" '!SASROOT/sasautos' )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"&gt;?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"&gt;In non-BI SAS, I think lots of people are in situations where there are hierarchies of macro libaries (SAS supplied-&amp;gt;Corporate Macros-&amp;gt;Project Macros), would be a shame in BI to give up on having project-specific autocall libraries.&amp;nbsp; (And I would feel the same for pre-pending to fmtsearch to look for project-specific formats before looking for any server-level formats defined by an admin).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;--Q. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 20:47:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78935#M7777</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2012-06-08T20:47:27Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78936#M7778</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Actually just realized SAS recently made pre-pending easier without needing Peter's lovely macro.&amp;nbsp; You can put insert on the options statement.&amp;nbsp; This doesn't seem risky for BI, does it?&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;1 %put %sysfunc(getoption(sasautos));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SASAUTOS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 options insert=(sasautos="c:\mymacros");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3 %put %sysfunc(getoption(sasautos));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;('c:\mymacros' SASAUTOS)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 20:58:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78936#M7778</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2012-06-08T20:58:15Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78937#M7779</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Quentin, I think that's exactly what INSERT= was designed for.&amp;nbsp; As long as your macros won't (unintentionally) obscure any of the others in the path, I think you're good.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 21:01:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78937#M7779</guid>
      <dc:creator>ChrisHemedinger</dc:creator>
      <dc:date>2012-06-08T21:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78938#M7780</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Chris -&lt;/P&gt;&lt;P&gt; What is the answer to the original question.&amp;nbsp; What is the &lt;SPAN style="background-color: #ffffff;"&gt; "SASEnvironment/SASMacro"&lt;/SPAN&gt; directory that is appearing the SASAUTOS option setting?&lt;/P&gt;&lt;P&gt;Where is it located?&amp;nbsp; Since it does not start with a / it appears that it is a subdirectory of the current working directory.&amp;nbsp; What directory is the current working directory for SAS code submitted through EG?&amp;nbsp;&amp;nbsp; What is creating the directory?&amp;nbsp; What macros are stored in there?&lt;/P&gt;&lt;P&gt;- Tom&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 22:20:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78938#M7780</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-06-08T22:20:14Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78939#M7781</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For years I have seen systems build using that bottom up search path.&amp;nbsp; &lt;/P&gt;&lt;P&gt;For example you might have an application in SAS that has task directories nested in project directories so you might have a search path of &lt;/P&gt;&lt;P&gt;options sasautos=("&amp;amp;mytask" "&amp;amp;myproject" "&amp;amp;myapplication" sasautos);&lt;/P&gt;&lt;P&gt;The advantage is that your "local" level can override the definition of macros defined at higher levels.&lt;/P&gt;&lt;P&gt;Of course this is also a dis-advantage as a program for TASK1 might not work when moved to TASK2 because a common macro was redefined.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have been thinking lately that it might be better to reverse that search path.&amp;nbsp; Put the SAS supplied macros first and most local macros last.&lt;/P&gt;&lt;P&gt;Then you cannot override a macro defined at a higher level (at least not without explicitly writing or including the macro definition).&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 22:27:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78939#M7781</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-06-08T22:27:17Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78940#M7782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, I agree with Chris. If you use INSERT, I think you'll be OK. I would recommend that you pick some naming convention for your macros to prevent colliding with any other macros by haviing a unique name, then you should be OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 Jun 2012 00:26:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78940#M7782</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2012-06-09T00:26:36Z</dc:date>
    </item>
    <item>
      <title>Re: Autocall macro library in EG / BI server</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78941#M7783</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks much everyone. Lots to respond to.&lt;/P&gt;&lt;P&gt;@Chris and @Cynthia, appreciate your weighing in that INSERT feels safe. Glad to hear it.&amp;nbsp; And appreciate Cynthia warning me against being bold enough to completely redefine sasautos.&amp;nbsp; Seems like better to respect the SAS admin. : )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Tom re SASEvenvironment/SASMacro, Thanks for the hints as to where I should look for SASEnvironment/SASMacro.&amp;nbsp; You are correct, /SASEnvironment is a subdirectory of the current working directory.&amp;nbsp; Because we have the X statement enabled, It was easy for me to find the working directory with just "x PWD;" whch revealed the working directory for my session in the server is [SAS-config-dir]/Lev1/SASApp.&amp;nbsp; In there I see /SASEnvironment/SASFormats , /SASEnvironment/SASMacro , and /SASEnvironment/SASCode.&amp;nbsp; I think /SASFormats is for format catalogs defined on the server (see e.g. &lt;A class="active_link" href="http://support.sas.com/kb/40/103.html"&gt;http://support.sas.com/kb/40/103.html&lt;/A&gt;, which describes how this directory gets added to fmtsearch in the default install), and /SASMacro is the default server autocall library (for admins to add macro definitions that should be available to every sever session).&amp;nbsp; In my case, both are empty.&amp;nbsp; It looks like /SASCode has code for scheduled DI jobs. So this helps me understand Cynthia's point: if one day my admin did start adding macro definitions, I would want to them to be available to my programs.&amp;nbsp; So completely redefining sasautos to exclude this directory would be a mistake.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Tom re whether best order for sasautos search is&amp;nbsp; (/project /corporate /SAS_supplied) or (/SAS_supplied /corporate /project), I'm a believer in the former.&amp;nbsp; When I was responsible for setting up an install a year or so ago, I looked to SAS-L for some advice on this.&amp;nbsp; I was convinced after a few emails that (/project /corporate /SAS_supplied) is the better option.&amp;nbsp; Main points being that if you use the (/SAS_supplied /corporate /project) approach, any time there are additions to either the SAS_supplied or corporate macro libraries, you risk breaking your user's programs if there is a collision in macro names.&amp;nbsp; People don't like when their programs work one day and not the next.&amp;nbsp; So I think it's better to give the user's code priority.&amp;nbsp; This puts more power in the hands of users, even allows them to redefine/hijack corporate standard macros if they want. Of course the name collision still can cause confusion (I look at the code for project X and assume the call to %MAC is the corporate standard %MAC, not knowing that it has been redefined), but at least the program works.&amp;nbsp; The thread is: &lt;A href="http://listserv.uga.edu/cgi-bin/wa?A2=ind1101c&amp;amp;L=sas-l&amp;amp;D=0&amp;amp;O=A&amp;amp;P=36772"&gt;http://listserv.uga.edu/cgi-bin/wa?A2=ind1101c&amp;amp;L=sas-l&amp;amp;D=0&amp;amp;O=A&amp;amp;P=36772&lt;/A&gt; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;&lt;P&gt;--Q.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 09 Jun 2012 04:25:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Autocall-macro-library-in-EG-BI-server/m-p/78941#M7783</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2012-06-09T04:25:09Z</dc:date>
    </item>
  </channel>
</rss>

