ARCAD Transformer RPG FAQ 2018-06-06T11:04:21+00:00

ARCAD Transformer RPG

ARCAD Transformer RPGaka ARCAD RPG Converter for IBM i

Convert from RPGLE to Free Format RPG, automatically!

Logo i for Business

Informational message:  key generated successfully

Your request has been processed successfully. The generated key will be sent via email to the address you supplied when you filled out the form. If you do not receive this email in a short amount of time, please check your spam folder before contacting your regional sales office for assistance.

Error message:  Key already generated

Only one temporary key is allowed per customer per system. This error occurs when you attempt to generate a key for a serial number already on our system. This typically happens when you cannot find the email generated during initial submission. Please check spam folders before contacting your regional sales office for assistance.


Error message:  Invalid client

Error message:  Invalid operation

Error message:  Invalid system

Error message:  Key generation failed

A general error has occurred. The generation of the Temporary Activation Key has failed. The system had an issue with data on the form as submitted. Check the contents of the form and make sure it is fully filled out before pressing submit. Make sure your browser is up to date, try a different browser. If you still receive any of the above general errors, contact us for assistance.

Error message:  Missing data

The company, the e-mail, the serial number and the partition number are mandatory fields. Generation of a temporary key will fail unless the form is complete. Please try again after reviewing the form and supplying the required fields..

Error message:  System already exists

The system (Serial Number and Partition Number) entered has already been used. It is not possible to generate a temporary key for a system already on file. If you believe this is an error, please contact us for assistance.

Error message:  Email failed

The e-mail with the Temporary Activation Key failed to send. This could be due to high server volume or for other reasoins beyond our control. If this error occurs, please wait a while and try the operation again. If you continue to have problems, please contact your regional sales office.

Error message:  Key server unavailable

The key server is unavailable due to maintenance or a temporary interruption of service has occurred. Your request cannot be processed at this time. Please try the request again later. If you continue to have problems, please contact your regional sales office.

Answer: Yes this is taken into account:

Two different cases:

D  Ds_A01                           Ds
D           …
D         LastFld          450   452

Simple case, a DS is used to call a pgm

Call     ‘PGM02’
Parm                     ds_A01

Nothing special:

The prototype defines a area of the length of the Ds, in the prototype pgm to call:

Dcl-Ds Ds_A01;

LastFld              Char(3)     Pos(450);

Dcl-Pr Pgm_PGM02   ExtPgm(‘PGM02’);
Ds_A01       Char(452);
End-Pr ;

Pgm_PGM02(Ds_A01) ;

If more complicated : the DS is one of the areas in input / output pgm ( PGM01 )

*ENTRY                PList
Parm                     ds_A01

This is more special, it is difficult to declare a Ds as entry point

( possible, but only with DS ” Qualified ” and using ” LikeDs “)

That is why the method adopted is as follows:

The old DS is based on a new pointer.

Dcl-S pDs_PiParm_001  Pointer;
Dcl-Ds Ds_A01

LastFld              Char(3)     Pos(450);

The program parameter has another name (alpha zone).
Dcl-Pr Pgm_PGM01   ExtPgm(‘PGM01’);
Ds_PiParm_001   Char(452);
End-Pr ;

Dcl-Pi Pgm_PGM01;
Ds_PiParm_001   Char(452);
End-Pi ;

And at the beginning of pgm ( or INZSR * ) :
we ensure the memory recovery of the two areas via the pointer.

pDs_PiParm_001 = %Addr(Ds_PiParm_001);
So it does not matter if the DS is input, output, or both: it works like with *ENTRY PLIST.

Answer: The product is designed to use as an RDI PlugIn. The product can be used from a 5250 interface, but in that case :

– You would use the  ARCAD_RPG/ACVTRPGFRE command which converts one member at a time. It is not possible to perform mass-conversions using the 5250 interface unless other ARCAD products are installed. To apply the license key using a 5250 session use the command ARCAD_RPG/ALICCVTRPG.

Answer: The plug in is available for for RDp 8.0, 8.5, and RDi 9.0.

Answer: YES – The conversion of MOVE or MOVEL op codes are handled:

Here is the OnLine help for MOVE and MOVEL for the ACVTRPGFRE command:


This operation code, widely used in traditional syntax, performs operations for which the behavior depends on the type of the variables and their length; all of the following cases are covered:

  • Figurative constant in factor 2 (*Blank, *Zero, *Hival, *Loval, *ALL’0′, *ALL’xxxx’).
  • With or without (p) as operation extender
  • Variable or fixed length field
  • Factor 2 field with a length less than the result field
  • Factor 2 field with a length greater than or equal to the result field
  • Assignment with numeric conversion alpha using %XLate, %Dec, %EditC, and possibly digital shifting by multiplying or dividing by 10, 100, 1000.. etc…
  • When factor 2 and/or the result field contain a Date/Time/TimeStamp field, conversion using %Date, %Time, %TimeStamp, or %Char, %Dec using the date/time format of the field.

