<?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-07-13T07:44:44.841-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>1120</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5793080657224884522</id><published>2026-07-13T05:00:00.000-05:00</published><updated>2026-07-13T05:00:00.111-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operations"/><title type='text'>Spring 2026 Performance Guide available</title><content type='html'>&lt;img align=&quot;right&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s200-rw/ibm_logo.jpg&quot; width=&quot;200&quot; /&gt;

&lt;p&gt;A new version of IBM&#39;s &quot;IBM i on Power – Performance FAQ&quot; was published at the beginning of this month, and is available for download.&lt;/p&gt;

&lt;p&gt;The guide provides us with tips on how to measure, and improve, the performance of your IBM Power server, &lt;em&gt;IBM i&lt;/em&gt; partitions, Db2 database, and programs that run within it.&lt;/p&gt;

&lt;p&gt;You will find the document &lt;a href=&quot;https://www-api.ibm.com/adobe/assets/urn:aaid:aem:84715ed3-de7d-426a-92f3-43f438ebad4d/original/as/POW03102.pdf&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I always download it and read the passages I feel are relevant to my situation. I recommend you do the same.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5793080657224884522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/spring-2026-performance-guide-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5793080657224884522'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5793080657224884522'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/spring-2026-performance-guide-available.html' title='Spring 2026 Performance Guide 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/AVvXsEhZIXcD3XV6haWNzzEYDaAowAT8_S1FPycpn3Pt4HUcsSzbrui2OpHlANdLIFHEs40MVimMxbHAn373cIB_PQLtkSNiEdnw1SyGoJLCDw3NMRiL5jIM6Msn27vYC_V-VYr7SMeOV7ay1SDp1WtbiYdiYMcqJRwD8QTB7Dy8rE_H9cuM0pRgUwF7_ucogHI/s72-c-rw/ibm_logo.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-249102059609286503</id><published>2026-07-10T05:00:00.000-05:00</published><updated>2026-07-10T05:00:00.120-05:00</updated><title type='text'>More information regarding IBM Bob Premium Package</title><content type='html'>&lt;img height=&quot;200&quot; data-original-height=&quot;226&quot; data-original-width=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s200/bob.jpg&quot; align=&quot;right&quot;/&gt;

&lt;p&gt;IBM made an announcement yesterday, Thursday July 9, with more information about the new IBM Bob Premium Package for i. This includes some more information about the additions to it.&lt;/p&gt;

&lt;p&gt;I am not going to repeat what is says. Just provide you with the link to it &lt;a href=&quot;https://www.ibm.com/new/announcements/introducing-the-ibm-bob-premium-package-for-i&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/249102059609286503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/more-information-regarding-ibm-bob.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/249102059609286503'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/249102059609286503'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/more-information-regarding-ibm-bob.html' title='More information regarding IBM Bob Premium Package'/><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/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s72-c/bob.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-9022324831368142669</id><published>2026-07-08T05:00:00.000-05:00</published><updated>2026-07-08T05:00:00.111-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'>Using SQL to retrieve information from the internet</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 many different web sites that offer information that would be useful to consume in &lt;em&gt;IBM i&lt;/em&gt;. I have seen several examples of doing this, and I thought I would show my example, which I think, shows how simple it can be.&lt;/p&gt;

&lt;p&gt;In my example I want to retrieve the share prices for the three biggest technology companies in the city I live in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dell, stock symbol: &lt;tt&gt;DELL&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;IBM, symbol: &lt;tt&gt;IBM&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;Tesla, symbol: &lt;tt&gt;TSLA&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/9022324831368142669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9022324831368142669'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/9022324831368142669'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/using-sql-to-retrieve-information-from.html' title='Using SQL to retrieve information from the internet'/><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-2956196168070887245</id><published>2026-07-02T05:00:00.000-05:00</published><updated>2026-07-02T05:02:18.633-05:00</updated><title type='text'>July&#39;s presentations</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCLlsfsGaitTe05m16VkcsjD_VWOnhYPNn5xvvzRSzZSVE_WOWuAMB0IPqTlmAzzA4Qp64uECU8L3Yo9H8RnBGXGqjwtfc82n5LfUNAK2x1X-J5eURcTOAoSv2snf7qnNm-eElDTF_fY6Nsap-DB_4Z_j2yGT6A6Uwtz4ZVT75a9AxYCvmqiHSTnwb3A/s200/man-with-megaphone.gif&quot; align=&quot;right&quot;&gt;

