13
Wed, Nov
5 New Articles

Control Files in Shared Folders

CL
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Brief: If your PCs are linked to an AS/400 through PC Support/400 (or Client Access/400), here's a no-nonsense utility that provides file version control.

Many AS/400 installations use PCs connected to the AS/400 to process PC files. For example, most word processing is done on PCs. More often than not, there's a need to share and control these files among the PC users. Numerous PC-based software solutions provide excellent version control for documents and other files. But most of these packages are only available through a local area network (LAN). Yet many AS/400 installations either don't have a LAN or are hesitant to invest in extensive file-management software.

Some of these LANless installations use a "SneakerNet" (a network of users walking around with diskettes) to share files. This system is not only inefficient, it offers little in the way of control.

With the utility presented here, there's no need to wait for a LAN and no need to handle diskettes. You can start sharing and controlling your documents with two simple PC commands: Check Out (CKO) and Check In (CKI).

To run this utility, PCs must be configured for Extended DOS. The router, shared folders, and data queue function must be active.

What the Utility Does

This application allows a PC file to be checked out of a shared folder and protects it from modification by all users except the one who checked it out. Here the utility is used for document control. However, it could be used for any PC files that need to be shared (e.g., spreadsheets).

The utility creates a copy of the file for editing and places it in a target folder. The utility also creates an archive copy of the file in a special folder so that you have a copy of the file as it existed when it was checked out. This copy is marked as read-only.

The application provides a check-in facility which replaces the original file with the copy from the target folder and makes this replaced version available to other users for update.

1 provides an overview of how the system works. Notice in the example that checking out the ILE.DOC file creates a copy of the file in the target folder RICHARD and at the same time creates a copy in a folder in the ARCHIVE directory. Any editing of the document is done on the copy in the RICHARD folder.

Figure 1 provides an overview of how the system works. Notice in the example that checking out the ILE.DOC file creates a copy of the file in the target folder RICHARD and at the same time creates a copy in a folder in the ARCHIVE directory. Any editing of the document is done on the copy in the RICHARD folder.

A folder by the name of ARCHIVE is automatically created within the folder from which a document is checked out, if it doesn't already exist.

Another folder with the same name as the document being checked out is created within the ARCHIVE folder. It is this folder that will contain the archived copies of the file. The utility uses a version control number to create a special name for the archive copy. Each time the document is checked out, the version control number changes.

Only the person who checked out the file can check it in. However, there is a way to override this if necessary. (See the accompanying sidebar for a description of this technique.)

How to Use It

The best way to use this utility is to assign an administrator to control all checking in and out of documents. This provides centralized control and allows you to secure the folder containing your documents to only one or a few users instead of every user who may need the document. (You can use the Work with Folder (WRKFLR) command to secure folders.)

To check out a file use the CKO PC command as follows:

CKO drive:source-pathfile drive: arget-path

The CKO command requires two parameters. The source-pathfile parameter specifies the document file you want to check out. The target-path parameter specifies the destination folder for the copy of the document. Both parameters must include the drive designator and the full path designation. If you use an administrator to control file check out, the administrator should make sure that the file is checked out to a folder with enough authority to allow users access to the file.

Documents checked out to a folder should be copied to a PC drive before they're edited. Working with the document from a PC drive provides much faster response time than working with it from a folder. For example, administrator Janet checks out a file to folder RICHARD and notifies Richard that the document is available to him. Richard then copies the file from his folder to his PC's C: drive. After he completes editing Richard copies the file back to his folder and notifies Janet that the document is ready to be checked in. To check in a document, use the CKI PC command as follows:

CKI drive:checked-out-pathfile

The checked-out-pathfile parameter is required. It specifies the name of the file you want to check in. The parameter must include the drive designator, the full path designation of the folder, and the document name. The drive:checked- out-pathfile must match the file and the path to which the document was checked out, otherwise a message will appear stating that the file isn't checked out. For example, if you check out ILE.DOC to the RICHARD folder, you must check in the revised document from the RICHARD folder. The CKO PC and CKI PC commands are all that is required to run the application. If you use Microsoft Windows, you could create macros using the Windows Recorder to automate the commands. For example, you could create a separate macro for each user. Then, from the File Manager, you could simply select a file and run the macro.

