Complex Sample Session
For this session, the base member is called ASMBLBAS and the three derivatives are:
-
ASMBLDV1
-
ASMBLDV2
-
ASMBLDV3
We assume that all four members exist in somnode.CMNZMF.SAMPLES.
Here are the tasks associated with this session:
The Scenario
Summary: Vendor software has been modified before being deployed into production, and you want to incorporate a new release of the vendor software while maintaining the inhouse customization.
In detail:
-
A couple of years ago, the Accounts Receivable Department of A.B.C. Company required a daily transaction report. The Trivial Software Company offered a package, PROGNAME, that reads an input file and produces that kind of report.
-
The Information Services Department of A.B.C. Company bought PROGNAME and modified the report's default format.
-
The Accounts Payable Department wanted to use the package. Understandably, it had different requirements for the report format, so a modified version called PGMACPAY was also installed.
-
The Accounts Payable users were not as accurate as their colleagues in preparing the input file to run the daily transaction report. When PGMACPAY crashed, the support programmer decided to include code to test whether the input file had been opened successfully. If not, the new code would terminate the program with a non-zero return code and display a message to the operator console.
-
The Trivial Software Company has just announced a new release of its PROGNAME package that is reentrant and accepts a start parameter. It has also announced that the support of the previous release will soon end.
-
The A.B.C. Company has decided to upgrade to the new release, because it now ensures that both departments use only one copy of the package. A programmer has been assigned to install the new release while keeping all the customizations intact.
The following discussion shows you how that programmer can use M+R to accomplish the code reconciliation.
Establishing Your Profile
You need to select 0 (PROFILE) from the Member Reconciliation menu, then 1 (COMPARE options). Ensure that TEXT Type is either a period (wildcard character) or BAL. Press [PF3] END and select 3 (EDITING). Set the Include Prefix to YES. Press [PF3] END and select 5 (DATA SETS), then fill in the profile data sets as suggested below using your TSO user ID instead of CDFUSER.
SERDSNML ---------------------- PROFILE DATA SETS ----------------------------
WIS DSNAME ===> CDFUSER.CDF.WIS_______________________
Print DSNAME ===> CDFUSER.CDF.PRINT_____________________
Export DSNAME ===> CDFUSER.CDF.EXPORT____________________
Export DSORG ===> PDS_____ (PDS, SEQ, PAN, LIB, or blank)
Export Member Mask ===> ________ (Mask to rename Base members on export)
LIB Module Name ===> LIBR____ (LIBrarian update module name: LIBR, LIBRARY)
Press ENTER to validate and stay; END to register and exit; CANCEL to exit.
Enter [PF3] END to return to the Member Reconciliation menu.
Defining the Base and Derivatives to M+R
From the Member Reconciliation menu, select 1 (VERSIONS). The Versions panel displays. Fill in the data set names, members, nicknames, and IDs. You may leave the Type blank.
SERCDFCM ------------------------- VERSIONS ----------------------------------
Command ===> _________________________________________________________________
CMN Export Package: __________ LibType: ___
-MEMBER--- TYPE NICKNAME ID
Base: somnode.CMNZMF.SAMPLES___________________ asmblbas__ ___ original -
Last Member: __________
or CMN Appl/Pkg: __________ LibType: ___
Drv1: somnode.CMNZMF.SAMPLES______________________ asmbldv1__ ___ receivbl r
or CMN Appl/Pkg: __________ LibType: ___
Drv2: somnode.CMNZMF.SAMPLES______________________ asmbldv2__ ___ payable_ p
or CMN Appl/Pkg: __________ LibType: ___
Drv3: somnode.CMNZMF.SAMPLES______________________ asmbldv3__ ___ new_rels n
or CMN Appl/Pkg: __________ LibType: ___
Drv4: ____________________________________________ __________ ___ ________ _
or CMN Appl/Pkg: __________ LibType: ___
Drv5: ____________________________________________ __________ ___ ________ _
or CMN Appl/Pkg: __________ LibType: ___
Drv6: ____________________________________________ __________ ___ ________ _
or CMN Appl/Pkg: __________ LibType: ___
Drv7: ____________________________________________ __________ ___ ________ _
or CMN Appl/Pkg: __________ LibType: ___
Press ENTER to validate and stay; END to register and exit; CANCEL to exit.
Press [PF3] END to register the specifications and return to the Member Reconciliation menu.
Running M+R
From the Member Reconciliation menu, select 2 (EXECUTE). As M+R executes, the In Progress panel displays, followed then by the Reconcile panel, shown below.
View All ------------------------- RECONCILE -------------- ROW 1 TO 20 OF 213
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
Records in Exported File:
|------------------------------------------------
|DEGREE OF COMPLEXITY: 9 HIGH
|-------------------------------------------------
| RECORDS | CONFLICTS |SINGLE CHANGES |
|----------------|---------------|---------------|
|NICKNAMES |PREV CURR DIFF |PREV CURR DIFF |
|----------------|---------------|---------------|
|ORIGINAL 68 | 3 0% | 30 0% |
|----------------|---------------|---------------|
|RECEIVBL 70 | 3 0% | 0 0% |
|----------------|---------------|---------------|
|PAYABLE 85 | 13 0% | 9 0% |
|----------------|---------------|---------------|
|NEW_RELS 131 | 9 0% | 81 0% |
|----------------|---------------|---------------|
|RECONCIL | 0 0% | 0 0% |
|----------------|---------------|---------------|
| TOTAL: | 28 0% | 120 0% |
With this panel, M+R has initially analyzed the complexity of the reconciliation work ahead. It has classified the complexity as 9 HIGH on a scale from 1 to 10. The analysis table also indicates the following:
-
The current release of PROGNAME (nicknamed original) has 68 lines of code, 30 of which were changed by 81 records in the new release nicknamed new_rels and by 9 records in the payable derivative. These changes, however, do not overlap; that is, they are single changes. The derivative nicknamed receivbl made no single changes.
-
Three records of original were changed by more than one derivative. A total of 25 records of receivbl, payable, and new_rels are in conflict; that is, they are competing changes to the same 3 records in original. Because payable contributes 13 records in conflict (roughly half of the total number of conflicting records), it will probably be the most difficult to reconcile.
-
Almost half of the original records, 33 out of 68, have been changed.
This explains why the reconciliation is rated complex.
Note
Although these initial analysis records appear only once, you can export/print them as part of the consolidated versions: 6 (EXPORT) and 6P(PRINT). You can prevent their display by setting the Include Prefix to NO—see 3 (EDITING options) on the Profile panel.
Scroll down [PF8] to see the next page of the Reconcile panel.
View All ------------------------- RECONCILE ------------- ROW 21 TO 41 OF 213
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
|-------------------------------------------------
Reconciliation Scope:
NICKNAME MEMBER LAST MODIFIED USER ID DATA SET NAME
------------------------------------------------------------------
ORIGINAL ASMBLBAS 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
RECEIVBL ASMBLDV1 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
PAYABLE ASMBLDV2 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
NEW_RELS ASMBLDV3 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
RECONCIL 2000/12/04 17:12 CDFUSER Current Work
------------------------------------------------------------------
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
000005 B AROUND go around label
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
The line following the command line (R:RECEIVBL P:PAYABLE N:NEW_RELS) relates the derivatives' IDs (R, P and N) with their nicknames. The "Reconciliation Scope" section of the analysis table associates the nicknames with the data set names.
-
-: ORIGINAL - somnode.CMNZMF.SAMPLES(ASMBLBAS)
-
R: RECEIVBL - somnode.CMNZMF.SAMPLES(ASMBLDV1)
-
P: PAYABLE - somnode.CMNZMF.SAMPLES(ASMBLDV2)
-
N: NEW_RELS - somnode.CMNZMF.SAMPLES(ASMBLDV3)
In the line command area above, the composition <>P is an M+R visual clue of the change that has been made. It implies that these base records have been replaced in payable; that is, are different from the base records above them. The base records themselves are marked with a "<" (less than sign) to show that they are missing in the derivative P.
Investigating the Versions
From the Reconcile panel, you can issue M+R primary commands to evaluate the versions and their relationships with each other:
- Use the M+R VIEW and EXCLUDE commands to generate different views from the M+R database.
- Use the M+R command pair EXCLUDE/RESET for the base and any derivative while within any of the contexts.
A short recap of the M+R Version Browser main contexts (views) follows:
-
V $ - displays the conflicts: i.e., base records changed differently by more than one derivative and those changes.
-
X $ - excludes the conflicts and displays base records changed by one derivative only and those changes.
Note
If the profile setting is AUTOOVERRIDE=YES, these base records will be overridden by their single changes in the consolidated version.
-
V # - displays the consolidated version at that moment in time—the so- called remaining code (i.e., the not deleted, not overridden and not overtyped records).
-
X # - excludes the remaining code and displays the deleted base/derivative records and the overridden base records so that you can check whether or not it is OK to leave that code aside from the consolidated version; note the cut and pasted base/ derivative records are not included in that view as they are not actually deleted but just moved around.
-
V * - displays all records, including the deleted and overtyped base/derivative records.
-
X * - excludes everything so that you can use RESET command to view either the base or one or more derivatives; note that the same effect can be achieved by one of the next two commands.
-
V @ - displays all base records that are not deleted or overtyped.
-
V letter - displays all not deleted/overtyped records of a derivative with that letter as an ID; note that the next V command(s) will add the changes made by the second and subsequent derivatives to those already displayed.
While in any of the above main contexts, the base and/or one or more derivatives can be excluded/included through the commands X @, R @, X letter, and R letter.
V P (View Payable derivative)
On the Reconcile panel, let's enter VIEW P, view p, or V P (view payable) to see changes to the original base from the second derivative. (Recall that P is the derivative ID of payable.) The Reconcile panel, shown below, appears.
View Id P ------------------------ RECONCILE -------------- ROW 1 TO 20 OF 121
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
000005 B AROUND go around label
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
000009 COPYRITE DC C' COPYRIGHT (C)'
000010 DC C' TRIVIAL SOFTWARE CO. '
000011 AROUND EQU *
000012 SPACE 1
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
000013 * Chain Save Areas
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
000014 ST R13,SAVEAREA+4 save caller's save area
The NOT Displayed lines indicate that other derivatives have changed the base code in this code fragment.
Fn/Ln (Include First/Last)
You can browse the second derivative, as well as include in view some of the excluded lines by using the M+R line commands First and Last. For example, to include the first excluded lines in view, enter the command First (F) on the line that says "1 Lines NOT Displayed" after the Base record "000012". The Reconcile panel, shown below, appears.
...
View Id P ------------------------ RECONCILE -------------- ROW 1 TO 20 OF 121
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
000005 B AROUND go around label
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
000009 COPYRITE DC C' COPYRIGHT (C)'
000010 DC C' TRIVIAL SOFTWARE CO. '
000011 AROUND EQU *
< 0012 SPACE 1
<>__N_ L R5,0(,R1) save passed parameter
000013 * Chain Save Areas
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
000014 ST R13,SAVEAREA+4 save caller's save area
To include the last excluded lines in view, enter the command Last (L) on the "1 Lines NOT Displayed" line after Base record "000013". The Reconcile panel, shown below, appears.
...
View Id P ------------------------ RECONCILE -------------- ROW 1 TO 20 OF 121
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
000005 B AROUND go around label
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
000009 COPYRITE DC C' COPYRIGHT (C)'
000010 DC C' TRIVIAL SOFTWARE CO. '
000011 AROUND EQU *
< 0012 SPACE 1
<>__N_ L R5,0(,R1) save passed parameter
< 0013 * Chain Save Areas
<>__N_ SPACE 1
000014 ST R13,SAVEAREA+4 save caller's save area
...
X @ (Exclude Base)
To display only the changes, use the X @ command. The Reconcile panel, shown below, appears.
View Id P Base eXcluded----------- RECONCILE --------------- ROW 1 TO 20 OF 40
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
- - - - - - - - - - - - - - - - - - - - - - - - - - 2 Lines NOT Displayed
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
- - - - - - - - - - - - - - - - - - - - - - - - - - 19 Lines NOT Displayed
000019 OPEN (INFILE,INPUT,PRINTER,OUTPUT)
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
> _P__ LA R1,INFILE get address of input DCB
> _P__ USING IHADCB,R1 addressability
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
> _P__ LA R1,PRINTER get address of output DCB
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
> _P__ PUT PRINTER,RPRTITLE write report title
You can enter View R or V R (View receivbl) to see the changes that the first derivative made to the original base, or enter VIEW N or V N (View new_rels) to see the changes made by the new release.
...
R N (Reset New_rels derivative)
To display previously excluded derivative records, enter the Reset command. For example, if you issued R N (Reset new_rels) on the previous screen, you would display the changes made by both payable and new_rels derivatives. The Reconcile panel, shown below, appears.
View Id P N Base eXcluded--------- RECONCILE -------------- ROW 1 TO 20 OF 162
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
< 0001 PROGNAME CSECT
<>_P__ PGMACPAY CSECT
- - - - - - - - - - - - - - - - - - - - - - - - - - 2 Lines NOT Displayed
< 0004 USING PROGNAME,R12 addressability
<>_P__ USING PGMACPAY,R12 addressability
- - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
< 0006 DC CL8'PROGNAME' program name
<>_P__ DC CL8'PGMACPAY' program name
< 0012 SPACE 1
<>__N_ L R5,0(,R1) save passed parameter
<0013 * Chain Save Areas
<>__N_ SPACE 1
< 0014 ST R13,SAVEAREA+4 save caller's save area
<>__N_ * Getmain pgm dynamic area
< 0015 LA R2,SAVEAREA get address of program save area
<>__N_ LA R2,DYNAREND-PGMDSECT size of pgm dynamic area
< 0016 ST R2,8(R13) save it in caller's save area
<>__N_ LA R2,1024(,R2) bump for rounding
As this panel illustrates, use of the eXclude/Reset command pair with a derivative ID argument provides decremental/incremental handling of the version view. Each command acts on its argument only; it does not override a previously issued eXclude/Reset command.
Reconciling Conflicts
You can reconcile any text in PDS, SEQ, PAN, or LIB format. To resolve a conflict, you need to see how multiple derivatives have changed a particular base record.
V $ (Viewing the Conflicts)
To view the conflicts together, enter V conflicts, V CO, or V $ from the current Reconcile panel. The Reconcile panel, shown below, appears (although here it is a combination of two screens).
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 20 OF 32
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
- - - - - - - - - - - - - - - - - - - - - - - - - - 29 Lines NOT Displayed
< 00019 OPEN (INFILE,INPUT,PRINTER,OUTPUT)
> R___ PUT PRINTER,COMPANY write Company name
> _P__ LA R1,INFILE get address of input DCB
> _P__ USING IHADCB,R1 addressability
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
> _P__ LA R1,PRINTER get address of output DCB
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
> _P__ PUT PRINTER,RPRTITLE write report title
<>__N_ LR R0,R2 R0 needs the size
- - - - - - - - - - - - - - - - - - - - - - - - - - 106 Lines NOT Displayed
< 0053 HEADLINE DC CL133'1 * * * RECORD LISTING * * *'
<>R___ COMPANY DC CL133'1 * * * A.B.C. COMPANY * * *'
> R___ HEADLINE DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
<>_P__ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> _P__ HEADLINE DC CL133'1 * * * ACCOUNTS PAYABLE * *'
<>__N_ HEADLINE DS CL133 "1 * * * RECORD LISTING * * *"
- - - - - - - - - - - - - - - - - - - - - - - - - - 17 Lines NOT Displayed
000065 EODAD=ENDDATA
> _P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON,NOGEN
> _P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
- - - - - - - - - - - - - - - - - - - - - - - - - - 4 Lines NOT Displayed
What does this panel reveal?
-
The lines under base record "000019" indicate that this line has been changed by all three derivatives as follows:
Derivative R - receivbl has added a line of code that prints the A.B.C. Company name on the report.
Derivative P - payable has added a block of code that checks for the successful opening of the input/output files. It also adds a single line that prints the report title.
Derivative N - this base record has been replaced with an instruction that looks "out of context" here—a sure sign that the new_rels derivative structurally differs from the base code.
-
The lines under Base record "000053" indicate that it has been changed by all three derivatives as follows:
Derivative R - receivbl has changed the page heading to "A.B.C. COMPANY" and added its own heading "ACCOUNTS RECEIVABLE".
Derivative P - payable has changed the page heading to "A.B.C. COMPANY" and added its own page heading "ACCOUNTS PAYABLE".
Derivative N - this base record is not a character constant at all—it is a variable name; this confirms the assumption of structural differences between the base and new_rels.
-
The lines under base record "000065" indicate that it has been changed by two derivatives as follows:
Derivative P - payable has added a DSECT (dummy section) that checks for the successful opening of the input/output files.
Derivative N - new_rels has added a block of data constants, including the page heading and the end-of-report lines (visible if you page down).
Now that you are familiar with the changes made by each derivative, you can begin the reconciliation work, but first, some planning.
Planning the Reconciliation Work
Here is a summary of the conflicts and how you can resolve them:
All changes to base record "000019" made by payable (marked P__) will be used in the consolidated version. Before they can be used, however, they must be moved after the OPEN statements of new_rels (marked __N). Then, the base record and code line added by R must be deleted.
The changes to the original page heading (base record "000053") from the customizations in both receivbl and payable should stay. Furthermore, code is required to pick up the proper page heading depending on the value of the start parameter.
The last conflict "000065" looks acceptable; both derivatives add data areas that should remain in the consolidated version. In this scenario, the last conflict will not be resolved because the changes do not appear to be mutually exclusive.
Now that you have summarized the conflicts, you can start resolving them by performing the following:
-
Moving (Cut and Paste) the conflicting blocks of code to their proper place in the new consolidated version.
-
Editing conflicting lines of code to incorporate the changes into a workable program.
You can handle conflicts through a combination of edit line commands such as Delete, Undelete, Insert, Repeat, Copy, and Move.
Resolving the First Conflict
Resolving the first conflict on the panel below consists of two actions:
-
Block delete the base record "000019" and the PUT statement from receivbl.
-
Move (Cut and Paste) the remaining lines of payable after the OPEN statements of new_rels for data sets PRINTER and INFILE.
Before you issue the Cut command, your screen should look like the following:
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 20 OF 31
COMMAND ===> cut SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 Lines DELETED
- - - - - - - - - - - - - - - - - - - - - - - - - - 29 Lines NOT Displayed
mm_P__ LA R1,INFILE get address of input DCB
> _P__ USING IHADCB,R1 addressability
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
> _P__ LA R1,PRINTER get address of output DCB
> _P__ TM DCBOFLGS,X'10' ? successful open
> _P__ BZ OPENERR no...open failure
mm_P__ PUT PRINTER,RPRTITLE write report title
<>__N_ LR R0,R2 R0 needs the size
- - - - - - - - - - - - - - - - - - - - - - - - - 106 Lines NOT Displayed
< 0053 HEADLINE DC CL133'1 * * * RECORD LISTING * * *'
<>R___ COMPANY DC CL133'1 * * * A.B.C. COMPANY * * *'
> R___ HEADLINE DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
<>_P__ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> _P__ HEADLINE DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
<>__N_ HEADLINE DS CL133 "1 * * * RECORD LISTING * * *"
- - - - - - - - - - - - - - - - - - - - - - - - - 17 Lines NOT Displayed
000065 EODAD=ENDDATA
Press [Enter] and issue the V N (View new_rels) primary command to switch to the new_rels view. On the resulting panel, issue the find infile command. The first occurrences of INFILE are on the just-deleted base line marked with (/*), that is commented out. Issue a Repeat FIND (PF5/17) to find the opening of the INFILE data set within the new_rels code and place the After line command on the following line:
>__N_ OPEN MF=[E,(1)] execute form of OPEN
Then place the cursor on the command line using the "Home" key, and issue the PASte command. After issuing this command, your screen will look like the panel below. The pasted records are marked with the (>>) symbol to emphasize their type as not simply inserted but copied or moved from some other place.
View Id N ------------------------ RECONCILE ------------- ROW 68 TO 88 OF 175
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
> __N_ *
> __N_ MVC DCBINPUT,INFILE get model DCB for input file
> __N_ LA R1,DCBINPUT its address in pgm dynamic area
> __N_ ST R1,FULLWORD stash it
> __N_ OI FULLWORD,X'8F' indicate output
> __N_ LA R1,FULLWORD address DCB list
> __N_ OPEN MF=(E,(1)) execute form of OPEN
>>___+ LA R1,INFILE get address of input DCB
>>___+ USING IHADCB,R1 addressability
>>___+ TM DCBOFLGS,X'10' ? successful open
>>___+ BZ OPENERR no...open failure
>>___+ LA R1,PRINTER get address of output DCB
>>___+ TM DCBOFLGS,X'10' ? successful open
>>___+ BZ OPENERR no...open failure
>>___+ PUT PRINTER,RPRTITLE write report title
> __N_ PUT DCBPRINT,HEADLINE write page header
000021 SPACE 1
000022 * Main Line Processing
000023 MAINLINE EQU *
< 0024 GET INFILE,INAREA read a record
<>__N_ GET DCBINPUT,INAREA read a record
You are now ready to resolve the second conflict.
Resolving the Second Conflict
Before proceeding to resolve the second conflict, verify that the first conflict has been resolved. To do this, issue the V conflicts, V CO, or V $ primary command from the current Reconcile panel and press [Enter]. The Reconcile panel, shown below, appears. You should not see a conflict at the base record "000019".
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 21 OF 21
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 Lines DELETED
- - - - - - - - - - - - - - - - - - - - - - - - - - 144 Lines NOT Displayed
< 0053 HEADLINE DC CL133'1 * * * RECORD LISTING * * *'
<>R___ COMPANY DC CL133'1 * * * A.B.C. COMPANY * * *'
> R___ HEADLINE DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
<>_P__ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> _P__ HEADLINE DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
<>__N_ HEADLINE DS CL133 "1 * * * RECORD LISTING * * *"
- - - - - - - - - - - - - - - - - - - - - - - - - - 17 Lines NOT Displayed
000065 EODAD=ENDDATA
> _P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON,NOGEN
> _P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
Resolving the second conflict consists of two actions:
-
Block delete the base record "000053' and the COMPANY statement from receivbl.
-
Rename the page header constants to HEADLIN1 and HEADLIN2 by overtyping, and enter the block Move command against those lines. The destination command can be Before placed on the line below containing the ZERO constant.
Your screen should now appear like the panel below.
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 19 OF 19
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 Lines DELETED
- - - - - - - - - - - - - - - - - - - - - - - - - - 144 Lines NOT Displayed
mmR___ HEADLIN1 DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
<>_P__ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
mm_P__ HEADLIN2 DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
<>__N_ HEADLINE DS CL133 "1 * * * RECORD LISTING * * *"
- - - - - - - - - - - - - - - - - - - - - - - - - - 17 Lines NOT Displayed
000065 EODAD=ENDDATA
> _P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON,NOGEN
> _P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
b __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
- - - - - - - - - - - - - - - - - - - - - - - - - - 4 Lines NOT Displayed
******************************* BOTTOM OF DATA ********************************
Press [Enter] to execute the overtyped changes and the block Move command. The Reconcile panel, shown below, appears.
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 19 OF 19
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 15 Lines DELETED
- - - - - - - - - - - - - - - - - - - - - - - - - - 144 Lines NOT Displayed
<>__N_ HEADLINE DS CL133 "1 * * * RECORD LISTING * * *"
- - - - - - - - - - - - - - - - - - - - - - - - - - 17 Lines NOT Displayed
000065 EODAD=ENDDATA
> _P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON,NOGEN
> _P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
> ___+ HEADLIN1 DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
>>___+ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> ___+ HEADLIN2 DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
- - - - - - - - - - - - - - - - - - - - - - - - - - 4 Lines NOT Displayed
******************************* BOTTOM OF DATA ********************************
Notice the different marking of the three lines you just moved: the middle one is marked with (>>) that was pasted, while the other two are shown as user inserted, marked with (- >). Considering the origin of the moved lines—the middle one is an unchanged line from payable which has been cut and pasted. The other two are edited lines from receivbl and payable; in other words, they "originate" from the user. Incidentally, the derivative lines are commented out; that is, they are deleted by the user (i.e., overtype = repeat + delete).
Moving overtyped lines to a new place makes them inserted lines. However, if you first overtype the two HEADLINE lines, press [Enter], and then block-move the three lines; all of them will be marked as user moved, that is with >>___+.
Although you have resolved the conflicts, you still need to provide the code for the page heading; the following describes how:
-
Issue the V N primary command to switch to the new_rels view.
-
On the resultant panel, issue find headline then a FIND/RFIND ([PF5/17]) to find it within the new_rels code.
-
In front of the previous line, insert 12 lines and fill them (as shown in the panel below).
-
After the same found line, insert the label HEAD003.
View Id N ------------------- RECONCILE -------------- ROW 55 TO 75 OF 182 COMMAND ===> SCROLL ===> CSR R:RECEIVBL P:PAYABLE N:NEW_RELS > __N_ MVC DATA+80(36),SPACES clean up to line end > ___+ * Determine Report Type > ___+ LH R1,0(,R5) get start parameter > ___+ CH R1,H4 ? Acc Receivable Dept > ___+ BNE HEAD0010 no...check next > ___+ MVC HEADLINE,HEADLIN1 yes..set its header > ___+ B HEAD0030 cont > ___+ HEAD0010 EQU * > ___+ CH R1,H8 ? Acc Payable Dept > ___+ BNE HEAD0020 no...set default header > ___+ MVC HEADLINE,HEADLIN2 yes..set its header > ___+ B HEAD0030 cont > ___+ HEAD0020 EQU * > __N_ MVC HEADLINE(133),HEADER initialize page header '''' HEAD0030 EQU * > __N_ MVC ENDLINE(133),ENDER initialize end-of-report line > __N_ ZAP RECNUM,ZERO initialize record counter > __N_ ZAP LINECT,ZERO initialize line counter > __N_ SPACE 1 > __N_ * Open Files > __N_ MVC DCBPRINT,PRINTER get model DCB for output file
Because you have written the page heading initialization code using two constants, H4 and H8, you need to define them. The appropriate place for this code is the third conflict, because that is the context where the changes that are different between receivbl and payable are displayed. Here is what you need to do:
-
Issue V $ to display the records in conflict, then press [Enter].
-
On the resulting panel, specify the line command r2 at the constant ONE.
Define the new constants, as shown below.
View Conflicts ------------------- RECONCILE --------------- ROW 1 TO 17 OF 17
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA *********************************
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 15 Lines DELETED
- - - - - - - - - - - - - - - - - - - - - - - - - - 175 Lines NOT Displayed
000065 EODAD=ENDDATA
> _P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON,NOGEN
> _P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
- - - - - - - - - - - - - - - - - - - - - - - - - - 3 Lines NOT Displayed
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> ___+ H4 DC H'4' halfword four
> ___+ H8 DC H'8' halfword eight
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
- - - - - - - - - - - - - - - - - - - - - - - - - - 4 Lines NOT Displayed
******************************* BOTTOM OF DATA *******************************
Note
The three constants we have moved (in this section of the program) are excluded from view because editing base/derivatives lines makes them user-inserted code lines. By definition, such lines do not create conflicts, so they are not displayed on the new panel.
The second conflict is now resolved. Because we decided to ignore the third conflict for now, you can focus on the single changes.
Managing Single Changes
Once you have resolved the conflicts, you need to incorporate the single changes. Be aware that single changes are not always simple changes. Provided your profile setting is AUTOOVERRIDE=YES, you should consider the following:
Each base record that has been changed (replaced or erased) in only one derivative, or has been changed in the same way in all derivatives, will be substituted with these changes during the export of the consolidated version.
To export base records replaced in only one derivative, you must explicitly delete those replacements with the Dn line command or the DD block command, or set in your profile AUTOOVERRIDE=NO. The same rule applies when all derivatives replace a base record with the same code line.
To export base records erased in only one derivative, you must explicitly repeat those base records with the Rn line command or the RR block command, or set AUTOOVERRIDE to NO. The same rule applies when all derivatives erase a base record.
When records are added after a base record in only one derivative or all derivatives, they do not "drop" the corresponding base record from the consolidated version.
Note
The reference "all derivatives" above means "all derivatives that replace or erase" a particular base record, not all derivatives specified in the Versions panel. If more than one derivative ID appears after a base record, the changes are in conflict, rather than single changes; thus no override is performed by M+R.
To check the impact of single changes, enter the V # (View REmaining) primary command.
The Reconcile panel, shown below, appears.
View Remaining code lines --------- RECONCILE -------------- ROW 1 TO 20 OF 199
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
- - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>_P__ PGMACPAY CSECT
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
- - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>_P__ USING PGMACPAY,R12 addressability
000005 B AROUND go around label
- - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>_P__ DC CL8'PGMACPAY' program name
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
000009 COPYRITE DC C' COPYRIGHT (C)'
000010 DC C' TRIVIAL SOFTWARE CO. '
000011 AROUND EQU *
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>__N_ L R5,0(,R1) save passed parameter
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>__N_ SPACE 1
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
To understand this panel, you should compare it with this Reconcile panel. Notice that this one does not display the base lines 000001, 000004, and 000006 (visible on the previous panel) because they are overridden by payable if your profile setting is AUTOOVERRIDE=YES, as suggested for this tutorial.
In payable, the name of the program has been changed to PGMACPAY. If the resulting single changes (those flagged by '< > _P__') are not explicitly deleted, the program will be called PGMACPAY, not PROGNAME, which is the original name.
To delete the three (payable) lines, enter d on each line with composition '< > _P__' and press [Enter]. Then issue the primary command V # (View REmaining) The Reconcile panel, shown below, appears.
View Remaining code lines --------- RECONCILE -------------- ROW 1 TO 20 OF 199
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
******************************** TOP OF DATA **********************************
000000 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
000001 PROGNAME CSECT
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines DELETED
000002 STM R14,R12,12(R13) save caller's registers
000003 LR R12,R15 get program address
000004 USING PROGNAME,R12 addressability
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines DELETED
000005 B AROUND go around label
000006 DC CL8'PROGNAME' program name
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines DELETED
000007 DC CL8'&SYSDATE' date assembled
000008 DC CL6'&SYSTIME' time assembled
000009 COPYRITE DC C' COPYRIGHT (C)'
000010 DC C' TRIVIAL SOFTWARE CO. '
000011 AROUND EQU *
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>__N_ L R5,0(,R1) save passed parameter
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>__N_ SPACE 1
- - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
Issue find pgmacpay. On the resulting screen, the cursor is placed at PGMACPAY on the last line.
View Remaining code lines --------- RECONCILE ----------- ROW 198 TO 199 OF 199
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
- - - - - - - - - - - - - - - - - - - - - - - - - 1 Lines NOT Displayed
<>_P__ END PGMACPAY end of program
******************************* BOTTOM OF DATA ********************************
To delete the last change in payable (the END statement), enter d on that line and press [Enter]. Then, enter [PF3] END to return to the Member Reconciliation menu.
Another way of investigating single changes is to investigate the "dropped" code lines. You can use the eXclude Remaining (X #) primary command to look at the base records that will be substituted with single changes, as well as the base/derivative records you have deleted thus far. You would observe that payable overrides all base lines of code with PROGNAME. To prevent this, you would issue the V P (View payable) primary command, then delete all lines of code containing PGMACPAY. These steps have been discussed previously.
Conducting an Ongoing Analysis of the Reconciliation Effort
Before exporting the consolidated version, you might want to select 7 (ANALYSIS) from the Member Reconciliation menu to invoke an ongoing analysis of the reconciliation. The Analysis panel, shown below, appears (although here it is a combination of two screens).
---------------------------------- ANALYSIS ---------------- ROW 1 TO 21 OF 28
COMMAND ===> SCROLL ===> CSR
-----------------------------------------------------------------------------
DEGREE OF COMPLEXITY: 9 HIGH
------------------------------------------------------------------------------
RECORDS | CONFLICTS |SINGLE CHANGES |DELETED BY YOU |REMAINING CODE
----------------|---------------|---------------|---------------|--------------
NICKNAMES |PREV CURR DIFF |PREV CURR DIFF |PREV CURR DIFF |PREV CURR DIFF
----------------|---------------|---------------|---------------|--------------
ORIGINAL 68 | 3 1 -66% | 30 30 0% | 0 2 +99% | 68 66 - 2%
----------------|---------------|---------------|---------------|--------------
RECEIVBL 70 | 3 0 -99% | 0 0 0% | 0 3 +99% | 3 0 -99%
----------------|---------------|---------------|---------------|--------------
PAYABLE 85 | 13 3 -76% | 9 5 -44% | 0 14 +99% | 22 8 -63%
----------------|---------------|---------------|---------------|--------------
NEW_RELS 131 | 9 7 -22% | 81 83 +2% | 0 0 0% | 93 93 0%
----------------|---------------|---------------|---------------|--------------
RECONCIL | 0 0 0% | 0 26 +99%| 0 0 0% | 0 26 +99%
----------------|---------------|---------------|---------------|--------------
TOTAL: | 28 11 -60% | 120 144 +20%| 0 19 +99% |
------------------------------------------------------------------------------
Reconciliation Scope:
NICKNAME MEMBER LAST MODIFIED USER ID DATA SET NAME
------------------------------------------------------------------------------
ORIGINAL ASMBLBAS 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
RECEIVBL ASMBLDV1 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
PAYABLE ASMBLDV2 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
NEW_RELS ASMBLDV3 2000/11/21 15:52 SERENA somnode.CMNZMF.SAMPLES
RECONCIL 2000/12/04 17:12 CDFUSER Current Work
------------------------------------------------------------------------------
******************************* BOTTOM OF DATA ********************************
When you finish viewing the Analysis panel, enter [PF3] END and return to the Member Reconciliation menu.
Exporting the Consolidated Version
After viewing an analysis of the reconciliation work, you might want to produce a consolidated version from the base and its derivatives. To do so, select 6 (EXPORT) from the Member Reconciliation menu and press [Enter]. You will receive an acknowledgment that your consolidated version (located in CDFUSER.CDF.EXPRTLIB(ASMBLBAS)) has been exported.
Now, issue the X M+R (eXit M+R) primary command, and compile the consolidated version with your compiler.
Compiling the Consolidated Version
When you compile the consolidated version, the process should reveal some errors, as shown in the following examples.
DIAGNOSTIC CROSS REFERENCE AND ASSEMBLER SUMMARY
THE FOLLOWING STATEMENTS WERE FLAGGED
000079 000080 000083 000085 000088 000090 000093 000095 000096 000097
10 STATEMENTS FLAGGED IN THIS ASSEMBLY 8 WAS HIGHEST SEVERITY CODE
The following displays the lines of code that are in error.
ASSEMBLER DONE
400000 79 MVC DATA(80),SPACES clean receiving data area
IEV034 *** ERROR *** ADDRESSABILITY ERROR
410000 80 MVC DATA+80(36),SPACES clean up to line end
IEV034 *** ERROR *** ADDRESSABILITY ERROR
83 CH R1,H4
IEV034 *** ERROR *** ADDRESSABILITY ERROR
85 MVC HEADLINE,HEADLIN1
IEV034 *** ERROR *** ADDRESSABILITY ERROR
88 CH R1,H8
IEV034 *** ERROR *** ADDRESSABILITY ERROR
90 MVC HEADLINE,HEADLIN2
IEV034 *** ERROR *** ADDRESSABILITY ERROR
420000 93 MVC HEADLINE(133),HEADER initialize page header
IEV034 *** ERROR *** ADDRESSABILITY ERROR
430000 95 MVC ENDLINE(133),ENDER initialize end-of-report
IEV034 *** ERROR *** ADDRESSABILITY ERROR
440000 96 ZAP RECNUM,ZERO initialize record counter
IEV034 *** ERROR *** ADDRESSABILITY ERROR
450000 97 ZAP LINECT,ZERO initialize line counter
IEV034 *** ERROR *** ADDRESSABILITY ERROR
10 STATEMENTS FLAGGED IN THIS ASSEMBLY 8 WAS HIGHEST SEVERITY CODE
The compile errors reveal that the program constants were defined improperly. It looks like you'll need to investigate the data area for an unresolved conflict.
Resuming the Reconciliation Effort
To resume an interrupted reconciliation, first you need to load, then edit, the WIS file. To load this file, select 4 (LOAD) from the Member Reconciliation menu. You will receive an acknowledgment that your WIS file has been loaded.
To edit the file, select 5 (EDIT) from the Member Reconciliation menu. The Reconcile panel displays.
Resolving the Third Conflict
On the Reconcile panel, page to the bottom of the data (using primary command MAX and then pressing [PF8]). On the Reconcile panel, shown below, move the Dummy Section IHADCB after the label ENDER.
View All ------------------------- RECONCILE ----------- ROW 191 TO 210 OF 210
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
000065 EODAD=ENDDATA
mm_P__ * Data Control Block Dummy Section (IHADCB)
> _P__ PRINT ON, NOGEN
mm_P__ DCBD DEVD=DA,DSORG=PS
> __N_ * Data Constants
> ___+ HEADLIN1 DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
>>___+ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> ___+ HEADLIN2 DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> ___+ ONE DC P'1' packed one
> ___+ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
a __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
000066 * Register Equates
000067 YREGS
000068 END PROGNAME end of program
/*_P__ END PGMACPAY end of program
******************************* BOTTOM OF DATA ********************************
When you press [Enter], the Reconcile panel, shown below, appears.
View All ------------------------- RECONCILE ----------- ROW 191 TO 211 OF 211
COMMAND ===> SCROLL ===> CSR
R:RECEIVBL P:PAYABLE N:NEW_RELS
000065 EODAD=ENDDATA
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 Lines DELETED
> __N_ * Data Constants
> ___+ HEADLIN1 DC CL133'1 * * ACCOUNTS RECEIVABLE * *'
>>___+ RPRTITLE DC CL133'1 * * * * ABC COMPANY * * * *'
> ___+ HEADLIN2 DC CL133'1 * * * ACCOUNTS PAYABLE * * *'
> __N_ ZERO DC P'0' packed zero
> __N_ ONE DC P'1' packed one
> ___+ ONE DC P'1' packed one
> ___+ ONE DC P'1' packed one
> __N_ P50 DC P'50' packed fifty
> __N_ SPACES DC CL80' ' eighty blanks
> __N_ HEADER DC CL133'1 * * * RECORD LISTING * * * '
> __N_ ENDER DC CL133'1 * * * END OF REPORT * * * '
>>___+ * Data Control Block Dummy Section (IHADCB)
>>___+ PRINT ON,NOGEN
>>___+ DCBD DEVD=DA,DSORG=PS
000066 * Register Equates
000067 YREGS
000068 END PROGNAME end of program
/*_P__ END PGMACPAY end of program
You have now resolved the third conflict. Enter [PF3] END and return to the Member Reconciliation menu.
Wrapping Up the Reconciliation Effort
Before exporting the consolidated version, you might want to change your user profile, so that the reconciliation analysis results are appended as comments to the consolidated version. Here is how to do this:
-
From the Member Reconciliation menu, select 0 (PROFILE), then 4 (EXPORT options).
-
Set EXPORT PREFIX=YES.
-
Export the consolidated version as described in Exporting the Consolidated Version (Option 6).
-
Exit M+R.
-
Browse (using ISPF 1) the updated member ASMBLBAS in CDFUSER.CDF.EXPORT.
The beginning of the consolidated version is displayed in the figure below.
000001 ********/* 2000/12/04 17:12:21 somnode.CMNZMF.SAMPLES
000002 * * /* Records in Exported File: 220 */
000003 * * / | -----------------------------------------------*/
000004 * * / | DEGREE OF COMPLEXITY: 9 HIGH */
000005 * * / | -----------------------------------------------*/
000006 * * / | RECORDS | CONFLICTS |SINGLE CHANGES*/
000007 * * / | ----------------|---------------|--------------*/
000008 * * / | NICKNAMES |PREV CURR DIFF |PREV CURR DIFF*/
000009 * * / | ----------------|---------------|--------------*/
000010 * * / | ORIGINAL 68 | 3 0% | 30 0% */
000011 * * / | ----------------|---------------|--------------*/
000012 * * / | RECEIVBL 70 | 3 0% | 0 0% */
000013 * * / | ----------------|---------------|--------------*/
000014 * * / | PAYABLE 85 | 13 0% | 9 0% */
000015 * * / | ----------------|---------------|--------------*/
000016 * * / | NEW_RELS 131 | 9 0% | 81 0% */
000017 * * / | ----------------|---------------|--------------*/
000018 * * / | RECONCIL | 0 0% | 0 0% */
000019 * * / | ----------------|---------------|--------------*/
000020 * * / | TOTAL: | 28 0% | 120 0% */
000021 * * / | -----------------------------------------------*/
000022 * * /* Reconciliation Scope: */
000023 * * /* NICKNAME MEMBER LAST MODIFIED USER ID DATA S */
000024 * * /* -------------------------------------------------------*/
000025 * * /* ORIGINAL ASMBLBAS 2000/11/21 15:52 SERENA somnode.CMN */
000026 * * /* RECEIVBL ASMBLDV1 2000/11/21 15:52 SERENA somnode.CMN */
000027 * * /* PAYABLE ASMBLDV2 2000/11/21 15:52 SERENA somnode.CMN */
000028 * * /* NEW_RELS ASMBLDV3 2000/11/21 15:52 SERENA somnode.CMN */
000029 * * /* RECONCIL 2000/12/04 17:12 CDFUSER Current Wor */
000030 * * /* ------------------------------------------------------ */
000031 PROGNAME CSECT
000032 STM R14,R12,12(R13) save caller's registers
000033 LR R12,R15 get program address
000034 USING PROGNAME,R12 addressability
000035 B AROUND go around label
000036 DC CL8'PROGNAME' program name
000037 DC CL8'&SYSDATE' date assembled
000038 DC CL6'&SYSTIME' time assembled
000039 COPYRITE DC C' COPYRIGHT (C)'
When you compile the updated member ASMBLBAS, it should be error-free. You can now put the consolidated version into production.