<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4373663334124272866</id><updated>2026-05-29T11:03:02.053-05:00</updated><category term="programming"/><category term="sql"/><category term="rpg"/><category term="new release"/><category term="cl"/><category term="history"/><category term="operations"/><category term="user group"/><category term="dspf"/><category term="pf"/><category term="query"/><category term="ifs"/><category term="shared"/><category term="lf"/><category term="virtual user group"/><category term="node.js"/><title type='text'>RPGPGM.COM - From AS400 to IBM i</title><subtitle type='html'>Advice about programming, operations, communications, and anything else I can think of&lt;br&gt;&#xa;&lt;center&gt;&lt;em&gt;This blog is about IBM i for Power&lt;/em&gt;&lt;/center&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default?start-index=26&amp;max-results=25'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1108</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-6624222652861299593</id><published>2026-05-28T05:00:00.000-05:00</published><updated>2026-05-28T05:00:00.116-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>ACS version 1.1.9.13 available</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyDKdAcBrsjkD0S91KFQ9s3xp0B7NFnDG4veJ3Ns2soXeefddbzHYOL8QzSI2UybQ2t1BNygQXVTrkYRsVRHs4OBQQOPvIPRoXVVtx1I9PGjnJd5k6Bz5cyadZ5TZPkh8uBcvscnui8C2PMyeQYCJfGovpEQ-qdtaYpH6LqXBHqvCXoXM9vDKd4YPeII/s200/acs_logo.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Yesterday, Wednesday May 27, I noticed that a new release of ACS, 1.1.9.13, is now available for download.&lt;/p&gt;

&lt;p&gt;This is an update to remediate a number of &lt;abbr title=&quot;Common Vulnerabilities and Exposures&quot;&gt;CVE&lt;/abbr&gt;, and no enhancements have been added.&lt;/p&gt;

&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZS-tNYMo7ryegTkimGSEs5jbPIUUePETjZKFkhY0mag8RQ3qiFI28W4I4sEtL4q1HtRrcioQRQs5_Xk2EJ-E6C1i_pUZRC4OYZYmG8dGjeBJRlpogDep0yS55_KyVu3EbzubDdvS_C4PMzAtToV2WkqLTaCxEYCmMinazccquiLs8g2Cwq6frqNBdQP4/s1600/acs_1.png&quot;&gt;
&lt;/center&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/acs-version-11913-available.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/6624222652861299593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/acs-version-11913-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6624222652861299593'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6624222652861299593'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/acs-version-11913-available.html' title='ACS version 1.1.9.13 available'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkyDKdAcBrsjkD0S91KFQ9s3xp0B7NFnDG4veJ3Ns2soXeefddbzHYOL8QzSI2UybQ2t1BNygQXVTrkYRsVRHs4OBQQOPvIPRoXVVtx1I9PGjnJd5k6Bz5cyadZ5TZPkh8uBcvscnui8C2PMyeQYCJfGovpEQ-qdtaYpH6LqXBHqvCXoXM9vDKd4YPeII/s72-c/acs_logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4418471456046162692</id><published>2026-05-27T05:00:00.004-05:00</published><updated>2026-05-27T05:00:00.118-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Calculating the power and square root of a number</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;There are times I need to calculate the dimensions of objects, and to do that I need to use things like &lt;i&gt;x&lt;/i&gt; squared, or the square root of &lt;i&gt;y&lt;/i&gt;. It all brings back memories of sitting in mathematics lessons back in high school, a very long time ago.&lt;/p&gt;

&lt;p&gt;It is simple in RPG, but I want to do it in SQL so that I can calculate the information I need in my SQL View.&lt;/p&gt;

&lt;p&gt;I thought it would be a good reminder to show how to calculate the square root and how to use exponentiation (&lt;i&gt;x&lt;sup&gt;y&lt;/sup&gt;&lt;/i&gt;, &lt;i&gt;x&lt;/i&gt; to the power of &lt;i&gt;y&lt;/i&gt;) in both RPG and SQL.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4418471456046162692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4418471456046162692'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4418471456046162692'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/calculating-power-and-square-root-of.html' title='Calculating the power and square root of a number'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4873995830090633663</id><published>2026-05-20T05:00:00.005-05:00</published><updated>2026-05-20T05:00:00.124-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Determine the length of a string when using SQL</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;The title is not as descriptive as I would have liked, my original title was too long to appear reasonably at the top of this page. I am going to describe how you can determine the length of the string of characters within a column from a DDS file or DDL table using SQL. I have found this most useful when using it within a Select statement.&lt;/p&gt;

&lt;p&gt;This SQL function can be called by one of two names: &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt; or &lt;tt&gt;CHAR_LENGTH&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;There is also a related function, &lt;tt&gt;LENGTH&lt;/tt&gt;, that I will describe later in this post.&lt;/p&gt;

