User:Heiko
About
This is Heikos personal page, in which he maybe shares some private information or collects bits for new articles.
Personal information
Heiko has been in IT since the 90s, but never worked with an AS/400...until 2019. He'll document his first steps in the hope they will be useful to others.
Sandbox
Screen mit MW-Bordmitteln:
Anmelden System . . . . . : SLVRLAKE Subsystem . . . . : QINTER Bildschirm . . . : QPADEV0004 Benutzer . . . . . . . . . . . . Kennwort . . . . . . . . . . . . Programm/Prozedur . . . . . . . . Men} . . . . . . . . . . . . . . Aktuelle Bibliothek . . . . . . . (C) COPYRIGHT IBM CORP. 1980, 2013.
<console> Test </console>
<console>
Anmelden System . . . . . : SLVRLAKE Subsystem . . . . : QINTER Bildschirm . . . : QPADEV0004 Benutzer . . . . . . . . . . . . Kennwort . . . . . . . . . . . . Programm/Prozedur . . . . . . . . Men} . . . . . . . . . . . . . . Aktuelle Bibliothek . . . . . . . (C) COPYRIGHT IBM CORP. 1980, 2013.
</console>
Ideas for new articles
Project Hello World
Preparations
Things you need:
- an AS/400 (obviously :) )
- an working account
- log in
- command prompt
- maybe this for easy reference
Creating a physical file to hold the sources
Every user has a personal library, like an home in an Linux environment. Since a user can have and use multiple libraries, the current (=default for all operations) is stored in *CURLIB[1]. Because the value of *CURLIB can be changed by the screen you are currently working in, all following commands will contain my personal library name HKRETSCHME. If you are sure *CURLIB is set correctly, you can omit the library.
This command creates a physical file named HELLO01:
CRTSRCPF FILE(HKRETSCHME/HELLO01) RCDLEN(112) TEXT('Project Hello World')
But I prefer to do this in more steps, which I'd recommend to every beginner (By the way: don't bother using cases, the AS/400 won't either. Using capital commands and names just makes it more readable in this article.):
CRTSRCPF
If you don't give any parameters for this command, you will be asked. This works great for CRTSRCPF, but in general, OS/400 will only ask for necessary arguments. Some commands, like CHGUSRPRF will just do nothing.
This always works:
Enter the command you want to execute and then hit F4.
A small detour: Physical Files?
Heiko struggled a lot with this and thinks a small introduction is necessary:
- Libraries: Every user has his own personal library, think of it like a Linux home directory. Details
- Physical Files: Of course this is no physical file and you can't touch it. And don't think of if (like I as a german[2] do) as one file (f.e. /etc/passwd), it's more like an collection of informations, like you might know from MacOS resources.
- Members: A member is a file in an physical file, like a book in a filing box. Members of a physical file share the given structure of the PF. Record structure, field lengths, etc.
A more visal approach of explaining:
The Library is the room you keep your Physical Files (like filing boxes) in. The Physical Files contain Members (like books) but must be the same size (okay, a crude explanation for the "must share structure" approach).
- You can have as much rooms, filing boxes and books as you want.
- But you can't put rooms in rooms, boxes in boxes or books in books[3].
- The AS/400 has no tree-like storage structure, it is just a list (of Libraries) with a limited depth (Physical Files and Members) to unfold.
Creating the database
The procedure is as follows:
- create a text file describing the database
- compile it into a database
Creating the DDS
The textual description of a database is called DDS. You can learn more here.
wrkmbrpdm file(hkretschme/hello01)
F6 :-)
- This will run STRSEU:
(Input member and type) - Which brings you to SEU:
(Enter text as shown)
File:Hello01wrkmbrpdm03.png
Here's what it means:
***************** Datenanfang ******************************************************************************************* 0001.00 A R MESSAGES 191001 means:A
ddR
ecord namedMESSAGES
0002.00 A TEXT 42A 191001 means:A
dd field namedTEXT
with42
bytes ofA
scii. ******************Datenende *********************************************************************************************
- Enter Y (here: J) to save the member.
After saving, check the lower lines for messages. If there is a synthax error, return to SEU and check every line.
Hint: Use F4 for assistance while coding!
Creating the database physical file
--> Beginners Project: Hello World (using database and display file)
Articles to maintain
- Links
- References:
- ↑ https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/rzarl/rzarlcurlib.htm
- ↑ Yes, as a german IT guy you think of "file" as "Datei". But "file" in english can also mean "Akte" or "Karton mit Akten". Sorry for Kauderwelsch.
- ↑ And as you may have guessed, you can't put rooms in boxes, boxes in books…