Sidebar

The Land of the /free

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

In V5R1, ILE RPG (RPG IV) was given a facelift with the addition of a free-format coding option. This option allows you to write the calculation (C) specs of your program without following the rigid positioning requirements of a standard RPG program and, for that matter, without the C! What you end up with is a programming language that is like a mix between RPG and C with a dash of Java thrown in. In this article, I'll examine what you can and can't do in free-format ILE RPG and how to make the most of this great programming alternative.

/free Your Mind

If you are running OS/400 V5R1 or higher, you already have what you need to use free-format ILE RPG. That's because the free-format option has become part of the language structure. A free-format block of code is defined by using the /free and /end-free compiler directives. This allows you to define some portions of a program using free-format code and other portions using standard ILE RPG code.

There are currently a few things that you can't do in free-format. One example is defining a key list (KLIST) to be used when chaining or reading from a file. The KLIST opcode and corresponding KFLD opcodes must be defined using standard ILE RPG C specs. It's also important to remember that the file (F) specs, definition (D) specs, and output (O) specs cannot be specified in free-format. The code shown in Figure 1 is a sample of free-format C specs.

C     ITEMKY        KLIST
C                   KFLD                    ITEM
C                   KFLD                    WHSE  
/free
ITEM='ABC123';
WHSE='01';
chain ITEMKY ITEMMSTR;
if %FOUND(ITEMMSTR);
itemnum=item;
DSPLY ITDESC;
else;
itemnum=''
DSPLY '*ERROR!';
endif;
/end-free

Figure 1: This code is an example of free-format ILE RPG C specs.

The free-format section of the code starts with the /free compiler directive and ends with the /end-free compiler directive. As for the code that falls between these two directives, you'll notice some things that look familiar and some things that may not. First off, all free-format code must be specified between positions 8 and 80 on each line. You'll also notice that a semicolon is used to identify the end of each the statement. This is done to allow for statements to be longer than a single line. The C is also gone from the calculation specs. Compiler directives can be placed within free-format code, but it's important to remember that they cannot appear on a line with any operation codes. When using the /COPY or /INCLUDE compiler directives to include code from another source file, the compiler assumes that the copied code is in standard fixed-format RPG. This means that any free-format copybook source must begin and end with the /free and /end-free compiler directives.

The Code

In some cases, the free-format versions of the RPG opcodes may be coded differently from the fixed-format RPG. The free-format version of the IF statement works in pretty much the same way as the ILE RPG IF statement. In free-format, however, the condition portion of the statement is not limited to what can fit in the extended factor 2 field. The free-format CHAIN statement is used slightly differently from a standard ILE RPG CHAIN. In free-format, the chain command is used, as shown below:

 chain(EN) keyfield  file-or-record-name data-structure;


In this sample, the E operation extender can be used to reset the state of the %ERROR and %STATUS built-in functions (BIFs) prior to performing a chain. The N operation extender is used on an update-capable disk file to disable record locking for this chain operation. Keyfield identifies either a single field or a key list name containing the search key value as would appear in factor 1 on a CHAIN in standard RPG. The file-or-record-name identifies the file name or record name to be chained to. This value would appear in factor 2 of a standard RPG statement. The optional data-structure name can be used with program-described files to place the record read into the defined data structure.

As with all of the free-format operation codes, the free-format CHAIN operation doesn't allow resulting indicators to be used. The %error and %found BIFs should be used in place of the resulting indicators for any file access opcodes (Chain, Read, etc.) When using free-format code, the eval and callp operations can be omitted. This means that either of the following statements can be used to set the value of the payment variable.

 eval payment=(principal+interest) / term;
 payment=(principal+interest) / term;


One circumstance where you will need to use the eval opcode is when you want to use an operation extender, such as the half-adjust extended (H), as shown below:

eval(H) payment=(principal+interest) / term;


Just as with the eval opcode, the callp opcode can be omitted when calling a prototyped procedure. The free-format syntax allows for either of the lines of code shown below:

 callp procname();
 procname();


As this example shows, you must specify empty parentheses if no parameters are being passed. In addition to some other opcodes, for obvious reasons, the RPG arithmetic operation codes (ADD, SUB, MULT, DIV, MVR) are not supported in free-format. These can be replaced by the mathematic operators (+, -, *, /) along with the BIF %REM, which is used to replace the move remainder (MVR) opcode. In addition to these, the MOVE opcodes (MOVE, MOVEA, MOVEL) and COMP opcode are also not supported in free-format. The table in Figure 2 contains a list of the operations that are supported in free-format.