&lt;p&gt;As its name suggests, &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt; will return the length of a string expression. In the following example I am using the &lt;tt&gt;VALUES&lt;/tt&gt; SQL statement with &lt;tt&gt;CHARACTER_LENGTH&lt;/tt&gt;:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  VALUES CHARACTER_LENGTH(&amp;#39;A             &amp;#39;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4873995830090633663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4873995830090633663'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4873995830090633663'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/determine-length-of-string-when-using.html' title='Determine the length of a string when using SQL'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2463818198936797259</id><published>2026-05-13T05:00:00.025-05:00</published><updated>2026-05-13T05:00:00.122-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>Generating help text using an IBM i command</title><content type='html'>&lt;img align=&quot;right&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hBmN3klY-F-SO6l9o5yAdu0zn7zia1CHrSYjFEctO8ipQReRfMl4rO9aCTHax-5IylkR25dzOXccg3HXjKC-R_5ri6Cavo0k_WrJSqIRpqjREEUjoHF92aiKLEyY4ERiJFt7VaYlzj3L2wXMOt2VFhcckXQbOFgFPbH4X20rFGNGGIoNqOHVjzV2C7o/s200-rw/pgming.png&quot; width=&quot;200&quot;&gt;

&lt;p&gt;This is another post about something I did not know existed until a few days ago. I have been building some commands to help automate certain processes, and I thought it would be a good idea to create help text for the commands so that anyone using it could use it instead of asking me how to use the command.&lt;/p&gt;

&lt;p&gt;Help text for commands must be in the form of a panel group object, &lt;tt&gt;*PNLGRP&lt;/tt&gt;. The programming language used to create the contents of a panel group is User Interface Manager, &lt;abbr title=&quot;User Interface Manager&quot;&gt;UIM&lt;/abbr&gt;. Don&amp;#39;t worry if you have never used UIM, I think it is a simple language to understand.&lt;/p&gt;

&lt;p&gt;Several years ago I wrote a post about creating &lt;a href=&quot;/2017/02/creating-help-text-using-uim.html&quot; target=&quot;_blank&quot;&gt;help panel groups with UIM&lt;/a&gt;, therefore, if you want more information than I am going to mention here please refer to that post.&lt;/p&gt;

&lt;p&gt;I &amp;quot;stumbled&amp;quot; across the command &lt;tt&gt;GENCMDDOC&lt;/tt&gt;, Generate Command Documentation, which will create a template for my command that I can then add details to. I admit I have never heard of it before, and having used it I found it saved me a lot of time.&lt;/p&gt;

&lt;p&gt;First I need a command. I just randomly copied some parts of commands I had created earlier into one new command, &lt;tt&gt;TESTCMD&lt;/tt&gt;.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2463818198936797259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2463818198936797259'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2463818198936797259'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/generating-help-text-using-ibm-i-command.html' title='Generating help text using an IBM i command'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hBmN3klY-F-SO6l9o5yAdu0zn7zia1CHrSYjFEctO8ipQReRfMl4rO9aCTHax-5IylkR25dzOXccg3HXjKC-R_5ri6Cavo0k_WrJSqIRpqjREEUjoHF92aiKLEyY4ERiJFt7VaYlzj3L2wXMOt2VFhcckXQbOFgFPbH4X20rFGNGGIoNqOHVjzV2C7o/s72-c-rw/pgming.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-3514360317566001681</id><published>2026-05-07T05:00:00.019-05:00</published><updated>2026-05-07T05:00:00.117-05:00</updated><title type='text'>PowerUp attendees rally to join RPGPGM.COM-unity</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s400/ribbon.jpg&quot; width=&quot;400&quot;/&gt;
&lt;/center&gt;

&lt;p&gt;The &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; continues to grow. I handed out more of the ribbons at this year&#39;s &lt;a href=&quot;https://www.common.org/&quot; target=&quot;_blank&quot;&gt;COMMON&lt;/a&gt; PowerUp than I have at any other event. You can see who I gave them to &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-2026.html#powerup_2026&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you see me at an &lt;em&gt;IBM i&lt;/em&gt; event feel free to introduce yourself to me. In all likelihood I will have a &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; ribbon on me, and you can join the community.  All I ask in return is a photograph of you with it.&lt;/p&gt;

&lt;p&gt;If you would like to learn more about the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; click &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-pictures.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/3514360317566001681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/powerup-attendees-rally-to-join.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3514360317566001681'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3514360317566001681'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/powerup-attendees-rally-to-join.html' title='PowerUp attendees rally to join RPGPGM.COM-unity'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s72-c/ribbon.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8174238492156869601</id><published>2026-05-06T05:00:00.004-05:00</published><updated>2026-05-06T05:00:00.117-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><title type='text'>Determining the number of entries in a list parameter from a command</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD5vqsclKp8wzeUbRrA-vvJIw5b24K8ieciBR2x0vok-GmXw3I_VvQ03RWsn3cyieTwot95LXTPsLPT7O4TkD8oNeJL7oMvR1G56SHTZIzvkPWr2BU5dp1_RdQoZX2pnBk5U-hBTQN1lZ73sQl9MMXpsrWNHm4b18zFa00R_wAW5Yf8oO0Xw5RJYNFuMk/s200/rpg.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I was creating a command with what I am going to call a &amp;quot;list parameter&amp;quot;, to allow the entry of up to ten libraries. While writing the Command Processing Program, &lt;abbr title=&quot;Command Processing Program&quot;&gt;CPP&lt;/abbr&gt;, I encountered something I could not find a good description of how to handle. Therefore, I am writing this post to give you a good example of how I did it.&lt;/p&gt;

&lt;p&gt;I am not going to go into too much detail on how to create commands and their parameters as I covered many of the basics in two earlier posts: &lt;a href=&quot;/2018/02/creating-your-own-commands-part-1.html&quot; target=&quot;_blank&quot;&gt;Creating your own commands, part 1&lt;/a&gt; and &lt;a href=&quot;/2018/03/creating-your-own-commands-part-2.html&quot; target=&quot;_blank&quot;&gt;Creating your own commands, part 2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My example command, &lt;tt&gt;MYCMD&lt;/tt&gt;, has just one parameter, which will be the list of up to ten libraries. The source for the command is as follows:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  CMD PROMPT(&amp;#39;List of libraries&amp;#39;)

02  PARM KWD(LIBRARY) TYPE(*NAME) MIN(1) MAX(10) +
03         PROMPT(&amp;#39;Libraries&amp;#39;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Line 2 and 3: The command parameter &lt;tt&gt;LIBRARY&lt;/tt&gt; has a number of keywords:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;KWD&lt;/tt&gt;:  The keyword name for the parameter&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;TYPE&lt;/tt&gt;:  It is a name type parameter, which means it is equivalent of ten long character&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;MIN&lt;/tt&gt;:  The minimum number of entries that must be given&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;MAX&lt;/tt&gt;:  The maximum number of allowed entries&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;PROMPT&lt;/tt&gt;:  The description that appears on the screen&lt;/li&gt;
&lt;/ul&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/05/determining-number-of-entries-in-list.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8174238492156869601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/05/determining-number-of-entries-in-list.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8174238492156869601'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8174238492156869601'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/05/determining-number-of-entries-in-list.html' title='Determining the number of entries in a list parameter from a command'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD5vqsclKp8wzeUbRrA-vvJIw5b24K8ieciBR2x0vok-GmXw3I_VvQ03RWsn3cyieTwot95LXTPsLPT7O4TkD8oNeJL7oMvR1G56SHTZIzvkPWr2BU5dp1_RdQoZX2pnBk5U-hBTQN1lZ73sQl9MMXpsrWNHm4b18zFa00R_wAW5Yf8oO0Xw5RJYNFuMk/s72-c/rpg.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-3793519445186277446</id><published>2026-04-29T05:00:00.012-05:00</published><updated>2026-04-29T05:00:00.119-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Checking if there are updates for your Group PTFs</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;One of the duties of a good System Administrator is to keep the group PTFs up to date on the &lt;em&gt;IBM i&lt;/em&gt; partitions you are responsible for. To assist with this IBM has &amp;quot;Group PTF Currency&amp;quot;. The first time I encountered this phrase I was confused as I could not equate how PTFs related to money. The confusion was cleared up when I found out the &amp;quot;currency&amp;quot; refers to how current your PTFs are.&lt;/p&gt;

&lt;p&gt;In the past the System Administrator would have manually check IBM&amp;#39;s Fix Central website and compare the version of the PTFs on their partitions to the ones shown.&lt;/p&gt;

&lt;p&gt;To make life easier IBM created a SQL view, &lt;tt&gt;GROUP_PTF_CURRENCY&lt;/tt&gt;, in &lt;em&gt;IBM i&lt;/em&gt; 7.1 that would retrieve the latest information about the group PTFs from the IBM &amp;quot;Preventive Service Planning&amp;quot;, &lt;abbr title=&quot;Preventive Service Planning&quot;&gt;PSP&lt;/abbr&gt;, website. This View shows the PTF group level installed and the latest group level available. By comparing the two the System Administrator can decide whether it is time to get and apply the latest PTF group.&lt;p&gt;

&lt;p&gt;We can see the data on the PSP website as is it an XML file and can be reached at:&lt;/p&gt;

&lt;/p&gt;&lt;/p&gt;&lt;a href=&quot;https://www.rpgpgm.com/2026/04/checking-if-there-are-updates-for-your.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/3793519445186277446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/checking-if-there-are-updates-for-your.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3793519445186277446'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3793519445186277446'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/checking-if-there-are-updates-for-your.html' title='Checking if there are updates for your Group PTFs'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-6098337302308858727</id><published>2026-04-22T05:00:00.004-05:00</published><updated>2026-04-22T05:00:00.119-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Checking the Electronic Service Agent</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;The Electronic Service Agent, &lt;abbr title=&quot;Electronic Service Agent&quot;&gt;ESA&lt;/abbr&gt;, is part of the &lt;em&gt;IBM i&lt;/em&gt; operating system. Its purpose is to monitor your system&amp;#39;s health, detect potential hardware failures, and report issues directly to IBM Support. If it encounters problems it can &amp;quot;call home&amp;quot; to report the issue to IBM.&lt;/p&gt;

&lt;p&gt;To be able to &amp;quot;call home&amp;quot; it must be able to connect to IBM. How can we test that it can?&lt;/p&gt;

&lt;p&gt;We can either use:

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;VFYSRVAGT&lt;/tt&gt; the Verify Service Agent command&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ELECTRONIC_SERVICE_AGENT_INFO&lt;/tt&gt; SQL View that shows the same information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am going to explain both of these below.&lt;/p&gt;

&lt;/p&gt;&lt;a href=&quot;https://www.rpgpgm.com/2026/04/checking-electronic-service-agent.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/6098337302308858727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/checking-electronic-service-agent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6098337302308858727'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6098337302308858727'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/checking-electronic-service-agent.html' title='Checking the Electronic Service Agent'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-9205121649269316851</id><published>2026-04-21T05:00:00.004-05:00</published><updated>2026-05-28T05:13:35.026-05:00</updated><title type='text'>ACS version 1.1.9.12 available</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;The original contents of this page have become obsolete, go to &lt;a href=&quot;https://www.rpgpgm.com/2026/05/acs-version-11913-available.html&quot;&gt;this page&lt;/a&gt; for up-to-date information.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9205121649269316851'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9205121649269316851'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/acs-version-11912-available.html' title='ACS version 1.1.9.12 available'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-6834899085943550712</id><published>2026-04-15T05:00:00.004-05:00</published><updated>2026-04-15T05:00:00.115-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Track Group PTFs with SQL</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I have mentioned the SQL View &lt;tt&gt;GROUP_PTF_INFO&lt;/tt&gt; a couple of times in passing in other posts on this website, I have not explained what this View gives us.&lt;/p&gt;

&lt;p&gt;A PTF Group is a bundle of related &lt;abbr title=&quot;Program Temporary Fixes&quot;&gt;PTFs&lt;/abbr&gt; which are designed and managed as a single group. This simplifies PTF updates as all the necessary individual PTFs for a specific group are applied together. Examples of PTF groups are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;SF99760&lt;/tt&gt; for cumulative PTFs&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;SF99960&lt;/tt&gt; for Db2 for i&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;SF99962&lt;/tt&gt; for the IBM HTTP server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are several ways I can check on the PTF Groups on my &lt;em&gt;IBM i&lt;/em&gt; partition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;DSPPTFGRP&lt;/tt&gt;:  Display PTF Group command&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;WRKPTFGRP&lt;/tt&gt;:  Work with PTF Group command&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;GROUP_PTF_INFO&lt;/tt&gt;:  SQL View&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In all of my examples I am going to use the PTF Group for Db2 for i, &lt;tt&gt;SF99960&lt;/tt&gt;, on a partition that is running &lt;em&gt;IBM i&lt;/em&gt; 7.6 .&lt;/p&gt;

&lt;p&gt;When I use the commands &lt;tt&gt;DSPPTFGRP&lt;/tt&gt; and &lt;tt&gt;WRKPTFGRP&lt;/tt&gt; I am frustrated that I cannot get an output file of the information it retrieves. With &lt;tt&gt;WRKPTFGRP&lt;/tt&gt; I can only display the results:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/04/track-group-ptfs-with-sql.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/6834899085943550712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/track-group-ptfs-with-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6834899085943550712'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6834899085943550712'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/track-group-ptfs-with-sql.html' title='Track Group PTFs with SQL'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2288245983154642868</id><published>2026-04-14T05:00:00.006-05:00</published><updated>2026-04-14T05:00:00.122-05:00</updated><title type='text'>New Englanders flock to join the RPGPGM.COM-unity</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s400/ribbon.jpg&quot; width=&quot;400&quot;/&gt;
&lt;/center&gt;

&lt;p&gt;I handed out more of the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; ribbons at the &lt;a href=&quot;http://neugc.org/&quot; target=&quot;_blank&quot;&gt;NEUGC&lt;/a&gt; 2026 conference. You can see those I gave them to &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-2026.html#neugc_2026&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you see me at an &lt;em&gt;IBM i&lt;/em&gt; event feel free to introduce yourself to me. In all likelihood I will have a &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; ribbon on me, and you can become a member.  All I ask in return is a photograph of you with it.&lt;/p&gt;

&lt;p&gt;If you would like to learn more about the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; click &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-pictures.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2288245983154642868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/new-englanders-flock-to-join-rpgpgmcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2288245983154642868'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2288245983154642868'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/new-englanders-flock-to-join-rpgpgmcom.html' title='New Englanders flock to join the RPGPGM.COM-unity'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s72-c/ribbon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-3789736463758780065</id><published>2026-04-13T05:00:00.002-05:00</published><updated>2026-04-13T11:47:27.489-05:00</updated><title type='text'>Spring 2026 IBM i TRs coming later</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRN-WhgRs-bxb2hYCPlCvRKDYyPIkl12I4As_i6dRS3k5lW3C4ecOUwWOY4EmPZrmoyuJKMxRgrs5cGkEGG-98lT7pglYSFkS1RxK0dgGmeLapKtWYCn5wltb13W3LyQ8JdaiyE76F_sbxE1YM-uS1jvCeqL8hPo_kYyDOCrv0r-RWqR2conxZ8jtypqM/s200/ibm_logo.jpg&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;On the usual schedule there is a Technology Refresh at about the time of the &lt;a href=&quot;https://www.common.org/powerup-2026/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;COMMON PowerUp conference&lt;/a&gt;. This year will be different.&lt;/p&gt;

&lt;p&gt;I was told by an IBM insider, last week, that the release date of the &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;s has been postponed until July of this year. They would not say why. I assumed that news of the delay was business proprietary information, and was not going to share it.&lt;/p&gt;

&lt;p&gt;This morning I see a couple of other websites running the story that the TRs are being delayed until the time more of the new &lt;a href=&quot;/2025/07/ibm-power-11-chips-and-servers-are.html&quot; target=&quot;_blank&quot;&gt;IBM Power11 servers&lt;/a&gt; are announced.&lt;/p&gt;

&lt;p&gt;As others are reporting this news, I am publishing what I know.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/3789736463758780065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/spring-2026-ibm-i-trs-coming-later.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3789736463758780065'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3789736463758780065'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/spring-2026-ibm-i-trs-coming-later.html' title='Spring 2026 IBM i TRs coming later'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRN-WhgRs-bxb2hYCPlCvRKDYyPIkl12I4As_i6dRS3k5lW3C4ecOUwWOY4EmPZrmoyuJKMxRgrs5cGkEGG-98lT7pglYSFkS1RxK0dgGmeLapKtWYCn5wltb13W3LyQ8JdaiyE76F_sbxE1YM-uS1jvCeqL8hPo_kYyDOCrv0r-RWqR2conxZ8jtypqM/s72-c/ibm_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8197299503519670368</id><published>2026-04-08T05:00:00.007-05:00</published><updated>2026-04-08T05:00:00.121-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="rpg"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>New Job columns added to the Record Lock View</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;In my last post I explained how the parts of the &lt;em&gt;IBM i&lt;/em&gt; job name had been added as separate columns to the &lt;a href=&quot;/2026/04/new-columns-added-to-object-lock-view.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;OBJECT_LOCK_INFO&lt;/tt&gt; SQL View&lt;/a&gt;. I am pleased to say that the same three columns have been added to the &lt;a href=&quot;/2016/01/finding-record-locks-using-sql.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;RECORD_LOCK_INFO&lt;/tt&gt; View&lt;/a&gt; too:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;tt&gt;JOB_USER&lt;/tt&gt;:  User profile of the job&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOB_NAME_SHORT&lt;/tt&gt;:  Name of the job&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOB_NUMBER&lt;/tt&gt;:  Number of the job&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before these columns were added, if I wanted to list my jobs, with the user profile &amp;quot;&lt;tt&gt;SIMON&lt;/tt&gt;&amp;quot;, I would need to extract it from the full job name or use a wildcard in the Where clause. With the addition of these three columns, I will show much easier this becomes.&lt;/p&gt;

&lt;p&gt;If I wanted to check for record locks, not using &lt;tt&gt;RECORD_LOCK_INFO&lt;/tt&gt;, I would use the Display Record Locks command, &lt;tt&gt;DSPRCDLCK&lt;/tt&gt;. For example, if I wanted to check for record locks on &lt;tt&gt;TESTFILE&lt;/tt&gt;, in my library, I would use the following:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  DSPRCDLCK FILE(TESTFILE)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Which will show me the following:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/04/new-job-columns-added-to-record-lock.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8197299503519670368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/new-job-columns-added-to-record-lock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8197299503519670368'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8197299503519670368'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/new-job-columns-added-to-record-lock.html' title='New Job columns added to the Record Lock View'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2659035140932715210</id><published>2026-04-07T05:00:00.004-05:00</published><updated>2026-04-07T05:00:00.115-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>New columns added to the Object Lock View</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;While the addition of these three new columns to the &lt;a href=&quot;/2020/01/using-sql-to-look-for-record-locks.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;OBJECT_LOCK_INFO&lt;/tt&gt; SQL View&lt;/a&gt; may not appear to be significant, I know it will make it easier for me to process data for jobs.&lt;/p&gt;

&lt;p&gt;The three new columns are all part of the long job name, and now have their own columns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;tt&gt;JOB_USER&lt;/tt&gt;:  User profile of the job&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOB_NAME_SHORT&lt;/tt&gt;:  Name of the job&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOB_NUMBER&lt;/tt&gt;:  Number of the job&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Prior to the addition of these columns if I wanted to list my jobs, with the user profile &amp;quot;&lt;tt&gt;SIMON&lt;/tt&gt;&amp;quot;, I would need to extract it from the full job name or use a wildcard in the Where clause.&lt;/p&gt;

&lt;p&gt;Before I show any SQL statements I need to explain the scenario I created. I have two programs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Program 1: This RPG program opens the file &lt;tt&gt;TESTFILE&lt;/tt&gt; for update and then &lt;a href=&quot;/2019/03/delaying-job-for-fraction-of-second.html&quot; target=&quot;_blank&quot;&gt;pauses&lt;/a&gt; for ten minutes&lt;/li&gt;
&lt;li&gt;Program 2: The second program uses a display file, &lt;tt&gt;TESTDSPF&lt;/tt&gt;, and uses the &lt;tt&gt;EXFMT&lt;/tt&gt; operation code to show it on the screen&lt;/li&gt;
&lt;/ol&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/04/new-columns-added-to-object-lock-view.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2659035140932715210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/new-columns-added-to-object-lock-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2659035140932715210'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2659035140932715210'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/new-columns-added-to-object-lock-view.html' title='New columns added to the Object Lock View'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1909420976527269331</id><published>2026-04-01T05:00:00.003-05:00</published><updated>2026-04-01T05:00:00.120-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Viewing the job&#39;s overrides</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I have been &lt;i&gt;burned&lt;/i&gt; before by file overrides, which point input, output, update, etc. both to an expected file. Anything new that comes along to help me show overrides makes me happy. The Fall 2025 Technology Refreshes, &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;1 and 7.5 TR7&lt;/a&gt;, has done that with a new SQL View: &lt;tt&gt;OVERRIDE_INFO&lt;/tt&gt;. This view will return information about the overrides for the current job only.&lt;/p&gt;

&lt;p&gt;I can override all kinds of files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;OVRDBF&lt;/tt&gt;:  database files&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;OVRDSPF&lt;/tt&gt;:  display files&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;OVRMSGF&lt;/tt&gt;:  message files&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;OVRPRTF&lt;/tt&gt;:  printer files&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;OVRSAVF&lt;/tt&gt;:  save files&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;OVRTAPF&lt;/tt&gt;:  tape files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I readily admit I have not used all of these commands.&lt;/p&gt;

&lt;p&gt;There are three different levels I can scope an override:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/04/viewing-jobs-overrides.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1909420976527269331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/04/viewing-jobs-overrides.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1909420976527269331'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1909420976527269331'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/04/viewing-jobs-overrides.html' title='Viewing the job&#39;s overrides'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1567606104689147808</id><published>2026-03-27T05:00:00.009-05:00</published><updated>2026-03-27T05:00:00.131-05:00</updated><title type='text'>Update to the technical resources roadmap</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot;src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnEjBcr78WphqxwMiSI2U4AOK3vxScx4Fuqx7k5NihiGwGmcgjWqwPrPsFQIR_Ogamjv-WexK4BDjVB0y7VWHekBw8cRX1K9LHEard9Xoi-pAnT015jZC6Vo79LN9kfYlA36IlkpCRVCBa7eoj8tHQ3HGftWvctOKlsXJDJOiL0o82PxxIwhjktXTtSpU/s200/ibm_logo.jpg&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;Yesterday an updated version of the &lt;em&gt;IBM i&lt;/em&gt; technical resource roadmap was published. This web page contains a list of useful links for all things &lt;em&gt;IBM i&lt;/em&gt;, from both IBM and other sources too. You will even find a link to this website in the Blogs section.&lt;/p&gt;

&lt;p&gt;You can visit the page using the link &lt;a href=&quot;https://developer.ibm.com/articles/ibm-i-resources-roadmap/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have also updated the link, number 6 in the &quot;Links to useful sites&quot;, on the right.&lt;/p&gt;

&lt;p&gt;I am sure you will find something of interest on that page.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1567606104689147808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/update-to-technical-resources-roadmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1567606104689147808'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1567606104689147808'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/update-to-technical-resources-roadmap.html' title='Update to the technical resources roadmap'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-6112196360314109470</id><published>2026-03-25T05:00:00.005-05:00</published><updated>2026-03-25T05:00:00.116-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Using SQL to view system problems</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Just a few weeks ago someone asked me if there was a way, using SQL, he could view problems on his system. What we mean by &amp;quot;problems&amp;quot; are not just error messages. These are the kinds of problems/errors that create a &amp;quot;problem&amp;quot; on your partition that you would use the &lt;tt&gt;DSPRPB&lt;/tt&gt;, Display Problem, command to view.&lt;/p&gt;

&lt;p&gt;Fortunately in the Fall 2025 Technology Refreshes, &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;1 and 7.5 TR7&lt;/a&gt;, was a new SQL View that displays this information: &lt;tt&gt;PROBLEM_INFO&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;Before I describe &lt;tt&gt;PROBLEM_INFO&lt;/tt&gt;, I want to explain the methodology that was used before. &lt;em&gt;IBM i&lt;/em&gt; has a Problem Management function that alerts when there are issues with hardware and system software. If I wanted to see what problems there are on this partition I would use the &lt;tt&gt;DSPPRB&lt;/tt&gt;, Display Problem, command. I can enter the following on any command line:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;95%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
 DSPPRB
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/03/using-sql-to-view-system-problems.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/6112196360314109470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/using-sql-to-view-system-problems.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6112196360314109470'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/6112196360314109470'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/using-sql-to-view-system-problems.html' title='Using SQL to view system problems'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8231323174218077713</id><published>2026-03-24T05:00:00.012-05:00</published><updated>2026-03-24T05:00:00.116-05:00</updated><title type='text'>Wisconsinites join the RPGPGM.COM-unity</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s400/ribbon.jpg&quot; width=&quot;400&quot;/&gt;
&lt;/center&gt;

&lt;p&gt;At my first conference of the year, &lt;a href=&quot;https://wmcpa.org/&quot; target=&quot;_blank&quot;&gt;WMCPA&lt;/a&gt; iCon, I handed out 51 ribbons to the newest members of the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;You can see photographs of these new members &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-2026.html#wmcpa_icon_2026&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you see me at an &lt;em&gt;IBM i&lt;/em&gt; event feel free to introduce yourself to me. In all likelihood I will have a &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; ribbon on me, and you can become a member.  All I ask in return is a photograph of you with it.&lt;/p&gt;

&lt;p&gt;If you would like to learn more about the &lt;b&gt;RPGPGM.COM-unity&lt;/b&gt; click &lt;a href=&quot;https://more.rpgpgm.com/p/rpgpgmcom-unity-pictures.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8231323174218077713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/wisconsinites-join-rpgpgmcom-unity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8231323174218077713'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8231323174218077713'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/wisconsinites-join-rpgpgmcom-unity.html' title='Wisconsinites join the RPGPGM.COM-unity'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeyzS6N_TmR65DRRcyMqFtr3uZSRmDqk23HPV0sGIk_S-spo8TqtF9UrNhWnRc9d8T0YF70CdEn3rQHw4MLES9DRNUOqOcAW8u80nFbiMKnGYtspF5DDDgUZcuhRUW_QBp_yqTRqcziVQWdNonuGEtQHrKzEw-5Qjr6gBaNTcQhKjdJvQrrjIKpstz_c/s72-c/ribbon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1512247743795299254</id><published>2026-03-18T05:00:00.004-05:00</published><updated>2026-03-18T05:00:00.131-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Reducing the amount of unnecessary Index Advisor data</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I do check the &lt;a href=&quot;/2017/09/index-advisor-helps-performance.html&quot; target=&quot;_blank&quot;&gt;Index Advisor&lt;/a&gt; on a regular basis to see what is recommended. I have found that this perspective can become overwhelmed by old data. Who cares what index were advised over a year ago? I either addressed that advice, or the program(s) were changed that used the files in that way.&lt;/p&gt;

&lt;p&gt;Every six months I go into the tool and clear the data. This way I will only see the recent recommendations. I have an entry in my calendar to remind me to do this. Wouldn&amp;#39;t it be nice if this could be automated.&lt;/p&gt;

&lt;p&gt;As part of the latest Technology Refreshes, &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;1 and 7.5 TR7&lt;/a&gt; a new Global variable is introduced that will automate the purging for me.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/03/reducing-amount-of-unnecessary-index.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1512247743795299254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/reducing-amount-of-unnecessary-index.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1512247743795299254'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1512247743795299254'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/reducing-amount-of-unnecessary-index.html' title='Reducing the amount of unnecessary Index Advisor data'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1159802194448455071</id><published>2026-03-17T05:00:00.007-05:00</published><updated>2026-03-17T05:00:00.116-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Limiting the amount of data SELF retains</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;While I love the amount of information that the &lt;em&gt;IBM i&lt;/em&gt; will retain for us, there are times where it can become overwhelming, or redundant. An example of this is how much &lt;abbr title=&quot;SQL Error Logging Facility&quot;&gt;SELF&lt;/abbr&gt;, &lt;a href=&quot;/2023/04/personalised-sql-error-logging-self.html&quot; target=&quot;_blank&quot;&gt;SQL Error Logging Facility&lt;/a&gt;, data do I wish to retain.&lt;/p&gt;

&lt;p&gt;Prior to the latest Technology Refreshes, &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;IBM i&lt;/em&gt; 7.6 &lt;abbr title=&quot;Technology Refresh&quot;&gt;TR&lt;/abbr&gt;1 and 7.5 TR7&lt;/a&gt;, I was responsible for &lt;a href=&quot;/2024/12/what-i-do-with-self-data.html&quot; target=&quot;_blank&quot;&gt;purging the SELF error log table&lt;/a&gt;, &lt;tt&gt;QSYS2/SQL_ERRORT&lt;/tt&gt;. As part of these TRs a new &lt;a href=&quot;/2016/05/global-variables-way-to-share-data-in.html&quot; target=&quot;_blank&quot;&gt;Global variable&lt;/a&gt; was introduced.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/03/limiting-amount-of-data-self-retains.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1159802194448455071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/limiting-amount-of-data-self-retains.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1159802194448455071'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1159802194448455071'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/limiting-amount-of-data-self-retains.html' title='Limiting the amount of data SELF retains'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8886687734860751131</id><published>2026-03-11T05:00:00.007-05:00</published><updated>2026-03-11T05:00:00.116-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Finding Table functions with SYSFUNCS</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;In every &lt;em&gt;IBM i&lt;/em&gt; recent release and Technology Refresh a few new Audit Journal Table extract functions are added. I wanted to see which one were on the &lt;em&gt;IBM i&lt;/em&gt; partition I was using. I was tempted to use the &lt;a href=&quot;/2016/01/using-sql-for-objects-statistics.html&quot; target=&quot;_blank&quot; title=&quot;Make a list of the objects on your IBM i&quot;&gt;&lt;tt&gt;OBJECT_STATISTICS&lt;/tt&gt; Table function&lt;/a&gt; to get a list of them:&lt;/p&gt;

&lt;table border=&quot;1&quot; width=&quot;70%&quot; class=&quot;table-code&quot;&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;
01  SELECT OBJNAME,OBJLONGNAME
02  FROM TABLE(QSYS2.OBJECT_STATISTICS(&amp;#39;SYSTOOLS&amp;#39;,&amp;#39;*ALL&amp;#39;,&amp;#39;AUD*&amp;#39;))
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Line 1: I am only interested in the system object name, &lt;tt&gt;OBJNAME&lt;/tt&gt;, and the long (SQL) object name, &lt;tt&gt;OBJLONGNAME&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Line 2: The Audit Journal Table functions are in the &lt;tt&gt;SYSTOOLS&lt;/tt&gt; library. I am using the &lt;a href=&quot;/2021/07/object-statistics-wildcard-makes-it.html&quot; target=&quot;_blank&quot; title=&quot;Using the wild card with the object name in OBJECT_STATISTICS&quot;&gt;wild card for the object name&lt;/a&gt;, in the third parameter, to find all the objects that start with &amp;#39;&lt;tt&gt;AUD&lt;/tt&gt;&amp;#39;.&lt;/p&gt;

&lt;p&gt;The results were:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/03/finding-table-functions-with-sysfuncs.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8886687734860751131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/finding-table-functions-with-sysfuncs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8886687734860751131'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8886687734860751131'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/finding-table-functions-with-sysfuncs.html' title='Finding Table functions with SYSFUNCS'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-7252073389695899605</id><published>2026-03-04T05:00:00.004-06:00</published><updated>2026-03-04T05:00:00.130-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Retrieving the description for the Audit Journal Entry Types</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I have, to date, been disappointed that I could not programmatically retrieve a description for the 420 Audit journal entry types. Referring to IBM&amp;#39;s documentation was just not practical. A new SQL View in the Fall 2025 &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot; title=&quot;IBM i Technical Refreshes 7.6 TR1 and 7.5 TR7&quot;&gt;Technical Refreshes&lt;/a&gt; has given me what I wanted, a list of all the journal entry types with their descriptions.&lt;/p&gt;

&lt;p&gt;The View is &lt;tt&gt;JOURNAL_CODE_INFO&lt;/tt&gt;, which is found in the library &lt;tt&gt;QSYS2&lt;/tt&gt;. It contains the following columns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;tt&gt;JOURNAL_CODE&lt;/tt&gt;:  The journal code&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOURNAL_CODE_DESCRIPTION&lt;/tt&gt;:  Description of the Journal code&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOURNAL_ENTRY_TYPE&lt;/tt&gt;:  Journal entry type&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;JOURNAL_ENTRY_TYPE_DESCRIPTION&lt;/tt&gt;:  Description for the journal entry type&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The journal codes are for a specific &amp;quot;action&amp;quot;, while the Journal Entry Type is the type of information. You can see this with the new View with the following statement:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/03/retrieving-description-for-audit.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/7252073389695899605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/03/retrieving-description-for-audit.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7252073389695899605'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7252073389695899605'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/03/retrieving-description-for-audit.html' title='Retrieving the description for the Audit Journal Entry Types'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-4278676489132928066</id><published>2026-02-25T05:00:00.016-06:00</published><updated>2026-02-25T05:00:00.118-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Improvements to GENERATE_SPREADSHEET</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s200/sql.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;The Fall 2025 &lt;a href=&quot;/2025/10/fall-2025-technology-refreshes-announced.html&quot; target=&quot;_blank&quot; title=&quot;IBM i Technical Refreshes 7.6 TR1 and 7.5 TR7&quot;&gt;Technical Refreshes&lt;/a&gt; brought some significant improvements to the &lt;a href=&quot;/2024/01/creating-excel-spreadsheets-with-sql.html&quot; target=&quot;_blank&quot; title=&quot;Generate Microsoft Excel spreadsheets using SQL&quot;&gt;&lt;tt&gt;GENERATE_SPREADSHEET&lt;/tt&gt; SQL scalar function&lt;/a&gt;. These being:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#1&quot;&gt;Execute SQL statement within an IFS files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#2&quot;&gt;Append results from another SQL statement to an existing spreadsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#3&quot;&gt;Create a new worksheet, and start the output at a specific row and column&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#4&quot;&gt;End the Java program that is started to generate the spreadsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#5&quot;&gt;No longer have to use STDOUT to capture information from &lt;tt&gt;GENERATE_SPREADSHEET&lt;/tt&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not going to repeat what I have said in &lt;a href=&quot;/2024/01/creating-excel-spreadsheets-with-sql.html&quot; target=&quot;_blank&quot; title=&quot;Generate XLS, XLSX, and CSV using SQL&quot;&gt;previous posts&lt;/a&gt;. But, I am going to give an example, below of generating a spreadsheet as a reminder:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/02/improvements-to-generatespreadsheet.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/4278676489132928066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/02/improvements-to-generatespreadsheet.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4278676489132928066'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/4278676489132928066'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/02/improvements-to-generatespreadsheet.html' title='Improvements to GENERATE_SPREADSHEET'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3wbkA3IVsmB_BH9NvijYt3LB9KiQitQocCtop_mqznyIGhP0zLviDV0sLODg3NHKINv7Wx8okZ0eMsH5B6bC9-oZjMUycD92WGGOuIirNfWXDWISPdWoX-jf6srxTUTpJOe2qv6WgsKrG7txXp074Vbl-rt-wIb91-8340_qT4gYAuQZ__ks1sdpGg2U/s72-c/sql.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-8925271740349032587</id><published>2026-02-24T05:00:00.010-06:00</published><updated>2026-02-24T05:47:50.505-06:00</updated><title type='text'>IBM Bob formally announced</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;100&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvagd33g5rGPQcAobEEqXigPb7Zs4wyrSO7KjVxrkqXAaNWDSyIMRrh56tNNeZ6sc6wwQQlBt6ONbfn5sDHv5oUztHyOxNeyvTEoZd-SpGDwKrNqUVRKJ93cIdcgFsVy-J1rK5lOm8ghFruYsvnBtWNG3kiq6xDGpiZ_EnNt-Bo33luOCDePHQuUlBe_c/s200/bob.jpg&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;On Friday February 20 IBM&#39;s AI Bob was formally announced with a planned availability date of March 24.&lt;/p&gt;

&lt;p&gt;You can read the announcement &lt;a href=https://www.ibm.com/docs/en/announcements/bob-100-helps-developers-solve-enterprise-problems-within-real-codebases-while-offering-proactive-improvement-insights tatget=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/8925271740349032587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/02/ibm-bob-formally-announced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8925271740349032587'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/8925271740349032587'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/02/ibm-bob-formally-announced.html' title='IBM Bob formally announced'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvagd33g5rGPQcAobEEqXigPb7Zs4wyrSO7KjVxrkqXAaNWDSyIMRrh56tNNeZ6sc6wwQQlBt6ONbfn5sDHv5oUztHyOxNeyvTEoZd-SpGDwKrNqUVRKJ93cIdcgFsVy-J1rK5lOm8ghFruYsvnBtWNG3kiq6xDGpiZ_EnNt-Bo33luOCDePHQuUlBe_c/s72-c/bob.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-7321057252272713995</id><published>2026-02-23T05:00:00.007-06:00</published><updated>2026-02-23T05:09:03.679-06:00</updated><title type='text'>IBM document: IBM i 7.5 vs 7.6 comparison</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZe-7dMTL-1QYHNwMvAMfVA4fxPc1NQgSYdUCDDT5kemmA-ZrcCVbwwuxTDJDypqhUbz1sMIAKz_wV0bs9XRsbuMeJVPKUy2DullmgGZK_yyzX1t3vX1ZLxmUKJ419hXhz2S7KFbLydUALJSxZ-GyqgC2HOE-JEtsHQsdnfuzv02LXdCPutQ2lj09Ulpk/s200/ibm_logo.jpg&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;On January 30, IBM Support published a page called &quot;IBM i V7R5 versus V7R6 comparison&quot; (shame on IBM Support for not using the proper names of 7.5 and 7.6).&lt;/p&gt;

&lt;p&gt;The page is to answer the question: What are the differences between 7.5 and 7.6?&lt;/p&gt;

&lt;p&gt;I thought it was something useful to share because, as well as the comparison, there are links to many useful pages of information. You can reach the page &lt;a href=https://www.ibm.com/support/pages/node/7258343?myns=swgother&amp;mynp=OCSWG60&amp;mync=E&amp;cm_sp=swgother-_-OCSWG60-_-E target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you find it as interesting as I did.&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/7321057252272713995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/02/ibm-document-ibm-i-75-vs-76-comparison.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7321057252272713995'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7321057252272713995'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/02/ibm-document-ibm-i-75-vs-76-comparison.html' title='IBM document: IBM i 7.5 vs 7.6 comparison'/><author><name>Simon Hutchinson</name><uri>http://www.blogger.com/profile/11190349031029500428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFE7C4I6b9NsZbBq7jgJ1lLDYcwnZ2Tf_8W5AogXwOpuHjV9YkwSHKS9wwPJSYXkj727mBixwFb-cfGDXUqJwBYFhEXAdwIfFNuz9INaBmNBvlOTjaQmJawFnXSj0KhudIbgSCzQSyMcSpFknpnJF8RLQ_sjeaYPXvq9e0kiFNbiHNh18/s220/simon_hutchinson_2025.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZe-7dMTL-1QYHNwMvAMfVA4fxPc1NQgSYdUCDDT5kemmA-ZrcCVbwwuxTDJDypqhUbz1sMIAKz_wV0bs9XRsbuMeJVPKUy2DullmgGZK_yyzX1t3vX1ZLxmUKJ419hXhz2S7KFbLydUALJSxZ-GyqgC2HOE-JEtsHQsdnfuzv02LXdCPutQ2lj09Ulpk/s72-c/ibm_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>