<?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: Catolog exist or not in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929567#M365759</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;"so really interested why you can't share it."&lt;BR /&gt;It is BOSS 's requirement.&lt;BR /&gt;But in reallity, It haven't been done yet.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Ah, yes, one of these requirements....&lt;/P&gt;
&lt;P&gt;Another personal opinion: I don't like the mstore, especially in a Dev environment. It needs another library that you can't hide in EG/Studio and once assigned it's really hard to change anything in the macro catalog under mstore. What I've done last time: Compile the macros into a catalog in a read only location, create an %init macro that copies the secure compiled macros into the catalog under WORK.&lt;/P&gt;
&lt;P&gt;The macro code itself was also in a read only folder with tokens for user and password. And then a macro that can be called passing user and password as parameters that then compiles all the other macros and stores them in the read only catalog (for the unlikely but certainly rare case the PW needs to change; and this process fully documented in a run book).&lt;/P&gt;</description>
    <pubDate>Fri, 24 May 2024 09:14:03 GMT</pubDate>
    <dc:creator>Patrick</dc:creator>
    <dc:date>2024-05-24T09:14:03Z</dc:date>
    <item>
      <title>Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929222#M365624</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro sort (dname, new, svar) ;
proc sort data=&amp;amp;dname out=&amp;amp;new ;
by &amp;amp;svar;
run;
%Mend;

%sort(sashelp.class, demo1,sex);


data _null_;
   if cexist("WORK.SORT") then
   put "WORK.SORT exists";
   else
   put "WORK.SORT does not exist";
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Hi Experts,&lt;/P&gt;
&lt;P&gt;here i am trying&amp;nbsp; macro catolog exist or not but its giving wrong output please check where i did wrong&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 08:13:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929222#M365624</guid>
      <dc:creator>pavank</dc:creator>
      <dc:date>2024-05-22T08:13:34Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929223#M365625</link>
      <description>&lt;P&gt;There aren't any statements in the code shown creating work.sort, so why should it exist?&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 08:16:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929223#M365625</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2024-05-22T08:16:18Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929227#M365626</link>
      <description>&lt;P&gt;in log it shows&amp;nbsp; work.sort does not exist&amp;nbsp;&lt;/P&gt;
&lt;P&gt;here i am using CEXIST function to check macro catolog SORT exist or not&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 08:40:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929227#M365626</guid>
      <dc:creator>pavank</dc:creator>
      <dc:date>2024-05-22T08:40:58Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929230#M365627</link>
      <description>1) You could use dictionary CATALOGS to check if the macro is exist.&lt;BR /&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;create table catalog as&lt;BR /&gt;select * from dictionary.catalogs;&lt;BR /&gt;quit;&lt;BR /&gt;&lt;BR /&gt;2)You also could use function fileexist() to check .</description>
      <pubDate>Wed, 22 May 2024 09:21:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929230#M365627</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-22T09:21:25Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929233#M365628</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro sort (dname, new, svar) ;
proc sort data=&amp;amp;dname out=&amp;amp;new ;
by &amp;amp;svar;
run;
%Mend;

%sort(sashelp.class, demo1,sex);


data _NULL_;
if cexist('work.sasmacr.sort.macro') then
    put "work.sort exists" ;
    else put "work.sort does not exist";
run;


&lt;FONT color="#000000"&gt;%put %sysfunc(ifc(%sysmacexist(sort), Yes %nrstr("&amp;amp;dname") Exists, %nrstr("&amp;amp;dname") Does not Exist));&lt;/FONT&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;please check&amp;nbsp; syntax&amp;nbsp;&lt;CODE class=" language-sas"&gt;&lt;FONT color="#000000"&gt;%put %sysfunc(ifc(%sysmacexist(sort), Yes %nrstr("&amp;amp;dname") Exists, %nrstr("&amp;amp;dname") Does not Exist));&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 09:54:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929233#M365628</guid>
      <dc:creator>pavank</dc:creator>
      <dc:date>2024-05-22T09:54:45Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929242#M365634</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/390518"&gt;@pavank&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro sort (dname, new, svar) ;
proc sort data=&amp;amp;dname out=&amp;amp;new ;
by &amp;amp;svar;
run;
%Mend;

%sort(sashelp.class, demo1,sex);


data _null_;
   if cexist("WORK.SORT") then
   put "WORK.SORT exists";
   else
   put "WORK.SORT does not exist";
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Hi Experts,&lt;/P&gt;
&lt;P&gt;here i am trying&amp;nbsp; macro catolog exist or not but its giving wrong output please check where i did wrong&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I cannot tell what you are trying to find.&lt;/P&gt;
&lt;P&gt;Are you trying to find out of the macro SORT exists in some catalog somewhere?&amp;nbsp; If so you are not looking for the right catalog.&amp;nbsp; Normally compiled macros will be placed in WORK.SASMACR catalog.&amp;nbsp; But if you are using tools like SAS/Studio to launch SAS then they will be placed in the WORK.SASMAC1 catalog instead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 13:54:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929242#M365634</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-05-22T13:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929316#M365660</link>
      <description>It looks like %sysmacexist() only check the user defined macro ,not built-in system macro .&lt;BR /&gt;&lt;BR /&gt;34   %put %sysfunc(ifc(%sysmacexist(scan), Yes  Exists,  Does not Exist));&lt;BR /&gt;Does not Exist&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 23 May 2024 00:07:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929316#M365660</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-23T00:07:04Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929325#M365662</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/390518"&gt;@pavank&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;in log it shows&amp;nbsp; work.sort does not exist&amp;nbsp;&lt;/P&gt;