Free-Format Opcodes

ACQ
DOW
ENDSR
IN
POST
SELECT
BEGSR
DSPLY
EVAL
ITER
READ
SETGT
CALLP
DUMP
EVALR
LEAVE
READC
SETLL
CHAIN
ELSE
EXCEPT
LEAVESR
READE
SORTA
CLEAR
ELSEIF
EXFMT
MONITOR
READP
TEST
CLOSE
ENDDO
EXSR
NEXT
READPE
UNLOCK
COMMIT
ENDFOR
FEOD
ON-ERROR
REL
UPDATE
DEALLOC
ENDIF
FOR
OPEN
RESET
WHEN
DELETE
ENDMON
FORCE
OTHER
RETURN
WRITE
DOU
ENDSL
IF
OUT
ROLBK

Figure 2: These opcodes are supported by free-format ILE RPG.

It's important to remember that resulting indicator use is not permitted in free-format. As with the chain example earlier, most operation codes that have result indicators in standard RPG can use a BIF in place of the result indicator. When using the any of the READ opcodes, the %EOF and %ERROR BIFs can be used in place of result indicators. Figure 3 shows a sample of the free-format code using READE operation.

/free
   setll ordno orderdtl;
   reade ordno orderdtl;
   dow Not %EOF(orderdtl) And Not %ERROR(orerddtl);
ord#=ordno;
line=ordln;
item-ordit;
except detail;
   reade ordno orderdtl;
   enddo;   
/end-free

Figure 3: This example shows how to use the free-format ILE READE opcode.

As with the chain opcode, the set low level key (setll) and read equal key (reade) opcodes are both used in the format:

Op_code(Extenders) factor_1 factor_2 result;


This is actually the case with most of the ILE RPG opcodes available in free-format. The exception would be any opcodes that do not require one of the factors or the result field. Operands, including subroutine names, can be longer than the 14-character limit of standard ILE RPG. Because there is now a means by which to define a field within free-format, all field definitions must be done outside of the free-format code, using either standard RPG statements or D specifications. A single statement can be continued to multiple lines by simply omitting the semicolon character on all but the last line. Figure 4 shows a sample of a multi-line statement.

/free
 TextDate=%subst(datefld:1:2) + '/' + %subst(datefld:3:2)
          + '/' + %subst(datefld:5:4);
  dsply TextDate;
/end-free

Figure 4: Free-format ILE RPG statements can run over multiple lines.

In this example, the value for the field TextDate is evaluated using the %substr BIF within one statement that runs over two lines of code. The evaluated value is then displayed to the session console using the dsply opcode.

An important consideration when moving from standard RPG or ILE RPG to free-format RPG is that conditioning indicators, as shown in the example below, can't be used:

C   KC              EVAL      *INLR = *ON
C   KC              RETURN


While the use of conditioning indicators is frowned upon by many programmers, let's face it, you probably have a program running somewhere on your system that still uses this type of code. In free-format, this would be replaced by the section of code shown here:

/free
if *INKC;
*INLR = *ON;
return;
endif;
/end-free


This example replaces the conditioning indicator with an if statement that checks the state of the indicator *INKC, which indicates that the F3 key was pressed. While using this technique would be preferred in any version of RPG, in free-format it's absolutely required. This can be a consideration if you're planning to convert old applications to free-format.

Something Old, Something New

One nice thing about moving to the free-format RPG is that you can actually combine standard RPG statements with sections of free-format code. Figure 5 shows an example of mixing free-format and fixed-format ILE RPG code.

C                   MOVEL   DATEALPH        DATENUM      8
/free
if datenum
datenum= datefld;
endif;
/end-free

Figure 5: This sample combines free-format code with standard ILE RPG code.

This example uses the MOVE opcode to put the contents of the alphanumeric field DATEALPH into the numeric field DATENUM using standard-format ILE RPG code. A free-format if statement is then used along with a statement that evaluates a new value for the field DATENUM. In this example, you are also able to define the field length for DATENUMwithin the fixed-format code. As I mentioned earlier, this can't be done in free-format.