&lt;p&gt;July is the month of &lt;a href=&quot;https://www.oceanusergroup.org/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;OCEAN&lt;/b&gt;&lt;/a&gt;’s TechCon 2026. TechCon is one of my favorite events of the year, and it is the &lt;em&gt;IBM i&lt;/em&gt; event of the year in the western United States. The event consists of two days, a virtual day, Thursday July 23, and an in-person one, Friday July 24. I have been asked to speak on the Friday, and will be giving four presentations.&lt;/p&gt;

&lt;p&gt;If you want to learn more about the &amp;quot;&lt;i&gt;best in the west&lt;/i&gt;&amp;quot; you can check out the TechCon website to see who else is presenting, and register &lt;a href=&quot;https://oceanconference2026.s3.us-east-1.amazonaws.com/index.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;br&gt;

&lt;p&gt;Earlier in the month, Tuesday July 14, I will be virtually visiting with the &lt;a href=&quot;https://info.briteskies.com/midwestusergroup&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;IBM i Midwest User Group&lt;/b&gt;&lt;/a&gt;, iMWUG, to make two presentations about things to make tracking changes to your database easier.&lt;/p&gt;

&lt;p&gt;You can register by clicking on the link on this &lt;a href=&quot;https://events.teams.microsoft.com/event/ef1c27b7-5db5-4529-a918-30008d82bd2b@e21ff3a0-f704-4ddc-a91b-f273bd42ce81&quot; target=&quot;_blank&quot;&gt;page&lt;/a&gt;.&lt;/p&gt;

&lt;br&gt;

&lt;p&gt;Later the same evening, Tuesday July 14, the &lt;a href=&quot;https://ctxiug.blogspot.com/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Central Texas IBM i User Group&lt;/b&gt;&lt;/a&gt;, will be hearing from IBM Champion Gregory Simmons, who will be debuting a brand-new presentation to us, about using the three-part name in SQL. Come and learn what this is, and how you can use it.&lt;/p&gt;

&lt;p&gt;The event is online, free, and you can register &lt;a href=&quot;https://ctxiug.blogspot.com/2026/06/july-2026-meeting.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
  
&lt;br&gt;

&lt;p&gt;I hope to see you at one of these events.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/07/julys-presentations.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2956196168070887245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/07/julys-presentations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2956196168070887245'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2956196168070887245'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/07/julys-presentations.html' title='July&#39;s presentations'/><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/AVvXsEhMCLlsfsGaitTe05m16VkcsjD_VWOnhYPNn5xvvzRSzZSVE_WOWuAMB0IPqTlmAzzA4Qp64uECU8L3Yo9H8RnBGXGqjwtfc82n5LfUNAK2x1X-J5eURcTOAoSv2snf7qnNm-eElDTF_fY6Nsap-DB_4Z_j2yGT6A6Uwtz4ZVT75a9AxYCvmqiHSTnwb3A/s72-c/man-with-megaphone.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-3554787015413089635</id><published>2026-07-01T05:00:00.000-05:00</published><updated>2026-07-01T05:00:00.113-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'>Retrieving the value of a column from a previous row</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 was sent a copy of a job log from weeks ago, and had been asked to identify which parts of the job had run the longest. Fortunately, the spool file of the job log was still available so I could do some SQL &lt;i&gt;magic&lt;/i&gt; to extract useful information from it. The first thing I want to do is to determine is how long each program or command took. I can extract the timestamp from the spool file, but I need to be able to retrieve the timestamp for the previous entry too. How can I retrieve that information for the previous entry?&lt;/p&gt;

&lt;p&gt;After a bit of searching I found a SQL function that would allow me to do this. Rather than go straight into showing what I did with the joblog spool file, I am going to start with a simpler example. I have a DDL table, &lt;tt&gt;TESTTABLE&lt;/tt&gt;, that has a decimal column, &lt;tt&gt;TEST_NUMBER&lt;/tt&gt;, and nine rows of data. I can show the data using the following SQL statement:&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  SELECT TEST_NUMBER
02    FROM TESTTABLE
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Which returns:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/3554787015413089635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3554787015413089635'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/3554787015413089635'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/retrieving-value-of-column-from.html' title='Retrieving the value of a column from a previous row'/><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-7662028778501491097</id><published>2026-06-29T05:00:00.000-05:00</published><updated>2026-06-29T05:00:00.152-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="operations"/><title type='text'>Migrate While Active Redbook</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;Migrate While Active, &lt;abbr title=&quot;Migrate While Active&quot;&gt;MWA&lt;/abbr&gt;, is one of the more exciting features recently introduced for &lt;em&gt;IBM Power&lt;/em&gt; hardware and the &lt;em&gt;IBM i&lt;/em&gt; operating system. It is tool that helps me to move &lt;em&gt;IBM i&lt;/em&gt; workloads to new servers, data centers, or the cloud with near-zero downtime.&lt;/p&gt;