&lt;P&gt;here i am using CEXIST function to check macro catolog SORT exist or not&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I'm a bit confused if you want to check for existence of a SAS table or for existence of a compiled macro in the macro catalog under WORK.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Below code run in a fresh new session to demonstrate the different ways to query hopefully giving you sufficient pointers for what you need.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data check_step_1;
  /* does TABLE work.demo1 exist? */
  table_exist_flg=exist('work.demo1','data');
  /* does compiled macro %sort exist as member in referenced catalog (here: work.sasmacr)? */
  macro_compiled_flg_1=cexist('work.sasmacr.sort.macro');
  /* does compiled macro %sort exist as member in catalog under WORK? */
  macro_compiled_flg_2=%sysmacexist(sort);
run;
title 'check_step_1';
proc print data=check_step_1;
run;

/* execution of the macro definition compiles the macro into the catalog under WORK */
%macro sort (dname, new, svar);
  proc sort data=&amp;amp;dname out=&amp;amp;new;
    by &amp;amp;svar;
  run;
%mend;

data check_step_2;
  /* does TABLE work.demo1 exist? */
  table_exist_flg=exist('work.demo1','data');
  /* does compiled macro %sort exist as member in referenced catalog (here: work.sasmacr)? */
  macro_compiled_flg_1=cexist('work.sasmacr.sort.macro');
  /* does compiled macro %sort exist as member in catalog under WORK? */
  macro_compiled_flg_2=%sysmacexist(sort);
run;
title 'check_step_2';
proc print data=check_step_2;
run;

/* calling the macro creates the the table as requested via parameter &amp;amp;new */
%sort(sashelp.class, demo1,sex);
data check_step_3;
  /* does TABLE work.demo1 exist? */
  table_exist_flg=exist('work.demo1','data');
  /* does compiled macro %sort exist as member in referenced catalog (here: work.sasmacr)? */
  macro_compiled_flg_1=cexist('work.sasmacr.sort.macro');
  /* does compiled macro %sort exist as member in catalog under WORK? */
  macro_compiled_flg_2=%sysmacexist(sort);
run;
title 'check_step_3';
proc print data=check_step_3;
run;
title;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1716430803466.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/96683iB94C7A162A206EA1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1716430803466.png" alt="Patrick_0-1716430803466.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 02:20:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929325#M365662</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-05-23T02:20:40Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929341#M365669</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;It looks like %sysmacexist() only check the user defined macro ,not built-in system macro .&lt;BR /&gt;&lt;BR /&gt;34 %put %sysfunc(ifc(%sysmacexist(scan), Yes Exists, Does not Exist));&lt;BR /&gt;Does not Exist&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It looks like %scan() is not a traditional macro. At least I can't find it as a member of any macro catalog under SASROOT.&lt;/P&gt;
&lt;P&gt;According to the documentation &lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/mcrolref/n0xwysoo8i2j3kn13ls4thkn3xbp.htm" target="_self"&gt;%sysmacexist()&lt;/A&gt; only searches through work.sasmacr. It would still find SAS supplied macros like %tslit() or %lowcase() that only get compiled into&amp;nbsp;work.sasmacr when called the first time in a session.&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 05:30:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929341#M365669</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-05-23T05:30:47Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929342#M365670</link>
      <description>"According to the documentation %sysmacexist() only searches through work.sasmacr."&lt;BR /&gt;That is bad new. If I stored my compiled macro at other path, %sysmacexist() does not work ?</description>
      <pubDate>Thu, 23 May 2024 05:48:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929342#M365670</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-23T05:48:11Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929387#M365694</link>
      <description>That’s how I read the docu, yes.</description>
      <pubDate>Thu, 23 May 2024 11:39:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929387#M365694</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-05-23T11:39:00Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929389#M365696</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;It looks like %sysmacexist() only check the user defined macro ,not built-in system macro .&lt;BR /&gt;&lt;BR /&gt;34 %put %sysfunc(ifc(%sysmacexist(scan), Yes Exists, Does not Exist));&lt;BR /&gt;Does not Exist&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;%SCAN() is NOT a macro at all.&amp;nbsp; It is a built in macro function.&amp;nbsp; Just like %LENGTH() and the others.&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 12:04:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929389#M365696</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-05-23T12:04:13Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929391#M365697</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;"According to the documentation %sysmacexist() only searches through work.sasmacr."&lt;BR /&gt;That is bad new. If I stored my compiled macro at other path, %sysmacexist() does not work ?&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Did you actually test whether %SYSMACEXIST() does not check in the catalog you told it to search for pre-compiled macros?&amp;nbsp; Because the documentation is wrong about only search WORK.SASMACR.&amp;nbsp; Because when you launch SAS via SAS/Studio (or other methods that spawn a new SAS session) then the compiled macros are default placed into WORK.SASMAC1 instead and the %SYSMACEXIST() macro function can find them. Try this code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro mymac; 
