<?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 Create global macro variable inside a macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82138#M17744</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to create the macro variables using a macro to use it in my code further but it seems those r restricted only to that macro... Can somebody help me with this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO M1(COL,TAB,MACROVAR);&lt;/P&gt;&lt;P&gt;PROC SQL NOPRINT;&lt;/P&gt;&lt;P&gt;CREATE &amp;amp;COL INTO :MACROVAR FROM &amp;amp;TAB;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;%MEND;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%M1(MSGID,SASHELP.ADOMSG,A1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%PUT &amp;amp;A1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This gives me error ... is there any alternative to this ????&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 02 Aug 2012 09:37:00 GMT</pubDate>
    <dc:creator>forumsguy</dc:creator>
    <dc:date>2012-08-02T09:37:00Z</dc:date>
    <item>
      <title>Create global macro variable inside a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82138#M17744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to create the macro variables using a macro to use it in my code further but it seems those r restricted only to that macro... Can somebody help me with this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO M1(COL,TAB,MACROVAR);&lt;/P&gt;&lt;P&gt;PROC SQL NOPRINT;&lt;/P&gt;&lt;P&gt;CREATE &amp;amp;COL INTO :MACROVAR FROM &amp;amp;TAB;&lt;/P&gt;&lt;P&gt;QUIT;&lt;/P&gt;&lt;P&gt;%MEND;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%M1(MSGID,SASHELP.ADOMSG,A1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%PUT &amp;amp;A1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This gives me error ... is there any alternative to this ????&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Aug 2012 09:37:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82138#M17744</guid>
      <dc:creator>forumsguy</dc:creator>
      <dc:date>2012-08-02T09:37:00Z</dc:date>
    </item>
    <item>
      <title>Re: Create global macro variable inside a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82139#M17745</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are these excercises? &lt;A _jive_internal="true" href="https://communities.sas.com/message/133725#133725"&gt;https://communities.sas.com/message/133725#133725&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Aug 2012 10:49:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82139#M17745</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2012-08-02T10:49:02Z</dc:date>
    </item>
    <item>
      <title>Re: Create global macro variable inside a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82140#M17746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Find below a working example.&lt;/P&gt;&lt;P&gt;Macro variables created within a macro have usually a LOCAL scope. However you can make macro variables global, see example below&lt;/P&gt;&lt;P&gt;I have also made some changes to your code sample&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000080; background-color: #ffffff;"&gt;&lt;STRONG&gt;%MACRO&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; M1(&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;COL&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;TAB&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;MACROVAR&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;)&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;* make the macro var global;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%global&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &amp;amp;macrovar;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; %&lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;*&lt;BR /&gt;&amp;nbsp;&amp;nbsp; * we are reading only the first obs of the table&lt;BR /&gt;&amp;nbsp;&amp;nbsp; * the TRIMMED option will take away trailing blanks&lt;BR /&gt;&amp;nbsp;&amp;nbsp; *;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp; PROC SQL NOPRINT;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;col&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;amp;macrovar TRIMMED&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;tab(obs=&lt;/SPAN&gt;&lt;SPAN style="color: #008080; background-color: #ffffff;"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp; quit;&lt;BR /&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; _local_;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000080; background-color: #ffffff;"&gt;&lt;STRONG&gt;%MEND&lt;/STRONG&gt;&lt;/SPAN&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;BR /&gt;%&lt;/SPAN&gt;&lt;STRONG style="color: #000000; background-color: #ffffff;"&gt;&lt;EM&gt;M1&lt;/EM&gt;&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(MNEMONIC,SASHELP.ADOMSG,A1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%PUT&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; NOTE: *&amp;amp;A1*;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From your code it looks like you want to be able to access some messages from a data sets. Please have a look at the&lt;/P&gt;&lt;P&gt;SASMSG &lt;A href="http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n0pbh06faefiuyn1paei4vrvft2d.htm" title="http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n0pbh06faefiuyn1paei4vrvft2d.htm"&gt;http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n0pbh06faefiuyn1paei4vrvft2d.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;SASMSGL &lt;A class="active_link" href="http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n1iekis5qclbspn1wd6bno0jhtdq.htm" title="http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n1iekis5qclbspn1wd6bno0jhtdq.htm"&gt;http://support.sas.com/documentation/cdl/en/nlsref/63072/HTML/default/viewer.htm#n1iekis5qclbspn1wd6bno0jhtdq.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;functions as well&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Aug 2012 11:53:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82140#M17746</guid>
      <dc:creator>BrunoMueller</dc:creator>
      <dc:date>2012-08-02T11:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: Create global macro variable inside a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82141#M17747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I like Bruno's sasmsg function idea a lot. Here is an example I made up. Hopefully the function is not opening-and-closing the message dataset once for each call, but I am not sure. Does anybody know for sure? Bruno?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Consolas, Courier New; font-size: 90%; line-height: 1.1;"&gt;&lt;SPAN style="color: #008000;"&gt;/* load the data into a sas message dataset */&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;sql&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;create&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;table&lt;/SPAN&gt;&lt;SPAN&gt; heights &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;as&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;select&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"en_US"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; locale length=&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;5&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , trimn(upcase(name)) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;'KEY'n&lt;/SPAN&gt;&lt;SPAN&gt; length=&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;60&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , &lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; lineno length=&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;5&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , strip(putn(height, &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"best8."&lt;/SPAN&gt;&lt;SPAN&gt;)) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; text length=&lt;/SPAN&gt;&lt;SPAN style="color: #008080;"&gt;&lt;STRONG&gt;1200&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; sashelp.class&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;order&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;by&lt;/SPAN&gt;&lt;SPAN&gt; locale, &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;'KEY'n&lt;/SPAN&gt;&lt;SPAN&gt;, lineno &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;desc&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;create&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;index&lt;/SPAN&gt;&lt;SPAN&gt; indx &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;on&lt;/SPAN&gt;&lt;SPAN&gt; heights(locale, &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;key&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #000080;"&gt;&lt;STRONG&gt;quit&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; &lt;SPAN&gt;%&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- usage example --*;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;options&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;locale&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;"en_US"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN&gt; Alfred:***&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN&gt;(sasmsg(heights, ALFRED, noquote))***;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #0000ff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN&gt; Alice :***&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN&gt;(sasmsg(heights, ALICE, noquote))***;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN&gt;%&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt;*-- on log&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;Alfred:***69***&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;Alice :***56.5***&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN style="color: #008000;"&gt;--*;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Aug 2012 15:47:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Create-global-macro-variable-inside-a-macro/m-p/82141#M17747</guid>
      <dc:creator>chang_y_chung_hotmail_com</dc:creator>
      <dc:date>2012-08-03T15:47:58Z</dc:date>
    </item>
  </channel>
</rss>