One of the advantages of being able to combine standard-format ILE RPG with free-format is that you can slowly convert a program to free-format, piece by piece. This allows you to change portions of the code and then compile and test them. This can make debugging problems with converted code much easier.

As I mentioned earlier, any copybook source is assumed to be fixed-format but can be identified as free-format using the /free and /end-free directives at the beginning and end of the copybook source. This allows you to maximize the use of existing code segments that are stored in copybook members while creating programs that use free-format code. This also means that if you convert existing copybook members to free-format code, standard ILE RPG programs that used the old versions will be able to use the new free-format version of the copybook by simply recompiling.

Another advantage to being able to combine standard ILE RPG and free-format ILE RPG is that it will allow you to make use of opcodes that are not supported in free-format, for example GOTO and TAG. If your program requires the use of these opcodes, other than redesigning the logic of your program, there really is no good alternative. The sample code shown in Figure 6 allows you to use the GOTO and TAG opcodes while still making use of free-format code.

C        REDO       TAG                                      
/free
Except FORMAT01;
If *INKC;
*INLR=*ON;
Return;
EndIf;
Exsr Process;
/end-free
C                   GOTO    REDO                             

Figure 6: This example mixes standard ILE RPG with free-format code.

While this example doesn't use "preferred" programming techniques, it illustrates the point.

What Else Is in V5R1 RPG?

Another feature that was added into ILE RPG in V5R1 that is not specific to free-format but does complement the free-format code nicely is the ability to use qualified field names with data structures. With this feature, you can to define the same field name within two data structures and reference the correct field in the same way that you would in SQL, C, or Java. This is accomplished through the use of two new keywords on the D specs. The QUALIFIED keyword defines that a data structure will be accessed using its qualified name. The LIKEDS(data structure name) keyword allows you to define a new data structure that has the same format as an existing data structure. Figure 7 shows an example of how this would appear in a program.

D DATES1          DS                   QUALIFIED      
D  ORDDATE                       6  0                 
D  SHIPDATE                      6  0                
D  INVDATE                       6  0                
D DATES2          DS                   LIKEDS(DATES1)
/free
read file;
if not %eof(file);
DATES1.ORDDATE=ODATE;
DATES1.SHIPDATE=SDATE;
DATES1.INVDATE=IDATE;
endif;
read file1;
if not %eof(file1);
DATES2.ORDDATE=ODATE;
DATES2.SHIPDATE=SDATE;
DATES2.INVDATE=IDATE;
endif;
/end-free

Figure 7: This sample code shows the use of qualified data structures.

This example illustrates the ability to access the fields within each of the data structures using the following format:

data_structure.field


In addition to qualified data structures, the elseif opcode is an addition in V5R1 that, while not restricted to free-format, extends the usefulness of free-format ILE RPG. The elseif opcode allows you to reduce the number of nested if statements within your program. This opcode allows you to replace this code

/free
if A=1 ;
A=2;
else;
    if A=2;
              A=3;
    else; 
         if A=3;
                   A=4;
         endif;
         endif;
     endif;
/end-free


with this much simpler code:

/free
if A=1 ;
A=2;
elseif A=2;
          A=3;
elseif A=3;
          A=4;
     endif;
/end-free


Not only does this method require fewer lines of code, but it makes analyzing the code a much simpler process.

V5R2 Changes and Additions

As if what I've covered already wasn't enough, in V5R2, IBM is offering even more enhancements to free-format ILE RPG. Not the least of these enhancements is the addition of the %KDS BIF. This function can be used with file opcodes (chain, read, etc.) in place of a key list, as shown below:

D DSKEY           DS                   LIKEREC(FILE: *KEY)
/free
chain %KDS(DSKEY) file;


In this example, DSKEY is a data structure defined using the new LIKEREC keyword. This keyword allows you to create a data structure based on a record format. In the example here, the *KEY parameter is used to retrieve only the key field information from the specified file. Partial keys can be used by specifying a second parameter on the %KDS function that defines the number of key fields to be used, as shown here:

D DSKEY           DS                   LIKEREC(FILE: *KEY)
/free
chain %KDS(DSKEY: 2) file;


In this example, the first two key fields defined for the file would be used to retrieve the record. Alternatively, in V5R2, you can specify a list of fields in place of the key list name or %KDS BIF as shown here:

/free
chain (item: cust: store) file;