%put &amp;amp;=sysmacroname; 
%mend; 
%mymac; 
%put %sysmacexist(mymac); 
data _null_; 
  set sashelp.vcatalg; 
  where objname='MYMAC'; 
  put (_all_) (=/); 
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 12:18:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929391#M365697</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-05-23T12:18:17Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929491#M365727</link>
      <description>&lt;P&gt;Tom,&lt;/P&gt;
&lt;P&gt;I am using stand-alone PC version SAS, and not SAS Studio.&lt;/P&gt;
&lt;P&gt;I means if I store the complied macro at other path (not WORK library),&amp;nbsp;%sysmacexist() would not work.&lt;/P&gt;
&lt;P&gt;Check the following example to see what I mean.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;libname x 'c:\temp';
option mstored sasmstore=x;
%macro mymac/store; 
%put &amp;amp;=sysmacroname; 
%mend; 
%mymac; 

%put NOTE: %sysmacexist(mymac); 
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ksharp_0-1716510957811.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/96729i708251C9F320C093/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Ksharp_0-1716510957811.png" alt="Ksharp_0-1716510957811.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2024 00:36:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929491#M365727</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-24T00:36:06Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929494#M365728</link>
      <description>&lt;P&gt;Tom,&lt;/P&gt;
&lt;P&gt;And more ,using the code I suggested, I could get right result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Ksharp_0-1716512020395.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/96730iA1189F58C8F9AA62/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Ksharp_0-1716512020395.png" alt="Ksharp_0-1716512020395.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2024 00:53:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929494#M365728</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-24T00:53:59Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929498#M365730</link>
      <description>&lt;P&gt;So another good reason to not use stored compiled macro catalogs and instead just stick with autocall libraries.&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2024 02:18:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929498#M365730</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-05-24T02:18:56Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929530#M365748</link>
      <description>Tom,&lt;BR /&gt;But sometime we need to distribute my macro to other sas programmer,and not want to let others to see raw code,usually would secure these macro.&lt;BR /&gt;like:&lt;BR /&gt;%macro mymac/store secure;</description>
      <pubDate>Fri, 24 May 2024 06:26:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929530#M365748</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-24T06:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929560#M365757</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Tom,&lt;BR /&gt;But sometime we need to distribute my macro to other sas programmer,and not want to let others to see raw code,usually would secure these macro.&lt;BR /&gt;like:&lt;BR /&gt;%macro mymac/store secure;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;I don't believe you're someone who has to hide his code for job security so really interested why you can't share it. The only very few times I had to use secure compiled macros was for situations where I couldn't avoid having a password in the code.&lt;/P&gt;
&lt;P&gt;The only other reason I'm currently aware of for pre-compiling: Depending on the environment it can take a bit until a .sas file is found for compilation so for some interactive web application the reason for pre-compiling could be performance. I personally was never in such a situation but I also mostly implement backend processes.&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2024 08:59:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929560#M365757</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-05-24T08:59:57Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929563#M365758</link>
      <description>"so really interested why you can't share it."&lt;BR /&gt;It is BOSS 's requirement.&lt;BR /&gt;But in reallity, It haven't been  done yet.</description>
      <pubDate>Fri, 24 May 2024 08:56:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929563#M365758</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-05-24T08:56:32Z</dc:date>
    </item>
    <item>
      <title>Re: Catolog exist or not</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929567#M365759</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/18408"&gt;@Ksharp&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;"so really interested why you can't share it."&lt;BR /&gt;It is BOSS 's requirement.&lt;BR /&gt;But in reallity, It haven't been done yet.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Ah, yes, one of these requirements....&lt;/P&gt;
&lt;P&gt;Another personal opinion: I don't like the mstore, especially in a Dev environment. It needs another library that you can't hide in EG/Studio and once assigned it's really hard to change anything in the macro catalog under mstore. What I've done last time: Compile the macros into a catalog in a read only location, create an %init macro that copies the secure compiled macros into the catalog under WORK.&lt;/P&gt;
&lt;P&gt;The macro code itself was also in a read only folder with tokens for user and password. And then a macro that can be called passing user and password as parameters that then compiles all the other macros and stores them in the read only catalog (for the unlikely but certainly rare case the PW needs to change; and this process fully documented in a run book).&lt;/P&gt;</description>
      <pubDate>Fri, 24 May 2024 09:14:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Catolog-exist-or-not/m-p/929567#M365759</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2024-05-24T09:14:03Z</dc:date>
    </item>
  </channel>
</rss>