How it Works

Three important components make this utility possible: the PC Support Check File (CHKFIL) command, the PC Support data queue function, and the PC Support Remote Command (RMTCMD) command.

The CHKFIL command does most of the work. It actually checks the file out and makes the copy to the target folder. It also checks the file in and replaces the checked-out file with the copy from the target folder.

Data queue support provides access to a common data queue between the AS/400 and the PC. Data and commands are passed through this data queue by the PC and the AS/400.

The RMTCMD command allows a PC program to execute an AS/400 command. If you're a programmer and you're interested in more detail on how this utility works, read the remainder of this section.

The CKO.BAT and CKI.BAT programs (see Figures 2 and 3) work essentially the same way. In fact they could be combined into one program with some conditional processing based on a parameter value. However, to keep things simpler two programs are used here.

The batch programs begin by starting the AS/400 REXX procedure F001RX (see 5) using the RMTCMD command. F001RX creates data queue DQNDQ, if it doesn't already exist, and creates a unique name. The unique name is created by taking the first four characters of the file that is being checked out and appending a unique four-digit sequence number to it. The sequence number used is the last four digits of the job number of the communications job that is evoked when the RMTCMD command is run. Every RMTCMD command generates a different communications job, so the job number should always be different.

The batch programs begin by starting the AS/400 REXX procedure F001RX (see Figure 5) using the RMTCMD command. F001RX creates data queue DQNDQ, if it doesn't already exist, and creates a unique name. The unique name is created by taking the first four characters of the file that is being checked out and appending a unique four-digit sequence number to it. The sequence number used is the last four digits of the job number of the communications job that is evoked when the RMTCMD command is run. Every RMTCMD command generates a different communications job, so the job number should always be different.

The unique name is passed to the PC program through the DQNDQ data queue embedded in a PC SET command. The PC program retrieves the command through the Receive Data Queue (RCVDTAQ) command and redirects it to a file. The file is then executed and an environment variable called NAME is set to the unique name.

This unique data queue name is important since each session must be sure to not process commands belonging to another session.

With a unique name now available, the PC program starts the F002RX procedure (see 6). F002RX first performs some editing of the parameters. If the parameters are specified correctly, F002RX then calls program F001RG (see 7) to maintain the CKOFILES file (see 4). F002RX then constructs the required PC commands. Basically, it builds either a CHKFIL OUT or CHKFIL IN command. However, with the check out process (CKO.BAT) several supplemental commands are required.

With a unique name now available, the PC program starts the F002RX procedure (see Figure 6). F002RX first performs some editing of the parameters. If the parameters are specified correctly, F002RX then calls program F001RG (see Figure 7) to maintain the CKOFILES file (see Figure 4). F002RX then constructs the required PC commands. Basically, it builds either a CHKFIL OUT or CHKFIL IN command. However, with the check out process (CKO.BAT) several supplemental commands are required.

Before a file can be checked out, one or two folders linked to the target folder may need to be created. The first one is the ARCHIVE folder. This special folder never contains files-it only contains other folders, one for each document checked out (see 1). The second one is the folder within ARCHIVE that is to contain the archived files for a given document. To create these folders, F002RX sends Make Directory (MD) PC commands to the PC.

Before a file can be checked out, one or two folders linked to the target folder may need to be created. The first one is the ARCHIVE folder. This special folder never contains files-it only contains other folders, one for each document checked out (see Figure 1). The second one is the folder within ARCHIVE that is to contain the archived files for a given document. To create these folders, F002RX sends Make Directory (MD) PC commands to the PC.

After the MD commands are sent, the CHKFIL OUT command is sent followed by a COPY and ATTRIB command. The COPY command is used to create the archive copy of the file. The ATTRIB command marks the archive copy of the file as read-only.

After F002RX is complete, all required commands are in the unique named data queue. The PC program retrieves the commands from the data queue and directs them to batch file RUNPCCMD.BAT. When RUNPCCMD executes, it in turn executes the commands generated by F001RX. The file is checked out or in.

The last thing the PC programs do is delete the unique data queue and clear the NAME environment variable.

Limitations and Recommendations