This example uses the three specified fields to retrieve the desired data from the file. You can specify partial keys by simply reducing the number of fields within the parentheses. When using either of these techniques in free-format code, another big change is that fields specified within the key have to be only the same type, not the same length. This means that if your file has a key field defined as a nine-position numeric field with no decimal places, you can chain to that file using a numeric field that is defined as 15 positions with five decimals.

Here's another example: If a file's key field is a 10-character alpha field, the key field specified in free-format could be a 12-character alpha field. You can't, however, use a numeric field for a key that is alpha or vice versa.

Another BIF that makes its debut in V5R2 is the %FIELDS BIF. This function is used with the update opcode and allows you to selectively update defined fields. The following example would be used to only update the fields fldate and fltime when the update operation is executed:

/free
update file %fields(fldate:fltime);


Mathematical operators have also been enhanced in V5R2 with the addition of +=, -=, *=, **= and /=. These operators can be used to perform the desired arithmetic function on the result field and another specified field or value. For example, instead of using

  count = count + 1


you can now specify this:

 count += 1


In either of these examples, the value of count is replaced with the value of count plus one. This method is similar to the arithmetic functions used in C or Java.

In addition to these, the %DEC, DECH, %FLOAT, %INT, INTH, %UNS, and %UNSH BIFs have been enhanced to allow the use of a character field as the parameter for the functions. This means that the example below is now acceptable:

/free
IntVal=%INT('12345.76')


This enhancement makes it easier to translate a character field to a numeric field.

Coloring Outside of the Lines

I hope I've helped to illustrate how free-format ILE RPG can make your programming tasks a lot easier. Once you've had a chance to try using free-format code on your system, you'll see how much fun it can be to color outside of the lines.

Mike Faust is the MIS Manager for The Lehigh Group in Macungie, PA. He has nearly 15 years of experience with midrange systems and personal computers. Be sure to check out Mike's book The iSeries and AS/400 Programmer's Guide to Cool Things from MC Press. Mike can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..

Mike Faust

Mike Faust is a senior consultant/analyst for Retail Technologies Corporation in Orlando, Florida. Mike is also the author of the books Active Server Pages Primer, The iSeries and AS/400 Programmer's Guide to Cool Things, JavaScript for the Business Developer, and SQL Built-in Functions and Stored Procedures. You can contact Mike at mikeffaust@yahoo.com.


MC Press books written by Mike Faust available now on the MC Press Bookstore.

Active Server Pages Primer Active Server Pages Primer
Learn how to make the most of ASP while creating a fully functional ASP "shopping cart" application.
List Price $79.00

Now On Sale

JavaScript for the Business Developer JavaScript for the Business Developer
Learn how JavaScript can help you create dynamic business applications with Web browser interfaces.
List Price $44.95

Now On Sale

SQL Built-in Functions and Stored Procedures SQL Built-in Functions and Stored Procedures
Unleash the full power of SQL with these highly useful tools.
List Price $49.95

Now On Sale

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