&lt;p&gt;Basically MWA is performed in three steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Background Copy: A copy of the partition is made, while the source partition is fully online and active.&lt;/li&gt;
&lt;li&gt;Data Sync: It constantly synchronizes all data changes from the live system to the copy.&lt;/li&gt;
&lt;li&gt;Cutover: Once both match, I make the switch to the new partition.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This results in almost no interruption in service.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/7662028778501491097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7662028778501491097'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/7662028778501491097'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/migrate-while-active-redbook.html' title='Migrate While Active Redbook'/><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-2117893568705686880</id><published>2026-06-25T05:00:00.000-05:00</published><updated>2026-06-25T07:10:36.849-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new release"/><title type='text'>IBM Bob Premium Package for i released</title><content type='html'>&lt;img height=&quot;200&quot; data-original-height=&quot;226&quot; data-original-width=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s200/bob.jpg&quot; align=&quot;right&quot;&gt;

&lt;p&gt;Today the first significant update for &lt;a href=&quot;https://bob.ibm.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;IBM Bob&lt;/a&gt;, the AI-development tool for &lt;em&gt;IBM i&lt;/em&gt; has been released.&lt;/p&gt;

&lt;p&gt;It is called &lt;em&gt;IBM Bob Premium Package for i&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can read the announcement, that gives you all the details on the new features, &lt;a href=&quot;https://bob.ibm.com/blog/bob-v2-release-announcement&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is also an Overview page, that includes the link to download it, &lt;a href=&quot;https://bob.ibm.com/docs/ide/premium-packages/bob-for-i/bob-for-i-index&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You do have to be using IBM Bob 2.0.0 to use &lt;em&gt;IBM Bob Premium Package for i&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;After the first paragraph in the Overview document is a button to &amp;quot;Copy Markdown&amp;quot;. I strongly recommend you do. I clicked the button and then pasted what was copied into Notepad. The markdown contains all kinds of useful information to successfully install the new version.&lt;/p&gt;

&lt;p&gt;Within markdown are some paths to further documentation. As paths do not include the domain I have for your convenience done so below:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/2117893568705686880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2117893568705686880'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2117893568705686880'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/ibm-bob-premium-package-for-i-released.html' title='IBM Bob Premium Package for i released'/><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/AVvXsEh1A5qZmicp1LmzRe3NB8gJsPa_vyrFxhfeiiQ3pix0K3kZwieDHuEyd5btKwVViJcx1GiDTsNMXh_ho30nSvKqgym0HuBNzisb2QfdDcDp4u-F00GeKlAuufEHuL8Bbg2RkRRBLgfBGnkIqAEhVS4xf7rLpe57kr2mzhUx0AvDJh60tbtzx3N8JgRyRLk/s72-c/bob.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5200747531360166272</id><published>2026-06-24T05:00:00.000-05:00</published><updated>2026-06-30T13:55:19.563-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'>Calculating the number of seconds for a time</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 admit this was a strange request. Interfacing data to another application is no big deal, but the way it wanted its date and time data formatted was. It wanted a character date, in *MDY format with the date separator characters, character time, with dots as the separator character, and an integer of the number of seconds that the time represented.&lt;/p&gt;

&lt;p&gt;I could calculate the seconds as:&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;
TotalSeconds = (Hours x 3600) + (Minutes x 60) + Seconds
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Fortunately I stumbled across a SQL scalar function that would do this for me: &lt;tt&gt;MIDNIGHT_SECONDS&lt;/tt&gt;. This returns the number of seconds that the time represents. Which is exactly what I am looking for.&lt;/p&gt;

&lt;p&gt;I can demonstrate this with the following SQL statement:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5200747531360166272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5200747531360166272'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5200747531360166272'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/calculating-number-of-seconds-for-time.html' title='Calculating the number of seconds for a time'/><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-5274808794220115004</id><published>2026-06-22T05:00:00.003-05:00</published><updated>2026-06-22T05:00:00.124-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="history"/><title type='text'>Another anniversary for IBM i and IBM Power</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSVxnOaD5DhrH7sNuIwLUGgPKXMt4w6bWYN05rIF0CmtfPcDTKgKAtWlOOldaDYHXdQ5XgtYI9EYP9mKV46HD5aEFwlFsZ2gdZ3wY9HbuAStxPAz238PkdypGGSU3RG9Zlpm8czqCdqQMdoqWTc1CLz7MDKLDml-_uCP_FTUWvT6ex-Hj6s0q1GCNXlX8/s320/38th.png&quot; align=&quot;right&quot; /&gt;

