<?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>Question Re: Procedure dependency graph in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826285#M4857128</link>
    <description>&lt;P&gt;If you are up to parsing SQL yourself, then you could work from the stored definitions.  That is basically what SQL Central is doing here.&lt;/P&gt;
&lt;P&gt;We currently don't track dependancies for procedures like we added for views so you don't have attributes or properties tracked in the metadata.&lt;/P&gt;</description>
    <pubDate>Tue, 22 Mar 2016 11:45:12 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2016-03-22T11:45:12Z</dc:date>
    <item>
      <title>Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaq-p/13826279</link>
      <description>&lt;P&gt;Hi,
I’m trying to build a procedures dependency graph to identify changes in procedures call that affect a specific user. Using Sybase central, it’s possible to generate database documentation (Tool/SQL Anywhere 16/ Generate Database Documentation). The fields “This Procedure is Called By“ and “This Procedure Calls“ generate the information needed. I’m looking for a way to generate the information from a procedure or from an external program to avoid human interaction. Is it possible?&lt;/P&gt;
&lt;P&gt;Thanks for the help,
LP&lt;/P&gt;</description>
      <pubDate>Thu, 17 Mar 2016 10:02:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaq-p/13826279</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2016-03-17T10:02:46Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826280#M4857123</link>
      <description>&lt;P&gt;The logic that performs this little bit of magic is entirely contained in the SQL Central wizard for this function. Other than querying the system for the metadata there are no functions or procedures from the database involved in doing that.&lt;/P&gt;
&lt;P&gt;You might be able to export the objects as seperate HTML files (1 per) and to parse those directly ... though I don't suspect that is as convenient as you would like.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Mar 2016 18:27:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826280#M4857123</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2016-03-17T18:27:32Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826281#M4857124</link>
      <description>&lt;P&gt;Thanks for the reply. Not the answer I was hoping for... Any idea how to use metadata to achieve a procedure's dependency graph? Everything is available for tables and views, but I couldn't find where procedures metadata lives.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Mar 2016 08:21:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826281#M4857124</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2016-03-22T08:21:22Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826282#M4857125</link>
      <description>&lt;P&gt;There are several views in the system catalog that deal with procedures (and functions likewise) like &lt;A href="http://dcx.sybase.com/index.html#1201/en/dbreference/sysprocedure-system-view.html"&gt;SYSPROCEDURE&lt;/A&gt;, SYSPROCPARM and SYSPROCPERM.&lt;/P&gt;
&lt;P&gt;For the procedures's source code (containing possible calls of other procedures/functions), you will have a look at the SYSPROCEDURE "proc_defn" and "source" columns.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Mar 2016 08:44:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826282#M4857125</guid>
      <dc:creator>VolkerBarth</dc:creator>
      <dc:date>2016-03-22T08:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826283#M4857126</link>
      <description>&lt;P&gt;You will not find any semantic information about who-calls-who in the system catalog tables. That's because "&lt;A href="http://dcx.sybase.com/index.html#sa160/en/dbusage/plan-caching-queryopt.html"&gt;Normally, the optimizer selects an execution plan for a query every time the query is executed.&lt;/A&gt;" &lt;/P&gt;
&lt;P&gt;In that Help topic, "query" means pretty much any SQL statement. For example, a procedure named in a CALL statement does not even have to exist when the calling procedure is created... that's one of the hallmarks of SQL Anywhere.&lt;/P&gt;
&lt;P&gt;That Help topic does discuss "plan caching" but that process is optional,   is dynamic, is performed on a per-connection basis, and the results are not made visible in the system catalog.&lt;/P&gt;
&lt;P&gt;Nick's suggestion to "parse those directly" is the only way to achieve what you want.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Mar 2016 08:57:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826283#M4857126</guid>
      <dc:creator>Breck_Carter</dc:creator>
      <dc:date>2016-03-22T08:57:53Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826284#M4857127</link>
      <description>&lt;P&gt;Furthermore conditional execution (IF/CASE statements, IF/CASE expressions, prodedure/function calls as part of query blocks, LATERAL calls, ...) will make if difficult to tell whether a certain inner procedure/function will be called at all in an outer procedure/function under particular conditions. Say, there's something like&lt;/P&gt;
&lt;PRE&gt;...
if (select count(*) from myTable where x &amp;gt; y) &amp;gt; 0 then
   call ThatOtherProc();
end if;
&lt;/PRE&gt;

&lt;P&gt;might mean procedure "ThatOtherProc" &lt;EM&gt;could&lt;/EM&gt; be called here but in reality that branch might never be reached.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Mar 2016 11:31:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826284#M4857127</guid>
      <dc:creator>VolkerBarth</dc:creator>
      <dc:date>2016-03-22T11:31:24Z</dc:date>
    </item>
    <item>
      <title>Re: Procedure dependency graph</title>
      <link>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826285#M4857128</link>
      <description>&lt;P&gt;If you are up to parsing SQL yourself, then you could work from the stored definitions.  That is basically what SQL Central is doing here.&lt;/P&gt;
&lt;P&gt;We currently don't track dependancies for procedures like we added for views so you don't have attributes or properties tracked in the metadata.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Mar 2016 11:45:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/procedure-dependency-graph/qaa-p/13826285#M4857128</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2016-03-22T11:45:12Z</dc:date>
    </item>
  </channel>
</rss>