The maximum length of the source-pathfile or target-path for the CKO command and the checked-out-pathfile for the CKI command is 54 characters, including the drive designator.

The CKI.BAT program requires you to check a file in from the folder to which it was checked out. However it won't prevent someone from using the PC Support CHKFIL command directly to check in a file or replace it with a file from another folder. If you use an administrator to control document check out, you might want to consider securing your document folders on the AS/400.

Keeping a list of the files that are checked out and the folders to which they are checked out could be very useful. The information for such a list is available in the CKOFILES file. If you want this list, just use one of your query tools or write a simple program to display or print the file.

No Need to Wait

You can eliminate the "SneakerNet" and you don't have to wait for a LAN to give your users the ability to share and control their PC documents. Just use the CKO and CKI commands and exploit the resources you already have in PC Support. You'll gain some control, save time and your tennis shoes will probably last a lot longer.

Richard Shaler is a senior technical editor for Midrange Computing.

References PC Support/400 DOS Installation and Administration Guide (SC41-0006, CD-ROM QBKA6302). PC Support/400 OS/2 Installation and Administration Guide (SC41-0007, CD-ROM QBKA6802). REXX/400 Programmer's Guide (SC24-5553, CD-ROM QBKA4B02). REXX/400 Reference (SC24-5552, CD-ROM QBKA4C02).

The document control system presented here allows a PC file to be checked out to a user, making it unavailable for modification to all users except the user who checked it out. While a file is checked out, it is available to other users for reading.

At the time a file is checked out, the system creates two copies of the file: a copy in a user specified target folder and a copy in a folder within a special archive folder (see 1). The archive copy is marked as read-only.

At the time a file is checked out, the system creates two copies of the file: a copy in a user specified target folder and a copy in a folder within a special archive folder (see Figure 1). The archive copy is marked as read-only.

When a file is checked back in, the system replaces the original file with the copy from the user specified folder. The file is no longer read-only and is available to any user with authority to the folder.

This application uses the following components.

CKO.BAT: PC batch program that checks out a PC file. It requires two parameters-the source folder path and filename, and the target folder path.

CKI.BAT: PC batch program that checks in a checked-out file. It requires one parameter-the folder path and filename to be checked in.

RMTCMD.EXE: A PC Support command that submits AS/400 commands.

DQNDQ: Data queue used to send a unique data queue name from the AS/400 to the PC.

Data Queue: (Contrived name) Temporary data queue used to send PC commands from the AS/400 to the PC.

F001RX: REXX procedure that creates the DQNDQ data queue if necessary, creates a unique name, and sends the name to the PC through the DQNDQ data queue. Uses no parameters.

F002RX: REXX procedure that creates a uniquely named data queue and sends required PC commands to the PC through the data queue. It accepts three parameters-the source folder path/file to be checked out, the target folder to receive a copy of the file passed in parameter one, and a data queue name.

F001RG: RPG program used to maintain the checked out files (CKOFILES) database file.

CKOFILES: Physical file that contains a record for each checked out file.

The following illustration shows the interaction and relationship of the components. o Create the PC batch programs CKO.BAT (2) and CKI.BAT (3) on the PCs that will use the utility.

The following illustration shows the interaction and relationship of the components. o Create the PC batch programs CKO.BAT (Figure 2) and CKI.BAT (Figures 3) on the PCs that will use the utility.

o Create source physical file CHKFUTLSRC in library QGPL.

o Create the REXX procedure source members F001RX (5) and F002RX (6) in source file QGPL CHKFUTLSRC.

o Create the REXX procedure source members F001RX (Figure 5) and F002RX (Figure 6) in source file QGPL CHKFUTLSRC.

o Create source members CKOFILES (4) and F001RG (7) on the AS/400 and compile according to the instructions in the source member.

o Create source members CKOFILES (Figure 4) and F001RG (Figure 7) on the AS/400 and compile according to the instructions in the source member.

A document checked out by the PC Support or Client Access CHKFIL command can only be checked in by the user who checked it out. If the user that checked out the document is unavailable, you may not be able check the document in. Fortunately, the status of documents within shared folders can be controlled from the AS/400. If for whatever reason you can't get a document checked in, use the Edit Document Library Object Authority (EDTDLOAUT) command on the AS/400. EDTDLOAUT presents a panel from which you can release the document by placing a 'Y' in the "Release checked out document" prompt. You can then replace the document with the copy that was made at check out time.

