Substitution examples

SUBSTITUTION=(#17,OC.#2), KEY(NOT(#16,OC.#1)),NFA(SKIP)

Record Entry #17 is substituted with column 2 from the file with alias OC, if #16 does not match column 1 from OC. The substitution will take place at the first value that does not match. If the Expression is not true (for example, there is a match of #16 and OC.#1) then the value is handled normally.

Normally only one or two entries can be made in OC for an expression like this to be useful.

To substitute based on the same record entry ID, consider using TRANSFORM as it is faster and simpler.

TRANSFORM=#17;0:10;1:20;OTHERWISE:50;

If Record Entry 17 is 0, then it is changed to 10. If the value is 1, it is changed to 20, otherwise the value 50 is used.

SUBSTITUTION=(#18,FAM.#3), KEYS((#3,FAM.#1),(#21,FAM.#2)),NFA(GEN_NEW_SEQNUM)

Record Entry 18 is substituted with column 3 from the file with alias FAM.

The substitution is performed if the Record entry 3 matches an entry in FAMs column 1 and 21 matches column 2 (the same line in the FAM file)

If a match can not be found, a new number is generated for record entry 18 and the FAM file is updated with a new line containing:

Value of #3; value of #21; Sequence number assigned to 18;

SUBSTITUTION=(#25,SYNC.#3), KEYS(NOT(#25,SYNC.#1), NOT(#9,SYNC.#2)),NFA(SKIP)

Record Entry 25 is substituted with column 3 from the file with alias SYNC. The substitution is performed if Record entry 25 does not match an entry in FAMs column 1 and Record entry 9 does not match column 2 (the same line in the FAM file).

!*****************************************************************************

! DEFINITION OF SUBSTITUTION FILE

!*****************************************************************************

filedef(FAM,H:\PC\PMSIM400\Apv2\Custom\FAMCODES.DAT)

filedef(SYNC,H:\PC\PMSIM400\Apv2\Custom\SYNC.DAT)

filedef(OC,H:\PC\PMSIM400\Apv2\Custom\OC.DAT)

 

!*****************************************************************************

!* IMPORT FROM FILE WITH MULTIPLE RECORDS                                    *

!* O,R,M/N & H IN THE SAME FILE:                                             *

!*                                                                           *

!* TOTAL:       PMORGExx.DAT                                                 *

!*                                                                           *

!* INCREMENTAL: PMOGI1xx.DAT                                                 *

!*****************************************************************************

 

[IMPORT]

!   LAYOUT=MULTI_REC

!   TYPE=READ

   FILEFORMAT=SEPARATED

   ID=#1

   DELIMITER=;

!   CHARQUOTES=

   [O]

!     Field  Type    Default             Offset  Length  R  Description

!     -----  ------  ---------------     ------  ------  -  -------------------

   SUBSTITUTION=(#17,OC.#2), KEY(NOT(#17,OC.#1)),NFA(SKIP)

     #1    ;CHAR   ;                   ;1029   ;1    ; "O" EXRTYP  Record type

      #2    ;CHAR   ;                   ;9      ;12   ;     COHPEG  Peg ID

      #3    ;CHAR   ;NULL:ERROR         ;113    ;25   ;     COHITM  Item number

      #4    ;LONG   ;NULL:ERROR         ;8      ;     ;     MOHMRP  Order number

      #7    ;SHORT  ;                   ;134    ;     ;     IOHPRI  External network priority

      #8    ;DATE   ;                   ;9      ;     ;     MOHDDT  MRP order due date

      #9    ;TIME   ;                   ;9      ;     ;       -"-                   -"-

      #10   ;DATE   ;                   ;10     ;     ;     MOHRDT  MRP order release date

      #11   ;TIME   ;                   ;10     ;     ;       -"-                   -"-

      #12   ;DATE   ;                   ;11     ;     ;     MOHCDT  End item peg receipt date

      #13   ;TIME   ;                   ;11     ;     ;       -"-                   -"-

      #14   ;SHORT  ;NULL:ERROR         ;136    ;     ;     IOHSTA  Shop order status

      #14   ;SHORT  ;NULL:ERROR         ;101    ;     ;     IOHMCS  Memorized COPICS Status

      #15   ;FLOAT  ;NULL:ERROR         ;13     ;     ;     ROHPLQ  Planned quantity

      #16   ;FLOAT  ;                   ;14     ;     ;     ROHFDQ  Finished quantity

      #17   ;CHAR   ;                   ;138    ;25   ;     COHRON  Description

      #18   ;CHAR   ;                   ;163    ;10   ;     COHSON  Shop order number

      #19   ;DATE   ;                   ;60     ;     ;     MOHIST  Infinite scheduled start

      #20   ;TIME   ;                   ;60     ;     ;       -"-                   -"-

      #21   ;DATE   ;                   ;61     ;     ;     MOHIED  Infinite scheduled end

      #22   ;TIME   ;                   ;61     ;     ;       -"-                   -"-

      #23   ;DATE   ;                   ;58     ;     ;     MOHFST  Finite scheduled start

      #23   ;DATE   ;                   ;15     ;     ;     MOHMST  Saved Finite scheduled start

      #24   ;TIME   ;                   ;58     ;     ;     MOHFST  Finite scheduled start

     #24   ;TIME   ;                   ;15     ;     ;     MOHMST  Saved Finite scheduled start

     #25   ;DATE   ;                   ;59     ;     ;     MOHFED  Finite scheduled end

      #25   ;DATE   ;                   ;16     ;     ;     MOHMFE  Saved Finite scheduled end

      #26   ;TIME   ;                   ;59     ;     ;     MOHFED  Finite scheduled end

     #26   ;TIME   ;                   ;16     ;     ;     MOHMFE  Saved Finite scheduled end

      #27   ;SHORT  ;                   ;130    ;     ;     IOHMLC  Low level code

      #28   ;SHORT  ;                   ;528    ;     ;     IXRPGC  Pegging code

      #30   ;SHORT  ;                   ;13     ;     ;     IOHPU1  Pull-up code 1  - too early

      #31   ;SHORT  ;                   ;14     ;     ;     IOHPU2  Pull-up code 2  - delayed

      #32   ;SHORT  ;                   ;128    ;     ;     IOHEXT  Extra code

      #33   ;SHORT  ;                   ;56     ;     ;     IOHORI  Origination code

      #34   ;SHORT  ;NULL:1             ;135    ;     ;     IOHOCD  Order group

      #35   ;CHAR   ;                   ;6      ;3    ;     COHRTY  Routing type

      #36   ;LONG   ;                   ;6      ;     ;     MOHPGS  Peg Suffix

      #37   ;FLOAT  ;                   ;17     ;     ;     SOHMFC(1Multiplication factor 1

      #38   ;FLOAT  ;                   ;18     ;     ;     SOHMFC(2Multiplication factor 2

      #39   ;FLOAT  ;                   ;19     ;     ;     SOHMFC(3Multiplication factor 3

      #40   ;FLOAT  ;                   ;20     ;     ;     SOHMFC(4Multiplication factor 4

      #41   ;FLOAT  ;                   ;21     ;     ;     SOHMFC(5Multiplication factor 5

      #42   ;FLOAT  ;                   ;22     ;     ;     SOHMFC(6Multiplication factor 6

      #43   ;FLOAT  ;                   ;23     ;     ;     SOHMFC(7Multiplication factor 7

      #44   ;FLOAT  ;                   ;24     ;     ;     SOHMFC(8Multiplication factor 8

      #45   ;FLOAT  ;                   ;25     ;     ;     SOHMFC(9Multiplication factor 9

      #46   ;FLOAT  ;                   ;26     ;     ;     SOHMFC(1Multiplication factor 10

     #47   ;SHORT  ;                   ;55     ;     ;     IOHOPR  External order priority

      #48   ;DATE   ;                   ;63     ;     ;     MOHTIM  Order timestamp

      #49   ;TIME   ;                   ;63     ;     ;       -"-                   -"-

     #50   ;SHORT  ;                   ;139    ;     ;     IOHCGR  Coloring group

      #51   ;CHAR   ;                   ;173    ;1    ;     EOHOSS  MRP status

     #52   ;CHAR   ;                   ;280    ;1    ;     EOHOTY  Order type

      #57   ;DUMMY  ;                   ;       ;     ;

   [R]

!     Field  Type    Default             Offset  Length  R  Description

!     -----  ------  ---------------     ------  ------  -  -------------------

!      TRANSFORM=#17;00000000.00:500.0;

      SUBSTITUTION=(#18,FAM.#3), KEYS((#3,FAM.#1),(#21,FAM.#2)),NFA(GEN_NEW_SEQNUM)

      #1    ;CHAR   ;                   ;1029   ;1    ; "R" EXRTYP  Record type

      #2    ;CHAR   ;                   ;1071   ;12   ;     CXRPEG  Peg ID

      #3    ;CHAR   ;NULL:ERROR         ;1030   ;25   ;     CXRITM  Item number

      #4    ;LONG   ;NULL:ERROR         ;257    ;     ;     MXRMRP  Order number

      #5    ;LONG   ;NULL:ERROR         ;9      ;     ;     MOPNUM  Operation number

      #6    ;CHAR   ;                   ;155    ;4    ;     MOPSFF  Operation number suffix

      #7    ;FLOAT  ;                   ;18     ;     ;     MOPSUS  Setup time standard

      #10   ;FLOAT  ;NULL:ERROR         ;20     ;     ;     MOPTIM  Operation time

     #11   ;FLOAT  ;                   ;23     ;     ;     MOPMAN  Manpower time

      #12   ;FLOAT  ;                   ;24     ;     ;     MOPPRE  Preparation time

      #13   ;FLOAT  ;                   ;25     ;     ;     MOPPOT  Post operation time

      #14   ;SHORT  ;                   ;66     ;     ;     MOPTNS  Parallel operation generation code

      #15   ;CHAR   ;                   ;196    ;1    ;     MOPALO  Alternative operation indicator

     #16   ;SHORT  ;                   ;529    ;     ;     IXROKY  Old overlap key (only used in v.

      #17   ;FLOAT  ;                   ;32     ;     ;     MOPBAS  Overlap base

     #18   ;CHAR   ;                   ;159    ;12   ;     MOPFMF  Scheduling group

      #19   ;FLOAT  ;                   ;26     ;     ;     MOPSHF  Shrinkage factor

      #20   ;FLOAT  ;NULL:100.0         ;27     ;     ;     MOPEFF  Efficiency (%)

     #21   ;CHAR   ;NULL:ERROR         ;171    ;12   ;     MOPWCF  Workcenter number

      #22   ;CHAR   ;                   ;183    ;12   ;     MOPPMF  Planned single machine number

      #23   ;SHORT  ;NULL:ERROR         ;70     ;     ;     MOPCOP  Operation status

     #23   ;SHORT  ;NULL:ERROR         ;106    ;     ;     MOPMCS  Saved Operation status

      #24   ;CHAR   ;                   ;269    ;12   ;     MOPMAF  Finite scheduled machine number

      #25   ;FLOAT  ;                   ;28     ;     ;     MOPCPQ  Quantity completed

      #26   ;FLOAT  ;                   ;29     ;     ;     MOPPLQ  Planned quantity

      #27   ;FLOAT  ;                   ;30     ;     ;     MOPACS  Actual scrap

      #28   ;DATE   ;                   ;11     ;     ;     MOPLTS  Last timestamp

      #29   ;TIME   ;                   ;11     ;     ;       -"-                   -"-

      #30   ;SHORT  ;NULL:ERROR         ;77     ;     ;     MOPIND  Operation time indicator

      #31   ;DATE   ;                   ;36     ;     ;     MOPFOR  Forced start timestamp

      #32   ;TIME   ;                   ;36     ;     ;       -"-                   -"-

      #33   ;DATE   ;                   ;12     ;     ;     MOPSTS  Setup start timestamp

      #34   ;TIME   ;                   ;12     ;     ;       -"-                   -"-

      #35   ;FLOAT  ;                   ;31     ;     ;     MOPPCT  Percent completed

      #36   ;DATE   ;                   ;56     ;     ;     MOPFST  Finite scheduled start

      #36   ;DATE   ;                   ;37     ;     ;     MOPMFS  Saved Finite scheduled start

      #37   ;TIME   ;                   ;56     ;     ;     MOPFST  Finite scheduled start

     #37   ;TIME   ;                   ;37     ;     ;     MOPMFS  Saved Finite scheduled start

      #38   ;DATE   ;                   ;57     ;     ;     MOPFED  Finite scheduled end

      #38   ;DATE   ;                   ;38     ;     ;     MOPMFE  Saved Finite scheduled end

      #39   ;TIME   ;                   ;57     ;     ;     MOPFED  Finite scheduled end

      #39   ;TIME   ;                   ;38     ;     ;     MOPMFE  Saved Finite scheduled end

     #40   ;DATE   ;                   ;58     ;     ;     MOPIST  Infinite scheduled start

     #41   ;TIME   ;                   ;58     ;     ;       -"-                   -"-

      #42   ;DATE   ;                   ;59     ;     ;     MOPIED  Infinite scheduled end

      #43   ;TIME   ;                   ;59     ;     ;       -"-                   -"-

     #44   ;LONG   ;                   ;10     ;     ;     MOPNON  Next operation number

      #45   ;FLOAT  ;                   ;19     ;     ;     MOPSUF  Grouping setup time

      #47   ;FLOAT  ;                   ;21     ;     ;     MOPRUN  Total run time

     #48   ;FLOAT  ;                   ;22     ;     ;     MOPTOT  Remaining run time

     #49   ;SHORT  ;                   ;124    ;     ;     MOPCOD  Scheduling control code

      #50   ;SHORT  ;                   ;125    ;     ;     MOPSTA  Scheduling status

      #53   ;CHAR   ;                   ;49     ;20   ;     MOPDES  Operation text

     #54   ;FLOAT  ;                   ;50     ;     ;     MOPFMA  Max. operation load

      #55   ;CHAR   ;                   ;6      ;1    ;     MOPSKY  Splitting key

      #56   ;CHAR   ;NULL:ERROR         ;129    ;1    ;     MOPOKY  Overlap key

      #57   ;SHORT  ;                   ;4      ;     ;     MOPMIN  Manpower indicator

      #58   ;CHAR   ;                   ;9      ;12   ;     MOPAMF  Actual machine

      #59   ;FLOAT  ;                   ;7      ;     ;     MOPAOP  Run time accumulated

      #60   ;FLOAT  ;                   ;8      ;     ;     MOPASU  Setup time accumulated

     #61   ;FLOAT  ;                   ;65     ;     ;     MOPRSU  Remaining setup time

      #62   ;SHORT  ;                   ;67     ;     ;     MOPFNS  Forced number of splits

      #63   ;FLOAT  ;                   ;51     ;     ;     MOPFMI  Min. operation load

      #64   ;CHAR   ;                   ;205    ;5    ;     MOPMRF  Machine restriction

     #66   ;CHAR   ;                   ;213    ;9    ;     MOPFIF  Filler

     #67   ;DUMMY  ;                   ;       ;     ;    

   [M]

!     Field  Type    Default             Offset  Length  R  Description

!     -----  ------  ---------------     ------  ------  -  -------------------

   SUBSTITUTION=(#25,SYNC.#3), KEYS(NOT(#25,SYNC.#1),NOT(#9,SYNC.#2)),NFA(SKIP)

      #1    ;CHAR   ;                   ;1029   ;1    ; "M" EXRTYP  Record type

     #3    ;CHAR   ;NULL:ERROR         ;65     ;25   ;     CRSPIT  Parent item number

      #4    ;LONG   ;NULL:ERROR         ;14     ;     ;     MRSPON  Parent order number

      #5    ;LONG   ;                   ;16     ;     ;     MRSSEQ  Sequence number

      #7    ;LONG   ;                   ;15     ;     ;     MRSPOP  Operation no. where used

      #8    ;CHAR   ;                   ;90     ;25   ;     CRSCIT  Component item number

      #9    ;LONG   ;                   ;12     ;     ;     MRSCON  Component order number

      #10   ;FLOAT  ;                   ;5      ;     ;     RRSQTY  Quantity of requirement

     #11   ;SHORT  ;                   ;530    ;     ;     IXRMCC  Material const. code (only used in      #12   ;DATE   ;                   ;4      ;     ;     MRSCAD  Purchased component availability

     #13   ;TIME   ;                   ;4      ;     ;       -"-                   -"-

      #17   ;LONG   ;                   ;13     ;     ;     MRSCOP  Component operation number

      #18   ;CHAR   ;NULL:ERROR         ;29     ;1    ;     ERSTYP  Relation type

      #19   ;CHAR   ;                   ;37     ;2    ;     FRSOCO  Order overlap code

      #20   ;FLOAT  ;                   ;9      ;     ;     RRSOBA  Order overlap base

      #21   ;CHAR   ;                   ;115    ;1    ;     ERSPOS  Purchased order status

     #22   ;FLOAT  ;                   ;33     ;     ;     RRSOBV  Overlap calculation base

      #23   ;CHAR   ;                   ;138    ;55   ;     CRSFIL  Filler

      #24   ;CHAR   ;                   ;124    ;1    ;     ERSOCM  Overlap base control

      #25   ;CHAR   ;                   ;43     ;1    ;     ERSRST  Synchronization status

      #26   ;CHAR   ;                   ;44     ;1    ;     ERSSST  Shortage status

      #27   ;FLOAT  ;                   ;32     ;     ;     RRSDQT  Shortage quantity

      #28   ;FLOAT  ;                   ;34     ;     ;     RRSOQT  Original quantity

      #29   ;CHAR   ;                   ;137    ;1    ;     ERSORI  Relationship origination

      #30   ;CHAR   ;                   ;116    ;4    ;     GRSPSU  Parent Operation suffix

     #31   ;CHAR   ;                   ;120    ;4    ;     GRSCSU  Component Operation suffix

     #35   ;DUMMY  ;                   ;       ;     ;

   [N]

!     Field  Type    Default             Offset  Length  R  Description

!     -----  ------  ---------------     ------  ------  -  -------------------

      #1    ;CHAR   ;                   ;1029   ;1    ; "N" EXRTYP  Record type

      #3    ;CHAR   ;NULL:ERROR         ;65     ;25   ;     CRSPIT  Parent item number

      #4    ;LONG   ;NULL:ERROR         ;14     ;     ;     MRSPON  Parent order number

      #5    ;LONG   ;                   ;16     ;     ;     MRSSEQ  Sequence number

      #7    ;LONG   ;                   ;15     ;     ;     MRSPOP  Operation no. where used

      #8    ;CHAR   ;                   ;90     ;25   ;     CRSCIT  Component item number

      #9    ;LONG   ;                   ;12     ;     ;     MRSCON  Component order number

      #10   ;FLOAT  ;                   ;5      ;     ;     RRSQTY  Quantity of requirement

     #11   ;SHORT  ;                   ;530    ;     ;     IXRMCC  Material const. code (only used in v. 2.01)

      #12   ;DATE   ;                   ;4      ;     ;     MRSCAD  Purchased component availability date

      #13   ;TIME   ;                   ;4      ;     ;       -"-                   -"-

      #17   ;LONG   ;                   ;13     ;     ;     MRSCOP  Component operation number

      #18   ;CHAR   ;NULL:ERROR         ;29     ;1    ;     ERSTYP  Relation type

      #19   ;CHAR   ;                   ;37     ;2    ;     FRSOCO  Order overlap code

      #20   ;FLOAT  ;                   ;9      ;     ;     RRSOBA  Order overlap base

      #21   ;CHAR   ;                   ;115    ;1    ;     ERSPOS  Purchased order status

      #22   ;FLOAT  ;                   ;33     ;     ;     RRSOBV  Overlap calculation base

      #23   ;CHAR   ;                   ;138    ;55   ;     CRSFIL  Filler

      #24   ;CHAR   ;                   ;124    ;1    ;     ERSOCM  Overlap base control

      #25   ;CHAR   ;                   ;43     ;1    ;     ERSRST  Synchronization status

      #26   ;CHAR   ;                   ;44     ;1    ;     ERSSST  Shortage status

     #27   ;FLOAT  ;                   ;32     ;     ;     RRSDQT  Shortage quantity

      #28   ;FLOAT  ;                   ;34     ;     ;     RRSOQT  Original quantity

      #29   ;CHAR   ;                   ;137    ;1    ;     ERSORI  Relationship origination

     #30   ;CHAR   ;                   ;116    ;4    ;     GRSPSU  Parent Operation suffix

      #31   ;CHAR   ;                   ;120    ;4    ;     GRSCSU  Component Operation suffix

      #35   ;DUMMY  ;                   ;       ;     ;

For further examples, refer to the example on using the NOT Key in Substitution.

Example using the NOT Keys in Substitution

You can use NOT keys in the expression part of a substitution. A NOT key evaluates to true if a match could not be found.

SUBSTITUTION=(#5,TEST.#3),KEYS((#5,TEST.#1),NOT(#4,TEST.#2)),NFA(SKIP))

The expression here is:

Record Entry #5 matches with TEST column 1 and the Record Entry does not match column 2.

If TEST contains this data
  • XX;3;YY
  • ZZ;3;QQ
  • ZZ;5;QQ
It behaves in this manner:
Data in Data out Note Substituted?
a;b;c; 3;XX a;b;c; 3;XX match found for NOT -Key No
a;b;c; 4;XX a;b;c; 4;YY match not found for NOT-Key Yes
a;b;c; 3;ZZ a;b;c; 3;ZZ match found for NOT -Key No
a;b;c; 5;ZZ a;b;c; 5;ZZ match found for NOT -Key No
a;b;c; 14;ZZ a;b;c; 5;QQ match not found for NOT-Key Yes