<?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 Modify SAS Datasets with jqGrid Edits? in Developers</title>
    <link>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/355736#M5368</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Hey Aaron,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Without Boemksa&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I would recommend to use &lt;A href="http://www.datatables.net/" target="_blank"&gt;www.datatables.net&lt;/A&gt;&amp;nbsp;instead of jqGrid. The implementation is much easier. In any case, you use ajax to get or update your data. Ajax supports most of the main&amp;nbsp;&lt;A href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods" target="_self"&gt;HTML verbs&lt;/A&gt;. The two most useful for you are POST/GET. The key difference between them is that the parameters provided in URL for GET method and in the body for POST method.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;As for implementation, you could use one or several stored procedures. &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;For &lt;EM&gt;several stored procedures&lt;/EM&gt;, you could have end points such as getData, deleteData, updateData that correspond to different stored procedures all of which execute the specific operation and have separate logic.&lt;/DIV&gt;
&lt;DIV&gt;For &lt;EM&gt;single stored procedure&lt;/EM&gt;, you could use a collection of marcros where a single get/post parameter triggers the required stored procedure.&lt;/DIV&gt;
&lt;DIV&gt;For example imagine the folloing SAS code:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%MACRO getData;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%MEND;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%&lt;SPAN&gt;MACRO &lt;/SPAN&gt;updateData;&lt;/DIV&gt;
&lt;DIV&gt;%MEND;&lt;/DIV&gt;
&lt;DIV&gt;%&amp;amp;service;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now you just need to pass a service name to your stored procedure to trigger the part that you care about. For example, sas.myhost.com/SASSTPAPP?Program=myAppSTP&amp;amp;service=getData. This will pass parameter "service" and it will resolve the macro variable service in the code above the the macro that you want to run.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;With Boemska&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The development method with Boemska is different. To begin with, I would recommend to get their excellent SAS Hot Editor working that you can find here: &lt;A href="https://github.com/Boemska/sas-hot-editor" target="_blank"&gt;https://github.com/Boemska/sas-hot-editor&lt;/A&gt; Once you have this working, check their API documentation (&lt;A href="https://github.com/Boemska/h54s#javascript-api-reference" target="_blank"&gt;https://github.com/Boemska/h54s#javascript-api-reference&lt;/A&gt;) and have a look how the editor is working.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;P.S.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Sorry, I couldn't help you with jqGrid, trust me, this is not the best framework to use.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Regards,&lt;/DIV&gt;
&lt;DIV&gt;Vasilij&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
    <pubDate>Wed, 03 May 2017 19:37:12 GMT</pubDate>
    <dc:creator>VasilijNevlev</dc:creator>
    <dc:date>2017-05-03T19:37:12Z</dc:date>
    <item>
      <title>How to Modify SAS Datasets with jqGrid Edits?</title>
      <link>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/355657#M5367</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a couple stored processes to fetch a SAS dataset and then display it on the web in a jqGrid object. &amp;nbsp;My jqGrid example allows for edits, adds, and deletes. &amp;nbsp;I'd like to pass these edits, adds, and deletes back to my SAS dataset. &amp;nbsp;Does anyone know how to accomplish this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I suspect I may need to change the &lt;EM&gt;editurl&lt;/EM&gt; option and use another stored process?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope to use the boemska tools once I&amp;nbsp;get more admin privileges.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Aaron&lt;/P&gt;</description>
      <pubDate>Wed, 03 May 2017 15:59:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/355657#M5367</guid>
      <dc:creator>AaronEvans</dc:creator>
      <dc:date>2017-05-03T15:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to Modify SAS Datasets with jqGrid Edits?</title>
      <link>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/355736#M5368</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hey Aaron,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Without Boemksa&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I would recommend to use &lt;A href="http://www.datatables.net/" target="_blank"&gt;www.datatables.net&lt;/A&gt;&amp;nbsp;instead of jqGrid. The implementation is much easier. In any case, you use ajax to get or update your data. Ajax supports most of the main&amp;nbsp;&lt;A href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods" target="_self"&gt;HTML verbs&lt;/A&gt;. The two most useful for you are POST/GET. The key difference between them is that the parameters provided in URL for GET method and in the body for POST method.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;As for implementation, you could use one or several stored procedures. &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;For &lt;EM&gt;several stored procedures&lt;/EM&gt;, you could have end points such as getData, deleteData, updateData that correspond to different stored procedures all of which execute the specific operation and have separate logic.&lt;/DIV&gt;
&lt;DIV&gt;For &lt;EM&gt;single stored procedure&lt;/EM&gt;, you could use a collection of marcros where a single get/post parameter triggers the required stored procedure.&lt;/DIV&gt;
&lt;DIV&gt;For example imagine the folloing SAS code:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%MACRO getData;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%MEND;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;%&lt;SPAN&gt;MACRO &lt;/SPAN&gt;updateData;&lt;/DIV&gt;
&lt;DIV&gt;%MEND;&lt;/DIV&gt;
&lt;DIV&gt;%&amp;amp;service;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now you just need to pass a service name to your stored procedure to trigger the part that you care about. For example, sas.myhost.com/SASSTPAPP?Program=myAppSTP&amp;amp;service=getData. This will pass parameter "service" and it will resolve the macro variable service in the code above the the macro that you want to run.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;With Boemska&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The development method with Boemska is different. To begin with, I would recommend to get their excellent SAS Hot Editor working that you can find here: &lt;A href="https://github.com/Boemska/sas-hot-editor" target="_blank"&gt;https://github.com/Boemska/sas-hot-editor&lt;/A&gt; Once you have this working, check their API documentation (&lt;A href="https://github.com/Boemska/h54s#javascript-api-reference" target="_blank"&gt;https://github.com/Boemska/h54s#javascript-api-reference&lt;/A&gt;) and have a look how the editor is working.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;P.S.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Sorry, I couldn't help you with jqGrid, trust me, this is not the best framework to use.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Regards,&lt;/DIV&gt;
&lt;DIV&gt;Vasilij&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 03 May 2017 19:37:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/355736#M5368</guid>
      <dc:creator>VasilijNevlev</dc:creator>
      <dc:date>2017-05-03T19:37:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to Modify SAS Datasets with jqGrid Edits?</title>
      <link>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/774028#M5369</link>
      <description>&lt;P&gt;Hi Aaron,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you're looking for a 'ready made' solution to what you describe, I would refer you to &lt;A href="https://datacontroller.io" target="_blank"&gt;https://datacontroller.io&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you're looking for an 'admin not necessary' approach to building &amp;amp; deploying web apps, you can also consider the SASjs framework - specifically, the 'streaming app' capability.&amp;nbsp; This compiles a frontend into a series of STPs, obviating the need for a web server (and requisite access rights).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Happy to jump on a call to explain further.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Oct 2021 20:08:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/How-to-Modify-SAS-Datasets-with-jqGrid-Edits/m-p/774028#M5369</guid>
      <dc:creator>AllanBowe</dc:creator>
      <dc:date>2021-10-13T20:08:36Z</dc:date>
    </item>
  </channel>
</rss>