&lt;p&gt;Yesterday, Sunday June 21 2026, was the 38th anniversary of when the ancestor of the IBM Power and &lt;em&gt;IBM i&lt;/em&gt;, AS/400, was first announced. Excitement was high as the advancements made to create AS/400 were ground breaking, many other maufactures spent years developing the equivalent technologies into their hardware and software.&lt;/p&gt;

&lt;p&gt;Over the past 38 years a lot has changed, the AS/400 evolved through different forms, and names, before becoming the IBM Power server back in 2008.&lt;/p&gt;

&lt;p&gt;Does this mean that the &quot;AS/400&quot; is old and outdated? The Power servers can run several different operating system, including &lt;em&gt;IBM i&lt;/em&gt;. With the modern &lt;em&gt;IBM i&lt;/em&gt; operating system we can emulate the AS/400, and this advanced operating system can do so much more than the AS/400, and its operating system OS/400, ever could.&lt;/p&gt;

&lt;p&gt;I think I did a good job describing this history for the 35th anniversary. If you are interested in learning more what AS/400 was, and what it has become, read the story &lt;a href=&quot;/2023/06/35th-anniversary-of-ibm-i.html&quot; target=&quot;_blank&quot; title=&quot;35th anniversary of AS400, IBM Power, and IBM i&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy birthday IBM Power and &lt;em&gt;IBM i&lt;/em&gt;! May you have many more!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5274808794220115004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/another-anniversary-for-ibm-i-and-ibm.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5274808794220115004'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5274808794220115004'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/another-anniversary-for-ibm-i-and-ibm.html' title='Another anniversary for IBM i and IBM Power'/><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/AVvXsEhSVxnOaD5DhrH7sNuIwLUGgPKXMt4w6bWYN05rIF0CmtfPcDTKgKAtWlOOldaDYHXdQ5XgtYI9EYP9mKV46HD5aEFwlFsZ2gdZ3wY9HbuAStxPAz238PkdypGGSU3RG9Zlpm8czqCdqQMdoqWTc1CLz7MDKLDml-_uCP_FTUWvT6ex-Hj6s0q1GCNXlX8/s72-c/38th.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-1297972163095462074</id><published>2026-06-17T05:00:00.000-05:00</published><updated>2026-06-17T05:00:00.164-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'>Program to alert when jobs&#39; CPU percentage becomes too high</title><content type='html'>&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj53FB7SXIBEh7MlUrBkrON4n75UG36cWk_VPC-GqUI3imK92s5PoC_iToTCRzGm6dolGPWIiBvzut_FdyVYeDUnsWUfVYb5EnQ5sW2IodBAU3JW5n-Mio6rwDILhl5E97xy8YxyEIaX7ekCG89OiJlNMXdobFy_0XqmWULuA_tgxtqZc51EzM7aag2gEA/s200/rpg.png&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I was asked if there was a way to alert if a job exceeded a certain threshold of CPU percentage. The &lt;em&gt;IBM i&lt;/em&gt; operating system collects data through Collection Services. Navigator for i and Performance Data Investigator, &lt;abbr title=&quot;Performance Data Investigator&quot;&gt;PDI&lt;/abbr&gt;, can be used to analyze CPU heavy jobs, but this is all historical data there is no real time alerting.&lt;/p&gt;

&lt;p&gt;There are various tools from &lt;abbr title=&quot;Independent Software Vendors&quot;&gt;ISV&lt;/abbr&gt; that can do this. For this website I always write about solutions using just what comes in the &lt;em&gt;IBM i&lt;/em&gt; operating system, with no third party software.&lt;/p&gt;