If specified in positions 71-76, indicators are set after the converted instruction.

Answer: for SQLRPGLE it converts fixed form SQL instructions to free form SQL instruction :

Ex :  From   C/EXEC SQL

To                             Exec Sql SELECT AB, CD FROM EF


Answer: NO  – The converter will only convert ILE code to FREE!

Answer: ARCAD-Transformer RPG takes /Free format in account and knows the number of  “IF … ENDIF”, but it does not change the indentation of the Free Format. It will however use it when classical form is enclosed between existing free format.

Answer: YES – ARCAD Transformer RPG is usable for R.D 8.0.
IBM allows new syntax for H,F,D, and P Specs in LPEX only from version 9.0.x

On V7R1 :

  1. You need to install the PTF SI51094, if you want to convert classical RPGLE to all-free form RPGLE. This PTF allows the new syntax of H,F,D and P specs for RPGLE source (but not for SQLRPGLE). This PTF is easy to install : it took ARCAD 5 minutes, and no IPL is required.
  2. The second “DB2 PTF group SF99701 level 26” is needed only to compile an SQLRPGLE which has new syntax for H,F,D and P specs.

If it is not installed, it’s possible to do the conversion with Arcad for a classical SQLRPGLE to all-free form SQLRPGLE, but the final source cannot be compiled.

Be aware that this PTF group is :

  • An important part of all the PTFs included for Technology Refresh 7
  • Is not only for the SQLRPGLE compiler, but also many other things for DB2, … (100-200 included PTFs depending of the V7R1 PTF previous level on the system)
  • It took us more than 2 hours to install, and we needed to IPL twice. Here is what ARCAD suggests:
  • Install the PTF SI51094, with only this PTF, you’ll be able to do sufficient testing for RPGLE source (compilation and conversion), with the new syntax for H, F, D, and P Specs.
  • Later, you can install the “DB2 PTF group SF99701 level 26”, if you need to have complete usage of the new syntax for SQLRPGLE.

What we suggest:

  • Install the PTF SI51094, with only this PTF, you’ll be able to do sufficient testing for RPGLE source (compilation and conversion), with the new syntax for H, F, D, and P Specs.
  • Later, you can install the “DB2 PTF group SF99701 level 26”, if you need to have complete usage of the new syntax for SQLRPGLE.

Answer: The license is calculated by number of programs to convert. 1000, 2000 etc….

Answer: The converter will handle CASxx, CABxx, GOTO and so on. For CASxx the converter does the following:

If there are indicators, first test factor 1 and factor 2, then manage subroutine execution according to the condition. However, the conversion of the CASxx, CAS, ENDCS group has 2 possibilities:

  • If at least one of the CASxx statements has an indicator in positions 71-76, it will be converted to “If …”, “Exsr …”, “EndIf”.
  • If none of the CASxx statements has an indicator in positions 71-76, this will be structured better: “Select”, “When …” , “Exsr …”, … “EndSl”

Answer: No, the product is purchased directly from Arcad or your IBM sales representative. It works in conjuction with new compiler in TR7.

Answer: No, indicator are changed to variables. They are used in Free format with their *INxx name.

Answer: No, the goal of the ARCAD conversion process is that the program functions the same as before, but is now in Free format.

Answer: Typically, the programs converted to Free format perform the same as programs coded in classical format. There could be slight differences for some operations (like MOVE(L)    Alpha    Numeric), because the instructions in Free format are longer, but it is negligable. We have no CPU usage statistics.

Answer: RPG or SQLRPG must first been converted to RPGLE/SQLRPGLE And then Arcad Transformer RPG can convert to Free form.

Answer: We did a test with 1,980 (SQL)RPGLE  Arcad programs :
After conversion, only 9 programs did not compile due to the following line of code:
ADD    *ALL’9’      FLdNum
Or because a data structure began in a Copy clause and continued into the main source after /COPY.
For 200 of the programs, we had at least one “Warning” :  In this case, a developer needed to examine the use of %Found/%Equal  after SCAN, CHECK…
The following is from our online help :

IMPORTANT : Difference in behavior of RPGLE-Free

The transformation of RPGLE to a more modern syntax may be inconvenient to perform, but should be seen as an opportunity.
In calculations and numerical assignments with Free syntax, it is no longer possible to have a result value larger than the capacity of the result variable, or to have certain invalid values. So, while old operations allowed the truncation of the result value (whether intended by the programmer or not!), the same operations performed with Free syntax will generate an error.
This is a perfect chance to clean up your code, because often these were “hidden bugs”.
Example 1: numeric value too large
C     Move(p)  1234    WVar04       defined P(4,0)
C     Z-add    WVar04  WVar03       defined P(3,0)
(result was 234 in WVar03)
WVar04 = 1234;
WVar03 = WVar04;
(error at execution: MCH1210 Receiver value too small to hold result.)