Be aware that if you don't replace the document with the copy made at check out time, any changes made to the document will not be made to the master copy.


Control Files in Shared Folders

Figure 1 Shared Folder Document Control System Overview

 UNABLE TO REPRODUCE GRAPHICS 
Control Files in Shared Folders

Figure 2 PC Batch Program CKO.BAT

 ::===================================================================== :: CKO.BAT: Check out a file @echo off IF "%1" == "" GOTO PTHFILEREQ IF "%2" == "" GOTO PTHREQ IF NOT EXIST %1 GOTO NOFILE ECHO. ECHO Checking out file %1, one moment please. ::==================================================================== :: Get data queue name to be used for this session C:PCSRMTCMD "STRREXPRC F001RX SRCFILE(QGPL/CHKFUTLSRC) PARM('%1')" /Z > NUL C:PCSRCVDTAQ DQNDQ /L=QGPL /W=0 /Z > C:PCSRUNPCCMD.BAT CALL C:PCSRUNPCCMD ::==================================================================== ::==================================================================== :: Get PC commands from data queue and execute C:PCSRMTCMD "STRREXPRC F002RX SRCFILE(QGPL/CHKFUTLSRC) PARM('%1 %2 %NAME%')" /Z > NUL C:PCSRCVDTAQ %NAME% /L=QGPL /Z > C:PCSRUNPCCMD.BAT CALL C:PCSRUNPCCMD ::==================================================================== GOTO ENDPGM ::==================================================================== :: Error processing :PTHFILEREQ ECHO. ECHO Parameter one must contain a folder pathfilename. GOTO ENDERROR :PTHREQ ECHO. ECHO Parameter two must contain a folder path. GOTO ENDERROR :NOFILE ECHO. ECHO File %1 doesn't exist. GOTO ENDERROR :ENDERROR PAUSE ::==================================================================== :ENDPGM ::==================================================================== :: Clean up C:PCSDLTDTAQ %NAME% /L=QGPL /Z > NUL SET NAME= ::==================================================================== 
Control Files in Shared Folders

Figure 3 PC Batch Program CKI.BAT

 ::==================================================================== :: CKI.BAT: Check in a file @echo off IF "%1" == "" GOTO FILEREQ IF NOT EXIST %1 GOTO NOFILE ECHO. ECHO Checking in file %1, one moment please ::==================================================================== :: Get unique name value C:PCSRMTCMD "STRREXPRC F001RX SRCFILE(QGPL/CHKFUTLSRC) PARM('%1')" /Z > NUL C:PCSRCVDTAQ DQNDQ /L=QGPL /W=0 /Z > C:PCSRUNPCCMD.BAT CALL C:PCSRUNPCCMD ::==================================================================== ::==================================================================== :: Get PC commands and check in file C:PCSRMTCMD "STRREXPRC F002RX SRCFILE(QGPL/CHKFUTLSRC) PARM('%1 "IN" %NAME%')" /Z > NUL C:PCSRCVDTAQ %NAME% /L=QGPL /Z > C:PCSRUNPCCMD.BAT CALL C:PCSRUNPCCMD :===================================================================== GOTO ENDPGM ::==================================================================== :: Error processing :FILEREQ ECHO. ECHO Parameter one must contain path/filename. GOTO ENDERROR :NOFILE ECHO. ECHO File %1 doesn't exist. GOTO ENDERROR :ENDERROR PAUSE ::==================================================================== :ENDPGM ::==================================================================== :: Clean up C:PCSDLTDTAQ %NAME% /L=QGPL /Z > NUL SET NAME= ::==================================================================== 
Control Files in Shared Folders

Figure 4 Physical File CKOFILES DDS

 *=============================================================== * CKOFILES * * To compile: * * CRTPF FILE(QGPL/CKOFILES) SRCFILE(QGPL/CHKFUTLSRC) * * Used by MC Check File Utility. * Stores path/file information for checked out files. *=============================================================== *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 A UNIQUE A R CKREC A CKOPTF 54 TEXT('Check out path/file') A CKIPTF 54 TEXT('Check in path/file') A CKDATE 8S 0 TEXT('Date') A CKTIME 6S 0 TEXT('Time') A K CKOPTF *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 
