JPLTools Home Page Ma boite à outils Dans cette boite à outils, je range les logiciels dont j'ai eu besoin et qui m'ont manqué jusqu'à ce que je les trouve ou que je les fabrique. |
Contact |
J'espère que vous aurez autant de plaisir à utiliser
ces outils que j'en ai eu à les ecrire. 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. I hope that you will have as much pleasure to use these tools as I had to write them. 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 |
Generer 90% du code RPG et 95% du code DSPF, c'est possible Generate 90% of RPG code and 95% of DSPF code, it is possible |
Excel powered by SSML2003 XLXML |
produire avec RPG un fichier IFS directement lisible par Excel :
la puissance de SpreadSheetML, le dialecte XML de Office 2003. Ce
format ne supporte pas les macros: sécurité garantie. RPG produced IFS file directly readable by excel : the power of SpreadSheetML, the XML format of Office 2003 Excel spread sheets.This format does not sup^port macros. Security is guaranteed. |
Run sql and export output to excel SQL2XLS |
export direct DB2 vers Excel, au format Excel XML SSML 2003 (basé
sur XLXML ci-dessus) direct export DB2 to Excel, under XML Excel SSML 2003 format, compatible Open Office 2. SBCS version and UNICODE version |
CHKLNK | vérifier
l'existence
d'un fichier ou d'un repertoire IFS check existence of IFS file or directory |
DSPIFS, DMPIFS | Affiche
sur écran ou en soule le contenu hexa d'un fichier IFS Shows on screen or in spool the hexadecimal value of an IFS file |
Retrieve a complete IFS file nameRTVIFSNAM | Récupère
le
nom complet d'un fichier IFS. Un accessoire de mes outils
RPG-TO-IFS Retrieve a complete IFS file name. A companion tool for my RPG-TO-IFS tools |
CRTSTMF | Crée
un
fichier IFS, avec le bon CCSID Create a stream file on IFS ... with the good CCSID |
EXECSQL | exécuter
une
pile de commandes SQL run an SQL stack |
EXECUTESQL |
lire, transformer, ajouter, enlever, corriger des données dans un
programme CL read, transform, add, remove, update data inside a CL program : all with SQL statements |
Retrieve SQL source statement RTVSQL | Récupère
le
source DDL d'un objet DB2-SQL Retrieve DDL source of any DB2-SQL object |
Sql Pivot Table |
comment calculer un tableau croisé dynamique en sql ? How to build a dynamic pivot table with sql ? |
How to make a PDF file with RPG PDF | création
de
PDF en RPG. Totalement graphique. RPG builder for PDF. Build totally graphic pages |
Export a spool to a PDF file SPLF2PDF |
convertit un spoule en PDF convert a spool into PDF |
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 |
Moderniser : pourquoi, comment, quelle rentabilité Modernization strategies for a quick ROI |
2008-08-31 Dynamic Where and Order-By |
Comment coder un select sql dynamique, avec un where dynamique et
un order by dynamique. How to code a completely dynamic select sql statement, with a dynamic where and a dynamic OrderBy |
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 | modèle
de
programme de création de fichier Excel Excel sheet creation sample program |
Excel powered by Multiplan ... (outdated) SQL2SYLK |
Export direct DB2 vers Excel direct export DB2 data to Excel |
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 |
/copy utilisés dans mes outils. Cette page contient aussi
jpltools.zip, le savf avec tous les sources /copy used in my tools. This page contains also jpltools.zip, the savf with all the sources |
BRKMSG |
afficher les break-messages sur la ligne de statut, san
sinterruption Shows the break-message in the status line, without interruption |
CHGENV, CHGLIBLIST |
changer la liste des bibliothèques d'un travail Change the job library list |
CHGOBJATR |
changer la référence au fichier source d'un objet, la version, le
nom de produit, ... Change the reference to the source file name of any object, the version number, the pruduct id, ... |
FINDMBR |
retrouve un membre même s'il n'est pas dans le premier fichier retrieve a member even if it is not in the first file |
INDENT Free-RPG | numérote
les
boucles, indente le code Free-RPG renumber RPG loops, indent Free-RPG code |
JPL020 |
base de programme + écran (simple, sous-fichier de données,
sous-fichier de messages) basic program + screen (simple, data subfile, message subfile) |
QSYSOPR |
Surveiller les messages de QSYSOPR QSYSOPR messages supervisor |
MAKE | mémorise
et
reproduit les commandes de compilations de tous les objets save and rebuild all the compilation commands for any object |
OBJUNLCK | déverrouille
un
objet unlock an objet |
The RPG Bitmap maker | Création
de
fichier BMP en RPG. Pour la beauté du geste Create a BMP file from RPG. For the fun only. |
Send a Mime Mail MAIL |
envoyer à plusieurs destinataires un document au format texte ou
html et plusieurs pièces jointes send to many receivers a body in text or html format and many documents attached |
Work with Jobs WRKJOBS and SLPPGM |
WRKJOBS remplace avantageusement WRKJOB : filtres
variés SLPPGM liste les programmes
dormants d'un travail
replace
WRKJOB advantageously: varied filtersSLPPGM list of any
job's dormant programs
|
Cleanup old spools |
encore un autre nettoyeur de spools. yet an other spool cleaner |
2013-05-05 ZLIB127, The savf with all the sources |
Compilation pour IBMi de ZLIB 1.2.7. + un exemple
RPGLE COmpilation for IBMI of ZLIB 1.2.7, + an RPGLE example |
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 | Summary |
sql | SQL tips and tricks
Tableau croisé SQL Pivot Table
How to call RPG from a web page
ExecuteSQL - the update-file CLP command
|
extraction tools | SYLK2 produce an Excel sheet from an RPG program
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 | 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. |
Trouvé sur SearchSAP.com - find on SearchSAP.com and other sites | |
ABAP Program types | |
Change logon screen | |
Debug background process | |
Debug pop-up screen | |
Download internal table data into Excel | |
Debugging : Export internal table to Excel for analysis | |
Go to your URL using ABAP | |
How to handle time zones in ABAP | |
Inserting photos into SAPscripts | |
Logos on screen | |
Read an area from an Excel sheet and write out a diagnostic | |
Send background job failure alerts by email | |
Use Excel instead of Tab delimited text in BDC programs | |
the ABAP official reference http://help.sap.com/saphelp_47x200/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm | |
the abap beginner forum https://www.sdn.sap.com/irj/sdn/thread?threadID=36946 |
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.