RESOURCE CENTER

  • WHITE PAPERS

  • WEBCAST

  • TRIAL SOFTWARE

  • White Paper: Node.js for Enterprise IBM i Modernization

    SB Profound WP 5539

    If your business is thinking about modernizing your legacy IBM i (also known as AS/400 or iSeries) applications, you will want to read this white paper first!

    Download this paper and learn how Node.js can ensure that you:
    - Modernize on-time and budget - no more lengthy, costly, disruptive app rewrites!
    - Retain your IBM i systems of record
    - Find and hire new development talent
    - Integrate new Node.js applications with your existing RPG, Java, .Net, and PHP apps
    - Extend your IBM i capabilties to include Watson API, Cloud, and Internet of Things


    Read Node.js for Enterprise IBM i Modernization Now!

     

  • Profound Logic Solution Guide

    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 companyare not aligned with the current IT environment.

    Get your copy of this important guide today!

     

  • 2022 IBM i Marketplace Survey Results

    Fortra2022 marks the eighth edition of the IBM i Marketplace Survey Results. Each year, Fortra captures data on how businesses use the IBM i platform and the IT and cybersecurity initiatives it supports.

    Over the years, this survey has become a true industry benchmark, revealing to readers the trends that are shaping and driving the market and providing insight into what the future may bring for this technology.

  • Brunswick bowls a perfect 300 with LANSA!

    FortraBrunswick is the leader in bowling products, services, and industry expertise for the development and renovation of new and existing bowling centers and mixed-use recreation facilities across the entertainment industry. However, the lifeblood of Brunswick’s capital equipment business was running on a 15-year-old software application written in Visual Basic 6 (VB6) with a SQL Server back-end. The application was at the end of its life and needed to be replaced.
    With the help of Visual LANSA, they found an easy-to-use, long-term platform that enabled their team to collaborate, innovate, and integrate with existing systems and databases within a single platform.
    Read the case study to learn how they achieved success and increased the speed of development by 30% with Visual LANSA.

     

  • Progressive Web Apps: Create a Universal Experience Across All Devices

    LANSAProgressive Web Apps allow you to reach anyone, anywhere, and on any device with a single unified codebase. This means that your applications—regardless of browser, device, or platform—instantly become more reliable and consistent. They are the present and future of application development, and more and more businesses are catching on.
    Download this whitepaper and learn:

    • How PWAs support fast application development and streamline DevOps
    • How to give your business a competitive edge using PWAs
    • What makes progressive web apps so versatile, both online and offline

     

     

  • The Power of Coding in a Low-Code Solution

    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:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks

     

     

  • Why Migrate When You Can Modernize?

    LANSABusiness 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.
    In this white paper, you’ll learn how to think of these issues as opportunities rather than problems. We’ll explore motivations to migrate or modernize, their risks and considerations you should be aware of before embarking on a (migration or modernization) project.
    Lastly, we’ll discuss how modernizing IBM i applications with optimized business workflows, integration with other technologies and new mobile and web user interfaces will enable IT – and the business – to experience time-added value and much more.

     

  • UPDATED: Developer Kit: Making a Business Case for Modernization and Beyond

    Profound Logic Software, Inc.Having trouble getting management approval for modernization projects? The problem may be you're not speaking enough "business" to them.

    This Developer Kit provides you study-backed data and a ready-to-use business case template to help get your very next development project approved!

  • What to Do When Your AS/400 Talent Retires

    FortraIT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators is small.

    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:

    • Why IBM i skills depletion is a top concern
    • How leading organizations are coping
    • Where automation will make the biggest impact

     

  • Node.js on IBM i Webinar Series Pt. 2: Setting Up Your Development Tools

    Profound Logic Software, Inc.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. In Part 2, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Attend this webinar to learn:

    • Different tools to develop Node.js applications on IBM i
    • Debugging Node.js
    • The basics of Git and tools to help those new to it
    • Using NodeRun.com as a pre-built development environment

     

     

  • Expert Tips for IBM i Security: Beyond the Basics

    SB PowerTech WC GenericIn this session, IBM i security expert Robin Tatam provides a quick recap of IBM i security basics and guides you through some advanced cybersecurity techniques that can help you take data protection to the next level. Robin will cover:

    • Reducing the risk posed by special authorities
    • Establishing object-level security
    • Overseeing user actions and data access

    Don't miss this chance to take your knowledge of IBM i security beyond the basics.

     

     

  • 5 IBM i Security Quick Wins

    SB PowerTech WC GenericIn today’s threat landscape, upper management is laser-focused on cybersecurity. You need to make progress in securing your systems—and make it fast.
    There’s no shortage of actions you could take, but what tactics will actually deliver the results you need? And how can you find a security strategy that fits your budget and time constraints?
    Join top IBM i security expert Robin Tatam as he outlines the five fastest and most impactful changes you can make to strengthen IBM i security this year.
    Your system didn’t become unsecure overnight and you won’t be able to turn it around overnight either. But quick wins are possible with IBM i security, and Robin Tatam will show you how to achieve them.

  • Security Bulletin: Malware Infection Discovered on IBM i Server!

    SB PowerTech WC GenericMalicious programs can bring entire businesses to their knees—and IBM i shops are not immune. It’s critical to grasp the true impact malware can have on IBM i and the network that connects to it. Attend this webinar to gain a thorough understanding of the relationships between:

    • Viruses, native objects, and the integrated file system (IFS)
    • Power Systems and Windows-based viruses and malware
    • PC-based anti-virus scanning versus native IBM i scanning

    There are a number of ways you can minimize your exposure to viruses. IBM i security expert Sandi Moore explains the facts, including how to ensure you're fully protected and compliant with regulations such as PCI.

     

     

  • Encryption on IBM i Simplified

    SB PowerTech WC GenericDB2 Field Procedures (FieldProcs) were introduced in IBM i 7.1 and have greatly simplified encryption, often without requiring any application changes. Now you can quickly encrypt sensitive data on the IBM i including PII, PCI, PHI data in your physical files and tables.
    Watch this webinar to learn how you can quickly implement encryption on the IBM i. During the webinar, security expert Robin Tatam will show you how to:

    • Use Field Procedures to automate encryption and decryption
    • Restrict and mask field level access by user or group
    • Meet compliance requirements with effective key management and audit trails

     

  • Lessons Learned from IBM i Cyber Attacks

    SB PowerTech WC GenericDespite the many options IBM has provided to protect your systems and data, many organizations still struggle to apply appropriate security controls.
    In this webinar, you'll get insight into how the criminals accessed these systems, the fallout from these attacks, and how the incidents could have been avoided by following security best practices.

    • Learn which security gaps cyber criminals love most
    • Find out how other IBM i organizations have fallen victim
    • Get the details on policies and processes you can implement to protect your organization, even when staff works from home

    You will learn the steps you can take to avoid the mistakes made in these examples, as well as other inadequate and misconfigured settings that put businesses at risk.

     

     

  • The Power of Coding in a Low-Code Solution

    SB PowerTech WC GenericWhen 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:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks

     

     

  • Node Webinar Series Pt. 1: The World of Node.js on IBM i

    SB Profound WC GenericHave 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.
    Part 1 will teach you what Node.js is, why it's a great option for IBM i shops, and how to take advantage of the ecosystem surrounding Node.
    In addition to background information, our Director of Product Development Scott Klement will demonstrate applications that take advantage of the Node Package Manager (npm).
    Watch Now.

  • The Biggest Mistakes in IBM i Security

    SB Profound WC Generic The Biggest Mistakes in IBM i Security
    Here’s the harsh reality: cybersecurity pros have to get their jobs right every single day, while an attacker only has to succeed once to do incredible damage.
    Whether that’s thousands of exposed records, millions of dollars in fines and legal fees, or diminished share value, it’s easy to judge organizations that fall victim. IBM i enjoys an enviable reputation for security, but no system is impervious to mistakes.
    Join this webinar to learn about the biggest errors made when securing a Power Systems server.
    This knowledge is critical for ensuring integrity of your application data and preventing you from becoming the next Equifax. It’s also essential for complying with all formal regulations, including SOX, PCI, GDPR, and HIPAA
    Watch Now.

  • Comply in 5! Well, actually UNDER 5 minutes!!

    SB CYBRA PPL 5382

    TRY 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.

    Request your trial now!

  • Backup and Recovery on IBM i: Your Strategy for the Unexpected

    FortraRobot automates the routine 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:
    - Simplified backup procedures
    - Easy data encryption
    - Save media management
    - Guided restoration
    - Seamless product integration
    Make sure your data survives when catastrophe hits. Try the Robot Backup and Recovery Solution FREE for 30 days.

  • Manage IBM i Messages by Exception with Robot

    SB HelpSystems SC 5413Managing messages on your IBM i can be more than a full-time job if you have to do it manually. 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:
    - Automated message management
    - Tailored notifications and automatic escalation
    - System-wide control of your IBM i partitions
    - Two-way system notifications from your mobile device
    - Seamless product integration
    Try the Robot Message Management Solution FREE for 30 days.

  • Easiest Way to Save Money? Stop Printing IBM i Reports

    FortraRobot 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:

    - Automated report distribution
    - View online without delay
    - Browser interface to make notes
    - Custom retention capabilities
    - Seamless product integration
    Rerun another report? Never again. Try the Robot Report Management Solution FREE for 30 days.

  • Hassle-Free IBM i Operations around the Clock

    SB HelpSystems SC 5413For over 30 years, Robot has been a leader in systems management for IBM i.
    Manage your job schedule with the Robot Job Scheduling Solution. Key features include:
    - Automated batch, interactive, and cross-platform scheduling
    - Event-driven dependency processing
    - Centralized monitoring and reporting
    - Audit log and ready-to-use reports
    - Seamless product integration
    Scale your software, not your staff. Try the Robot Job Scheduling Solution FREE for 30 days.