Control Files in Shared Folders

Figure 5 REXX Procedure F001RX

 /*==================================================================*/ /* F001RX */ /* */ /* No compile required */ /* */ /* Create unique data queue name and send it data queue &DQN. */ /* Parm 1: Folder pathfile. */ /* File name and job number of job that executes this */ /* procedure are used to generate data queue name. */ /*==================================================================*/ parse arg pathfile abbnamelen = 4 seqnbrlen = 4 dqn = 'DQNDQ' dqlib = 'QGPL' "CRTDTAQ DTAQ(&DQLIB/&DQN) MAXLEN(17) TEXT('Created by", "MC Check File Utility')" if RC = 0 then NOP "RTVJOBA NBR(&JOBNBR)" file = translate(substr(pathfile,lastpos('',pathfile)+1)) parse var file abbname '.' ext wrkfile = substr(abbname,1,abbnamelen,'X') trnjobnbr = substr(jobnbr,3,seqnbrlen) dqnm = translate(wrkfile || trnjobnbr) setcmd = strip('SET NAME=' || dqnm,'t') dtalen = '00017F'X "CALL PGM(QSNDDTAQ) PARM(&DQN &DQLIB &DTALEN &SETCMD)" 
Control Files in Shared Folders

Figure 6 REXX Procedure F002RX

 /*==================================================================*/ /* F002RX */ /* */ /* No compile required */ /* */ /* Send PC commands via data queue to check file out or in. */ /* Parm 1: Folder pathfile to be checked out/in. */ /* Parm 2: Folder path to which file is to be copied. */ /* Parm 3: Data Queue name to be used to send PC commands. */ /*==================================================================*/ parse arg frpthf topth dqnm error = ' ' archdir = 'ARCHIVE' dqlib = 'QGPL' dtalen = '00127F'X dqmsglen = 127 pathlen = 54 abbnamelen = 4 seqnbrlen = 4 frpthf = translate(frpthf) topth = translate(topth) file = substr(frpthf,lastpos('',frpthf)+1) topthf = strip(topth || '' || file,'t') parse var file abbname '.' ext wrkfile = substr(abbname,1,abbnamelen,'X') frpth = strip(substr(frpthf,1,lastpos('',frpthf)-1),'t') toflr = strip(substr(topth,lastpos('',topth)+1),'t') "DLTDTAQ DTAQ(&DQLIB/&DQNM)" if RC = 'CPF2105' then NOP "CRTDTAQ DTAQ(&DQLIB/&DQNM) MAXLEN(&DQMSGLEN) ", "TEXT('Created by MC Check File Utility')" call edit_parms if error = ' ' then do if topth = 'IN' then call check_in else call check_out end if error = ' ' then do "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" dqmsg = 'PAUSE' dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" end return /*==================================================================*/ edit_parms: if substr(frpthf,2,1) = ':' then do error = 'Y' dqmsg = '@ECHO Invalid drive designator in parameter one.' dqmsg = substr(dqmsg,1,dqmsglen,' ') end if error = ' ' & substr(frpthf,3,1) = '' then do error = 'Y' dqmsg = '@ECHO Invalid path in parameter one.' dqmsg = substr(dqmsg,1,dqmsglen,' ') end if error = ' ' & topth = 'IN' then do if substr(topth,2,1) = ':' then do error = 'Y' dqmsg = '@ECHO Invalid drive designator in parameter two.' dqmsg = substr(dqmsg,1,dqmsglen,' ') end if error = ' ' & substr(topth,3,1) = '' then do error = 'Y' dqmsg = '@ECHO Invalid path in parameter two.' dqmsg = substr(dqmsg,1,dqmsglen,' ') end if error = ' ' & topth = frpth then do error = 'Y' dqmsg = '@ECHO Target path cannot be the same as source path.' dqmsg = substr(dqmsg,1,dqmsglen,' ') end if error = ' ' then do parse var topth drive '' aspath aspath = translate(aspath,'/','') if pos('',aspath) > 0 then do aspath = strip(substr(aspath,1,lastpos('/',aspath)-1),'t') end if toflr = aspath then aspath = '*NONE' trnjobnbr = substr(dqnm,5,seqnbrlen) archfile = translate(wrkfile || trnjobnbr || '.' || ext) /* Does target folder exist? */ "CHKDLO DLO(&TOFLR) FLR(&ASPATH)" if RC = 0 then do error = 'Y' dqmsg = '@ECHO Folder' topth 'not found' dqmsg = substr(dqmsg,1,dqmsglen,' ') end end end return /*==================================================================*/ check_in: frpthf = substr(frpthf,1,pathlen,' ') topathfile = substr(topathfile,1,pathlen,' ') "CALL PGM(F001RG) PARM(I &FRPTHF &TOPATHFILE &ERROR)" file = strip(file,'t') if error = 'NOTCHKDO' then do dqmsg = '@ECHO File' file 'not checked out' dqmsg = substr(dqmsg,1,dqmsglen,' ') end else do frpthf = strip(frpthf,'t') topathfile = strip(topathfile,'t') dqmsg = 'CHKFIL IN' frpthf topathfile dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" end return /*==================================================================*/ check_out: frpthf = substr(frpthf,1,pathlen,' ') topthf = substr(topthf,1,pathlen,' ') "CALL PGM(F001RG) PARM(O &FRPTHF &TOPTHF &ERROR)" file = strip(file,'t') if error = 'CHKDOUT' then do dqmsg = '@ECHO File' file 'already checked out' dqmsg = substr(dqmsg,1,dqmsglen,' ') end else do parse var frpthf drive '' aspath aspath = translate(aspath,'/','') if pos('/',aspath) > 0 then do aspath = strip(substr(aspath,1,lastpos('/',aspath)-1),'t') end "CHKDLO DLO(&ARCHDIR) FLR(&ASPATH)" if RC = 'CPF8A82' | RC = 'CPF8A77' then do dqmsg = 'MD' frpth || '' || archdir dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" end aspath = aspath || '/' || archdir "CHKDLO DLO(&FILE) FLR(&ASPATH)" if RC = 'CPF8A82' | RC = 'CPF8A77' then do dqmsg = 'MD' frpth || '' || archdir || '' || file dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" end dqmsg = 'CHKFIL OUT' strip(frpthf,'t'), strip(topth,'t') dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" dqmsg = 'COPY' strip(frpthf,'t') strip(frpth,'t') || '' || archdir, || '' || strip(file,'t') || '' ||archfile dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" dqmsg = 'ATTRIB +R' strip(frpth,'t') || '' || archdir, || '' || strip(file,'t') || '' || archfile dqmsg = substr(dqmsg,1,dqmsglen,' ') "CALL PGM(QSNDDTAQ) PARM(&DQNM &DQLIB &DTALEN &DQMSG)" end return 
