ILE RPG (sometimes called RPG4) was the biggest change to the RPG programming language in recent years.
What are the advantages of ILE in RPG?
What is a sub-file?
Scrolling data displayed on a terminal. It is group of records read from or written to display file in a column format. It is always a subset of records from physical file hence the name subfile.
What is subfile control – SFL and SFLCTL ?
There are the two mandatory key words for subfile program /design. While SFL is used to define Subfile record format while SFLCTL is used to define Subfile Control Record format. And this two are the different parts of sub-file.
What are the Sub file Types?
There are three types of sub file
What is SFLDROP and SFLFOLD
These are the two key-words used in sub-file for displaying additional information which cannot fit one line. SFLFOLD will give view in folded form and SFLDROP will give view in truncated form.
What is SFLCSRRRN and SFLRCDNBR ?
SFLCSRRRN will give the RRN of the record where the cursor is positioned.
SFLRCDNBR will give the RRN of the First record displayed on the screen at a given time.
What is SFLNXTCHG?
Whenever a record is changed on display file. An MDT is set ON. If an indicator is associated with SLFNXTCHG and it is SETON then READC will read only the changed record. And if the indicator is not associated and it is seton it READC reads all the records from sub-file
Reading records from a subfile using READC
With the help of READC op-code we can read only changed records from subfile.
What are the Required Display File key-words for subfiles?
SFL, SFLCTL, SFLDSP, SFLSIZ, SFLPAG are the mandatory key words. SFLDSPCTL, SFLCLR, SFLINZ, SFLEND are the optional key words used in subfile.
Difference between PLIST and KLIST
PLIST is a list of parameter and KLIST is the list of KEY fields.
How do we programatically Position to particular record when using native IO?
With help of op-code SETLL from RPG/RPGLE, it will position the record pointer just before the required record. Next READ will read that particular record.
Difference between LR indicator and RETURN operation?
LR indicator – It close all the open files, Frees the space and release ODP.
RETURN – It dose not close files and dose not release the ODP and passes the control to the calling program / command prompt if the program is called from command prompt.
Different operations on indicator?
There are only two operations on indicator those are SETON and SETOFF.
What is the operation / op-code to change in file?
In RPG/RPGLE with the help of UPDAT / UPDATE op-code.
How do I insert a record into a database file?
In RPG / RPGLE with the help of WRITE op-code.
In CL/CLLE we can not insert a record into database file.
Thtee ways of deleting records from file?
Use SQL or in native IO use the DELETE keyword and other with the help of O-Specs ADD/DEL specify DEL.
How to define a subroutine ?
with help of two op-code BEGSR(Begin subroutine) ENDSR (End subroutine) and between these two op-codes write the instruction. The whole construct is defined as subroutine.
In case of Load all sub-file, if we type options and then PGDN,PGUP , will options be there on the display / in subfile.
Yes. It will retain all the options entered in the previous page.
How will you take care of multiple options in case sub-file?
We will have to handle it within the program using a READC in a loop.
If we type some options on screen out of which some are invalid and pressed enter, what should happen?
It should process all the valid options before invalid options encounter. Once invalid options is encountered program should stop processing and display error message at the bottom of the screen.
How will you achieve POSITION TO in Load all subfile?
While loading subfile move RRN, KEYVALUE in to a two dimensional array. When a key value is entered into POSITION TO field, having a LOOKUP into a array we can get a corresponding RRN. Assigning RRN value to SFLRCDNBR and then displaying the sub-file.
What are the built in function in RPGLE ?
%SIZE – Gives the size of the variable or literal
%PARM – Gives the number of parameter passed to parameter
%PADDR – Gives the address of the procedure
%ADDR – Gives address of the variable
%TRIM – Trims the right blanks of the string
%TRIML – Trims the Left blanks of the string
%REPLACE – Replaces the specified number of characters from the specified position.
%SUBST – gives a sub string from a variable (%SUBST(X:Y:Z)
%ELEM – Gives number of elements or occurrences
%INDEX – Change the index of a table or multiple-occurrence data structure.
%LEN – Returns the length of value from a field.
%CHAR – Converts a Numeric filed to character.
%EOF – End of File.
%FOUND – If record is Found.
How to print HEADER if O-specs are used in program ?
With the help of op-code EXCEPT.
How to define array in D spec.
D ARR2 S 5 DIM(5) CTDATA PERRCD(1)
It is a Compile time array.
D ARR1 S 1 0 DIM(5)
It is a Run time array
D ARR1 S 40 DIM(7) FROMFILE(File name) PERRCD(1)
It is Pre Run time array
What is *PSSR and INFSR?
It is an exception/error handling routine which is specified in F-Sepcs for a file. INFSR(*PSSR), INFSR is an information subroutine to specify the routine name in F-specs.
How to go to *PSSR ?
Whenever an exception/error occurs and *PSSR is declared in F-specs, it is automatically goes to *PSSR
Can we all *PSSR if no exception occurs? What happen it is called ?
Yes, Whatever the statements specified are executed.
What is INFDS?
INFDS is a File Information Data Structure.
1 - 8 Character *FILE The first 8 characters of the file 9 - 9 Character Open indication (1 = open). 10 - 10 Character End of file (1 = end of file) 11 - 15 Zoned dec *STATUS Status code. 16 - 21 Character *OPCODE Operation code The first five posi 22 - 29 Character *ROUTINE First 8 characters of the procedure 30 - 37 Character RPG IV source listing line number
How to determine if the record is in used by another user ?
We can determine weather a record is in use bye another user with the help of status code (*STATUS). If *STATUS = 01218 i.e. record already locked.
What is Procedure ?
A procedure is the set of self contained high level language statements that can perform a particular task and then returns to a caller.
What is Procedure Prototype and Procedure Interface.
In this section we specify the name of the procedure along with PR.
D PROC1 PR
It is section where we define all the parameter which are receiving or returning some values.
D PROC1 PI 5 0
D PARM 5 0
D PARMB 5 0
How to define Global Parameter in ILE ?
Declare a variable with key word EXPORT and while using this variable in anther program declare with IMPORT keyword.
What is the disadvantage of using Global variable?
We can not trace out at which point the value of variable is changed.
What is Service Program?
A Service Program is a collection of runnable procedures and available data items easily accessible by other ILE programs. In many respects it is similar to a subroutine library and procedure library. A service program differs from a program in two ways:
What is *ISO date format?
YYYY-MM-DD for other formats refer to IBM manual or ERIS document.
If we try to move year part of *ISO date into a field of length 3, what will happen ?
Program crashes, as in case of *ISO format it required fields of 4,2,2.
How can we avoid using indicators in ILE ?
By using the standard Built In Expressions like %FOUND,%EOF, NOT %EOF, %BOF, NOT %BOF…etc.
IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.
Upload a SAVF using IFS and IBM i Access Client Solutions (no FTP)
Using RPGLE to extract invoice numbers from an alpha string
How do we Check for Batch or Interactive in CLLE
Second Look: IBM RDi Extract Procedure Refactoring feature
Rational Developer for IBM i 9.6 Fixpack 7 is pretty pretty good
Grabbing a library description in RPG with SQL
New Developerworks RDi website is ‘IBM Rational Developer for i Hub’
How to Upload a SAVF with IBM I ACS a.k.a. Upgrade HTTPAPI (LIBHTTP) to V7.2
Developerworks Connections Sunset – How to Extend RDi