<?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 Best practices for integrity checks &amp;amp; halting a scheduled EG process when there are problems in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414220#M26645</link>
    <description>&lt;P&gt;I have a growing number of SAS enterprise guide .egp projects that are set on a schedule. Unfortunately many of them depend on very dynamic databases – by which I mean there are relatively frequent changes to tables and columns. There are also less frequent ETL failures. These collectively have the impact of messing with the outputs and deliveries that the .egp’s produce.&lt;/P&gt;
&lt;P&gt;I would like to incorporate data integrity checks into all of my process flows that would halt processing and notify me/the admin that the task did not complete. I am thinking there are probably two kinds of checks.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Make sure one (or multiple) datasets have the expected number of records (or meet a minimum threshold of number of records).&lt;/LI&gt;
&lt;LI&gt;Make sure no errors have been logged at one or more points in the process flow.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;My questions to the community are &amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Is my perception of the kinds of integrity checks good (or are there other kinds of integrity checks I should also be considering)?&lt;/LI&gt;
&lt;LI&gt;Are the best practices for achieving this?&lt;/LI&gt;
&lt;LI&gt;Aside from the integrity checks, are there recommended approaches to halting a process flow? This question comes from some challenges I see when the .egp contains a relatively large number of programs, rather than a small number of programs with %include statements that could be enclosed in a macro that is based on the results of the integrity check. In other words is it possible to enclose a series of *programs* within a macro using the SAS EG process flow functions?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SAS 9.4, EG 7.1, Server 2012 R2&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you all for taking a look.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 17 Nov 2017 02:29:02 GMT</pubDate>
    <dc:creator>Rodcjones</dc:creator>
    <dc:date>2017-11-17T02:29:02Z</dc:date>
    <item>
      <title>Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414220#M26645</link>
      <description>&lt;P&gt;I have a growing number of SAS enterprise guide .egp projects that are set on a schedule. Unfortunately many of them depend on very dynamic databases – by which I mean there are relatively frequent changes to tables and columns. There are also less frequent ETL failures. These collectively have the impact of messing with the outputs and deliveries that the .egp’s produce.&lt;/P&gt;
&lt;P&gt;I would like to incorporate data integrity checks into all of my process flows that would halt processing and notify me/the admin that the task did not complete. I am thinking there are probably two kinds of checks.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Make sure one (or multiple) datasets have the expected number of records (or meet a minimum threshold of number of records).&lt;/LI&gt;
&lt;LI&gt;Make sure no errors have been logged at one or more points in the process flow.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;My questions to the community are &amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Is my perception of the kinds of integrity checks good (or are there other kinds of integrity checks I should also be considering)?&lt;/LI&gt;
&lt;LI&gt;Are the best practices for achieving this?&lt;/LI&gt;
&lt;LI&gt;Aside from the integrity checks, are there recommended approaches to halting a process flow? This question comes from some challenges I see when the .egp contains a relatively large number of programs, rather than a small number of programs with %include statements that could be enclosed in a macro that is based on the results of the integrity check. In other words is it possible to enclose a series of *programs* within a macro using the SAS EG process flow functions?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SAS 9.4, EG 7.1, Server 2012 R2&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you all for taking a look.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Nov 2017 02:29:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414220#M26645</guid>
      <dc:creator>Rodcjones</dc:creator>
      <dc:date>2017-11-17T02:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414259#M26648</link>
      <description>&lt;P&gt;You have reached a stage where you need a real scheduler that can handle dependencies.&lt;/P&gt;
&lt;P&gt;As said in the other thread, convert everything to .sas code files that can be run in batch. Write your code so that it runs without ERRORs and WARNINGs when successful. Make your ETL jobs so that they fail when the DB structure changes (eg always use a comprehensive variable list in SQL selects, never select *). In this way you catch changes early in your analytic chain.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since I get my data in flat-file unloads from the DB, it is even easier to detect changes with the read data steps.&lt;/P&gt;</description>
      <pubDate>Fri, 17 Nov 2017 05:29:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414259#M26648</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-11-17T05:29:35Z</dc:date>
    </item>
    <item>
      <title>Re: Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414266#M26650</link>
      <description>&lt;P&gt;I fully endorse&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;'s response. I highly recommend you check out SAS server-based scheduling instead of using your PC. This is particularly true if you are running business-critical jobs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm also a firm believer in simple options for controlling SAS jobs. Please look at the SAS system options SYNTAXCHECK and/or ERRORABEND.&amp;nbsp;&lt;SPAN&gt;SYNTAXCHECK switches SAS into syntax check mode when an error occurs while&amp;nbsp;ERRORABEND will abort the SAS job. Both of these options are very useful for controlling scheduled SAS batch jobs.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Nov 2017 06:47:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414266#M26650</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2017-11-17T06:47:58Z</dc:date>
    </item>
    <item>
      <title>Re: Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414305#M26656</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/33790"&gt;@Rodcjones&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;from the technical point of view, I am sure&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13976"&gt;@SASKiwi&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt;&amp;nbsp;can provide help.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;From the Architecture point of view, I think you probably are familiar with the concepts Data Warehouse (DWH), Datamart (DM) and single version of the truth.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;DHWs are generally dynamic as you say, but for reporting and data analysis, you would need to have your own version of the truth, updated only under your control (daily, 15 min, whatever you need). That "single version of the truth" it is a momentary version of the data, a snapshot, and it is normally called Datamart. Just the data you will need.&lt;/P&gt;</description>
      <pubDate>Fri, 17 Nov 2017 10:09:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414305#M26656</guid>
      <dc:creator>JuanS_OCS</dc:creator>
      <dc:date>2017-11-17T10:09:20Z</dc:date>
    </item>
    <item>
      <title>Re: Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414657#M26679</link>
      <description>Can you describe more the concept of "very dynamic databases"?&lt;BR /&gt;It doesn't sound like a robust architecture. Some dynamics are ok in the presentation layer, where you often can refresh the data.&lt;BR /&gt;Usually, a through data modelling practice can solve some of the most vulnerable parts, together with a clear maintenance operation model.</description>
      <pubDate>Sun, 19 Nov 2017 12:01:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414657#M26679</guid>
      <dc:creator>LinusH</dc:creator>
      <dc:date>2017-11-19T12:01:15Z</dc:date>
    </item>
    <item>
      <title>Re: Best practices for integrity checks &amp; halting a scheduled EG process when there are problems</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414670#M26680</link>
      <description>&lt;P&gt;Thanks for the question. The architecture is robust. What I meant to convey is that the jobs scheduled are associated with quality improvement projects with an intentionally high rate of change in how items are documented and stored within the database. New workflows are implemented frequently, and while the intention is to communicate the downstream impacts to developers, sometimes the impact is not understood right away or not communicated.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 19 Nov 2017 14:43:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/Best-practices-for-integrity-checks-amp-halting-a-scheduled-EG/m-p/414670#M26680</guid>
      <dc:creator>Rodcjones</dc:creator>
      <dc:date>2017-11-19T14:43:50Z</dc:date>
    </item>
  </channel>
</rss>

