Problem in PL/I Ebcdic File Read Using Parallel Seq Stage
Posted: Tue Jun 21, 2005 6:27 pm
Hi,
I am trying to read a EBCDIC file using Parallel Sequential Stage (you can read Ebcdic files using this stage also). I specified Under general properties Character set as Ebcdic and Dataformat as 'Binary'.
1. The table definition for this file is in PL/I format.
2. My Ebcdic file has fixed length records, no field or record delimiters.
3. Each record is of 84 bytes size. It's throwing some errors when I try to read. It's saying " Formatted length of fields and record (106) greater than declared length (84) ". But my PL/I structure says that record length is 84 only.
4. When I specify record length as 106 it's reading the data but not in correct format and it's reading less no.of records actually my ebcdic file has 20 records.
4. The file doesn't have any packed fields. Just have comp,comp1 and pic x(1) fields.
PL/I Structure:
BIN FIXED 15 - 2 Byte integer
BIN FIXED 31 - 4 Byte integer
BIN FLOAT 21 -4 Byte (float)
BIN BIT - 1 Bit
If you need more infomation I can email u the .dsx and Sample Ebcdic file.
Any help would be greatly appreciated..........
Thanks,
Ravi.
I am trying to read a EBCDIC file using Parallel Sequential Stage (you can read Ebcdic files using this stage also). I specified Under general properties Character set as Ebcdic and Dataformat as 'Binary'.
1. The table definition for this file is in PL/I format.
2. My Ebcdic file has fixed length records, no field or record delimiters.
3. Each record is of 84 bytes size. It's throwing some errors when I try to read. It's saying " Formatted length of fields and record (106) greater than declared length (84) ". But my PL/I structure says that record length is 84 only.
4. When I specify record length as 106 it's reading the data but not in correct format and it's reading less no.of records actually my ebcdic file has 20 records.
4. The file doesn't have any packed fields. Just have comp,comp1 and pic x(1) fields.
PL/I Structure:
Code: Select all
/************* THIS IS PLSTRUC.UPCOUT ********************************/
DCL 1 UPCOUT, /* UPC SELECT UNIFIED OUTPUT RECORD */
5 FSP_UNITS BIN FLOAT(21), /* LOYALTY SHOPPER UNITS */
5 UPC,
6 SYSTEM BIN FIXED(15),
6 GENERATION BIN FIXED(15),
6 VENDOR BIN FIXED(31),
6 ITEM BIN FIXED(31),
5 FME_PRI_UNITS BIN FIXED(15), /* PRIMARY PRICE MULTI_UNITS */
5 FME_SEC_UNITS BIN FIXED(15), /* SCNDARY PRICE MULTI_UNITS */
5 WEEK BIN FIXED(15),
5 OLD_STORE BIN FIXED(15), /* STORE NUMBER IF THE NUMBER */
/* IS LESS THAN 32767. IF THE */
/* THE NUMBER IS > 32767, THIS*/
/* VALUE IS SET TO -1. */
/* 10/27/92 PRJTC */
5 UNITS BIN FLOAT(21),
5 CENTS BIN FLOAT(21), /* TOTAL CENTS PAID */
5 STUBNO BIN FIXED(31), /* STUB POINTER */
5 COUPON_ORIGIN BIN FIXED(15), /* VALID FOR PURCHASE ONLY */
5 FME_PRI_FLAGS, /* ENHANCED FEATURE FLAGS */
6 PICTURE BIT(1), /* HAS A PICTURE */
6 LOCATION1 BIT(1), /* LOCATION1 */
6 LOCATION2 BIT(1), /* LOCATION2 */
6 PRICE_MULTI BIT(1), /* HAS A PRICE_MULTIPLE */
6 MULTI_SIZE BIT(1), /* MULTI_SIZE ITEMS */
6 LIMITS BIT(1), /* LIMITED TO A MAXIMUM */
6 MUST_BUY BIT(1), /* MUST_BUY */
6 BOGO BIT(1), /* BUY ONE GET ONE */
5 FME_SEC_FLAGS, /* ENHANCED FEATURE FLAGS */
6 PICTURE BIT(1), /* HAS A PICTURE */
6 LOCATION1 BIT(1), /* LOCATION1 */
6 LOCATION2 BIT(1), /* LOCATION2 */
6 PRICE_MULTI BIT(1), /* HAS A PRICE_MULTIPLE */
6 MULTI_SIZE BIT(1), /* MULTI_SIZE ITEMS */
6 LIMITS BIT(1), /* LIMITED TO A MAXIMUM */
6 MUST_BUY BIT(1), /* MUST_BUY */
6 BOGO BIT(1), /* BUY ONE GET ONE */
5 COUPON_FACE_VALUE BIN FIXED(15), /* COUPON FACE VALUE, THIS */
/* FIELD IS DEFINED FOR */
/* PURCHASE ONLY. IT IS NOT */
/* YET SUPPORTED. */
5 COUPON_VALUE BIN FIXED(15), /* REDEMPTION VALUE */
/* REGISTER IF SHOPPERS TOTAL */
5 PERCENT_OFF BIN FIXED(15), /* TRADE REDUCTION PERCENTAGE */
5 FEATURE_CODES BIN FIXED(15),
5 DISPLAY_CODES BIN FIXED(15),
5 DEAL,
6 MDEAL BIT(1), /* MFG DEAL, PURCHASE ONLY */
6 SDEAL BIT(1), /* STORE DEAL */
6 FDEAL BIT(1), /* FEATURE DEAL */
6 DDEAL BIT(1), /* DISPLAY DEAL */
6 RDEAL BIT(1), /* PRICE REDUCTION */
6 PFDEAL BIT(1), /* FEATURE DEAL IN PREV WEEK */
6 PDDEAL BIT(1), /* DISPLAY DEAL IN PREV WEEK */
6 GIFTLINK BIT(1), /* THIS IS A GIFTLINK RECORD */
/* THIS IS ALSO THE EDLP FLAG */
5 FLAG,
6 TEST_ITEM BIT(1),
6 PLU_XLATED BIT(1),
6 NOT_ON_FILE BIT(1),
6 FAKE_DATA BIT(1),
6 PROMO_AGG BIT(1), /* BASELINED IN PROMO AGG */
/* IN SPECIALPAK */
6 DELETED BIT(1), /* RECORD FLAGGED AS DELETED */
6 FEAT_CODE_MOD BIT(1), /* FEATURE CODE MOD FLAG */
6 LDEAL BIT(1), /* LOYALTY SHOPPER FLAG */
5 FSP_DOLLARS BIN FLOAT(21), /* LOYALTY SHOPPER DOLLARS */
5 IDENT BIN FIXED(15),
5 FOOTPRINT, /* FOOTPRINT BIT MAP */
6 UPCMOD BIT(1), /* A POST UPCLOAD MOD HAS */
/* BEEN APPLIED */
6 DICT_PRICE BIT(1), /* THE DICTIONARY PRICE WAS */
/* USED FOR THIS ITEM */
6 DATAMOD BIT(1), /* THIS ITEM WAS MODIFIED */
/* DURING DATA PRODUCTION */
6 IMPUTE BIT(1), /* THE VOLUME OF THIS ITEM */
/* SHOULD BE IMPUTED (IT */
/* WAS A FAILING SUBTRACT)*/
6 PLU_XLATED BIT(1), /* THIS ITEM HAD ITS UPC */
/* NUMBER TRANSLATED */
6 DICT_HICONE BIT(1), /* THIS ITEM WAS HICONE- */
/* MODIFIED IN DICT PROC. */
6 FEAT_DISP BIT(1), /* THIS IS A FEATURE/DISPLAY */
/* PSEUDO-MOVEMENT RECORD */
6 COMBINE BIT(1), /* THIS RECORD WAS MADE UP BY */
/* MORE THAN ONE INPUT RECS */
6 SPLIT BIT(1), /* THIS RECORD WAS MADE UP BY */
/* SPLITTING AN INPUT RECORD*/
6 SKIP_BASE BIT(1), /* DO NOT UPDATE THE BASELINE */
/* DATA SET FROM THIS RECORD*/
6 FEAT_PRICE BIT(1), /* STORE PRICE WAS REPLACED */
/* WITH PRICE FROM FEAT FILE*/
6 PLU_ALLOCATED BIT(1), /* RECORD WAS CREATED FROM THE*/
/* REALLOCATION OF SYSTEM 7 */
/* MOVEMENT */
6 SUBTRACT BIT(1), /* RECORD WAS PROCESSED BY */
/* SUBTRACT STORE LOGIC */
6 SUBTR_RESET BIT(1), /* POSSIBLE RESET CONDITION */
/* FOR SUBTRACT STORES */
6 BASE_OUTLIER BIT(1), /* USED TO CAPTURE ITEMS THAT */
/* WENT THROUGH BASEWK OUTLIER*/
/* LOGIC */
6 DELIVERY_ADD BIT(1), /* UNITS BUMPED UP BY NEGATIVE*/
/* BUMPING ALGORITHM */
5 BASE_UNITS BIN FLOAT(21),
5 BASE_CENTS BIN FLOAT(21),
5 STORE BIN FIXED(31), /* STORE NUMBER. THIS VALUE */
/* IS ALWAYS VALID, EVEN IF */
/* THE NUMBER IS > 32767 */
/* 10/27/92 PRJTC */
5 FEATURE_CODES_NEW BIN FIXED(15),
5 SOURCE BIN FIXED(15), /* NEW FIELD WLM */
5 LOW_RPT_DOLLARS BIN FLOAT(21), /* LOWEST REPORTED DOLLARS */
5 PRE_FSP_DOLLARS BIN FLOAT(21); /* PRE FSP DOLARS */
/************* END OF PLSTRUC.UPCOUT ********************************/
BIN FIXED 31 - 4 Byte integer
BIN FLOAT 21 -4 Byte (float)
BIN BIT - 1 Bit
If you need more infomation I can email u the .dsx and Sample Ebcdic file.
Any help would be greatly appreciated..........
Thanks,
Ravi.