|
Summary of October 2004 updates/changes to Version 4:
- Additions
- SndMsgID - Send program message.
- SndMsg - Send impromptu message.
- SndStsMsg - Send impromptu status message.
- ifsGetDir - Get a list of files of a directory on the IFS.
- Added new options to the HEADERS parameter of the CPYTOCSV
command
- HEADERS(*NONE | *FIELDS | *COLHDG | *TEXT) are now supported
- DateDiff - Calculate the difference between two dates, in
Years/Months/Days
- cgiOBFUSCATE - Encrypt email addresses for output to HTML
pages.
- Fixes
- Fixed a problem with the CPYUSRSPACE (copy user space)
subprocedure.
- Fixed a problem with CGILIB when sending a linefeed as '\n' on
empty lines.
Summary of September releases:
- Added error handling to MATH library
- Corrected problem with CSV library when no headers are selected
- Added low-level support for reading CSV files
September procedures in released:
- DecToDate() - Convert a 6 or 8-digit zoned or packed decimal
value that contains date information into a true date data-type
value.
- DateToDec() - Convert a true date value into a numeric value.
- CharToDate() - Convert a character string that contains a date
in some format, to a true date data-type value.
- DateToChar() - Convert a true date data-type value to
character: Similar to %CHAR() however DateToChar() has more
flexibility and options.
Summary of changes in Aug 2004 release:
- Optimized several of the conversion routines
- Add new date conversion procedures
Summary of changes in previous release:
- Final repackaging as RPG xTools
completed.
- Most procedure names have been changed to mixed (upper/lower)
case names. This will not impact new or existing code in any way.
It allows you to avoid name-collision should you have a similarly
named subprocedure already installed.
- All prototypes have been modified to reflect the new naming
convention.
- No source code or object changes are necessary to support the
new names.
- All names are exported in mixed case, but the prototypes allow
RPG-style UPPERCASE only procedure names to be used, as in previous
releases.
- Only User Space procedures have gone unchanged, that is
they are still all upper case names.
- Environment procedures have been moved. They are now located in
the QCPYSRC member named ENVIRON.
New procedures in previous release:
- RtvKeyList - Retrieve the key list for any database file.
- GetKeyList - Get key list (simplified).
- cgiLineFeed - Convert '\n' to X'25' symbols.
Summary of changes in previous release:
- Compatibility Release: Added new items for compatibility with
the next release of xTools.
- Added new binding directories named XTOOLS and XTOOL.
- The xTools binding directory contains the same RPGLIB service
program name as the RPGLIB binding directory.
- Final release of "toolkit" legacy packaging.
- The next release of RPG xTools
shall remove to TOOLKIT references.
See the FAQ on the next RPG
xTools
release for more details.
- Converted all /COPY statements to /INCLUDE to avoid issues with
SQLRPGLE.
- Corrected an issue with GetMsgInfo when using message data (see
the helptext for details).
- Enhanced '\n' detection in cgiStdOut procedure in CGILIB
- GetUsrSpcPtr - Now logs a message to the joblog if
it fails.
- CrtAsciiFile - Added option to leave file open after it is
created.
New procedures in previous release:
- SndMsgID - Send a program message using a message ID.
- cgiSndMsgID - Send a CPF message to the web browser
- cgiFmtMsgID - Wrap a CPF message (from a MSGID) in HTML.
- ifsGetRecCnt - Get Record Count of IFS text file.
- CrtAsciiFile - Create an empty ASCII file on the IFS.
- XLateObjType - Translate OS/400 Object Type into MI object type
code.
- GetOvrInfo - Retrieve override information about a file
- CvtCaseEx - Convert case extended. Converts case using parms instead
of return values (better performance).
- CvtCasePtr - Convert case using pointers. Converts case of parms
passed by pointer instead of return values (better performance).
Summary of changes in prior version/release 3.1:
- Corrected a problem in continuity when appending to an existing CSV
(comma separated) file.
- Minor optimization in GetDate.
- Significantly improved performance in internal routines when
checking for existence of objects such as user spaces. This also impacts
most other interfaces in the xTools with better performance when they
are called multiple times per transaction.
- Significantly improved performance when converting to CSV (comma
separated values) from DB2/400 database files.
- Improved performance of the GetNextEntry() procedure.
- Fixed a problem with CSV routines when no file name is specified.
- Added "large file" support to CSV routines. Upper size limit for
output CSV data is now either 4GB or 256GB depending on the release of
OS/400. The previous maximum size was 2GB.
- Added CCSID (codepage) option to the CpyToCsvIFS() subprocedure and
the CL command CPYTOCSV.
- The CSV routines now open and write CSV files using CCSID(819)
instead of the same CCSID as your job. This should fix issues with
EBCDIC showing up when viewing the data with Windows or Linux
applications.
- Minor performance improvement to TOUPPER and TOLOWER.
- Changed the file handle for CSV processing from a pointer to a C
FILE struct, to an int4 (10i0) value. This was necessary to enable large
file support on OS/400 V4R5.
Summary of changes made in earlier releases:
- Added starting record number to Convert to CSV interfaces
- New Procedures in this release:
- CleanNum() - Clean text fields contain digits and garbage.
- GetDate() - Retrieve relative date. e.g., x =
GetDay('Next':'Friday').
- GetDayCount() - Get number of times a day occurs in the month.
- ifsGetRecCnt() - Get record count of a text file on the IFS.
- Previous Updates:
- Fixed issue with FindRepl()
- Optimized CvtToCsv() and fixed a minor bug
- Corrected an issue with the CGI UnEscape() routine
|