<?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 SAS Packages Framework, version 20221212 in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20221212/m-p/849280#M335772</link>
    <description>&lt;P&gt;Hey SAS-C,&lt;/P&gt;
&lt;P&gt;Just FYI,&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;SAS Packages Framework&lt;/STRONG&gt;, version &lt;STRONG&gt;20221212&lt;/STRONG&gt;, is here.&lt;/H3&gt;
&lt;H3&gt;Available as usual at:&amp;nbsp;&lt;A title="https://github.com/yabwon/SAS_PACKAGES" href="https://github.com/yabwon/SAS_PACKAGES" target="_self"&gt;https://github.com/yabwon/SAS_PACKAGES&lt;/A&gt;&lt;/H3&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Changes in the framework:&lt;/H3&gt;
&lt;HR /&gt;
&lt;H3&gt;New type.&lt;/H3&gt;
&lt;P&gt;New type&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;CASLUDF&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;CASL User Defined Functions&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;added to the framework.&lt;BR /&gt;Rules for adding CASL User Defined Functions to a package are the same as those for FCMP functions (&lt;CODE&gt;FUNCTIONS&lt;/CODE&gt;), user formats (&lt;CODE&gt;FOTMATS&lt;/CODE&gt;) or IML modules (&lt;CODE&gt;IMLMODULE&lt;/CODE&gt;) types, and in line with general rules:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;one file one function,&lt;/LI&gt;
&lt;LI&gt;file contains only function definition e.g.,&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  function myFunction(&lt;SPAN class="pl-c1"&gt;x&lt;/SPAN&gt;, y, z);
    result = &lt;SPAN class="pl-c1"&gt;x&lt;/SPAN&gt; &lt;SPAN class="pl-k"&gt;+&lt;/SPAN&gt; y &lt;SPAN class="pl-k"&gt;+&lt;/SPAN&gt; z;
    &lt;SPAN class="pl-c1"&gt;return&lt;/SPAN&gt; (result);
  &lt;SPAN class="pl-k"&gt;end&lt;/SPAN&gt; func;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;CASL UDFs are loaded through a dedicated utility macro generated at the loading process and described below.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3&gt;New utility macros.&lt;/H3&gt;
&lt;P&gt;If a package contains IML modules or CASL user defined functions additional utility macros for IML Modules and CASL UDFs are generated when package is loaded.&lt;BR /&gt;Macros are generated with the following names:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%&amp;lt;packageName&amp;gt;IML()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%&amp;lt;packageName&amp;gt;CASLudf()&lt;/CODE&gt;. Their purpose is to make loading of Modules or UDFs (with potentially multiple dependencies) easy in Proc IML and Proc CAS.&lt;/P&gt;
&lt;P&gt;Run them, accordingly, as the first line in the Proc IML or Proc CAS to access the package content.&lt;BR /&gt;For Proc IML the use is as follows:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  &lt;SPAN class="pl-c1"&gt;proc IML&lt;/SPAN&gt;;             
    %&amp;lt;packageName&amp;gt;IML()
   
    &amp;lt;... your code using IML modules &lt;SPAN class="pl-c1"&gt;from&lt;/SPAN&gt; the package ...&amp;gt;
  &lt;SPAN class="pl-k"&gt;quit&lt;/SPAN&gt;;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;For Proc CAS the use is as follows:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  &lt;SPAN class="pl-c1"&gt;proc CAS&lt;/SPAN&gt;;             
    %&amp;lt;packageName&amp;gt;CASLudf()
   
    &amp;lt;... your code using CASL UDFs &lt;SPAN class="pl-c1"&gt;from&lt;/SPAN&gt; the package ...&amp;gt;
  &lt;SPAN class="pl-k"&gt;quit&lt;/SPAN&gt;;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If a utility macro is generated appropriate note and a code snippet is printed in the log of the package loading process.&lt;BR /&gt;In 99% cases macros are used with default parameters values but, in case when deeper insight about macros parameters is needed, help info is printed in the log when the following code is run:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  %&amp;lt;packageName&amp;gt;IML(&lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;=HELP)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  %&amp;lt;packageName&amp;gt;CASLudf(&lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;=HELP)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If created, those macros are automatically deleted when the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%unloadPackage()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro is run.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3&gt;Other.&lt;/H3&gt;
&lt;P&gt;Documentation updated.&lt;BR /&gt;Minor bugfix.&lt;/P&gt;</description>
    <pubDate>Mon, 12 Dec 2022 22:50:04 GMT</pubDate>
    <dc:creator>yabwon</dc:creator>
    <dc:date>2022-12-12T22:50:04Z</dc:date>
    <item>
      <title>SAS Packages Framework, version 20221212</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20221212/m-p/849280#M335772</link>
      <description>&lt;P&gt;Hey SAS-C,&lt;/P&gt;
