![]() |
JPLTools
Home Page |
![]() Contact |
![]() Si cela vous a plu, envoyez moi un petit mail, ça me fait toujours plaisir de savoir ce que vous faites avec mes outils. Et s'il vous manque quelque chose, demandez, on ne sait jamais. ![]() If it pleased you, send me a little email, that always makes me happy to know what is done with my tools. And if you are lacking something, ask, you never know. I'm not very fluent in English.If any statement is not correct, feed back a better statement. |
The Frame generatorFrame | ![]() ![]() |
Excel powered by SSML2003 XLXML | ![]() ![]() |
Run sql and export output to excel SQL2XLS | ![]() ![]() |
CHKLNK | ![]() ![]() |
DSPIFS, DMPIFS | ![]() ![]() |
Retrieve a complete IFS file nameRTVIFSNAM | ![]() ![]() |
CRTSTMF | ![]() ![]() |
EXECSQL | ![]() ![]() |
EXECUTESQL | ![]() ![]() |
Retrieve SQL source statement RTVSQL | ![]() ![]() |
Sql Pivot Table | ![]() ![]() |
How to make a PDF file with RPG PDF | ![]() ![]() |
Export a spool to a PDF file SPLF2PDF | ![]() ![]() |
User Defined table Function | I've writen an article on UDTF for SystemiINetwork : Build a New Interface to Legacy Applications with SQL UDTFs |
Procedure & performance | I had a performance issue while converting a subroutine to a
subprocedure. I searched through my logic looking for reasons, but
found nothing wrong. The issue was elsewhere.
In this article I show you the pitfall that I discovered and how to avoid it while improving your code to use subprocedures, one of ILE's prettiest features. discoveries about the performance of RPG subprocedures.Q: Concerning your article "Procedures and Performance" (article ID 54505 at SystemiNetwork.com) maybe you could improve the performance of your procedure using the STATIC keyword in the local variable definition? A: Good question. I had the question on the tip of my tongue, but at the time that I wrote the article my point wasn't about optimizing the code, it was to show how painful my experience was. Done! Now it's time to show how to use the STATIC keyword. more on subprocedure performance discoveries |
2008-06-16 5250 modernization strategies |
![]() ![]() |
2008-08-31 Dynamic Where and Order-By |
![]() ![]() |
2011-05-04 When CCSID Constants Vary, Part I |
Learn how one simple character can make a program go crazy. Several years ago, I wrote an email processing program for the System i and posted the source on my Web site. Several people have downloaded the code, compiled the program, and run it without any problems…until recently. For a few months now, people have been reporting that the program crashes. The program MAIL, which worked perfectly for several years, suddenly went haywire. Read More >> |
2011-06-01 When CCSID Constants Vary, Part II |
Don't let a small thing like a
literal string completely ruin your multi-national program.
The variations of CCSID are a vast topic and are in fact the main issue to consider during globalization of an application. You will find many pages on the Web on this topic (search for Unicode, CCSID, globalization, or national language support). Some of the most interesting are the ones from the IBM i Information Center. In my previous article, I showed how a simple line of RPG code can turn a program haywire just because the JOB CCSID has changed. In this article, I will explain how to handle literal strings, which are sensitive to CCSID variations. Read More >> |
2011-07-06 When CCSID Constants Vary, Part III |
Learn some tips and tricks to correctly handle literal constants. My first article described how a CCSID variation can turn a program crazy. My second article described the solution, which requires correctly handling literal constants. In this last article, I share some tips and tricks I found while solving the bug with the @. Read More >> |
2011-12-09 Analyze Your Programs And Applications, Part I |
In the first of this series of TechTips, find information about each object in each library. Recently, a friend called me for help. His boss asked him two questions:
And of course, the boss didn't want to invest in software for analyzing cross-references. "With all the commands in the OS, there is at least one that gives this info, isn't there?" |
2012-02-04 Analyze Your Programs And Applications, Part II |
The first part of this article series showed how DSPOBJD can easily provide statistics to manage a general recompilation project. But it only touched the surface of all the things you get with the DSPxxx commands. Read More >> |
2012-07-06 Audit Your Exit Points |
Suppose it's the beginning of a new year, and the first time the human resources manager logs into payroll, he unknowingly sends the file of annual salaries to an email address it shouldn't go to, by directly Telnet-ing port 25, something discreet and undetectable. Read More >> |
2012-08-10 Analyze Your Programs And Applications, Part III |
Fill the gap between modules and ILE programs for a full
panorama of your ILE application.
Part I and Part II of this series have shown how some system commands can be used to dissect in depth one application, without the source code. But these analyses suffer from a lack of information for ILE programs—namely, the link between the program and embedded modules. Read More >> |
2022-01-06 DB Modernization Plan |
A step by step modernization plan to modernize existing database, allowing creation of new application on a normalized database with as less as possible impacts on existing application. |
|
|
Excel powered by Multiplan ... (outdated)SYLK2 | ![]() ![]() |
Excel powered by Multiplan ... (outdated) SQL2SYLK | ![]() ![]() |
Trucs et Astuces pour AS400 | Ces rubriques contiennent beaucoup plus d'extrait de code que de programmes entiers. Elles visent à résoudre un problème particulier sans chercher à apporter une solution globale. |
/COPY | ![]() ![]() |
BRKMSG | ![]() ![]() |
CHGENV, CHGLIBLIST | ![]() ![]() |
CHGOBJATR | ![]() ![]() |
FINDMBR | ![]() ![]() |
INDENT Free-RPG | ![]() ![]() |
JPL020 | ![]() ![]() |
QSYSOPR | ![]() ![]() |
MAKE | ![]() ![]() |
OBJUNLCK | ![]() ![]() |
The RPG Bitmap maker | ![]() ![]() |
Send a Mime Mail MAIL | ![]() ![]() |
Work with Jobs WRKJOBS and SLPPGM |
![]() SLPPGM liste les programmes
dormants d'un travail
![]() SLPPGM list of any
job's dormant programs
|
Cleanup old spools | ![]() ![]() |
2013-05-05 ZLIB127, The savf with all the sources |
![]() ![]() |
the RTV* series |
RTVAUTL
: retrieve every objects protected by an authorization list,
allow to generate easily the CHGAUT and GRTOBJAUT to transfert
protection to another AUTL (see joblog) implement api formats ATLO0100 and ATLO0110 |
RTVCMD
: retrieve description of commands, implement format CMDI0100 |
|
RTVEXIT
: retrieve every exit program of every exit point, prepare a
query to detect unattended exit programs implement api formats EXTI0100, EXTI0200, EXTI0300 |
|
RTVFD :
retrieve a lot of information about a file, produce a PRTF,
implement api QDBRTVFD and it's dozen of embedded binary
structures |
|
RTVIFSNAM
: make a stream file name |
|
RTVJRN:
retrieve informtion about journals, implement api formats RJRN0100
, RRCV0100 |
|
RTVMSGSRC: generate a CHGMSGD for
each message of a message file |
|
RTVMSGF: generate the CLLE source code for a *MSGF | |
RTVPGM: retrieve most informations
of MODULE, PGM and SRVPGM. Implement api formats MODI0100,
MODL0100, MODL0200, MODL0300, MODL0400, MODL0500, PGMI0100,
VEWL0100, SPGI0100, PGML0100, PGML0200, PGML0300, PGML0400,
PGML0500, SPGL0600, SPGL0700, SPGL0800 |
|
RTVPRF: retrieve information on all profiles | |
RTVSAVF:
retrieve description of a save file. Implement SAVF0100 format |
|
RTVSFD: retrieve the informations produced by a SQL DESCRIBE | |
RTVSQL:
implement SQLR0100 |
|
Trouvé sur le net / Found on the net
Some API prototypes & samples http://www.think400.dk/apier.htm
Prototyping C functions http://www.scottklement.com/rpg/callc.html
Outils AS400 par famille - SystemI5 tips and tricks by family
Family | ![]() ![]() |
sql | ![]() ![]()
Tableau croisé SQL Pivot Table
How to call RPG from a web page
ExecuteSQL - the update-file CLP command
|
extraction tools | ![]() ![]()
SQL2SYLK - To produce an AS400 file directly readable by Excel is at your hand
XLXML, the RPG SSML (Spread Sheet XML)
Run sql and export output to excel uses Excel XML SSML2003 format |
Publishing graphic data | How to make a PDF file with RPG |
Coming soon | ![]() ![]() |
Logiciels PC
Trucs et Astuces pour le Web | Ces rubriques contiennent beaucoup plus d'extrait de code que de programmes entiers. Elles visent à résoudre un problème particulier sans chercher à apporter une solution globale. |
Album Express | Ce logiciel a pour but de construire un album photo le plus simplement possible à partir d'une liste d'images JPG |
VbEdit | 2 éditeurs DHTML ... livré avec leurs sources. un en VB6, un en HTML |
Outils SAP
Trucs et Astuces pour SAP | ![]() |
Trouvé sur SearchSAP.com - find on SearchSAP.com and other sites | |
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
This tool is a free source text; you can
redistribute it and/or modify it as much as you need. This tool is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY :
Transforming these source text into executable software is made under
your responsability.
THIS SOURCE TEXT IS PROVIDED ''AS IS''
AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROVIDER OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOURCE TEXT, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.