Example 2: invalid numeric value
C     Move     ’45R’   WVarA3       defined A(3)
C     Move     WVarA3  WVar03       defined P(3,0)
(result was -459 in WVar03)
WVarA3 = ’45R’;
WVar03 = %Dec(%XLate(‘ ‘:’0’:
(error at execution: RNX0105 : A character representation of a numeric value is in error.).
We at ARCAD encountered only 3 cases like this when we tested using our programs.

With the IBM i 7.1 Technology Refresh 7 announcement on October 7 comes the long-awaited news that all current RPG IV features are now supported in RPG Free.   The importance of this announcement cannot be overstated. RPG is uplifted to the status of a truly modern language, with multifold benefits for users of IBM i and a strategic impact on the future of the platform itself.

On the following day IBM and ARCAD Software announce a tool to automatically convert RPGLE sources into RPG Free.  ARCAD-Transformer RPG (aka IBM Rational ARCAD-Converter) achieves near 100% conversion rates of any RPG IV code including calculation specifications (C) and declaration specifications (H, F, D, P).

Let us consider the implications of this double announcement.  RPG free form syntax frees developers from fixed column entry allowing natural left-to-right indented logic similar to most other languages today (such as Java or C# for example).  Taken at face value, this syntax significantly improves coding efficiency and the readability of sources.  But the true value is much more compelling.  Free syntax moves RPG away from a closed shop.  RPG Free can be easily understood by developers of all creeds, from new graduates to platform veterans.

This definitively resolves the resource squeeze that has been felt by IBM i development organizations for many years.  In a single pass, it is possible to convert a legacy RPG application into free syntax that can in principle be maintained by any developer on the market.

Further still, the readability advantage and the ability to freely switch between modern languages now gives RPG a lead over its traditional rival COBOL.  (The universal business language has stayed unchanged since COBOL 84).

By selecting RPG Free for new development projects, IT managers gain access to several unique benefits of the IBM i platform, not least the database technology.

Still not convinced?

So let’s take a closer look at Free Format RPG and the ARCAD-Transformer RPG tool itself…

RPG IV has evolved into a modern business language, supporting procedures, data areas, data structures, additional data types and extended file support.  Greater interoperability is offered between RPG and Java, XML and SQL.   And RPG source code is far more readable thanks to Free format, blank lines, and comments.

Free format programs have the same source type and are compiled in exactly the same way as fixed format RPG.  The IBM RPG compiler allows the two styles to be mixed freely.

The advantages of converting to RPG Free Form are numerous:

  1. Nested logic is indented to make it easier to understand at a glance
  2. Source code can be entered more rapidly (fewer keystrokes)
  3. More space is available for long expressions
  4. Comments (on the right of operations) can be placed immediately after the code
  5. Free format can co-exist with fixed format
  6. An increasing number of code examples are available only in free format
  7. IBM is focusing its efforts on Free Format RPG
  8. Easier to learn and read for new development team members
  9. Improves the experience for native developers

Experienced RPG developers can become proficient in RPG Free Format with just a few days of learning.  Free Format brings not only the personal satisfaction of learning a new technology, but also modern language skills that can enhance your IT career for the future.

An example side-by-side comparison of original and converted code is given below:


To see the complete source, click here :

As a general rule, to achieve maximum conversion (that is, of C specifications, and also H, F, D, P specifications), IBM i V7R1 with Technology Refresh 7 is required.

However, if you do not yet have Technology Refresh 7, but you have IBM i V7R1 (or V6R1 or V5R4), conversion with ARCAD-Transformer RPG is still possible, but only C specifications will be converted.

N.B. As part of Technology Refresh 7, a standalone PTF (number SI51094) for the RPG compiler is now available from IBM.  This PTF enables compilation of full Free Format RPG and also maximum conversion with ARCAD-Transformer RPG.

(Please note:  if you specifically need to compile any SQLRPGLE sources that have been converted to Free Format, you will then require the additional DB2 PTF group SF99701 level 26).

ARCAD-Transformer RPG is “DBCS capable”.  The solution is written 100% in Unicode and supports all CCSID sources, including Japanese, Chinese, Korean.

ARCAD-Transformer RPG is priced by number of conversions performed.  The first 10 conversions are granted free of charge.   For more details, please contact your local ARCAD sales representative or email our sales departments:
To receive a free trial copy (and/or purchase) your ARCAD-Transformer RPG, please fill in our request form.  The product will be shipped to you directly.

Need some assistance?

Contact ARCAD Software technical support with any technical issues or questions you have via email or by phone.


Contact your ARCAD local sales representative or email our sales departments for further information about the product licence key.

Get ARCAD Transformer RPG!

Contact us
Contact us .........................................
Book a demo
Request a demo