This new release includes cool new features for encrypting data, better support for CGI (Web/Browser) applications, several new xTools core subprocedures as well as continued support for API wrappers (procedures that make it easy to call OS/400 APIs).
NOTE: For compatibility with our current customers who are running OS/400 V4R5, RPG xTools v5 continues to operate on OS/400 V4R5. However, it is more than likely that any future releases of RPG xTools will require OS/400 V5R1 or later.
Here's What's New!
| Feature | Name | Description |
| Processor Group Licensing | N/A | RPG xTools is now licensed to a processor group. The application checks the processor group at runtime to determine if the processor group on which it is running is less than or equal to that which has been licensed. Existing xTools V4.x customers will be "grandfathered in" and given the highest processor group setting. |
| CSV Support | CpyToCsvIFS | This popular procedure has been enhanced. It now includes support
for both column headings and the highly requested column totals.
Converting to CSV for use by MS Excel is much more flexible now, it
allows both column headings and column totals to be inserted optionally
into your CSV file.
In addition, the ability to force a column to be enclosed in so called "hard quotes" is available for numeric fields. This capability allows you to force Excel to look at the field as if it were text, even when it contains all numeric data. This is particularly useful for fields that contain leading zeros that should not be suppressed by Excel. For example, a U.S. Zip Code field that contains a zip code 02345 would normally appear as 2345 in Excel. By using the hard quotes function, this value would appear in the spreadsheet as 02345. Also, date and time value may now optionally be written in Excel format to allow easier sorting and more accurate display of the date/time values. |
| AES Encryption | AESEnCrypt AESDecrypt | Encrypt or decrypt a string of text using AES encryption. |
| RC4 Encryption | RC4Encrypt RC4Decrypt | Encrypt or decrypt a string of text using RC4 encryption. |
| Text Message Window Prompt | DspMsgWin | Display a popup window containing text and an optional window title. |
| Compare and ignore case | CompNoCase | An easy-to-use function that compares two text strings for equality, while ignoring upper/lower case. |
| Decimal to Fractions | DecToFract | Convert a decimal number into a text string containing the fractional equivalent of the original value. For example, the decimal value 20.18 would be converted into the text string "20 1/6". |
| New Date/Time Helper Functions | GetTime and GetDTS | Retrieves the current time or timestamp value of the system, or combines a date and time value to return a true timestamp value. |
| DateDiff, and TimeDiff | Calculates the duration between two dates or two time values. The return value is a data structure with the number of years, months, days, or hours, minutes, seconds between the two values. | |
| CharToDate | Converts a date from textual (i.e., character) format into a real
date data-type value.
For example: EVAL myDate = CharToDate('12/27/2004' : '*USA') Converts the date, Dec 27, 2004 to a date value. Note that the date format of the textual date value may be a literal or a variable. So you can specify the date format at runtime instead of compile time. |
|
| New IFS Functions | ifsGetCrtDate | Retrieves the creation date for a given IFS file. Normally this information is not readily available; this new xTool procedure provides this information to programmers for the first time. |
| ifsSetAttr | Allows a programmer to set the read-only attribute of an IFS file. The read-only attribute may be set to ON or OFF. | |
| ifsLoadFile | Reads an entire IFS file into a user-provided return variable. The entire contents of the IFS file is loaded into memory and copied to a caller-provided input buffer. | |
| ifsGetRecCount | Returns the number of "records" currently in an IFS text file. If the IFS file is not text, then unpredictable results will occur. | |
| Job/Session Info | GetSbmJobA | Retrieves information about the job that submitted the job that is calling GetSbmJobA. Normally this is used within a batch job to determine "who" (what job) submitted the batch job. In addition to the submitter's job name, number and user ID, the date the job was submitted and the message queue of the submitter is returned. |
| Database Key Field List | GetKeyList and GetKeyFldCount | Retrieves a list of key field names or the number of key fields for a given file. |
| Messaging | SndStsMsg | Now you can easily send a Status message from within RPG IV. For example: callp sndstsmsg("Retrieving EDI data...') |
| System-level stuff | GetProcPtr | Get Procedure Pointer. This function returns a PROCPTR (procedure pointer) given a service program and subprocedure name. This allows you to load and call a subprocedure in any service program, at runtime without first binding to that service program. |
| GetProcGroup | Get Processor Group. Returns the processor group (as text) for the system on which the xTools are running. | |
| GetCallerInfo | Get Caller Information. Returns a program or procedure's caller's name. This is a "find my caller" procedure that returns the calling program, module and/or procedure name. You can also use GetCallerInfo as a "where am I" function that returns the current program, module and procedure name. |