Control Files in Shared Folders

Figure 7 RPG Progarm F001RG

 *=============================================================== * F001RG * * To compile: * * CRTRPGPGM PGM(QGPL/F001RG) SRCFILE(QGPL/CHKFUTLSRC) * * Used by MC Check File Utility. * Maintains the Check Out Files (CKOFILES) file. *=============================================================== *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 FCKOFILESUF E K DISK A I DS I 1 140TIMDTE I 1 60TIM I 7 140DTE * C *ENTRY PLIST C PARM CFTYPE 1 C PARM FRPTF 54 C PARM TOPTF 54 C PARM ERROR 8 * Check file out C CFTYPE IFEQ 'O' C TOPTF CHAINCKOFILES 50 C *IN50 IFEQ *OFF C MOVE 'CHKDOUT 'ERROR C ELSE C TIME TIMDTE C MOVELDTE CKDATE C MOVELTIM CKTIME C MOVELTOPTF CKOPTF C MOVELFRPTF CKIPTF C WRITECKREC C ENDIF C ENDIF * Check file in C CFTYPE IFEQ 'I' C FRPTF CHAINCKOFILES 50 C *IN50 IFEQ *ON C MOVEL'NOTCHKDO'ERROR C ELSE C MOVELCKIPTF TOPTF C DELETCKREC C ENDIF C ENDIF * C MOVEL*ON *INLR *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 
BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: