PFIXDBF Command for IBM ISeries AS/400 AS400

Introduction

PFIXDBF fixes corrupt decimal numeric data (which if unfixed would typically generate MCH1202 Decimal Data Error). This is one of the commands in our Iseries utilities library (click this URL for full contact and pricing details).

The only fix performed right now is to replace leading blanks (hex 40) in the field with zero (hex 00, 0F or F0 as required). There is no check/fix for the entire field e.g.via TESTN. So the function is suitable mostly for older files where entire numeric fields have been partially or completely incorrectly initialised to blanks.


Examples

PFIXDBF FILE(GLDATA/GLMAST) MBR(*FIRST)

Command above fixes decimal data errors in all numeric (packed/zoned) fields in the first member in GLMAST in the library GLDATA.


Restrictions

1) External definition: FILE must be externally defined. It is analysed for record layout and record length.
2) Single record format in FILE.
3) Keyed files: Function does not take key fields into account i.e. both key fields and non-key fields will be ‘fixed’. If a fix would render a keyed access path invalid (e.g. generate a duplicate key where unique keys are required), you should run PFIXDBF over a temporary version of FILE with no keyed unique access paths.
4) Maximum 999 fields with maximum record length of 2K (2048 bytes): These and other limitations in underlying RPG/ILE program PFIXDBF2. Can be bumped up if needs be.
5) Fields fixed are numeric (zoned decimal or packed decimal) only. All other field types ignored.
6) MBR must be *FIRST or named individually (no *ALL option). Easily changed if this is a problem.

IBM rebranded the AS/400 - some users called it AS400 - to ISeries several years ago. All 3 names - ISeries, AS/400, AS400 - refer to exactly the same system.