Posts

IBMi (AS400) fans only ' How to pass parameters to a Query

Image
#IBMiSample Each IBMi user knows they run the most efficient system. All others just have too much money. First of all look at  this post  and compile and populate OTORD00F file to use this example. Let's create a query called Q01A : ccm   represents our parameter to pass to the query. Type F3 Now let's write the CL to pass the ccm parameter to the query: Q01ACL CL ****************** Inizio dati *******************************              PGM        PARM(&CCM)                                          DCL        VAR(&CCM) TYPE(*CHAR) LEN(5)                        STRQMQRY   QMQRY(Q01A) OUTPUT(*) QMFORM(*QMQRY) +                           ALWQRYDFN(*YES) SETVAR((CCM &CCM))               ENDPGM                                             ******************** Fine dati ******************************* We save and compile the CL. Now let's try. Type: CALL PGM(Q01ACL) PARM(('103')) I have two records into OTORD00F with  OTCCM0  = ' 103 '. This is the r

IBMi (AS400) fans only ' How to call a C runtime function from RPG program.

Image
#IBMiSample Each IBMi user knows they run the most efficient system. All others just have too much money. This example comes from https://www.ibm.com/support/pages/coding-rpg-iv-beginners-tutorial This example calls the C runtime printf() function to print a message to the standard output instead of to the external message queue.

IBMi (AS400) fans only ‘ how to read a flat file with sql embedded

Image
#IBMiSample It often happens that you have to read all the records of a file. Years ago I would have used the RPG cycle defining the Input/Primary file. Today, with the introduction of embedded SQL, I would do this: First of all I create a file, then I manually write some records. to create a file I write this SQL source: IPFLSQL.SQL -- --  RUNSQLSTM SRCFILE(myLib/MySouceFile) SRCMBR(IPFLSQL) -- --  Generazione tabella CREATE OR REPLACE TABLE myLib /IPFLI00F ( IIFANN CHARACTER(1) NOT NULL WITH DEFAULT, IITEXT CHARACTER(25) NOT NULL WITH DEFAULT ) RCDFMT IPFLI ;  Run IPFLSQL.SQL with RUNSQLSTM SRCFILE(myLib/MySouceFile) SRCMBR(IPFLSQL) to create the file IPFLI00F. Then populate IPFLI00F with some records. No matter what you type, just a few records are enough. Then compile and run  IPFL01.SQLRPGLE       **free       *******************************************************       *  How to read an entire file from the beginning      *       ************************************************

IBMi (AS400) fans only ' A simple way to create table with Rpg Free & SQL embedded

Image
#IBMiSample Compile and Run this SQLRPGLE to create table CLANA00F, index CLANA01L and table OTORD00F, and populate:       **free       *****************************       * create CLANA00F & OTORD00F       *****************************        ctl-opt option(*nodebugio) dftactgrp(*no) actgrp(*new);         // The EXEC SQL is never executed. It is used at compile time.         exec sql Set Option Commit = *None;         // Create File         exec sql           CREATE or REPLACE TABLE myLib/CLANA00F (           CLANN0 CHARACTER(01) NOT NULL WITH DEFAULT,           CLCCL0 NUMERIC(7, 0) GENERATED ALWAYS AS IDENTITY PRIMARY KEY,           CLCIB0 CHARACTER(03) NOT NULL WITH DEFAULT,           CLNOM0 CHARACTER(50) NOT NULL WITH DEFAULT           )           RCDFMT CLANA           ;         // Create index         exec sql           CREATE INDEX myLib/CLANA01L ON myLib/CLANA00F (CLCCL0 ASC);         // Fill values         exec sql           INSERT INTO CLANA00F (CLCIB0, CLNOM0)          

IBMi (AS400) fans only ' How to send a spool file per Email as TXT attachment

Image
#IBMiSample This CLP  sends a SpoolFile per Email as TXT attachment and need 4 parameters: &SPOOLF Spool file name &SUBJCT Subject &BODY00 body &MAIL01 Email (Pay attention at the "Send Email" note at the bottom) Compile this CLP source with: CRTCLPGM PGM(myLib/SNDSPLF) SRCFILE(myLib/mySourceFile) SRCMBR(SNDSPLF) SNDSPLF.CLP                    PGM        PARM(&SPOOLF &SUBJCT &BODY00 &MAIL01) /*****************************************************************************/ /* Send a SpoolFile per Email as TXT attachment                              */ /* &SPOOLF Spool file name                                                   */ /* &SUBJCT Subject                                                           */ /* &BODY00 body                                                              */ /* &MAIL01 Email                                                             */ /* Try with:                                           

IBMi (AS400) fans only ' How to get *SAVF from Your Desktop to your IBM i System

Image
#IBMiSample Suppose your *SAVF name is  SFFFDV1 For a PC: To FTP to the IBM i system, you should do the following: 1. Place SFFFDV1 in directory C:\TEMP 2. Open a command prompt window (CMD). 3. Type the following: CD C:\TEMP 4. FTP SYSTEMNAME or FTP xxx.xxx.xxx.xxx where SYSTEMNAME is the IBM i system name and xxx.xxx.xxx.xxx is the IP address. Press the Enter key. 5. Type the user ID and password . 6. To change to binary mode, type the following: BIN Press the Enter key. 7. To change the host and client to naming convention type 1, type the following: QUOTE SITE NAMEFMT 1 Press the Enter key. 8. To create the destination file in the library specified so you do not need to create the SAVF first, type the following: PUT SFFFDV1 /QSYS.LIB/ YOURLIB .LIB/SFFFDV1.SAVF Press the Enter key. 9. Now you have on your IBM i the *SAVF SFFFDV1 in your Library. To extract the SAVF objects, on your IBM i, type RSTLIB SAVLIB(FFDV1) DEV(*SAVF) SAVF( YOURLIB /SFFFDV1) Thanks to the IBM page:  Getting a

IBMi (AS400) fans only ' UTILITIES - How to retrieve physical file description

Image
                               

AS/400 fans only ' Take it for fun - How to download data from a Web Service - Weather report from openweathermap.org

Weather report from openweathermap.org   first of all get your own API key on https://openweathermap.org/ , it's free. The Key looks like '35a545c6ce3bda8347f588353aa59fbd' Compile and run the program below to create the WBSWL00F table that will contain the weather data for a location, each row one location. WBSWL00F.SQLRPGLE       **free       *********************************       * create WBSWL00F Location list *       *********************************        ctl-opt        option(*nodebugio) dftactgrp(*no) actgrp(*new);         // The EXEC SQL is never executed. It is used at compile time.         exec sql Set Option Commit = *None;         // Create File         exec sql           create table WBSWL00F             (                WWIDNM numeric (9, 0) generated always as identity,                WWORIN TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP,                WWORCR TIMESTAMP GENERATED ALWAYS FOR EACH ROW ON UPDATE                     AS ROW CHANGE TIMESTAMP NOT N