<?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: How to exit macro loop? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124114#M25429</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;i guess you got confused with the order of the macros.&lt;/P&gt;&lt;P&gt;Try it this way:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro msg;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;syserr. ne 0 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put syserr ====&amp;gt; &amp;amp;syserr.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put "ERROR";&lt;/P&gt;&lt;P&gt; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test(dsn);&lt;/P&gt;&lt;P&gt;%if &amp;amp;syserr. ne 0 %then %return;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data &amp;amp;dsn.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = 1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%msg;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test(abc);&lt;/P&gt;&lt;P&gt;%test(12ab);&lt;/P&gt;&lt;P&gt;%test(aa);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Jul 2013 13:35:44 GMT</pubDate>
    <dc:creator>Domenico</dc:creator>
    <dc:date>2013-07-02T13:35:44Z</dc:date>
    <item>
      <title>How to exit macro loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124112#M25427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the below code I want the test macro to end if syserr is greater than 0 and run the msg macro. In this case the loop doesn't end when the syserr is greater than zero. It executes all the 3 macro parameter&amp;nbsp; and then leaves&amp;nbsp; the macro. I am trying to end it as soon as the syserr value becomes greater than zero and run the next macro msg. Any help is much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test(dsn);&lt;BR /&gt;Data &amp;amp;dsn.;&lt;BR /&gt;a = 1;&lt;BR /&gt;Run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%Put syserr ====&amp;gt; &amp;amp;syserr.;&lt;BR /&gt;%if &amp;amp;syserr. ne 0 %then %return; &lt;BR /&gt;%mend test;&lt;BR /&gt;%test(abc);&lt;BR /&gt;%test(12ab);&lt;BR /&gt;%test(aa);&lt;BR /&gt; &lt;/P&gt;&lt;P&gt;%macro msg;&lt;BR /&gt;&amp;nbsp; %if &amp;amp;syserr. ne 0 %then %Put "ERROR";&lt;BR /&gt;%mend;&lt;BR /&gt;%msg;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Jul 2013 22:03:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124112#M25427</guid>
      <dc:creator>vicky07</dc:creator>
      <dc:date>2013-07-01T22:03:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to exit macro loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124113#M25428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure what your intentions are, but why don't you just call %msg from %test?&lt;/P&gt;&lt;P&gt;Do also wish to stop the next call to test (aa)? If so, you may need to wrap the %test calls into another macro and do some kind %if logic around the calls.&lt;/P&gt;&lt;P&gt;%msg must be declared before you call %test.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 11:11:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124113#M25428</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2013-07-02T11:11:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to exit macro loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124114#M25429</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;i guess you got confused with the order of the macros.&lt;/P&gt;&lt;P&gt;Try it this way:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro msg;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %if &amp;amp;syserr. ne 0 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put syserr ====&amp;gt; &amp;amp;syserr.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %put "ERROR";&lt;/P&gt;&lt;P&gt; %end;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test(dsn);&lt;/P&gt;&lt;P&gt;%if &amp;amp;syserr. ne 0 %then %return;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data &amp;amp;dsn.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = 1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%msg;&lt;/P&gt;&lt;P&gt;%mend test;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%test(abc);&lt;/P&gt;&lt;P&gt;%test(12ab);&lt;/P&gt;&lt;P&gt;%test(aa);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jul 2013 13:35:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124114#M25429</guid>
      <dc:creator>Domenico</dc:creator>
      <dc:date>2013-07-02T13:35:44Z</dc:date>
    </item>
    <item>
      <title>Re: How to exit macro loop?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124115#M25430</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I figured the solution. Thanks for your reply. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Jul 2013 01:43:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-exit-macro-loop/m-p/124115#M25430</guid>
      <dc:creator>vicky07</dc:creator>
      <dc:date>2013-07-03T01:43:32Z</dc:date>
    </item>
  </channel>
</rss>