&lt;P&gt;Just FYI,&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;SAS Packages Framework&lt;/STRONG&gt;, version &lt;STRONG&gt;20221212&lt;/STRONG&gt;, is here.&lt;/H3&gt;
&lt;H3&gt;Available as usual at:&amp;nbsp;&lt;A title="https://github.com/yabwon/SAS_PACKAGES" href="https://github.com/yabwon/SAS_PACKAGES" target="_self"&gt;https://github.com/yabwon/SAS_PACKAGES&lt;/A&gt;&lt;/H3&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Changes in the framework:&lt;/H3&gt;
&lt;HR /&gt;
&lt;H3&gt;New type.&lt;/H3&gt;
&lt;P&gt;New type&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;CASLUDF&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;CASL User Defined Functions&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;added to the framework.&lt;BR /&gt;Rules for adding CASL User Defined Functions to a package are the same as those for FCMP functions (&lt;CODE&gt;FUNCTIONS&lt;/CODE&gt;), user formats (&lt;CODE&gt;FOTMATS&lt;/CODE&gt;) or IML modules (&lt;CODE&gt;IMLMODULE&lt;/CODE&gt;) types, and in line with general rules:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;one file one function,&lt;/LI&gt;
&lt;LI&gt;file contains only function definition e.g.,&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  function myFunction(&lt;SPAN class="pl-c1"&gt;x&lt;/SPAN&gt;, y, z);
    result = &lt;SPAN class="pl-c1"&gt;x&lt;/SPAN&gt; &lt;SPAN class="pl-k"&gt;+&lt;/SPAN&gt; y &lt;SPAN class="pl-k"&gt;+&lt;/SPAN&gt; z;
    &lt;SPAN class="pl-c1"&gt;return&lt;/SPAN&gt; (result);
  &lt;SPAN class="pl-k"&gt;end&lt;/SPAN&gt; func;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;CASL UDFs are loaded through a dedicated utility macro generated at the loading process and described below.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3&gt;New utility macros.&lt;/H3&gt;
&lt;P&gt;If a package contains IML modules or CASL user defined functions additional utility macros for IML Modules and CASL UDFs are generated when package is loaded.&lt;BR /&gt;Macros are generated with the following names:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%&amp;lt;packageName&amp;gt;IML()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%&amp;lt;packageName&amp;gt;CASLudf()&lt;/CODE&gt;. Their purpose is to make loading of Modules or UDFs (with potentially multiple dependencies) easy in Proc IML and Proc CAS.&lt;/P&gt;
&lt;P&gt;Run them, accordingly, as the first line in the Proc IML or Proc CAS to access the package content.&lt;BR /&gt;For Proc IML the use is as follows:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  &lt;SPAN class="pl-c1"&gt;proc IML&lt;/SPAN&gt;;             
    %&amp;lt;packageName&amp;gt;IML()
   
    &amp;lt;... your code using IML modules &lt;SPAN class="pl-c1"&gt;from&lt;/SPAN&gt; the package ...&amp;gt;
  &lt;SPAN class="pl-k"&gt;quit&lt;/SPAN&gt;;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;For Proc CAS the use is as follows:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  &lt;SPAN class="pl-c1"&gt;proc CAS&lt;/SPAN&gt;;             
    %&amp;lt;packageName&amp;gt;CASLudf()
   
    &amp;lt;... your code using CASL UDFs &lt;SPAN class="pl-c1"&gt;from&lt;/SPAN&gt; the package ...&amp;gt;
  &lt;SPAN class="pl-k"&gt;quit&lt;/SPAN&gt;;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If a utility macro is generated appropriate note and a code snippet is printed in the log of the package loading process.&lt;BR /&gt;In 99% cases macros are used with default parameters values but, in case when deeper insight about macros parameters is needed, help info is printed in the log when the following code is run:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  %&amp;lt;packageName&amp;gt;IML(&lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;=HELP)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;  %&amp;lt;packageName&amp;gt;CASLudf(&lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;=HELP)&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;P&gt;If created, those macros are automatically deleted when the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;%unloadPackage()&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro is run.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3&gt;Other.&lt;/H3&gt;
&lt;P&gt;Documentation updated.&lt;BR /&gt;Minor bugfix.&lt;/P&gt;</description>
      <pubDate>Mon, 12 Dec 2022 22:50:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20221212/m-p/849280#M335772</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2022-12-12T22:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: SAS Packages Framework, version 20221212</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20221212/m-p/849917#M335943</link>
      <description>&lt;H3&gt;New update:&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;SAS Packages Framework&lt;/STRONG&gt;, version &lt;STRONG&gt;20221215&lt;/STRONG&gt;&lt;/H3&gt;
&lt;H3 id="toc-hId--928350037"&gt;Available as usual at:&amp;nbsp;&lt;A title="https://github.com/yabwon/SAS_PACKAGES" href="https://github.com/yabwon/SAS_PACKAGES" target="_self" rel="nofollow noopener noreferrer"&gt;https://github.com/yabwon/SAS_PACKAGES&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Changes in the framework:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Bug fix for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;formats&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;proto&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;with cherry picking.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Packages regenerated with the latest framework version:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/sqlinds" target="_blank"&gt;SQLinDS&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[2.2.4]&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/dfa" target="_blank"&gt;DFA&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[0.5.4]&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/macroarray" target="_blank"&gt;macroArray&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[1.0.4]&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/baseplus" target="_blank"&gt;BasePlus&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[1.18.4]&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/gsm" target="_blank"&gt;GSM&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;[0.20.4]&lt;/LI&gt;
&lt;LI&gt;dynMacroArray [0.2.4]&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;New macro&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/SASPAC/baseplus/blob/main/baseplus.md#bppipe-macro" target="_blank"&gt;&lt;CODE&gt;%bpPIPE()&lt;/CODE&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in BasePlus package.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Documentation updated.&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 15 Dec 2022 17:15:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20221212/m-p/849917#M335943</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2022-12-15T17:15:21Z</dc:date>
    </item>
  </channel>
</rss>