&lt;p&gt;This problem allows me to use one of my favorite &lt;i&gt;Db2 for i&lt;/i&gt; table function, &lt;a href=&quot;/2015/11/getting-active-jobs-data-using-sql.html&quot; target=&quot;_blank&quot;&gt;&lt;tt&gt;ACTIVE_JOB_INFO&lt;/tt&gt;&lt;/a&gt;. This table function allows me to retrieve information about all of the active jobs on my partition.&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/1297972163095462074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1297972163095462074'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/1297972163095462074'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/program-to-alert-when-jobs-cpu.html' title='Program to alert when jobs&#39; CPU percentage becomes too high'/><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/AVvXsEj53FB7SXIBEh7MlUrBkrON4n75UG36cWk_VPC-GqUI3imK92s5PoC_iToTCRzGm6dolGPWIiBvzut_FdyVYeDUnsWUfVYb5EnQ5sW2IodBAU3JW5n-Mio6rwDILhl5E97xy8YxyEIaX7ekCG89OiJlNMXdobFy_0XqmWULuA_tgxtqZc51EzM7aag2gEA/s72-c/rpg.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-5632999225778281525</id><published>2026-06-10T04:00:00.000-05:00</published><updated>2026-06-10T04:03:22.325-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="history"/><title type='text'>RPGPGM.COM becomes a teenager</title><content type='html'>&lt;center&gt;
&lt;img border=&quot;0&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvmZrM3uziCFlkhpzc3MRnMxXPyYwGxfFly2E6l8-6FKCyrGdhwsp8Z284citpMY0wSxMLHr6mJnfOqjm7sIOZA68AuAlbvZlN0Cs2pYcSwNFILi9YXWcPJZpj-cDxy_nf_1shveoLWYVeCUdPM0uCbd4UzJT6HLCakGBFKqZKJu-dQTADOqTEM4CPko/s320/1.jpeg&quot;&gt;
&lt;/center&gt;

&lt;p&gt;Another year milestone has been reached as I celebrate the 13th birthday of &lt;em&gt;RPGPGM.COM&lt;/em&gt;. It has been an incredible personal journey since I have published that first post in 2013. Your &lt;a href=&quot;/p/testimonials.html&quot; target=&quot;_blank&quot;&gt;feedback and encouragement&lt;/a&gt; have made all the effort I have spent worthwhile.&lt;/p&gt;

&lt;p&gt;What has happened to me in the past twelve months?&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html#more&quot;&gt;Read more »&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.rpgpgm.com/feeds/5632999225778281525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5632999225778281525'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/5632999225778281525'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/rpgpgmcom-becomes-teenager.html' title='RPGPGM.COM becomes a teenager'/><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/AVvXsEgXvmZrM3uziCFlkhpzc3MRnMxXPyYwGxfFly2E6l8-6FKCyrGdhwsp8Z284citpMY0wSxMLHr6mJnfOqjm7sIOZA68AuAlbvZlN0Cs2pYcSwNFILi9YXWcPJZpj-cDxy_nf_1shveoLWYVeCUdPM0uCbd4UzJT6HLCakGBFKqZKJu-dQTADOqTEM4CPko/s72-c/1.jpeg" height="72" width="72"/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4373663334124272866.post-2772037222090523955</id><published>2026-06-03T05:00:00.000-05:00</published><updated>2026-06-03T05:00:00.108-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'>Determining the Ordinal date 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;A friend asked me if there was a simple way to calculate the &amp;quot;Julian&amp;quot; date when retrieving dates from a DDL table or DDS file with a date type field.&lt;/p&gt;

&lt;p&gt;Before I continue I need to describe the difference between the Julian and the Ordinal dates. While we all call a date in &lt;tt&gt;YYYYDDD&lt;/tt&gt; a &amp;quot;Julian&amp;quot; date, that is not correct. The Julian date is a count of days since January 1, 4713 BCE. I found this helpful &lt;a href=&quot;https://raleighastro.org/blog/2009/05/17/origin-of-julian-days/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;link&lt;/a&gt; describing why it is this date. The correct name for the &lt;tt&gt;YYYYDDD&lt;/tt&gt; date is the Ordinal date, which is recognized by the ISO 8601 standard.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Db2 for i&lt;/i&gt; includes a Julian day scalar function. The statement below show me using it with the date June 1, 2026:&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 JULIAN_DAY(&amp;#39;2026-06-01&amp;#39;)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;The result is:&lt;/p&gt;

&lt;a href=&quot;https://www.rpgpgm.com/2026/06/determining-ordinal-date-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/2772037222090523955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.rpgpgm.com/2026/06/determining-ordinal-date-with-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2772037222090523955'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/4373663334124272866/posts/default/2772037222090523955'/><link rel='alternate' type='text/html' href='https://www.rpgpgm.com/2026/06/determining-ordinal-date-with-sql.html' title='Determining the Ordinal date 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-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-06-03T13:33:12.460-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;/acs&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></feed>