CA2124785C - Method and apparatus for conversion of transferred digital data - Google Patents

Method and apparatus for conversion of transferred digital data Download PDF

Info

Publication number
CA2124785C
CA2124785C CA002124785A CA2124785A CA2124785C CA 2124785 C CA2124785 C CA 2124785C CA 002124785 A CA002124785 A CA 002124785A CA 2124785 A CA2124785 A CA 2124785A CA 2124785 C CA2124785 C CA 2124785C
Authority
CA
Canada
Prior art keywords
relational database
record
file
conversion
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002124785A
Other languages
French (fr)
Inventor
Janice S. Pitt
John Lawton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric Systems USA Inc
Original Assignee
Wonderware Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wonderware Solutions Inc filed Critical Wonderware Solutions Inc
Application granted granted Critical
Publication of CA2124785C publication Critical patent/CA2124785C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Abstract

A data conversion apparatus and method for translating information stored in a first relational database to that stored in a second relational database, and for translating information in a relational database used by a first selected version of a computer program into information stored in a second relational database for use by a second selected version of a computer program. The apparatus and method thus allow the sharing of data by computer systems running different versions of a given software package. The data conversion apparatus includes a first file storage element for storing a first relational database having a plurality of digital records representing information used by a first selected version of a computer program, and a second file storage element capable of storing a second relational database representing at least a portion of the information from the first database for use by a second selected version of the computer program. The apparatus further includes a file management element that converts information from the first database for storage in the second. That conversion is performed as a function of the identities of the first and second selected versions of the computer program. The file management element includes table entry elements that identify, in table-like form, the procedures for translating individual records or fields of information stored in the first relational database into a form compatible with the second computer program version. Each file management table entry stores the names of software subroutines, each of which executes steps necessary for converting data between the respective formats.

Description

IMROVED METHOD AND APPARATUS FOR
CONVERSION OF TRANSFERRED DIGITAL DATA
AUTHORIZATION
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
This invention relates to the conversion of digital data transferred between relational databases and more particularly, for example, to the conversion of data transferred between computer systems running different versions of the same software.
A localized working environment with multiple computer systems typically runs a single version of any given software package, thereby making simple the transfer and sharing of data between the systems. Thus, for example, a company that uses computers to monitor and control manufacturing operations at a single site will generally run the very same computer-aided manufacturing software package on each of its computers. In the event data is transferred from one of those systems, it need not be converted for use on another system.
In a non-localized environment, however, sharing of data between multiple computer systems can be problematic. Companies having geographically diverse facilities may run different versions of a given software package at each site. For example, a multinational company may employ a first version of a software package in connection with its operations in France, while using a second version of that same package for its operations at a sister facility in Germany. While it may be desirable to transfer data between these facilities, differences in the structure of the underlying data files may make such a transfer difficult if not virtually impossible.
According to one prior art solution, data transferred between computer systems (e.g., between the French and German sites) would be printed at one site and manually re-entered at the other. This results in time delay, loss of man-hours and a corresponding loss in productivity. According to another such solution, a programmer would be employed to write a special-purpose computer to convert records used at one site to those used at the other site.
The difficulties in finding a programmer with sufficient knowledge of the data structures and of the local system and software may itself prove to be a daunting task.
In view of the foregoing, an object of the invention is to provide improved methods and apparatus for sharing data and, more particularly, for sharing data used by different software versions of a given software package.
Another object of the invention is to provide improved methods and apparatus for converting data transferred between computer systems employing different software versions.
Still another object of the invention is to provide such improved methods and apparatus that are more cost effective, and that are compatible with preexisting computer hardware.
Yet another object is to provide a system for converting data transferred between relational databases.
Other general and more specific objects of this invention will in part be obvious and will in part be evident from the description and drawings which follow.
SUMMARY OF THE INVENTION
The aforementioned and other objects are achieved by the invention which provides a data conversion apparatus and method for translating information stored in a first relational database to that stored in a second relational database and, more particularly, for translating information in a relational database used by a first selected version of a computer program into information stored in a second relational database for use by a second selected version of a computer program. The apparatus and method thus allow the sharing of data by computer systems running different versions of a given software package.
According to one aspect of the invention, a data conversion apparatus includes a first file storage element for storing a first relational database (i.e., a spreadsheet-like collection of information) having a plurality of digital records (each constituting, typically, a collection of fields of data relating to a single entity or transaction similar to a row in a spreadsheet) representing information used by a first selected version of a computer program, and a second file storage element capable of storing a second relational database representing at least a portion of the information from the first database for use by a second selected version of the computer program. The apparatus further includes a file management element that converts information from the first database for storage in the second. That conversion is performed as a function of the identities of the first and second selected versions of the computer program (e.g., as a function of their names and respective version numbers).
According to another aspect of the invention, the file management element includes table entry elements that identify, in table-like form, the procedures for translating individual records or fields of information stored in the first relational database into a form compatible with the second computer program version. For example, a record structure contained within the first relational database contains information used by a first version of a computer program, e.g., version 2. 0. These version 2. D-compatible records are processed by the file management element for translation into record structures that are compatible with a second version of the computer program, e.g., version 3.0, and stored within the second relational database.
In a related aspect of the invention, each file management table entry stores the names of software subroutines, each of which executes steps necessary for converting data between the respective formats.
In other related aspects of the invention, an execution element accesses a given entry listed in a selected table entry element based on the respective identities of the versions (e.g., 1 S the version numbers) of the computer programs.
In yet another aspect of the invention, the first and second file storage elements (along with their respective databases) reside remotely from one another. The file management element includes a data transfer element and a disassembler element. The data transfer element converts records in the first database, prior to transfer to the remote database, into a standard transfer file format. The disassembler element disassembles the records, subsequent to transfer, component structures (e.g., fields) that are subsequently processed by the conversion subroutine.
Still other aspects of the invention provide a method for data transfer and conversion paralleling the operations described above.
In a further aspect, the present invention provides a method of data conversion for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of said information for use by a second selected version of said computer program, said data conversion method comprising -3 a-A. a file management step for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management step including a conversion step for generating said digital records for storage in said second relational database by convening at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a function of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program C. said conversion step includes the steps of i) accessing a selected entry in a table of entries, each storing a procedure-representative signal representative of procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, said entry being selected as a function of the identities of said selected versions of said computer program with which said first and second relational databases are associated, and ii) executing the procedure represented by the procedure-representative signal stored in said selected entry to perform said conversion.

In a still further aspect, the present invention relates to a data conversion apparatus for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of 3_S said information for use by a second selected version of said computer program, said data conversion apparatus comprising w 21247n5 -3b-A. file management means, coupled to said first and second file storage means, for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management means includes conversion means for generating said digital records for storage in said second relational database by converting at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a fianction of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program, C. said conversion means comprising IS
i) a plurality of table entry means, each for storing a procedure-representative signal representative of a procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, ii) execution means for accessing a selected said table entry means as a function of the identities of said selected versions of said computer program with which said first and second relational databases are associated, and for executing the procedure represented by the procedure-representative signal stored therein to perform said conversion.
These and other aspects of the invention will in part be obvious and evident from the detailed description and the drawings which follow.
The foregoing and other aspects of the invention may be more fully understood from the following description, when read together with the accompanying drawings in which:
Figure 1 illustrates data and control signal pathways utilized by a preferred data conversion apparatus of the present invention;
Figure 2 is a schematic block diagram of a preferred data conversion apparatus according to the invention;
Figure 3 depicts a still more detailed perspective of a preferred data translator of Figure 2 according to a preferred embodiment of the invention;
Figure 4 depicts components of a record structure used in connection with a preferred data transfer process in an apparatus according to the invention;
Figures S through 7 depict a flowchart of a preferred data conversion process according to the invention.
DETAILED DESCRIPTION OF THE
ILLUSTRATED EMBODIMENT
Figure 1 illustrates data and control signal pathways utilized by a preferred data conversion apparatus of the present invention. The system 10 includes a remote computer 12, a file management element 18 (referred to as an "enterprise manager"), and a local computer 24, coupled as shown. Although the illustration shows two computer systems, those skilled in the art will appreciate that the teachings herein can be applied to the conversion of information transferred between more computer systems, as well as the conversion of information between differing versions of a selected program residing on a single computer system.
Referring to the drawing, the remote computer 12 communicates to the enterprise manager 18 a signal 13 representative of the name of a selected program for which data is to be converted and the version of that program used by the remote computer 12.
The remote computer 12 also communicates to the enterprise manager 18 at least selected data 14 to be converted. The local computer 24 likewise communicates to the enterprise manager 18 a signal 19 representative of the identity of the version of the program being used by that computer 24.
The enterprise manager 18 responds to the information provided by signals 13 and 19 by converting the information represented by signal 14 into data having a format for use by the second version of the program on the remote computer. That converted data is communicated to the remote computer as data signal 20.
Computers 12 and 24 preferably comprise conventional general-purpose computers that are programmed, operated and adapted with an enterprise manager 18 in accord with the teachings below. Those skilled in the art will appreciate that, although the discussion of the illustrated embodiment herein is directed to the conversion of data transferred between two versions of a given program, those teachings are equally applicable to the conversion of data transferred between any relational databases, or the like, having known file structures.

~' 2124r1~5 Figure 2 depicts a schematic representation of the data conversion apparatus according to a preferred embodiment of the invention. The system 10 includes a remote computer 12 having a dedicated enterprise manager 28, and a local computer 24 having a dedicated enterprise manager 36, as shown. Remote computer 12 has a data storage unit 26 that includes a first relational database for storing data used and generated by the first version of the selected program. The first relational database is constructed in a manner conventional to the art (as adapted in connection with the teachings below) and comprises, e.g., a "flat"
arrangement of data items having a spreadsheet-like format. For example, the arrangement can have a table-like configuration using record structures as the table rows.
Data records contained within the relational database are preferably transferred from the data store 26 to the dedicated enterprise manager 28 which prepares those records for transfer to the local computer system 24. For this purpose, the enterprise manager 28 includes a packing element 30 for converting each record 27 from data store 26 to a generic data transfer format. In a preferred embodiment, that conversion includes padding each record with zero's, blanks, or other filler data, thereby padding the record to a designated record length, e.g., 256 bytes. Such a packed record 60 is depicted in Figure 4. The record 60 includes n fields, labeled FIELD 1, FIELD 2, . . . FIELD N, and further includes packing space 62. Those skilled in the art will of course appreciate that other conversions may include re-arrangement of fields within each data record, or collation of like data fields from all records.
Moreover, enterprise manager 28 transfers packed records 32, along with the signal 13 reflecting the name and version of the selected program, to the dedicated enterprise manager 36 of the local computer 24. That transfer is preferably performed electronically via network interconnect, bus or modem, but can also be accomplished via exchange of diskettes, tapes or other physical storage medium.
Illustrated local computer 24 includes a data storage unit 38, similar to the data storage unit 26 of the remote computer 12, for storing a second relational database containing a collection of data records in a format usable by that version of the selected program running in the second computer The local enterprise manager 36 receives signal 13 from remote enterprise manager 28 and uses the information presented to determine how to convert data in records 32 for storage in data store 38. As further shown in the illustration, a status signal 34 can be communicated between the remote manager 28 and the local manager 36 for purposes of exchanging information regarding the status of any given data transfer and conversion.
The local enterprise manager 36 includes a disassembler, or unpacker, element 40 for stripping from records 32 extraneous information (e.g., filler) to reduce those records to their fundamental components, or fields 42, as described above.
A conversion element or translator 44 translates each such field 42 into a format compatible with the version of the selected computer program resident on the local computer.
The fields, once converted, are collated into records 46 and stored within the second relational database within data storage unit 38. The conversion of record 32 into a record 46 compatible with the second computer program version, can be more fully understood with reference to Figure 3.
It will further be appreciated, that although Figure 2 illustrates the local manager 36 as having the disassembler 40 and the translator 44, and the remote manager 28 as having the packer 30, each manager can include a packer 30, disassembler 40 and translator 44 -- thus, facilitating conversions in both directions.
Figure 3 depicts the translator 44 of Figure 2 according to a preferred embodiment of 1 S the invention. The translator 44 includes a collection of table elements 52A-52E. Each table corresponds to a selected program for which transferred data is to be converted and includes entries that are indexed by the FROM version signa113"and the TO version signal 50. Each entry stores the name (or address) of a procedure-representative signal representative of a procedure that converts information stored within field 42 sent to and received by the disassembler 40 into information contained within field 54 that is compatible with the local version of the computer program. With respect to the example given above, where the FROM version signal 13"represents version 2.0 of a computer program and the TO
version signal represents version 3.0, the location within a selected table element corresponds to table entry Z, as illustrated.
Referring to the drawing, entry Z preferably stores the name or address of a selected conversion subroutine for converting each field 42 into field 54. Execution of subroutines via identification of their respective software names or addresses is known in the art and need not be described here. Such a conversion subroutine may, for example, convert a French franc-based amount contained in a data field used by the first version of the program (on remote computer system 28) to a German deutschemark-based amount for use by the second version of the program (on the local computer system 24).
Figures 5, b and 7 are flowcharts showing the transfer of information between the local and remote computer systems ( 12, 24, Figure 1 ), as well as the invocation of individual processor programs, by a preferred system for conversion of transferred data according to the invention.

_7_ Referring to Figure 5, in step 74, applications program executing on local system 72 performs several steps, including checking whether the application is "mufti-site" 76, generating a communication entry (CE) signal 78, and releasing a held CE 82.
In step 76, the local system processor invokes the application program 74 to determine whether the application needs to transfer data between "sites" (e.g., between local or remote databases).
In one mode, if the application does not need to transfer data, the processor discontinues executing the applications program. However, if the processor determines that the application needs to transfer data, it generates a CE number (see step 78) and returns to the application program its identity. Step 80 stores the CE signal generated in step 78 pending identification of the associated data to be transferred. Once the processor identifies the data, the CE signal and the con esponding data are "tied" together, e.g., the application associates the generated CE number with the data.
With further reference to step 80, the local system 72 stores the generated CE
signal in a general communications file (GENCOM). The general GENCOM file alerts the application that data is to be transferred from the local system 72 to another yet undesignated site. Thus, once the system identifies the specific site to which data is to be transferred, the system generates a specific CE corresponding to that site. For example, if the data transfer is to occur between remote databases, the system generates a remote communications CE
(REMCOM) for that transfer. Conversely, if the data transfer is to occur between local databases, the system generates a local communications CE (LOCCOM). Although the illustrated flowcharts depict the transfer of data between a local and remote system, the illustrated steps are similarly applicable to the transfer of data between resident databases of a single system.
During the transfer of data to the remote system 102, shown in Figure 6, the local system generates a REMCOM CE corresponding to the transfer of data to the remote site.
The application attaches the CE to the data transferred between sites.
However, the data transferred with the REMCOM CE is a copy of the data associated with the CE
located in GENCOM, and not the original data associated with the GENCOM CE.
In step 82, the CE generated in step 78 is released via a call to GENCOM (see step 84). Then, in steps 86 and 88, the processing unit of the remote system processor calls a selected initialization program, which checks the various target systems located in the applications source history file to identify all the "sites" involved in the data transfer.
Further in accord with the above description, steps 86 through 90 create the CE's and mark or denote the data to be transferred with a corresponding transfer number, as described above. Step 88 then actuates step 90 by requesting step 90 to preferably write the CE's associated with the data to the local communications processor and from the remote _8_ communications processor. It will be appreciated that step 88 is program/FROM/TO signal specific, and that the step is synonymous with the data flow between the data storage unit 26 and the packer 30 of Figure 2.
Once step 88 calls the data records, step 90 generates either a local or remote CE and stores the CE as "held" (see step 80) during the initial record call. The processor then creates a copy of the data and marks it with the appropriate CE number. Subsequently, the CE is released upon any subsequent call to the local processor. This sequence of steps ensures that the system locates and marks the appropriate data with the correct CE number, and that the data can be identified for transfer to the remote system.
Preferably, step 90 performs the foregoing call functions. First, the processor generates the remote CE and stores the CE as "held" (see step 80). Then, secondly, a subsequent call releases the held CE, signifying that the corresponding transfer data has been located and marked. In step 90, the system generates a LOCCOM or REMCOM record (see steps 92,94) depending upon whether data is being transferred between local databases or remote databases. Those of ordinary skill will also understand that since centralized distribution requires that the local processor generate only remote CE's, the source data files are at system-level and, thus, already exist locally.
Figure 6 depicts a continuation of the flowchart of Figure S detailing the processing steps performed on a REMCOM record. Steps 92-100 represent the transfer of data between the local and remote computers illustrated in Figures 1 and 2. Further, the steps preferably depend upon the program/FROM/TO signals 13,13',13",50. In step 94, the local system 72 processes the REMCOM record transferred from the data storage unit 26 to the packer 30, and writes a LOCCOM record to the remote system 102. The LOCCOM record sent by the local system 72 instructs the remote system to convert and upload the data.
Additionally, step 94 invokes the sending transfer program 96 for transferring the LOCCOM
record to a remote data transfer fi1e100, where it is preferably stored in separately allocated memory storage space.
The steps 102-106 of Figure 7 illustrate the transfer and receipt of data by the remote system 102. The remote system 102, once the LOCCOM record is received, invokes the receiving transfer program 104 to update the data transfer files 100 into system or entity files 106. Those of ordinary skill will appreciate that this transfer corresponds to flow of data between the translator 44 and the data storage unit 38 of Figure 2.
It will also be appreciated that although the present invention has been described with regard to the conversion of data transferred between two remote systems. the principles described herein are similarly applicable to the consolidation of data from multiple databases.

A still more complete understanding of the structure and operation of a preferred system according to the invention may be attained by reference to the software listings provided in the Appendices hereto. The software communication tools referred to in the listings can be any of several commercially available and commonly know such tools.
Preferred such tools are designed by the assignee hereof. Those skilled in the art will appreciate that the listed programs are also used in conjunction with other software and hardware tools (e.g., operating systems and modems) commonly available and known to those of ordinary skill in the art.
The foregoing describes a preferred system for converting data for use by two or more versions of a computer program. Those skilled in the art will appreciate that the embodiment described above is by way of example only, and that other embodiments incorporating modifications thereto fall within the scope of the invention. Thus, as noted above, whereas the illustrated embodiment herein is directed to the conversion of data transferred between two versions of a given program, those teachings are equally applicable to the conversion of data transferred between any relational databases, or the like. These and other such embodiments are contemplated by the invention, of which we claim:

TO
UNITED STATES PATENT APPLICATION
FOR
IMPR~DVED METHOD AND APPARATUS FOR
CONVERSION OF TRANSFERRED DIGITAL DATA
by Janice S. Pitt John Lawton The following constitute computer software listings comprising the design and code of a preferred system for conversion of transferred data according to the invention.
These listing are Marcam Corporation :6$APPDF$
;b; $APPDF Application Defmitian File Access Std Subroutine ;ql;;r;
- The Application Definition File Access Standard Subroutine is used to find a record from the Application Definition file, APPDEF, with the program name, from rel-mod level, and to rel-mod level passed into this suboutline. If a record is found, the APPDEF record will be retrieved and $$FAIL will be set to '0'. Otherwise $$FAIL will be set to '1'. ;ql;
;id; This subroutine must be passed the program name, from rel-mod level, and to rel-mod level. The source for this subroutine should reside in MMDDSSRC, and should be put into the source of those programs executing it via the /COPY function. ;ql;
;id; The following is a list of those fields passed to and returned by this subroutine: ;ql;
;id; KPCH 1BA Application Program name (passed ;ql;
;id; KFREL :iA From rel-mod level (passed) ;ql;
;id; KTREL :iA To rel-mod level (passed) ;ql;
;id; $$FAIL lA Error code (returned) ;ql;
id; 1. First, set the error code field ($$FAIL) to '0' . It will be loaded with ' 1' later by this subroutine if it fails to retrievt: an APF'DEF record. ;ql;
;id; 2. Attempt to retrieve the APPD:EF record for the passed key values (:KPGM/KFREL/KTREL). If' such an APPDEF record does not exist, proceed to step 3. ;ql;
;:id; 3. Change the to rel-mod level to a multiple of 10 and check for an APPDEF record with the original program name, the original from rel-mod level, and this new to rel-mod level. If such an APPDEF record still does not exist, proceed to step. 4. ;ql;
;iid; 4. Try to fmd a record with the original program name and from rel-mod level, but with a lower to rel-mod level. Keep reducing the to rel-mod level by steps of 10 (mod levels) until the to rel-mod level becomes ' - ' or until an APPDEF record is found. If an APPDEF
record still doesn't exist, proceed to step 5. ;ql;
;i.d; 5. Change the from rel-rnod level to a multiple of 10 and check for an APPDEF record with the original program narr~e, the original to rel-mod level, and this new from rel-mod level. If such an APPDEF record still does not exist, proceed to step 6. ;ql;
;id; 6. Try to find a record with the original program name and to rel-mod level, but with a lower from rel-mod level. Keep reducing the from rel-mod level by steps of 10 (mod levels) until the from rel-mod level becomes ' - ' or until an APPDEF record is found.
If an A.PPDEF record still doesn't exist, pra~ceed to step 7. ;ql;
;<i; 7. If an APPDEF record still cannat be found, retrieve the APPDEF record with the original program name, but use the COMDEF default from rel-mod and to rel-mod levels. If such an APPDEF records still doesn't exist, set $$FAIL to ' 1' to indicate that this suboutline has failed to retreive an APPDEF record for the given program name, from rel-mod level, and 1:o rel-mod level. ;ql;
;hi;B. File Usage ;ql;
;id; APPDEF TF Applicat:ion Definition File ;ql;
;id; COMDEF IF ~Commur~cations Definitions File ;ql;
;ql;;hx;
9~END$

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:07:17 Page 1 ;iOURCE FILE . . . . . . . . . . . . . . . . ;KLIB310/MMDDSSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . '$APPDF
iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 100C********* $APPDF SUBR **************
$APPDF SUBR 08/07/91 200C* * 08/07/91 300C* The purpose of the $APPDF subroutine* 08/09/91 is to find the 400C* Application Definition File record.* 08/09/91 500C* * 08/09/91 600C* 1. The subroutine is passet3 the * 01/27/92 program name and the from 700C* rel-mod level and the rel-mod * 01/27/92 level. These values 800C* are used to access t:he APPDEF * 01/27/92 file.

900C* 2. Check for the original from/to* 01/27/92 rel-mod level 1000C* 3. If the to mod level is not * 02/27/92 a multiple of 10, make it so 1001C* Chain with the new to mod level * 03/11/92 1100C* 4. If it does not exist, try to * 02/27/92 match the from rel-mod level 1200C* and to rel-mod less than the original* 01/27/92 to a record 1300C* 5. If the from rnod lvl is rnot * 02/27/92 a multiple of 10, make it so 1301C* Chain with the new from mod level* 03/11/92 1400C* 6. If it does not exist, try to * 02/27/92 match the to rel-mod level 1500C* and a frotr~ rel-mod loss than * 01/27/92 the original.

1600C* (the to rel-mod must be returned * 01/27/92 to its original value) 1700C* 7. If still no record, check the * 02/27/92 COMDEF default from and 1800C* to rel mod level field. * 01/27/92 1900C* 8. If no APPDEF record can be * 02/27/92 found at all return 2000C* an indicator ($$FAIL = 1) to the * 01/27/92 calling subroutine 2100C* * 01/27/92 2200C***************~.***************************************** 08/09/91 2300C* * 08/09/91 2400C* * 08/09/91 2500C* Input fields: * 08/09/91 2600C* KPGM - Application Program Name * 08/09/91 2700C* KFREL - From release-modification* 08/09/91 level 2800C* KTREL To release-modification * 08/09/91 level 2900C* * 08/09/91 3000C* * 08/09/91 3100C* Output fields: * 08/09/91 3200C* $$FAIL - Indicator if failed * 08/09/91 3300C* '0' - No error * 08/09/91 3400C* '1' - Application def record not * 08/09/91 found 3500C* * 08/09191 3600C* * 08/09191 3700C* The following files have to be * 08/09/91 defined in the calling 3800C* program: * 08/09/91 3900C* APPDEF Application Definition * 08/09/91 File 4000C* COMDEF' Communication Definition * 01/27/92 File 4100C* * 08/09/91 4200C* COMDEF has to have been accessed * 01/27192 in $INZSR or $BEGSR

4300C* * 01/27/92 4400C* The following data structure must* 01/27/92 be defined 4500C* IQQRM DS * 01/27/92 4600C* I 1 20QQREL * 01/27/92 4700C* I 4 SOQQMOD * 01/27/92 :5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:07:17 Page 2 ;iOURCE FILE . . . . . . . . . . . . . . . :KLIB310/MMDDSSRC
JVIEMBER . . . . . . . . . . . . . . . . . . . ;$APPDF
;iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 4800C* * 01/27/92 4900C* * 08/09/91 5000C* * 08/09/91 Prior definitions required by this subroutine 5100C* * 08/09/91 5200C* *LIKE DEFN FDPGM KPGM * 01/27/92 5300C* *LIKE DEFN FI>FREL KFREL * 01/27/92 5400C* *LIKE DEFN FDTREL KTREL * 01/27/92 5500C* * 01/27/92 5600C* APPDE KLIST * 08109/91 K

5700C* KFLD KPGM * 08/09/91 5800C* KFLD KPREL * 08/09/91 5900C* KFLD KTREL * 08/09/91 C* * 08/09/91 6100C* * 08/09/91 6200C* * 08/09/91 6300C***************k********~:*****************************
** 08/09/91 C* * 08/09/91 6500C* * 08/09/91 INDICATORS
USED
.

C* * 08/09/91 6700C* * 01/27/91 EXECUTES
.
NONE

6800C* * 08/09/91 6900C***************:k********:r:*******************************

7000C* SRCE3 02/27/92 7100C* $APPDF BEGSR 08/07/91 7200C* 02/20/92 7300C *LIKE DEFN *1:N98 $$SAVE 02/20/92 7400C MOVE *1N98 $$SAVE 02/20/92 *

7600C *LIKE DEFN QQMOD $$DIV 02/20/92 7700C *LIKE DEFN QQMOD $$REM 02/20/92 7800C* 08/07.91 7900C* Save the to rel-mod level as 08/07/91 1. it will be changed first 8000C* and must be returned to :its 08/07/91 original value 8100C* 08/07/91 8200C *LIKE DEFN FDTREL $$TREL 08/07/91 8300C MOVE K'TREL $$TREL 08/07/91 C* 08/07/91 8500C* Define the indicator that will 08/07/91 2. return a failure to 8600C* the calling program 08/07/91 8700C* 08/07/91 8800C MOVE '0' $$FAIL 1 08/07/91 8900C* 08/07/91 9000C* Check for the original from/to 01/27/92 3. rel-mod level 9100C* 08/07/91 9200C KAPPDE CHAINAI?PDEF 98 08/07/91 9300C* 02/20/92 9400C* If original not found, change 03/02/92 4. the to mod level to 9500C* a multiple of 10 and check for 03/11/92 the new from rel-mod level 9501C* and original pro rel-mod level 03/11/92 :5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:07:17 Page 3 ;SOURCE FILE . . . . . . . . . . . . . . . . :KLIB310/MMDDSSRC
MEMBER . . . . . . . . . . . . . . . . . . . ;~APPDF
;iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 9600C* 02/20/92 9700C *IN98 IFEQ *ON 02/27/92 9800C KTREL ANDNE' - ' 02/27/92 9900C KTREL ANDNE'kBLANKS 02/27/92 10000C MOVE K:TREL QQRM 02/20/92 10100C QQMOD DIV 10 $$DIV 02/20/92 10200C MVR $$REM 02/20/92 10300C $$REM IFGT 0 02/20/92 10400C SUB $$REM QQMOD 02/20/92 10600C MOVE K:TREL $$TREL 02/27/92 10700C ENDIF $$REM > 0 02/20/92 10800C ENDIF *IN98=*on 02/20/92 10900C* 08/07/91 11000C* . Then, try to :match the from 03/02/92 rel-mod leval and a to 11100C* rel-mod less than the original 03/02/92 to a record 11200C* 08/07/91 11300C *IN98 DOWEQ'*ON 02/06/92 11400C KTREL ANDNE' ~- ' 08/07/91 11500C KTREL ANDNE*BLANKS 02/27/92 11600C* 08/07/91 12200C Z-ADD9f1 QQMOD 08107/91 12500C MOVE ' - ' QQRM 08/07/91 12600C ENDIF QQREL < > 0 02/06/92 12700C ENDIF QQMOD < > 0 02/06/92 13000C* 08/07/91 13100C ENDDO DOW *IN98=ON 02/06/92 13101C* 03/11/92 13102C* Return the to rel-mod level 03/11/92 6. to its original value or 13104C* original value adjusted to 03/11/92 be a multiple of 10 13105C* 03/11/92 13106C MOVE $9~TREL KTREL 03/11/92 13200C* 02/20/92 13300C* If no match found for from 03/11/92 7. rel-mod, change the 13400C* from mod level to a multiple 03/11/92 of 10 and check for the 13401C* original to rel-mod level and 03/11/92 new from rel-mod level 13500C* 02/20/92 13600C *IN98 IFED *DN 02/27/92 13700C KFREL ANDNE' - ' 02/27/92 :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:07:17 Page 4 SOURCE FILE . . . . . . . . . . . . . . . . ;KLIB310/MMDDSSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . ',$APPDF
iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 13800C KFREL ANDNE*BLANKS 02/27/92 13900C MOVE K:FREL QQRM 02/20/92 14000C QQMOD DIV 10 $$DIV 02/20/92 14100C MVR $$REM 02/20/92 14200C $$REM IFGT 0 02/20/92 14300C SUB $$REM QQMOD 02/20/92 14500C ENDIF $$REM > 0 02/20/92 14600C ENDIF *IN98=*ON 02/20/92 14700C* 08/07/91 14800C* 03/11/92 8.
Then, try to match the to rel-mod level and a from 14900C* from rel-mod less than the original. 03/02/92 15400C* 08/07/91 15500C *IN98 DOWEQ*ON 02/06/92 15600C KFREL ANDNE' -- ' 08/07/91 15700C KFREL ANDNE*BLANKS 02/27/92 15800C* 08/07/91 16400C Z-ADDO(I QQMOD 08/07/91 16700C MOVE ' - ' QQRM 08/07/91 16800C ENDIF QQREL < > 02/06/92 16900C ENDIF QQMOD < > 02/06/92 17100C KAPPDE CHAINA:PPDEF 98 02/20/92 17200C* 08/07/91 17300C ENDDO DOW *IN98=*ON02/06/92 17400C* ~ 08/07/91 17500C* 03/11/92 9.
If still no record, check the COMDEF
default from and *

17600C* to rel-mod level field. 01/27/92 17700C* 08/07/91 17800C *IN98 IFEQ *ON 02/06/92 18200C ENDIF *IN98=ON 02/06/92 18300C* 08/07/91 18400C* 03/11/92 10.
If no APPDE.F
record cam be found at all return 18500C* an indicator ~;$$FAIL = 1) to 08/07/91 the calling subroutine.

18600C* 08/07/91 18700C *IN98 IFEQ *ON 02/06/92 18800C MOVE '1' $$FAIL 08/07/91 18900C ENDIF *IN98=ON 02/06/92 :5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:07:17 Page 5 :iOURCE FILE . . . . . . . . . . . . . . . . :KLIB310/MMDDSSRC
MEMBER . . . . . . . . . . . . . . . . . . . '$APPDF
iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 19000C* 02/20/92 19100C MOVE $$SAVE *IN98 02/20/92 19200C* 08/07/91 19400C* 01/27/92 19500C********************************************************************01/27 19600C* * 01/27/92 19700C* END OF * 01/27/92 19800C* Unit of $APPDF subroutine source member 01/28/92 *

19900C * * 01/27/92 20000C********************************************************************01/27 20100C* 01/27/92 **** END OF SOURCE ****

!6MMC000$
;b; MMC000 General Communications Processor Program ;ql;;r;
;hi;A. The General Communications Processor is a background function driven of of GENCOMDT, the permanent logical file over the General Communications Entry File (GENCOM). GENCOMDT provides a key change to date/time last maintenance and also selects only those records of status equal to '10' (immediate processing). Records may have been written to GENCOM by MMC080, the Communications Initiator Program, or by an external user program. Regardless of the source, this program processes the GENCOMI;~T record to initiate the communication.
This program then calls the Initialization Program defined for the particular appl ication, whiich write record (s) to LOCCOM (Local Communications Entry File) and/or REMCOM (Remote Communications F;ntry File) tbr the specific communications entries corresponding to each GENCOM
record. ;ql;;hx;
;id; 1. Process a loop to retrieve records from GENCOMDT. This is accomplished by reading through GENCOMDT. For each record retrieved, continue processiing in step :!. End the program as described in step 2D(iii) when a shut down request is detected, for example, when the system shuts down or when the job is ended by using a controlled end job (ENDJOB) command. ;ql;
dtint&
Design Note: Since the CL program has. overridden GENCOM, specifying an end-of file delay, there is no additional coding necessary within the RPG program to enable the background function.
Design Note: There is no guarantee that the program can detect a shut down request before the job is ended due to the end of file delay. As a result, the EMBKGD record may ~or may not get deleted, depending on whether the job is ended normally or abnormally. In any cases, the EMBKGD record will be deleted eventually either by this program or by MMM140.
Programmer Note: We were unable to use an open query tile on a file overridden with the end-of file delay parameter specified. The problem is that the OVRDBF )override data base file) command has many parameters. However, the C1PNQRYF (open query file) will only recognize a few of the parameters (TOFILE
< MBR, LVLCHK < WAITRCD, SEQONLY, INHWRT, SHARE); all of the rest are ignored. Neither the compiler nor a program run will indicate this happened. We discovered the quirk because the file no longer functioned as we expected it to under the end-of file delay fimction. The solution was a logical file. with a seh:ctlomit line.
&_end&
;id; 2. The logical file has selected only those conununications entries with status 10 (immediate processing). There is no need to check the status here. ;ql;
;id; A. GENCOMDT records with status 10 are those that have been placed in GENCOM either by MMC080 or by some external program and have been "released for immediate processing."
These are the general CE's that have not yet been assigned specific CE's. ;ql;
;id; B. Before continuing, check the CE # for this record. If it is '*INIT,' then this is the dummy record indicating that the last reset was performed on am empty file. This required us to enter a dummy record that will allow the reset to work.
;id; i. Check that the initialization is for this job number. The CE # will consist of the *INIT in position 106 of the CE # and the job number in position 10-15. The job number was passed by MMCOOOXO.
;ql;
;id; ii. Since the initialization record is job specific and has already fulfilled its purpose, delete the record from GENCOMDT :if the job number corresponds to this job. ;ql;
;id; iii. Return to si:ep 1 to process the next record in the file. ;ql;
;id; C. Before continuing, check the CE# for this record. If it is '*R.ESET,' then this is the dummy record indicating that the pointer to this file should be reset to the beginning.
;ql;
;id; i. Check that the reset is for this job number. The CE # will consist of the *R.ESET in position 1-6 of the CE # and the job number in position 10-15. The job number was passed by MMCOOOXJ. ;ql;
;id; ii. Since the rc;set record is job specific, delete the record from GENCOMDT if the job number corresponds to this;iob. ;ql;
;id; iii. If the CE ft is '*RESF?T',' perform a SETLL to reset the pointer to the beginning of GENCOMDT. ;ql;
;id; iv. If the SETILL failed, this indicates that there are no records in the file. Since the pointer is set at the end of the file on a failed S;ETLL the end-of file delay is no longer in effect and the program wilt end.
To handle this situation, the program will write an '*INIT' (initialization) record with a date and time of *LOVAL. The SETLL will then be performed again. Since a record was just writeen, the SETLL will work and the pointer is positioned at the beginning of the file again. ;ql;
;id; v. If the SETL,L failed, add to the reset field in EMBKGD (BGRSET) and update the record. This field will keep track of how many failed resets were encountered. A failed reset is one where the reset brings the user to the beginning of an empty file. This field will be used at implementation and will be helpful in determining the frequency needed for the reset. ;ql;
;id; vi. Return to step 1 to read the next record. ;ql;
;id; D. Now check to see if this is the deactivation record, designated by a CE # of '*END.'. ;ql;
;id; i. Check that the deactivation record is for this job number. The CE #
will consist of the *END in position 1-4 of the CE # and the job number in position 10-15. The job number of the current job was passed by MMCOOOXJ. ;ql;
;id; ii. Since the deactivation record is job specific, delete the record from GENCOMDT if the job number corresponds to this job. ;ql;
;id; iii. If the CE # is '*End,' then this program should end immediately, without processing any more GENCOM records. Prior to ending the program, delete the Enterprise Management Background File (BEMBKGD) record! found for 'MMCOOOXJ,' the user (passed from MMCOOOXJ) and the job number (passed from MMCOOOXJ). ;ql;
;id; 3. The word is not a reset or deactivation record. Retrieve the name of the initialization program from the Application Definition File (APPDEF). ;ql;
;id; A. Retrieve the APPDEF record for' the application program donelfrom release-modification level in GENCOM. (There may be more than one APPDEF record for this combination with different to rel mod levels, but use the first one found. The to rel-mod level doesn't matter because only the files in the requesting entity are used at this point.) If no record is found, attempt to retrieve a record for the last rel-mod level or the most recent previous rel-mod level. If still no record found, use the default from rel-mod from COMDEF and access APPDEF. ;ql;
;id; B. If no APPDEF record exists then no more processing can occur on this record, update the General Communications Entry file record with status '62' to indicate that the program failed trying to obtain an APPDEF
record. Return to step 1 to process the next record. ;ql;
;id; C. Check to see if the originating entity exists in the Entity Definition file (ENTFIL). The originating entity is the first 10 characters of the general CE #. If the entity does not exist in ENTFIL, update the General CE status to '63' and return to step 1 to process the next record. ;ql;
;id; D. If the ENTFIL record is found in step 3C above, determine if the entity files library (EFFLIB) retrieved from the ENTFIL record exist: by using a~ CHKOBJ CL command. If the entity files library does not exist, update the general CB status to '63' and return to step 1 to process the next record.
;ql;
;id; E. If the APPDEF and E::VTFIL records exists and the entity files library is found, update the GENCOM record with status '50' (submitted for processing), so that it will not be accessible by any other processors. This step is necessary because of the requirement that users be able to set up multiple processors. We must be sure that a given record will only be processed by one processor. ;ql;

;id; F. Retrieve the name of the initialization program from the Application Definition File (APPDEF). Call the program with the following PL IST. ;ql;
;id; PMCINT PLIST ;ql;
id; PARM PGRNO 15A general CE # ;ql;
;id; G. If the initialization program does. not exist, call MMC030 to send a message to the EM background message queue saying that the initialization program for this general CE does not exist. ;ql;
8:int Design note: We are not providing any recovery me°chanism to the user if the initialization program does not exist. The general C'E status will remain '50', thus it will not be picked up by any general commendations processors again even after the problem is fixed. The user should cancel this general CE, and he/she has to create another CE to perform the job again.
&:end ;id; H. Return to step 1 to process the next record. ;ql;
;hi;B. File Usage ;ql;
;id;APPDEF IF Application Definition File ;ql;

;id;COMDEF IF Communications Definition File ;ql;

;id;EMBKGD OF Enterprise Management Background ;ql;
File ;id;ENTFIL IF Entity Delvinition File ;ql;

;id;GENCOMDT UP Perm Logical of GENCOM by Dt/Tm ;ql;
Last MT

;ill;;hx;
$13ND$

,5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 1 ;SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . . . . . . . . MMC000 SEQNBR*...*...1...+...2...+.,.3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 100H***************************************************************

200H* * 07/22/91 300H* Release - 03 M:od level - 10 * 06/26/92 400H* * 07/22/91 500H* * 07/22/91 H* * 07/22/91 700H* * 06/26/92 800H* * 07/22/91 900H* MODULE: Enterprise Management * 07/22/91 1000H* * 07/22/91 1100H PROGRAM NAME: MMCO00 - General Communications* 07/22/91 1200H* Processor Program * 07/22/91 1300H* * 07/22/91 1400H* FUNCTION: This program processes the * 07/22/91 General 1500H* Communication Entry File (GENCOM) * 08/05/91 1600H* * 07/22/91 1700H* CALLING PROGRAM: MMCOOOXJ - XJ Procedure* 08/22/91 to open the 1800H* logical file * 10/07/92 1900H* * 07/22/91 2000H* CALLED PROGRAM: Initializatiion program* 08/05/91 (from APPDEF) 2100H* MMC030-Communications Message Sending* 10/19/92 2200H* Program * 10/19/92 2300H* * 10/07192 2400H* /COPY INPUT: NONE * 10/14/92 2500H* * 07/22/91 2600H* /COPY ROUTINES: NONE * 07/22/91 2700H* * 07/22/91 2800H**********************~:****************************************

2900H* PROGR.AM DESCRIPTION * 07/22/91 3000H**********************~:****************************************

3100H* * 07/22/91 3200H* This program is the Gent:ral Communications* 07/29/91 Processor. It 3300H* reads through the GENCOM file and * 07/29/91 calls the appropriate 3400H* initialization program as defined * 07/29/91 in the Applications 3500H* Definition file (APPDEF). The GE:f~COM* 01/13/92 file was defined with 3600H* end of file delay. Therefore, a deactivation* 01/13/92 record must 3700H* be encountered to end the processor. * 07/29/91 A reset record may 3800H* be hit to reset the pointer. * 07/29/91 3900H* * 07/22/91 4000H***************************************************************

4200F***************************************************************

4300F* FUNCTION OF IfNDICATORS * 07/22/91 4400F***************************************************************

4500F* * 07/22/91 4600F* 98 - General Indicator * 08/05/91 4700F* 99 - General Indicator * 07/22/91 4800F* * 07/22/91 4900F***********************x***************************************

_'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 2 ',>OURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . 1VIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5100F***********************:****************************************07/22/91 5200F* * 07/22/91 5300F* FILE SPECIFICATIONS * 07/22/91 5400F* * 07/22/91 5500F***************************************************************07/22/91 5600F* 07122/91 5900FCOMDEF IF E D1:SK 02/05/92 6100FEMBKGD OF E K D1:SK 07/22/91 7000E********************************:x******************************07/22/91 7100E* * 07/22/91 7200E* ARRAN' DEFINITION * 07/22/91 7300E* * 07/22/91 7400E********************************:k******************************07/22/91 7500I************************:****************************************07/22/91 7600I* * 07/22/91 7700I* INPUT SPECIFICATIONS * 07/22/91 7800I* * 07/22/91 7900I************************:****************************************07/22/91 8000I* 07/26/91 8100I* Externally described data structure to define10/14/92 the parameter 8200I* list for the EM mossage sending program, MMC03010/14/92 8300I* 10/14/92 8400I$MC030 E DSDSM C030 10/ 14/92 8500I* 10/14/92 8900I* 05112/92 9000I* NAMED CONSTANTS 05/12/92 9100I* 05/12/92 9200I 'CHKOB~~ OBJ(' C QQCMD1 05/12/92 9300I ') OBJTYPE(*LIB)' C QQCMD2 05/12/92 9400I* 10/07192 9600C***********************.*********~'******************************07/22/91 9700C* * 07/22/91 9800C* CALCULA'CION SPECS * 07/22/91 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 3 'iOURCE FILE . . . . . . . . . . , . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC000 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 9900C* * 07/22/91 10000C**********************:k*********:*******************************

10100C* * 07/22/91 10200C**********************:k*********:*******************************

10300C* M A I N L I N E * 07/22/91 10400C**********************:k****************************************

10500C* * 07/22/91 10600C* The MAINLINE is exe<:uted once. It calls 01/27/92 the subroutine *

10700C* PROGEN to process GI?NCOM (the General 01/27/92 Communications *

10800C* Entry File.). The program ends when a 01/27/92 'deactivate' *

10900C* record is encountered in. GENCOM. The 04121/93 subroutine ENDPRO *

11000C* will perform any final processing and 04/21/93 the program ends *

11100C* in the MAINLINE. * 04/21/93 11200C* * SRCE3 04/22/93 11300C***************************************************************SRCE3 11400C* * SRCE3 04122/93 11500C* INDICATORS USED : LR * SRCE3 04/22/93 11600C* * SRCE3 04/22/93 11700C* EXECUTES : ENDPRO PHOGEN * SRCE3 04/22/93 11800C* * SRCE3 04/22193 11900C**********************~:****************************************SRCE3 12000C* SRCE3 04/22/93 12100C *ENTRY PLIST SRCE3 07/25/91 12200C PARM $PJOHN 02/05/92 12300C PARM $PUSER 02/05/92 12400C* 07/22/91 12500C* Process the General Corrununications File 04/21/93 12600C* 04/21/93 12800C* 07/30/91 12900C* Perform any necessary functions before 04/21/93 ending 13000C* 04/21/93 13200C* 04/21/93 13500C* 07/30/91 13600C* 07/22/91 13800C*********** *INZSR SUBR *****~************** 03/02/92 *INZSR SUBR *

13900C* * 07/22/91 14000C* The purpose of the *INZSR subroutine is 01/27/92 to perform the *

14100C* initial calculations that need to be done 01/27/92 on the initial *

14200C* call of the program * 01/27/92 14300C* * SRCE3 04122/93 14400C********************************:k******************************SRCE3 14500C* * SRCE3 04/22/93 14600C* INDICATORS USED : 99 * SRCE3 04/22/93 14700C* * SRCE3 04/22/93 'i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28193 14:08:15 Page 4 'iOURCE FILE . . . . . . . . . . . . . . . , ~~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 14800C**************************************************************

14900C* SRCE3 04/22/93 15000C *INZSR BEGSR 03/02/92 15100C* 07/22/91 15200C* Initialize the standard variables. 07/22/91 15300C* 07/22/91 15400C NOVEL'MMC000' $PGM Program Name 01/28/92 15500C MOVE 'Nt' MODULE Module 01/28/92 15600C* 05/12/92 15700C* Set the length of the QCIvIDEXC string 05/12/92 15800C* 05/12/92 15900C Z-ADD36 QQLEN Length 05/12/92 16000C* 02/05/92 16100C* Retrieve record from COMDEF so that 02/05/92 default 'from rel-mod 16200C* level' can be accessed. It may be 02/05/92 needed if attempts to re-16300C* trieve an APPDEF recor3 with a specific 02/05/92 appl/from rel-mod 16400C* fail. 02/05/92 16500C* 02/05/92 16700C* 07/22/91 16800C ENDSR *INZSR SRCE3 03/02/92 17000C************* $DEFSR ;iUBR ****************** 01/13/92 $DEFSR SUBR ' 17100C* * 01/13/92 17200C* The purpose of the $DEFSR subroutine * 01/27/92 is to define the 17300C* program fields * 01/27/92 17400C* * SRCE3 04/22/93 17500C********************************:******************************* SRCE3 17600C* * SRCE3 04/22/93 17700C* INDICATORS USED . NONE * SRCE3 04/22/93 17800C* * SRCE3 04/22/93 17900C********************************:******************************* SRCE3 18000C* SRCE3 04/22/93 18100C $DEFSK BEGSR 01/13/92 18200C* 01/13/92 18300C* Initialize the standard variables. 01/13/92 18400C* 01/13/92 18500C MOVE "'BLANKS $PGM 8 Program Name 01/28/92 18600C MOVE *BLANKS MODULE 1 Module 01/28/92 18700C MOVE "'BLANKS QQTEMP 1 Temporary 04/22/93 var 18800C* 05/12/92 18900C MOVE *BLANKS QQCND 36 QCMDEXC command05/12/92 19000C Z-ADDO QQLEN 155 Length 05/12/92 19100C* 05/12/92 19200C* *LIKE DEFN the program variables 05/12/92 19300C* 05/12/92 19400C *LIKE DEFN EFNME QQENT Originating 05/12/92 Ent 9500C* 01/13/92 19600C* Set up plist for calling the initialization 01/13192 program :i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 5 .'iOURCE FILE . . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC000 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 19700C* 01/13/92 19900C PARM PGNRO General CE # 01/13/92 20000C* 10/07/92 20100C* 10/07/92 Set up plist for calling MMC030, thc:
Communications Message 20200C* Sending Program 10/07/92 20300C* 10/07/92 20500C PARM $MC030 10/07/92 20600C* 01/13/92 20700C* 01/13/92 *LIKE
DEFN
the klist vairiables 20800C* 01/13/92 20900C *LIKE DEFN FDPGM KPGM Application Pgm 01/28/92 21000C *LIKE DEFN FDFREL KFREL Release Level 01/28/92 21100C *LIKE DEFN B(3JOB KJOB lob Name 01/28/92 21200C *LIKE DEFN B(iUSER KUSER User Profile 01/28/92 21300C *LIKE DEFN B(iJOBN KJOBN Job Number 01/28/92 21400C *LIKE DEFN B(iJOBN $PJOBN lob Number 02/05/92 21500C *LIKE DEFN B(iUSER $PUSER User Profile 02/05/92 21600C *LIKE DEFN ZCCENO PGRNO Genl CE # 01/28/92 21700C* 01/13/92 21800C* 01/13/92 Set up Key list for retrieving the initialization program from 21900C* the Application Definition file 01/13/92 (,APPDEF) - partial key 22000C* 01/13/92 22400C* 01/13/92 22500C* 01/13/92 Set up Key list for deleting a record i,n the background file 22600C* (EMBKGD) for this processor. 01/13/92 22700C* 01/13/92 23200C* 01/13/92 23300C ENDSR $DEFSR SRCE3 01/13/92 23500C************ SUBR * 07/25/91 ENPRO
SUBR
******************
ENDPRO

2,3600C* * 07/25/91 23700C* The ENDPRO subroutine ends the * 07/25/91 processor if a '*END' 23800C* request was hit or pro<:essing * 04/21/93 ended.

L3900C* * SRCE3 04/22/93 24000C********************************:k******************************

24100C* * SRCE3 04/22/93 24200C* INDICATORS USED . 99 * SRCE3 04/22/93 :?4300C* * SRCE3 04/22/93 24400C* EXECUTED FROM . MAINLN * SRCE3 04/22/93 :?4500C* * SRCE3 04/22/93 :5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 6 ;iOURCE FILE . . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC000 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 24600C**********************:k********~:*******************************

24700C* SRCE3 04/22/93 24900C* 07/25/91 25000C* 07/26/91 Delete the correct EM
background file record (EMBKGD) for 25100C* this job/user profile~job number. 07/26/91 25200C* 07/25/91 25300C MOVEL 'MMCOOOXJ' KJOB 07/26/91 25400C MOVEL$PUSER KUSER 02/05/92 25500C Z-ADD$PJOBN KJOBN 02/05/92 25600C* 07/26/91 25700C KEMBKG C13.AINEMBKGD 99 07/25/91 25800C *IN99 IFEQ *OFF 01/13/92 26000C EIJDIF *IN99-*OFF 07/25/91 26100C* 04/22/93 26200C* 04/22/93 Delete any Special records (*END, *RESET
or *INIT) from the 26300C* file for the specific job. Because these begin 04/22/93 '*' 26400C* the records will all appear at the beginning 04/22/93 of the file 26500C* so when a non -'*' entry is found, end the loop.04/22/93 26600C* 04/22/93 26700C *LOVAL SEiTLLGENCOM 04/22/93 26800C *IN99 DOUEQ*CN 04/22/93 26900C RI?AD GENCOM 99 04/22/93 27000C *IN99 IFEQ *OFF 04/22/93 27100C* 04/22/93 27200C* Check for a special record 04/22/93 27300C* 04/22/93 27400C ~ M~DVE ZCCENO QQCENO 04/22/93 27500C QQJOBN I FE,Q $PJOBN

27600C QQTYPE IF:EQ '*INIT' 04122/93 27700C QQTYPE ORDQ '*END' 04/22/93 27800C QQTYPE OREQ '*RESET' 04/22/93 27900C DI?LETFGENCOl 04/22/93 28000C ENDIF QQTYPE='*INIT' 04/22/93 28100C ErIDIF QQJOBN-$PJOBN 04/22/93 28200C* 04/22/93 28300C* Check if end of speciial records 04/22/93 28400C* 04/22/93 2,8500C I SUBSTQQTYPE:I QQTEMP 04/22/93 28600C QQTEMP IF1VE '*' 04/22/93 28700C UNL,CKGENCOM 04/22/93 8900C ErfDIF QQTEMP < > ' *' 04/22/93 C* 04/22/93 :L9100C ETfDIF *IN99=*OFF 04/22/93 :?9200C ErfDDO DOU *IN99=*ON 04/22/93 :?9300C* 07/25/91 :?9400C ENDSR ENDPRO SRCE3 07/25/91 :p738PW I V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 7 SOURCE FILE . . . . . . . . . . . . . . . . ;~LIBEM/MRPGSRC
)MEMBER . . . . . . . . . . . . . . . . . . . MMC000 ;iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 29600C************* 07/22/91 PROGEN
SUBR
****************
PROGEN
SUBR
*

29700C* * 07/22/91 29800C* The PROGEN subroutine processes the GENCOMDT 07/30191 file. *

29900C* * SRCE3 04/22/93 30000C**********************:k*********:*******************************

30100C* * SRCE3 04/22/93 30200C* INDICATORS USED . 98 99 * SRCE3 04/22/93 30300C* * SRCE3 04/22/93 30400C* EXECUTES . PRORCD RSTPRO * SRCE3 04/22/93 30500C* * SRCE3 04/22/93 30600C* EXECUTED FROM . MAINLN * SRCE3 04/22/93 30700C* * SRCE3 04/22/93 30800C***************************************************************

30900C* SRCE3 04/22/93 31100C* 07/22/91 31200C *IN99 DOWEQ*OFF 01/13/92 31300C* 07/22/91 31400C READ GR.NCOMDT 99 07/30/91 31500C* 02/03/93 31600C* If a shut down request is issued for 02/03/93 this job, and 31700C* the processor. 02/03/93 31800C* 02/03/93 32000C *IN98 IFEQ *O1V 02/03/93 32100C UNLCKCiENCOMDT 04/30/93 32300C ENDIF *IN98=*ON 02/03/93 32400C* 02/03/93 32500C *IN99 IFEQ *OFF 01/13/92 32600C* 07/26/91 32700C* The CE # is a combination of *RES~ET 10/07/92 or *END and the 32800C* job number if it is not a normal communications 07/29/91 entry.

32900C* The variable QQCEIVO is a dam structure 07/29/91 which breaks 33000C* into QQTYPE (*RE;iET or *END) and QQJOBN 08/05/91 (job number) 33100C* 07/29/91 33300C* 08/09/91 33400C* Check the CF # to determine if this is 08/09/91 an initialization 33500C* request. Check if the record corresponds 08/09/91 with this job.

33600C* Return to read another record. 08/09/91 33700C* 08/09/91 33800C QQTYPE IFEQ '*IPdIT' 33900C QQJOBN IFEQ $PJOBN 02/05/92 34000C DELETF(iENCOM 08/09/91 34200C UMCKGI?NCOMDT 06/19/92 34300C ENDIF QQJOBN=$PJOBN 08109/91 .'>738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 8 SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . 1VIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 34500C ENDIF QQTYPE='*INIT' 08/09/91 34600C* 07125/91 34700C* Check the CE # to determine if this is a doactivate07/25/91 request 34800C* The deactiviate request is job specit3c. Check 08/09/91 that the 34900C* request is for the current job. Delete the deactivate04/21/93 35000C* request so no other processors pick it up. End 04/21/93 the 35100C* program. If it is not the current job, return 04/21/93 to read 35200C* another record. 04/21/93 35300C* 07/25/91 35400C QQTYPE IFEQ '*END' 08/05/91 35500C QQJOBN IFEQ $F'JOBN 02/05/92 35900C UNLCKGENCOMD'1C 06/ 19/92 36000C ENDIF QQJOBN=$PJOBN 08/09/91 36200C ENDIF QQTYPE='*END' 08/09/91 36300C* 07/22/91 36400C* Check the CE # to determine if this is a reset 07/22/91 request 36500C* the reset records are job specific: -- check that07/25/91 the 36600C* request is for the correct job. 08/09/91 36700C* 07/22/91 36800C QQTYPE IFEQ '*lftESET' 08/05/91 36900C QQJOBN IFEQ $P'JOBN

37200C UNLCKGI:NCOMDT 06/19192 QQJOBN=$PJOBN 08/09/91 37500C ENDIF QQTYPE='*RESET' 08/09/91 37600C* 07/22/91 :37700C* If the record is not a reset, initializaition, 08/09/91 or deactivation :37800C* then process the record. 07/25/91 37900C* 07/25/91 :38000C EXSR PRORCD 07/25/91 :38100C* 04/20/93 :38200C SETOP 99 04/20/93 :38300C* 07122/91 :38400C ENDIF *IN99-*OFF 08/09191 38500C ENDDO DOW *IN99=*OFF 07122/91 38600C* 07/22/91 :38700C ENDSR PROGEN SRCE3 08/09/91 '38800C/SPACE 07/23/91 '38900************ 07125/91 PRORCD

******~***********
PRORCD
SUBR
*

:f9000C* * 07/23/91 :39100C* The PRORCD subroutine processes the GENCOM record07/25/91 *

:39200C* * SRCE3 04/22/93 _'i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 9 SOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 39300C************************************************************

39400C* * SRCE3 04/22/93 39500C* INDICATORS USED : 98 * SRCE3 04/22/93 39600C* * SRCE3 04/22/93 39700C* EXECUTED FROM . PROGEN * SRCE3 04/22/93 39800C* * SRCE3 04/22/93 39900C**********************~:*************************************

40000C* SRCE3 04/22/93 40200C* 05/12/92 40400C* 07/29/91 40500C* Retrieve the APPDEF record for the application 07/29/91 program 40600C* name/from release-modification level 07/29/91 from gencom 40700C* The APPDEF record will indicate the 07/29/91 initialization program 40800C* that must be called. First check the 08/05/91 current from 40900C* release-modification level. If no record 08/05/91 exists then find 41000C* a prior release-modiiucation levf;l. 08/05/91 41100C* 08/05/91 41200C* Loan the key fields: program name and 08/05/91 from rel-mod level 41300C* 07123191 41600C* 07/26/91 41700C* Use the set lower limit code to determine 08/05/91 if a record exists 41800C* that matches the key (indicator 98 will 08/05/91 be set on).

41900C* 07/29/91 42000C* KAPPD1 SETLLAPPDEF 98 08/05/91 42100C* 08/05/91 42200C* If 98 is on the the SETLL is positioned 08/05/91 before the record 12300C* the matches the key. Read the record. 08/05/91 '12400C* 08/05/91 42500C *IN98 IFEQ *ON 01/13/92 '42600C READ APPDEF 98 08/05/91 '42700C* 08/05/91 '12800C* If 98 is off then the SETLL is positioned 08/05/91 before the first '12900C* record greater than the key. Read previous 08/05/91 with the 13000C* program name to obtain the most recent 08/05/91 from rel-mod.

'13100C* 08/05/91 '13200C ELSE 08/05/91 '13300C KPGM REDPEAI'PDEF 98 08/05/91 43400C ENDIF *IN96-*ON 08/05191 <13500C* 02/05/92 '13600C* After the reads, if a record was not 02/05/92 found, 98 will be ON.

43700C* Get the default 'from rel-mod level' 02/05/92 from COMDEF, and use it ~I3800C* to retrieve an application description 02/05/92 from APPDEF.

~I3900C* 02/05/92 ~t4000C *IN98 IEEO *OPd 02/05/92 5738PW 1 V2R2M0 920615 S EU SOURCE LISTING 5/28/93 14:08:15 Page 10 SOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
PrIEMBER . . . . . . . . . . . . . . . . . . . IvIMC000 ~;EQNBR*...*...1...+...2...+...3...+...'4...+...5...+...6...+...7...+...8...+..
.9...+...0 44300C ENDIF *IN98-*ON 02/05/92 *

44500C* After the reads, if a record 08/05/91 was not .obtained then 98 will 44600C* be ON. Update GEN(:OM with status 08/05/91 62 to indicate that the 44700C* program failed trying to obtain 08/05/91 an APPDEF record.

44800C* 08/05/91 44900C *IN98 IFEQ *ON 01/13/92 45000C MOVE '62' ZCSTAT 08/05/91 45300C ENDIF *IN98-*ON 05/12/92 45400C* 05/12/92 45500C* At this point, the Program obtained 05/12/92 the correct APPDEF record.

45600C* 05/12/92 45700C* 05/14/92 Check if the originating entity exists in the Entity 45800C* File (ENTFIL). The entity is 05/12/92 the first 10 characters of 45900C* the general CE /t. If the entity 05/12/92 does not exist, set the 46000C* status to '63' to indicate no 05/12/92 ENTFII. record.

46100C* 05/12/92 46200C MOVELZ;CCENO QQENT 05/12/92 46300C QQENT CHAINEIdTFIL 98 05/12/92 46400C *IN98 IFEQ *ON 05/12/92 46500C MOVE '63' ZCSTAT 05/12/92 46800C ENDIF *IN98=*ON 05/12/92 46900C* 05/12/92 47000C* 05/12/92 If the originating entity can be found in ENTFIL, determine 47100C* if the entity files library 05/12/92 exists using CHKOBJ.

47200C* 05/12/92 If the QCMDEXC
fails, ohe CHKOBJ
failed, set the status 47300C* to '63' to indicate that the 05/12!92 Files Library does not exist.

47400C* 05/12/92 47500C MOVE *PtLANKS QQCMD 07/02/92 17600C QQCMD1 CAT EFFLIB QQCMD CHKOBJ OBJ(lib) 05/12/92 'f7700C QQCMD CAT QQCMD2:0 QQCMD OBJTYPE (*LIB) 05/12/92 '17800C CALL 'QCMDEXC' 98 05/12/92 '17900C PARM QQCMD 05/12/92 '18000C PARM QQLEN 05/12/92 <18100C *IN98 IFEQ *ON 05/12/92 '18200C MOVE '6:3' ZCSTAT 05/12/92 '18300C UPDATFGENCOM 05/12/92 'i8400C LEAVE 05/12/92 't8500C ENDIF *IN98=*ON 05/12/92 48600C* 07/26/91 '48700C* 08/05/91 Else, change the status to (submitted for processing) and '18800C* call the initialization program 08/05/91 found.

'18900C* 08/05/91 '19000C MOVE '50' ZCSTAT 08/05/91 _'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:15 Page 11 SOURCE FILE . . . . . . . . . . . . . . . . 7~LIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . IvIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 49300C CALL FI)1PGM PMCINT 98 10/07/92 49400C* 10/07/92 49500C*If the call fails (*INEQ is on), call rvIMC030 10/07192 to send a message 49600C*to the EM background message queue saying 10/07/92 that the 49700C*initialization program does not exiist. 10/07/92 49800C*Load $LITI with the Literal sequence # 10/28/92 for the name of 49900C*the program that doesn't exist (the: initialization 10/28/92 pgm), 50000C*and $LIT2 with the lateral sequence # for 10/28/92 the CE type 50100C*('General'). 10/28/92 50200C* 10/07/92 50300C *IN98 IFEQ *ON 10/07/92 50400C MOVE MODULE $MODCD 10/07/92 50500C MOVE '00469' $ERRNO MESSAGE #M00469 10/07/92 50600C MOVE ZCCENO $CENUM CE # 10/07192 50700C MOVE '00011' $LIT1 '/nit Program" 10107/92 50800C MOVE '00017' $LITZ 'General' 10/07/92 50900C CALL 'M:MC030' PMC030 10/07/92 51000C ENDIF *IN98=*ON 10/07/92 51100C* 05/12/92 51300C* 07/23/91 51600C***************

RSTPRO
SUBR
***************
RSTPRO
SUBR
*

51700C** 07/25/91 51800C*The RSTPRO subroutine resets the processor* 07/25/91 if a '*RESET' 51900C*request was hit * 07/25/91 52000C** SRCE3 04/22/93 52100C********************************:x******************************SRCE3 52200C** SRCE3 04/22/93 52300C*INDICATORS USED : 98 * SRCE3 04/22/93 52400C** SRCE3 04/22/93 52500C*EXECUTED FROM . PR'.OGEN * SRCE3 04/22/93 52600C** SRCE3 04/22/93 52700C********************************:k******************************SRCE3 52800C* SRCE3 04/22/93 13000C* 07/25/91 :53100C*Delete the deactivate request so that no 07/25191 other processors pick :13200C*it up 07/25/91 :13300C* 07/25/91 :13400C DELETF(iENCOM 08/07/91 :13500C* 07/25/91 :13600C*Reset the file 07/25/91 :13700C* 07/25/91 :13800C *LOVAL SETLLGE;NCOMDT 98 08/09/91 :13900C* 08/09/91 °i738PW 1 V2R2M0 920615 S_EU SOURCE LISTING 5/28/93 14:08:15 Page 12 SOURCE FILE . . . . . . . . . . . . . . . . ~CLIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . rvIMC000 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 54000C* 08/09/91 If the reset fails, there are no records in the file 54100C* since this positions the pointer to t:he end of 08/09/91 the 54200C* file, no more records will be read. An initialization08/09/91 54300C* record must be written give the reset a record 08/09/91 to 54400C* position on. 08/09/91 54500C* 08/09/91 54600C *IN98 IFEQ *ON 01/13/92 54800C MOVEL "*INIT' ZCCENO 08/09/91 54900C MOVE $PJOBN ZCCENO 02/05192 55000C MOVE '10' ZCSTAT 08/09/91 55100C MOVE $PUSER ZCUSER 02/05/92 55300C *LOVAL SETLLGENCOMDT 08/09/91 55400C* 08/22/91 55500C* 08/22/91 If the reset fails, update the EM
Background file (EMBKGD) 55600C* for this job/user profilc~/job numbex to indicate08/22/91 the 55700C* number of failed resets. 08/22/91 55800C* 08/22/91 55900C MOVEL'I~iMC000XJ'KJOB 08/22/91 56000C MOVEL$PUSER KUSER 02105/92 56100C Z-ADD$P'JOBN KJOBN 02/05/92 56200C* 08/22/91 56400C *IN98 IFEQ *OFF 01/13/92 56700C ENDIF *IN98=*OFF 08/22/91 56800C ENDIF *IN98=*ON 08/09/91 56900C* 07/25/91 ****E1VD OF SOURCE ****

- '3 J
9~MMC020$
;b; MMC020 Local Cornmunicatiom Processor Program ;ql;;r;
;hi;A. The Local Communications Processor Program runs in background off of LOCCOMDT, the logical view of the Local (:ommunications Entry File (LOCCOM) by date/time last maintenance. New records may have been writeen to this file or existing records may also have had their statuses changed by various communications programs. This program submits the CL
Procedure or calls a transfer program to satisfy the communications entry, then updates the LOCCOMDT record with the appropriate status. ;ql;;hx;
id; i. Process a loop to retrieve records from LOCCOMDT. This is accomplished by reading through LOCCOMDT with the READ operation. For each record retrieved, continue processing in step 2.
End the program as described in step 2D(iii) when a shut down request is detected, for example, when the system shuts down or when the job is ended by using a controlled end job (ENDJOB) command. ;ql;
~tint&
Design Note: Since the OD program has overriden LOCCOMDT, specifying the end of file delay, there is no additional coding necessary within the RPG program to enable the background function.
Design Note: There is no guarantee that the program can detect a shut down request before the job is ended due to the end of file delay. As a result, the EMBKGD record may or may not get deleted, depending on whether the job is ended normally or abnormally. In any cases, the EMBKG:D record w ll be deleted eventually either by this program or by MMM140.
Programmer Note: We were unable to use an open query file on a file overridden with the end-of file delay parameter specified. The problem is that the OVRDBF (override data base file) command has many parameters. However, the OPNQRYF (open query file) will only recognize a few of the parameters (TOFILE, MBR, LVLCHK, WAITRCD, SEQONLY, INHWRT, SHARE); all of the rest arf: ignored. Neither the compiler nor a program run will indicate this happened. We discovered the quirk because the fih° no longer functioned as we expected it to under the end-of file delay fimction. The solution was a logical file with a select/omit line.
&:end&
;id; 2. The logical file has selected only those conmmnications entries status 15 and 16 (specific entries ready for immediate processing). There is no need to check the status here. ;ql;
;id; A. LOCCOMDT records with status 15 are communications entries that were initiated on this system, while status 16 indicates those initiated on another system. ;ql;
;id; B. Before continuing, check the CE # for this record. If it is '*INIT,' then this is the dummy record indicating that the last reset was performed on an empty file. This required us to enter a dummy record that will allow the reset to work.
;id; i. Check that the initialization is for this job number. The CE # will consist of the *INIT in position 1-6 of the CE # and the job number in position 10-l5. The job number was passed by MMC020XJ. ;ql;
;id; ii. Since the initialization record is job specific and has already fulfilled its purpose, delete the record from LOCCOMDT if the job number corresponds to this job. ;ql;
;id; iii. Return to step 1 to process the next record in the file. ;ql;
;id; C. Before continuing, check the CE # for this record. If it is '*RESET,' then this is the dummy record indicating that the printer to this file should be reset to the beginning. ;ql;
;id; i. Check that the reset is for this jolb number. The CE # will consist of the *RESET in position 1-6 of the CE
# and the job number in position 10 15. The job number was passed by MMC020XJ.
;ql;
;id; ii. Since the reset record is job specific, delete the record from LOCCOMDT if the job number corresponds to this job. ;ql;
;id; iii. If the CE # is '*REf~ET,' perform a SETLL to reset the pointer to the beginning of LOCCOMDT. ;ql;

;id; iv. If the CETLL failed, this indicates that there are no records in the file. Since the pointer is set at the end of the file on a failed SETLL. the end-of-file delay is no longer in effect and the program will end. To handle this situation, the program will write an ':INIT' (initialization) records with a date and time of *LOVAL. The SETLL
will then be performed again. Since a record was just written, the SETLL will work and the pointer is positioned at the beginning of the file again. ;ql;
;id; v. If the SETLL failed, add to the reset field in EMBKGD (BGRSET) and update the record. This field will keep track of how many failed resets were encountered. A failed reset is one where the reset brings the user to the beginning of an empty file. This field will be used at implementation and will be helpful in determining the frequency needed for the resc;t. ;ql;
;id; vi. Return to step 1 to process the next record. ;ql;
;id; D. Now check to see if this is the deacaivation record, designated by a CE # of '*END.'. ;ql;
;id; i. Check that the deactivation record is for this job number. The CE #
will consist of the *END in position 1-4 of the CE # and the job number in position 10-15. The job number of the current job was passed by MMC020XJ.
:ql:
;id; ii. Since the deactivation record is job specific, delete the record from LOCCOMDT if the job number corresponds to this job. ;ql;
;id; iii. If the CE # is '*END,' then this program should end immediately, without processing any more LOCCOM
records. Prior to ending the program, delete the Enterprise Management Background File (EMBKGD) record found for 'MMC020XJ,' the user (passed from MMC020XJ) and the job number (passed from MMC020XJ). ;ql;
;id; 3. The record is not a reset or deactivation record. Therefore, process the record. ;ql;
&:int&
Design Note: The appropriate distributed files must be copied from the requesting entity to the satisfying entity, prior to initiating the job request. This should only be done if the entity for distribution is NOT the same as the requesting entity. If tt~.ey are the same, they use the same files, so no distribution is necessary.
(For example, if the ATP Files are to be built in many entities, including the requesting entity, it is first necessary to send copies of the GPLDA Distribution File, GFDIST, to each system involved so that the job won't bomb. However, it is not necessary to send GPDIST to the requesting system, since it is already there). It is also not necessary if the saatus of the LOCCOM
record is 16 (initiated remotely); in this case, the data transfer files have already been loaded from the requesting system. (For example, say the GPDIST record and remote CE have been sent to a remot system, where the remote CE is now a local CE with status 16. The GPDIST record is already on that s~~stem, so it is not necessary to attempt to send it there again). If either the entities are the same or the LOCCOM status is 16, skip the rest of the logic in step 3, and continue with step 4 or 5, depending on the type of application.
&end&
;id; A. Retrieve the APPDEF record for the application program name/from rel-mod level/to rel-mod level in LOCCOM. To obtain the correca Application Definition file record for this record call the $APPDF standard subroutine. ;ql;
;id; i. If $APPDF fails in locating the correct APPDEF record. Update LOCCOM
with status '62' to indicate that the LOCCOM record could not be processed as no APPDEF record was found. Return to step 1 to read the next record. ;ql;
;id; B. If the LOCCOM application type (i:LTYPE) is 'CD' (decentralized distribution) or 'CN' (consolidation), entity level files will be used. W'e have to clheck to see if the target entity (ZLENT) exists in the Entity Definition File (ENTFIL). If it doesn't exist, update the local CE status to '63' and return to step 1 to process the next record. If it exists, determine if the entity files library (E,FFLIS) retrieved above from the ENTFIL record exists by using the CHKOBJ CL command. If the entity files library doesn't exist, update the local CE status to '63' and return to step 1 to process the next record. Otherwise, proceed to step 3C below. ;ql;
;id; C. Change the status from ''15' to '55' or '16' to '56'. To indicate that the record is picked up by this processor.
This is important in the case of multiple pr«:essors; each record should be accessed by only one processor. Update the LOCCOM file with the changed status. ;ql;
;id; D. If the LOCCOM application type is 'CD' (centralized distribution) or 'DD' (decentralized distribution), the sending transfer program should be called to distribute the appropriate files) for this application. Both centralized and decentralized distribution functions involve sending information to other systems to be updated there. ;ql;
;id; i. If the status is '55', then call the sending transfer program from APPDEF to load the data transfer files.
This is not done for status 'S~5' since this status indicates that the record originated in a RENCOM record.
Therefore, the data transfer Tiles have already been loaded. Load the following parameter list before calling the sending transfer program (from APPDEF). ;ql;
;id;PMCSND PLIST ;ql;

;id;PARM PSEND lA 'S' (send) ;ql;

;id;PARM PCENO 15Acommunications entry fi ;ql;

;id;PARM PRORL lA 'L' (local) ;ql;

;id;PARM PGNRC l0Aname of generic transf ;ql;
proc ;id;PARM PERROR lA error code ;ql;

;id; ii. If the sending transfer program does not exist, call MMC030 to send a message to the EM background message queue saying that the sending transfer program for this local CE does not exist. Return to step 1 to process the next record. ;ql;
&:int Design note: We are not providing any recovery mechanisms to the user if the sending transfer program, the receiving transfer program, the resource extraction program, the GPL,DA sending program, or the GPLDA reformatting program does not exist.
The local CE status will remain '55' or '56', thus it will not be picked up by any local communications processors again even a~ er the problem is fixed. The user should cancel this local CE, and he/she has to create another CE to perform the job again.
&:end ;id; iii. For both status ('55' and '56') call the receiving transfer program to bring the information assembled in the data transfer files to the appropriate entity files. Load the following parameter list before calling the receiving transfer program. The PELIIB parameter should be loaded with the entity files library (EFFLIB) retrieved in step 3B above for 'DD' type applications, and it should be blank for 'CD' type applications. ;ql;
;id; PMCRCV PLIST ;ql;
;id; PARM PCENO 15A coimmunications entry JI ;ql;
;id; PARM PELIB l0A enitity files library ;ql;
;id; iv. If the receiving transfer program does not exist, call MMC030 to send a message to the EM background message queue saying that the receiving 'transfer program for this local CE
does not exist. Return to step 1 to process the next record. ;ql;
;id; E. If the LOCCOM application type is 'CN' (consolidation), the next step is to submit the actual job queue procedure of the function retrieviing the requested information. This involves executing the SDMJOB command, essentially passing as parameters the value of the application field in LOCCOMDT, along with the other usual parameters. This tells the job queue what program to submit, the processing option to pass, and what GPDIST record to retrieve. ;ql;
;id; i. First call the GPLDA sending transfer program for both requesting and non-requesting entities if the CE is initiated on the local system (status = '5:5'). Load the following parameter list: ;ql;
;id;PMCSND PLIST ;ql;

;id;PARM PSEND lA 'S' (send) ;ql;

;id;PARM PCENO 15Acommunications entry ~l ;ql;

;id;PARM PRORL lA 'L" (local) ;ql;

;id;PARM PGNRC l0Aname of generic transfer proc ;ql;

;id;PARM PERROR lA error code ;ql;

;id; ii. If the GPLDA sending transfer program does not exist, call MMC030 to send a message to the EM
background message queue saying that the GPLDA sending transfer program for this local CE does not exist.
Return to step 1 to process the next record. ;ql;
;id; iii. Next, if the GPLDA sending transfer program was called successfully, call the GPLDA reformatting program if the CE is locally initiated (status '55') and if it is for a non-requesting entity (ZLENT not equal to ZLOREN) with the following; paramaters: ;ql;
;id; PMCRCV PLIST
;id; PARM PCENO 15A communications entry # ;ql;
;id; PARM PELIB l0A entity files library ;ql;
;id; iv. If the GPLDA reformatting program does not exist, call MMC030 to send a message to the EM
background message queue ssrying that the GPLDA reformatting program for this local CE does not exist. Return to step 1 to process the next record. ;ql;
;id; v. Next, if both the GP:LDA sending transfer program and the GPLDA
reformatting program were called successfully, call the extraction program if the CE is locally initiated (status '55') and if it is for a non-requesting entity (ZLENT not equal to ZLOREN). The requesting entity already contains the extraction file, and remotely initiated CE's already have the data transfer file loaded by the requesting system's remote CE processor. The extraction program name is kept in APP1DEF. If the extraction program name in APPDEF is blank, then it is not necessary to call the resource extraction program for this application. If the resource extraction program name is not blank, call the resource e:Ktraction program with the following parameters: ;ql;
;id;PMCEXT PLIST ;ql;

;id;PARM PSEND lA 'S" (send) ;ql;

;id;PARM PCENO 15Acommunications entry # ;q];

;id;PARM PRORL lA 'L' (local) ;ql;

;id;PARM PGNRC l0Aname of genric transfer ;ql;
proc ;id;PARM PERROR lA error code ;ql;

;id; vi. If the resource extracaion program does not exist, call MMC030 to send a message to the EM background message queue saying that the resource extraction program for this local CE
does not exist. Return to step 1 to process the next record. ;ql;
;id; vii. If the CE is remotely initiated (status = '56'), call the GPLDA
reformatting program to reformat the GPLDA sent from the originating entity and to load the GPLDA into GPDIST file in the entity files library in the target entity. Call the GPLD.A reformatting program with the following parameters: ;ql;
;iii; PMCRCV PLIST ;ql;
;id; PARM PCENO 15A communications entry # ;ql;
;id; PARM PELIB l0A entity files library ;ql;
;id; viii. If the GPLDA reformatting program does not exist, call MMC030 to send a message to the EM
background message queue saying that the GPLDA reformatting program for this local CE does not exist. Return to step 1 to process the next record. ;ql;
;id; ix. The job queue to which the job should be submitted should be retrieved from the Communications Definition File (COMDEF). If the status is '55', the job queue will be CQLSJQ, the local job queue for locally initiated CE #. If the status is '56', the job queue will be CQRMJQ, the remote job queue. ;ql;
;id; x. If the CE status is 'Sti', check to see if a System cross-reference file (SYSXRF) record exists for the local system to the LOCCOM originating system (CGSYS/ZLORSY). If one exists, proceed to step (xi). Otherwise, update the CE status to '65' (CE not processed - no SYSXRF record found) and do not submit the job queue procedure. ;ql;
;id; xi. If the job is running in the requesting entity, pass the LOCCOM user profile (ZLUSER) into the user profile parameter in MMC022X. Otherwise, pass 'MARCAM' as the user profile parameter. This will be the user profile used when the job queue procedure is submitted by MMC022x. ;ql;

;id; xii. When submitting the job to the job queue, the entity files library will be added to the library list by MMC022X, so that the correct versions of the tiles will be used. Load the entity files library retrieved from ENTFIL in step 3B into the PELIB parameter for calling MMC022X. ;ql;
;id; xiii. Call MMC022X to submit the: job. MMC022X has six parameters: the job name (Application program name from LOCCOM (ZLP(JM) + 'XJ'), the job queue (see above) and the job number, the entity files library, the user profile, and the GPLDA key from LOCCOM. The program is passed the job name, job queue, GPLDA key and entity files library and returns the job number of the submitted job. ;ql;
;id; xiv. When control is reourned from MMC022X, update the LOCCOM record with the job number, job name, job start time, job start date a.nd user profile that submitted the job.
MZM620X is called to retrieve the current system date in YMD format and the current system time to be loaded into the LOCCOM job start date and job start time fields. These fields will be used fon informational purposes only. ;ql;
;hi;B. File Usage ;ql;
;id;APPDEF IF Application Definition File ;ql;

;id;COMDEF IF Communication Definition File> ;ql;

;id;EMBKGD OF Enterprise Management Background ;ql;
File ;id;ENTFIL IF Entity Filt: ;ql;

;id;LOCCOM OF Local Connmunications Entry File ;ql;

;id;LOCCOMDT OF Logical View of LOCCOM by Dt/Tm ;ql;
Last Mt ;id;SYSXRF IF System Cross-Reference File ;ql;

;ql;;hx;
$END$

'~738PW 1 V2R2M0 920615 SI?U SOURCE LISTING 5/28/93 14:08:24 Page 1 SOURCE FILE . . . . . . . XLII3EM/MRPGSRC
rrIEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 100 H***********************************************************************

200 H* * 07/22/91 300 H* Release - 03 Mod Level - 10 * 06/26/92 400 H* * 07/22/91 500 H* * 07/22/91 H* * 07/22/91 700 H* * 06/26/92 800 H* * 07/22/91 900 H* MODULE: Enterprise Management * 07/22/91 1000H* * 07/22/91 1100H* PROGRAM NAME: MM0020 Local Communications* 07/29/91 Processor 1200H* Program * 07/29/91 1300H* * 07/22/91 1400H* FUNCTION: This program processes the Local* 07/29/91 1500H* Communication 1?ntry File (LOCCOM) * 08/05/91 1600H* * 07/22/91 1700H* CALLING PROGRAM:MM0022XJ - XJ Procedure * 07/29/91 to open all 1800H* logical, work and open query files * 07/22/91 1900H* * 07/22/91 2000H* CALLED PROGRAM: MM0022R:J - program to * 01/27/92 submit consolidated 2100H* job queue procedure * 01/27/92 2200H* MMRUSO Communications Message Sending * 10/07/92 2300H* Program * 10/07/92 2400H* MZIvI620X - Retrieve Current Date and * 09/28/92 Time 2500H* Procedure * 09/28/92 2600H* Sending Transfer Program * 01/27/92 2700H* Receiving Transfer Program * 08/05/91 2800H* GPL,DA Sending Transfer Program * 03/10/92 2900H* GPL.DA Reformatting Program * 03/10/92 3000H* * 10/07/92 3100H* * 10/14/92 /COPY
INPUT:
NOPdE

3200H* * 07/22/91 3300H* * 01/27192 /COPY
ROUTINES:
$A,PPDF
-Application Definition File 3400H* retrieval subroutine * 01/27/92 3500H* * 01/27/92 3600H**********************>.************************************************

3700H* PROGRA::1>I DESCRIPTION * 07122/91 3800H***********************************************************************

3900H* * 07/22/91 4000H* This program is the Local Communications * 07/29/91 Processor. It 4100H* reads through the LOC(:OM file and calls * 01/27/92 the appropriate 4200H* programs. If the LOCC'OM record! is for * 01/27/92 a distribution 4300H* (either centralized or decentralized) * 01/27/92 call the sending 4400H* transfer program, if needed, and the receiving* 01/27/92 transfer 4500H* program as defined in the Applications * 01/27/92 Definition File 4600H* (APPDEF). If the LOC'COM record is for * 01127/92 a consolidation, call 4700H* MMC022X to submit the appropriate procedure* 01/27/92 for the 4800H* LOCCOM record. The LOCCOM file was defined* 01/27/92 with the end 4900H* of file delay. Therefore, a deactivation * 01/27/92 record must be 'i738PW1 V2R2M0 920615 S:EU SOURCE LISTING 5/28/93 14:08:24 Page 2 SOURCE FILE . . . . . . . XLIIBEM/MR.PGSRC
PvIEMBER. .. .. ...... MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5000H* encountered to end the processor. A reset record01/27/92 may he *

5100H* hit to reset the pointer. * 01/27/92 5200H* * 01/27192 5300H*******************************:k***************************************07 5500F**********************:~********~:***************************************0 5600F* FUNCTION OF INDICATORS * 07/22/91 5700F**********************:k********~:***************************************0 5800F* * 07122/91 5900F* 98 - General Indicator * 08/05/91 6000F* 99 - General Indicator * 07/22/91 6100F* * 07/22/91 6200F********************************:***************************************07 6400F**********************>F*********:***************************************0 6500F* * 07/22/91 6600F* FILE ;SPECIFICATIONS * 07/22/91 6700F* * 07/22/91 6800F**********************;~************************************************07 6900F* 07/22/91 7900F FLOC:COM KRENAMEQLOCCOM 08/07/91 8500E**********************~:****************************************07/22/91 86~E* * 07/22/91 8700E* ARF:AY D1_?FINITION * 07/22/91 8800E* * 07/22/91 8900E**********************~:****************************************07/22/91 9000I***********************:*****************************************07/22/91 9100I* * 07/22/91 9200I* IPdPUT SPECIFICATIONS * 07122/91 9300I* * 07/22/91 9400I***********************:a********:~:*******************************07/22/9 9500I* 10/14/92 9600I* Externally described data structure to define 10/14/92 the parameter 9700I* list for the EM message sending program, MMC030 10/14/92 9800I* 10/14/92 :i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 3 SOURCE FILE . . . . . . . XLIIBEM/MR.PGSRC
rvIEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 9900I$MC030 E DSDSMC030 10/14/92 10000I* 07/26/91 10100I* Data Structure to break down the C'.ommunications 01/27/92 Entry Number 10200I* which consists of the Number, *RESET, 01/27/92 *INIT or *END and the 10300I* job number 01/27/92 I* 01/27/92 10800I* 01/27/92 0900I* Data Structure to break down the release-modification 01/27/92 level 11000I* field which looks similar to 04-00. 01/27/92 11100I* 01/27/92 11500I* 05/12/92 11600I* NAMED CONSTANTS 05/12/92 :'.1700I* 05/12/92 :.1800I 'CHKOBJ OBIf(' C QQCMDI 05112/92 ;.1900I ') C>BJTYPE(*LIB)' C QQCMD2 05/12/92 1.2000I* 10/07/92 1.2100I/SPACE 3 07/22/91 1.2200C**********************:~********~:*******************************

1.2300C* * 07/22/91 12400C* CAL(~ULATION SPECS * 07/22/91 12500C* * 07/22/91 12600C**********************:k********~:*******************************

12700C* * 07122/91 12800C**********************:k********~:*******************************

12900C* M A'.1 N L I N E', * 07/22/91 13000C**********************>k********:r:*******************************

13100C* * 07/22/91 13200C* The MAINLINE is executed once. It calls 01/27/92 the subroutine *

13300C* PROLOC to process LOCOM (the Local Communications 01/27/92 File). *

13400C* The program ends when a 'deactivate' 01/27/92 record is encountered *

13500C* in PROCOM. The subordinate ENDPRO will 04/21/93 perform any *

13600C* final processing and the program ends 04/21/93 in the MAINLINE. *

13700C* * SRCE3 05/20/93 13800C**********************a.****************************************SRCE3 13900C* * SRCE3 05/20/93 14000C* INDICATORS USED . LR * SRCE3 05/20/93 14100C* * SRCE3 05/20/93 14200C* EXECUTES . ENDPRO PROLOC * SRCE3 05/20/93 14300C* * SRCE3 05/20/93 14400C**********************~:****************************************SRCE3 14500C* SRCE3 05/20/93 14600C *ENTRY PL,IST 07/25/91 14700C PARM $PJOBN 02/05/92 'i738PW1 V2R2M0 920615 SIU SOURCE LISTING 5/28/93 14:08:24 Page 4 SOURCE FILE . . . . . . . XLI13EM/MRPGSRC
MEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 14800C PARM $PUSPF 02/05/92 14900C* 04/21/93 15000C* Process the Local Communication File 04/21/93 15100C* 04/21193 15200C E:~SR PROLOC 07/29/91 15300C* 04/21/93 .5400C* Performs any necessary functions before 04/21/93 ending :.5500C* 04/21/93 :.5600C E:~SR ENDPRO 04/21 1.5700C* 07/22/91 1.5800C SETON LR 07/30/91 1.5900C Rl?TRN 07/30/91 C* 07/22/91 1.6200C********* *INZSR SUBR ************** *INZER 03/02/92 SUBR *

16300C* * 07/22/91 16400C* The purpose of the *INZER subroutine is 01/27/92 to perform the *

16500C* initial calculations that need to be done 01/27/92 on the initial *

16600C* call of the program * 01/27/92 16700C* * SRCE3 05/20/93 16800C**********************~k*********:*******************************SRCE3 16900C* * SRCE3 05/20/93 17000C* INDICATES USED . 99 * SRCE3 05/20/93 17100C* * SRCE3 05/20/93 17200C**********************~.****************************************

17300C* SRCE3 05/20/93 17400C *INZSR BEGSR 03/02/92 17500C* 07/22/91 17600C* Initialize the standard variables. 07/22/91 17700C* 07/22/91 17800C* M~DVE 'M MODULE Module 10/07/92 17900C* M~DVELISI6870 $PGM Program name 10/07/92 18000C* 05/12/92 18100C* Put the length of the QCMDEXC string 05/12/92 18200C* 05/12/92 18300C Z-ADD36 QQLEN Length 05/12/92 18400C* 08/01/91 18500C* Access COMDXF to obtain the job queue 08/01/91 information for 18600C the submit job command for type 'Consolidated' 08/01/91 LOCCOM

18700C* Local communications records. This file 08/01/91 has only one 18800C* record therefore it needs to be read only 08/01/91 once 18900C* (similar to the tailoring files) 08/01/91 19000C* 08/01/91 19100C 1 CHAINCOMDEI= 99 08/01/91 19200C* 07/22/91 19300C ENDS;R *INZSR SRCE3 03/02/92 19500C********* 01/27/92 $DEFSR
SUBR
**************
$DEFSH
SUBR
*

19600C* * 01/27/92 5~738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 5 SOURCE FILE . . . . . . . XLI13EM/MRPGSRC
rrIEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1.9700C* The purpose of the $DEFSR subroutine * 01/27/92 is to define the 1.9800C* program fields * 01/27/92 1.9900C* * SRCE3 05/20/93 ;0000C**********************:~********~:****************************
*** SRCE3 05/20/93 20100C* * SRCE3 05/20/93 x0200C* INDICATORS USED . none * SRCE3 05/20193 x0300C* * SRCE3 05/20/93 x:0400C**********************:e********~:**************************** ***

;0500C* SRCE3 05/20/93 x;0600C $DEFSR BI?GSR 01/27/92 x:0700C* 01/27/92 x;0800C* Define the standard variables. 01/27/92 2;0900C* 01/27/92 2;1000C MOVE *BLANKS MODULE 1 Module 10/07/92 (.1100C MOVE *BLANKS $PGM 8 Program name 10/07/92 (,1200C MOVE *BLANKS QQTEMP 1 Temporary Var 04/22/93 21300C* 05/12/92 21400C MOVE *BLANKS QQCMD 36 QCMDEXC command05/

21500C Z- ADDO QQLEN 155Length 05/12/92 21600C* 05/12/92 21700C* *LIKE DEFN the program variables 05/12/92 21800C* 05/12/92 21900C *LIKE DI?FN EFFLIB QQFLIB Entity Files 05/12/92 lib 22000C* 01/27/92 22100C* Set up plist for calling the 01/27/92 sending transfer program 22200C* or the GPLDA sending transfer 03/10/92 program 22300C* 01/27/92 22400C PMC1?ND PL,IST 01/27/92 22500C PARM PSEND 1 Indicate Send 01/27/92 22600C PPvRM PCENO Comm Entry # 01/27/92 22700C PAvRM PRORL 1 Indicate Local 01/27/92 22800C PAvRM PGNRC Generic Transf 01/27/92 22900C PA~RM PERROR 1 Error Code 03/11/92 23000C* 01/27/92 23100C Get up plist for calling and 01/27/92 receiving transfer program 23200C* on the CPLDA. reformatting program 03/10/92 23300C* 01/27/92 23400C PMCRCV PL,IST 01/27/92 23500C PA,RM PCENO Comm Entry # 01/27/92 23600C PA,RM PELIB Ent. Files Library05/12/92 23700C* 02/05/92 23800C* Get up plist for calling and 02/05/92 resource extraction program 23900C* 07/05/92 24000C PME?;T PL,IST 02/05/92 24100C PA,RM PEEND Indicate Send 02/05/92 24200C PA,RM PCENO Comm Entry # 02/05/92 24300C PA,RM PRORL Indicate Local 02/05/92 24400C PA,RM PGNRC Generic Transf 02/05/92 24500C PA,RM PERROR Error Code 03/11/92 5738PW1 V2R2M0 920615 SI?U SOUR;C:E LISTING 5/28/93 14:08:24 Page 6 SOURCE FILE . . . . . . . XLIBEM/MR:PGSRC
MEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 24600C* 01/27/92 24700C* Set up plist 01/27/92 for calling the submit job program (MMC022X) 24800C* 01/27/92 24900C PMC022 PL,IST 01/27/92 25000C PARM PJNAME Job Name 01/27/92 25100C PARM PJOBQ Job queue 01/27/92 25200C PARM PJOBD lob Description04/21/93 25300C PARM PJOBN Job Number 01/27/92 25400C PARM PELIB Entity Library01/28/92 25500C PARM PUSER User Profile 05/03/93 25600C P?~RM PGPKY GPLDA Key 05/03/93 25700C* 10/07/92 25800C* Set up plist 10/07/92 for calling MMC03(), the Communications Message 25900C* Sending Program. 10/07/92 26000C* 10/07/92 26100C PMC030 PL,IST 10/07/92 26200C PARM $MC030 10/07192 26300C* 09/28192 26400C* Set up plist 09/28/92 for calling the retrieve date and time 26500C* procedure (MZM620X) 09128/92 26600C* 09/28/92 26700C PZMEi20 PL,IST 09/28/92 26800C PA,RM PDATE Current Date 09/28/92 26900C PA,RM PTIME Current Time 09/28/92 27000C* 01/27/92 27100C* *LIKE DEFN the &plist variables 04/20193 klist and 27200C* 01/27/92 27300C *LIKE DEFN BGJOBN$PJOBN Job Number 09/21/92 27400C *LIKI? DEFN BGUSKR$PUSPF User Profile 09/21/92 27500C *LIKI? DI?FN PEPRELKFREL From rel-mod 01/28/92 lv 27600C *LIKE DI:FN BGJOBKJOB Job Name 09/21/92 27700C *LIKI: DEFN BGJOBNKJOBN Job Number 09/21/92 27800C *LLKE D)?FN PXLSYSRLSYS Local System 09/21/92 27900C *LIKE DEFN PDPGM KPGM Application 09/21/92 Pgn 28000C *LIKE DEFN PXRENTKRENT Remote Entity05/20/93 28100C *LLKI? DI?FN FXSYSKBSYS Remote System09/21/92 28200C *LIKI? D)?FN FDTRELKTREL To rel-mod 01/28/92 levl 28300C *LIKI? DEFN BGUSERKUSER User Profile 01/28/92 28500C ALIKE DEFN the 09/21/92 plist parameters 28600C* 09/21/92 28700C *LIKI? DEFN ZLCENOPCENO Comm Entry 01128/92 28800C *LIKE DEFN ZLSDATPDATE Current Date 09/28/92 28900C *LIKI? DEFN PFFLIBPSLIB Entity Library09/22/92 29000C *LIKI? DEFN FDGPGMPGNRC Generic Trans01/28/92 P

29100C *LIKI: DEFN ZLGPKYPGPKY GPDLA Key 09/21/92 29200C *LIKI? DI:FN ZLGPNMPJNAME Job Name 09/21/92 29300C *LIKI? DL?FN ZI,JBNOPJOBN Job Number 01/27/92 29400C *LIKE DI?FN CQRSKCPJOBQ Job queue 09/21/92 5738PW 1 V2R2M0 920615 S13U SOURCE LISTING 5/28/93 14:08:24 Page 7 SOURCE FILE . . . . . . . XLII3EM/MRPGSRC
rrIEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 ::9500C *LIK:E DIEFN CQJOBD PJOBD Job Description04/21/93 :;9600C *LIK:E D1EFN ZLTMNT PTIME Current Time 09/28/92 29700C *LIK:E DIEFN ZLUSER PUSER User Profile 05/03/93 x;9800C* 01127/92 x9900C* Set up Key list for rcxrieving ini-'ormation 01/27/92 from the ..0000C* the Application Definition tale 01/27/92 (APPDEF) ..0100C* 01/27/92 .0200C KAPPDE KLIST 01/27/92 .0300C Kl?LD KPGM 01/27/92 ..0400C KlLD KFREL 01/27/92 '0500C KlLD KTREL 01/27/92 .0600C* 01/27/92 0700 C* Set up Key list for deleting a re<;ord 01/27/92 in the background file x:0800C* (EMBKGD) for this processor. 01/27/92 ..0900C* 01/27/92 31000C KEM:BKG KI_IST 01/27/92 31400C* 01/27/92 31500C* Set up Key list for accessing the 09/21/92 system cross-reference file 31600C* (SYSXRP). 09/21/92 31700C* 09/21/92 31800C KSYS~XR KI_IST 09/21/92 31900C KFLI) KI_SYS 09/21/92 32000C KFLI) KRSYS 09/21/92 32100C KFLI> KItENT 05/20/93 32200C* 09/21/92 32300C ENDSR $DEFSR SRCE3 01/27/92 MMDDSSRC, $Al'PDF

32700C*************** * 08/01/91 CONSOLE
SUBR
"***********
CONSOL
SUBR

32800C* * 08/01/91 32900C* The CONSOL subroutine processes * 08/01/91 the LOCCOM records of 33000C type 'CN'- consolidated. The job * 01/27/92 queue procedure for 33100C the application which handles all * 01/27/92 sending of data is 33200C* submitted by I~IMC022. * 01/27/92 33300C Consolidation involves gatherin~; * 08/01/91 all the information from 33400C* the selected records to be used * 08/01/91 in a consolidated 33500C* report of inquiry. * 08/01/91 33600C* * SRCE3 05/20/93 33700C**********************~:****************************************

33800C* * SRCE3 05/20/93 33900C* INDICATIONS USED : 98 * SRCE3 05/20/93 34000C* * SRCE3 05/20/93 34100C* EXECUTED FROM . PRORCD * SRCE3 05/20/93 34200C* * SRCE3 05/20/93 34300C**********************~:****************************************

5738PW 1 V2R2M0 920615 SEU SOUR:(:E LISTING 5/28/93 14:08:24 Page 8 SOURCE FILE . . . . . . . XLIBEM/MR:PGSRC
MEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 34400C* SRCE3 05/20/93 34500C CON;iOL BEGSR 08/01/91 34600C* 09/21/92 34700C* Do one time. 09/21/92 ?4800C* 09/21/92 ?4900C DO 1 09/21/92 35000C* 01/28/92 35100C* For locally initiated :LOCCOM necord: 07/01/92 ?5200C* - call the GPI,DA sending transfer program to 07/01/92 set up 35300C* the GPDIST records. 07/01/92 35400C* 07/01/92 35500C ZLST'AT IFEQ '55' 07/01/92 ?5600C* 07/01/92 35700C MOVE 'S' PSEND 01/28/92 ?5800C MOVE ZLCENO PCENO 01/28/92 ?5900C MOVE 'L' PRORL 01/28/92 ?.6000C MOVE PDGPGM PGNRC 03/11/92 ?6100C MOVE '0' PERROR 03/11/92 ..6200C CALL FDFPGM PMCSND 98 10/07/92 ?6300C* 10/07/92 ..6400C* - if the call fails (*Ir198 is on), call MMC030 10/07/92 to send ..6500C* a message to the EIvI background message queue 10/07/92 saying ?.6600C* that the GPLDA sending transfer program doesn't 10/07/92 exist.

.6700C* Load $LIT1 with the literal sequence # for the 10/28/92 name of ..6800C* the program that desn't exist, and $LIT2 with 10/28/92 the ..6900C* literal sequence # for the CE type. 10/28/92 ?.7000C* Then leave the do loop to stop further processing.10/07/92 ?7100C* 10/07/92 ?7200C *IN98 IFEQ *ON 10/07/92 .'.7300C MOVE MODULE $MODCD 10/07/92 .'.7400C MOVE 'a~469' $ERRNO Message #M00469 10/07/92 .'.7500C MOVE ZI_CENO $CENUM CE # 10/07/92 .'.7600C MOVE 'a~C115' $LIT1 'GPLDA and pgm' 10/07/92 .'.7700C MOVE 'a~018' $LIT'2 'Local' 10/07/92 ..7800C CALL 'MMC030' PMC030 10/07/92 ,'.7900C LEAVE 10/07/92 ..8000C END1:F *IN98=*ON 10/07/92 _8100C* 05/20/93 ..8200C PERROR IFNE '0' 05/20/93 ..8400C ENDI:I PERROR - '0' 05/20/93 ..8500C* 03/10/92 ..8600C - if the LOCCON record is for .a non-requesting 07/01/92 entity, :8700C perform the following program calls to set up 07/01/92 the ..8800C* GPDIST records anti the resource extraction files.07/01/92 ..8900C* The information is not sent if the LOCCOM is for 07/01/92 the ..9000C requesting entity because they already reside 07/01/92 there.

..9100C* 07/01/92 ..9200C ZLENT IPNR ZLOREN 07/01/92 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 9 SOURCE FILE . . . . . . . XLI13EM/MRPGSRC
PrIEMBER. . . . . . . . .. . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 '19300C* 05/20/93 :19400C* 1. Call the GPLDA reformatting program 05/20/93 to reformat the :19500C* GPLDA to the target entity's format 05/20/93 if the GPLDA

'.19600C* sending program was called successfully. 05/20/93 .19700C* 05/20/93 .19800C MOVE ZLCENO PCENO 05/20/93 :19900C MOVE QQFLIB PRLIB 05120/93 ~I0100C* 05/20/93 X10200C* - if the call fails (*IN98 is on), 05/20/93 call MMC030 to send ~t0300C* a message to the EIVI background 05/20/93 message queue saying X10400C* that the GPLDA reformatting program 05/20/93 doesn't exist.

X10500C* Load $LIT1 with the literal sequence 05/20/93 # for the name of ~t0600C* the program that doesn't exist, and 05/20/93 $LIT2 with the 40700C* literal sequence # for the CE type. 05/20/93 ~t0800C* Then leave the do loop to stop further 05/20/93 processing.

40900C* 05/20/93 ~I1000C *IN98 IFEQ *ON 05/20/93 ~I1100C MOVE MODULE $MODCD 05/20/93 x:1200C MOVE 'a~469' $ERRNO Message #M0046905/20/93 x:1300C MOVE Zl_CENO $CENUM CE # 05/20/93 x'.1400C MOVE '00016' $LIT1 'GPLDA refwt 05/20!93 p' x-1500C MOVE 'aJ()18' $LIT2 'Local' 05/20/93 <~1600C CALL 'MMC030' PMC030 05/20/93 4-1800C END1F *IN98=*ON 05/20/93 4.1900C* 07/01/92 4.2000C* 2. Call the Resource; extraction 05/20/93 program if one exists 4.2100C* and if the GPLDA was sent successfully. 09/04/92 4.2200C* 03/10/92 4.2300C FDEF'GM IFNE *BLANKS 05/20/93 4.2400C CALL FDEPGM PMCEXT 98 10/07/92 4.2500C* 10/07/92 42600C* - if the call fails (*IN98 is on), 10/07/92 call MMC030 to send 42700C* a message to the EIvI background 10/07/92 message queue saying 4.2800C* that the Resource extraction program 10/07/92 doesn't exist.

42900C* Load $LITI with the literal sequence 10/28/92 # for the name of 43000C* the program that doesn't exist, and 10/28/92 $LIT2 with the 43100C* literal sequence # for the CE type. 10/28/92 43200C* Then leave the do hop to stop further 10/07/92 processing.

43300C* 10/07/92 43400C *IN98 IFEQ *CIN 10/07/92 43500C MOVE MODULE $MODCD 10/07/92 43600C MOVE 00469 $ERRNO Message $M80469 43700C MOVE ZLCENO $CENUM CE # 10/07/92 43800C MOVE 'O(~12' $LIT1 'Resc extr 10/07/92 pg m"

43900C MOV E 00018 $LIT2 'Local' 10/07/92 44000C CAL/. M:MC030 PMC030 10/07/92 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 10 ;SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
MEMBER. . . . . . . . . . . MMC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 44200C ENDIF *IN98 - *ON 10/07/92 44300C* 05/20/93 44400C PERROR IFNIs 'O' 05/20/93 44600C ENDIF PERROR-'O' 05/20/93 44700C* 10107/92 44800C ENDIF FDECM < > *BLANKS 05/20/93 C* 10/07/92 45000C ENDIF ZLENT < > ZLOREN O1 45100C* 07/01/92 45200C ENDIF ZLSTAT='S5' 07/01/92 '45300C* 03/10/92 '15400C* If the local communication record 03/10/92 was remotely initiated 15500C* (status '56'), call the GPLDA reformatting 03/12/92 program to reformat '15600C* the GPLDA sent from the originating 03/12/92 entity to the target '15700C* entity's format 03/12/92 '15800C* 03/10/92 '15900C ZLSTAT IFEQ '56' 03/11/92 '46000C MOVE ZLCENO PCENO 03/10/92 ~I6200C CAL/:. FDXPGhI PMCRCV 98 10/07/92 16300C* 10/07/92 16400C* - if the call fails (*IN98 is on), 10/07/92 call MMC030 to send ~t6500C* a message to the EMf background 10/07/92 message queue saying ~I6600C* that the GPLDA reformatting program 10/07/92 doesn't exist.

~I6700C* Load $LITi with the' literal sequence 10/28/92 # for the name of 46800C* the program that doesn't exist, 10/28/92 and $LIT2 with the X46900C* literal sequence # for the CE type. 10/28/92 ~I7000C* Then leave the do loop to stop further 10/07/92 processing.

'G7100C* 10/07192 x',7200C *IN98 IFEQ *ON 10/07/92 ~~7300C MOVE MODULE $MODCD 10/07/92 4.7400C MOVE '00469' $ERRNO Message #M0046910/07/92 4.7500C MOVE ZLCENO $CENUM CE # 10/07/92 47600C MOVE '00016' $LITI 'GPLDA refmt 10/07/92 p' 47700C MOVE '00018' $LIT2 'Local' 10/07/92 47800C CALL 'MMC030' PMC030 10/07/92 48000C ENDIF *IN90=*ON 10/07/92 48100C* 10/07/92 48200C ENDIF ZLSTA T='S6' 03/10/92 48300C* 03/10/92 48400C* When the LOCCOM record is of type 03/10/92 'CN' (consolidated) the 48500C* program must submit the XJ to I;ather 03/10/92 the information 48600C* into the data transfer files. When 03/10/92 all the information 48700C* has been gathered, then the entity 03/10/92 which requested the 48800C* consolidated information will call 03/10/92 the receiving 48900C* transfer program to ~;ather all 03/10/92 the DTFs to create the 49000C* report or inquiry. 03/10/92 :p738PW1 V2R2M0 920615 SEU SOUIRCE LISTING 5/28/93 14:08:24 Page 11 ;iOURCE FILE . . . . . . . XLIBEM/MF:PGSRC
iVIEMBER... .... . . . . MMfC020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 49100C* 08/01/91 49200C If the status is '55' then submit the application 08/07/91 program 49300C procedure to the local job queue: (CQLSJQ). If 05/03/93 turning in 49400C the requested entity, start the procedure under 05/03/93 the user 49500C* profile in LOCCOM. Otherwise, use MARCAM as the 05/03/93 user profile 49600C* 08/01/91 19700C ZLSTAT IFEQ '55' 08/07/91 'f9800C MOVE CQLSJQ PJOBQ 08/06/91 '19900C MOVE CJCBD PJOBD 04/21/93 :10000C ZLPGM C.AT 'ZT':O PJNAME 08/07/91 :10100C MOVE ZLSPKY PGPKY 02/05/92 :10200C MOVE QQFLJB PELIB 05/12/92 :10300C ZLEIJT IF'DQ ZLOREN 05/03/93 :10400C MOVE ZLUSER PUSER 05/03/93 :10500C EL SE 05/03/93 :10600C MOV'EL MARCAMI PUSER P Pad w/blanks 05/03/93 :10700C E1VDIF ZLENT=ZLOREN 05/03/93 :10800C CALL 'MMC022X' PMC022 08/05/91 :10900C ENDIF ZLSTAT='S5' 08/01/91 :i C* 09/21 '11100C* If the status is '56': 09/21/92 '11200C* - first check to see if a record exists for the 09/21/92 local '.1300C* system/LOCCOM originating system. If it does not 09/21/92 exist, '1400C* update the CE status to '65' and leave the do loop09/21/92 so '_.1500C* that the application program procedure will not 09/21/92 be '1600C* submitted and the LOCCOM record won't be updated 09/21/92 with 1700 C* the submitted job information. 05/03/93 -''1800C* 08/01/91 ~~1900C ZLSTAT IFEQ '56' 08/07/91 X2200C MOVE *BLANKS KRENT 05/20/93 52400C *IN98 IF:EX *ON 09/21/92 52500C ZLCE;NO CFIAINLOCCOM 98 09/21/92 52600C *IN9E IF7EQ *OFF 09/21/92 52700C MOVE '65' ZLSTAT 09/21192 52800C CALL 'MZM620X' PZM620 Get date & time 09/28/92 52900C Z-.ADDPTIME ZLTMMT 09/28/92 53000C Z-.ADDPDATE ZLDTMT 09/28/92 53100C UF'DATQLOCCOM 09/21/92 53200C ErIDIF *IN98=*OFF 09/21/92 53300C LE',AVE 09/21/92 53400C ET1DIF *IN98=*ON 09/21/92 53500C* 09/21/92 53600C* - if a SVSXRF record exists, submit the application09/21/92 program procedure to the remote job 53700C* queue (CQRSJQ). The procedure is submitted using 05/03/93 the MARCAM user profile.

53800C* 05/03/93 53900C* 09/21/92 :i738PW1 V2R2M0 920615 SEU SOUIf~CE LISTING 5/28/93 14:08:24 Page 12 ;iOURCE FILE . . . . . . . XLI:BEM/MR;PGSRC
IvIEMBER. . . . . . . . . . . MM:C020 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 :14000C MOVE CQRSJQ PJOBQ 08/06/91 :14100C MOVE CQJOBD PJORD 04/21/93 :14200C ZLPGM C.AT 'XJ': O PJNAME 03/07/91 :14300C MOVE ZLGPKY PGPKY 02/05/92 :14400C MOVE QQFLIB PLLIB 05/12/92 :14500C MOVE 'MARCAM' PUSER P Pad w! 05/03/93 blanks :14600C CALL 'MMC022X' PMC022 09/03/94 :14700 EIVDIF ZLSTAT 08/01/91 '56' :14800C* 08/01/91 :14900C Read the LOCCOM record that 04/20193 is currently being processed by :15000C* entering with the communications 08/07/91 entry number.

~i5100C* Load the LOCCOM record with 08/07/91 the submitted the information:

'.5200C* Job fJ, Job name, Jol> start 08/07/91 date, Job start time:

'15300C* 08/07/91 '5400C ZLCENO C13AINLOCCOM 98 09/21/92 '_5500C *IN98 1F~EQ *OFF 01/27/92 '5600C Z ADDPJOBN ZLJBNO 08/07/91 _'5700C MOVE PGNAME ZLJBNM 08/07/91 '5800C CALL 'MZM620X' PZM520 Get date & time 56100C MOVE $PUSPF ZLUSER 02/05/92 56500C ENDIF *IN98=*OFF08/07/91 56600C* 08/01/91 56700C ErIDDO DO1 09/21/92 56800C* 09/21/92 57100C********** * 08/01/91 DISTRB
SUBR
*****~**********************
DISTR
SUBR

57200C* * 08/01/91 57300C* The DISTRB subroutine processesof * 08/01/91 the LOCCOM records 57400C* type 'CD' or 'DD' - centralized * 08/01/91 and decentralized 57500C* distribution. * 08/01/91 5'7600C* Distribution involves passing * 08/01/91 information to another 5'7700C* entity, handled by the sending * 01/27/92 transfer program. That 5'7800C* information ma.y then need * 01/27/92 to be updated into the 5'7900C* actual database files, handled * 01/27/92 by the receiving 58000C* transfer program. * 01/27/92 :5738PW1 V2R2M0 920615 SEU SOUIftCE LISTING 5/28/93 14:08:24 Page 13 SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MMfC020 'iEQNBR*...+...1...+...2...+....3...+...4...+...5...+...6...+...7...+...8...+..
.9...+...0 :18100C* * SRCE3 05/20/93 :18200C***********************************************************************

:18300C* * SRCE3 05/20/93 :18400C* INDICATORS USED . 98 * SRCE3 05/20/93 :18500C* * SRCE3 05/20/93 >8600C* EXECUTED FROM . PRORCD * SRCE3 05/20/93 :'8700C* * SRCE3 05/20/93 :18800C*******************************:k***************************************

:'8900C* SRCE3 05/20/93 :19900C DISTRB BEGSR 08/01/91 :19100C* 08/01191 :19200C* If the status of the LOCCOM record is 08/07/91 '55', then call the :19300C* sending transfer program to load the 08/01/91 data transfer files.

'19400C* (status '56' indicated that the record 08/07/91 originated in a 59500C REMCOM record therefore the data transfer 08/01/91 files have '.9600C* already been loaded) 08/01/91 '.9700C* 04/01/92 :9800C* Read PERROR before determining if status 04/01/92 is 55, because _'.9900C the receiving transfer is called if 04/01/92 status is 55 E~0000C but only if PERROR is in. the sending 04/01/92 transfer program f~0100C* may return with an error - the receiving 04/01/92 transfer will not E~0200C* be called). 04/01/92 E~0300C* 08/01/91 E~0400C MOVE "G" PERROR 03/31/92 60500C* 03/31/92 60600C ZLSTAT 1FEQ '55' 08/07/91 60700C MOVE 'S" PSEND 08/01/91 60900C MOVE 'L' PHORI 08/01/91 61100C* 08/07/91 61300C* 10/07/92 61400C* - if the call fails ("IN98 is on), call 10/07/92 MMC030 to send 61500C* a message to the EM background message 10/07/92 queue saying 61600C* that the sending transfer program doesn't 10/07/92 exist.

61700C* LOAD $LIT1 with the literal sequence 10/28/92 /! for the name of 61800C* the program that doesn't exist, ;and 10/28/92 $LIT2 with the 61900C* literal sequence ~! for the CE type. 10/28/92 62000C* 10/07/92 62100C *IN98 IF1BQ *ON 10/07/92 62200C MOVE MODULE $MODCD 10/07/92 62300C MOVE '00469' $ERRNO Message ~M0046910/07/92 62400C MOVE ZLCENO $CENUM CEfi 10/07/92 62500C MOVE '00013' $LIT1 'Send xfer 10/07/92 pgm' 62600C MOVE '00018' $LIT2 'Local' 10/07/92 62700C CALL 'MMC030' PMC030 10/07/92 62800C ETfDIF *IN98=*ON 10/07/92 6:2900C* 10/07/92 .'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 14 !iOURCE FILE . . . . . . . XLIBEM/MP;PGSRC
IvIEMBER. . . . . . . . . . . MM:C020 'iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 53000C ENDIF ZLSTAT='S5' 08/01/91 53100C* 08/01/91 53200C* Call the receiving transfer 08/01/91 program to move the data from 53300C* the data transfer files to the 03/11/92 actual files as long as 53400C* sending transfer completed normally. 03/11/92 53500C* 08/01/91 53600C* PERROR IFEQ 'O' 03/11/92 53700C *IN98 ANDEQ*OFF 10/07/92 54100C* 10/07/92 54200C* - if the call fails (*I1V98 10/07/92 is on), call MMC030 to send 54300C* a message to line EM background 10/07/92 message queue saying 54400C* that the receiving transfer 10/07/92 program doesn't exist.

54500C* Load $LITl with the literal 10/28/92 sequence # for the name of ~i4600C* the program that doesn't exist, 10/28/92 and $LPT2 with the 64700C* literal sequence # for the CE 10/28/92 type.

~i4800C* 10/07192 ~i4900C *IN98 IFEQ *ON 10/07/92 65000C MIOVE MODULE $MODCD 10/07/92 65100C MOVE '00469' $ERRNO Message #M00:6910/07/92 65200 MfOVE ZLCENO $CHNUM CE # 10/07/92 65300 MfOVE 00014 $LIT1 'Run xfer 10/07/92 pgm' 65400C MfOVE 00019 $LIT2 'Local' 10/07/92 65600C E(~TDIF *IN98 *ON 10/07/92 65700C* 10/07/92 65800C E:I~TDIF PERRON-'0' 03/11/92 65900C* 08/01/91 66000C E:P1DSR DISTRB SRCR301/28/92 66200***********************'"*******E1VDPR0 SUBR
**********ENDPRO
SUBR*

ti6300C* * 07/25/91 ti6400C* The ENDPRO subroutine ends the * 07/25/91 processor if a '*END' ti6500C* request was hiit or processing * 04/21/93 ended.

ti6600C* * SRCE3 05/20/93 ti6700C*******************************:k*************************************

ti6800C* * SRCE3 05/20/93 ti6900C* INDICATORS USED . 9!9 * SRCE3 05/20/93 ti7000C* * SRCE3 05/20/93 ti7100C* EXECUTED FROM . M:AINLN * SRCE3 05/20/93 tS7200C* * SRCE3 05/20/93 ti7300C******************************************************
*************** 05/20/93 ti7400C* SRCE3 05/20/93 ti7500C ENDPRO BIEGSR 07/25/91 ti7600C* 07/25/91 ti7700C* Delete the correct E:M backgroundfor 07/26/91 file record (EMBKGD) ti7800C* this job/user p~rofile/job number. 07/26/91 5738PW1 V2R2M0 920615 SEU SOUlf2CE LISTING 5/28/93 14:08:24 Page 15 SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MMC020 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 57900C* 07/25/91 58000C MOVEL'MMC020XJ'KJOB 07/29/91 ~i8100C MIOVEL$PUSPF KUSER 02/05/92 68200C Z-ADD$PJOBN KJOBN 02/05/92 68300C* 07/26/91 68500C *IN99 IFEQ *OFF 01/27/92 ti8700C E:~1DIF *IN99=*OFF 07/25/91 ti8800C* 04/22/93 ti8900C* Delete any Special records (*EPdD, *RESET or *INIT)04/22/93 from the ti9000C* file for the specific job. Because these begin 04/22/93 with '*' ti9100C* the records will all appear at tht: beginning of 04/22/93 the file ti9200C* so when a non-'*' entry is found, end the loop. 04/22/93 (19300C* 04/22/93 69400C *LOVAL SETLLLOCCOM 04/22/93 (19500C *IN99 D~OUEQ*ON 04/22193 (19600C R1EAD LCCCOM 99 04/22/93 (19700C *IN99 IFEQ *OFF 04/22/93 (19800C* 04/22/93 (19900C* Check for a special record 04/22/93 C* 04/22/93 0200 C QQJOBN IFEQ $PJOBN 04/22/93 0300 C QQTYPE IFEQ '*INIT' 04/22/93 ~040CC QQTYPE OREQ '*END' 04/22/93 i C QQTYPE OREQ 'RESET' 04/22/93 10700C ENDIF QQTYPE '*INIT' 04/22/93 70800C ENDIF ZZJOBN - $PJOBN 04/22/93 70900C* 04/22/93 71000C Check if end of special records 04/22/93 71100C* 04/22/93 71200C 1 SLJBSTQQTYPE:1 QQTEMP 04/22/93 71300C QQTEMP 1F'NE '*' 71600C ENDIF QQTEMP < > ' *' 04/22/93 71700C* 04/22/93 71800C ErdDIF *IN99 *OFF 04/22/93 71900C ErdDDO DOU *IN99 *ON 04/22/93 72000C* 04122/93 72100C* 07/25/91 72200C ErdDSR ENDPRO SRCE3 07/25/91 72400C********* 07/29/91 PROLOC
SUBR
***********************
PROLOC
SUBR
*

72500C* * 07/22/91 72600C* THE PROLOC subroutine processes the LOCCOMDT file 01/27/92 by *

72700C* determining if the record is an initialization, 01/27/92 reset, *

:i738PW 1 V2R2M0 920615 SEU SOUIftCE LISTING 5/28/93 14:08:24 Page 16 ;iOURCE FILE . . . . . . . XLIBEM/MR:PGSRC
1VIEMBER. . . . . . . . . . . MMC020 iEQNBR*...+...1...+...2...+,..3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 '72800C* end record, or normal LOCCOM record.* 01/27/92 '72900C* *SRCE 3 05/20/93 '73000C*******************************:k***************************************
*SRCE 05/20/93 '73100C* *SRCE 3 05/20/93 '13200C* INDICATORS USED : 98 99 *SRCE 3 05/20/93 '13300C* *SRCE 3 05/20/93 '13400C* EXECUTES : PRORCD RSTPRO *SRCE 3 05/20/93 '3500C* *SRCE 3 05/20/93 '73600C* EXECUTED FROM : MAINILN *SRCE 3 05/20/93 73700C* *SRCE 3 05/20/93 73800C************************************************************************

'13900C* SRCE 3 05/20/93 ?4000C PROLOC BEG SR 07/29/91 '4100C* 07/22/91 14200C *IN99 DOW'EQ*OFF 01/27/92 ',4300C* 07/22191 .'4400C READ LOCCOMDT 99 07/30/91 ;'4500C* 02/03/93 ;'4600C* If a shut down request is issued 02/03/93 for this job, end 14700C* the processor. 02/02/93 .4800C* 02/03/93 .'4900C SHTI)N 98 02/03/93 5000 C *IN98 IFEQ *ON 02/03/93 75300C END1F *IN98=*ON 02/03/93 75400C* 02/03/93 75500C *IN99 1FEQ *OFF 01/27/92 75600C* 07/26/91 75700C* The CE # is a combination of *RESET 07/29/91 or *END and the job 75800C number under normal communications 07/29/91 75900C The variable QQCENO is a data structure 07/23191 which plugs 76000C into QQTYPE (*RESET or *ErID) and 08/05/91 QQJOBN (job number).

*

76400C* Check the CE # to dc;termine if 08/09/91 this is an initialization 76500C* request. Check if tht; record corresponds 08/09/91 with this job.

76600C* Return to read anoth<r record. 08/09/91 76700C* 08/09/91 76800C QQTTPE IF1EQ '*INIT' 08/09/91 76900 QQJOBN IFIEQ $PJOBN 02/05/92 77000C DI?LETELOCCOM 08/09/91 77300C ErIDIF QQJOBN=$PJOBN 08/09191 77500C EI'fDIF QQTYPE='*INIT'08/09/91 77600C* 08/09/91 :p738PW1 V2R2M0 920615 SEU SOUIEtCE LISTING 5/28/93 14:08:24 Page 17 ;iOURCE FILE . . . . . . . XLIBEM/MP;PGSRC
1VIEMBER. . . . . . . . . . . MMC020 ;iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 77700C* Check the CE 17 to dletermine 08/09/91 if this is deactivate request 77800C* The deactivate: request is job 08/09/91 specific. Check that the 77900C* request is for the current job. 04121/93 Delete the deactivate 78000C* request so no other processors 04/21/93 pick it up. End the '78100C* program. If it is not the current 04/21/93 job, return to read '18200C* another record. 04/21/93 '78300C* 08/09/91 '78400C QQTYPE IF'EQ '*END' 08/09/91 '18500C QQJOBN IF'EQ $PJOBN 02/05/92 '18600C D:ELETFLOCCOM 04/21/93 '18700C Ll3AVE 04/21/93 '18800C ELSE 06/19/92 '18900C UNLCKLOCCOMDT 06/19/92 '79000C E1VDIF QQJOBN=$PJOBN 08/09/91 '79100C IT'ER 01/27/92 '19200C E1VDIF QQT'YPE='*END'08109/91 '19300C*
QQTYPE=' *END'08/09191 '19400C* Check the CE ~' to determine 08/09/91 if this is a reset request '19500C* The reset records are job specific 08/09/91 - check that the '.19600C* request is for the correct job. 08/09/91 ',19700C* 08/09/91 ;19800C QQTYPE IFEQ '*RESET' 08/09/91 ','9900C QQJOBN IFEQ $PJOBN 02/05/92 f~0000C EXSR RSTPRO 08/09/91 f~0100C ELSE 06/ 19/92 f~0200C UIVLCKLOCCOMDT 06/19/92 f~0300C ENDIF QQJOHN=$PJOBN 08/09/91 f~0400C ITER 01/27/92 f~0500C ENDIF QQTYPE='*RESET'08/09/91 f~0600C* 08/09/91 f~0700C* If the record is not a reset, 08/09/91 initialization, or deactivation f~0800C* then process the record. 08/09/91 (0900C* 08/09/91 f C EJ~:SR PRORCD 08109/91 81100C* 04/30/01 81300C* 07/22/91 81400C ErdDIF *IN99-*OFF 07/22/91 81500C ErIDDO DOW *IN99=*OFF07/22/91 81600C* 07/22/91 81700C ErIDSR PROLOC SRCE3 07/29/91 81900C**********PRORCD PRORCD SUBR 07/25/91 SUBR *
**'*********************

82000C* * 07123/91 82100C* The PRORDC subroutine processes* 01/27/92 the LOCCOM record.

82200C* First, update the record with * 01/27/92 the appropriate status.

82300C* Second, process the record after* 01/27/92 determining if the 82400C record is for consolidation * 04/20/93 or distribution function.

82500C* * SRCE3 05/20/93 :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 18 SOURCE FILE . . . . . . . XLI:BEM/MR:PGSRC
IvIEMBER. . . . . . . . . . . MM:C020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 $2600C*******************************:a***************************************

82700C* * SRCE3 05/20/93 .32800C* INDICATORS USED . 98 * SRCE3 05/20/93 .32900C* * SRCE3 05/20/93 133000C* EXECUTES . $APPDF CONSOL DISTRB * SRCE3 05/20/93 133100C* * SRCE3 05/20/93 133200C* EXECUTED FRONT . PROLOC * SRCE3 05/20/93 (33300C* * SRCE3 05/20/93 (33400C*******************************~.***************************************

ft3500C* SRCE3 05/20/93 (13600C PRORCD BI3GSR 07/25/91 (13700C* 05/12/92 (13800C DO Do once OS/

f~3900C* 01/28/92 f~4000C* Access APPDEF for the sendinf; and receiving 01/28/92 transfer program f~4100C* and the extracrion program 01128/92 f~4200C* 01/28/92 f~4300C MOVE ZLPGM KPGM 01/28/92 (;4400C MOVE ZLFREL KFREL 01/28/92 f~4500C MOVE ZLTREL KTREL 01/28/92 f~4600C* 01/28/92 F,4700C EXSR $APPDF 01/28/92 84800C* 01/28/92 84900C* If APPDEF record cannot be found the status 01/28/92 must be 85000C* updated with '~52' this would mean the LOCCOM 01/28/92 record 85100C* could not be processed as no APPDEF record 01/28/92 was found 85200C* 01/28/92 85300C $$FAIL IF;EQ '1' 01/28/92 85400C MOVE '62' ZLSTAT 01/28/92 85700C ErdDIF $$FAIL-'1' 05/12/92 85800C* 05/12/92 85900C* At this point the APF'DEF record is valid, 05/12/92 determine if 86000C* a record exists for the tarl;et entity in 05/14/92 EN'TFIL. This 86100C* check is only done for De,~entralized Distribution 05114/92 and 86200C* Consolidated as these methods use entity 05/14/92 level files.

86300C* 05/12/92 86400C ZLTYPE IFl?Q 'DD' 05/14/92 86500C ZLTYPE OF;EQ 'CN' 05/14/92 85700C *IN98 IFI?Q *ON 07/22/92 85800C MOVE '63' ZLSTAT 05/12/92 85900C UP'DATFLOCCOM 05/12/92 8'7000C LEAVE 05/12/92 8'7100C ENDIF *IN98-*ON 07/22/92 8'7200C* 05/12/92 8'7300C* Save the entity Files )Library 05/12/92 8'7400C* 05/12/92 :p738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 19 ;iOURCE FILE . . . . . . . XLIBEM/MI~;PGSRC
1VIEMBER. . . . . .. . . . . MMC020 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 87500C MfOVE EFFLIB QQFLIB 05/12/92 37600C* 05/12/92 37700C* If the target entity can be found in ENTFIL, determine05/14/92 .37800C* if the entity files library exists using CHKOBJ. 05/12/92 .37900C* If the QCMDEXC fails, the CfCKOBJ failed, set the 05/12/92 status .38000C* to '63' to indicate that thc: Files Library does 05/12/92 not exist.

.38100C* 05/12/92 .38200C MOVE *BLANKS QQCMD 07/02/92 88300C QQCMD1 C.AT EFFLIB QQCMD CHKOBJ OBJ (lib) 05/12/92 138400C QQCMD C.A'T QQCMD2:0 OBJTYPE ("LIB) 05/12192 88500C CALL 'QCMDEXC' 98 07/22/92 138800C *IN98 IF'EQ *ON 07/22/92 (38900C MOVE '63' ZLSTAT 05/12/92 (39000C UiPDATFLOCCOM 05/12/92 (39100C LI?AVE 05/12/92 f~9200C E1VDIF *IN98=*ON 07/22/92 f~9300C ENDIF ZLTYPE='DD' 05/14/92 (9400C* 05/14/92 f~9500C* If Centralized distribution, load Entity file library05/14/92 with f~9600C* blanks for passing to the receiving transfer program.05/14/92 (;9700C* 05/14/92 (,9800C ZLTYPE IFEQ 'CD' 05/14/92 (.9900C MOVE *BLANKS QQFLIB 05/14/92 50000C ENDIF ZLTYPE='CD' 05/14/92 50100C* 05/12/92 90200C* Else, Change status from '15' and '16' so no other05/12/92 processors 90300C* pick up the record 07/31/91 C* 07/31/91 90500C ZLSTAT IF:EQ '15' 07/31/91 90600C MOVE '55' ZLSTAT 07/31/91 90700C ENDIF ZLSTAT='IS' 01/27/92 90800C ZLSTAT IFEQ '16' 01/27/92 90900C MOVE '56' ZLSTAT 07/31/91 91000C ENDIF ZLSTAT='16' 01/27/92 91200C* 07/31/91 91300C* If the type is a form of distribution (centralized08/01/91 or 91400C* de-centralized) then call D~ISTF,B to process these08/01/91 91500C* records by calling the sending and receiving transfer08/01/91 program 91600C* 08/01/91 91700C ZLTYPE IF13Q 'CD' 08/01/91 91800C ZLTYPE OF;EQ 'DD' 08/01/91 91900C EX:SR DISTF;B 08/01/91 92,000C EI'fDIF ZLTYPE='CD' 08/01/91 9:?100C* 08/01/91 9:?200C* If the type is consolidfation then call CONSOL 08/01/91 to process these 9:?300C* records by calling the Application program job 08/01/91 queue procedure 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 20 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . M1V(C020 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 92400C* (the XJ program). 08/01/91 92500C* 08/01/91 92600C ZLTYPE IFEQ 'CN' 08/01/91 92800C ENDIF ZLTYPE='CN' 08/01/91 92900C* 01/28/92 93100C* 07/23191 '93400C********* RSTPRO SUI3R ******~***************** 07/25/91 RSTPRO SUBR

'3500C* * 07/25/91 !3600C* The RSTPRO subroutine resets the processor* 07/25/91 if a '*RESET' !3700C* request was hit * 07/25/91 !3800C* * SRCE3 05120/93 !I3900C*******************************:e*************************************
* SRCE3 05/20/93 !4000C* * SRCE3 05/29/93 114100C* INDICATORS USED : 9fi * SRCE3 05/20/93 !)4200C* * SRCE3 05/20/93 !4300C* EXECUTED FROM : PROLOC * SRCE3 05/20/93 '-1'~~C* * SRCE3 05/20/93 !)4500C*******************************~k***************************************

!)4600C* SRCE3 05/20/93 94700C RSTPRO BE~3SR 07/25/91 94800C* 07/25/91 94900C* Delete the deactivate request so no other 07/25/91 processors pick 95000C* it up 07/25/91 S~S100C* 07/25/91 95300C* 07/25/91 95400C* Reset the file 07/25/91 95500C* 07/25/91 55600C *LOVAL Sf?TLLLOCCOMDT 98 08/09/91 55700C* 07/30/91 '-'5800C* 08/09/91 55900C* If the reset fails, there are no records 08/09/91 in the file 56000C* since this positions the pointer to the 08/09/91 end of the 96100C* file, no more records will be read. An 08/09/91 initialization 96200C* record must be written give the reset 08/09/91 a record to 56300C* position on. 08/09/91 C* 08/09/91 5'6500C *IN98 IF:EQ *ON 01/27/92 9'6600C CLEARFLOCCOM 08/09/91 96700C MOVEL'*INIT' ZLCENO 08/09191 96800C MOVE $PJOBN ZLCENO 02/05/92 96900C MOVE '15' ZLSTAT 08/09/91 97000C MOVE $PUSPF ZLUSER 02/05/92 97100C W:ItITEFLOCCOM 08/09/91 97200C *LOVAL SETLLLOCCOMDT 08/09/91 :5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:24 Page 21 SOURCE FILE . . . . . . . XLLBEM/MF;PGSRC
:MEMBER. . . . . . . . . . . MMfC020 3EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 97300C* 08/22/91 97400C* If the reset fails, update the EM Background 08/22/91 file (EMBKGD) 97500C* for this job/user profile/job nwmber to indicate08/22/91 the 97600C number of failed resets. 08/22/91 97700C* 08/22/91 '97800C MOVEL 'MMC020X1'KJOB 08/22/91 '97900C MfOVEL$PUSPF KUSER 02/05/92 '98000C Z-ADD$PJOBN KJOBN 02/05/92 !98100C* 08/22/91 !98200C KEMBKG C.HAINEMBKGD 98 08/22/91 !8300C *IN98 IFEQ *OFF 01/27/92 !;'8400C A:DD 1 BGRSET 08/22/91 !8500C UPDATFEMBKGD 08/22/91 !18600C EIVDIF *IN98-*OFF 08/22/91 08700C* 08/22/91 !>8800C EhIDIF *IN98-*ON 08/09/91 98900C* 07/25/91 * * * * 13ND OF SOURCE

$MMC040$
;b; MMC040 Remote Communications Processor Program ;ql;;r;
;hi;A. The Remote Communications Processor Program runs in background off of REMCOMDT, the logical view of the Remote Communications Entry File (REMCOM) by date/time last maintenance. For each communications entry., it assigns ithe REMCOMDT record status 30 (waiting) so that this program can sent it to the remote system to be satisfied at the tailored frequency.
;ql;;hx;
;id; The externally described file DSMCGNR will be used to create a data structure to act as a parameter to the Generic Transfer Procedure, capable of transferring fifteen files at a time to a remote system. The source for than. file residea in MMDDSSRC. ;ql;
;id; The externally described data structure $ZU160 should be copied into the source for this program via /COPY. $ZU160 will be passed as a parameter to the Data Calculation Program, NZU160, which accepts an original date and time, along with modification information, and passes back a new date and time. That data structure resides in M:?DDSSRC. ;ql;
;id; 1. Process a loop to retrieve records from REMCOMDT. This is accomplished by reading through REMCOMDT. Fo:r each record retrieved, continue processing in step 2.
End the program as described in step 2D(iii) below when a shut down request is detected, for example, when the system shuts down or when the job is ended by using a controlled end job (ENDJOB) command. ;ql' &int&
Design Note: Since the CL program has overridden REMCOMDT, specifying an end-of file delay, there is no additional coding necessary within the RPG program to enable the background function.
Design Note: There is no guarantee that the program can detect a shut down request before the job is ended due to the end of file delay. As a result, the EMBKGD record may or may not get deleted, depending on whether the job is ended normally or abnormally. In any cases, the EMBKGD record will be deleted eventually either by this program or by MMM140.
Programmer Note: We were unable to use an open query file on a file overridden with the end-of file delay parameter specified. 'lChe problem is that the OVRDBF (override data base file) command has many parameters. However, the OPN()RYF (open query file) will only recognize a few of the parameters (TOFILE, MBR, LVLCHK, WAITRCD, SEQONLY, INHWRT, SHARE); all the rest are ignored. Neither the compiler nor a program run will indicate this happened.
We discovered the quirk because the run will indicate this happened. We discovered the quirk because the file no longer functioned as we expected it to under the end-of file delay function. The solution was a logical file with a select/omit line.
Programmer Note: Before starting any processing, first be sure to initialize the work fields storing the Transmission Date and Time to the system date and time. They wil be appropriately incremented later in the program.
&end&
;id; 2. The logical file has selected only those communications entries status 15 (specific entries ready for immediate processing). There is no need to check the status here.
;ql;
;id; A. REMCONfDT records with status 15 are communications entries that will be processed by this program. ;ql;
;id; B. Before continuing, cht:ck the CE ~l for this record. If it is "INIT,"
then this is the dummy record indicating that the last reset was performed on an empty file. They required us to enter a, dummy record that will allow the reset to work.

;id; i. Check that the initialization is for this job number. The CE It will consist of the *INIT in position 1-6 of the CE # and the job number in position 10-1_''.. The job number was passed by MMC040XJ. ;ql;
;id; ii. Since the initialization record is job specific and has already fulfilled its purpose, delete the record from REMCOMDT if the job number corresponds to this job. ;ql;
;id; iii. Return to step 1 to process the next record in the file. ;ql;
;id; C. Before continuing, check the CE # for this record. If it is '*RESET,' then this is the dummy record indicating that the pointer to this file should be reset to the beginning. ;ql;
;id; i. Check that th<: reset is for this job number. The CE # will consist of the *RESET in position 1-6 of the CE # and the job number in position 10-15. The job number was passed by MMC040XJ. ;ql;
;id; ii. Since the reset record is job specific, delete the record from REMCOMDT' if the job number corresponds to this job. ;ql;
;id; iii. If the CE # is '*RESET,' perform a SETLL to reset the pointer to the beginning of REMCOMDT. ;ql;
;id; iv. If the SETLL failed, the indicates that there are no records in the file. Since the pointer is set at the end of the file on a failed SETLL
the end-of file delay is no longer in affect and the program will end. To handle this situation, the program will write an '*INIT' (initialization) record with a date and time of *LOVAL. The SETLL will then be performed again. Since a record was just written, the SETLL will work and the pointer is positioned at the beginning of the file again. ;ql;
;id; v. If the SETLL failed, add to the reset field in EMBKGD
(BGRSET) and update the record. This field will keep track of how many failed resets were encountered. A failed reset is one where the reset brings the user to the beginning of an empty file. This field will be used at implementation and will b~e helpful in determining the frequency needed for the reset. ;ql;
;id; vi. Return to step. 1. to process the next record. ;ql;
;id; D. Now check to see if this is the deactivation record, designated by a CE # of '*END.' - ;ql;
;id; i. Check that the deactivation record is for this job number. The CE # will consist of the *IEND in position 1-4 of the CE # and the job number in position 10-15. The job number of the current job was passed by MMC040XJ. ;ql;
;id; ii. Since the deactivation record is job specific, delete the record from REMCOI1DT if the job number corresponds to this job. ;ql;
;id; iii. If tl:te CE # is "*END,' then this program should end immediately, without processing any more REMCOM records. Prior to ending the prol;ram, delete the Enterprise Management Background File (EMBKCD) record found for 'MMC040XJ,' the user (passed from MMC040XJ) and the job number (passed from MMC040XJ). ;ql;

;id; 3. The record is not a reset or deactivation record. therefore, mark the record that it is waiting to be sent (status '30') and check if the processor is ready to transmit the REMCOM records.
;ql;
;id; A. Update the REMCOI~I record to status '30' waiting to be sent. ;ql;
;id; B. Now, see if it is time to send the REMCOMDT entries marked with status 30 to their destinations. ;ql;
;id; i. The transmission date and time work fields for both high and low priority applications were set up at the beginning of the program. The first values are the current date and time (retrieved by calling MZM620X, the Retrieve ('.urrent Date and Time Procedure) plus the high or low transmission tiequency from the Communications Definition (COMDEF) file. This establishes the first time the transmission will take place for applications for each prie~rity. The next incrementation will occur as described below when this date/time is reached. ;ql;
;id; ii. Check the transmission date work field for high priority applications. If the current date is greater than that date, then it is time to transmit comnnunications entries for high priority applications. ;ql;
;id; iii. If the dates are the same, check the times; if the current time is greater than or equal to the transmission time for high priority applications, then it is time to transmit. ;ql;
;id; iv. When it is time to transmit CE's for high priority applications, increment the high priority transmission time work field by CQFRQH (the COMDEF frequency of transmissions for high priority applications) and continue processing with step 5. To increment the high priority transmission fume, call the Data Calculation Program, MZU160, with the data structure $ZU160 as the parameter. The next high priority transmission date and time will be returned in $NWDT and $NWTM. ;ql;
;id; MZU160 PLIS'C ;ql;
;id; PARM $~:LJI60 ;ql;
;id; Load $ORDT and O:RTM with the transmission date/time work flds ;ql;
;id; Load $YEAR, $MN'TH, $DAY, $HOUR, and $MIN with zero ;ql;
;id; Load $SEC with the transmission frequency CQFRQH from COMDEF ;ql;
;id; Load $FORB with 'F' (forward;l. ;ql;
;id; $NWDT and $NWTM will be returned and must be loaded into the ;ql;
;id; high priority transmission date and time work fields. ;ql;
;id; v. Repeat steps (ii) to (iv) for low priority applications. The low priority transmission date and time are checked. When it is time to transmit CE's for low priority applications, proceed to step 5. Then increment the :low priority transmission time by the low priority transmission frequency Ct~FRQL from COMDEF. ;ql;
;id; vi. If the current date is less than both the high and low priority transmission dates, or if the dates are the same but the current time is less than both transmission times, then return to step 1. ;ql;
;id; 5. Process a loop to read through REMCOM and read all records whose status was changed to '30'. That is, these records are waiting for transmission. ;ql;

;id; A. Read a REMCOM record with status '30'. ;ql;
;id; B. Access th~~ Application Definition File (APPDEF) for the sending and generic transfer program names. This is accomplished by loading the application program name, from release-modification and to release-modification from the REMCOM
record to the key list for the file. Call the standard subroutine $APPDF. ;ql;
;id; i. If the subroutine fails to find the APPDEF record, update the status of the ):;EMCOM record to '62'. This would mean that the REMCOM record could not be processed as no Application Definition File record could be found. Return to step SA to read the next record with status '30'. ;ql;
;id; ii. Check the priority of the application, which is defined in the APPDEF record retrieved in step (i) above. If the priority matches the priority that is currently being processed, continue. Otherwise, we are not transmitting this CE yet. Return to step SA to read the next record with status '30'. ;dl;
;id; iii. Find the SYS:KRF record for the REMCOM originating system/target system (ZLORSY/ZLSYS). If such a record does not exist, update the status of the REMCOM record to '65'. This would mean that the REMCOM record could not be processed. Return to step SA to read the next reconi with status '30' records. ;ql;
;id; iv. If both the Al'PDEF and SYSXRF records are found, and the priority of the application is checked, update the status to '31' to indicate that the record was selected for transmission. Since multiple processors could be processing the status '30' records at the same time, we must ensure that each record is only picked up once. ;ql;
;id; C. If the REMCOM application type is 'CD' (centralized distribution) or 'DD' (decentralized distribution) then the data transfer files must be loaded.
;ql;
;id; i. Then call the appropriate sending transfer program, passing the following parameters: ;ql;
;id; PMCSNDPLIS'L' ;ql;

;id; PARM PSEND lA 'S' (send) ;ql;

;id; PAP;IM PC'.ENO 15A communications entry;ql;
It ;id; PARM PP;ORL lA 'R' (remote) ;ql;

;id; PARM PGNRC l0A name of generic transfer;ql;
proc ;id; PARM PE;RROR lA error code ;ql;

;id; ii. Ii' the sending transfer program does not exist, call MMC030 to send a message to the EM background message queue saying that the sending transfer program does not exist for this remove CE. Return to step SA to read the next record with status '30'. ;ql;
;id; D. If the REMCOM application type is 'CN' (consolidation), then the GPLDA
Sending Transfer Program must be called prior to sending the remote CE itself. This program puts the GPLDA and GPLDA2 into the appropriate format, based on the from and to rel-mod levels and application; it is necessary because the GPDIST record must reside in all entities where XJ
procedures will be submitted.
Also, call the Resource Extraction Program if there is one. ;ql;
;id; i. The name of the GPLDA Sending Transfer Program for sending the GPDIST
record are contained in the APPDEF record that was retrieved. Call the GPLDA Sending Transfer Program after loading the following parameter list. ;ql;
;id; PMCEXT PLIST ;ql.
;id; PARMf PSIEND lA 'S' (send) ;ql;

;id; PAR.M F'CENO 15A communications entry ~ ;ql;
;id; PARM F'RORL lA 'R' (remote) ;ql;
;id; PAR.M F'GNRC l0A name of generic transf proc ;ql;
;id; PARM F'ERROR lA error code ;ql;
;id; ii. If the GPLDA sending transfer program does not exist, call MMC030 to send a message to the EM background message queue saying that the GPLDA sending transfer program does not exist for this remote CE. Return to step SA to read the next record with status '30'. ;ql;
;id; iii. The name of the Resource Extraction Program is contained in the APPDEF record that was retrieved. If the name of the Resource Extraction Program is not blank, call the Resource Extraction Program using the same parameter list for the GPDLA sending transfer program above.
If the program name is blank, then this application does not need to call the Resource Extraction Program. ;ql;
;id; iv. If the resource extraction program name is not blank, but the program specified in the APPDEF record does not exist, call MMC030 to send a message to the EM
background message queue saying that the resource extraction program does not exist for this remote CE. Return to step SA to read thr: next record with status '30'. ;ql;
&int Design note: We have an exception here where recovery is possible after the user have fixed the problem, even though we do not provide any recovery mechanism when a program does not exist.
After the GPLDA sending transfer program is called su.ecessfully, the CE status would have been updated to '48'. Thus even if the resource extraction program doesn't exist, a CE status of '48' allows the user to resend this CE. However, if the GPLDA
sending transfer program or the sending; transfer program does not exist, the CE status would get stuck at '31'.
Since no other processor can pick up any CE with status '31', recovery is not possible in these cases.
&end ;id; E. If the call to the sending transfer program or the transfer of GPDIST
was not successful, the status of the REMCOM record will have been changed by the sending transfer program, so that it will not be eligible for any more processing. Return to step SA to read the next record. ;ql;
;id; F. For all three REIbICOM application types with status of the communications entry now 31, now write the recordl to REMH1LD. Load the fields as follows: ;ql;
;id; i. l111 REMCOM fields map as would be expected into the corresponding REMHLD
fields, with the: exception of the status.
The status should be '14', indicating that the CE was just sent from a remote system. ;ql;
;id; ii. A record is 'written to the Remote Communications Entry Holding File (REMHLD), which has the same file layout as the Local Communications File (LOCCOM). This is done because when the generic transfer procedure is called to actually send the remote CE
to the appropriate system as a local CE, a CPYF will be performed. That CPYF can only succeed if the to and from files have the game buffer layout, as REMHI_D and LOCCOM do. Prior to this, the GPDIST record should be sent to the remote system for consolidation applications, and the data file should be sent to the remote system for distribution applications. ;ql;
;id; G. Now that REMH:LD has been loaded, call the generic transfer procedure to handle the sending of the REMHLD record to the remote system. ;ql;
~id; i. C~et the name of the generic transfer procedure from APPDEF for sending Communications files for the application '*SYSTEM' by calling the standard subroutine $APPDF
where the KPCiM (program name key field) is equal to '*SYSTEM'. ;ql;
;id; ii. Load the appropriate fields in the data structure $MCGNR, passed as a parameter to the generic trasnfer procedure, as follows: ;ql;

;id;PMCGNR PLIST ;ql;

;id;PARM $MCGNR ;ql;

;id;PARM PERROR lA error code ;ql;

'id;PARM PMSG 7A CPF message # ;ql;

;id;Clear the data structure as the data structure holds ;ql;
data for IS transactions. We are only using the DS

;id;for one call .ql;

;id;Load $SVALA with the REMHlLD CE # ;ql;

;id;Load $SFLA with 15 (length of selec values) ;ql;

;id;Load $SEND with 'S' ;ql;

;id;Load $DORR with 'D' ;ql;

;id;Load $LDEXT with 'Y' ;ql;

;id;Load $TYPE witih 'CE', designating a communications ;ql;
entry as the type of transmission.

;id;Load $DORB with 'D', indicating that the REMHLD records should be deleted after being successfully ;ql;

;id;transmitted ;ql;

;id;Load $RORL with 'R', designating a REMCOM record ;ql;

;id;Load $WRTRS with 'N' (do not write response) ~ql;

;id;Load $CEF1 with 'ZLCENO' ;ql;

;id;Load $SFLDI with 'ZLCENO' ;ql;

;id;Load $SCEF1 with 'REMHLD" ;ql;

;id;Load $SCEL1 with the COMDI?F field CQLIBR ;ql;

;id;Load $EXTFI with 'EXREMB" ;ql;

;id;Load $EXTLI with the System X-Ref file (SYSXRF) field ;ql;
FXELIB (retrieve the SYSXRF record for ;id;the REMCOM target system) ;ql;

;id;Load $TGTFI with 'LOCCOM' ~ql;

;id;Load $TGTLI with the Cross-Reference field FXDLIB ;ql;

&int&
Design Note: Unlike other sending functions where we send chunks of records to a remote system at a time, the function of sending an actual communications entry is performed one record at a time. Although this seems sluggish initially, it is absolutely necessary to take this approach, because if we send a group of CE's at a time, we lose the tracking essential to each CE itself. For each CE sent, it is imperative that we track whether or not the information that must precede the CE reached the other system, and if not, why. Then, and only then, may the CE
be sent. If we send chunks of CE's this control is lost.
&end&
;hi;B. File Usage ~ql;
;id;APPDEF IF Application Definition File ;ql;

;id;COMDEF IF Communications Definition File ;ql;

;id;EMBKGD OF Enterprise Management Background;ql;
File ;id;REMCOM OF Remote Communications Entry File;ql;

;id;REMCOMD OF Logical View of REMCOM by Dt/Tm ;ql;
Last Mt ;id;REMCOMO1 OF Logical View of REMCOM with status;ql;
'30' ;id;REMHLD OF Remote Communications Entry Holding;ql;
File ;id;SYSXRF IF System Cross-Reference File ;ql;

;id;;hx;
$END$

5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 1 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . .. . . . MMC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 100 H************************:*******************************

200 H* * 07/22/91 300 H* Release - 03 Mod Level - 10 * 06/26/92 400 H* * 07/22/91 S00 H* * 07/22/91 600 H* * 07/22/91 700 H* * 06/26/92 800 H* * 07/22/91 900 H* MODULE: Enterprise Management * 07/22/91 1000 H* * 07/22/91 1 100 H* PROGRAM NAh1E: MMC040 - Remote * 08/09/91 Communications Processor 1200 H* Program * 07/29/91 1300 H* * 07/22/91 1400 H* FUNCTION: This program processes * 08/09/91 the Remote 1SC)0 H* Communication Entry file (REMCOM)* 08/09/91 1600 H* * 07/22/91 170() H* CALLING PROGRAM: MlViC040XJ - * 08/09/91 XJ Procedure to open alt 1800 H* logical, work and open query files* 07/22/91 1900 H*

2000 H* CALLED PROGRAM: Generic Transfer * 02/OS/92 Program 2100 H* G1PLDA Sending Transfer Program * 03/11/92 2200 H* MlviC030 - Communications Message* 10/07/92 Sending 2300 H* Program * 10/07/92 240() H* M:?M620X - Retrieve Current Date * (~/2$/~
and Time 2500 H* Procedure 2600 H* M:~M700X - Reclaim Resources Procedure* 08/17/92 2700 H* MZU160 - Date Calculation Program* 10/07/92 2800 H* Sending Transfer Program * 01/27/92 2900 H* * 07/22/91 3000 H* /COPY INPUT: $2;U160 - Data Structure* 10/14/92 for MZU160 3100 H* * 10/07/92 3200 H* /COPY ROUTINES: $APPDF - Application* 01/27/92 Definition search 3300 H* * 01/27/92 3400 H***************~:***************************************

3500 H* PROGRAM DESCRIPTION * 07/22/91 3600 H***************~:***************************************

3700 H* * 07/22/91 3800 H* This program :is the Remorte Communications* 08/09/91 Processor. It 3900 H* reads through ohe REMCOM file * 01/27/92 and calls the appropriate 4000 H* program. The status of th,e REMCOM* 01/27/92 record is changed to 4100 H* put into a waiting status. At * 01/27/92 the time intervals specified 4200 H* in COMDEF, the remote communications* 01/27/92 records will be 4300 H* transmitted. T'he REMCOM file * 09/28/92 was defined with the end 4400 H* of file delay. 'therefore, a deactivation* 01/27/92 record must be 4500 H* encountered to end the processor.* 01/27/92 A reset record may be 4600 H* hit to reset the pointer. * 01/27/92 4700 H* * 07/22/91 4800 H*** ****************************************************

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 2 SOURCE FILE . . . . . . . XLIBEM/MR;PGSRC
IvIEMBER. . . . . . . . . . . MM:C040 !iEQNBR*...+...I...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 5000 F*******************************************************07/22/91 5100 F* FUNCTION OF INDICATORS * 07/22/91 5200 F******************************************************07/22/91 5300 F* * 07/22/91 5400 F* 98 - General Indicator * 08/05/91 5500 F* 99 - General Indicator * 07/22/91 5600 F* * 07/22/91 5700 F***************~:***************************************07/22/91 5900 F***************~:***************************************07/22/91 F* * 07/22/91 6100 F* FILE SPECIFICATIONS * 07/22/91 6200 F* * 07/22/91 6300 F***************~:***************************************07/22191 F* 07/22/91 6700 FCOMDEF IF I? DISK 08/01/91 7400 FREMCOMDTUF I? K DISK A 08/22/91 7700 F FREMCOM: KRENAMEFREMCO1 04/22/93 7900 FREMHLD UP I? K DISK A 08/28/91 8100 FSYSXRF IF I? K DISK 01/27/92 8300 E*************************:******************************07/22/91 8400 E* * 07/22/91 8500 E* ARRAY DEFINITION * 07/22/91 8600 E* * 07/22/91 8700 E*******************************************************07/22/91 8800 I****************~:***************************************07/22/91 8900 I* * 07/22/91 9000 I* I:fSPUT SPECIFICATIONS * 07/22/91 9100 I* * 07/22/91 9200 I*****************:***************************************07/22/91 9300 I* 07/26/91 9400 I* Externally described data structure to define01/27/92 the parameter 9500 I* list for the generic transfer program 01/27/92 9600 I* 01/27/92 9800 I* 10/14/92 _ 67 -5738PW1 V2R2M0 920615 S'~EU SOURCE LISTING 5/28/93 14:08:35 Page 3 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC040 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 9900 I* Externally described dam structure to define 10/14/92 the parameter 10000 I* list for the EM message sending program, 10/14/92 10100 I* 10/14/92 10200 I$MC030 E DSDSMC030 10/14/92 10300 I* 01/27/92 10400 I* Data Structure to break down the Communications 01/27/92 Entry Number 10500 I* which consists of the Number, *RESET, *INIT 01/27/92 or *END and the 10600 I* job number 01/27/92 10700 I* 01/27/92 11100 I* 01/27/92 11200 I* Data Structure to break down the release-modification 01/27/92 level 11300 I* field which locks similar to 04-00. 01/27/92 11400 I* 01/27/92 11800 I* 10/07/92 11900 I/COPY MZDDSSRC,$ZU160 01/27/92 12100 C***************~'***********************************************

12200 C* * 07122/91 12300 C* CALC1;1LATION SPECS * 07/22/91 12400 C* * 07/22/91 12500 C***************~:***********************************************

12600 C* * 07/22/91 12700 C***************a:***********************************************

12800 C* M A I :N L I N E * 07/22/91 12900 C***************~:***********************************************

13000 C* * 07/22/91 13100 C* The MAINLIPdE is executed once. It calls 01/27/92 the subroutine *

13200 C* PROREM to process REMCO (the Remote Communications 01/27/92 File) *

13300 C* The program ends when a 'deactivate' record 01/27/92 is encountered *

13400 C* in REMCOM. The subroutine ENDPRO will perform 04/21/93 any *

13500 C* final processing and the program ends in 04121/93 the MAINLINE. *

13600 C* * SRCE3 04/22/93 L3700 C*************************:**************************************SRCE3 13800 C* * SRCE3 04/22/93 13900 C* INDICATORS USED : LR * SRCE3 04/22/93 14000 C* * SRCE3 04/22/93 14100 C* EXECUTES . ENDPRO PROREM * SRCE3 04/22/93 4200 C* * SRCE3 04/22/93 4300 C*************************=a*************************************SRCE3 C* SRCE3 04/22/93 14500 C *ENTRY PLIST 07/25/91 4600 C PARM $PJOBN 02/05/92 1.4700C PARM $PUSPF 02/05/92 :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 4 :iOURCE FILE . . . . . . . XLI:BEM/MR;PGSRC
IvIEMBER. . .. . . . . . . . MM:C040 'iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 14600 C* 07/22/91 14900 C* Process the Remote Communications File 04/21/93 15000 C* 04/21/93 15100 C E:KSR PROREM 08/09/91 15200 C* 04/21/93 15300 C* Perform any necessary functions before 04/21/93 ending 15400 C* 04/21/93 15500 C* E:KSR ENDPRO 04/21/93 15600 C* 07/22/91 15900 C* 07/22/91 16100 C** *********** * 1:NZSR SUBR ****************** 03/02/92 *INZSR SUBR *

16200 C* * 07/22/91 16300 C* The purpose of the *INZSR subroutine 01/27/92 is to perform the *

16400 C* initial calculations that need to be 01/27192 done on the initial *

16500 C* call of the pro~;ram * 01/27/92 16600 C* * SRCE3 04/22/93 16700 C** *************~:********************************************SRCE3 16800 C* * SRCE3 04/22/93 16900 C* INDICATORS USED : 99 * SRCE3 04/22/93 17000 C* * SRCE3 04/22/93 17100 C***************~:********************************************

17200 C* SRCE3 04/22/93 17300 C *INZ;iR BE GSR 03/02192 17400 C* 07/22/91 17500 C* Initialize the standard variables. 07/22/91 17600 C* 07/22/91 17700 C MOVE "M" MODULE Module 10/07/92 17800 C MOVEL"MMC040" $PGM Program Name 01/27/92 17900 C* 08/01/91 18000 C* 08/09/91 Access COMDEF
for communications definition constants.

18100 C* This file has ony one record. Therefore, 08/09/91 it needs to be 18200 C* read only once (similar to the tailoring 08/09/91 files) 18300 C* 08/01/91 18400 C 1 C'.HAINCOMDEF 99 08/01/91 18500 C* 08/09/91 18600 C* 08/20/92 Set up the next time LOW
priority transmission will take place 18700 C* by this processor by calling the data 08/20192 calculation program 18800 C* 08/09/91 :18900C CALL "MM620X" PZM620 Get date & time 09/28/92 :.9000C Z. ADDPDATE QQTDTL Current Date 09/28/92 1.9100C Z.-ADDPTIME QQTTML Current Time 09/28/92 7.9200C C'LEAR$ZU160 01/27/92 1.9300C Z-ADDQQT'DTL $ORDT Current Date 08/20/92 19400 C Z-ADDQQTTML $ORTM Current Time 08/20/92 19500 C Z-ADDCQFRQL $SEC Trans Frequency 08/20/92 19600 C MOVE "F" $FORB Calc Forward 01/27/92 5738PW1 V2R2M0 920615 S~EU SOURCE LISTING 5/28/93 14:08:35 Page 5 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 19700 C* 08/09/91 19800 C CALL "M:~U 160" 09/25/91 19900 C PARM $ZU160 01/27/92 20100 C Z-ADD$NWDT QQTDTL Next Date 08/20/92 20200 C Z-ADD$N'1VTM QQTTML Next Time 08/20/92 02300 C* 08/22/91 02400 C* Set up the next time HIGH priority 08/20/92 transmission will take place 02500 C* by this processor by calling 08/20/92 the data calculation program 20600 C* 08/20/92 20700 C CALL "M~'_M620X" PZM620 Get date 09/28/92 & time 20800 C Z-ADDPD,ATE QQTDTH Current 09/28/92 Date 20900 C Z-ADDPTIME QQTIME Current 09/28/92 Time 21000 C CLEAR$ZI:J 160 08/20/92 21100 C Z-ADDQQ'TDTH $ORDT Current 08/20/92 Date 21200 C Z-ADDQQ'TIME $ORTM Current 08/20/92 Time 21300 C :Z-ADDCQ1FRQH $SEC Trans Frequency 08/20/92 21400 C ',MOVE "F" $FORB Calc Forward 08/20/92 21500 C* 08/20/92 21600 C CALL "M2:LJ160" 08/20/92 21700 C 1?ARM $ZU160 08/20/92 21800 C* 08/20/92 21900 C ;?-ADD$NWDT QQTDTH Next Date 08/20/92 22000 C ;?-ADD$NVVTM QQTTMH Next Time 08/20/92 22100 C* 08/20/92 22200 C I?NDSR *INZSR SRCE3 03/02/92 22300 C* 07/22/91 22500 C** ******* $DEF'SR SUBR ********************** 01/27/92 $DEFSR SUBR *

22600 C* * 01/27/92 22700 C* The purpose of the $DEFSR subroutine* 01/27/92 is to define the 22800 C* program field; * 01/27/92 22900 C* * SRCE304/22/93 23000 C***************a:*************************************
***********SRCE304/22/93 23100 C* * SRCE304/22/93 23200 C* INDICATORS USED : NONE * SRCE304/22/93 23300 C* * SRCE304/22/93 :L3400C****************:*************************************
***********SRCE304/22/93 23500 C* SRCE304/22/93 :L3600C $DEFSR BI?GSR 01/27/92 :?3700C* 01/27/92 :?3800C* Define the standard varial>les. 01/27/92 :?3900C* 01/27/92 :>.4000C MOVE *BLANKS MODULE 1 Module 10/07/92 24100 C MOVE *BLANKS $PGM 8 Program 10/07/92 Name :'4200C MOVE *BLANKS PERROR 1 Error Byte 02/13/92 :!4300C MOVE *BLANKS QQTEMP 1 Temporary 04/22/93 Var C* 01/27/92 :!4500C* Set up plist for calling the 01/27/92 sending transfer program :5738PW1 V2R2M0 920615 SEU SOU:ItCE LISTING 5/28/93 14:08:35 Page 6 ;iOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MM(C040 ;iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 24600 C* 01/27/92 24700 C PMCSND P:LIST 01/27/92 24800 C P.ARM PSEND Indicate Send 01127/92 24900 C P,ARM PCENO Comm Entry 01/27/92 #

25000 C P,ARM PRORL Indicate Remote01/27/92 25100 C P,ARM PGNRC Generic Transf01/27/92 25200 C P,ARM PERROR Error Byte 03/11/92 25300 C* 02/05/92 25400 C* Set up plist for calling 02/05/92 the resource extraction program 25500 C* 02/05/92 25700 C PARM PSEND Indicate Send 02/05/92 25800 C PARM PCENO Comm Entry 02/05/92 #

25900 C PARM PRORL Indicate Remote02/05/92 26000 C PARM PGNRC Generic Transf02/05/92 26100 C PARM PERROR Error Byte 03/11/92 26200 C* 10/07/92 26300 C* Set up plist for calling 10/07/92 MM(:030, the Communications Message 26400 C* Sending Program. 10/07/92 26500 C* 10/07/92 26700 C PARM $MC030 10/07/92 26800 C* 09/28/92 26900 C* Set up plist for calling 09/28/92 the retrieve date and time 27000 C* procedure (M:?M620X) 09/28/92 27100 C* 09/28/92 27200 C PZMti20 PLIST 09/28/92 27300 C PARM PDATE Current Date 09/28/92 27400 C PARM PTIME Current Time 09/28/92 27500 C* 01/27/92 27600 C* *LIKE DEFN the work 01/27/92 variables 27700 C* 01/27/92 27800 C* Low Priority 08/20/92 :?7900C *LIKI? DEFN ZMENDT QQTDTL Transmit Date 08/20/92 28000 C *LIKI? DEFN ZMENTM QQTTML Transmit Time 08/20/92 :?8100C* High Priority 08/20/92 :?8200C *LIKI: DEFN ZMENDT QQTDTH Transmit Date 08/20/92 :?8300C *LIKE DEFN ZMENTM QQTTMH Transmit Time 08120/92 :>.8400C* 08/20/92 '.28500C *LIKI? DEFN FDPRTY QQPRTY PRORCD Priority08/20/92 28~ C* 01/27/92 28700 C* 01/27/92 LIKE
DEFN
the klist and pliist variables !8800 C* 01/27/92 2 8900C *LIKE DEFN BGJOBN $PJOBN Job Number 09/28/92 ;!9000C *LIKI? DEFN BGUSER $PUSPF User Profile 09/28/92 :!9100C *LIKI? DEFN FDFREL KFREL From rel-mod 01/28/92 lv !9200 C *LIKI? DEFN BGJOB KJOB Job Name 09/28/92 :!9300C *L1KI? DEFN BGJOBN KJOBN Job Number 09/28/92 :!9400C *LIKI? DEFN FXLSYS KLSYS Local System 09/28/92 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 7 SOURCE FILE . . . . . . . XL1BEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 29500 C *LIK:E DEFN' FDPGM KPGM Program 09/28/92 name 29600 C *LIK:E DEFN' FXRENT KRENT Remote 09/28/92 Entity 29700 C *LIK:E DEFN FXRSYS KRSYS Remote 09/28/92 System 29800 C *LIK:E DEFN FDTREL KTREL To rel-mod01/28/92 levl 29900 C *LIK:E DEFN BGUSER KUSER User Profile01/28/92 30000 C *LIK:E DEFN ZMCENO PCENO Comm Entry01/28/92 t~

30100 C *LIK.E DEFN ZMDTMT PDATE Current 09/28/92 Date 30200 C *LIKE DEFN FDGPGM PGNRC Generic 01/28/92 Trans P

30300 C *LIKE DEFN ZMCPFM PMSG CPF message09/28/92 no 30400 C *L1RE DEFN 'LMTMMT PTIME Current 09/28/92 Time 30500 C* 01/27/92 30600 C* 01/27/92 Set up Key list for retrieving information from the 30700 C* the Application Definition 01/27/92 file (APPDEF) 30800 C* 01/27/92 30900 C KAP:PDE KLIST 01/27/92 31300 C* 01/27/92 31400 C* Set up Key list for 01/27/92 deleting a record in the background file 31500 C* (EMBKGD) for this processor. 01/27/92 31600 C* 01/27/92 31700 C KEMBKG K:LIST 01/27/92 31800 C K:FLD KJOB 01/27/92 32100 C* 01/27/92 32200 C* 01/27/92 Set up Key list for the SYS~:RF
file 32300 C* 01/27/92 32500 C KlLD KLSYS 01/27/92 32600 C KlLD KRSYS 01/27/92 32700 C KlLD KRENT 01/27/92 32800 C* 01/27/92 32900 C ENDSR $DEFSR SRCE3 01/27/92 33000 C* 01/27/92 MMDDSS:ftC,$APPDF

33400 C*********** CALGEN * 08/12/91 C'.ALGEN SUBR
SUBR
************************

:33500C* * 08/12/91 :33600C* The CALGEN subroutine * 08112/91 will call the generic transfer :33700C* program after loading * 08/12/91 the data structure :33800C* * SRCE3 :33900C***
**********************:***********************************************

34000 C* * SRCE3 :34100C* INDICATORS USED : 1VONE * SRCE3 :14200C* * SRCE3 :34300C* EXECUTES : !6APPDF * SRCE3 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 8 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . M1V(C040 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 34400 C* * SRCE3 04/22/93 34500 C* EXECUTED FROM : PRORCD * SRCE3 04/22/93 34600 C* * SRCE3 04/22/93 34700 C**
**********************:k***********************************************

34800 C* SRCE3 04/22/93 35000 C* 08/12/91 35100 C* Clear the data structure 08/12/91 which will be used by the generic 35200 C* transfer program. 08/12/91 This needs to be done as the data 35300 C* structure wilt hold 01/27/92 up to 15 programs and we are using 35400 C* only one for this 08/12/91 application.

35500 C* After loading the 08/12/91 DS, call the generic transfer program 35600 C* 08/12/91 35700 C CLEA:RPMCGNR 01/27/92 35800 C MOVE?LZMCENO $SVALA 02/20/92 35900 C MOVE?LZMCENO $CENO 02/28/92 36000 C MOVE; ' 15' $SFLA 01/27/92 36100 C MOVE, 'S' $SEND 08/12/91 36200 C MOVE; 'D' $DORR 01/27/92 36300 C MOVE: 'Y' $LDEXT 08/12/91 36400 C MOVE: 'CE' $TYPE 01/27/92 36500 C MOVE; 'D' $DORB 01/27/92 36600 C MOVE', 'R' $RORL 01/27/92 36700 C MOVE, 'N' $WRTRS 01/27/92 36800 C MOVEL'ZLCENO' $CEF1 03/06/92 36900 C MOVEL'ZLCENO' $SFLD1 03/06/92 37000 C MOVEL'REMHLD' $SCEF1 02/20192 37100 C MOVELCQLIBR $SCEL1 02/20/92 37200 C MOVEL'EXREME' $EXTF1 02/20/92 37300 C MOVELFXELIB $EXTLI 02/20/92 37400 C MOVEL'LOCCOM' $TGTF1 02/20/92 37500 C MOVELFXDLIB $TGTLI 02/20/92 37600 C* 08/12/91 37700 C* 01/27/92 Chain to APPDEF
with '*SYSTEM' for the supplied generic 37800 C* record for sending 01/27/92 system files.

37900 C* 08/12/91 38000 C MOVEL'*SYSTEM 'KPGM 02/20/92 :38100C MOVE ZMFREL KFREL 08/12/91 :38200C MOVE ZMTREL KTREL 08/12/91 :38300C* 08/12/91 :38400C EXSR $APPDF 08/12/91 :38500C* 08/12/91 :38600C CALL 1FDGPGM 01127/92 38700 C PAR.M PMCGNR 01/27/92 '38800C PARM PERROR 02/13/92 :18900C PARM PMSG 02/13/92 -l~ C* 08/12/91 x9100 C ENDSR: CALGEN SRCE3 08/12/91 .19200C/SPACE 08/01/91 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 9 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC040 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 39300 C********* 08/09/91 CHKTIM
SUBR:
**********************
CHKTIM
SUBR
*

39400 C* * 08/09/91 39500 C* The CHKTIM subroutine checks the high and 09/28/92 low priority *

39600 C* transmission times against the current 09/28/92 time. If it *

39700 C* is time to transmit, call PRORCD to process 09/28/92 the remote *

39800 C* comrnunication records that are ready to 09/28/92 be processed *

39900 C* eithen~ for high or low priority applications 09/28/92 *

40000 C* * SRCE304/22/93 40100 C**
**********************,~***************************************SRCE304/22/93 40200 C* SRCE304/22/93 40300 C* INDICATORS USED : NONE * SRCE304/22/93 40400 C* * SRCE304/22/93 10500 C* EXECUTES . PRORCD * SRCE304/22/93 10600 C* * SRCE304/22/93 .10700 C* EXECUTED FROM . PROREM * SRCE304/22/93 '10800 C* * SRCE304/22/93 '10900 C***************:e*********:***************************************

41000 C* SRCE304/22/93 '11100 C CHK'TIM B13GSR 08/09/91 <11200 C* 08/09/91 11300 C* 1. CHECK HIGH PRIOF;ITY 08/20/92 11400 C* Check the transmission date and time with 08/09/91 the current data 11500 C* and time. If the transmission date/time 08/09/91 is less than X11600 C* the current date/time, then advance to 08/09/91 the next transmission ~I1700 C* date/time. Transmit the records by executing 08/09/91 the subroutine ~I1800 C* PRORCD. 08/09/91 X41900 C* 08/09/91 ~G2000 C CALL 'MZM620X' PZM620 Get date & time 09/28/92 ~t2100 C QQTDTH IFLT PDATE

~~2200 C QQTDTH OREQ PDATE 09/28/92 ~~2300 C QQTPvIH AI~1DLEPTIME 09/28/92 4.2400 C CL,EAR$ZU160 01/27/92 4.2500 C Z-ADDQQTDTH $ORDT Last date 08/20/92 4.2600 C Z-ADDQQTIME $ORTM Last time 08/20/92 42700 C Z-ADDCQFRQH $SEC Trans Frequency 08/20/92 42800 C MOVE 'F' $FORB Calc Forward 01/27/92 42900 C* 08/09/91 43000 C* Call the date calculation program with 08/09/91 the data 43100 C* structure $ZU160 08/09/91 43200 C* 08/09/91 43300 C CALL 'MZU160' 09/25/91 43400 C PA,RM $ZU160 01/27/92 43500 C* 08/09/91 43600 C Z-.ADD$NWDT QQTDTH Next Date 08/20/92 43700 C Z-,ADD$NWTM QQTTMH Next Time 08/20/92 43800 C* 08/09/91 43900 C* Call the subroutine to process the high 08/20/92 priority records only 44000 C* 08/09/91 44100 C MOVE 'H' QQPRTY 08/20/92 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 10 ;SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
MEMBER. . . . . . . . . . . MMC040 pEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 44300 C* 08/20/92 44000 C ENDIF QQTDTH < PDATE09/28/92 44500 C* 08/20/92 44600 C* 2. CHECK L.OW PRIORITY 08/20/92 44700 C* Check the transmission date and 08/20/92 time with the current date 44800 C* and time. If the transmission 08/20/92 date/time is less than x4900 C* the current date/time, then advance 08/20/92 to the next transmission 'i5000 C* date/time. 'Transmit the recordsne 08/20/92 by executing the subrouti '15100 C* PRORCD. 08/20/92 '15200 C* 08/20/92 '15300 C CALL 'MZM620X' PZM620 Get date & 09/28/92 time '15400 C QQT:DTL IF'LT PDATE

'15500 C QQT1DTL O'.I2EQ PDATE 09/28/92 ~L5600 C QQT'rML ANDLEPTIME 09/28/92 15700 C CI:.EAR$ZU160 08/20/92 45800 C Z-ADDQQTDTL $ORDT Last Date 08/20/92 ~I5900 C Z-ADDQQTTML $ORTM Last Time 08/20/92 X46000 C Z-ADDCQFRQL $SEC Trans Frequency08/20/92 ~t6100 C MOVE 'F' $FORB Calc Forward 08/20/92 ~L6200 C* 08/20/92 ~E6300 C* Call the date calculation program 08/20/92 with the data ~~6400 C* structure $Z1J160 08/20/92 ~~6500 C* 08/20/92 4.6600 C CALL 'MZU160' 08/20/92 4.6700 C PARM $ZU160 08120/92 4.6800 C* 08/20/92 46900 C Z-ADD$NWDT QQTDTL Next Date 08/20/92 47000 C Z-ADD$NWTM QQTIML Next Time 08/20/92 47100 C* 08/20/92 47200 C* Call the subroutine to process 08/20/92 the low priority records only 47300 C* 08/20/92 47400 C MOVE 'L' QQPRTY 08/20/92 47500 C E~!;SR PRORCD 08/20/92 47600 C* 08/09/92 47700 C ENDIF QQTDTL < PDATE09/28/92 47800 C* 08/09191 48100 C***********ENDPRO *

SUBR
***********
ENDPRO
SUBR

48200 C* * 07/25/91 48300 C* The ENDPRO subroutine ends the * 07/25/91 processor if a '*END' 48400 C* request was hit or processing * 04/21/93 ended.

48500 C* * SRCE3 04/22/93 48600 C*************************~'******************************

4.8700 C* * SRCE3 04/22/93 4.3800 C* INDICATORS USED : 99 * SRCE3 04/22/93 4.3900 C* * SRCE3 04/22/93 4!000 C* EXECUTED FROM . MAINLN * SRCE3 04/22/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 11 SOURCE FILE . . . . . . . XLI:BEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 49100 C* * SRCE3 04/22/93 49200 C** ******************************************************04/22/93 49300 C* SRCE3 04/22/93 49400 C ENDP'RO BEGSR 07/25/91 49500 C* 07/25/91 49600 C* Delete the correct EM background file record07/26/91 (EMBKGD) for 49700 C* this job/user pro~file/job number. 07/26/91 49800 C* 07/25/91 49900 C MOVEL 'MMC040XJ'KJOB 08/09/91 50000 C NIOVEL$PUSPF KUSER 02/05/92 50100 C Z-ADD$PJOBN KJOBN 02/05/92 50200 C* 07/26/91 50300 C KEMIaK CHAINEMBKGD 99 07/25/91 50400 C *IN99 IFEQ *OFF 01/27/92 50600 C ENDIF *IN99=*OFF 07/25191 50700 C* 04/22/93 50800 C* Delete any Special records (*END, *RESET 04/22/93 or *INIT) from the :10900 C* file for the specific job. Because these 04/22/93 begin with '*' :10100 C* the records will all appear at the beginning04/22/93 of the file :11100 C* so when a non' "" entry is found, end the 04/22/93 loop.

:11200 C* 04/22/93 :11300 C '"LOYAL SETLLREMCOM 04/22/93 :i 1400C *IN99 DOUEQ*ON 04/22/93 :i 1500C READ REMCOM 99 04/22/93 :i 1600C *IN99 IFEQ *OFF 04/22/93 :11700 C* 04/22/93 :i 1800C* Check for a special record 04/22/93 :11900 C* 04/22/93 '12000 C MOVE ZMCENO QQCENO 04/22/93 :12100 C QQJOBN IFEQ $PJOBN 04/22/93 :12200 C (2QTYPE IFEQ '*INT' 04/22/93 '12300 C (~QTYPE OREQ '*END' 04/22/93 '.2400 C QQTYPE OREQ '*RESET' 04/22/93 '2500 C DELETFREMC02 04/22/93 42600 C ENDIF QQTYPE='*INIT' 04/22/93 52700 C ENDIF QQJOBN=$PJOBN 04/22/93 52800 C* 04/22/93 ~~2900 C* Check if end of special records 04/22/93 3000 C* 04/22/93 53100 C 1 SL1BSTQQTYPE:1 QQTEMP 04/22/93 53200 C QQTI?MP IFf~IE '*' 04/22/93 53500 C ENI)IF QQTEMP< >'*' 04/22/93 53600 C* 04/22/93 53700 C ENI)IF *IN99=*OFF 04/22/93 53800 C ErdDDO DOU *IN99=*ON 04/22/93 53900 C* 07/25/91 :p738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 12 SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
)MEMBER. . . . . . . . . . . MN(C040 .iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 54200 C********** * 07/25/91 PRO:RCD
SUBR:
*****************
PRORCD
SUBR

:14300 C* * 07/23/91 54400 C* The PRORCD subroutine processes the * 01/27/92 REMCOM record by 54500 C* reading all the records lirnited by * 02/14/92 the logical view.

54600 C* First, it checks each record to make * 09/28/92 sure the application :14700 C* priority matches the priority being * 09/28/92 processed. Then, :14800 C* if the record is for distribution, * 09/28/92 call the sending :14900 C* transfer program. If the record is * 01/27/92 for consolidation, :15000 C* call the GPLDA formatting program * 01/28/92 and the extraction :15100 C* program. If either of these programs * 01/28/92 completed :15200 C* successfully, call the gen<:ric transfer* 01/28/92 program for :15300 C* both function. * 01/28/92 :15400 C* * SRCE3 04/22/93 :15500 C** *************>.************************************************

55600 C* * SRCE3 04/22/93 '15700 C* INDICATOR;i USED . 98 99 * SRCE3 04/22/93 '.5800 C* * SRCE3 04/22/93 '_5900 C* EXECUTES : $APPDF CALGEN WRTREM * SRCE3 04/22/93 C* * SRCE3 04/22/93 '_6100 C* EXECUTED iFROM . CHKTIM * SRCE3 04/22/93 _'6200 C* * SRCE3 04/22/93 .6300 C****************:************************************************

C* SRCE3 04/22/93 C* 08/12/91 56700 C* Read all the REMCOMO1 records of status 02/14/92 '30' (these are the 56800 C* only records selected by this logical 02/14/92 view). These have 56900 C* all been read by the processor before. 02/14/92 They are 57000 C* picked up here when the transmission 08/12/91 time is reached.

57100 C* 08/12/91 57200 C *LOVAL SETLLFREMCO1 99 04/22/93 57300 C* 08/12!91 57400 C *IN99 DOWEQ*OFF 01/27/92 57600 C IN99 *INEQ IFEQ *OFF 01/27/92 57700 C* 08/09/91 57800 C* Access APPDEF for the sending and 08/13/91 Generic transfer program 57900 C* and the GPLDA forman:ing program 08/13/91 58000 C* 08/09/91 58400 C* 08/09/91 53500 C EXSR $APPDF 08/09/91 5.3600 C* 08/09/91 58700 C* If APPDEF re<:ord cannot be found 08/09/91 the status must be 58800 C* updated with '62' this would mean 08/12/91 the REMCOM record _ 77 _ :p738PW1 V2R2M0 920615 SEU SOUILtCE LISTING 5/28/93 14:08:35 Page 13 SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MNfC040 ;iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 58900 C* could not be processed as no APPDEF record 08/09!91 was found C * 08/09/91 19100 C $$FA,IL IFEQ '1' 08/09/91 19200 C MfOVE '62' ZMSTAT 08/09/91 :19300 C UPDATFREMCO1 04/22/93 :19400 C ITER 01/27/92 :19500 C ENDIF $$FAIL='1' 01/27/92 :19600 C* 08/20/92 :19700 C* Check the priority of the appliation. If the 08/20/92 priority matches :19800 C* the priority that is currently being processed,09/28/92 continue.

:19900 C* Otherwise, rexurn to the beginning of the loop08/20/92 to read the (10000 C* next record. The priority that is being processed08/20/92 was set (10100 C* in CHKTIM subroutine. 08/20/92 (10200 C* 08/20/92 (10300 C QQPRTY IFNE FDPRTY 08/20/92 (10400 C U:NLCKREMCOMO1 08/31/92 (10500 C IT'ER 08/20/92 (10600 C E1VDIF QQPRTY < > FDPRT'Y 08/20/92 60700 C* 01/27/92 (10800 C* Chain to SYS:~RF (System Cross-reference file)01/27/92 to obtain the (10900 C* library associated with the originating system/remote01/27/92 system (11000 C* of the REMCOM record. If the access fails then01/27/92 transmission E~1100 C* cannot occur. Update the status. 01/27/92 E~1200 C* 01/27/92 E~1300 C MOVE ZMORSY KLSYS 01/27/92 E~1400 C MOVE ZMSYS KRSYS 01/27/92 E~1500 C MOVE *BLANKS KRENT 01/27/92 61700 C *IN98 IFEQ *ON 01/27/92 61800 C MOVE '65' ZMSTAT 01/27/92 61900 C UPDA'fFREMCO1 04/22/93 62100 C ENDIF *IN98=*ON 01/27/92 62200 C* 08/12/91 62300 C* If an APPDEF and SYSM:ST record was found, 01/27/92 then update the 62400 C* REMCOM record with status '31' to indicate 01/27/92 that the 62500 C* record was selecoed for transmission. 08/12/91 62600 C* 08/12/91 62700 C MOVE '31' ZMSTAT 08/12/91 62800 C UPDA7"EFREMCO1 04/22/93 62900 C* 08/09/91 63000 C* Call the sending transfer program to load the 08/09/91 data transfer 63100 C* files if type 'CD' or 'DD' 08/09/91 63200 C* 08/09/91 63300 C ZMTYPE IFEQ 'CD' 08/09191 63400 C ZMTYPE OREQ 'DD' 08/09/91 63500 C MOVE 'S' PSEND 08/09/91 6:3700 C MOVE 'R' PRORL 08/09/91 _ 78 _ 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 14 ;SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
MEMBER. . . . . . . . . . . MMC040 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 63800 C MOVI? FDGPGM PGNRC 08/09/91 53900 C MOVE '0' PERROR 03/11/92 C * 08/09/91 54200 C* 10/07/92 54300 C* - if the call fails (*IN98 is 10/07/92 on), call MMC030 to send ~i4400 C* a message to the EM background 10/07/92 message queue saying 64500 C* that the sending transfer program 10/07/92 doesn't exist.

64600 C* Load $LIT1 with the literal e of 10/28/92 sequance # for the nam 64700 C* the program that doesn't exist, 10/28/92 and $LIT2 with the 64800 C* literal sequence ~Y for the 10/28/92 CE type.

t'4900 C* 10/07/92 ti5000 C *IN98 IFEQ *ON 10/07/92 ti5100 C MOVE; MODULE $MODCD 10/07/92 ti5200 C MOVE; '00465' $ERRNO Message #M0046910/07/92 ti5300 C MOVE; ZMCENO $CENUM CE # 10/07/92 ti5400 C MOVE', '00013' $LIT1 'Snd xfer pgm'10/07/92 ti5500 C MOVE', '00019' $LIT2 'Remote' 10/07/92 fi5600 C CALL 'MMC030' PMC030 10/07/92 fi5700 C ENDIF *IN98=*ON 10/07/92 65800 C* 10/07/92 fi5900 C ENDIF' ZMTYPE='CD' 08/09/91 fi6000 C* 08/09/91 66100 C* If consolidated, call the G'~PLDAIf 03/12/92 sending transfer program.

66200 C* the GPLDA is sent successfully,xtraction 03/12/92 call the resource e E~6300 C* program if there is one. (That 09/04/92 is, if FDEPGM is not blank.) f'~~ C* 08/09/91 E~6500 C ZMTYPE IFEQ 'CN' 08/09/91 E~6600 C MOVE 'S' PSEND 08/09/91 6.6800 C MOVE 'R' PRORL 08/09/91 67000 C MOVE '0' PERROR 03/11/92 67100 C* 08/09/91 67200 C CALL :FDFPGM PMCSND 98 GPLDA Snd/tran10/07/92 67300 C* 10/07/92 67400 C* - if the call faills (*IN98 10/07/92 is on), call MMC030 to send 67500 C* a message to the EM background 10/07/92 message queue saying 67600 C* that the GPL,DA sending; transfer 10/07/92 program doesn't exist.

67700 C* 10/07/92 67800 C *IN98 IFEQ *ON 10/07/92 67900 C MOVE MODULE $MODCD 10/07/92 68000 C MOVE '(10469' $ERRNO Message #M0046910/07/92 68100 C MOVE ZMENO $CENUM CE # 10107/92 68200 C MOVE '00015' $LITI 'GPLDA and 10/07/92 pgm' 68300 C MOVE '(10010' $LIT2 'Remote' 10/07/92 68400 C CALL 'MMC030' PMC030 10/07/92 68500 C ENDIF *IN98=*ON 10/07/92 68600 C* 10/07/92 _ 79 _ :~738PW 1 V2R2M0 920615 SEU SOUIftCE LISTING 5/28/93 14:08:35 Page 15 ;iOURCE FILE . . . . . . . XLLBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MMfC040 ;iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 58700 C* - if the GPLDA is sent successfully, call 10/07/92 the resource extraction 58800 C* extraction program is there is one. (That 10/07/92 is, if FDEPGM is 58900 C* not blank.) 10/07/92 C* 10/07/92 ~i9100 C PERROR IFEQ ''O' 03/11/92 ~i9200 C *IN98 ANDEQ*OFF 10/07/92 69300 C FDEPGM ANDI~fE*BLANKS 09/04192 69400 C CALL FDEPGM PMCEXT 98 Extraction Pgm 10/07/92 ti9500 C* 10/07/92 ti9600 C* - if the call fails (*IN98 is on), call MMC03010/07/92 to send ti9700 C* a message to the EM background message queue 10/07/92 saying ti9800 C* that the resource extraction program doesn't 10/07/92 exist.

ti9900 C* Load $LIT1 with the literal sequence ~i for 10/28/92 the name of '0000 C* the program that doesn't exist, and $LIT2 10/28/92 with the 'i0100 C* literal sequence >r for the CE type. 10/28/92 '0200 C* 10/07/92 ''0300 C *IN98 IFEQ *ON 10/07/92 x'0400 C MOVE. MODULE $MODCD 10/07/92 ''0500 C MOVE '00169' $ERRNO Message It MOD469 10/07/92 ;'0600 C MOVE ZMCENO $CENUM CE /f 10/07/92 .'0700 C MOVE '00012' $LIT1 'Resc extr pgm' 10/07/92 ','0800C MOVE '00019' $LIT2 "Remote' 10/07/92 ;0900 C CALL 'MMC030 PMC030 10/07/92 1000 C ENDIF' *IN98=*ON 10/07/92 .1100 C* 10/08/92 1200 C ENDIF PERROR='0' 10/08/92 T1300 C* 10/07/92 71400 C ENDIF ZMTYPE='CN' 08/09/91 71500 C* 08/09/91 71600 C* If the no error was found, then the previous 03/11/92 programs were 71700 C* successful. \~Vrite a record to REMHLD and 08/12/91 call the generic 71800 C* transfer program. 08/12/91 71900 C* 08/12/91 72000 C PERR.OR IFEQ '0' 03/11/92 72100 C *IN9E~ ANDEQ*OFF 10/08/92 72400 C ENDIF PERROR='0' 08/12/91 72500 C* 08/09/91 72600 C* After all the program call s have completed 02/26/92 for the current 72700 C* record, call a program to close all the programs02/26/92 using 72800 C* the Reclaim Resource command (RCLRSC). 02/26/92 72900 C* 02/26/92 73000 C CALL 'MZM700X' 02/26/92 73100 C* 02/26/92 73300 C* 04/20/93 73400 C ENDIF *IN99=*OFF 08/12/91 73500 C ENDDO DOW *IN99=*OFF 08/12/91 :5738PW 1 V2R2M0 920615 SEU SOUIEtCE LISTING 5/28/93 14:08:35 Page 16 :iOURCE FILE . . . . . . . XLIBEM/MB;PGSRC
1~IEMBER. . . . . . . . . . . MM:C040 :iEQNBR*...+...1...+...2...+,..3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 73600 C* 08/13/91 73700 C MOVE *OFF *IN99 01/27/92 73800 C* 08/09/91 '13900 C ENDS:Et PRORCD SRCE3 08/12/91 '74000 C/SPACE 01/27/92 '74100 C** ************* PROREM SUBR ************ 01/27/92 PROREM SUBR *

'14200 C* * 01/27/92 '14300 C* The PROREM subroutine; processes the 01/27/92 REMCOMDT file by *

'I4400 C* determining if the record is an initialization, 01/27/92 reset, *

'14500 C* end record, or normal P;EMCOM record. 01/27/92 A normal REMCOM *

'74600 C* record is set to a waiting; status 01/27192 and will be processed *

'4700 C* at frequencies set in the COMDEF file. 01/27/92 *

'4800 C* * SRCE3 04/27/93 '4900 C** **********************************************************SRCE3 'i5000 C* * SCRE3 04/22/93 '5100 C* INDICATOR;i USED : 98 99 * SRCE3 04/22/93 '5200 C* * SRCE3 04/22/93 '.5300 C* EXECUTES . CHKTIM RSTPRO * SRCE3 04/22/93 ','5400C* * SRCE3 04/22/93 ','5500C* EXECUTED :FROM . MAINLN * SRCE3 04122/93 ;'5600 C* * SRCE3 04/22/93 75700 C***************~:*********************************************

75800 C* SRCE3 04/22/93 7 5900 C PROF;EM BI:GSR Ol /27192 76000 C* 01/27/92 76100 C *IN9S~ DOWEQ*OFF 01/27/92 76200 C* 06/18/92 76300 C* Check if it is time to tran;>mit 06/18/92 76400 C* 06/18/92 76500 C E3(SR CHKTIM 06/18/92 76600 C* 01/27/92 76800 C* 02/03/93 76900 C* If a shut down request is issued for 02/03/93 this job, end 77000 C* the processor. 02/03/93 77100 C* 02/03/93 77200 C SFfTDN 98 02/03/93 77300 C *IN98 IFIEQ *ON 02/03/93 77400 C UPdLCKREMCOMDT 04/30/93 77600 C ErdDIF *IN98=*ON 02/03/93 77700 C* 02/03/93 77800 C *IN99 IFIEQ *OFF 01/27/92 77900 C* 01/27/92 78000 C* The CE # is a combination of *RESET 01/27/92 or *END and the job 78100 C* job number if it is not a normal communications 01/27/92 entry.

78200 C* The v~sriable QQCENO is a date structure 01/27/92 which breaks 78300 C* into QQTYPE (*ItESET or *END) and QQJOBN 01/27/92 (job number) 78400 C* 01/27/92 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 17 ,SOURCE FILE . . . . . . . XLIBEM/MF;PGSRC
MEMBER. . . . . . . . . . . MNfC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 78600 C* 01/27/92 78700 C* Check the CE # to deternnine if this is 01/27/92 an initialization 78880 C* request. Check if the record corresponds 01/27/92 with this job.

78900 C* Return to read another record. 01/27/92 79000 C* 01/27/92 79100 C QQTYPE IFEQ '*INIT' 01/27/92 79200 C QQJOBN IFEQ $PJOBN 02/05/92 '79400 C ELSE 06/19/92 '79500 C UNLCKREMCOMDT 06/19/92 '79600 C EIVDIF
QQJOBN-$PJOBN 01 /27/92 '79700 C ITER 01/27/92 '79800 C EIVDIF QQTYPE='*INIT' 01/27/92 '79900 C* 01/27/92 .30000 C* Check the CE # to determine if this is 01/27/92 a deactivate request .30100 C* The deactivate request is job specific. 01/27/92 Check that the 80200 C* request is for the current job. Delete 04/21/93 the deactivate 80300 C* request so no other processors pick it 04/21/93 up. End the 80400 C* program. If it is not the current job, 04/21/93 return to read 130500 C* another record. 04/21/93 130600 C* 01/27/92 80700 C QQT'~CPE IFEQ '*END' 01/27/92 80800 C QQJC)BN IFEQ $PJOBN 02/05/92 (11000 C LI?AVE 04/21/93 (11100 C ELSE 06/19/92 f~1200 C U1VLCKREMCOMDT 06/19/92 (11300 C ENDIF QQJOBN=$PJOBN 01/27/92 f~1400 C ITER 01/27/92 f~1500 C ENDIF QQTYPE='*END' 01/27/92 f~1600 C* 01/27/92 f~1700 C* Check the CE # to determine if this is 01/27/92 a reset request 81800 C* The reset records are job specific - check01/27/92 that the (.1900 C* reque;;t is for the correct job. 01/27/92 82000 C* 01/27/92 82100 C QQTS.'PE IFiEQ '*RESET' 01/27/92 82200 C QQJO~BN IFIEQ $PJOBN 02/05/92 82300 C EJ!;SR RSTPRO 01/27/92 QQJOBN-$PJOBN 01/27/92 82800 C ENDIF QQTYPE='*RESET' 01/27/92 82900 C* 01127/92 83000 C* If the record is not a reset, initialization,01/27/92 or deactivation 83100 C* then cihange status from '15' to '30' 01/27/92 so no other processors 83200 C* pick ap the record. It also indicates 01/27/92 that the 83300 C* record is waiting to be sent. 01/27/92 :5738PW1 V2R2M0 920615 SEU SOUIftCE LISTING 5/28/93 14:08:35 Page 18 SOURCE FILE . . . . . . . XLIBEM/MB;PGSRC
MEMBER. . . . . . . . . . . MMC040 ;iEQNBR*...+...1...+...2...+
..3...+...4...+...5...+...6...+...7...+...8...+...9...+...0 B3400 C* 01/27/92 83500 C ZMC'ENO DSPLY 05/27/93 83600 C MfOVE '30' ZMSTAT 01/27/92 33800 C* 04/20/93 83900 C Sl?TOP 99 04/20/93 $4000 C* 04/20/93 84100 C E1VDIF *IN99=*OFF 06/18/92 .34200 C ElVDDO DOW *IN99=*OFF 01/27192 .34300 C* 01/27/92 134600 C*********** 07/25/91 RSTPRO
SI:JBR
*****************
RSTPRO
SUBR
*

134700 C* * 07/25/91 134800 C* The RSTPRO subroutine resets the processor 07/25/91 if a '*RESET' *

134900 C* request was hit * 07/25/91 85000 C* * SRCE3 04/22/93 85100 C***************"***********************************************

135200 C* * SRCE3 04/22/93 f15300 C* INDICATOR;i USED : 98 * SRCE3 04/22/93 65400 C* * SRCE3 04/22/93 85500 C* EXECUTED :FROM . PROREM * SRCE3 04/22/93 85600 C* * SRCE3 04/22/93 f15700 C***************~:***********************************************

f15800 C* SRCE3 04/22/93 fl5900 C RSTPRO BEGSR 07/25/91 f~6000 C* 07/25/91 f~6100 C* Delete the dea~~tivate request so no other 07/25/91 processors pick f~6200 C* it up 07/25/91 (;6300 C* 07/25/91 8.6400 C ZMCIENO D;iPLY 05/27/93 8.6500 C ZMD'TMT DSPLY 05/27/93 86600 C ZMTIvIMT DSPLY 05/27/93 86800 C* 07/25/91 86900 C* Reset the file 07/25/91 87000 C* 07/25/91 87100 C *LOVAL SE',TLLREMCOMPT 98 08/09/91 87200 C* 07/30/91 87300 C* 08/09/91 87400 C* If the reset fails, there are no records 08/09/91 in the file 87500 C* since this positions the pointer to the end 08/09/91 of the 87600 C* file, no more records will! be read. An initialization08/09/91 87700 C* record must be written to give the reset 08/09/91 a record to 87800 C* position on. 08/09/91 87900 C* 01/27/92 88000 C *IN98 IFEQ *~ON 08/09/91 88100 C CLEAR:FREMCOM 08/09/91 88200 C MOVEIL*INIT' ZMCENO 02/05/92 :p738PW1 V2R2M0 920615 SEU SOUIl2CE LISTING 5/28/93 14:08:35 Page 19 ;30URCE FILE . . . . . . . XLIBEM/MP:PGSRC
1VIEMBER. .. . . . . . . . . MMC040 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 B8300 C MOVE $PJOBN ZMCENO 02/05/92 88400 C MOVE ' 15' ZMSTAT 08/09/91 88500 C MOVI? $PUSPF ZMUSER 02/05/91 88600 C 'INI7" DSPL'~' 05/27/93 .38700 C WRITERFRECOM 08/09/91 .38800 C "LOYAL Sl?TLLREMCOMDT 08/09/91 .38900 C* 08/22/91 .39000 C* If the reset fails, update the EM 08/22/91 Background file (EMBKGD) 89100 C* for this job/user profile~~ob number 08/22/91 to indicate the .39200 C* number of failed resets. 08/22/91 .39300 C* 08/22/91 89400 C IvIOVEL 'MMC040XJ'KJOB 02/05/92 139500 C IvIOVEL$P~USPF KUSER 02/05/92 89600 C Z-ADD$PJ()BN KJOBN 08/22/91 89700 C* 08122/91 139800 C KEMBKG (~HAINEMIBKGD 98 08/22/91 89900 C *IN98 IFEQ *OFF' 01/27/92 S~O100 C IIPDATFEPvIBKGD 08/22/91 Sr0200 C I:NDIF *IN98=*OFF 08/22/91 90300 C* 08/22/91 90400 C ENDIF *IN98=*ON 08/09/91 50500 C* 07/25/91 90600 C I?NDSR RSTPRO SRCE3 07/25/91 Sb700 C/SPACE2 08/12/91 Sb800 C******** 08/12/91 WRTREM
SUBR
**************WRTREM
SUBR
*

C* * 08/12/91 91000 C* The WRTREM subroutine writes a record 08/12/91 to REMHLD for the *

91100 C* current record. * 08112/91 51200 C* * SRCE3 04/22/93 91300 C**********************************************************

51400 C* SRCE3 04/22/93 9'1500 C* INDICATORS USED : 99 * SRCE3 04122/93 91600 C* * SRCE3 04/22/93 91700 C* EXECUTED 1ROM : iPRORCD * SRCE3 04/22/93 91800 C* * SRCE3 04/22/93 91900 C*************************:~*******************************

92000 C* SRCE3 04/22/93 92100 C WRTREM BE;GSR 08/12/91 92200 C* 08/12/91 92300 C* Write a record to REMHLD 08/12/91 92400 C* 08/12/91 92500 C ZMCI?NO CfIAINREMHLD 99 08/28/91 :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:08:35 Page 20 ',iOURCE FILE . . . . . . . XLI:BEM/MR:PGSRC
IvIEMBER........... MMC040 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 !3200 C MOVE ZMPROC ZLPROC 03/09/92 !I3300 C MOVE ZMGPKY ZLGPKY 03/09/92 !3400 C MOVE ' 14' ZLSTAT 12/28/92 !3500 C Z-ADDZMENDT ZLENDT 03/09/92 !3600 C Z-ADDZMENTM ZLENTM 03/09/92 !)3700 C Z-ADDO ZLJBNO 03/09/92 03800 C MOVE *BLANKS ZLJBNM 03/09/92 ~~3900 C Z-ADDO ZLJBSD 03/09/92 ~~4000 C Z-ADDO ZLJBST 03/09/92 ~~4100 C MOVE ZMUSER ZLUSER 03/09/92 ~>4200 C MOVE ZMWKST ZLWKST 03/09/92 94800 C MOVE *BLANKS ZLCPFM 07/17/92 95000 C CALL 'MZM620X' PZM620 Get date 09/28/92 and time 55300 C *IN99 IFEQ *ON 01/27/92 S'5400 C WRITEFREMHLD 08/12/91 55500 C MOVE *OFF *IN99 01/27/92 S~5600 C ELSE 08/28/91 55700 C UPI>ATEFREMHLD 08/28/91 55800 C ENDIF *IN99=*ON 08/28/91 95900 C* 08/12/91 ****END OF SOURCE****

hi; 05/28/93 **
hx;;ql;
$MMC160$
;b; MMC160 ;fob Queue Controller Program ;ql;;r;
;hi;A. This program is called by the job queue procedures submitted by MMC020, the Local Communications Processor, for consolidation applications. It deterrttines, based on the residence of the requesting entity and the satisfying entity, what steps that specific job queue procedure should perform. Possible steps are loading an entity file or extract file, printing a report, sending a system message; sending an e:~ctract file to another system, and bringing information sent from other systems up to the entity-level files. This program passes the results back in the form of Y/N parameters representing each step. It also determines the names of the program to transfer consolidated information back to the requesting system, if an extract file is to be sent. ;ql;
;id; This program has to accept a paramoter from the job queue procedure, defining the communications entry number of the local complications entry being processed. This program also loads additional parameters to pass back to the calling procedure, indicating which steps to perform. The PLIST should be as folllows:
;ql;
;id;*ENTRY PLIST ;ql~

;id;PARM P$CENO 15A communications entry ;ql;
#

;id;PARM P$ENTF lA load entity file & ;ql;
print rpt ;id;PARM P$SNDF lA send file to req system;ql;

;id;PARM P$SPGM l0A sending transfer pgm ;ql;
name ;id;PARM P$RPGM l0A receiving transfer ;ql;
pgm name ;id;PARM P$GPGM l0A generic transfer proc ;ql;
name ;id; 1. The first step is to retrieve the LOCCOM record referenced by the CE #
passed to this program. ;ql;
;id; 2. If this is a locally initiated CE submitted for processing (status 55), load the parameters as follows: ;ql;
;id; a) Load P$SNDF (send extract file back to requesting system) with 'N'.
;ql;
;id; b) Load P$SPGM (sending transfer prol;ram name) with blank.
;id; c) Load P$GPGM (generic transfer prol;ram name) with blank.
;id; d) If the LOCCOM fields for entity (ZLENT) and originating entity (ZLOREN) are not the same, then this CE is being processed for in another entity within the same system, and the following parameters should be loaded: ;ql;
;id; P$ENTF (load entity file) 'N' ;ql;
;id; P$RPGM (receiving transfer program name) blank ;ql;
;id; e) If the LOCCOM fields for entity (ZLENT) and originating entity (ZLOREN) are the same, then this CE is being processed for the originating entity, and the following parameters should be loaded: ;ql;
;id; P$ENTF (load entity file) _ 'Y' if the LOCCOM consolidate from requesting entity byte (ZLCNRQ) is 'Y'. Otherwise, load P$ENTF with 'E'. ;ql;
;id; Retrieve the GEPdCOM record for the local CE to retrieve the value of the multi-release byte (ZCMULT). In case when such a GENCOM record cannot be found, continue to process as if it exists with ZCMULT='Y'. ;ql;
;id; P$RPGM (recei.ving transfer program name) = loaded with 'MMC260' if the GENCOM multi-release byte is 'Y.' In this case, the X.1 procedure will call MMC260, the Multi Receiving Transfer Controller, to call receiving transfer program at the specific CE level, since there could be multiple release levels involved. ;ql;
;id; P$RPGM = obtained from the Application Definition File (APDDEF) IF THE
GENCOM multi-release byte is 'N.' Since there is only one release level represented in the data transfer file(s), only one receiving transfer program is n<:cessary to bring that information to the entity file(s). ;ql;
;id; i. To obtain the transfer program name from APPDEF, retrieve the APPDEF
record for the application program name/from rel-mod level/to rel-mod level. The APPDEF record should be retrieved for ZLPGM/ZLFREL/~'.LTREL in the manner described below using $APPDF. ;ql;
;id; - If no record is found, attempt to find a record for the same program/from rel-mod level but last to rel-mod level. Continue this process until a record is found or all records for the program/from rel-mod level have been exhausted. ;ql;
;id; - If no record was found above, try to find a record for the last available from rel-mod level but original to rel-mod level. If this is not found, continue this logic, dropping the from rel-mod levels but retaining the to rel-mod level, until a record is found or all records for the program/to rel-mod level have been exhausted!. ;ql;
;id; - At this stage, it uses the COMDEF default from and to rel-mod levels to retrieve a record. ;ql;
id; 3. If the LOCCOM status is 56, then this is a, local communications entry initated from a remote system submitted for processing on this system, and so the following parameters should be loaded:
;ql;
id; P$ENTF (load entity file) __ 'N' ; ql;
id; P$SNDF (send extract file hack to requesting system) _ 'Y' ;ql;
id; P$SPGM (send transfer program name! = obtained from the Application Definition File (APPDEF) ;ql;
id; P$SPGM (receiving transfer program came) = blank ;ql;
id; P$GPGM (generic transfer (procedure name) = obtained from the Application Definition File (APPDEF) ;ql;
id; i. Since the consolidated data is being sent from the satisfying system back to the requesting system, the from and to rel-mod levels nmst be reversed when retrieving the APPDEF
record, in other words, the record for ZLPGM/i'.LTREL/Z1LFREL should be retrieved. See the logic in step 2E(i) above for retrieving the record. ;ql;
id; ii. For each A1PPDEF record, there are various programs assigned; the sending transfer program and generic transfer procedure names should be loaded into P$SPGM and P$GPGM, respectively. ;ql;
;id; 4. Finally, check for the existence of the receiving or sending transfer program retrieved from APPDEF by means of a 'C'.HKOBJ' CL command. If the program does not .exist, blank out the P$RPGM or the P$SPGM parameter and call MMC030 to send a message to the EM background message queue saying that the receiving or sending transfer program does not exist.
;ql;
;hi;B. File Usage ;ql;
;id; APPDEF IF Application Definition File ;ql;
;id; COMDEF IF Commmnications :Definition File ;ql;
;id; GENCOM IF General Communications Entry File ;ql;
;id; LOCCOM IF Local Communications Entry File ;ql;
;ql;;hx;

_ 87 _ :5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:30 Page 1 ;30URCE FILE . . . . . . . XLIBEM/MF;PGSRC
1VIEMBER. . . . . . . . . . . MMfC 160 :iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 100H**********************************:k***************************************

200H* * 12/27/91 300H* Release - 03 Mod Level - 10 * 06/26/92 '1~H* * 12/27/91 H* * 12/27/91 H* * 12/27/91 '700H* * 06/26/92 800H* * 12/27/91 n00H**************************************************************************

1100H**************************************************************************

1200H* * 12/27/91 1300H* MODULE: l3nterprise Pvianagement * 02/20/92 1400H* * 12/27/91 1500H* PROGRAM NAME: IvIMC160 - Job Queue Controller* 03/05/92 Program 1600H* * 12/27/91 1700H* FUNCTION: Determines what stops that specific* 03/05/92 job 1800H* queue procedure should perform. * 03/05/92 1900H* * 12/27/91 2300H* CALLING PROGRAM: Job queue procedures * 03/05/92 submitted by MMC020 2100H* the hc;al Communications Processor * 03/05/92 2200H* * 12/27/91 2300H* CALLED PROGRAM: None * 02/20/92 2100H* * 12/27/91 2.100H* /COPY ROUTINES: $APPDF - Application Definition* 03/16/92 Access 2~~0H* Subroutine * 03/16/92 2'700H* * 12/27/91 2800H* * 12/27/91 2!J00H*************************************************************************
* 03/12/92 310H* PROGRAM DESCRIPTION * 12/27/91 3100H*************************~:***********************************************
* 12/27/91 3200H* This program determines, based on the * 03/05/92 residence of the 3:300H* requesting entity and the ;satisfying * 03/05/92 entity, what steps that specific 3~t00H* job queue procedure should perform. Possible* 03/05/92 3:100H* steps are loading an entity file or extract* 03105/92 file, printing 3ti00H* a report, sending a system message, sending* 03/05/92 an extract file 3'00H* to another system, and bringing infomnation* 03/05/92 sent from other 3f300H* systems up to the entity-level files. * 03/05/92 I also determines 3900H* the names of the programs to transfer * 03/05/92 consolidated 4(100H* information back to the requesting system* 03/05/92 if an extract 4:.00H* file is to be sent. * 03/05/92 4:!00H* * 03/05/92 4x00H* This program accepts a parameter containing* 03/05/92 the CE 1I of the 4~t00H* Communications Entry being processed, * 03/05192 and passes the 4'.00H* result back parameters representing steps* 03/05/92 to be performed 4600H* and the names of the programs that are * 03/11/92 need to perform the 4'.00H* steps. * 03/05/92 4Fi00H* * 01/21/92 _ 88 _ .'i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:30 Page 2 'iOURCE FILE . . . . . . . XLI;BEM/MR.PGSRC
IvIEMBER........... MMC160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 4900g**********************************~:*******************************12/27/9 5000F/SPACE 3 * 11/11/91 5100F*************************,.*****************************************03/05/

5200F FUNCTION OF INDICATORS * 03/05/92 5300F*************************~:*****************************************03/05/

5400F* * 03/05/92 5500F* 98 - General Purpose Indicator (used in/COPY 03/06/92 $APPDF) *

5600F* 99 - General Purpose Indicator * 03/05/92 5700F* LR - Last Record Indicator * 03/11/92 5800F* * 03/05/92 5900F**************************:*****************************************03/05/

6100F**************************:*****************************************12/27/

6200F* * 12/27/91 6300F* FILE SPECIFICATIONS * 12/27/91 6400F* * 12/27/91 6.500F*******************************************************************12/271 6500F* 12/27/91 6'700F* Applications Definition File 03/05/92 6800F* 12/27/91 6!900FAPPDEF IF E K DISK 03/05/92 7100F* 03/06/92 7:?00F* Communications Definition File 03/06/92 7300F* 03/06/92 71(10FCOMDEF IF E DISK 03/06/92 7:i00F/SPACE 03/06/92 7600F* 03/05/92 7100F* General Communications Entry File 03/05/92 77300F* 03/05/92 7!)00FGENCOM IF E K DISK 03/05/92 8(X10F/SPACE 2 03/05/92 8100F* 12/27/91 8'.!00F* Local Communications Entry File 12/27/91 8;100F* 12/27/91 &100FLOCCOM IF E K DISK 03/05/92 8:100F* 03/06/92 8(i00F/SPACE 2 03/06/92 8',r00I***************************:****************************************03/0 8800I* * 03/06/92 85)00I* INPU'T SPECIFICATIONS * 03/06/92 ~~ I* * 03/06/92 9100I***************************:****************************************03/06/

9x00I***************************:****************************************10/15/

9..00I* Data Structure for CL command CHKOiBJ called 10/15/92 QCMDEXC *

9:00I*******************************************************************10/15/9 9.00I* 10/15/92 9Ei00I* DS 10/ 15/92 9700I* 1 36 QQCMD 10/15/92 _ 89 _ :i738PW1 V2R2M0 920615 SEU SO11RCE LISTING 5/28/93 14:09:30 Page 3 :iOURCE FILE . . . . . . . XLIBEM/MR;PGSRC
IvIEMBER. . . . . . . . . . . MM:C 160 'iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 9800 I* I 'CHKOBJ O:BJ(' 1 11 D$1 10/15/92 9900 I* 12 21 D$PGM 10/15/92 10000 I* I ') OBJTYPE (*PGM)' 22 36 D$2 10/15/92 10100 I* 10/15/92 10200 I* Externally described data. structure 10/15/92 t~o define the parameter 10300 I* list for the EM message sending; program, 10/15/92 10400 I* 10/15/92 10500 I$MC030 E DSDSMC030 10/15/92 10600 I* 10/15/92 10700 I* Data Structure to break down the release-modification 10/

level 1D800 I* field which looks similar to 04-I)D. 10/15/92 It is used in the 1D900 I* $APPDP /COPY subroutine. 10/15/92 11000 I* 10/15/92 11400 I* 10/15/92 11600 C*************************~:****************************************

11700 C* * 12/27/91 11800 C* CALCI:ILATION SPECS * 12/27/91 11900 C* * 12/27/91 1:?000 C**************************:****************************************

1:?100 C* * 12/27/91 !:?200 C**************************:****************************************

1:?300 C* M A I N L, I N E * 12/27/91 12400 C**************************:****************************************

1:?500 C* * 12/27/91 12600 C* The MAINLINE is executed once. It first 03/06/92 loads the program *

1:1700 C* parameter P$CENO into ,a work field. 09/01/92 Then it calls LDPARM *

1 2800 C* to load the parameters into their 03/06/92 respective work fields. *

12 900 C* * SRCE3 10/15/92 1:1000 C******************************************************************SRCE3 l:f 100 C* * SRCE3 10115/92 1:1200 C* INDICATORS USED . LR * SRCE3 10/15/92 1.9300 C* * SRCE3 10/15/92 1.1400 C* EXECUTES . CHKOBJ LDPARM * SRCE3 10/15/92 13500 C* * SRCE3 10/15/92 1..600 C***********************************:a******************************SRCE3 1..700 C* SRCE3 10/ 15/92 1~~800 C *ENTRY PLIST 03/05/92 1:900 C PARM P$CENO 09/01/92 1.000 C PARM P$ENTF 09/01/92 14-100 C PARM P$,SNDF 09/01/92 14.200 C PARM P$SPGM 09/01192 14.300 C PARhi P$RPGM 09/01/92 14400 C PARM P$~GPGM 09/01/92 14.500 C* 03/05/92 14-600 C* Load P&CENO into its work field, ~1QCEN0. 09101/92 The work field, 5738PW 1 V2R2M0 920615 ;SEU SOURCE LISTING 5/28/93 14:09:30 Page 4 SOURCE FILE . . . . . . . XLI13EM/MR.PGSRC
rrIEMBER........... MMC160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 I-4700 rather than the parameter itself, 03/06/92 C* will be referred to 14800 throughoutthe program to increase 03/06/92 C* program efficiency.

14900 Note that all other program paramett:rs 03/06/92 C* being passed are 15000 not used, since they are Laded by 03/06/92 C* this program and sent 15100 back to the calling program- 03/16/92 C*

1.5200 03/06/92 C*

1.1300 MOVE P$CENC1 QQCENO 09/01/92 C

1.1400 03/05/92 C*

1:1500 Call LDPARM to load the appropriate 03/06/92 C* parameters into the 1:1600 corresponding work fields. 03/06/92 C*

1:>700 03/06/92 C*

1:1800 EXSF; LDPARM 03/05/92 C

1:1900 10/15/92 C*

16000 Call the CHKOBJ subroutine to check 10/15/92 C* for the existence 16100 of the receiving transfer program 10/15/92 C* and the sending 16200 transfer program. 10/15/92 C*

C*

iti400 EXSF; CHKOiBJ 10/15/92 C

1ti500 03/06/92 C*

1ti600 Load parameters from work fields to 03/06/92 C* return their values 1ti700 to the calling program. Note that 09/01/92 C* P$CENO is not loaded Iti800 since it is not changed by this program. 03/11/92 C*

1ti900 03/06/92 C*

1'000 MOVE QQEN'fF P$ENTF 09/01/92 C

1'100 MOVE QQSNI)F P$SNDF 09/01/92 C

1'200 MOVE QQSPCiN P$SPGM

1'300 MOVE QQRPGM P$RPGM

17400 MOVE QQGPGM P$GPGM

1',500 12/27/91 C*

17600 End the program 12/27/91 C*

C*

1;'800 SETON LR 12/27/91 C

1;'900 RETR.N 12/27/91 C

1f~000 12/27/91 C*

1f~100 11/11/91 C/SPACE

1f~200 ************* *INZSR SiJBR ******************* 12/27/91 C*** *INZSR SUBR

1f300 * 12/27/91 C*

1f~400 The *INZSR subroutine performs the * 12/27/91 C* following functions:

1F~500 * 12/27/91 C*

1f~600 1. Performs initial calculations that* 12/27/91 C* need to be done 1f~700 on the initial call of the program. * 12/27/91 C*

1f~800 * 12/27/91 C*

1f;900 NOTE: The *INZSR is executed during * 12/27/91 C* the *INIT phase of IS~000 RPG execution. * 12/27/91 C*

15100 * SRCE3 10/15/92 C*

15200 ********************************~s****************************** SRCE3 C***

1S~300 * SRCE3 10/15/92 C*

15400 INDICATORS USED : 99 * SRCE3 10/15/92 C*

15500 * SRCE3 10/15/92 C*

'>738PW1 V2R.2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:30 Page 5 'iOURCE FILE . . . . . . . XLIIBEM/MR.PGSRC
IvIEMBER........... MMC160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*************************:k********x:*******************************

C*

19800 *INZSR 13EGSR 12/27/91 C

C*

20000 Define and initialize program variables 12/27/91 C*

C*

20200 MOVE 'M' MODULE 12/27/91 C

20300 MOVE "MMC'160 '$PGM 03/05/92 C

C*

2D500 Access COMDEF for communications definition 03/06/92 C* constants.

20600 This file has only one record. ThereiFore, 03/06/92 C* it needs to be 20700 read only once (similar to the tailoring 03/06/92 C* files). The 20800 /COPY $APPDF subroutine requires that 03/06/92 C* COMDEF be accessed 2~~900 for it to work. 03/06/92 C*

C*

21100 1 CHAI~NCOMDEF 99 03/06/92 C

C*

21300 Load the length of the CHKOBJ CL command 10/15/92 C* into QQLEN.

C*

C

C*

21700 ENDSR *INZSR SRCE3 12/27/91 C

C*

2:?000 * 12/27/91 C*************
$DEFSR
SUH,R
******~*************
$DEFSR
SUBR

2:?100 * 12/27/91 C*

2:?200 The $DEFSR subroutine :performs the * 12/27/91 C* following functions:

2:>.300 * 12/27/91 C*

22400 1. Defines program variables. It is * 12/27/91 C never executed.

2'.!500 * SRCE3 10/15/92 C*

2'.!600***************************************************************

C*** SRCE3 2:!700 * SRCE3 10/15/92 C*

2:!800 INDICATORS USED : NONE * SRCE3 10/15/92 C*

2:!900 * SRCE3 10/15/92 C*

2x000 ***************************************************************

C*** SRCE3 2:100 SRCE3 10/15/92 C*

2;1200 $DEFSR BEGSR 12/27/91 C

2_1300 03/05/92 C*

2_4.00 *********Define program parameter *********** 03/05/92 C*

2..500 03/05/92 C*

2..600 *LIKE DEFN ZI,CENO P$CENO CE~I 09/01/92 C

2..700 MOVE *BLANKS P$ENTF 1 Load Ent. 09/01/92 C file..

2''.800MOVE *BLANKS P$SNDF 1 Send to req 09101/92 C sys 2.'.900*LIKE DEFN FDSPGM P$SPGM Send Pgm 09/01/92 C Name 24.000 *LIKE DEFN FDRPGM P$RPGM Receiv Pgm 09/01/92 C Name 24.100 *LIKE DENF FDGPGM P$GPGM Gen Trans 09/01/92 C Proc 24.200 03/05/92 C*

24300 ***********Define program variables************ 03/05/92 C*

C*

'i738PW 1 V2R2M0 920615 ;SEU SOURCE LISTING 5/28/93 14:09:30 Page 6 SOURCE FILE . . . . . . . XLIJBEM/MR.PGSRC
MEMBER. . ... . . ... . MMC160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 24500 - MODULE is the Module code 03/06/92 C*

C*

24700 IvIOVE *I1I,ANKS MODULE 1 12/27/91 C

C*

24900 - $PGM is the Program name 03/06/92 C*

C*

25100 *LIKE DEFN FDPGM $PGM 03/16/92 C

C*

25300 - Define work fields for 03/11/92 C* program parameters C*

25500 *LIKE DEFN P$CENO QQCENO CE ft 09/01/92 C

2.5600 *LIKE DEFN P9~ENTF QQENTF Load Ent file..09/01/92 C

2.5700 *LIKE DEFN P$SNDF QQSNDF Send to req 09/01/92 C sys 2.5800 *LIKE DEFN P$SPGM QQSPGM Send Pgm Name 09/01/92 C

2:1900 *LIKE DEFN Pg~RPGM QQRPGM Receiv Pgm 09/01/92 C name 26000 *LIKE DEFN P$GPGM QQGPGM Gen Trans Proc09/01/92 C

C*

26200 ***********Define all ocher 10/15/92 C* program variables*********

C*

26400 - QQLEM is a parameUer used 10/15/92 C* in calling a CL command 26500 by using CALL 'QCMDEXC' from 10/15/92 C* within the RPG program.

26600 It stores the length of the 10/15/92 C* CL command string and 26700 must be defined as (1.5, 10/15/92 C 5).

C*

26900 i:-ADDO QQLEN 10/15/92 2'7000 03/06/92 C*

2'7100 ********* Define key fieUds 03/06/92 C* ***********

2'200 03/06/92 C*

2'300 - for APPDEF file 03/06/92 C*

2'400 03/06/92 C*

2'500 *LIKE I>EFN FI>PGM KPGM Program name 03/06/92 C

2'600 *LIKE I>EFN FL>FREL KFREL From rel -mod 03/06/92 C lv 2'1700 *LIKE I>EFN FI)TREL KTREL To rel-mod 03/06/92 C level 2?800 03/06/92 C*

2''900 ******** Define KLists '"******** 03/06/92 C*

C*

2f1100 - for APPDEF file 03/06/92 C*

C*

28300 KAPPDE R:LIST 03/06/92 C

26400 k;FLD KPGM Program Name 03/06/92 C

2f1500 k:FLD KFREL From Rel-Mod 03/06/92 C

2f1600 k;FLD KTREL To Rel-Mod 03/06/92 C

2f~700 10/15/92 C*

2f~800 ******** Define PLIST "******** 10/15/92 C*

2f~900 10/15/92 C*

2St000 - for MMC030 10/15/92 C*

C*

C

25300 PARl~i $MC030 10/15/92 C

°i738PW 1 V2R2M0 920615 ;SEU SOURCE LISTING 5/28/93 14:09:30 Page 7 SOURCE FILE . . . . . . . XLI13EM/MR.PGSRC
PvIEMBER. . . . . . . . . . . MMC 160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

29500 ENDSR $DEFSR SRCE3 12/27/91 C

C*

C/SPACE

C/COPY
MMDDSSRC, $APPDF

C/SPACE

3)000 ******** CHKOBJ SUBR ********************* 02/17/92 C CHKOBJ SUBR *

3)100 * 10115/92 C*

3~~200 The CHKOBJ subroutine performs * 02/17/92 C* tl':te following functions:

3)300 * 10/15/92 C*

3)400 1. Check to see if the sending * 02/17/92 C* and receiving transfer 30500 program exist or not. If not, * 10/15/92 C* blank out the program 30600 name(s) and call Mb1C030 to send* 10/15/92 C* a message to the 30700 EMBKGDMSGQ. * 10/15/92 C*

30700 * 10/15/92 C*

30800 * SRCE3 10/15/92 C*

30900 *********** SRCE310/15/92 C*
******************************************************

31000 * SRCE3 10/15/92 C*

31100 INDICATORS USED : 99 * SRCE3 10/15/92 C*

31200 * SRCE3 10/15/92 C*

3L300 EXECUTED FROM : MAINLN * SRCE3 10/15/92 C*

31400 * SRCE3 10/15/92 C*

31500 *********** SRCE310/15/92 C*
******************************************************

C*

31700 CHKOBJ BEGS;R 10/15/92 C

C*

31900 If the receiving transfer program 10/15/92 C* is not blank, check 32000 for its existence. 10/15/92 C*

C*

3:1200 QQRPGM IFNE *BLANKS 10/15/92 C

3'300 10/15/92 C*

3:1400 MOVE *BLANKS D$PGM 10/15/92 C

3:!500 MOVE QQRPGM D$PGM 10/15/92 C

3:1600 CALL 'QCMDEXC' 99 10/15/92 C

3:1700 PARM QQCMD 10/15/92 C

3:!800 PARM QQLEN 10/15/92 C

3.!900 10/15/92 C*

3;1000 - If the receiving trasnfer program 10/15/92 C* does not exist, 3.1100 blank it out and call MM(~030 10/15/92 C* to send a message to 3_1200 EMBKGDMSGO saying chat the receiving 10/15/92 C* transfer program 3:1300 for this CD doesn't exist (message 10/15/92 C* # M00469).

3:.301 Load $LIT1 with the literal sequence 10/15/92 C* # for the name of 3..302 the program that doesn't exist, 10/28/92 C* and $LIT2 with the 3..303 literal sequence # for the CE 10128/92 C* type.

3~~400 10/15/92 C*

3~~500 *IN99 IFEQ *ON 10115/92 C

3~~600 MOVIE *BLANKS QQRPGM 10/15/92 C

3..700 MOVIE MODULE $MODCD 10/15/92 C

3?,800 MOVIE '00469' $ERRNO Message #MOD0469 10/15/92 C

'i738PW 1 V2R2M0 920615 ;AEU SOLJRCE LISTING 5/28/93 14:09:30 Page 8 SOURCE FILE . . . . . . . XLI13EM/MRPGSRC
rrIEMBER. .. .. . .. .. . MMC160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 33900 MOVE QQCE:f~O $CENUM CE # 10/15/92 C

34000 MOVE '00014' $LIT1 'Revc xfer pgm' 10/15/92 C

34100 MOVE '00018' $LIT2 'Local' CE 10/15/92 C

34200 CALL 'MMC030' PMC030 10/15/92 C

34300 ENDI:F *IN99=*ON 10/15/92 C

C*

34500 ENDI:F OORPGM < > *BLANKS10/ 15/92 C

C*

33700 If the sending transfer program 10/15/92 C* is not blank, check 34800 for its existence. 10/15/92 C*

C*

3:1000QQSPGM IFNE *BLANKS 10/15/92 C

3:1100 10/15/92 C*

3:1200MOVE *BLANKS D$PGM 10/15/92 C

3:1300MOVE QQSPCiM D$PGM

3:1400CALL 'QCMDEXC' 99 10115/92 C

3:1500PARM QQCMD 10/15/92 C

3:1600PARD~i QQLEN 10/15/92 C

3:1700 10/15/92 C*

3:1800- If the sending transfer program 10/15/92 C* does not exist, 3:1900blank it out and call MMC030 to 10/15/92 C* send a message to 3ti000EMBKGDMSGQ saying that the sending 10/15/92 C* transfer program 3ti000for this CE doesn't exist (;message 10/15/92 C* #PvI00469).

3ti101Load $LIT1 with the literal sequence 10/28/92 C* # for the name of 3ti102the program that doesn't exist, 10/28/92 C* and $LIT2 with the 3ti103literal sequence # for the CE type. 10/28/92 C*

3ti200 10/15/92 C*

3ti300*IN99 IFEQ *ON 10/15/92 C

3ti400MOVE *BLAI~fKS QQSPGM 10/15/92 C

3ti500MOVE MODULE $MODCD 10/15/92 C

3ti600MOVE '00469' $ERRNO Message #M00469 10/15/92 C

3fi700MOVE QQCENO $CENUM CE # 10/15/92 C

3Ei800MOVE '00013' $LITI 'Send xfer pgm' 10/15/92 C

3ti900MOVE '00018' $LIT2 'Local' CE 10/15192 C

3',000CALL, 'MMC030' PMC030 10/15192 C

3;'100ENDIF *IN99=*ON 10/15/92 C

3;200 10/15/92 C*

3 ; ENDIF QQSPGM < > *BLANKS10/ 15/92 C

3.400 10/15/92 C*

37500 ENDS;R CHKOBJ SRCE3 10/15/92 C

3;600 10/15/92 C*

3 ~ 10/ 15/92 C/SPACE

3.800 LDPARM SUBR * 10/15/92 C*********
LDPARM

*****************

3900 * 10/15192 C*

38000 The LDPARM subroutine performs * 10/15/92 C* the following functions:

3F1100 * 10/15/92 C*

3F.2001. Load the appropriate values * 10/15192 C* into work fields which 3f~300loaded into the program parameters* 10/15/92 C*

31"',400and return to the calliing program.* 10115/92 C*

5738PW 1 V2R2M0 920615 ;iEU SOURCE LISTING 5/28/93 14:09:30 Page 9 SOURCE FILE . . . . . . . XLI13EM/MRPGSRC
PrIEMBER. . . . . . . . . . . MMC 160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 38500 * SRCE3 10115/92 C*

C **********************************:********************************

38700 * SRCE3 10/15/92 C*

38800 INDICATORS USED . 99 * SRCE3 10/15/92 C*

38900 * SRCE3 10/15/92 C*

39000 EXECUTES . $APPDF LDRPGM * SRCE3 10/15/92 C*

3100 * SRCE3 10/15/92 C*

3)200 EXECUTED FROM . MAIN1:.N * SRCE3 10/15/92 C*

3~~300 * SRCE3 10/15/92 C*

C **********************************:********************************

3')500 SRCE3 10/15/92 C*

C

3!)700 03/05/92 C*

3!)800 Retrieve the LOCCOM record referenced 03/05/92 C* by the CE # passed 3!)900 to this program. 03/05/92 C*

4i)000 03/05/92 C*

40100 QQCENO (;FIAINLOC:('.OM 99 03/05/92 C

C*

40300 If the record exists: 03/05/92 C*

C*

40500 *IN99 IFEQ *OFF 03/05/92 C

C*

41)700 1) If CE status is 55, then this CE is 03/06/92 C* locally initiated.

40800 load the parameters as follows: 03/06/92 C*

C*

41000 ZLSTAT 1FEQ '5:i' 03/06/92 C

C*

4:1200 - If this CE is initiated within the same 03/06/92 C* entity, 41300 load QQENTF' with 'E' or 'Y' as follows: 08/31/92 C*

41400 - if data from the requesting entity should 08/31/92 C* be 4:1500 included into the report (ZLCNRQ='Y'), 08/31/92 C* load 4:1600 QQENTF with ''t' 08/31/92 C*

4:1700 - if data from the requesting; entity 08/31/92 C* is not needed in the report 41800 in the report (?.LCNRQ < >'Y'), load QQENTF 12/01/92 C* with 'E'.

4:1900 03/05/92 C*

4;!000 ZLENT IFEQ 2;LOREN Same entity 08/31/92 C

4:!100 ZLCNRQ I:FEQ 'Y' 08/31/92 C

4:!200 MOVE 'Y' QQENTF 03105/92 C

4:!300 ELSE 08/31/92 C

4:!400 MOVE 'E' QQENTF 08/31/92 C

4:!500 ENDIF ZLCNRQ='Y' 08/31/92 C

4:!600 EXSR LDRPGM load QQRPGM 03/05/92 C

4:!700 ENDIF ZLENT=ZLOREN 03/12/92 C

4;800 03/06/92 C*

4'<l900- If this CE is initiated in another entity 03/06/92 C* within 4:.000 the same system, there is no need to upload 03/06/92 C* data 4..100 to this entity, a.nd load Q()ENTF and 03/06/92 C* QQRPGM

4..200 * accordingly. 03/06/92 C

4..300 03/06/92 C*

'~738PW 1 V2R2M0 920615 !iEU SOURCE LISTING 5/28/93 14:09:30 Page 10 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC 160 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 43400 ZLENT IFNE i:LOREN Diff entity 03/12/92 C

43500 MOVE 'N' QQENTF 03/05/92 C

43600 MOVE *BLANKS QQRPGM 03/05/92 C

43700 ENDIF ZLENT< >ZLOREN 03/12/92 C

C*

43900 - Load other parameters with 'rf or blank since 03/06/92 C*

41000 no data is needed to be sent to a remote system.03/06/92 C*

C*

41200 MOVE 'N' QQSNDF 03/06/92 C

41300 MOVE *BLANKS QQSPGM 03/06/92 C

41400 MOVE *BLANKS QQGPGM 03/06/92 C

C*

41600 ENDIF ZLSTAT='S5' 03/06/92 C

C*

41800 2) If CE status is 56, then this C'E is initiated03/06/92 C* remotely.

41900 Load the parameters as follows: 03/06/92 C*

4:1000 03/06/92 C*

4:1100 ZLSTAT IFEQ '56' 03/06/92 C

4:1200 03/06/92 C*

4:1300 - load QQENTF and QQRPGM to indicate that no 03/06/92 C* data 4:1400 is needed to uldoad to this. entity. 03/06/92 C*

4:1500 03/06/92 C*

4:1600 MOVE 'N' QQENTF 03/06192 C

4:1700 MOVE *BLANKS QQRPGM 03/06/92 C

4:1800 03/06/92 C*

4:1900 - load QQSNDF to "Y' we need to send data to 03/06/92 C*

4tS000 another system., (which is the requesting system).03/06/92 C*

4tS100 03/06/92 C*

4ti200 MOVE 'Y' QQSNDF 03/06/92 C

4ti300 03/06/92 C*

4ti400 - Retrieve the program names for the sending 03/06/92 C* and generic 4(1500 transfer procedure from A.PPDEF. Since we are 03/06/92 C* sending 4(1600 data back to the requesting; entity, the To and 03/06/92 C* From 4(1700 rel-mod level must be reversed when retrieving 03/06/92 C* the 4(1800 APPDEF reco~d. However, QQSPGM and QQGPGM are 03/06/92 C* only 4(1900 loaded an APPDEF record is retrieved successfully.03/06/92 C*

4'.000 is, when $$FAIL='0'. 03/06/92 C*

4',100 03/06/92 C*

C

C

C

47500 EXSR 9sAPPDF 03/06/92 C

4;'600 03/06/92 C*

4';700 - $$FAIL has just been checked by MMC020 before 03/17/92 C* submitting 4'; 800 the job queue procedure that calls this program.03/17/92 C*

4'.900 Therefore, $$FAIL should be '0'. 03/18/92 C*

C*

41800 $$FAIL IFEQ '0' 03/06/92 C

4F~200 MOVE FDSPGM QQSPGM 03/06/92 C

_ 97 _ 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:30 Page 11 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC 160 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 C

48400 ENDIF' $$FAIL='0' 03/06/92 C

C*

48600 ENDIF' ZLSTAT='S6' 03/06/92 C

C*

48800 ENDIF *IN99-*OFF 03/06/92 C

C*

4!)000 ENDSR LDPARM SRCE3 03/05/92 C

4!)100 02/17/92 C*

4!)200 12/31/91 C/SPACE

4!)300 03/06/92 C**************
LDRPGM
SiJBR
*******************
LDRPGM
SUBR
*

4!)400 * 02/17/92 C*

4!)500 The LDRPGM subroutine perform the following 03/06/92 C* functons: *

4!)600 * 02/17/92 C*

4!)700 1. Load the appropriate receiving transfer 03/06/92 C* program name *

4!)800 into QQRPGM when the local CE is initiated 03/06/92 C* in the *

4!)900 local entity. * 03/06/92 C*

5i)DDD * SRCE3 10/15/92 C*

C*************************~:*****************************************

50200 * SRCE3 10/15/92 C*

50300 INDICATORS USEID . 99 * SRCE3 10/15/92 C*

50400 * SRCE3 10/15/92 C*

51)500 EXECUTES . $APPDF * SRCE3 10/15/92 C*

50600 * SRCE3 10/15/92 C*

50700 EXECUTED FROM . LI)PARM * SRCE3 10/15/92 C*

51)800 * SRCE3 10/15/92 C*

51)900 SRCE3 10/15/92 C*************************~:*****************************************

C*

C

C*

51300 Retrieve the GENCOM record for this local 03/06/92 C* CE. Such 51400 GENCOM record should exists for this 03106/92 C* CE since this CE

51500 is initiated in the local entity. 03106/92 C*

C*

51700 ZLGRNO ('.HAINGErdCOM 99 03/06/92 C

C*

51900 If the corresponding GENCOM record read 03/06/92 C* indicates that 5:?000 multiple release levels are involved 03/06/92 C* (ZCMULT='Y'), load 52100 'MMC260' as the receiving transfer program 03/06/92 C* name. MMC260 52200 will handle the calling of one re~~eiving 03/06/92 C* transfer program 52300 for each rel-mod level. 03/06/92 C*

5:'.400 In case the GENCOrvF record is not found, 03/16/92 C* load MMC260 as the 52500 receiving tranfser program name:. Since 03116/92 C* we do not know 5:?600 whether multiple relEase levels are involved 03/16/92 C* in this case, 52700 it is safer to use MMC260 as the receiving 03/16/92 C* transfer program, 2800 as it can handle both single and multiple 03/17/92 C* release levels.

5:>.900 It should be noted th;it the case that 03/16/92 C* a GENCOM record 5:9000 cannot be found should not happen. This 03/16/92 C* is done simply 5:9100 for safety reasons. 03/16192 C*

_ 08 _ 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:30 Page 12 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER........... MMC160 S~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 5:3200 03/06/92 C*

5:3300 ZCMULT IFEQ 'Y' 03/06/92 C

5:3400 *IN99 OREQ *ON 03/16/92 C

5:3500 MOVEL 'MMC260' QQRPGM 03/12/92 C

5:3600 03106/92 C*

5:3700 Otherwise, if only one release If:vel is involved,03/06/92 C* simply 5:3800 load the receiving transfer program name for 03/06/92 C* this application 5:3900 program/from rel-mod level/to rel-mod level 03/06/92 C* from the APPDEF

5'1000 tile. However, QQR:PGM is only loaded if an 03/06/92 C* APPDEF record is 5'1100 retrieved successfully ($$FAIL=='0') 03/06/92 C*

5'1200 03/06/92 C*

5'1300 ELSE 03/06/92 C

5'1400 MOVE ZLPGM KPGM 03/06/92 C

5'1500 MOVE ZLFREL KFREL 03/06/92 C

5'1600 MOVE ZLTREL KTREL 03/06/92 C

5'1700 EXSR :$APPDF 03/06/92 C

5'1800 03/16/92 C*

5'1900 $$FAIL has just been checked by MMC020 before 03/16/92 C* submitting S:i000 the job queue procedure that calls this program.03/16/92 C*

S:i100 Therefore, $$FAIL should be '0'. 03/18/92 C*

S:i200 03/06/92 C*

S:i300 $$FAIL IFEQ '0' 03/06/92 C

S:i400 MOVE FDRPGM QQRPGM 03106/92 C

S:i500 ENDIF $$FAIL='0' 03/06/92 C

S:i600 03/06/92 C*

S:i700 ENDIF ZCMULT='Y' 03/06/92 C

S:i800 02/17/92 C*

S:i900 ENDSF; LDRPGM SRCE3 03/06/92 C

Sti000 02/17/92 C*

****F'.ND OF SOURCE****

_ 99 _ ;hi; 05/28/83 **
;hx;;ql;
$MMC260$

;b; MMC260 lvlulti Receiving Transfer Controller Program ;ql;;r;

;r;;hi; A. The Multi Receiving Transfer Controller Program is called by the job queue procedure for consolidation applications. It handles the calling of the receiving transfer programs at the specific CE level for applications involving multiple release levels. (If there were not multiple release levels, then only one receiving transfer program is called by the job queue procedure in place of this program.) This program should retrieve the receiving transfer program from APPDEF and call it for each specific CE for the general CE. ;ql;

;id; The following is the PLIST used by this program: ;ql;

;id; *ENTRY 1PLIST ;ql;

;id; '.PARM PGRNO 15A general CE # ;ql;

;id; :PARM PCENO 15A (N/A) ;qh ;id; PARM PORIG IA (N/A) ;ql;

&int&

Design Note: Note that PCENO and PORIG are included as parameters, even though they are not used by this program. They must be included because the XJ procedure calls this program or the receiving transfer program directly, using the same PLIST for both. So all parameters used b:y the receiving transfer program must be included here also.

&end&

;id; 1. The logical view of LOCCOM by general CE # (LOCCOMGC) should be processed first, retrheving all records for the passed general CE #. For each record found, the receiving transfer program for the applicationlfrom rel-mod level/to rel-mod level must be retrieved from A:PPDEF and called.
Use $APPDF for this retrieval. ;ql;

;id; A. For each APPDEF record, there are various communications programs assigned; the receiving transfer program is the one that should be called, passing the follov~ing parameters: ;ql;

;id; PMCRCV PLIST :ql>

;id; PARM PGRNO 15A Passed general CE # ;ql;

;id; PARM PCENO i5A specific CE # from LOCCOM ;ql;

;id; PARM PORIG lA 'M' (called from MMC260) ;ql;

;id; B. If the call to the receiving transfer program failed because the receiving transfer program retrieved from APPDEF
does not exist, call MMC030 to send a message to the EM background message queue saying that the receiving transfer program for this local CE does not exist. ;ql;

;id; C. It should not happen that no APPDEF record is found, since MMC020 has already verified that it exists in order to be able to submit the X1 procedure. No checking necessary. ;ql;

;id; 2. Next, the logical view of REMCOM by general CE # (REMCOMGC) should be processed, retrieving all records for the passed general CE #. For each record found, the receiving transfer program for the ap~plication/from rel-mod level/to rel-mod level must be retrieved from APPDEF and called. Ilse $APPDF for this retrieval. ;ql;
;id; A. Call the receiving transfer program retrieved from APPDEF, passing the following parameters.: ;ql;
;id; PMCRCV PLIS'L' ;ql;
;id; PARM PGRNO 15A Passed general CE # ;ql;
;id; PARM PCENO 15A specific CE # from REMCOM ;ql;
;id; PARM PORIG lA 'M' (called from MMC260) ;ql;
;id; B. If the call to the receiving transfer program failed because the receiving transfer program retrieved from APPDEF does not exist, call MMC030 to send a message to the EM background message queue saying that the receiving transfer program for this remote CE does not exist. ;ql;
;id; C. See 1C above. ;ql;
;hi; B. File Usage ;ql;
;id; APPDEF I:F Application Definition File ;ql;
;id; COMDEF IF Communications Definition File ;ql;
;id; LOCCOMGC IF Logical View of LOCCOM by General CE # ;ql;
;id; REMCOMGC IF Logical View of REMCOM by General CE # ;ql;
>ql;;hx;
$END$

5738PW 1 V2R2M0 920615 SEU SOUP;CE LISTING 5/28/93 14:09:39 Page 1 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
r~IEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 1.00H*************************>.*********************************************

H* * 12/27/91 :I00H* Release - 03 Pviod Level - 10 * 06126/92 ~l~H* * 12/27/91 ;i00H* * 12/27/91 (i00H* * 12/27/91 H* * 06/26192 800H* * 12/27/91 c~ H*************************:e*********:************************************

1100H*************************:*********a:************************************

1200H* * 12/27/91 1300H* MODULE: l3nterprise rvlanagement * 02/20/92 1400H* * 12/27/91 1500H* PROGRAM NAME: IvIMC200 Multi Receiving * 04/02/92 Transfer 1600H* Controller Program * 04/02/92 1700H* * 12/27/91 1800H* FUNCTION: Calls the Receiving Transfer * 04/03/92 Programs 1900H* ivor applications involving multiple * 04/03/92 2000H* release levels. * 04/03/92 2100H* * 12/27/91 2200H* CALLING PROGRAM: Job Queue Procedures * 04/02/92 for Consolidation 2300H* Appliications. * 04/02/92 2400H* * 12/27/91 2500H* CALLED PROGRAM: Receiving Transfer Program* 04/02/92 2600H* MMC030 Communications Message Sending * 10/15/92 2700H* Program * 10/15/92 2800H* * 12/27/91 2900H* /COPY ROUTINES: $APPDF - Application * 04102/92 Definition Access 3000H* Subroutine * 04/02/92 ? H* * 12/27/91 x200H**********************************:*************************************

'300H* PROGRAM DESCRIPTION * 12/27/91 '400H**********************************:*************************************

?.500H* * 12/27191 '.600H* This program is called by the job queue * 04/03192 procedure for '.700H* consolidation applications. It handles * 04/03192 the calling of the .'800H* receiving transfer programs at the specific* 04/03/92 CE level for ?'900H* applications involving multiple release * 04/03192 levels. For each H* local and remote CE for the general CE * 04/03/92 l~ being passed, this X4100H* program will retrieve thc; name of the * 04/03/92 receiving transfer ~E200H* program, and then it will be called. * 04/03/92 ~i300H*

0400H* This program ends from the MAINLINE and * 04/03/92 will set on LR

~t500H* when it ends. * 04/03/92 ~l~H* * 01/21192 X4700H********************************************************************
*** 12/27/92 F**********************************:*************************************

5738PW 1 V2R2M0 920615 SF?U SOUR'.CE LISTING 5/28/93 14:09:39 Page 2 SOURCE FILE . . . . . . . XLIBEM/MR.'PGSRC
MEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5(100F* FUNCTION OF INDICATORS * 03/05/92 5:.00F***********************************:k***********************************0 5200F* * 03/05/92 5300F* 98 - General Purpose Indicator (used in /COPY 04/03/92 $APPDF) *

5400F* 99 - General Purpose Indicator * 03/05192 5500F* LR - Last Record indicator * 03/05/92 5600F* * 03/05/92 5700F***********************************:k************************************0 5900F***********************************:e************************************1 6000F* * 12/27/91 6100F* FILE SPECIFICATIONS * 12/27/91 6200F* * 12/27/91 6300F***********************************:k************************************1 6400F* 04/02/92 6500F* Applications Definition File 04/02/92 6600F* 04/02/92 6700FAPPDEF IF E k: DISK 04/02/92 6900F* 04/03/92 7000F* Communications Definition File 04/03/92 7100F* 04/03/92 7200F* FCOMDEF IF 1=? DISK 04/03/92 7400F* 12/27/91 7500F* Local Communications Entry File 12/27/91 7600F* - logical by General CE 1f 02/17/92 7700F* 12/27/91 7800FLOCCOMGCIF E I<; DISK 04/02/92 8000F* 12/27/91 8100F* Remote Communications Entry File 02/17/92 8200F* - logical by General CE N 02/17/92 8300F* 12/27/91 8400FREMCOMGCIF E b: DISK 04/02/92 8600I**************************************************************************
*12/27/91 8700I* * 12/27/91 8800I* II~IPUT SPECIFICATIONS * 12/27/91 8900I* * 12/27/91 9000I**************************~***********************************************
*12/27/91 9100I* 10/15/92 9200I* Externally described data structure to define 10/15/92 the parameter 9300I* list for the EM mess~ige sending program, MMC030 10/15/92 9400I* 10/15/92 9500I$MC030 E DSDSMC0:30 10/15/92 9600I* 04103/92 9700I* Data Structure to break down the release-modification04/03/92 level 9800I* field which looks similar to 04-CIO. It is used 04/03/92 in the 5'738PW 1 V2R2M0 920615 SI=;U SOURCE LISTING 5/28/93 14:09:39 Page 3 SOURCE FILE . . . . . . . XLIE~EM/MRl?GSRC
MEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 9900 $APPDF /COPT subroutine. 04/03/92 I*

1(1000 04/03/92 I*

1(1100 04/03/92 IQQRM
DS

1 (12001 20~QQREL 04/03/92 I

1(13004 SOQQMOD 04/03/92 I

1 (1400 12/27/91 I*

1(1500 11/11/91 I/SPACE

1(1600********************************:*****************************

C***

1(1700* 12/27191 C*

1(1800CALCiILATION SPECS * 12/27/91 C*

1(1900* 12/27/91 C*

1?.000********************************:*****************************

C***

1?.100* 12/27/91 C*

1:.200********************************:*****************************

C***

1:.300M A I 1V L I N E * 12/27/91 C*

1:.400********************************:*****************************

C***

1:.500* 12/27/91 C*

1:.600The MAINLINE is executed once. It will 04/03/92 C* call the RCVLOC *

1:!.700and the RCVREM subroutines to retrieve 04/03/92 C* all local and remote *

1:1800CEM for the general CE being passed, 04/03/92 C* and then call the *

1:1900appropriate receiving transfer program 04/03/92 C* for each of them. *

1:!000The program ends from the MAINLINE. 04/03/92 C* *

1:!100* SRCE3 10/19192 C*

1'.',200 SRCE3 10/19/92 C****************************************************************

1:1300* SRCE3 10/19/92 C*

1:!400INDICATORS USED . LR * SRCE3 10/19/92 C*

1:!500* SRCE3 10/19/92 C*

1:!600EXECUTES . RCVLOC RCVREM * SRCE3 10/19/92 C*

12700 * SRCE3 10/19/92 C*

1:!800 SRCE3 10/19/92 C****************************************************************

C*

13000 *ENTRY PLIS7. 04/02/92 C

1:3100PARM P$GRNO 04/15/92 C

1:3200PARM P$CDNO 04/15/92 C

1:3300PARM P$ORIG 04/15192 C

1:3400 04/02/92 C*

1:3500Load the only parameter chat is used 04103/92 C* by this program, 1:3600P$GRNO, into a work field. 04115/92 C*

1:3700 04/02/92 C*

1:3800MOVE P$GRNO QQGRNO 04/15/92 C

1:3900 04/02/92 C*

11000 Call the RCVLOC and RCVREM subroutines 04/02/92 C* to retrieve all 11100 Local and Remote CE's for the general 04/02/92 C* CE k passed in 11200 the program parameter, and call the 04102/92 C* .appropriate receiving 11300 transfer program for each specific CE 04/02/92 C* retrieved.

C*

11500 EXSF: RCVLOC 04/02/92 C

C*

11700 EXSF; RCVREMf 04/02/92 C

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:39 Page 4 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...-+-...4...+...5...+...6...+...7...+...8...+...9...+...0 1~f800 12/27/91 C*

11900 End the program 12/27/91 C*

1.1000 12/27/91 C*

1.1100 SETON LR 12/27/91 C

1.5200 RETF;N 12/27/91 C

1:5300 12/27/91 C*

1:5400 11/11/91 C/SPACE

1:1500 * 12/27/91 C*************
*INZSR
SUBR
**********************
*INZSR
SUBR

1:1600 * 12127/91 C*

1:1700 The *INZSR subroutine performs the * 12/27/91 C* following functions:

1:1800 * 12/27/91 C*

1:1900 1. Performs initial calculations that * 12/27/91 C* need to be done 16000 on the intial call of the program. * 12/27/91 C*

16100 * 12/27/91 C*

16200 NOTE: The *INZSR is executed during * 12/27/91 C* the *INIT phase of 16300 RPG execution. * 12/27/91 C*

16400 * SRCE3 10/19/92 C*

16500 ***************************************************************

C*** SRCE3 16600 on the initial call of the program. * 12/27191 C*

16100 * 12/27191 C*

16400 * SRCE3 10/19/92 C*

16500 ***************************************************************

C*** SRCE3 16600 * SRCE3 10/19/92 C*

16700 INDICATORS USED . 99 * SRCE3 10/19/92 C*

16800 * SRCE3 10/19/92 C*

16900 ***************************************************************

C*** SRCE3 1'1000 SRCE3 10/19/92 C*

1'1100 *INZSR EtEGSR 12/27/91 C

1'1200 12/27/91 C*

1'7300 Define and initialize program variables 12/27/91 C*

1'7400 12/27/91 C*

1'1500 ll~fOVE '1VI' MODULE 12/27/91 C

/'1600 MOVE 'MMC260 '$PGM 04/15/92 C

1'1700 04/03/92 C*

1'1800 Access COMDEF for communications definition 04/03/92 C* constants.

1'1900 This file has only one rea~rd. Therefore, 04/03/92 C* it needs to be 113000 read only once (similar to the tailoring 04/03/92 C* files). The 113100 /COPY $APPDS subroutine requires that 04/03/92 C* COMDEF be accessed 113200 for it to work. 04/03/92 C*

C*

C

C*

113600 ENDSR *INZSR SRCE3 12/27/91 C

C*

18900 ****** $DEFSR SUB'ft ****************** 12/27/91 C*** $DEPSR SUBR

19000 * 12/27/91 C*

1S>100 The *DEFSR subroutine performs the * 12/27/91 C* following functions:

15200 * 12127/91 C*

5738PW 1 V2R2M0 920615 SEU SOURCE LISTING S/28/93 14:09:39 Page 5 SOURCE FILE . . . . . . . XLIF3EM/MRPGSRC
I~ZEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 10300 i. Defines program; variables. 12/27/91 C* It is never executed.
*

10400 * SRCE3 10/19/92 C*

10500 ******************** 10/19/92 C********************************************** SRCE3 10600 * SRCE3 10/19/92 C*

10700 INDICATORS USED . NONE * SRCE3 10/19/92 C*

19800 * SRCE3 10/19192 C*

19900 ***************************************************************

C*** SRCE3 2(1000 SRCE3 10/19/92 C*

20100 $DEFSR EtEGSR 12/27/91 C

C*

20300 ******* Define program 04115/92 C* parameters *******

2()400 04/03/92 C*

20500 *LIKE DEFN ZLGRNO P$GRNO General CE # 04/ 15/92 C

20600 *LIKE DEFN ZLCENO P$CENO Specific CE # 04/ 15/92 C

20700 MOVE *BLANKS P$ORIG 1 Orig Program 04/15/92 C

C*

2(1900 ******* Define program 04/03/92 C* variables *********

21.000 12/27/91 C*

21.100 - MODULE is the Module 02/07/92 C* code 21.200 12/27/91 C*

21.300 MOVE *BLANKS MODULE 1 12/27/91 C

C*

21500 - $PGM is the Program name 04115/92 C*

C*

21700 MOVE *BLANKS $PGM 8 04/15/92 C

C*

21900 - Work field for the General 04/02/92 C* CE h' passed in the program 2;000 parameter. 04/02/92 C*

2;100 04/02192 C*

2;200 *LIKE DEFN ZLGRNO QQGRNO 04/02/92 C

C*

2:400 ********* Define key fields 04/03192 C* ****'******

2:500 04/03/92 C*

2:600 - for APPDEF file 04/03/92 C*

2:700 04/03/92 C*

2:800 *LIKE L~EFN FDPGM KPGM Program name 04/03192 C

2;900 *LIKE DEFN FDFREL KFREL From rel-mod Iv 04/03/92 C

2..000 *LIKE DEFN FI)TREL KTREL to rel-mod levl 04/03/92 C

2..100 04/03/92 C*

23200 ********* Define paramexer 04/03192 C* fields ******

C*

23400 - for the receiving transfeo 04/03/92 C* programs.

C*

23600 *LIKE I;~EFN ZI_GRNO PGRNO General CE # 04/03/92 C

23700 *LIKE DEFN ZI_CENO PCENO Specific CE # 04/03/92 C

2?800 MOVE *BLANKS PORIG 1 Orig Program 04/03/92 C

2?900 04/03/92 C*

24.000 ******* Define KLISTs ***** 04/03/92 C*

C*

5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 5/28/93 14:09:39 Page 6 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
MEMBER. . . . . . . . . . . MM~C260 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 21200 - for APPDEF file 04/03/92 C*

C*

2~14(~KAPPDE E:LIST 04/03/92 C

2<1500b;FLD KPGM Program Name 04/03/92 C

2~t600b:FLD KFREL From Rel-Mod 04/03/92 C

2~t7(~F;FLD KTREL To Rel-Mod 04/03/92 C

218()0 04/03/92 C*

21900 ****** Define parameter lists ***** 04/03/92 C*

2:1000 04/03/92 C*

2:1100- for the receiving transfer programs. 04103/92 C*

2:1200 04/03/92 C*

2:1300PMCRCV F'LIST 04/03/92 C

2:1400FARM PGRNO General CE tf 04/ 15/92 C

2:1500FARM PCENO Specific CE 1J 04/15/92 C

2:1600FARM PORIG Orig Program 04/15192 C

2:1700 10/15/92 C*

2:1800- for MMC030 10/15/92 C*

2:1900 10/15/92 C*

2ti000PMC030 F'LIST 10/15192 C

2fi100FARM $MC030 10/15/92 C

2ti200 10/27191 C*

2ti300F'sNDSR $DEFSR SRCE3 12/27191 C

2ti400 12/27/91 C*

2ti500 04/03/92 C/SPACE

2ti1i00 04/03/92 C/COPY
MMDDSSRC, $APPDF

2fi700 02/17/92 C/SPACE

2ti800 VLOC SUBR * 04/02/92 C************
RCVLOC
SUBR
************************
RC

2ti9()D * 02117/92 C*

2','000The RCVLOC subroutine performs * 04/02/92 C* the following functions:

2',100 * 02/17/92 C*

2',2001. Retrieve all local CE's for * 04/03/92 C* the general CE being 2','300passed into this program, and then* 04/03/92 C* call the receiving 2;'400transfer program retrieved from * 04/03/92 C* the Applications 2;'500Definition File, APPDEF. * 04103/92 C*

2 ;'(100 * SRCE3 10/ 19/92 C*

2';700 10/19192 C
*************************:k*********************************************

2'; * SRCE3 10119/92 C*

2'1900INDICATORS USED . 99 * SRCE3 10119/92 C*

2f~000 * SRCE3 10/19/92 C*

2f~100EXECUTES . $APPDF * SRCE3 10119/92 C*

2f~200 * SRCE3 10/19/92 C*

2f~300EXECUTED FROM . MAINLN * SRCE3 10/19/92 C*

2f~400 * SRCE3 10/19192 C*

2f~500 ************* 10/19/92 C********************************~:************************
* SRCE3 2f~6()D SRCE3 10/19/92 C*

2f1700RCVI,OC BEGSR 04/02/92 C

2f~800 02/17/92 C*

2f~900Do loop reading all LOC(;OM re<;ord 04/02/92 C* for the general CE It 2500 being passed into this pro;;ram. 04/02/92 C*

5738PW 1 V2R2M0 920615 SI?U SOURCE LISTING 5/28/93 14:09:39 Page 7 SOURCE FILE . . . . . . . XLIBEM/MRPGSRC
n~IEMBER. . . . . . . . . . . MM~C260 SEQNBR*...+...1...+...2...+...3...+~...4...+...5...+...6...+...7...+...8...+...
9...+...0 2!) 02/ 17/92 C*

2!)200QQGRNO SETLLLOCCOMGC 04/02/92 C

2!)300QQGItNO READELOCCOMGC 99 04/02/92 C

2!)400*IN95~ DOWEQ*OFF 02/17/92 C

2!)500 04/02/92 C*

2!)600- Load the receiving transfer program 04/06/92 C* name for this 2!)700application program/From rel-mod level/To 04/06/92 C* rel-mod level 2!)800from the APPDEF file. 'Che APPDEF record 04/15/92 C* should be 2!)900retrieved successfully because MMC020 04/15/92 C* has already verified 3()000that an APPDEF record exists before 04/15/92 C* it submits the XJ

30100 procedure that calls this program. 04/15/92 C*

C*

C

3()400MOVE KFREL KFREL 04/02/92 C

C

30600 EXSR $APPDF 04/02/92 C

C*

30800 - If an APPDEF record is successfully 04/15/92 C* retrieved, 30900 call the Receiving Transfer Program 04/15/92 C* that has just 3x.000been retrieved from the APPDEF record. 04/15/92 C* Note that 3.',100even though the APPDEF record should 04/15/92 C* be retrieved 3:',200successfully, we still check $$FAIfL 04/15/92 C* before calling 3::300the receiving transfer pro;;ram for 04/15/92 C* safety reasons.

3:.400 04/02/92 C*

3:.500$$FAI,L IFEQ 'O' 04/15/92 C

3:.600 04/15/92 C*

3:.700MOVE QQGRNO PGRNO 04/15/92 C

3;.800MOVE ZLCENO PCENO 04/03/92 C

31.900MOVE 'M' PORIG 04/03/92 C

3x;000 04/02/92 C*

3:;100CALL FDRPGM PMCRCV 99 10/15192 C

3x;200 10/15/92 C*

3x;300- If the call fails (*IN99 i~~ on), 10/15/92 C* call MMC030 to send 3:;400a message to the EM bacb:ground message 10/15/92 C* queue saying 3x;500that the receiving transfer program 10/15/92 C* doesn't exist.

3x:501L.oad $LIT1 with the literal sequence 10/28/92 C* # for the name of 3x502 the program that doesn't exist, and 10/28/92 C* $LIT2 with the 32503 literal sequence # for the ~~E type.. 10/28/92 C*

3x:600 10/15/92 C*

3x700 *IN99 IFEQ *ON 10/15/92 C

3x800 MOVE MODULE $MODCD 10/15/92 C

32900 MOVE '00469 $ERRNO Message #M0046910/15/92 C

3~~000MOVE ZLCENO $CENUM CE # 10/15/92 C

3?.100MOUE '00014' $LITI 'Recv xfer 10/15/92 C pgm' 3~~200MOVE '00018' $LIT2 'Local' CE 10/15192 C

3~~300CALL 'MMC030' PMC030 10/15/92 C

3~'~400ENDIF *IN99=*ON 10/15/92 C

3.'.500 04/15/92 C*

3~~600ENL~IF $$FAIL='O' 04/15/92 C

5738PW 1 V2R2M0 920615 SI:U SOURCE LISTING 5/28/93 14:09:39 Page 8 ~,OURCE FILE . . . . . . . XLIBEM/MRPGSRC
D~IEMBER. . . . . . . . . . . MMC260 S~EQNBR*...+...1...+...2...+...3...+-...4...+...5...+...6...+...7...+...8...+...9...+...0 3:3700 02/17/92 C*

3:3800Read the next LOCCOM record for this 02/17/92 C* General CE #

3:3900 02/17/92 C*

3.1000QQGRNO READELOCCOMGC 99 04/03/92 C

C*

31200 ENDDO *IN99=*OFF 02/17/92 C

3:1300 02/17/92 C*

C

C*

C/SPACE

C*******
RCVREM
SUBR
*********'k*****************
RCVREM
SUBR
*

3~I800 * 02/17/92 C*

31900 The RCVREM subroutinc performs the * 04/02/92 C* following functions:

3:1000 * 02/17/92 C*

3:i 1. Retrieve all remote CF,'s for the * 04/03/92 100 general CE being C*

3:1200passed into thc~ program, and then * 04/03/92 C* call the receiving 3:1300transfer program retrieved from the * 04/03/92 C* Applications 3:1400Definition File, APPDEF * 04/03/92 C*

3:1500 * SRCE3 10/19/92 C*

3:1600 10/19/92 C********************************~~***************************************

3:1700 * SRCE3 10/19/92 C*

3:1800INDICATORS USED . 99 * SRCE3 10/19/92 C*

3:1900 * SRCE3 10/19/92 C*

36000 EXECUTES . $APPDF * SRCE3 10/19/92 C*

3fi100 * SRCE3 10/19/92 C*

3fi200EXECUTED FROM . MAIM.N * SRCE3 10/19/92 C*

3fi300 * SRCE3 10/19/92 C*

3fi400 10/19/92 C********************************a:***************************************

3fi500 SRCE3 10/19/92 C*

C

3fi700 02/17/92 C*

3fi800Do loop reading all REMCOM record 04/02/92 C* for the general CE #

36900 being passed into this program. 04/02/92 C*

3','000 02/17/92 C*

3','100QQGRNO SETLLREMC'OMGC 04/02/92 C

3''200QQGRNO REAI~EREMCOMGC 99 04/02/92 C

3 ~ *IN99 DOW:EQ*OFI 02/ 17/92 C

3 '400 04/02/92 C*

3 ~ - Load the receiving transfer program 04/ 15/92 500 name for this C*

3 ~ application program/From rel-mod level/To 04/ 15/92 6(10 rel-mod level C*

3 ~ from the APPDEF file. The APPDEF record 04/15/92 700 should be C*

37800 retrieved successfully because M11~IC020 04/15/92 C* has already verified 37900 that an APPDEF' record exists before 04/15/92 C* it submits the XJ

3f~000procedure that calls this program. 04/15/92 C*

3f~100 04102/92 C*

3f~200MOV13 ZMPGM KPGM 04/02/92 C

3f,300MOVI~ ZMFRML KFREL 04/02192 C

3f~400MOV13 ZMREI_ KTREL 04/02/92 C

3f~500EXSR $APPDF 04/02/92 C

5738PW 1 V2R2M0 920615 SF?U SOURCE LISTING 5/28/93 14:09:39 Page 9 SOURCE FILE . . . . . . . XLIFtEM/MRPGSRC
MEMBER. . . . . . . . . . . MMC260 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

38700 If an APPDEF record is successfi~lly 04/15/92 C* retrieved, 313800 call the Receiving Transfer 04/15/92 C* Program that has just 313900 been retrieved from the APPDEF 04/15/92 C* record. Note that 30000 even though the APPDEF record 04/15/92 C* should be retrieved 39100 successfully, we still check 04/15/92 C* $$FAIL before calling 39200 the receiving transfer prol;ram 04/15/92 C* for safety reasons.

C*

39400 $$FAIL IFEQ '0' 04/15/92 C

C*

3S)600 MOVE QQ(iRNO PGRNO 04/15/92 C

3S)700 MOVE ZMCENO PCENO 04/15192 C

3S)800 MOVE 'M' PORIG 04/15/92 C

C*

4()000 CALL, FDRPGM PMCRCV 99 10/15/92 C

C*

40200 - If the call fails (*IN99 is 10/15/92 C* on), call MMC030 to send 40300 a message to the EM bacl<:ground 10/15192 C* message queue saying 4()400 that the receiving transfer 10/28/92 C* program doesn't exist.

4()401 Load $LITI with the literal 10/28/92 C* sequence # for the name of 40402 the program that doesn't exist, 10/28/92 C* and $LIT~2 with the 4()403 literal sequence # for the CE 10/15/92 C* type.

C*

40600 *IN99 IFEQ *ON 10/15/92 C

40700 MOVIE MODULE $MODCD 10/15/92 C

40800 MOVIE '00465)' $ERRNO Message #M00469 10/15/92 C

40900 MOVIE ZMCENO $CENUM CE # 10/15/92 C

4:.000 MOVIE 'OOOI~t' $LIT1 'Recv xfer pgm' 10/15/92 C

4:.100 MOVIE 'OOO1S)' $LIT2 'Remote' CE 10/15/92 C

4:.200 CALL. 'MMC030 PMC030 10/15/92 C

4J.300 ENDIF *IN99=*ON 10/15/92 C

4?.400 04/15/92 C*

4?.500 ENDI:F $$FAIL='0' 04/15/92 C

41.600 02/17/92 C*

4?.700 - Read the next REMCO?VI record 02/17/92 C* for this General CE #

41.800 02/17/92 C*

41.900 QQGRNO REALtEREMCOMGC 99 04/03/92 C

4:;000 02/17/92 C*

4:;100 ENDI>O *IN99=*OFF 02117/92 C

4::200 02/17/92 C*

4:!300 ENSDR RCVREM SRCE3 04/02/92 C

4::400 02/17/92 C*

****' END OF SOURCE****

APPENDIX B
TO
UNITED STATES PATENT APPLICATION
FOR
IMPROVED METHOD AND APPARATUS FOR
CONVER~iION OF TRANSFERRED DIGITAL DATA
by Janice S. Pitt John Lawton This following constitute software listings of an exemplary system for conversion of transferred data according to invention. Those listings pertain to the flowcharts of Figures 5 through 7 as follows: the discussion of the software program MMU360 pertains to step 74 of Figure 5; the discussion of NEWORD & RTVTGS from the program MMU360 pertains to step 76; the discussion of subroutines NEWORD &
RTVGCE from the program MMU360 pertains to step '18; the discussion of subroutine PRCORD from MMU360 pertains to step 82;
the discussion of the program MMC460 pertains to steps 86, 88 and 90; the discussion of the program MMC040 pertains to steps 92 and 94; the discussion of the program MMC462 pertains to step 96; the discussion of program MMC020 pertains to steps 98 and 102; the discussion of program MMC020 pertains to step 102; and the discussion of program MMC464 pertains to step 104.
The materials attached as Appendix E are ~ Marcam Corporation 601/9311.27.09INDENT Library Program Page Source File MRPGSRC

*:~IAIN104100C/SPACE 3 NEWORD

*:VIAIN104200C********* NEWORD
PdEWORD
SUBR
***************
NEWORD
SUBR
*

*:~IAIN104300C* * NEWORD

*:VIAIN104400C* T'he NEWORD subroutine perform the following NEWORD
functions: *

*~IAIN104500C* 1. Performs all processing for new order NEWORD
numbers *

*iVIAIN104600C* * SRCE3 NEWORD

*I~IAIN104700C***********.'***************************************************

*IVIAIN104800C* * SRCE3 NEWORD

*I~IAIN104900C* INDICATI~RS USED . 99 * SRCE3 NEWORD

*I~IAIN105000C* * SRCE3 NEWORD

*1~IAIN105100C* EXECUTI?S . CHKORD LSTRCD OFCHCM RTVGCESRCE3 NEWORD
*

*1VIAIN105200C* RTVTGS * SRCE3 NEWORD

*IvIAIN105300C* * SRCE3 NEWORD

*I~iAIN105400C* EXECUTI?D FROM . DELETE PRCORD REMADS SRCE3 NEWORD
REMATR *

*IvIAIN105500C* REMCHG REMCOM REMCUS REMDET* SRCE3 NEWORD

*IvIAIN105600C* REMDIS REMPRM * SRCE3 NEWORD

*IvIAIN105700C* * SRCE3 NEWORD

*IVIAIN105800C***********~:******:x********************************************

*IvIAIN105900C* SRCE3 NEWORD

NEWORD106000C NEW~ORD BEGSR NEWORD

NEWORD106100C* NEWORD

NEWORD106200C* Initialize the flag which indicates NEWORD
there is an error while NEWORD106300C* processing the new order number. NEWORD

NEWORD106400C* NEWORD

NEWORD106600C* NEWORD

NEWORD106700C* Set up a DO loop for easy exit in case NEWORD
of error.

NEWORD106800C* NEWORD

NEWORD107000C* ( NEWORD

NEWORD107100C* Perform same ( processing on the previous NEWORD
order number.

NEWORD107200C* ( NEWORD

NEWORD107300C* Since a new or( der is being processed, NEWORD
if there was at least NEWORD107400C* one target site ( for the previous order, NEWORD
then release the NEWORD107500C* General CE lt. ( This is only done if NEWORD
not processing Order NEWORD107600C* Master or Cust( omer Attribute Override NEWORD
records.

NEWORD107700C* ( NEWORD

NEWORD107800C QQTS'PE( IFNE '0' NEWORD

NEWORD107900C QQTS'PE( ( ANDNE '2' NEWORD

NEWORD108000C ( ( EXSR LSTRCD NEWORD

NEWORD108100C ( ( ENDIF QQTYPE< >'0' NEWORD

NEWORD108200C* ( ( NEWORD

NEWORD108300C* Save the new ( ( Order Number to be NEWORD
processed, depending on the NEWORD108400C* QQTYPE flag ( ( sent to this subroutine. NEWORD

NEWORD108500C* ( ( NEWORD

NEWORD108600C ( SELEC NEWORD

NEWORD108700C* ( ( NEWORD

NEWORD108800C QQT~'PE( ( WHEQ '0' NEWORD

NEWORD108900C ( ( MOVE OMORDN QQORDN NEWORD

NEWORD109000C QQTTPE( ( WHEQ '1' NEWORD

NEWORD109100C ( ( MOVE OAORDN QQORDN NEWORD

NEWORD109200C QQTTPE( ( WHEQ '2' NEWORD

NEWORD109300C ( ( MOVE OUORDN QQORDN NEWORD

NEWORD109400C QQTTPE( ( WHEQ '3' NEWORD

NEWORD109500C ( ( MOVE ODORDN QQORDN NEWORD

6/01/9311.27.09INDENT Program MMU360 Source File Library XLIB310 NEWORD109600C QQT't'PE(( WHEQ '4' NEWORD

NEWORD109700C ( ( MOVE ORORDN QQORDN NEWORD

NEWORD109800C QQT'~'PE(( WHEQ '5' NEWORD

NEWORD109900C ( ( MOVE OGORDN QQORDN NEWORD

NEWORD110000C QQT'~'PE(( WHEQ '6' NEWORD

NEWORD110100C ( ( MOVE OCORDN QQORDN NEWORD

NEWORD110200C QQT'~'PE(( WHEQ '7' NEWORD

NEWORD110300C ( ( MOVE OIORDN QQORDN NEWORD

NEWORD110400C QQT'~'PE(( WHEQ '8' NEWORD

NEWORD110500C ( ( MOVE ONORDN QQORDN NEWORD

NEWORD110600C QQT'~'PE(( WHEQ '9' NEWORD

NEWORD110700C ( ( MOVE OOORDN QQORDN NEWORD

NEWORD110800C* ( ( NEWORD

NEWORD110900C ( ENDSL SELEC NEWORD

NEWORD111000C* ( NEWORD

NEWORD111100C* Initializeag indicating an Order MasterNEWORD
the fl( Transmission NEWORD111200C* File record.been written for the order. NEWORD
has( NEWORD111300C* ( NEWORD

NEWORD111400C ( CLEARQQMSTR NEWORD

NEWORD111500C* ( NEWORD

NEWORD111600C* Initializeag indicating whether all NEWORD
the fl( possible Order NEWORD111700C* Master fission File records have NEWORD
Transm( been written for the NEWORD111800C* order. NEWORD
( NEWORD111900C* ( NEWORD

NEWORD112000C ( CLEARQQALL NEWORD

NEWORD112100C* ( NEWORD

NEWORD112200C* Initializeag indicating all remaining NEWORD
the fl( records for an NEWORD112300C* order have been processed. NEWORD
number ( NEWORD112400C* ( NEWORD

NEWORD112500C ( CLEARQQPROC NEWORD

NEWORD112600C* ( NEWORD

NEWORD112700C* Initializeag indicating all additional NEWORD
the fl( transmission NEWORD112800C* file record;;ve been written for an order NEWORD
ha( number.

NEWORD112900C* ( NEWORD

NEWORD113000C ( CLEARQQWRTN NEWORD

NEWORD113100C* ( NEWORD

NEWORD113200C* Check der is being maintained by NEWORD
if the another user. If or( NEWORD113300C* it's in skip this order and retrieve NEWORD
use, the next one.
then( NEWORD113400C* ( NEWORD

NEWORD113500C ( CLEARQQUSED NEWORD

NEWORD113600C ( EXSR CHKORD NEWORD

NEWORD113700C QQUSED( IFEQ 'Y' NEWORD

NEWORD113800C ( ( MOVE 'Y' QQEROR NEWORD

NEWORD113900C ( ( LEAVE NEWORD

NEWORD114000C ( ENDIF QQUSED='Y' NEWORD

NEWORD114100C* ( NEWORD

NEWORD114200C* Retrieve eral CE fit. If there's an NEWORD
a Gen( error then remove the NEWORD114300C* order Order Conflict Control File NEWORD
from and process the the ( NEWORD114400C* next order. NEWORD
( NEWORD114500C* ( NEWORD

NEWORD114600C ( EXSR RTVGCE NEWORD

NEWORD114700C PERRCD( IFEQ '1' NEWORD

NEWORD114800C PERRCD( ( OREQ '2' NEWORD

NEWORD114900C QQORDN( ( DELETFORDFIL 99 NEWORD

NEWORD115000C ( ( MOVE *OFF *IN99 NEWORD

6/01/9311.27.09INDENT Program MMU360 Source File MRPGSRC
LISTING Library XLIB310 Page 3 I~'EWORD115100C ( ( MOVE 'Y' QQEROR NEWORD

NEWORD115200C ( ( LEAVE NEWORD

NEWORD115300C ( ENDIF PERRCD='1' NEWORD

NEWORD115400C ( NEWORD

NEWORD115500C* Set the indicate or not an order is being NEWORD
flat;
to ( NEWORD115600C* cancelled.an Order Master record with a statusNEWORD
If ( of '99' is NEWORD115700C* being d, then the order is being cancelled.NEWORD
processe( NEWORD115800C* Utherwisenot being cancelled. NEWORD
it is( NEWORD115900C* ( NEWORD

NEWORD116000C QQT'~PE( IFEQ '0' NEW ORD

NEWORD116100C OMS'TAT( ( ANDEQ '99 ' NEWORD

NEWORD116200C ( ( MOVE 'Y' QQCNLO NEWORD

NEWORD116300C ( ELSE NEWORD

NEWORD116400C ( ( MOVE 'N' QQCNLO NEWORD

NEWORD116500C ( ENDIF QQTYPE='0' NEWORD

NEWORD116600C* ( NEWORD

NEWORD116700C* Initializeag which indicates whether or not NEWORD
the fl( a resource NEWORD116800C* is being ed ( NEWORD
cancell( NEWORD116900C* ( NEWORD

NEWORD117000C ( MOVE 'N' QQCNLR NEWORD

NEWORD117100C* ( NEWORD

NEWORD117200C* If an tail or an Order Promotion record NEWORD
Orders is being De( NEWORD117300C* processedleave the loop since the processing NEWORD
then below is ( NEWORD117400C* not necessary. NEWORD
( NEWORD117500C* ( NEWORD

NEWORD117600C QQT'TPE IFEQ '3' NEWORD
( NEWORD117700C QQT'~PE ( OREQ '8' NEWORD
( NEWORD117800C ( ( LEAVE NEWORD

NEWORD117900C ( ENDIF QQTYPE='3' NEWORD

NEWORD118000C* ( NEWORD

NEWORD118100C* If the NEWORD
record being processed is a charge or a comment, check NEWORD118200C* if this NEWORD
is a charge/comment which may have been added at the NEWORD118300C* OFS and NEWORD
i~; being sent back to the OTS.
If so, then do not NEWORD118400C* continue NEWORD
with the processing of this charge/comment since the NEWORD118500C* processing NEWORD
only applies to a charge/comment being sent from NEWORD118600C* the OTS NEWORD
to the OFS( NEWORD118700C* ( NEWORD

NEWORD118800C QQT'tPE ( IFEQ '5' NEWORD

NEWORD118900C QQT'CPE ( ( OREQ '6' NEWORD

NEWORD119000C ( ( EXSR OFCHCM NEWORD

NEWORD119100C QQOISC ( ( IFEQ 'Y' NEWORD

NEWORD119200C ( ( ( MOVE 'Y' QQEROR NEWORD

NEWORD119300C ( ( ( LEAVE N1EWORD

NEWORD119400C ( ( ENDIF QQOFSC='Y' NEWORD

NEWORD119500C ( ENDIF QQTYPE='S' NEWORD

NEWORD119600C* ( NEWORD

NEWORD119700C* Retrieve sites for the order. NEWORD
all target NEWORD119800C* ( NEWORD

NEWORD119900C ( EXSR RTVTGS NEWORD

NEWORD120000C* ( NEWORD

NEWORD120200C* NEWORD

NEWORD120300C* NEWORD

6101/9311.27.09INDENT Library Program Page Source File MRPGSRC

NEWORD208000C****** PRCORD

SUBR
*******************
PRCORD
SUBR
*

NEWORD208100C* * PRCORD

NEWORD208200C* The PRCORD subroutine performs the PRCORD
following functions:

NEWORD208300C* 1. Processes through all orders which* PRCORD
need to be sent to NEWORD208400C* a remote site * PRCORD

NEWORD208500C* 2. Calls MMC140 to release the General* PRCORD
CE tl to start NEWORD208600C* the communications process for the * PRCORD
sending of the NEWORD208700C* or3er * PRCORD

NEWORD208800C* * SRCE3 PRCORD

NEWORD208900C***********~:******:k********************************************
PRCORD

NEWORD209000C* * SRCE3 PRCORD

NEWORD209100C* INDICATORS USED : 99 * SRCE3 PRCORD

NEWORD209200C* * SRCE3 PRCORD

NEWORD209300C* EXECUTI?S : LSTRCD NEWORD PRCADS * SRCE3 PRCORD
PRCATR

NEWORD209400C* PRCCHG PRCCOM PRCCUS PRCDET * SRCE3 PRCORD

NEWORD209500C* PRC'.DE2 PRCDIS WRMSTR * SRCE3 PRCORD

NEWORD209600C* * SRCE3 PRCORD

NEWORD209700C* EXECUTI?D FROM : PROCES * SRCE3 PRCORD

NEWORD209800C* * SRCE3 PRCORD

NEWORD209900C***********~:******~k*********************************************
PRCORD

NEWORD210000C* SRCE3 PRCORD

PRCORD210200C* PRCORD

PRCORD210300C* Process a loop until all orders have PRCORD
been sent to their target PRCORD210400C* sites. PRCORD

PRCORD210500C* PRCORD

PRCORD210600C* Stan processing at the beginning PRCORD
of the file.

PRCORD210700C* PRCORD

PRCORD210800C *LOVAL SETTLORDMST PRCORD

PRCORD210900C* PRCORD

PRCORD211000C *IN99 DOUEQ*ON PRCORD

PRCORD211100C* ( PRCORD

PRCORD211200C ( CLEARQQUSED PRCORD

PRCORD211300C ( CLEARQQORDN PRCORD

PRCORD211400C* ( PRCORD

PRCORD211500C* Retrieve the order ( to be sent. PRCORD

P12CORD211600C* ( PRCORD

PRCORD211700C ( READ ORDMST 99 PRCORD

PRCORD211800C* ( PRCORD

PRCORD211900C *IN99 ( IFEQ *OFF PRCORD

PRCORD212000C* ( ( PRCORD

PRCORD212100C* Perform same initi ( ( al processingSet the PRCORD
on the order number.

PRCORD212200C* QQTYPE llag to ind ( ( icate a master PRCORD
record is being processed.

PRCORD212300C* ( ( PRCORD

PRCORD212400C ( ( MOVE '0' QQTYPE PRCORD

PRCORD212500C ( ( EXSR NEWORD PRCORD

PRCORD212600C QQEF;OR ( ( IFEQ 'Y' PRCORD

PRCORD212700C ( ( ( ITER PRCORD

PRCORD212800C ( ( ENDIF QQEROR='Y' PRCORD

PRCORD212900C* ( ( PRCORD

PRCORD213000C* If there is at lea ( ( at one target PRCORD
site for the order then PRCORD213100C* continue. ( ( PRCORD

PRCORD213200C* ( ( PRCORD

PRCORD213300C QQEI,MT ( ( IFNE 0 PRCORD

PRCORD213400C* ( ( ( IFNE 0 PRCORD

601/9311.27.09INDENT
LISTING
Program Source File MRPGSRC
Library Page PRCORD213500C* Since the ( ( ( der amounts will be sent PRCORD
total or as 0, save the Pf2CORD213600C* original ( ( ( be restored after the transmissionPRCORD
values records to PftCORD213700C* are written( ( ( PRCORD

P:RCORD213800C* ( ( ( PRCORD

PftCORD213900C ( ( ( Z-ADDOMHAMT QQHAMT PRCORD

PRCORD214000C ( ( ( Z-ADDOMPAMT QQPAMT PRCORD

PItCORD214100C* ( ( ( PRCORD

PftCORD214200C* Since several( ( s apply to both the order levelPRCORD
file ( and the PItCORD214300C* resource ( ( initialize the flag which indicatesPRCORD
level, whether to ( P:E2CORD214400C* process ( ( or Resource level information.PRCORD
Order level( P:E2CORD214500C* ( ( ( PRCORD

P:ftCORD214600C ( ( ( MOVE '1' QQLEVL PRCORD

P:ltCORD214700C* ( ( ( PRCORD

P:EtCORD214800C* Write all ( ( Master Transmission records PRCORD
Order ( for the order.

P:EtCORD214900C* ( ( ( PRCORD

P:ftCORD215000C ( ( ( MOVE 'N' QQBLNK PRCORD

P:f2CORD215100C ( ( ( EXSR WRMSTR PRCORD

P:f2CORD215200C ( ( ( MOVE *OFF *IN99 PRCORD

P:f2CORD215300C* ( ( ( PRCORD

P:2CORD215400C* Restore ( ( order amount fields. PRCORD
the total ( P2CORD215500C* ( ( ( PRCORD

PRCORD215600C ( ( ( Z-ADDQQHAMT OMHAMT PRCORD

PRCORD215700C ( ( ( Z-ADDQQPAMT OMPAMT PRCORD

PI~CORD215800C* ( ( ( PRCORD

PRCORD215900C ( ( ( ENDIF QQELMT < > 0 PRCORD

PRCORD216000C* ( ( ( PRCORD

PRCORD216100C* Since the ( ( now been processed, set the PRCORD
order has( 'Needs-to-be-sent' byte PRCORD216200C* to 'N', ( ( the Order Master record. PRCORD
and update ( PRCORD216300C* ( ( ( PRCORD

PRCORD216400C ( ( ( MOVE 'N' OMSEND PRCORD

PRCORD216500C ( ( ( UPDATFORDMST PRCORD

PRCORD216600C* ( ( ( PRCORD

PRCORD216700C* If this ( ( been cancelled then remove PRCORD
order has the order from ( PRCORD216800C* the Order ( ( Control File. PRCORD
(;onflict ( PRCORD216900C* ( ( ( PRCORD

PRCORD217000C OMS'l.'AT ( ( IFEQ '99' PRCORD
( PRCORD217100C ( ( ( EXSR LSTRCD PRCORD

PRCORD217200C ( ( ( ITER PRCORD

PRCORD217300C ( ( ( ENDIF OMSTAT='99' PRCORD

PRCORD217400C* ( ( ( PRCORD

PRCORD217500C* If there ( ( one target site for the order PRCORD
is at leastthen ( PRCORD217600C* continue ( ( g the transmission files for PRCORD
b~- loadin all other ( PRCORD217700C* ( ( ( records. PRCORD

PRCORD217800C* ( ( ( PRCORD

PRCORD217900C QQEL.MT ( ( IFNE 0 PRCORD
( PRCORD218000C* ( ( ( which will be used in several PRCORD
subroutines.

PRCORD218100C* Load the ( ( which will be used in several PRCORD
key field subroutines.
( PRCORD218200C* ( ( ( PRCORD

PRCORD218300C ( ( ( MOVE QQORDN KORDN PRCORD

PRCORD218400C ( ( ( CLEARKRESR PRCORD

PRCORD218500C ( ( ( CLEARKRELN PRCORD

PRCORD218600C* ( ( ( PRCORD

PRCORD218700C* Process ( ( Address overrides for the order.PRCORD
all Order ( PRCORD218800C* ( ( ( PRCORD

PRCORD218900C ( ( ( EXSR PRCADS PRCORD

6/01/9311.27.09INDENT Program Library Source File MRPGSRC

PRCORD219000C* ( ( PRCORD
( PRCORD219100C* Process ( ( Customer override for PRCORD
any ( the order.

PRCORD219200C* ( ( PRCORD
( PRCORD219300C ( ( EXSR PRCCUS PRCORD
( PRCORD219400C* ( ( PRCORD
( PRCORD219500C* Process ( ( Attribute override for PRCORD
any ( the order.

PRCORD219600C* ( ( PRCORD
( PRCORD219700C ( ( EXSR PRCATR PRCORD
( PRCORD219800C* ( ( PRCORD
( PRCORD219900C* Process ( ( Charges for the order. PRCORD
all ( PRCORD220000C* ( ( PRCORD
( PRCORD220100C ( ( EXSR PRCCHG PRCORD
( PRCORD220200C* ( ( PRCORD
( PRCORD220300C* Process ( ( Comments for the order.PRCORD
all ( PRCORD220400C* ( ( PRCORD
( PRCORD220500C* First process( ( header text. PRCORD
all ( PRCORD220600C* ( ( PRCORD
( PRCORD220700C* ( ( MOVE '1' KCMTP PRCORD
( PRCORD220800C* ( ( EXSR PRCCOM PRCORD
( PRCORD220900C* ( ( PRCORD
( PRCORD221000C* Next process( ( trailer text. PRCORD
all ( PRCORD221100C* ( ( PRCORD
( PRCORD221200C* ( ( MOVE '2' KCMTP PRCORD
( PRCORD221300C ( ( EXSR PRCCOM PRCORD
( PRCORD221400C* ( ( PRCORD
( PRCORD221500C* Process ( ( nts for the order. PRCORD
all Discou( PRCORD221600C* ( ( PRCORD
( PRCORD221700C ( ( EXSR PRCDIS PRCORD
( PRCORD221800C* ( ( PRCORD
( PRCORD221900C* Now process( ( Detail level records PRCORD
all ( for the order.

PRCORD222000C* ( ( PRCORD
( PRCORD222100C* ( ( EXSR PRCDET PRCORD
( PftCORD222200C* ( ( PRCORD
( PItCORD222300C* Finally, ( ( all remaining informationPRCORD
process ( for this order PI2CORD222400C* number ( ( etail leveal overrides (i.~~. which are not attached any d PRCORD
( PftCORD222500C* to a particular( ( der Detail line). PRCORD
Or ( P:RCORD222600C* ( ( PRCORD
( P:RCORD222700C ( ( MOVE '3' QQLEVL PRCORD
( PftCORD222800C* ( ( PRCORD
( P:ftCORD222900C* Set up ( ( ld information. PRCORD
the key ( fie P:ftCORD223000C* ( ( PRCORD
( P:ftCORD223100C ( ( MOVE ODORDN KORDN PRCORD
( P:f2CORD223200C ( ( CLEARKRESR PRCORD
( P:KCORD223300C ( ( CLEARKRELN PRCORD
( P:EtCORD223400C* ( ( PRCORD
( P:f2CORD223500C ( ( EXSR PRCDE2 PRCORD
( P:EtCORD223600C* ( ( PRCORD
( P:ftCORD223700C ( ENDIF
( QQELMT< >0 PRCORD

P:f2CORD223800C* ( PRCORD
( P;E2CORD223900C* Release ( I CE # if the Order MasterPRCORD
the Genera Transmission ( P;tCORD224000C* record ( . PRCORD
was written ( Pl2CORD224100C* ( PRCORD
( P12CORD224200C ( EXSR LSTRCD PRCORD
( PRCORD224300C ( PRCORD
ENDIF
*IN99=*OFF

PRCORD224400C* ( PRCORD

601/9311.27.09INDENT Library XLIB310 Program Source File MRPGSRC

PRCORD224500C ENDDO DOU *IN99=*ON PRCORD

PRCORD224600C* PRCORD

PRCORD224700C* PRCORD

PRCORD394400C********** RTVGCE
F;TVGCE
SUBR
*********
RTVGCE
SUBR
*

PRCOP,D394500C* * RTVGCE

PRCORD394600C* The RTVGCE subroutine performs the RTVGCE
following functions: * SRCE3 PRCORD394700C* 1. C~~IIs MMC080 to retrieve a GeneralRTVGCE
CE # * SRCE3 PRCORD394800C* * SRCE3 RTVGCE

PRCORD394900C***********~:******:k***********************************
RTVGCE

PRCORD395000C* * SRCE3 RTVGCE

PItCORD395100C* INDICATORS USED . NONE * SRCE3 RTVGCE

PftCORD395200C* * SRCE3 RTVGCE

PftCORD395300C* EXECUT1:;D FROM . NEWORD * SRCE3 RTVGCE

PftCORD395400C* * SRCE3 RTVGCE

PItCOF;D395500C***********~:******:k***********************************
RTVGCE

PRCOF;D395600C* SRCE3 RTVGCE

RTVGCE395700C F,TVGCE BEGSR RTVGCE

RTVGCE395800C* RTVGCE

RTVGCE395900C* Call MMC080 to retrieve a General RTVGCE
CE #.

RTVGCE396000C* RTVGCE

RTVGCE396100C CALL 'MMC080' PMC080 RTVGCE

RTVGCE396200C* RTVGCE

RTVGCE396300C* If there is no error returned then RTVGCE
load the General CE # into RTVGCE396400C* a work save field. In addition, save RTVGCE
the current date and RTVGCE396500C* time in work fields to be loaded intoRTVGCE
the transmission files.

RTVGCE396600C* RTVGCE

RTVGCE396700C PERRCD IFEQ '0' RTVGCE

RTVGCE396800C ( MOVE PCENO QQCENO RTVGCE

RTVGCE396900C ( TIME QQBOTH RTVGCE

RTVGCE397000C ( MOVE $USER PUSER RTVGCE

RTVGCE397100C ( MOVE '3' PTYPE RTVGCE

RTVGCE397200C ( Z-ADDQQDATE PBEFOR RTVGCE

RTVGCE397300C ( CALL 'MZM100' DATLST RTVGCE

RTVGCE397400C ( Z-ADDPAFTER QQDATE RTVGCE

R'TVGCE397500C ENDIF PERRCD='0' RTVGCE

R'TVGCE397600C* RTVGCE

R'TVGCE397700C* If MMC080 did not write a General RTVGCE
CE # because an APPDEF

R'TVGCE397800C* record camtot be found (PERRCD = '1'),RTVGCE
call MMC030 to send a R'TVGCE397900C* message to the EM background message RTVGCE
queue saying that this R'TVGCE398000C* program (T~IMU360) cannot start communicationsRTVGCE
to send the order R'TVGCE398100C* transmission files to any remote sitesRTVGCE
because an APPDEF

R'TVGCE398200C* record camtot be found (message # RTVGCE
M00561).

R'TVGCE398300C* NOTE: Since there are many different RTVGCE
order transmission R'TVGCE398400C* files, and an OMSTRN record must be RTVGCE
sent with every R'TVGCE398500C* C'E #, then the $FILE parameter will RTVGCE
simply be loaded R'TVGCE398600C* with OMSTRN. RTVGCE

R'TVGCE398700C* RTVGCE

R'TVGCE398800C PERRCD IFEQ '1' RTVGCE

R'TVGCE398900C ( CI,EAR$MC030 RTVGCE

R'TVGCE399000C ( MOVE MODULE $MODCD RTVGCE

R'TVGCE399100C ( MOVE '00561' $ERRNO Message #M00561RTVGCE

R'TVGCE399200C ( MOVEL'MMU360' $PGMN Program Name RTVGCE

R'TVGCE399300C ( MOVEL'OMSTRN' $FILE File Name RTVGCE

6/01/9311.27.09INDENT Library XLIB310 LI~~TING Page 8 Program Source File MRPGSRC

R.TVGCE399400C ( CALL 'MMC030' PMC030 RTVGCE

R.TVGCE399500C ENDIF PERRCD='0' RTVGCE

R.TVGCE399600C* RTVGCE

R.TVGCE399700C* RTVGCE

R.TVGCE399800C* If MMCOf~O did not write a General RTVGCE
CE # because a SYSSIT record RTVGCE399900C* cannot be 'found for the current entityRTVGCE
(PERRCD = '2'), call RTVGCE400000C* MMC030 to send a message to the EM RTVGCE
background message queue RTVGCE400100C* saying that this program (MMU360) RTVGCE
cannot start communications RTVGCE400200C* to send the order transmission files RTVGCE
to any remote sites RTVGCE400300C* because a ;iYSSIT record cannot be RTVGCE
found (message # M00562).

RTVGCE400400C* NOTE: ~~ince there are many differentRTVGCE
order transmission RTVGCE400500C* files, and an OMSTRN record must be RTVGCE
sent with every RTVGCE400600C* CE #, then the $FILE parameter will RTVGCE
simply be loaded RTVGCE400700C* with OMSTRN. RTVGCE

RTVGCE400800C* RTVGCE

RTVGCE400900C PERF;CD IFEQ '2' RTVGCE

RTVGCE401000C ( CLEAR $MC030 RTVGCE

RTVGCE401100C ( MOVE MODULE $MODCD RTVGCE

RTVGCE401200C ( MOVE '00562' $ERRNO Message #M00562 RTVGCE

RTVGCE401300C ( MOVEL 'MMU360' $PGMN Program Name RTVGCE

RTVGCE401400C ( MOVEL 'OMSTRN' $FILE File Name RTVGCE

RTVGCE401500C ( CALL 'MMC030' PMC030 RTVGCE

RTVGCE401600C ENI>IF PERRCD='2' RTVGCE

RTVGCE401700C* RTVGCE

RTVGCE401800C* RTVGCE

RTVGCE402100C********** RTVTGS
F;TVTGS
SUBR
**********
RTVTGS
SUBR
*

RTVGCE402200C* * RTVTGS

RTVGCE402300C* The RTVT'GS subroutine performs the RTVTGS
following functions: *

RTVGCE402400C* 1. F;etrieves all target sites for RTVTGS
an order and loads all *

RTVGCE402500C* sites to an array * RTVTGS

RTVGCE402600C* * SRCE3 RTVTGS

RTVGCE402700C******************************************************
RTVTGS

RTVGCE402800C* * SRCE3 RTVTGS

RTVGCE402900C* INDICATORS USED . 99 * SRCE3 RTVTGS

RTVGCE403000C* * SRCE3 RTVTGS

RTVGCE403100C* EXECUTIiS . NEWTGS * SRCE3 RTVTGS

RTVGCE403200C* * SRCE3 RTVTGS

RTVGCE403300C* EXECUTI?D FROM . NEWORD REMDET * SRCE3RTVTGS

RTVGCE403400C* * SRCE3 RTVTGS

RTVGCE403500C***********~'******'k***********************************RTVTGS

RTVGCE403600C* SRCE3 RTVTGS

RTVTGS403700C F;TVTGS', BEGSR RTVTGS

RTVTGS403800C* RTVTGS

RTVTGS403900C* Initialize the variables. RTVTGS

RTVTGS404000C* RTVTGS

R'TVTGS404400C Z-ADDQQARAY X RTVTGS

R'TVTGS404500C MOVE 'Y' QQFRST RTVTGS

R'TVTGS404600C MOVE 'N' QQADD RTVTGS

R'TVTGS404700C* RTVTGS

R'TVTGS404800C* If the order is not being cancelled: RTVTGS

6.'01/9311.27.09INDENT Library XLIB310 Program Source File MRPGSRC

RTVTGS404900C* RTVTGS

'N' RTVTGS405100C* ( RTVTGS

RTVTGS405200C* Retrieve all for the order. RTVTGS
target sites ( RTVTGS405300C* ( RTVTGS

RTVTGS405400C QQORDN ( SETLLORDDETOE RTVTGS

RTVTGS405500C* ( RTVTGS

RTVTGS405600C * IN99 ( DOUEQ*ON RTVTGS

RTVTGS405700C QQORD1V ( ( READEORDDETOE 99 RTVTGS

RTVTGS405800C * IN99 ( ( IFEQ *OFF RTVTGS

RTVTGS405900C* ( ( ( RTVTGS

RTVTGS406000C* Check if the ( ( for the detail lineRTVTGS
target site already exists ( RTVTGS406100C* in the array. ( ( then read the next RTVTGS
If it does, detail line.
( R'TVTGS406200C* ( ( ( RTVTGS

RTVTGS406300C ( ( ( Z-ADDX Y RTVTGS

R'TVTGS406400C ODOFEN ( ( ( LOKUPTGS, Y 99 RTVTGS

RTVTGS406500C* ( ( ( RTVTGS

R'TVTGS406600C *IN99 ( ( ( OFEQ *ON RTVTGS

R'TVTGS406700C ~~CT, Y ( ( ( ( IFEQ 'A' RTVTGS

R'TVTGS406800C C)DACT1V ( ( ( ( ( ANDEQ 'C' RTVTGS

R'TVTGS406900C ( ( ( ( ( MOVE 'C' ACT,Y RTVTGS

R'TVTGS407000C ( ( ( ( ENDIF ACT,Y='A' RTVTGS

R'TVTGS407100C ( ( ( ( MOVE *OFF *IN99 RTVTGS

R'TVTGS407200C ( ( ( ( ITER RTVTGS

R'TVTGS407300C ( ( ( ENDIF *IN99=*ON RTVTGS

R'TVTGS407400C* ( ( ( RTVTGS

R'TVTGS407500C* If the target ( ( not already exist RTVTGS
site does in the array ( R'TVTGS407600C* then load it ( ( RTVTGS
to the a.rray.( R'TVTGS407700C* ( ( ( RTVTGS

R'TVTGS407800C ()QFRST' ( ( ( IFEQ 'Y' RTVTGS
' R'TVTGS407900C ( ( ( ( MOVE 'N' QQFRST RTVTGS

R'TVTGS408000C ( ( ( ELSE RTVTGS

R'TVTGS408100C ( ( ( ( SUB 1 X RTVTGS

R'TVTGS408200C ( ( ( ENDIF QQFRST='Y' RTVTGS

R'TVTGS408300C* ( ( ( RTVTGS

R'TVTGS408400C ( ( ( MOVE ODOFEN TGS,X RTVTGS

R'TVTGS408500C* ( ( ( RTVTGS

R'TVTGS408600C* It is only ( ( save the action RTVTGS
rn~cessary codes of those to ( R'TVTGS408700C* records which ( ( sent to a remote RTVTGS
must be ( site.

R'TVTGS408800C* NOTE: Since ( ( records are processedRTVTGS
COPTRN( first and R'TVTGS408900C* sent on a different( ( from the rest of RTVTGS
CEIt ( a given order R'TVTGS409000C* number, it ( ( necessary to save RTVTGS
is not ( the action R'TVTGS409100C* codes for C'.OPTRN( ( records. RTVTGS
( R'TVTGS409200C* ( ( ( RTVTGS

R'TVTGS409300C ODSEND ( ( ( IFEQ 'Y' RTVTGS

R'TVTGS409400C (~_QTYPE, ( ( ( ( ANDNE'9' RTVTGS

R'TVTGS409500C ( ( ( ( MOVE ODACTN ACT,XRTVTGS

R'TVTGS409600C ( ( ( ENDIF ODSEND='Y' RTVTGS

R'TVTGS409700C* ( ( ( RTVTGS

R'TVTGS409800C ( ( ( Z-ADDX QQELMT RTVTGS

R'TVTGS409900C* ( ( ( RTVTGS

R'TVTGS410000C ( ( ENDIF *IN99=*OFF RTVTGS

R'TVTGS410100C* ( ( RTVTGS

R'TVTGS410200C ( ENDDO DOU *IN99=*ON RTVTGS

R'TVTGS410300C* ( RTVTGS

6/01/9311.27.09INDENT Library XLiB310 Program Source File MRPGSRC

RTVTGS410400C* Set the flag( at least one line to RTVTGS
if there be added (i.e. there is RTVTGS410500C* is at least ( target site for the RTVTGS
one new order).

RTVTGS410600C* ( ( ( RTVTGS

RTVTGS410700C QQELMT ( IFNE 0 RTVTGS

RTVTGS410800C ( ( Z-ADDQQELMT Y RTVTGS

RTVTGS410900C 'A' ( ( LOKUPACT,Y 99 RTVTGS

RTVTGS411000C* ( ( ( RTVTGS

RTVTGS411100C *IN99 ( ( IFEQ *ON RTVTGS

RTVTGS411200C ( ( ( MOVE 'Y' QQADD RTVTGS

RTVTGS411300C* ( ( ( RTVTGS

RTVTGS411400C* Since there ( ( ( one new target site is at least for the order, RTVTGS

RTVTGS411500C* load the ( ( ( files with all overrideRTVTGS
transmissionrecords RTVTGS411600C* whose 'Needs( ( ( Sent' byte is not RTVTGS
to be 'Y' (i.e. those RTVTGS411700C* records which( ( ( show up in the openRTVTGS
will not query file).

RTVTGS411800C* ( ( ( RTVTGS

RTVTGS411900C ( ( ( EXSR NEWTGS RTVTGS

RTVTGS412000C ( ( ENDIF *IN99=*ON RTVTGS

RTVTGS412100C ( ENDIF QQELMT < > 0 RTVTGS

RTVTGS412200C* ( ( ( RTVTGS

RTVTGS412300C ENDIF QQCNLO='N' RTVTGS

RTVTGS412400C* RTVTGS

RTVTGS412500C* RTVTGS

RTVTGS412600C* If the order RTVTGS
is being cancelled:

RTVTGS412700C* RTVTGS

RTVTGS412800C QQCNLO IFEQ 'Y' RTVTGS

RTVTGS412900C* ( RTVTGS

RTVTGS413000C* Retrieve ( for the order. RTVTGS
all target sites RTVTGS413100C* ( RTVTGS

RTVTGS413200C QQORDN ( SETLLORDDETO1 RTVTGS

RTVTGS413300C* ( RTVTGS

RTVTGS413400C *IN99 ( DOUEQ*ON RTVTGS

RTVTGS413500C QQORDN ( ( READEORDDETOl 99 RTVTGS

RTVTGS413600C *IN99 ( ( IFEQ *OFF RTVTGS

RTVTGS413700C ODOFEN ( ( ( ANDNE*BLANKS RTVTGS

RTVTGS413800C ODOFEIV ( ( ( ANDNEODOTEN RTVTGS

RTVTGS413900C* ( ( ( RTVTGS

RTVTGS414000C* Check if ( ( ( for the detail lineRTVTGS
the target already exists site RTVTGS414100C* in the array.( ( ( then read the next RTVTGS
If it does, detail line.

RTVTGS414200C* ( ( ( RTVTGS

RTVTGS414300C ( ( ( Z-ADDX Y RTVTGS

RTVTGS414400C ODOFEN ( ( ( LOKUPTGS,Y 99 RTVTGS

RTVTGS414500C* ( ( ( RTVTGS

RTVTGS414600C *IN99 ( ( ( IFEQ *ON RTVTGS

RTVTGS414700C ( ( ( ( MOVE *OFF *IN99 RTVTGS

RTVTGS414800C ( ( ( ( ITER RTVTGS

RTVTGS414900C ( ( ( ENDIF *IN99=*ON RTVTGS

RTVTGS415000C* ( ( ( RTVTGS

RTVTGS415100C* If the target( ( ( not already exist RTVTGS
site does in the array RTVTGS415200C* then load ( ( ( array. RTVTGS
it to the RTVTGS415300C* ( ( ( RTVTGS

RTVTGS415400C QQFRST ( ( ( IFEQ 'Y' RTVTGS

RTVTGS415500C ( ( ( ( MOVE 'N' QQFRST RTVTGS

RTVTGS415600C ( ( ( ELSE RTVTGS

RTVTGS415700C ( ( ( ( SUB 1 X RTVTGS

RTVTGS415800C ( ( ( ENDIF QQFRST='Y' RTVTGS

6/01/9311.27.09INDENT LISTINGProgram Source File MRPGSRCLibrary XLIB310 R'CVTGS415900 C* ( ( ( RTVTGS

R'fVTGS416000 C ( ( ( MOVE ODOFEN TGS, RTVTGS
X

R't'VTGS416100 C ( ( ( Z-ADDX QQELMT RTVTGS

R'CVTGS416200 C* ( ( ( RTVTGS

R'CVTGS416300 C ( ( ENDIF RTVTGS
*IN99=*OFF

R'CVTGS416400 C ( ENDDO DOU *IN99=*ON RTVTGS

R'CVTGS416500 C* ( RTVTGS

R'CVTGS416600 C ENDIF QQCNLO='Y' RTVTGS

R'CVTGS416700 C* RTVTGS

R'CVTGS416800 C* RTVTGS

R'f 416900 C ENDSR RTVTGS SRCE3 RTVTGS
VTGS

'~73gpW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 1 ~~OURCE FILE . . . . . . . . . . . . . . . . XLIBEM/MRPGSRC
PrIEMBER . . . . . . . . . . . . . . . . . . . MMC460 ~~EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 100H*************************:*************************************************

200H* * 01/08/93 300H* Releases - 03 Mod Level - 10 * 01/08/93 400H* * 01/08/93 500H* * 01/08/93 600H* * 01/08/93 700H* * 01/08/93 gppH* * 01/08/93 900H* MODULE: Enterprise Management * 01/08/93 1000H* * 01/08/93 1100H* PROGRAM NAME: MMC460 - Customer Order Files* 01/08/93 1200H* Initialization Program * 01/08/93 1300H* * 01/08/93 1400H* FUNCTION: Determines which entities are * 03/23/93 involved 1500H* In this General Communications Entry. * 01/08/93 1600H* Updates the Order Transmission Files * 01/08/93 1700H* with specific CE#s for a given general * 01/08/93 1800H* CE#. * 01/08/93 1900H* * 01/08/93 2000H* CALLING PROGRAM: MMC000 - General Communications* 01/08/93 Entry 2100H* Processor * 01/08/93 2200H* * 01/08/93 2300H* CALLED PROGRAM: MMC200 - Write Specific * 01/08/93 Communications 2400H* Entry Program * 01/08/93 2500H* * 01/08/93 2600H* /COPY CODE: NONE * 01/08/93 2700H* * 01/08/93 2800H**************************************************************************

2900H* PROGRAM DESCRIPTION * 01/08/93 3000H*********************************************************************
***** 01/08/93 3100H* * 01/08/93 3200H* This program is the Customer Order Files * 04/16/93 Initialization 3300H* program. The program determines which entities* 04/16/93 3400H* are involved in the general CE, calls MMC200* 04/16/93 to 3500H* write a specific CE for each individual * 04/16/93 entity involved, 3600H* and then marks all general CE records in * 01/08/93 O??TRN with 3700H* specific CE#s received from MMC:Z00. (Each* 04/16/93 entity 3800H* of general CE gets marked with one specific* 04/16/93 CE.) 3900H* The program ends from mainline. * 01/08/93 4000H* * 01/08/93 4100H*********************************************************************
***** 01/08/93 4300F*************************:k***********************************************
* 01/25/93 4400F* FUNCTION OF INDICATORS * 01/08/93 4500F*************************:k***********************************************
* 01/08/93 4600F* * 01/08/93 4700F* 98 - General Indicator * 01/08/93 4800F* 99 - General Indicator * 01/08/93 q9ppF* * 01/08/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 2 SOURCE FILE . . . . . . . . . . . . . . . . XLIBEM/MRPGSRC
n~IEMBER . . . . . . . . . . . . . . . . . . . MMC460 SEQNBR*...*...1...+...2...+....3...+....4...+...5...+...6...+...7...+...8...+..
.9...+...0 5~~00F*************************************************************************
** 01/08/93 52,00F*************************************************************************
** 01/08/93 5300F* * 01/08/93 5400F* FILE SPECIFICATIONS * 01/08/93 5500F* * 01108/93 5600F**************************:******:k***************************************
*** 01/08/93 5700F* 01/08/93 5800FCOMDEF I? DISK 01/11/98 IF

6000FCOPTRNOEUFI: K DISK UC 03/23/93 IF

OF

i000FOCHTRNOEUFI? K DISK UC 03/23/93 .600FODSTRNOEUFE K DISK UC 03/23/93 .700F/SPACE 01/12/93 ft100F/SPACE 01/12/93 fs200FOPMTRNOEUFE K DISK UC 03/23/93 13600I*************************~:******:k**************************************
**** 03/23/93 ~;700I* * 03/23/93 ;gppI* INPiJT SPECIFICATION * 03/23/93 ;~ I* * 03/23/93 ,1000I*************************~~******:***************************************
**** 03/23/93 ~~100I* Data 03/23/93 Structure for CL
command OVRDBF
called by QCMDEXC.

!/200I* 03/23/93 !/300I DS 03123/93 n400I 1 53 QQOVR 03/23/93 !1500I I 'OVRDBF FILE( ' 1 12 D$1 03/23/93 '600I 13 22 QQFFIL 03/23/93 !700I I ' ) T'OPFILE ( " 23 31 D$2 03/23/93 ~~g00I 32 52 QQTFIL 03/23/93 .'i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:49:10 Page 3 SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC460 ~EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5900 I ' ) ' S3 53 D$3 03/23/93 I

I*

C**************************************************************************

10200 * 01/11/93 C*

10300 CALCULATION SPECS * 01/11/93 C*

10400 * 01111/93 C*

C**********************************.e***************************************

10600 * 01111/93 C*

C**************************************************************************

10800 MAINLINE * 01/11/93 C*

C**************************************************************************

11000 * 01/11/93 C*

11100 The MAINLINE is executed once. It .defines 01/11/93 C* a PLIST with *

11200 one parameter. OVRTRF subroutine is executed 03/23/93 C* to override *

I 1300the transmission files to the Entity Files 03/23/93 C* Library. *

I 1400PROCES subroutine is executed to process CMSTRNGC 03/23/93 C* *

11500 records with the general CI:# equal to the 04/16/93 C* CE# passed *

11600 as a parameter. * 01/11/93 C*

11700 Then, the program does a SETON LR and ends 03/24/93 C* from mainline. *

11800 * SRCE3 03/24/93 C*

C**********************************~F***************************************

12000 * SRCE3 03/24/93 C*

12100 INDICATORS USED : LR * SRCE3 03/24/93 C*

12200 * SRCE3 03/24/93 C*

12300 EXECUTES : O~VRTRF PROCES * SRCE3 03124/93 C*

12400 * SRCE3 03/24/93 C*

C**************************************************************************

C*

12700 This Parameter List is used to receive the 03/24/93 C* general CE #.

C*

12900 *ENTRY PLIS'T 01/11/93 C

13000 PARVf P$CENO 01/11/93 C

C*

13200 MOVE P$CENO QQCENO 01/11/93 C

C*

13400 Execute OVRTRF to override transmission files 03/23/93 C* to the 13500 Entity Files Library. 04/16/93 C*

C*

C

C*

13900 Process the files if no error occurred in file 03/23193 C* overrides.

C*

14100 QQFAIL IFEQ! 'N' 01/11/93 C

C

14300 ENDIF QQFAIL='N' 03/21/93 C

C*

14500 Note: the files will be closed and the overrides 04/16/93 C* will 14600 terminate when LR is SETON, so closing and 04/16193 C*

14700 deletions are not performed. 04/16/93 C*

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 4 ;iOURCE FILE . . . . . . . . . . . . . . . . XLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . I~IMC460 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C*

C*

C

C

C*

C/SPACE

C*************
*INZSR
SUBR
*************************
*INZSR
SUBR
*

15500 * 01/11/93 C*

15600 The *INZSR subroutine performs the following functions:01/11/93 C* *

15700 * 01/11/93 C*

15800 1. Performs initial calculations that need to be 01/11/93 C* done *

15900 on the initial call of the program. * 01/11/93 C*

15000 * 01/11/93 C*

15100 NOTE: The *INZSR is executed during the *INIT phase01/11/93 C* of *

15200 RPG execution. * 01/11/93 C*

15300 * SRCE3 03/24/93 C*

C*************************~:********************************************

16500 * SRCE3 03/24193 C*

16600 INDICATORS USED : 99 * SRCE3 03/24/93 C*

16700 * SRCE3 03/24/93 C*

C*************************~:*********************************************

C*

1'1000*INZSR BEGS~R 01/11/93 C

1'1100 01/11/93 C*

1'7200Define and initialize program variables 01/11/93 C*

1'7300 01/11/93 C*

1'7400MOVE 'M' MODULE 01/11/93 C

1'500 MOVEL 'MMC460' $PGM Program Name 01/11/93 C

1'600 01/12/93 C*

1'700 MOVE 'N' QQFAIL ENTFIL FLAG 03/26/93 C

C*

1',900Retrieve the current system from COMDEF. 01/12/93 C*

C*

18100 1 CHAINCOMDEI? 99 01/12/93 C

1fi200 01/11/93 C*

1f1300ENDSR *INZSR SRCE3 01/11/93 C

1f1400 01/11/93 C*

1f~500 01/11/93 C/SPACE

1f~600********** $DEFSR SUBR ******************** $DEFSR 01/11/93 C** SUBR *

1f~700* 01/11/93 C*

1f~800The $DEFSR subroutine performs the following functions:01/11/93 C* *

1f1900* 01/11/93 C*

15000 1. Define program variables. It is never executed. 01/11/93 C* *

15100 * SRCE 3 03124/93 C*

*********************************~e******************************03/24/93 C** SRCE 3 15300 * SRCE 3 03/24/93 C*

1S~400INDICATORS USED : NONE * SRCE 3 03/24/93 C*

1S500 * SRCE 3 03/24/93 C*

*********************************~k******************************03/24/93 C** SRCE 3 >738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 5 SOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . IvIMC460 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

19800 $DEFSR BEG!iR 01/11/93 C

C*

20000 Define program variables: 01/11/93 C*

C*

2D200 MOVE *BLANB;S $PGM 8 Program Name 01/11/93 C

2D300 MOVE *BLANk;S MODULE 1 MODULE 01/11/93 C*

2~D400 01/11/93 C*

2~~500Parameters used in *ENTR'Y list 01/11/93 C* and in a call to MMC200.

2~~600 01/11/93 C*

20700 MOVE *BLANk:S PACTON 1 Action Code 01/11/93 C

20800 MOVE *BLANIS;S PRORL 1 Remote/local 01/11/93 C

20900 MOVE *BLANR:S PHOLD 1 Hold records 01/11/93 C

C*

2L100 *LIKE DEFPd OMCENO P$CENO Gen CE# 01/12/93 C

2t200 *LIKE DEFPd OMCENO PGRNO Gen CE# 01/12/93 C

2L300 *LIKE DEFPd OMCENO PSPCE Specif CE# 01/12/93 C

21400 *LIKE DEFPd E1SYS PSYS Dist system 01/12/93 C

21500 *LIKE DEFPd OMTGEN PENT Entity 01/12/93 C

2 t600 03/23/93 C*

21700 Program temporary 1-fields. 03/23/93 C*

C*

2 t900MOVE *BLAI'fKS QQFAIL 1 ENTFIL flag 03/26/93 C

2'.'000MOVE *BLArfKS QQHLD 8 File hold 03/23/93 C

2'.!100*LIKE DEFN OMCENO QQCENO Gen CE# 03/23/93 C

2'.!200*LIKE DEFN EFNM1E QQOREN Entity 03/23/93 C

2',!300 03/23/93 C*

2:!400QQLEN is used by '~QCMDEXC'. h 03/23/93 C* It stores the lengt 2:!500of the CL command string and 03/23/93 C* must be defined as (15,5).

2:!600 03/23/93 C*

Y!700 Z-ADDO QQLEN 155 03/23/93 C

2.;800 01/11/93 C*

2x;900Define key fields used in KORDEN 01/16/93 C* and KCOPTR key lists.

2:.000 01/11/93 C*

2..100*LIKE DEFrt OMCElVO KCENO General CE# 01/16/93 C

2..200*LIKE DEFrt OMORDN KORDN Order# 01112/93 C

2..300*LIKE DEFrt OMTGIEN KTENT Target Ent 01/12/93 C

2..400 01/11/93 C*

2.'500PLIST used when Ml~IC200 is 01/11/93 C* called.

2?~600 01/11/93 C*

C

23800 PARbt PGRNO 01/11/93 C

C

24.000PARK( PHOLD 01/11/93 C

24100 PARb( PRORL O1 / 11 24200 PARNt PENT 01/11/93 C

24300 PARIv( PSYS 01/11/93 C

24400 PARIvI PSPCE 01/11/93 C

C*

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 6 'iOURCE FILE . . . . . . . . . . . . . . . . ,~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . 1VIMC460 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C*

24700 Set up Key list for retrieving records 01/16/93 C* from the logical view 24800 by General CE#/Target entity over General 01/16/93 C* COP Transmission 24900 File (COPTRN). 01/16/93 C*

C*

C

C

C

C*

C*

25600 Set up Key list for rearieving information 01/16/93 C* from the logical 25700 view by OrderA'/Target entity over 01/16/98 C* various Customer Order 25800 files. 01116/93 C*

C*

25000 KORDEN KLIS'T 01/16/93 C

C

C

C*

C*

25500 END!iR $DEFSR SRCE3 01/11/93 C

C*

C/SPACE

26800 * 03/23/93 C**********
OVRTRF
SUBIft ***********************
OVRTRF
SUBR

26900 * 03/23/93 C*

2'7000 The OVRTRF subroutine performs the * 03/23/93 C* following functions:

2')100 * 03/23/93 C*

2'1200 1. Executes (>CMDEXC to override the * 03/23/93 C* COP transmission 2')300 files to the entity files library. * 03/23/93 C*

2')400 2. Opens the files for use in the program.* 03/23/93 C*

2')500 * SRCE3 03/24/93 C*

2')600 03/24/93 C**************************:********************************************

2'700 * SRCE3 03/24/93 C*

2'800 INDICATORS USED . 99 * SRCE3 03/24/93 C*

2')900 * SRCE3 03/24/93 C*

213000 EXECUTED FROM . MAINLN * SRCE3 03/24/93 C*

28100 * SRCE3 03/24/93 C*

28200 *****************************************************************

C***** SRCE3 C*

28400 OVRTRF E~EGSR 03/23/93 C

2ft500 03/23/93 C*

2ft600 03/23/93 C*

2f1700 Identify the originating entity name 03/23/93 C* from CE# (the 2f1800 entity name is in the first 10 characters 03/23/93 C* of the CEfi~

2f~900 03/23/93 C*

25000 1140VELQQ~CENO QQOREN 03/23/93 C

C*

25200 Retrieve the ENTFIL, record for the 03/23193 C* originating 25300 entity to obtain the entity files library 03/23/93 C* name.

25400 If it fails to retrieve the record 03/23/93 C* in ENTFIL, >738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 7 .'iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC460 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 29500 set QQFAIL to 'Y' and leave 03/23/93 C* the subroutine.

C*

29700 QQOREN CHAINEN'I'FIL 99 03/23/93 C

C*

29900 *IN99 I:FEQ *ON 03/23/93 C

30000 ViOVE 'Y' QQFAIL 03/23/93 C

C*

30200 I~LSE 03/23/93 C

C*

C*

30500 Override COPTRNOE - COP Transmission 04/16/93 C* File to 30600 the entity files library. 03/23/93 C*

C*

30800 IvIOVEL'COPTRNOE'QQFFIL P Pad blanks 03/23/93 C

30900 EFFLIB CAT '/':0 QQTFIL P Pad blanks 03/23/93 C

31000 IvIOVEL'C()PTRNOE' QQHLD P Pad blanks 03/23/93 C

31100 QQTFIL CAT QQEtLD:O QQTFIL

31200 ~'-ADD53 QQLEN 03/23/93 C

31300 CALL 'QC1VIDEXC' 03/23/93 C

C

C

C*

C*

31800 Override OADTRNOE - Order Address 03/25/93 C* Override Transmission 31900 File to the entity files library. 03/23/93 C*

3:?000 03/23/93 C*

3:? 100 MOVEL'OADTRNOE' QQFFIL P Pad blanks 03/25/93 C

3:?200 EFFLIB ('.AT '/':0 QQTFIL P Pad blanks 03/23/93 C

3:300 DdOVEL'OADTRNOE' QQHLD P Pad blanks 03/25/93 C

3:?400 QQTFIL ('.AT QQH:LD:O

3:>.500 t;-ADD53 QQLF?N 03/23/93 C

3'.>.600(:ALL 'QCPvfDEXC' 03/23/93 C

3:?700 FARM QQOVR 03/23/93 C

3:>.800 FARM QQLEN 03/23/93 C

3:>.900 03/23/93 C*

3:3000 03/23/93 C*

3:3100 Override OATTRNOE - Order .Attribute 03/23/93 C* Override 3'.3200 Transmission File to the entity 03/23/93 C* files library.

3:3300 03/23/93 C*

3:3400 MOVEL'OATTRNOE' QQFFIL P Pad blanks 03/23/93 C

3.3500 EFFLIB C'.AT '/':0 QQTFIL P Pad blanks 03/23/93 C

3:3600 MOVEL'OATTRNOE' QQHLD P Pad blanks 03/23/93 C

3:3700 QQTFIL C:AT QQHLD:O QQTFIL

3:3800 Z; ADD53 QQLEN 03/23/93 C

3:900 CALL 'QC:MDEXC' 03/23/93 C

C

3~~100 PARM QQLEN 03/23/93 C

C*

3'x300 03/23/93 C*

:5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 8 ;30URCE FILE . . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . lMMC460 ;iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 ?4400 Override OCHTRNOE - Order Charge 03/23/93 C* Transmission File 34500 to the entity files library. 03/23/93 C*

C*

34700 iVIOVEL'OCHTRNOE' QQFFIL P Pad blanks 03/23/93 C

34800 EFFLIB CAT '/':0 QQTFIL P Pad blanks 03/23/93 C

34900 I~IOVEL'O~CHTRNOE' QQHLD P Pad blanks 03/23/93 C

35000 QQTFIL CAT QQFILD:O QQTFIL

35100 ;~-ADD53 QQLEN 03/23/93 C

35200 CALL 'QCMDEXC' 03/23/93 C

35300 !'ARM QQOVR 03/23/93 C

C

C*

C*

35700 Override OCMTRN~OE - Order Comment 03/23/93 C* Transmission File 35800 to the entity files library. 03123/93 C*

C*

36000 IvIOVEL'OCMTRNOE'QQFFIL P Pad blanks 03/23/93 C

36100 EFFLIB (.AT '/':0 QQTFIL P Pad blanks 03/23/93 C

36200 PvIOVEL'OCMTRNOE'QQHLD P Pad blanks 03/23/93 C

36300 QQTFIL (~AT QQFLLD:O QQTFIL

36400 :'_-ADD53 QQLEN 03/23/93 C

36500 CALL 'QC1~IDEXC' 03/23/93 C

36600 /'ARM QQOVR 03/23/93 C

35700 /'ARM QQLEN 03/23/93 C

C*

C*

37000 Override OCSTRNOE - Customer 03/23/93 C* Attribute Override 3'7100 Transmission File to the entity 03/23/93 C* files library.

3'7200 03/23/93 C*

3'7300 MOVEL'OCSTRNOE' QQFFIL P Pad blanks 03/23/93 C

3'7400 EFFLIB ('.AT '/':0 QQTFIL P Pad blanks 03/23/93 C

3'7500 DdOVEL'OCSTRNOE' QQHLD P Pad blanks 03/23/93 C

3'7600 QQTFIL (.'AT QQHLD:O

3'7700 l-ADD53 QQLEN 03/23/93 C

3'7800 ('.ALL 'OCMDEXC' 03/23/93 C

3'1900 FARM QQOVR 03/23/93 C

C

C*

C*

3.3300 Override ODSTRNO~E - Order Discount 03/23/93 C* Transmission File 38400 to the entity files library. 03/23/93 C*

C*

333600 MOVEL'OI)STRNOE' QQFFIL P Pad blanks 03/23/93 C

38700 EFFLIB C'.AT '/':0 QQTFIL P Pad blanks 03/23/93 C

313800 MOVEL'OI>STRNOE' QQHLD P Pad blanks 03/23/93 C

313900 QQTFIL C:AT QQHI~D:O

35000 Z; ADD53 QQLEN 03/23/93 C

3S>100 CALL 'QCMDEXC' 03/23/93 C

C

:5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 9 :30URCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . ',MMC460 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C

C*

C*

39600 Override ODTTRNOE - Order Detail 03/23/93 C* Transmission File 39700 to the entity files library. 03/23/93 C*

C*

39900 IYIOVEL'O:DTTRNOE' QQFFIL P Pad blanks 03/23/93 C

40000 EFFLIB CAT '/':0 QQTFIL P Pad blanks 03/23/93 C

40100 1VIOVEL'O:DTTRNOE' QQHLD P Pad blanks 03/23/93 C

40200 QQTFIL CAT QQ1HLD:0 QQTFIL

40300 :?-ADD53 QQLEN 03/23/93 C

40400 MALL 'QC;MDEXC' 03/23/93 C

C

C

C*

C*

40900 Override ODSTRNOE - Order Master 03/23/93 C* Transmission File 41000 to the entity files library. 03123/93 C*

C*

41200 PvIOVEL'O1~ISTRNGC'QQFFIL P Pad blanks 03/23/93 C

41300 EFFLIB I~AT '/':0 QQTFIL P Pad blanks 03/23/93 C

41400 PvIOVEL'0lvISTRNGC'QQHLD P Pad blanks 03/23/93 C

41500 QQTFIL (:AT QQHILD:O QQLEN

41600 ~:-ADD53 QQLEN 03/23/93 C

41700 GALL 'QCMDEXC' 03/23/93 C

C

C

4:L000 03/23/93 C*

4:?L00 03/23/93 C*

4:?200 Override OPMTRNOE - Order Promotion 03/23/93 C* Transmission File 4:?300 to the entity files library. 03/23/93 C*

4:?400 03/23/93 C*

4:'500 D~IOVEL'OPMTRNOE' QQFFIL P Pad blanks 03/23/93 C

4:>.600 EFFLIB (:AT '/':0 QQTFIL P Pad blanks 03/23/93 C

4:>.700 MOVEL'OPMTRNOE' QQHLD P Pad blanks 03/23/93 C

4:?800 QQTFIL C'.AT QQHI:.D:O QQTFIL 03/23/93 C

4:>.900 t:-ADD53 QQLEN 03/23/93 C

4:9000 C'.ALL 'QCrvIDEXC' 03/23/93 C

4'.9100 FARM QQOVR 03/23/93 C

4.9200 FARM QQLEN 03/23/93 C

4:9300 03123/93 C*

4:9400 Open the transmission files for 03/23/93 C* use.

4:9500 03/23/93 C*

4:1600 C>PEN COP'TRNOE 03/23/93 C

4:1700 C)PEN OADTRNOE 03/23/93 C

4:1800 C1PEN OATTRNOE 03/23/93 C

4.1900 OPEN OCHTRNOE 03/23/93 C

41000 OPEN OCMfTRNOE 03/23/93 C

4~I100 OPEN OCS'CRNOE 03/23193 C

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 10 ;iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . :MMC460 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 44200 OPEN ODST'RNOE 03/23/93 C

44300 OPEN OD'lf TRNOE 03/23/93 C

C

C

C*

44700 ENDIF *IN99=*ON 03/23/93 C

C*

C

C*

C/SPACE

C**********
PROCESS
SUBR
******~'***************
PROCESS
SUBR
*

45300 * 01/11/93 C*

45400 The PROCES subroutine retrieves records 01/11/93 C* from OMSTRNGC *

45500 with the CE# passed to this pro;;ram. For 04/16/93 C* each target *

45600 entity MMC200 is called to write a specific 04/16/96 C* CE. *

45700 All records of general CE and processed 04/16/93 C* target *

45800 entity in OMSTRNGC are updated with specific 04/16193 C* CE (that *

45900 replaces the general CE). MMC200 is called 01/11/93 C* again after *

45000 this to release the Cl? that was just written. 04/16/93 C* *

45100 * SRCE3 03/24/93 C*

C*************************~'********************************************

45300 * SRCE3 03/24/93 C*

45400 INDICATORS USED . 98 99 * SRCE3 03/24193 C*

46500 * SRCE3 03/24/93 C*

46600 EXECUTES . UPDSCE * SRCE3 03/24/93 C*

46700 * SRCE3 03/24/93 C*

46800 EXECUTED FROM: . MAINLN * SRCE3 03/24/93 C*

46900 * SRCE3 03/24/93 C*

4'1000 ********************~:********************************************SRCE3 C*****

4'1100 SRCE3 03/24/93 C*

4'1200 PROCES BE(iSR 01/11/93 C

4'1300 01/11/93 C*

4'7400 CHAIN to the OMS'fRNGC fill: with the CE# 01/11/93 C* passed as parameter 4'7500 to get the first target entity for the 04/16/93 C* general CE#.

4'600 01/11/93 C*

4'700 QQCENO CHAINOMSTRNGC N99 NO LOCK 02/09/93 C

4'800 01/11/93 C*

4'900 If no record is found in OMSTR.N for the 01/11/93 C* general CE#, then 48000 set the status of GErfCOM record to '80', 01/11/93 C* since there is 48100 nothing else to distribute. 01111/93 C*

4f1200 01/11/93 C*

4ft300 *IN99 IF:EQ *ON 01/11/93 C

4f1400 QQCENO CIIAINGENCOM 98 01/12/93 C

4f1500 *IN98 IFEQ *OFF 01/11/93 C

4f;600 MOVE '80' ZCSTAT 01/11/93 C

4f;700 UPDATFGENCOM 01/11/93 C

4f~800 ErdDIF *IN98=*OFF 01/11/93 C

4f;900 ErdDIF *IN99=*ON 01/11/93 C

C*

>738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 11 'iOURCE FILE . . . . . . . . . . . . . . . . ,~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC460 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 49100 For each target entity in OMSTRN under CE# passed02/02/93 C* compare 49200 the current system in COMDEF to the resedent system02/02/93 C* found 49300 in SYSSIT for that entity. If the two systems 04/16/93 C* are 49400 the same then this is a local CE, otherwise, it 04/16/93 C* is a 49500 remote CE. Load PRORL accordingly and call MMC20004/16/93 C* to 49600 write the specific CE. Action code PACTON = 'W' 04/16/93 C* specifies 49700 a write. After the rE'cords are nnarked in OMSTRN01/11/93 C* with the 49800 specific CE#, MMC200 is called again to release 01/11/93 C* the CE

49900 that was just written. 01/11/93 C*

C*

50100 *IN99 DOWEQ*OFF 01/11/93 C

5)200 01/11/93 C*

C

50400 *IN99 IFEQ *OFF 01/11/93 C

5)500 01/11/93 C*

5)600 EJSYS IFEQ CQSYS 01/11/93 C

50700 MOVE 'L' PRORL 01/11/93 C

50900 MOVE 'R' PRORL 01/11/93 C

51000 ENDIF EJSYS=CQSYS 01/11/93 C

C*

51200 MOVE 'W' PACTON 01/11/93 C

51300 MOVE 'Y' PHOLD 01/11/93 C

C

C

C

S 1700 CALL 'MMC200' PMC200 01/11/93 C

C*

51900 MMC200 returns the specific C:E# for the entity-to-entity01/11/93 C*

52000 distribution. That C:E# is used to update OMSTRN 01/11/93 C* file - the 2100 general CE# is replaced by the specific CE#. 01/11/93 C*

5:!200 01/11/93 C*

5:300 E3~:SR UPDSCE 01/11/93 C

5:;400 01/11/93 C*

5:!500 01/11/93 C*

5:!600 After records with this entity have been all marked01/11/93 C* by the 5x;700 same specific CE#, call MMC2C10 again to release 01/11/93 C* the CE.

5:!800 PACTON = 'R' signifies a release. (Reload other 01/11/93 C* parameters 5'<;900 again.) 01/11/93 C*

5:.000 01/11/93 C*

5..200 MOVE 'L' PRORL 01/11/93 C

5..300 ELSE 01/11/93 C

5~'~400 MOVE 'R' PRORL 01/11/93 C

5?'500 ET1DIF EJSYS=COSYS 01/11/93 C

5?~600 04/16/93 C*

5?~700 MOVE 'R' PACTON 04/16/93 C

C*

53900 MOVE 'N' PHOLD 01/11/93 C

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:49:10 Page 12 'iOURCE FILE . . . . . . . . . . . . . . . . :~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC460 .'>EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+..
.9...+...0 C

C

C

54300 CALL 'MMC200' PMC200 01/11/93 C

C*

54500 EIVDIF *IN99=*OFF 01/11/93 C

C*

54700 Retrieve the next General CEIIfTarget entity 04/16/93 C* and 54800 return to the beginning of the DO loop to 01/11/93 C* process it.

54900 Because general CE~~ has been changed to 01/11/93 C* a specific CE1/

55000 in processed records, the unprocessed records 01/11/93 C* still have 55100 the general CE1~ as their key. 01/11/93 C*

C*

C

55400 ENDDO DOW *IN99 =*OFF 01/11/93 C

C*

C

5.5700 01/11/93 C*

5.1800PACE 2 02/09/93 C/S

5.1900 02/09/93 C*********
UPDSCE
SUBR
************************
UPDSCE
SUBR
*

5~i000* 02/09/93 C*

56100 The UPDSCE subroutine updates records in 02/09/93 C* various Customer *

56200 Order files for the order;~/target entity, 02/09/93 C* marking the *

56300 records with the spe;c;ific CEIf received 02/09/93 C* from MMC200. *

56400 * SRCE3 03/24/93 C*

C**************************:********************************************

5ti600* SRCE3 03/24/93 C*

5ti700INDICATORS USED . 98 99 * SRCE3 03/24/93 C*

5ti800* SRCE3 03/24/93 C*

5ci900EXECUTED FROM . PROCES * SRCE3 03/24/93 C*

5'000 * SRCE3 03/24/93 C*

********************************************************************SRCE3 C**

5'200 SRCE3 03/24/93 C*

5'300 UPDSCE BEGSR. 02/09/93 C

5'1400 02/09/93 C*

5'500 PSPCE contains the spexific CE:~ for the 02/09/93 C* entity-to-entity 57600 distribution returned by MMC2(l0. Use it 02/09/93 C* to update general CE;Y.

5',700First update with specific CEl/ order master 02/09/93 C* file OMSTRN.

5;'800 02/09/93 C*

5','900QQCENO CI-IAINOMSTRNGC 99 02/09/93 C

5f1000MOVE PSPCE OMCENO 02/09/93 C

5f~100UPDA7:'FOMSTRN 02/09/93 C

C

5f300 02/09/93 C*

5f~400 02/09/93 C*

5F~500Mark all the other records involved in this 02/09/93 C* order in 5f;600the other Customer Order fines. All the relative 02/09/93 C* records 5f~700have the target entity equal to the target 02/09/93 C* entity for the 5f,800order. 02/09/93 C*

:5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 13 ;SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
:MEMBER . . . . . . . . . . . . . . . . . . . MMC460 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 ''8900 02/09/93 C*

'9000 Load the keys with order number and Uarget entity;02/09/93 C* these X9100 same keys are used for all files bellow. 02/09/93 C*

C*

59300 MOVE OMfORDN KORDN 02/09/93 C

C

C*

59600 For each file bellow access the logical view by 02/09/93 C* order !J/

59700 target entity and if records matching OMSTRN record02/09/93 C* exist, 59800 then mark them with the specific CE tJ just generated02/09/93 C*

59900 NOTE: Only records with a blank CEtI should be 04/26/93 C* updated C*

60100 Order Address Override Transmission File. 02/09/93 C*

C*

C

60400 *IN98 DOWEQ*OFF 02/09/93 C

C

60600 IvIOVE PSF'CE OACENO 02/09/93 C

60700 1JPDATFO,ADTRN 02/09/93 C

60800 I?NDIF OACENO=QQCENO 04/27/93 C

C

61000 1?NDDO DOW *IN98=*OFF 02/09/93 C

C*

61200 Order Attributes Override Transmission File. 02/09/93 C*

C*

61400 KORDEN (:HAINOA'CTRNOE 98 02/09/93 C

61500 *IN98 DOWEQ*OFF 02/09/93 C

61600 ORCENO IFEQ QQCI?NO 04/27/93 C

61700 PrIOVE PSPCE ORCENO 02/09/93 C

C

6L900 I?NDIF ORCENO=QQCENO 04/27/93 C

6:?000KOF',DEN READEOA'TTRNOE 98 02/09/93 C

6:?100I:NDDO DOW *IN98=*OFF 02/09/93 C

C*

6:'300Order Charge Transmission File. 02/09/93 C*

6:'400 02/09/93 C*

62500 KORDEN (:HAINOCHTRNOE 98 02/09/93 C

62600 *IN98 DOWEQ*OFF 02/09/93 C

6:!700OGCENO IFEQ QQCI?NO 04/27/93 C

6:!800D~IOVE PSPCE OGCENO 02/09/93 C

6:1900L1PDATFO(:HTRN 02/09/93 C

6:1000EsNDIF OGCENO=QQCENO 04/27/93 C

6x100 KORDEN F:EADEOCI~TRNOE 98 02/09/93 C

6:1200F;NDDO DOW *IN98=*OFF 02/09193 C

6:1300 02/09/93 C*

6:1400Order Comment Transmission File. 02/09/93 C*

6:1500 02/09/93 C*

6:.600KORDEN C'HAINOCMTRNOE 98 02/09/93 C

6..700*IN98 DOWEQ*O'.FF 02/09/93 C

5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:49:10 Page 14 ;SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . . . . . . . . MMC460 pEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 613800OCCENO tFEQ QQCENO 04/27/93 C

C

E~4000 UPDATFOCMTRN 02/09/93 C

Ei4100 ENDIF OCCENO=QQCENO 04/27/93 C

E~4200KORDEN (tEADEOCMTRNOE98 02/09/93 C

E~4300 ENDDO DOW *IN98=*OFF 02/09/93 C

6'4400 02/09/93 C*

64500 Customer Attributes 02/09/93 C* Transmission File'.

C*

64700 KORDEN CHAINOC:iTRNOE98 02/09/93 C

64800 *IN98 IDOWEQ*OFF 02/09/93 C

64900 OUCENO I:FEQ QQCENO 04/27/93 C

65000 MOVE PSf'CE OUCENO 02/09/93 C

65100 i:JPDATFOCSTRN 02/09/93 C

65200 13NDIF OUCENO=QQCENO 04/27/93 C

65300 KORDEN READEOCS'CRNOE98 02/09/93 C

65400 ENDDO DOW *IN98=*OFF 02/09/93 C

C*

65600 Order Discountssion File. 02/09/93 C* Transmi C*

C

65900 *IN98 DOWEQ*O~FF 02/09/93 C

C

66100 PvIOVE PSPCE OICENO 02/09/93 C

C

65300 ENDIF OICENO=QQCENO 04/27/93 C

C

fr5500 I?NDDO DOW *IN98=*OFF 02/09/93 C

C*

65700 Order Detail 02/09/93 C* Transmission bile.

6.5800 02/09/93 C*

65900 KORDEN (:HAINOD7fTRNOE98 02/09/93 C

6'7000*IN98 DOWEQ*OFF 02/09/93 C

6'7100ODCENO IFEQ QQCENO 04/27/93 C

6'7200 DdOVE PSPCE 02/09/93 C ODCENO

6'7300 iJPDATFODTTRN 02/09/93 C

6'1400 L?NDIF ODCENO=QQCENO 04/27/93 C

6'1500KORDEN F;EADEOD'I'TRNOE98 02/09/93 C

6'1600 f?NDDO DOW *IN98=*OFF 02/09/93 C

6'7700 02/09/93 C*

6'7800Order Promotion 02/09/93 C* Transmission File.

6'7900 02/09/93 C*

6!3000KORDEN C'.HAINOPI~fTRNOE98 02/09/93 C

613100*IN98 DOWEQ*O:FF 02/09/93 C

68200 ONCENO I:FEQ QQCf?NO 04/27/93 C

C

68400 LrPDATFOf'MTRN 02/09/93 C

6f3500 E;NDIF ONCENO=QQCENO 04/27/93 C

6f3600KORDEN R:EADEOPMTRNOE98 02/09/93 C

:5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:49:10 Page 15 :iOURCE FILE . . . . . . . . . . , . . . . . ;KLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . . . . . . . . :MMC460 :iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 68700 ENDDO DOW *IN98=*OFF 02/09/93 C

6'8800 02/09/93 C*

68900 Generic COP 02/09/93 C* Transmission File.

C*

C

69200 *IN98 IDOWEQ*OFF 02/09/93 C

C

69400 MOVE PSF'CE OOCENO 02/09/93 C

69500 tJPDATFCOPTRN 03/24/93 C

69600 l3NDIF OOCENO=QQCENO 04/27/93 C

C

69800 ENDDO DOW *IN98=*OFF 02/09/93 C

C*

C*

70100 1:NDSR UPDSCE SRCE3 02/09/93 C

C*

****END OF SOURCE ****

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 1 :iOURCE FILE . . . . . . . . . . . . . . . . :~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . VIMC462 !iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 100H**********************************:k**********************************

200H* * 01/10/92 300H* Release - 03 Mod Level - 10 * 06/26/92 400H* * 01/10/92 5010H* * 01/10/92 600H* * 01/10/92 700H* * 06/26192 800H* * 01/10/92 900H* MODULE: Enterprise Management * 01/10/92 H* * 01/10/92 1100H* PROGRAM NAME: MMC462 - Customer Order Files* 01/11/93 .200H* Sending Transfer Program * 01110/92 :.3C10H* * 01/10/92 :.400H* FUNCTION: Performs a send for a Remote * 01/14/92 CE by J.500H* calling the generic transfer procedure. * 01/14/92 J H* Loads Data Transfer Files for Local CE. * O1/

J700H* * 01/16/93 1800H* CALLING PROGRAM: MMCO10 - Generic Data * 04/16/93 Deletion Proogram 1900H* MMC020 - Local Communications Entry * 04/

:000H* Processor * 01/16/93 ~;1C10H* MMC040 - Remote Communications Entry * 01/16/93 x;200H* Processor * 01/10/92 x:300H* MMC1C10 - Communications Resending Pgrm * 02/11/92 2;400H* MZM620X - Current Date and Time * 04/06/93 2:500H* Retrieval Program * 04/06/93 2.600H* * 01 2,700H* CALLED PROGRAM: Generic Transfer Procedure.* 02/11/92 2.800H* * 01/10/92 2.900H* /COPY CODE: NONE * 01/16/92 3000H* * 01/10/92 3100H*************************~:*********************************************

3200H* PROGR.AM DESCRIPTION * 01/10/92 3300H*************************~:*********************************************

3400H* * 01/10/92 3500H* This program is the Customer Order Files * 01/16/93 Sending Transfer 3600H* Program. It determines what kind of transmission* 01/17/92 this is.

3700H* If it is a remote transmission it initiates* 01/17/92 the sending.

3800H* To initiate the sending DSMCGNR External * 01115/92 Data Structure is 3900H* loaded with information for transmission. * 01/15/92 The generic 4000H* transfer procedure is then called with * 01/15/92 Data Structure 4100H* passed as a parameter. * 01/15/92 4200H* If it is a local transmission the program * 01/16/93 loads the Data 4300H* Transfer Files with data from Transmission* 01/16/93 Files.

44C10H* The program ends from mainline. * 01/10/92 4500H* * 01/10/92 4600H**********************************************************************
* 01/10/92 4800F***********************************:k***********************************

4900F* FUNCTION OF INDICATORS * 01/10/92 SD00F***********************************:k***********************************

:5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 2 SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . iMMC462 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5100F* * 01/10/92 5200F* 99 - GeneralIndicator * 01/10/92 1300F* * 01/10/92 :1400F*************************:k*********:************************************

:1500F/SPACE 2 * 01/10192 :1600F***********************************************************************01 0700F* * 01/10/92 :i800F* )FILE SPECIFICATIONS * 01/10/92 :i900F* * 10/10/92 tiC100F***********************************************************************0 ti100F* 01/10/92 ti200FCOMDEF IF E DISK 01/10/92 ti300F/SPACE 2 01/10/92 (i400FENTFIL IF E K DISK 01/25/93 ti500F/SPACE 2 01/25/93 ','000FSYSXRF IF E K DISK 01/15/92 7200I**************************k*********************************************

7300I* * 01/10/92 7400I* INPUT SPE',CIFICATIONS * 01/10/92 7500I* * 01/10/92 i'600I**************************:k*********:***********************************
*01/10/92 7700I* 01/18/93 7800I* Define a data structure to build 01/18/93 CPYF command:

7~ I* 01/18/93 8200I I 'CPYF FROMFILE(" 1 14 D$1 01/18/93 8300I 15 31 D$FFLB 01/25/93 8400I I ') TOFILE(' 32 40 D$2 01/18/93 8500I 41 57 D$TFLB 01/25/93 8600I I ') MBROP'iC(*ADD)' S8 71 D$3 01/18/93 8700I I ' INCREL((*IF ' 72 84 D$4 04/06/93 8800I I 85 90 D$CEF 04/06/93 8900I I ' *EQ "' 91 96 D$5 04/06/93 9000I 97 111 D$VAL ()4/06/93 9100I I '') ) FMTOPT- 112 133 D$6 04/06/93 9200I 'i;*MAP *D~ROP)' 04/06/93 9300I* 01/18/93 9400I* 01/18/92 9500I* Declare externally defined data 01/16/92 structure $MCGNR

9600I* 01/16/92 9700I$MCGNR E DSDSMC(iNR 01/15/92 9800I* 01/15/92 9900C***********************************:~***********************************

10000C * * 01/10/92 :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 3 :iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . lMMC462 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 10100 CALCULATION SPECS * 01/10/92 C*

10200 * 01/10/92 C*

C***********************************************************************

10400 * 01/10/92 C*

C***********************************************************************

10600 :V1 A I N L I N E * 01 /

*

C*************************:**********************************************

10800 * 01/10/92 C*

10900 The MAINLINE is executed once. * 01/10/92 C* It defines a PLIST with 11000 five parameters. *INZSR is automatiically* 01/16/93 C* executed after 11100 PLIST is received and performs * 01/15/92 C* initialiization.

11200 If this is a remote transmission,* 01/15/92 C* then PSEND subroutine 11300 is executed to initiate sending. * 01/15/92 C*

11400 If this is a local transmission, * 01/16/93 C* then LTRAN subroutine 11500 is executed to transfer records * 01/16/93 C* locally to Data Transfer 11600 Then LR is seton and the program * 10/27/92 C* ends from mainline.

11700 This Parameter List is used to 10/12/92 C* receive the send/resent byte, 11800 the specific CE#, the remot~e/local 10/12/92 C* byte, and the generic 11900 transfer procedure name; the error 10/12/92 C* code is passed back to 12000 the calling program. 10/12/92 C*

C*

1?200 * SRCE3 04/06/93 C*

1:?300 04/06/93 C*************************"*********************************************

1:?400 * SRCE3 04/06/93 C*

1:?500INDICATORS USED . LR 99~ * SRCE3 04/06/93 C*

1:?600 * SRCE3 04/06/93 C*

1:?700EXECUTES . LTRAN RSEND * SRCE3 04/06/93 C*

1:'800 * SRCE3 04/06193 C*

1:?900 04/06/93 C*************************~:*********************************************

1:3000 SRCE3 04/06/93 C*

1:3100*ENTRY I'LIST 01/10/92 C

1:3200FARM P$SEND 09/11/92 C

1:3300PARM P$CENO 09/11/92 C

1:3400I'ARM P$RORL 09/11/92 C

1:3500FARM P$GNRC 09/11/92 C

1.3600FARM P$ERR 09/11/92 C

1:3700 01/10/92 C*

1:3800If this is a remote transmission, 01/15/92 C* then initiate sending 1.3900procedure. on 01/16/93 C*

1'4000 01/15/92 C*

1 'I P$RORL I:FEQ 'R' 09/ 11 C

1'1200P$CENO C:HAINREMCOM N99 NO LOCK 01/12/93 C

1'1300*IN99 I:FEQ *OF:F 01/12/93 C

14400 E!XSR RSErdD 01/12/93 C

1~I500E;NDIF *IN99=*OFF 01/12/93 C

14600 E;NDIF P$RORL='R' 01/12/93 C

1~'~700 01/12/93 C*

1~~800 01/16/93 C*

1.900 If this is a local transmission, 01/16/93 C* then execute LTRAN to copy 1'000 relevant records from Transmissionon 01/16/93 C* Files to DT Files.

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 4 SOURCE FILE . . . . . . . . . . . . . . . . KLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . . . . . . . . I~IMC462 :3EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C*

15200 P$RORL fREQ 'L' 01/12/93 C

15300 P$CENO CHAINLOCCOM N99 No lock 04/06/93 C

15400 *IN99 :(FEQ *OFF 01112/93 C

C

15600 IENDIF *IN99=*OFF 01/12/93 C

15700 I3NDIF P$RORL='L' 01/12/93 C

C*

15900 ;iETON LR O 1 /

C

C/SPACE

C***************
$DEFSR
'3UBR
**************
$DEFSR
SUBR
*

16300 * 01/14/92 C*

16400 The $DEFSR subroutine performs * 01/14/92 C* the following functions:

16500 * 01/14/92 C*

16600 1. Defines program variables. It * 01/14/92 C* is never executed.

16700 * SRCE3 04/06/93 C*

16800 **********SRCE3 04/06/93 C*************************~'******************************

15900 * SRCE3 04/06/93 C*

17000 INDICATORS USED . NONE * SRCE3 04/06/93 C*

17100 * SRCE3 04/06/93 C*

17200 **********SRCE3 04/06/93 C*************************~:******************************

1'7300 SRCE3 04/06/93 C*

1'7400$DEFSR BEGSR 01/14/92 C

1'7500 01 /
C* 14/92 1'7600Define program variables: 01/14/92 C*

1'7700 03/18/92 C*

1'7800MOVE *BLANR;S $PGM 8 Program 03/18/92 C name 1'7900MOVE *BLANR;S MODULE 1 MODULE 03/18/92 C

C*

1.3100Parameters used in PLISTs. 02/02/93 C*

C*

113300MOVE *BLANK:S P$GNRC 10 Gen Transf 10/27/92 C pgm 113400MOVE *BLANK:S P$ERR 1 Commun 10/27/92 C error C*

1!3600*LIKE DEFN ZLDTDdT PDATE Current 04/06/93 C Date 113700*LIKE DEFN CQLIBR PLIB Library 02/02/93 C

113800*LIKE DEFN ZLTMIvIT PTIME Current 04/06/93 C Time 113900*LIKE DEFN ZMCE1~10 P$CENO CE# 10/27/92 C

19000 *LIKE DEFN $RORL, P$RORL Remote/local 10/27/92 C

19100 *LIKE DEFN $SEND P$SEND Send/resend 10/27/92 C

C*

1Sl300Define key fields used in KSYSXR 01/16/92 C* key list.

C*

19500 *LIKE DEFN CQSYS KLSYS Local 10/27/92 C system 19600 *LIKE DEFrf CQSYS KTSYS Target 10/27/92 C syst C*

19800 Define parameter for call to generic 02/11/92 C* transfer procedure.

C*

20000 *LIKE DEFN ZMCPFM PMSG Error 10/27/92 C msg :p738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:50:05 Page 5 SOURCE FILE . . . . . . . . . . . . . . . :~LIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . . . . . . . . IYIMC462 .3EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 2;0100 01/25/93 C*

2:0200QQLEN is a parameter used in calling 01/25/93 C* a CL command 2:0300by using CALL 'QCMD~EXC' fromi within 01/25/93 C* the RPG program.

2.0400 01/25/93 C*

2.0500Z-AI>DO QQLEN 155 01/25/93 C

2.0600 04/06/93 C*

20700 MOVE *BLANICS QQFAIL 1 Copy file flag 04/06/93 C

C*

20900 PLIST used when generic transfer procedure 02/11/92 C* is called.

C*

21100 PMCO10 .'PLIST 02/02/93 C

21200 iPARM PLIB 02/02/93 C

C

21400 l?ARM PFLD 6 02/02/93 C

21500 I?ARM PVALU 15 02/02/93 C

21600 1?ARM PERR 1 02/02/93 C

C*

21800 PLIST used when Generic Data Deletion 02/02/93 C* Program is called.

C*

22000 PGNRTR I?LIST 02/02/93 C

22100 1?ARM $MCGNR 02/02/93 C

22200 I?ARM PERROR 1 02/02/93 C

22300 1?ARM PMSG 02/02/93 C

C*

22500 PLIST used when MZM620X is called. 04/06/93 C*

C*

22700 PZM620 1'LIST 04/06/93 C

22800 1'ARM PDATE Current Date 04/06/93 C

22900 FARM PTIME Current Time 04/06/93 C

C*

C*

23200 Set up Key list for retrieving information 01/16/92 C* from the 23300 System Cross-Reference File (SYSX:RF). 01/16/92 C*

C*

23500 KSYSXR I:LIST 01/16/92 C

23600 hFLD KLSYS 01/16/92 C

23700 hFLD KTSYS 01/16/92 C

C*

C*

21000 ENDSR $DEFSR SRCE3 01/14/92 C

C*

C/SPACE

21300 ********* *INZSR SUBR; ******************** 01/15/92 C** * INZSR SUBR

2'1400 * 01/15/92 C*

2'1500The *INZSR subroutine performs the following* 01/15/92 C* functions:

2'1600 * 01/15/92 C*

2'17001. Performs initial calculations that * 01/15/92 C* need to be done 2'1800on the initial call of the program. * 01/15/92 C*

2'1900 * 01/15/92 C*

2:1000NOTE: The *INZSR is executed during * 01/15/92 C* the *INIT phrase of :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 6 :iOURCE FILE . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 25100 RPG execution. * 01/15/92 C*

25200 * SRCE3 04/06/93 C*

C*******************************************************************

25400 * SRCE3 04/06/93 C*

25500 INDICATORS USED 99 * SRCE3 04/06/93 C*

25600 * SRCE3 04/06/93 C*

C**********************************~:********************************

C*

25900 *INZSR 13EGSR 01/15/92 C

26000 Initialize program variables: 03/18/92 C*

C*

26200 MOVE 'M' MODULE 03/18/92 C

26300 IvIOVEL 'MMC462' $PGM Program name 01/12/92 C

C*

26500 Retrieve this communications systems 01/16/92 C* library from COMDEF.

C*

26700 1 CHAfNCOMDEF 99 01/15/92 C

C*

C*

27000 END;iR *INZSR SRCE3 01/15/92 C

C/S

C************
LTRAM
SUBS;
**************
LTRAN
SUBR
*

2'7300* 01/16/93 C*

2'7400The LTRAN copies all records for the 04/16/93 C* local CE* passed *

2'7500from the Transmission Files; in the 04/16/93 C* Entity Files Liabrary *

2'7600to the Data Transfer Files in the Communications 04/16/93 C* File *

2'7700Library. It also performs clean up SRCE3 04/16/93 C* of potentially *

2'7800duplicate records in the Data TransferSRCE3 04/16193 C* hiles before *

2'7900records are copied there. * SRCE3 04/16/93 C*

2.3000* SRCE3 04/16/93 C*

28100 ***********************~:************************************SRCE3 C**

2.3200* SRCE3 04/06/93 C*

2.3300INDICATORS USED . 99 * SRCE3 04/06/93 C*

28400 * SRCE3 04/06/93 C*

2.3500EXECUTES . LTRAMP * SRCE3 04/06/93 C*

213600* SRCE3 04/06/93 C*

213700EXECUTED FROM . MAINLN * SRCE3 04/06/93 C*

28800 * SRCE3 04/06/93 C*

28900 *************************************************************SRCE3 C**

C*

29100 LTRAN EtEGSR 01/16/93 C

C*

2S>300Initialize QQFAIL to 'N'. It will be 04106/93 C* set to 'Y' if an 2S>400error occurs. 04/06/03 C*

2~r500 04/06/93 C*

29600 MOVE 'N' QQFAIL 04/06/93 C

C*

29800 Do loop to control the flow of the 04/06/93 C* program.

C*

C

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 7 ;pOURCE FILE . . . . . . . . . . . . . . . . :~LIBEM/MRPGSRC
1VIEMBER . . . . . . . . . . . . . . . . . . . :MMC462 ;iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C*

30200 Retrieve the Entity Definition 04/06/93 C* File.

C*

30400 ZLOREN CHAINEN'I'FIL 99 01/18/93 C

C*

30600 If the LOCCOM originating entity 04/06/93 C* is not defined, set 30700 QQFAIL to 'Y' and leave the do 04/06/93 C* loop.

C*

30900 *IN99 IFEQ *ON 04/06/93 C

31000 1VIOVE 'Y' QQFAIL 04/06/93 C

C

31200 I3NDIF *IN99=*ON 04/06/93 C

C*

31400 The following values stay the same 01/18/93 C* for all CPYFs, so 31500 only load them once: 01/18/93 C*

31600 Load the local CE# passed to this 01118/93 C* program as a search value.

31700 Load the length of the CPYF command 01/18/93 C* into QQLEN.

C*

31900 IvIOVE P9>CENO D$VAL 01/25/93 C

32000 :~-ADD 133 QQLEN 04/06/93 C

C*

32200 Before copying any data into Date 02/02/93 C* Transfer File, clear it 31,300of any records for the processed 02/02/93 C* CE#.

3:2400 02/02/93 C*

3:2,500Call program MMCO10 to delete all 02/02/93 C* records for the processed 32600 CE# in the Data Transfer File DTODET 02/02/93 C* in the Communications 3:L700Files Library. 02/02/93 C*

C*

3:?900MOVE CQLIBR PLIB 02/02/93 C

3:3000HOVEL "D'I'ODET' PFILE P Pad blanks 04/06/93 C

3:3100HOVEL "ODCENO' PFLD P Pad blanks 04/06/93 C

3:3200MOVE P$CENO PVALU 02/02/93 C

3:3300MOVE *F~LANKS PERR 02/02/93 C

3:3400 02/02/93 C*

3:3500('.ALL 'NIMCO10' PMCO10 02/02/93 C

C*

3:3700Copy Order Detail Transmission 01/18/93 C* File C1DTTRN.

3'.3800 01/18/93 C*

3:3900EFFLIB ('.AT '/':0 D$FFLB P Pad blanks 04/06/93 C

31000 D$FFLB C'.AT 'OD'TTRN':OD$FFLP From file 04/06193 C

34100 CQLIBR ('.AT '/':0 D$TFLB P Pad blanks 04/06/93 C

3~I200D$TFLB C'.AT 'DTODET':OD$TFLB To file 01/25/93 C

31300 MOVE 'ODCENO' D$CEF CE# field 01/25/93 C

3'4400 01/18/93 C*

31500 C'.ALL 'QCMDEXC' 99 04/06/93 C

C

3~t700P'ARM QQLEN 01/18/93 C

C*

3~t900*IN99 IIFEQ *ON 04/06/93 C

3'000 MOVE 'Y' QQFAIL 04/06/93 C

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 8 ;iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . , . . . . 1VIMC462 :~EQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C

35200 IENDIF *IN99=*ON 04/06/93 C

C*

C*

35500 Call program MMCO10 to delete all 03/03/93 C* records for the processed 35600 CE# in the Data Tranfser File DTOMST 03/03/93 C* in the Communications 35700 Files Library. 03103/93 C*

358Cb 03/03/93 C*

35900 IvIOVE CQLIBR PLIB 03/03/93 C

36000 IvIOVEL'D'TOMST' PFILE P Pad blanks 04/06/93 C

36100 IvIOVEL'OI~ICENO' PFLD P Pad blanks 04/06/93 C

36200 MOVE P9>CENO PVALU 03/03/93 C

36300 IvIOVE *BLANKS PERK 03/03/93 C

C*

3b500 CALL 'MMCO10' PMC010 03/03/93 C

C*

35700 Copy Order Master Transmission 03/03/93 C* File OMSTRN.

C*

3~i900EFFLIB CAT '/':U D$FFLB P Pad blanks 04/06/93 C

3'7000D$FFLIB ('AT 'OMSTRN':OD$FFLB From file 04/06/93 C

3'7100CQLIBR ('AT '/':0 D$TFLB P Pad blanks 04/06/93 C

3'7200D$TFLB (:AT 'D~TOMST':OD$TFLB To file 03/03/93 C

3'7300MOVE 'O~MCENO' D$CEF CE# field 03/03/93 C

3'7400 03/03/93 C*

3'1500(:ALL 'Q!CMDEXC' 99 04/06/93 C

3'7600FARM QQCPYF 04/06/93 C

3'1700FARM QQLEN 04/06/93 C

3'1800 04/06/93 C*

3'7900*IN99 IFEQ *CIN 04/06/93 C

313000D~IOVE 'Y' QQFAIL 04/06/93 C

C

3f3200I~,NDIF *IN99=*ON 04/06/93 C

C*

C*

3f3500Call program MMCO10 to delete all 03/03/93 C* records for the processed 3f3600CE# in the Data Transfer File DTOCH'T 04/06/93 C* in the Communications 3f3700Files Library. 03/03/93 C*

3f~800 03/03/93 C*

3f~900MOVE CQLIBR PLIB 03/03/93 C

39000 MOVEL'DTOCHT' PFILE P Pad blanks 04/06/93 C

39100 MOVEL'OCiCENO' PFLD P Pad blansk 04/06/93 C

3Sr100MOVE P$CENO PVALU 03103/93 C

39300 MOVE *BLANKS PERR 03103/93 C

C*

39500 CALL 'M:MCO10' PMCO10 03/03/93 C

3S~6Cb 03/03/93 C*

35700 Copy Order Change Transmission 03/03/93 C* File ~OCHTRN.

C*

35900 EFFLIB CAT '/'::0 D$FFLB P Pad blanks 04/06/93 C

40000 D$FFLB CAT 'OCHTRN':OD$FFLB From file 04/06/93 C

'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 9 'iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . IVIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 40100 CQLIBR CAT '/':0 D$TFLB P Pad blanks 04/06/93 C

40200 D$TFLB CAT 'I>TOCHT':OD$TFLB To file 04/06/93 C

40300 MOVE 'OGCENO' D$CEF CE# field 03/03/93 C

C*

40500 CALL '()C:MDEXC' 99 04/06/93 C

C

40700 J?ARM QQLEN 04/06/93 C

C*

40900 *IN99 1FEQ *ON 04/06/93 C

41000 IvIOVE '~" QQFAIL 04/06/93 C

41100 1_EAVE 04/06/93 C

41200 1:NDIF *IN99=*ON 04/06/93 C

C*

C*

41500 Call program MMCO10 to delete all records 03/24/93 C* for the processed 41600 CE# in the Data Transfer File DTODS'T 04106/93 C* in the Communications 41700 Files Library. 03/24/93 C*

C*

C

4:?000MOVEL'D'CODST' PFILE P Pad blanks 04/06/93 C

4:?100MOVEL'OICENO' PFLD P Pad blanks 04/06/93 C

4:?200DdOVE P$CENO PVALU 03124/93 C

4:?300MOVE *E~LANKS PERR 03/24/93 C

4:>.400 03/24/93 C*

4:?500C'.ALL 'MM:CO10' PMCO10 03/24/93 C

4:?600 03/24/93 C*

4:'700Copy Order Discount Transmission File 03/24/93 C* ODSTRN.

4'.!800 03/24/93 C*

4',!900EFFLIB CAT '/':0 D$FFLB P Pad blanks 04/06/93 C

4:1000D$FFLB CAT 'ODSTRN':OD$FFLB From file 04/06/93 C

4:1100CQLIBR CAT '/':0 D$TFLB P Pad blanks 04/06/93 C

4a200 D$TFLB CAT 'DTOD~ST':OD$TFLB To File 04/06/93 C

4:1300MOVE 'OICENO' D$CEF CE# field 03/24/93 C

4:1400 03/24/93 C*

4~I500CALL 'QCMI)EXC' 99 04/06/93 C

4..600PARM QQCPYF 04/06/93 C

4:.700PARM QQLEN 04/06/93 C

4..800 04/06/93 C*

4..900*IN99 IFEQ *ON 04/06/93 C

4.000 MOVIE 'Y' QQFAIL 04/06/93 C

44.100LEAVE 04/06/93 C

44.200ENDIF *IN99=*ON 04/06/93 C

'~.3~ 03/24/93 C*

~~ 03/24/93 C*

44.500Call program MMCO10 to delete all records 03/24/93 C* for the processed 44600 CE# in the Data Transfer File DTOCMT 04/06/93 C in the Communications 44700 Files Library. 03/24/93 C*

C*

44900 MOVl3 CQLIBIft PLIB 03/24/93 C

45000 MOVI?L 'DTOCMT' PFILE P Pad blanks 04/06/93 C

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:50:05 Page 10 SOURCE FILE . . . . . . . . . . . . . . . . aLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . IvIMC462 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 45100 MOVEL'OCCE:f~O' PFLD 04/06/93 C P Pad blanks 45200 MOVE P$CENO PVALU 03/24/93 C

45300 MOVE "BLAPdICS PERR 03/24/93 C

C*

45500 CALJL 'MMCO10' PMCO10 03/24/93 C

C*

45700 Copy Order 03/24/93 C* Comment Transmission Fiile OCMTRN

C*

45900 EFFLIB CAT '/":0 D$FFLB P Pad blanks 04/06193 C

46000 D4FFLB t~AT 'OCMTRN"'OD$FFLB From file 04/06/93 C

46100 CQLIBR 1:AT '/':0 D$TFLB P Pad blanks 04/06/93 C

46200 D$TFLB (~AT 'DTOCMT':OD$TFLB To file 04/06/93 C

46300 IvIOVE 'OCCENO' D$CEF CE# field 03/24/93 C

C*

46500 (.ALL 'QCMDEXC' 99 04/06/93 C

46600 /'ARM QQCPYF 04/06/93 C

46700 /'ARM QQLEN 04/06/93 C

C*

45900 *IN99 IFEQ *ON 04/06/93 C

47000 MOVE 'Y'' QQFAIL 04/06/93 C

C

47200 I:NDIF *IN99=*ON 04/06/93 C

4'7300 03/24/93 C*

4'7400 03/24/93 C*

4'7500Call program 03/24/93 C* MMCO10 to delete all records for the processed 4'7600CE# in the 04106/93 C* Data Transfer File DTOATT
in the Communications 4'7700Files Library. 03/24/93 C*

4'7800 03/24/93 C*

4'1900 D~IOVE CQLIBR PLIB 03/24/93 C

4.3000 HOVEL 'D'TOATT' PFILE P Pad blanks 04/06/93 C

4.3100 HOVEL 'ORCENO' PFLD P Pad blanks 04/06/93 C

4.3200 MOVE P$CENO PVALU 03/24/93 C

48300 MOVE *BLANKS PERR 03/24/93 C

48400 03!24/93 C*

4!3500 (.'ALL 'MMCO10' PMCO10 03/24/93 C

4!3600 03/24/93 C*

4!3700Copy Order 03/24/93 C* Attribute Override Transmission File OATTRN.

4!3800 03/24/93 C*

4!3900EFFLIB C'.AT '/':0 D$FFLB P Pad blanks 04/06/93 C

49000 D$FFLB C'.AT 'OATTRN':OD$FFLB From file 04/06/93 C

49100 CQLIBR C'AT '/':0 D$TFLB P Pad blanks 04/06/93 C

492,00D$TFLB C'AT 'DTOATT':OD$TFLB To file 04/06/93 C

49300 MOVE 'ORCENO' D$CEF CE# field 03/24/93 C

C*

49500 CALL 'QCMDEXC' 99 04/06/93 C

C

C

C*

49900 *IN99 IlEQ *ON 04106/93 C

SO000 MOVE 'Y' QQFAIL 04/06/93 C

'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 11 'iOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 :iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C

50200 ENDIF *IN99=*ON 04/06/93 C

C*

C*

50500 Call program MMCO10 to delete all 03/24/93 C* records for the processed 50600 CE# in the Data Transfer File DTOADT 04/06/93 C* in the Communications 50700 Files Library. 03/24/93 C*

C*

50900 IvIOVE CQ1LIBR PLIB 03/24/93 C

51000 IvIOVEL 'D~TOADT' PFILE P Pad blanks 04/06/93 C

51100 IvIOVEL 'O~ACENO' PFLD P Pad blanks 04/06/93 C

51200 IvIOVE P$CENO PVALU 03/24/93 C

51300 IvIOVE *BI,ANKS PERR 03/24/93 C

C*

51500 (JALL 'MN3C010' PMCO10 03/24/93 C

C*

51700 Copy Order Address Override Transmiission 03/24/93 C* File OADTRN.

C*

51900 EFFLIB (~AT '/':0 D$FFLB P Pad blanks 04/06/93 C

52000 D$FFLB ('_AT 'OAD'TRN': OD$FFLB P From file 04/06/93 C

52,100CQLIBR (~AT '/':0 D$TFLB P Pad blanks 04/06/93 C

52200 D$TFLB (~AT 'DTO.ADT': OD$TFLB To file 04/06/93 C

52300 MOVE 'OACENO' D$CEF CE# field 03/24/93 C

C*

5:?500(:ALL 'QCIvLDEXC' 04/06/93 C

5:?600/'ARM QQCPYF 04/06/93 C

5'?700/'ARM QQLEN 04/06/93 C

5:?800 04/06/93 C*

5:?900*IN99 IFEQ *ON 04/06/93 C

5:3000DdOVE 'Y' QQFAIL 04/06193 C

5:3100LEAVE 04/06/93 C

5:3200I?NDIF *IN99=*ON 04/06/93 C

5:3300 03/24/93 C*

5:3400 03/24/93 C*

5:3500Call program MMCO10 to delete all 03/24/93 C* records for the processed 5:3600CE# in the Data Transfer File DTOCS'C 04/06/93 C* in the Communications 5:3700Files Library. 03/24/93 C*

5'.3800 03/24/93 C*

5'.3900MOVE CQLIBR PLIB 03/24/93 C

54000 HOVEL 'D'TOCST' PFILE P Pad blanks 04/06/93 C

54100 HOVEL 'OUCENO' PFLD P Pad blanks 04/06/93 C

54200 MOVE P$CENO PVALU 03/24/93 C

54300 MOVE *BLANKS PERR 03/24/93 C

5'44()0 03/24/93 C*

54500 C'.ALL 'MMCO10' PMCO10 03/24/93 C

5't600 03/24/93 C*

54700 Copy Customer Attribute Override 03/24/93 C* Transmission File OCSTRN.

C*

53900 EFFLIB C:AT '/':0 D$FFLB P Pad blanks 04/06/93 C

5'000 D$FFLB C:AT 'OCSTRN': OD$FFLB From file 04/06/93 C

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 12 SOURCE FILE . . . . . . . . . . . . . . . . :KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . 1VIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 55100 CQLIBR CAT '/':0 D$TFLB P Pad blanks 04/06/93 C

55200 D$TFLB CAT 'I)TOCST': FOD$TFLB To file 04/06/93 C

55300 IYIOVE 'OIJCENO' D$CEF CE# field 03/24/93 C

C*

55500 CALL '()C'.MDEXC' 99 04/06/93 C

55600 1'ARM QQCPYF 04/06/93 C

55700 1?ARM QQLEN 04/06/93 C

C*

55900 *IN99 IFEQ *ON 04/06/93 C

56000 lviOVE '~" QQFAIL 04/06/93 C

C

55200 1:NDIF *IN99=*ON 04/06/93 C

C*

C*

55500 Call program MMCO10 to delete all 03/24/93 C* records for the processed 55600 CE# in the Data Transfer File DTOPMT 04/06/93 C* in the Communications 55700 Files Library. 03/24/93 C*

C*

Sn900 PvIOVE CQLIBR PLIB 03/24/93 C

5'7000P~IOVEL 'DTOPMT' PFILE P Pad blanks 04/06/93 C

5'7100HOVEL 'ONCENO' PFLD P Pad blanks 04/06/93 C

5'7200MOVE P$CENO PVALU 03/24/93 C

5'7300MOVE *BL,ANKS PERR 03/24/93 C

5'1400 03/24/93 C*

S'1500CALL 'MM:CO10' PMCO10 03/24193 C

5'1600 03/24/93 C*

5'/700Copy Order Promotion Transmission 03/24/93 C* File OPMTRN.

5'7800 03/24/93 C*

5'7900EFFLIB ('.AT '/':0 D$FFLB P Pad blanks 04/06/93 C

513000D$FFLB (:AT 'OPMTRN':OD$FFLB From file 04/06193 C

513100CQLIBR ('.AT '/':0 D$TFLP P Pad blanks 04/06/93 C

513200D$TFLB C'.AT 'DTOPMT':OD$TFLB To file 04/06/93 C

513300D~IOVE 'ONCENO' D$CEF CE# field 03/24/93 C

C*

Sf3500('.ALL 'QCMDEXC' 99 04/06/93 C

Sf3600FARM QQCPYF 04/06/93 C

Sf3700FARM QQLEN 04/06/93 C

Sf3800 04/06/93 C*

Sfi900*IN99 I:FEQ *ON 04/06/93 C

SS~000MOVE 'Y' QQFAIL 04/06/93 C

C

59200 F;NDIF 04/06/93 C

59300 *IN99=*ON 03/24/93 C*

C*

59500 Call program MMCO10 to delete all 03/24/93 C* records for the processed 55600 CE# in the Data Transfer File DTCOP'C 03/24/93 C* in the Communications 55700 Files Library. 03/24/93 C*

C*

55900 MOVE C()LIBR PLIB 03/24/93 C

60000 MOVEL'DTCOF'T' PFILE P Pad blanks 04/06/93 C

_'>738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 13 ;iOURCE FILE . . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . 1~IMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 60100 VIOVEL'OOCENO' PFLD P Pad blanks 04/06/93 C

60200 MOVE P$C:ENO PVALU 03/24/93 C

60300 MOVE *BLANKS PERR 03/24/93 C

C*

60500 CALL 'MIviC010' PMCO10 03/24/93 C

C*

60700 Copy Generic COP Transmission 03/24/93 C* File COPTRN.

C*

60900 EFFLIB CAT '1":0 D/$FFLB P Pad blanks 04/06/93 C

61000 D$FFLB CAT 'C'.OPTRN' :OD$FFLB From file 04/06/93 C

61100 CQLIBR (~AT '/":0 D$TFLB P Pad blanks 04/06/93 C

61200 D$TFLB I~AT 'DTCOPT' :OD$TFLB To file 03/24/93 C

61300 lviOVE 'CIOCENO' D$CEF CE# field 03/24/93 C

C*

61500 (.ALL 'QCMDEXC' 99 04/06/93 C

C

61700 I'ARM QQLEN 04/06/93 C

C*

61900 *IN99 IFEQ *ON 04/06/93 C

62000 MOVE 'Y' QQFAIL 04/06/93 C

C

6:?200ENDIF *IN99=*ON 04/06/93 C

6:300 03/24/93 C*

6:?400 04/06/93 C*

6:?500I?NDDO Do once 04/06193 C

6:?600 04/06/93 C*

6:?700If QQFAIL is set to 'Y', it means 04/06193 C* that there was an 6:?800error in copying records to the 04/06/93 C* data transfer file.

6:?900Update the local CE status to 04/06/93 C* '42' and set P$ERR to 6:3000'2' to indicate an error has cxcurred. 04/06/93 C*

6:3100 04/06/93 C*

6:3200QQFAIL IFEQ 'Y' 6:3300MOVE '2" P$ERR 04/06/93 C

6:3400P$CENO ('.HAINLOC'.COM 99 04/06/93 C

6'.3500*IN99 IFEQ *OFF 04/06/93 C

6:3600MOVE '4:?' ZLSTAT 04/06/93 C

6:1700C'.ALL 'M2M620X' PZM620 Get date & time 04/06/93 C

6:1800t'.-ADDPDA.TE ZLDTMT 04/06/93 C

6.3900l-ADDPTIME ZLTMMT 04/06/93 C

Cx1000LJPDATFLO(:COM 04/06193 C

(x1100f;NDIF *IN99=*OFF 04/06/93 C

Cx1200E;NDIF QQFAIL='Y' 04/06/93 C

6~I300 04/06/93 C*

64400 If this is a resend and the copy 04/06/93 C* was successful 6~L500(QQFAIL = 'N'), update the local 04/06193 C* CE status to 'S5'.

61600 The CE status is updated to 'S5' 04/06/93 C* so that the response 6<<700written by the receiving transfer 04/06/93 C* program can update 6:800 the CE status to complete. 04/06/93 C*

~W 04/06/93 C*

6000 P$SEND IlEQ 'R' 04/06/93 C

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:50:05 Page 14 'iOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . I~IMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 65100 QQFAIL .~NDEQ 'hf 04/06/93 C

65200 P$CENO CHAINLOCCOM 99 04/06/93 C

65300 *IN99 I:FEQ *OFF 04/06/93 C

65400 IvIOVE '55' ZLSTAT 04/06/93 C

65500 CALL 'MZM620X' PZM620 Get date & 04/06/93 C time 65600 :~-ADDPDATE ZLDTMT 04/06/93 C

65700 :?-ADDPTI:ME ZLTMMT 04/06/93 C

C

65900 1?NDIF *IN99=*OFF 04/06/93 C

66000 I:NDIF P$SEND='N' 04/06/93 C

C*

66200 If all the transmission files were 04/06/93 C* copied successfully 66300 into the data transfer files, delete 04/06/93 C* the transmission 65400 files records. 04/06/93 C*

C*

65600 QQFAIL IFEQ 'N' 04/06/93 C

65700 I:XSR LTRANP 04/06/93 C

65800 ENDIF QQFAIL='N' 04/06/93 C

C*

6'7000I:NDSR LTRAN SRCE3 01/16/93 C

6'7100 01/15/92 C/SPACE

6'7200 04/06/93 C***********
LTRANP
SUBR.
***************
LTRANP
SUBR
*

6'7300* 04/06/93 C*

6'7400The LTRANP purges all records in the ~ 04/06193 C* transmission files *

6'7500that were copied into the daoa transfer 04/16/93 C* Hiles successfully *

6'7600for a local CE. * SRCE3 04/16/93 C*

6'7700* SRCE3 04/16/93 C*

6'1800 SRCE3 04/06/93 C**********************************************************

6'T900* SRCE3 04/06/93 C*

68000 INDICATORS USED . NONE * SRCE3 04/06/93 C*

6!3100* SRCE3 04106/93 C*

68200 EXECUTED FROM . LTRAN * SRCE3 04/06/93 C*

6!3300* SRCE3 04/06/93 C*

6!3400 SRCE3 04/06/93 C**********************************************************

6!3500 SRCE3 04/06/93 C*

68600 LTRANP EtEGSR 04/06/93 C

6!3700 04/06/93 C*

68800 Call program MMCO10 to delete all 04/06/93 C* records for the processed 68900 CE ~t in the transmission File ODTTRN 04106/93 C* in the entity files 6Sl000library. 04/06/93 C*

6Sl100 04/06/93 C*

C

69300 MOVEL'OI)TTRN' PFILE P Pad blanks 04/06/93 C

69400 MOVEL'OI)CENO' PFLD P Pad blanks 04/06/93 C

69500 MOVE P$CENO PVALU 04/06/93 C

69600 MOVE *BLANKS PERR 04/06/93 C

C*

61800 CALL 'MMCO10' PMCO10 04/06/93 C

C*

7Ci000Call program MMCO10 to delete all 04/06/93 C* records for the processed _'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 15 SOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . IvIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 70100 CE# in the transmission File OMSTRrd 04/06/93 C* in the entity files 70200 library. 04/06/93 C*

C*

70400 IvIOVE EFFLIB PLIB 04/06/93 C

70500 IvIOVEL'OIVISTRN' PFILE P Pad blanks 04/06/93 C

70600 IvIOVE 'OMCENO' PFLD P Pad blanks 04/06/93 C

70700 IvIOVE P$C'.ENO PVALU 04/06/93 C

70800 IvIOVE *BL,ANKS PERR 04/06/93 C

C*

71000 (.ALL 'MNfC010' PMCO10 04/06/93 C

C*

71200 Call program MMCO10 to delete 04/06/93 C* all records for the processed 71300 CE# in the transmission File OCHTRrI 04/06/93 C* in the entity files 71400 library. 04/06/93 C*

C*

71600 PvIOVE EFf~LIB PLIB 04/06/93 C

71700 PvIOVEL'OCHTRN' PFILE P Pad blanks 04/06/93 C

71800 PvIOVEL'O(3CEN0 PFLD P Pad blanks 04/06/93 C

71900 PvIOVE P$C'ENO PVALU 04/06/93 C

72000 PvIOVE *BL,ANKS PERR 04/06/93 C

C*

72200 (:ALL 'MMCO10' PMCO10 04/06/93 C

7:2300 04/06/93 C*

7:L400Call program MMCO10 to delete 04/06/93 C* all records for the processed 7:?500CE# in the transmission File ODSTRN 04/06/93 C* in the entity files 7:?600library. 04/06/93 C*

7:?700 04/06/93 C*

7:?800MOVE EFF'LIB PLIB 04/06/93 C

7:?900DdOVEL'ODSTRN' PFILE P Pad blanks 04/06/93 C

7:3000D~IOVEL'OICENO' PFLD P Pad blanks 04/06/93 C

7:3100D~tOVE P$CENO PVALU 04/06/93 C

7:3200DQOVE *BLANKS PERR 04/06/93 C

7:3300 04/06/93 C*

7:3400('.ALL 'MMCO10' PMCO10 04/06/93 C

7:3500 04/06/93 C*

7:3600Call program MMCO10 to dlelete 04/06/93 C* all re<:ords for the processed 7:3700CE# in the transmission File OCMTRN 04/06/93 C* in the entity files 7:3800library. 04/06/93 C*

7:3900 04/06193 C*

C

7~I100MOVEL'O(:MTRN' PFILE P Pad blanks 04/06/93 C

71200 Movel 'OC(:ENO' PFLD P Pad blanks 04/06/93 C

7~t300MOVE P$CENO PVALU 04/06193 C

74400 MOVE *BLANKS PERR 04106/93 C

C*

74600 C'.ALL 'MMCO10' PMCO10 04/06/93 C

C*

74800 Call program MMCO10 to delete 04/06/93 C* all rec;ords for the processed 74900 CE# in the transmission File OATTRN 04/06/93 C* in the entity files 7:1000library 04/06/93 C*

'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 16 SOURCE FILE . . . . . . . . . . . . . . . . 7~LIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . IvIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

C

75300 MOVEL' C)ATTRN' PFILE P Pad blanks 04/06/93 C

75400 HOVEL' C)RCENO' PFLD P Pad blanks 04/06/93 C

75500 MOVE P$C:ENO PVALU 04/06/93 C

75600 MOVE *BLANKS PERR 04/06/93 C

C*

15800 CALL 'MMCO10' PMCO10 04/06/93 C

C*

1'6000Call program MMCO10 to delete all 04/06/93 C* records for the processed 16100 CE# in the transmission File OADTRN 04/06/93 C* in the entity files 16200 library. 04/06/93 C*

C*

.6400 MOVE EF1FLIB PLIB 04/06/93 C

X6500 HOVEL 'C>ADTRN' PFILE P Pad blanks 04/06/93 C

X6600 HOVEL 'OACENO' PFLD P Pad blanks 04/06/93 C

.6700 MOVE P$CENO PVALU 04/06/93 C

.6800 MOVE *BI_ANKS PERR 04/06/93 C

.6900 04/06/93 C*

7 7000CALL 'MMCO10' PMCO10 04/06/93 C

.7100 04/06/93 C*

','7200Call program MMCO10 to delete all 04/06/93 C* records for the processed 7300 CE# in the transmission File OCSTRTI 04/06/93 C* in the entity files .7400 library. 04/06/93 C*

;7500 04/06/93 C*

C

77700 HOVEL 'OCSTRN' PFILE P Pad Blanks 04/06/93 C

.7800 HOVEL OUCENO' PFLD P Pad Blanks 04/06/93 C

;'7900MOVE P$CENO PVALU 04/06/93 C

78000 MOVE *BLANKS PERR 04106/93 C

;'8100 04/06/93 C*

;'8200CALL 'MMCO10' PMCO10 04/06/93 C

','8300 04/06/93 C*

;'8400Call program MMCO10 to delete all 04/06/93 C* records for the processed ','8500CE# in the transmission File OPMTR1V 04/06/93 C* in the entity files ','8600library. 04/06/93 C*

-rg7pp 04/06/93 C*

'.'8800MOVE EF1FLIB PLIB 04/06/93 C

','8900HOVEL 'OPMTRN' PFILE P Pad Blanks 04/06/93 C

','9000HOVEL 'ONCENO' PFLD P Pad Blanks 04/06/93 C

'.'9100MOVE P$CENO PVALU 04/06/93 C

''9200MOVE *BLANKS PERR 04/06/93 C

''9300 04/06/93 C*

''9400CALL 'MMCO10' PMCO10 04/06/93 C

'9500 04/06/93 C*

'9600 Call program MMCO10 to delete all 04/06/93 C* r<:cords for the processed '9700 CE# in the transmission File COPTRN 04/06/93 C* in the entity files '9800 library.
C* 04/06/93 '9900 04/06193 C*

C

'i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 17 SOURCE FILE . . . . . . . . . . . . . . . . XLIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 80100 MOVEL 'C'.OPTRN' PFILE P Pad Blanks 04/06/93 C

80200 MOVEL 'C'.OCENO' PFLD P Pad Blanks 04/06/93 C

(?0300MOVE P$CENO PVALU 04/06/93 C

80400 MOVE *BI_ANKS PERR 04/06/93 C

C*

(0600 CALL 'MMCO10 PMCO10 04/06/93 C

(,0700 04/06/93 C*

f~0800ENDSR LTRANP SRCE3 04/06/93 C

(,0900 04/06/93 C*

f~1000 04/06/93 C/SPACE

f~1100******** RSEND SUBR ********'******************SUBR * 01/15/92 C** RSEND

f~1200 * 01115/92 C*

f~1300The RSEND handles sending of data * 04/16/93 C* ;for a remote CE.

f~1400It loads all required param<ters into* 04/16/93 C* MCGNR DS and f~1500calls Generic Transfer Procedure with* 04/16193 C* MCGNR passed as f~1600a parameter. The name of the Generic'fransfer* 01/15/92 C* Procedure f~1700is passed to this program in PGNRC. * 01/15/92 C*

(/1800 * SRCE3 04/06/93 C*

f~1900 ******** SRCE304/06/93 C**********************************:***************************

f~2000 * SRCE3 04/06/93 C*

f~2100INDICATORS USED : 99 * SRCE3 04106/93 C*

f~2200 * SRCE3 04/06/93 C*

(12300EXECUTED FROM . MAINLN * SRCE3 04/06/93 C*

f~2400 * SRCE3 04/06/93 C*

f~2500 ******** SRCE304/06/93 C**********************************:***************************

f~2600 SRCE3 04106/93 C*

f~2700RSEND BEGSR 01/15/92 C

f~2800 01/15/92 C*

f~2900This DO loop is executed only once; 01/16/92 C* it is used to control the (33000flow of the subroutine. If the expected 01/16/92 C* information is (33100missing in REMCOM or SYSXRF they program 01/16/92 C* skips out to the end (33200of the routine without calling generic 01/16/92 C* transfer procedure.

(33300 01/16/92 C*

(33400DO 04/16/93 C

C*

(33600 01/16/92 C*

(33700Clear the data structure before loading; 01/16/92 C* it.

(33800 01/16/92 C*

(33900CLEAR$MCGNR 01/16/92 C

(34000 01/16/92 C*

(34100The selection value is the (:E# passed 01/16/92 C* to this program and its f34200length is 15 positions. 01/25/93 C*

f34300 01/16/92 C*

f34400MOVE P$CENO $SVALA 09111/92 C

(34500MOVE P$CENO $CENO 09/11/92 C

(34600MOVE '15' $SFLA 01/15/92 C

84700 MOVE P$SENI) $SEND 09/11/92 C

(34800 01/25/92 C*

(34900Load Distribute/Redistribute byte 01/25/93 C* with 'D'.

C*

_'>738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 18 SOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 SEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 85100 MOVE 'D' $DORR 01/25/93 C

C*

85300 If sending for the first time 02/11/92 C* the extract files need to be 85400 loaded; if resending, the extract 02/11/92 C* files may or may not have 85500 been loaded already, depending 02/11/92 C* on the status.

C*

85700 MOVE 'N' $LDEXT 03/ 18/92 C

85800 P$SEND IFEQ 'S' 09/11/92 C

85900 MOVE 'Y' $LDEXT 01/15/92 C

86000 ENDfF P$SEND='S' 09/11/92 C

C*

86200 P$SEND IFEQ 'R' 09/11/92 C

86300 ZMSTAT ANDEQ'42' 01/15/92 C

86400 MOVE 'Y' $LDEXT 01/15/92 C

86500 END:fF P$SEND='R' 09/11/92 C

C*

85700 All source files involved reside 01/25/93 C* in the same entity files 85800 library (EEFLIB) found in t~NTPIL. 03/23/93 C*

C*

87000 ZMOREN CHA:fNENTFIL 99 01/25/93 C

87100 *IN99 IFEQ *ON 01/25/93 C

C

87300 ENDI:F *IN99=*ON 01/25/93 C

f7400 01/25/93 C*

8'7500To get the extract and the target 01/16192 C* library names CHAIN to 8'7600SYSXRF to retrieve FXEL1:B and 03/23/93 C* FXDLIB.

8'7700If the Cross-Reference record 03/23/93 C* is missing, then give REMCOM

8'7800status '65' and do not call the 03/23/93 C* generic transfer pgm.

8'7900Return an error code of '4' to 11/22/92 C* the calling processor.

C*

8.3100MOVE CQSYS KLSYS 03/18/92 C

88200 MOVE ZMSY;S KTSYS 01115/92 C

8.3300KSYSXR CHAINSYSXRF 99 01 / 16/92 C

8.3400*IN99 IFEQ *ON 01/16/92 C

813500P$CENO CHAINREMCOIVI 99 09/11/92 C

813600*IN99 IFEQ *OFF 02/27/92 C

813700MOVE '65' ZMSTAT 02/11/92 C

C

813900END1F *IN99=*OFF 02/27/92 C

8~I000MOVE '4' P$ERR 11/22/92 C

8~>100LEA\'E 01/16/92 C

8~>200ENDIF *IN99=*ON 01/16/92 C

C*

85)400 03/23/93 C*

89500 Load data for the Order Detail 03/23/93 C* Transmission File ODTTRN.

C*

8S>700MOVE 'ODCENO' $SFLDI Selection fl 03/23/93 C

89800 MOVE 'ODCENO' $CEFI CEIt field 03/23/93 C

C*

9(1000MOVEL'ODTTF;N' $SCEF1 Source file 03/23/93 C

:i738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:50:05 Page 19 SOURCE FILE . . . . . . . . . . . . . . . . ;~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 90100 MOVE EFFLIB $SCEL1 Source lib 03/23/93 C

C*

90300 MOVEL'EXODET' $EXTF1 Extract file 03/23/93 C

90400 MOVE FXEL1B $EXTL1 Extract lib 03/23/93 C

C*

90600 MOV'EL'DTODET' $TGTF1 Target file 01/25/93 C

90700 MOVE FXDL:fB $TGTL1 Target lib 01/25/93 C

C*

C*

91000 Load data for the Order 03/23/93 C* Master Transnnission File OMSTRN.

C*

91200 MOVE 'OMCENO' $SFLD2 Selection fl 03/23/93 C

91300 MOVE 'OMCENO' $CEF2 CE# field 03/23/93 C

C*

91500 MOVEL 'OMS7."RN' $SCEF2 Source file 03/23/93 C

91600 MOVE EFFLI:B $SCEL2 Source lib 03/23/93 C

C*

91800 MOVEL'EXOMST' $EXTF2 Extract file 03/23/93 C

91900 MOVE FXELIB $EXTL2 Extract lib 03/23/93 C

C*

92100 MOVEL'DTOMST' $TGTF2 Target file 03/23/93 C

91.200MOVE FXDL1B $TGTL2 Target lib 03/23/93 C

C*

C*

92500 Load data for the Order 03/23/93 C* Charge Transnnission File OCHTRN.

92.600 03/23/93 C*

92700 MOVE 'OGCI=;NO' $SFLD3 Selection fl 03/23/93 C

9;L800MOVE 'OGCE;NO' $CEF3 CE# field 03/23/93 C

9:?900 03/23/93 C*

9:3000MOVEL'OCHTRN' $SCEF3 Source file 03/23/93 C

9:3100MOVE EFFLI73 $SCEL3 Source lib 03/23/93 C

9:3200 03/23/93 C*

9:3300MOVEL'EXOCHT' $EXTF3 Extract file 04/08/93 C

9:3400MOVE FXELI:B $EXTL3 Extract lib 03/23/93 C

9:3500 03/23/93 C*

9:3600MOVEL'DTOCHT' $TGTF3 Target file 04/06/93 C

9:3700MOVE FXDLIB $TGTL3 Target lib 03/23/93 C

9:3800 03/23/93 C*

9:3900 03/23/93 C*

9<1000Load data for the Order 03/23/93 C* Discount Transmission File ODSTRN.

9'1100 03/23/93 C*

9'1200MOVE 'OICENO' $SFLD4 Selection fl 03/23/93 C

9~t300MOVE 'OICENO' $CEF4 CE# field 03/23/93 C

C*

94500 MOV:EL 'ODST:RN' $SCEF4 Source file 03/23/93 C

94600 MOVE EFFLII3 $SCEL4 Source lib 03/23/93 C

C*

94800 MOV:EL 'EXODST' $EXTF4 Extract file 04/08/93 C

9~I900MOVE FXELI1B $EXTLA Extract lib 03/23/93 C

9.'i000 03/23/93 C*

>738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 20 ;iOURCE FILE . . . . . . . . . . . . . . . . ;~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . , . . . . . I~IMC462 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 95100 MOVEL 'DTODST' $TGTF4 Target file 04/06/93 C

95200 MOVE FXDL:1B $TGTL4 Target lib 03/23/93 C

C*

C*

95500 Load data for the Order File N. 03/24/93 C* Comment Transportation OCMTR

C*

95700 lviOVE 'OC'.CENO' $SFLDS Selection fl 03/24/93 C

95800 IvIOVE 'OC',CENO' $CEFS CE# field 03/24/93 C

C*

96000 lviOVEL'OCMTRN' $SCEFS Source file 03/24/93 C

96100 IvIOVE EFFLIB $SCELS Source lib 03/24/93 C

C*

96300 IvIOVEL 'EXOCMT' $EXTFS Extract file 04/08/93 C

96400 PvIOVE FXELIB $EXTLS Extract lib 03/24/93 C

C*

96600 PvfOVEL 'DTOCMT' $TGTFS Target file 04/06/93 C

96700 MOVE FXDLIB $TGTLS Target lib 03/24/93 C

C*

C*

97000 Load data for the Order 03/24/93 C* Attribute Override Transmission File 97100 OATTRN. 03/24/93 C*

97200 MOVE 'ORCENO' $SFLD6 Selection fl 03/24/93 C

9'7300MOVE 'ORCENO' $CEF6 CE# field 03/24/93 C

9'7400 03/24/93 C*

9'7500PdOVE 'O~ATTRN' $SCEF6 Source file 03/24/93 C

9'7600DdOVE EFFLIB $SCEL6 Source lib 03/24/93 C

9'7700 03/24/93 C*

9'7800D~iOVEL 'EXOATT' $EXTF6 Extract file 04/08/93 C

9'7900D~IOVE F3CELIB $EXTL6 Extract lib 03/24/93 C

C*

9.3100HOVEL 'DTOATT' $TGTF6 Target file 04/06/93 C

9.3200D~iOVE FXDLIB $TGTL6 Target lib 03/24/93 C

C*

C*

98500 Load data for the Order 03/24/93 C* Address Override Transmission File 98600 OADTRN. 03/24/93 C*

91170011~IOVE 'OACENO' $SFLD7 Selection fl 03/24/93 C

98800 MOVE 'OACENO' $CEF7 CE# field 03/24/93 C

C*

9!000 HOVEL 'OADTRN' $SCEF7 Source file 03/24/93 C

91100 MOVE EF~FLIB $SCEL7 Source lib 03/24/93 C

C*

99300 HOVEL 'E:XOADT' $EXTF7 Extract file 04/08/93 C

99400 1140VE F)!;ELIB $EXTL7 Extract lib 03/24/93 C

C*

99600 HOVEL 'DTOADT' $TGTF7 Target file 04/06/93 C

99700 MOVE F)s;DLIB $TGTL7 Target lib 03/24/93 C

C*

C*

1(10000Load data for the Customer 03/24/93 C* Attributer Overrride Transmission :i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 21 ;iOURCE FILE . . . . . . . . . . . . . . . . ~~LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . 1VIMC462 'iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 100100File OCSTRN. 03/24/93 C*

100200MOVE 'OL1CEN0' $SFLD8 Selection 03/24/93 C fl 100300IvIOVE 'C)L1CEN0' $CEF8 CEJ~ field 03/24/93 C

C*

100500IvIOVEL 'OCSTRN' $SCEF8 Source file 03124/93 C

100600IvIOVE E1FFLIB $SCEL8 Source lib 03/24/93 C

C*

100800lviOVEL 'E;XOCST' $EXTF8 Extract file 04108/93 C

100900IvIOVE F:~ELIB $EXTL8 Extract lib 03/24/93 C

C*

1D1100IvIOVEL 'D~TOCST' $TGTF8 Target file 04/06/93 C

1D1200lviOVE FXDLIB $TGTL8 Target lib 03/24/93 C

C*

C*

1~~1500Load data for the Order 03/24/93 C* Promotion Transmission File OPMTRN

C*

101700PvIOVE 'ONCENO' $SFLD9 Selection 03/24/93 C fl 101800MOVE 'ONCENO' $CEF9 CEIt field 03/24/93 C

C*

102000HOVEL 'C~PMTRN' $SCEF9 Source file 03/24/93 C

102100MOVE EFFLIB $SCEL.9 Source lib 03/24/93 C

C*

102300HOVEL 'EXOPMT' $EXTF9 Extract file 04/08/93 C

102400DdOVE FXELIB $EXTL9 Extract lib 03/24/93 C

C*

102600DdOVEL 'DTOPMT' $TGTF9 Target file 04/06/93 C

102700MOVE FXDLIB $TGTL9 Target lib 03/24/93 C

C*

C*

103000Load data for the Generic COPTRN. 03/24/93 C* COP Transmussion File C*

103200MOVE 'ODCENO' $SPLDO Selection 03/24/93 C fl 103300MOVE 'ODCENO' $CEFO CE# field 03/24/93 C

C*

103500HOVEL 'COPTRN' $SCEFO Source file 03/24/93 C

103600AZOVE EF~FLIB $SCELO Source lib 03/24/93 C

C*

103800HOVEL 'E:KCOPT' $EXTFO Extract file 03/24/93 C

1(13900MOVE F3s;ELIB $EXTLO Extract lib 03124/93 C

1(14000 03/24193 C*

1(14100HOVEL 'DTCOPT' $TGTFO Target file 03/24/93 C

1(14200MOVE F3s;DLIB $TGTLO Target lib 03/24/93 C

1(14300 03/24/93 C*

1(14400 03/24/93 C*

1(14500 03/24/93 C*

104600The transmission should 01/16/92 C* be lEtemote, Distributed File type, and 104700CE# should be deleted in 01/27/93 C* source file when done.

C*

104900MOVE 'R" $RORL 01/15/92 C

1Ci5000MOVE 'DF' $TYPE 01/15/92 C

:i738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:05 Page 22 :iOURCE FILE . . . . . . . . . . . . . . . . ;KLIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . . . . . . . . 1VIMC462 iEQNBR*...*...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 105100MOVE 'I>' $DORB 01/27/93 C

C*

105300Call the Generic Transfer Procedure (he name 01/16/92 C* is passed to 105400this program). Pass the value of the error 03/11/92 C* code received 105500to the calling program. 03/11/92 C*

C*

105700CALL P'"sGNRC PGNRTR 09/1 1/92 C

105800MOVE PI3RROR P$ERR 09/11/92 C

C*

10600013NDD0 Do once 04/ 16/93 C

C*

C

C*

****END OF SOURCE****

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 1 .'iOURCE FILE . . . . . . . . . X:LIBEM/MRPGSRC
IvIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 100H**********************************~a***************************************

200H* * 01/17/92 300H* Release - 03 Mod Level - 10 * 06/26/92 400H* * 01/17/92 500H* * 01/17/92 600H* * 01/17/92 700H* * 06/26/92 800H* * 01/17/92 900H* MODULE: Enterprise Management * 01/17/92 ',000H* * 01!17/92 100H* PROGRAM NAME: IvIMC464 - Customer Order * 01/26/92 File 200H* Receiving Transfer Program * 01/17/29 1.300H* * 01/17/92 1.400H* FUNCTION: Receives data from Data Transfer* 01/26/93 Files 1.500H* in Communication Files Library to * 01/26/93 1.600H* the entity-level Customer Order Batch * 01/26/93 1700H* Files; issues, a response record; * 04/07/93 1800H* Retrieves vailues to pass back to * 04/07/93 1900H* PvIMC464X that are needed for Batch * 04/07/93 x;000H* Order Entry. * 04/07/93 x:100H* * 01/26/93 x;200H* CALLING PROGRAM: PvfMC464X - Customer * 04/07/93 Order Files Receiving x;300H* Xref Procedure. * 04/07/93 x;400H* * 02/ 17/92 2:500H* CALLED PROGRAM: MMC300 - Write Local 'STSF'* 10/13/93 Response f,600H* Program. * 10/ 13/92 2.700H* MZM100 - Date Conversion Program * 04/06/93 2.800H* MZM620X - Current Date and Time Retrieval* 04/06/93 2.900H* Program * 04/06/93 H* * 01/26/93 3100H* /COPY CODE: NONE * 04/07!92 3200H* * 01/17/92 3300H*************************~:***********************************************
* 01/17/92 3400H* PROGRAM DESCRIPTION * 01/17/92 3500H*************************~:***********************************************
* 01/17/92 3600H* * 01/17/92 3700H* This program is the Customer Order File * 01/26/93 Receiving Transfer 3800H* Program. The program copies records marked* 05/01/92 with the CEtI

3900H* passed from the Data Transf=er Files to * 01/26/93 the entity-level 4000H* Customer Order batch files. (Note: the * 04/07/93 CL procedure adds 4100H* the Entity Files Library to the library * 04/07/93 list before this 4200H* program is called, so no overrides are * 04/07/93 needed for access to 4300H* Customer Order Batch files.) Then, the * 04/07/93 program clears the 4400H* Data Transfer Files and calls Write Local* 04/07/93 Response Program 4500H* to issue a local response. Finally, the * 04/07/93 following values 4600H* are retrieved to be passed back to the * 04/07/93 CL procedure for 4700H* the use by Batch Order Entry: COM installed* 04/07/93 and interfaced 4800H* byte, local entity, date form,3t and current* 04/07/93 system date.

4900H* The program ends from mainline. * 04/07/93 5000H* * 01/17/92 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 2 ,'iOURCE FILE . . . . . . . . . XLIBEM/11~IRPGSRC
IvIEMBER . . . . . . . . . . . . MfMC464 'iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 5100H**********************************:k**************************************
* 01/17/92 :1300F*************************:k*********:************************************
**** 01/17/92 :1400F* FUNCTION OF INDIfCATORS * 01/17/92 :1500F*************************:k**********************************************
*** 01/17/92 :1600F*

:1700F* 98 - General * 04/13/92 Indicat~~r :i800F* 99 - General * 04/13/92 Indicao~r F* * 01/26/93 ti000F*************************************************************************

ti100F/SPACE 2 01/17/92 ti200F*************************************************************************
* 01/17/92 ti300F* * 01/17/92 ti400F* F1LE SPECIFICATIONS * 01/17/92 ti500F* * 01/17/92 ti600F**************************:**********************************************
*** 01/17/92 ti700F* 03/26/93 6800F* COP Batch Files 03/30/93 6900F* 03/30/93 ','000FBCHADS OF E 1C DIfSK A 04/07/93 ','100F/SPACE 2 03/30/93 .'200FBCHATR OF E K DIfSK A 04/07/93 .'400FBCHCHG OF E K DIfSK A 04/07/93 600FBCHCOM OF E K D1:SK A 04/07/93 7800FBCHCUS OF E K D1:SK A 04107/93 F~000FBCHDET OF E h DISK A 04/07/93 8200FBCHDIS OF E F: DISK A 04/07/93 8400FBCHMST OF E F; DISK A 04/07/93 8600FBCHPRM OF E 1<; DISK A 04/07/93 8800F* 03/30/93 8900F* COP Data Transfer 03/26/93 Files 9000F* 03/26/93 9100FDTCOPTCEUF E B: DISK 03/26/93 9300FDTOADTCEUF E k: DISK 03/31/93 9500FDTOATTCEUF E R: DISK 03/31/93 9700FDTOCHTCEUF E k: DISK 03/31/93 9900FDTOCMTCEUF E 8: DISK 03/31/93 1Ci000F/SPACE 2 03/26/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 3 ;iOURCE FILE . . . . . . . . . XLIBEM/11~IRPGSRC
1VIEMBER . . . . . . . . . . . . MfMC464 iEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 E

E

E

E

E

11000 F FDTOMS~T KRENAMEFDTOMS1 03/31/93 E

1.1300 F/SPACE 2 03/26/92 11400 F* 03/31/93 1 1500 F* Entity 03/31/93 Definition File 11600 F* 03/31/93 1.1700 FENTFIL IF K DISK 03/31/93 E

1.1800 F/SPACE 2 03/31/93 1.1900 F* 04/06/93 12000 F* Module Interface 04/06/93 File 1.2100 F* 04/06/93 1.2200 FINTFAC IF K IJdSK 04/06/93 E

1.2300 F/SPACE 2 04/06/93 1.2400 F* 03/31/93 1.2500 F* Local Communications 03/31/93 Entry File 1.2600 F* 03/31/93 1.2700 FLOCCOM IF K DdSK 03/26/93 E

1.2800 F/SPACE 2 03/29/93 :.2900 F* 05/26/93 :.3000 F* Order Address 05/26/93 File :3100 F* 05/26/93 :.3200 FORDADS IF K DISK 05/26/93 E

3300 F* 05/26/93 3400 F* Order Attribute 05/26/93 File :'.3500 F* 05/26/93 :'.3600 FORDATR IF K hHSK 05/26/93 E

:13700 F* 05/26193 1,3800 F* Order Special 05/26193 Charge File 13900 F* 05/26/93 E

14100 F* 05/26/93 14200 F* Order Comment 05/26/93 File 14300 F* 05/26/93 E

14500 F* 05/26/93 14600 F* Customer 05/26/93 Attributes File 14700 F* 05/26/93 E

14900 F* 05/26/93 15000 F* Order Detail 05/26/93 File 5738PW 1 V2R2M0 920615 SEU SOURCE LISTING 6/01 /93 11:50:28 Page 4 SOURCE FILE . . . . . . . . . XILIBEM/MRPGSRC
PvIEMBER . . . . . . . . . . . . M MC464 EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9.
..+...0 15100 F* 05/26/93 15200 FORDDET IF E 1~ DISK 05/26/93 15300 F* 05/26/93 15400 F* Order Discount File 05/26/93 15500 F* 05/26/93 15700 F* 03/31/93 15800 F* Order Master File 03/31/93 15900 F* 03/31/93 16000 FORDMST IF E l~ DISK 03/31/93 16100 F* 05/26/93 16200 F* Order Promotion File 05/26/93 16300 F* 05/26/93 16700 F* 04/06/93 16800 F* Cross-Applications Tailoring File 04/06/93 16900 F* 04/06/93 I***********************************>k***************************01/17/92 17300 I* * 01/17/92 17400 I* INPUT SPECIFICATIONS * 01/17/92 17500 I* * 01/26/93 17600 I***************************************************************01126/93 17800 C*************************a~************************************01/17/92 17900 C* * 01/17/92 1 8000 C* CALCULATIONS SPECS * 01/17/92 18100 C* * 01/17/92 18200 C**************************************************************01/17192 18300 C* * 01/17/92 18400 C**************************************************************01/17/92 18500 C* MAINLINE * 01/17192 18600 C*************************~:************************************01/17/92 18700 C* * 01/17/92 1.8800 C* The MAINLINE is execute,! once. It defines 01/17/92 a PLIST with *

18900 C* two parameters. *INZSR i s automatically executed09/18/92 after *

1!000 C* PLIST is received and performs initialization.01/17/92 *

1!100 C* First, LOCCOM is accessed with a given CEIi. 04/07/93 Then, *

1!200 C* COPYF subroutine is executed to upload records04/07/93 from *

1!300 C* COP data transfer files to batch files. * 04/07/93 1!400 C* Then MMC300 is called to write a local response.04/07/93 *

i!~500 C* Then LDPARM subroutine is executed to retrieve04/16/93 parameters *

1!600 C* to be passed back to the calling CL procedure.04/16/93 *

1!700 C* Then LR is seton and the program ends; from 10/27/92 mainline. *

1!1800 C* * SRCE3 04/09/93 1!900 C**************************:************************************04/09/93 2n)00 C* * SRCE3 04/09/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 5 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2~~100INDICATORS USED . LR 9S~ * SRCE3 04/09/93 C*

20200 * SRCE3 04/09/93 C*

20300 EXECUTORS . COPYFL LDPARM * SRCE3 04/09/93 C*

2i)400* SRCE3 04/09/93 C*

C*************************~:************************************

C*

20700 The program receives one parameter CE# 04/09193 C* and returns four 20800 parameters: COM installed and interfaced 04/09/93 C* byte, Local Entity 20900 name, date format, and current system 04/09/93 C* date.

C*

21100 *ENTRY PLIS'C 01/17/92 C

21200 PARM P$CENO 09/ 18/92 C

21300 PARM P$COM 04/02/93 C

C

21500 PARD~I P$DFMT 04/02/93 C

21600 PARD~I P$DATE 04/02/93 C

C*

21800 MOVE P$CENO QQCENO 09/18/92 C

21900 QQCENO CHA1NLOCCOD~I 99 04/07/92 C

2'.'000*IN99 IFEQ *OFF 01/21/92 C

2'.'100 03/26/93 C*

2'.!200Records for the passed CEfI in COP files 03/26/93 C* should be copied to 2.'!300the batch files in the Entity :Files 04/07/93 C* Library.

2'.!400 03/26/93 C*

2:!500EXSR COPYFL 01/18/92 C

2:!600 04/30/92 C*

2:;700Next, a local RSPCOM record has to b~e 02/02/93 C* written. To do that Y;800 MMC300 is called with CEiY passed as 04/07/92 C* a parameter.

2x!900 04/07/92 C*

2x000 MOVE QQCENO PCENO

2x100 CALL 'MMC_f00' PMC300 04/07/92 C

2:200 04/06/93 C*

2..300Load the program parameters to be returned 04/06/93 C* to the calling 2..400CL procedure. 04/06/93 C*

2..500 04/06/93 C*

2..600EXSR LDPAF;M 04/06/93 C

2..700MOVIE QQCOIvi P$COM 04/06/93 C

2..800MOVIE QQEN'l~ PENT 04/06/93 C

2..900MOVE QQDFD~I'T P$DFMT 04/06/93 C

24.000Z-AD~QQDATE P&DATE 04/06/93 C

24.100 04/07/92 C*

24.200ENDIF *IN99=*OFF 01/21/92 C

24.300 01117/92 C*

C

24.500RETRN 01/17192 C

C/SPACE

24.700************ $DEFSR SilBR **************************SUBR * 01/17/92 C** $DEFSR

24.800 * 01/17/92 C*

24900 The $DEFSR subroutine performs the following* 01/17/92 C* functions:

25000 * 01/17/92 C*

5738PW1 V2R2M0 920615 SEIU SOURCE LISTING 6/01/93 11:50:28 Page 6 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 S'~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+..
.9...+...0 2:11001. Defines program * 01/17/92 C* variables.
It is never executed.

2:1200 * SRCE3 04/09/93 C*

2:>300 04/09/93 C*************************~:************************************************

2:>400 * SRCE3 04/09/93 C*

2:>500INDICATORS USEDNONE * SRCE3 04/09/93 C* .

2:1600 * SRCE3 04/09/93 C*

2:1700 04/09/93 C*************************~:************************************************

2:1800 SRCE3 04/09/93 C*

25900 $DEFSR BEGSR 01/17/92 C

C*

26100 Define program 09/09/92 C variables:

C*

26300 MOVE *BLANKS $PGM Program name 09/09/92 2ti400 MOVE *BLANKS MODULE MODULE 09/09/92 2ti500 09/09/92 C*

25600 Parameters usednd local variables. 04/06/93 C* in PLISTs a 2ti700 O1 /
C* 17/92 2ti800*LIKE DEFN ZLCENO P$CENO CE# 04/06/93 C

2ti900 MOVE *BLANKS P$COM I COM inst & 04/06/93 C inf?

2'1000*LIKE DEFN EFNME PENT Local entity 04/06/93 C

2'1100*LIKE DEFN TADTFT P$DEMT User date fmt 04/06/93 C

2'1200*LIKE DEFN TAZDAT P$DATE Date - user fmt 0406/93 C

2'300 MOVE *BLANKS QQHLD 8 File hold 03/26/93 C

2'400 *LIKE DEFN ZLCENO QQCENO 01/18/92 C

27500 *LIKE DEFN ZLCENO PCENO 04/06/93 C

2'600 *LIKE DEFN ZLDTMT PDATE Current Date 04/06/93 C

2'700 *LIKE DEFN ZLTMMT PTIME Current Time 04/06/93 C

2'800 *LIKE DEFN P$COM QQCOM COM inst & inf? 04/06/93 C

27900 *LIKE DEFN P$DATE QQDATE Date - user fmt 04/06/93 C

2f3000*LIKE DEFN P$DFMT QQDFMT User date fmt 04/06/93 C

2f3100*LIKE DEFN P$EMT QQENT Local entity 04/06/93 C

2f3200*LIKE DEFN TAZDAT $AFTER Conv To date 04/06/93 C

2f1300*LIKE DEFN 'TAZDAT $BEFOR Conv From date 04/06/93 C

2f1400 MOVE *BLANKS $TYPE 1 Type of conv 04/06/93 C

2f1500*LIKE DEFN 'TADTFT $USER User date fmt 04/06/93 C

2ft600 04/06/93 C*

2f1700Define key fields 04106/93 C* used when reading INTFAC.

2f1800 04/06/93 C*

2f1900*LIKE DEFN INAPP1 KAPPl From Module 04/06/93 C

25000 *LIKE DEFN INAPP2 KAPP2 To Module 04/06/93 C

C*

29200 Define key field 04/04/93 C* used in KDTOMS
key list.

C*

29400 *LIKE DEFN OMORDN KORDN Order # 04/04/93 C

29500 *LIKE DEFN ~OIVICENOKCENO CE # 04/04/93 C

C*

29700 Define key fields 04/02/93 C* used when reading batch files.

C*

25900 *LIKE DEFN :BACONO KCONO Company # 04/02/93 C

3f000 *LIKE DEFN :~BACUSNKCUSN Customer # 04/02/93 C

5738PW1 V2R2M0 92061:p SE1:1 SOURCE LISTING 6/01/93 11:50:28 Page 7 SOURCE FILE . . . . . . . . . XLIBEM/NfRPGSRC
n~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 30100 *LIKE DEFN BADATE KDATE Date 04/02/93 C

30200 *LIKE DEFN BATIME KTIME Time 04/02/93 C

30300 *LIKE DEFN BACSPO KCSPO Customer PO 04/02/93 C #

31)400*LIKE DEFN BIADTP KADTP Address Type 04/02/93 C

30500 *LIKE DEFN BJRESR KRESR Resource tl 04/02/93 C

30600 *LIKE DEFN BJRELN KRELN Release i! 04/02/93 C

30700 *LIKE DEFN BOCMTP KCMTP Comment Type 04/02/93 C

30800 *LIKE DEFN BOCMTN KCMTN Comment Il 04/04/93 C

30900 *LIKE DEFN BOABRV KABRV Abbr Site 04/02/93 C

31000 *LIKE DEFN BOSEQN KSEQN Sequence ~l 04102/93 C

31100 *LIKE DEFN HPFREE KFREE Free Resource 04/02/93 C

C*

31300 Define key field used in 05/26/93 C* KORDCH key list.

C*

31500 *LIKE DEFN OGHIST KHIST History Code 05/26/93 C

31600 *LIKE DEFN OGSYDT KSYDT System Date 05/26/93 C

3:1700 05/26/93 C*

3:1800Define key field used in 05/26/93 C* KORDDE key list.

3:,900 05/26/93 C*

3:!000*LIKE DEFN ~ODPRES KPRES Paid Rear 05/26/93 C

3:! 10/ 16/92 C*

3:!200 04102/93 C*

3:1300Set up Key list for retrieving; 04/02/93 C* information from the 3;1400Batch Order Address File 04/02/93 C* (BCHADS) 3:1500 04/02/93 C*

3:!600KBCHAD KLIST 04/02/93 C

3!700 KFLD KCONO 04/02/93 C

3x!800KFLD KCUSN 04/02/93 C

3!900 KFLD KDATE 04/02/93 C

3;1000KFLD KTIME 04/02/93 C

3;1100KFLD KCSPO 04/02/93 C

3..200KFLD KADTP 04/02/93 C

3..300 04/02/93 C*

3..400 04/02/93 C*

3..500Set up Key list for retrievin~; 04/02/93 C* information from the 3..600Batch Order Attribute File 04/02/93 C* (BCHATR) 3~~700 04/02/93 C*

3=~g00KBCHAT KLIST 04/02/93 C

3~~900KFLD KCONO 04/02/93 C

3.000 KFLD KCUSN 04/02/93 C

3.100 KFLD KDATE 04/02/93 C

3<.200KFLD KTIME 04/02/93 C

C

34.400KFLD KRESR 04/02/93 C

34.500KFLD KRELN 04/02/93 C

34.600 04/02/93 C*

34.700 04/02/93 C*

34.800Set up Key list for retrieving 04/02/93 C* information from the 34900 Batch Order Comment File 04/02/93 C* iBCHCOM) C*

5738PW1 V2R2M0 920615 SE1;1 SOURCE LISTING 6/01/93 11:50:28 Page 8 5'~OURCE FILE . . . . . . . . . XLIBEM/IVtRPGSRC
MEMBER . . . . . . . . . . . . MMC464 S~EQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+..
.9...+...0 3:i KBCHCO KLIST 04/02/93 C

3:1200KFLD KCONO 04/02/93 C

3:1300KFLD KCUSN 04/02/93 C

3:1400KFLD KDATE 04/02/93 C

3:1500KFLD KTIME 04/02/93 C

3:1600KFLD KCSPO 04/02/93 C

3:1700KFLD KCMTP 04/02/93 C

3:1800KFLD KRESR 04/02/93 C

3:1900KFLD KRELN 04/02/93 C

C

C

C

3ti300 04/02/93 C*

3ti400 04/02/93 C*

3tS500Set up Key list for retrieving; 04/02/93 C* information from the 3cS600Bath Order Special Charge 04/02/93 C* bile (BCHC'HG) 3ti700 04/02/93 C*

3ti800KBCHCH KLIST 04102193 C

3~i900KFLD KCONO 04/02/93 C

3'000 KFLD KCUSN 04/02/93 C

3'~ KFLD KDATE 04/02/93 C

3'200 KFLD KTIME 04/02/93 C

3'300 KFLD KCSPO 04/02/93 C

3'400 KFLD KRESR 04/02/93 C

3'500 KFLD KRELN 04/02/93 C

3'600 KFLD KABRV 04/02/93 C

3'700 KFLD KSEQN 04/02/93 C

3''800 04/02/93 C*

3''900Set up Key list for retrieving; 04/02/93 C* information from the Batch Customer Attributes File (BCHCUS) C*

3f3100 04/02/93 C*

3f1200KBCHCU KLIST 04/02/93 C

3f1300KFLD KCONO 04/02/93 C

3f1400KFLD KCUSN 04/02/93 C

3fs500KFLD KDATE 04/02/93 C

3fS600KFLD KTIME 04/02/93 C

3f~700KFLD KCSPO 04/02/93 C

3f~800 04/02!93 C*

3f~900 04/02/93 C*

39000 Set up Key list for retrieving 04/02/93 C* information from the Batch Order Detail File (BCHDET) C*

C*

C

C

C

C

C

C

C

4(1000KFLD KRELN 04/02/93 C

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 9 SOURCE FILE . . . . . . . . . X1~IBEM/MRPGSRC
P~IEMBER . . . . . . . . . . . . MMC464 ~~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 C*

C*

40300 Set up Key list for retrieving 04/02/93 C* information from the 40400 Batch Order Master File (BCHMST) 04/02/93 C*

C*

C

C

C

C

C

C

C
*

C*

41400 Set up Key list for retrieving 04/02/93 C* information from the 41500 Batch Order Discount File 04/02/93 C* (BCHDIS) C*

C

C

C

4:?000KFLD KDATE 04/02/93 C

C

4:L200KFLD KCSPO 04/02/93 C

4:?300KFLD KRESR 04/02/93 C

4:?400KFLD KRELN 04/02/93 C

4:?500KFLD KSEQN 04/02/93 C

4:?600 04/02/93 C*

4:?700 04/02193 C*

4:?800Set up Key list for retrieving; 04/02/93 C* information from the 42900 Batch Order Promotion File 04/02/93 C* (BCHPRNI) 4:3000 04/02/93 C*

4:3100KBCHPR KLIST 04/02/93 C

4:3200KFLD KCONO 04/02/93 C

4:3300KFLD KCUSN 04/02/93 C

4:3400KFLD KDATE 04/02/93 C

4:3500KFLD KTIME 04/02/93 C

4:3600KFLD KCSPO 04/02/93 C

4:3700KFLD KRESR 04/02/93 C

4:3800KFLD KRELN 04/02/93 C

4'.3900KFLD KFREE 04/02/93 C

C*

C*

41200 Set up Key list for retrieving; 04/02/93 C* infromation from the 41300 Data Transfer Order Master 04/02/93 C* File (DTOMST) C*

C

C

C

C*

C*

4.'i000Set up Key list for retrieving;04/02/93 C* information from the 5738PW1 V2R2M0 92061:p SE~U SOURCE LISTING 6/01/93 11:50:28 Page 10 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 4.5100 C* Module Interface File (INT1FAC) 4.5200 04/02/93 C*

4.5300KINTFA KLIST 04/02/93 C

4.5400KFLD KAPPl 04/02/93 C

4:1500KFLD KAPP2 04/02/93 C

4:1600 04/02/93 C*

4:1700 04/02/93 C*

4:1800Set up Key list for retrieving 04/02/93 C* information from the 4:1900Order Address File (ORDADS) 04/02/93 C*

C*

C

C

4ti300KFLD KADTF 04/02/93 C

4ti400 04/02/93 C*

4ti500 04/02/93 C*

4ti600Set up Key list for retrieving; 04/02/93 C* information from the 4ti700Order Attribute File (ORDP,TR) 04/02/93 C*

4ti800 04/02/93 C*

4ti900KORDAT KLIST 04/02/93 C

4'000 KFLD KORDN 04/02/93 C

4'100 KFLD KRESR 04/02/93 C

4'200 KFLD KRELN 04/02/93 C

4'300 04/02/93 C*

4'400 04/02/93 C*

4'500 Set up Key list for retrieving; 04/02/93 C* information from the 4'600 Order Special Charge File 04/02/93 C* (ORDCHG) 4'700 04/02/93 C*

4',800KORDCH KLIST 05/26/93 C

C

4ft000KFLD KORDN 05/26/93 C

4ft100KFLD KSYDT 05/26/93 C

4f~200KFLD KRESR 05/26/93 C

4f~300KFLD KRELN 05/26/93 C

4f~400KFLD KABRV 05/26/93 C

4f~500KFLD KSEQN 05/26/93 C

4f~600 05/26/93 C*

4f~700 05/26/93 C*

4f~800Set up Kay list for retrieving 05/26/93 C* information from the 4f~900Order Comment File (ORD(:OM) 05/26/93 C*

C*

C

C

C

C

C

C

C

C

C*

5738PW1 V2R2M0 920615 SE1;1 SOURCE LISTING 6/01/93 11:50:28 Page 11 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
n~IEMBER . . . . . . . . . . . . M MC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5()000 05/26/93 C*

50100 Set up Kay list for retrieving 05/26/93 C* information from the 50200 Order Detail File (ORDDE'f) 05/26/93 C*

C*

5()400KORDDE KLIST 05/26/93 C

C

C

50700 KFLD KRELN 05!26/93 C

C

5(1900 05/26/93 C*

5::000 05/26/93 C*

5:.100Set up Key list for retrieving; 05/26/93 C* information from the 5:.200Order Discount File (ORDL~IS) 05/26/93 C*

5:.300 05/26/93 C*

51.400KORDDI KLIST 05/26/93 C

51.500KFLD KORDN 05/26/93 C

51.600KFLD KRESR 05/26/93 C

51.700KFLD KRELN 05/26/93 C

57.800KFLD KSEQN 05/26/93 C

C*

C*

Y;100 Set up Kay list for retrieving; 05/26/93 C* information from the 52200 Order Promotion File (ORDPRM) 05/26/93 C*

5x300 05/26/93 C*

5~ KORDPR KLIST 05/26/93 C

5:500 KFLD KORDN 05/26/93 C

5:600 KFLD KRESR 05/26/93 C

5:700 KFLD KRELN 05/26/93 C

5:800 KFLD KFREE 05/26!93 C

5:900 01/21!92 C*

5?'~000PLIST used when MMC300 is 01/21/92 C* called.

5~'~100 01/21/92 C*

5?~200PMC300 PLIST 01121/92 C

5.300 PARM PCENO 01/21/92 C

C*

53500 PLIST used when MZM100 is 04!06/93 C* called C*

C

53800 PARM $TYPE 04/06/93 C

53900 PARM $BEFOR 04/06/93 C

54.000PARM $AFTER 04/06/93 C

54.100PARM $USER 04106/93 C

54.200 04/06/93 C*

54300 PLIST used when MZM620x is 04/06/93 C* called.

C*

C

54600 PARM PDATE Current Date 04/06/93 C

54700 PARM PTIME Current Date 04/06/93 C

C*

C*

5738PW1 V2R2M0 92061.5 SE'U SOURCE LISTING 6/01/93 11:50:28 Page 12 SOURCE FILE . . . . . . . . . X1 IBEM/MRPGSRC
r~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 5.5000ENDSR $DEFSR SRCE3 01/17/92 C

5.5100 01/17/92 C*

S.i200 01/17/92 C/SPACE

S.i300 01/17/92 C***********
*INZSR
SUBR
**************************
*INZSR
SUBR
*

S:i400* 01 /

*

S:i500The *INZSR subroutine performs the following 01117/92 C* functions: *

S:i600* 01/17/92 C*

S:i7001. Performs initial calculations that need 01/17/92 C* to be done *

Si800 on the initial call of the program. * 01/17/92 C*

S:i900* 01/17192 C*

56000 NOTE: The *INZSR is executed during the 01/17/92 C* *INIT phase of *

56100 RPG execution. * 01/17/92 C*

56200 * SRCE3 04/09/93 C*

C*************************~:********************************************

Sti400* SRCE3 04/09/93 C*

Sti500INDICATORS USED . 99 * SRCE3 04/09/93 C*

Sti600* SRCE3 04/09/93 C*

Sti700 SRCE3 04/09/93 C**************************:********************************************

Sti800 SRCE3 04/09/93 C*

Sti900*INXDT BEGSR; 01/17/92 C

5'X000 01/17/92 C*

5'100 Define and initialize program variables 09/09/92 C*

S'~200 09/09/92 C*

5'300 MOVE 'M' MODULE 09/09/92 C

5'400 MOVEL'MMC464' $PGM Program name 01/26/93 C

5'X500 09/09/92 C*

5'600 01/17/92 C*

5''700ENDSF: *INZSR SRCE3 01/17/92 C

5'800 01/17/92 C*

C/SPACE

Sf1000******** CLRADT SUBR ************************ 03/29/93 C** CLRADT SUBR *

58100 * 03129/93 C*

Sft200The CLRADT subroutine deletes all records 03/29/93 C* with CE# passed *

Sf~300from the data transfer file DTOADT. * 03/29/93 C*

Sf~400* SRCE3 04/09/93 C*

Sf~500********************************************************************SRCE3 C**

Sf~600* SRCE3 04/09/93 C*

Sf~700INDICATORS USED . 99 * SRCE3 04/09/93 C*

Sf~800* SRCE3 04/09/93 C*

Sf~900EXECUTED FROM . COPYFL. * SRCE3 04/09/93 C*

55000 * SRCE3 04/09/93 C*

*********************************:r**********************************SRCE3 C**

SSrl00 SRCE3 04109/93 C*

SS~300CLRADT H;EGSR 03/29/93 C

C*

55500 This loop reads sequentially all records 03/29/93 C* in Data Transfer 55600 File DTOADT with CE# equal to the CE# passed 03/29/93 C* (using logical 55700 view DTOADTCE) and delcxes them. 03/29/93 C*

C*

SS~900QQCENO C'HAINDTOADTCE 99 03/29/93 C

5738PW1 V2R2M0 92061:p SEIU SOURCE LISTING 6/01/93 11:50:28 Page 13 ~~OURCE FILE . . . . . . . . . XI_IBEM/IV(RPGSRC
rQEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 60000 *IN99 DOWEQ*OFF 03/29/93 C

60100 I>ELETDTOADTCE 03/29/93 C

C

60300 ENDDO DOW *IN99=*OFF 03/29/93 C

C*

C*

C

6t)700 03/29/93 C*

C/SPACE

C************
CLRATT
SUBR
***********************
CLRATT
SUBR
*

61000 * 03/29/93 C*

6l The CLRATT subroutine deletes all records 03/29/93 100 with CE # passed *
C*

61200 from the data transfer file D~TOATT. * 03!29/93 C*

61300 * SRCE3 04/09/93 C*

C**********************************************************************

61500 * SRCE3 04/09/93 C*

61600 INDICATORS USED . 99 * SRCE3 04/09/93 C*

61700 * SRCE3 04/09/93 C*

61800 EXECUTED FROM . COPYFL * SRCE3 04/09/93 C*

61900 * SRCE3 04/09/93 C*

6:'.000 SRCE3 04/09/93 C**********************************************************************

6:! SRCE3 04/09/93 C*

6:!200CLRATT F1EGSR 03/29/93 C

6:!300 03/29/93 C*

6:!400This loop reads sequentially all records 03/29/93 C* in Data Transfer 6:!500File DTOADT with CE# equal to the C'E# passed 03/29/93 C* (using logical 6:!600view DTOATTCE) and delexes them. 03/29/93 C*

6;!700 03/29/93 C*

6:!800QQCENO C'.HAINDTCIATTCE 99 03/29/93 C

6:!900*IN99 I)OWEQ*OFF 03/29/93 C

6:1000I>ELETDTOATTCE 03/29/93 C

6:1100QQCENO F:EADEDTOATTCE 99 03129/93 C

6.1200F;NDDO DOW *IN99=*OFF 03/29/93 C

6.1300 03/29/93 C*

6:400 03/29/93 C*

6;500 F;NDSR CLRATT SRCE3 03/29/93 C

C*

6..700 03/29/93 C/SPACE

6:.800********** CLRCHT SUBR ******'~'**************** 03/29/93 C** CLRCHT SUBR *

6..900* 03/29/93 C*

Cx1000The CLRCHT subroutine deletes all ret;ords 03/29/93 C* with CE# passed *

Cx1100from the data transfer file DTOCHT. * 03/29/93 C*

61200 * SRCE3 04/09/93 C*

*********************************:k**********************************SRCE3 C**

6.400 * SRCE3 04/09/93 C*

6.500 INDICATORS USED . 99 * SRCE3 04/09/93 C*

6~~600* SRCE3 04/09/93 C*

64.700EXECUTED FROM . COPYFL * SRCE3 04/09/93 C*

64.800* SRCE3 04/09/93 C*

64.900*********************************:k**********************************SRCE

C**

5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 14 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

C

C*

65300 This loop reads sequentially all records 03/29/93 C* in Data Transfer 65400 File DTOCHT with CE# equal to the C:E# passed 03/29/93 C* (using logical 65500 view DTOCHTCE) and deletes them. 03/29/93 C*

C*

65700 QQCENO (:HAINDTOCHTCE 99 03/29/93 C

6.5800*IN99 DOWEQ*OFF 03/29/93 C

6.1900DELETDTOCHTCE 03/29/93 C

6~i000QQCENO READEDTOCHTCE 99 03/29/93 C

66100 ENDDO DOW *IN99=*OFF 03/29/93 C

C*

C*

66400 I:NDSR CLRCHT SRCE3 03/29/93 C

C*

C/S

C************
CLRCMT
SUBR
***********************
CLRCMT
SUBR
*

66800 * 03/29/93 C*

66900 The CLRCMT subroutine deletes all records 03/29/93 C* with CE# passed *

6'1000from the data transfer file D~TOCMT. * 03/29/93 C*

6'7100* SRCE3 04/09/93 C*

6')200 SRCE3 04/09/93 C**************************:********************************************

6'1300* SRCE3 04/09/93 C*

6'1400INDICATORS USED . 99 * SRCE3 04/09/93 C*

6')500* SRCE3 04/09/93 C*

6'1600EXECUTED FROM . COPYFI. * SRCE3 04/09/93 C*

6'1700* SRCE3 04/09/93 C*

6'7800 SRCE3 04/09/93 C**************************:********************************************

6'7900 SRCE3 04/09/93 C*

6!3000CLRCMT EtEGSR 03/29/93 C

C*

6!3200This loop reads sequentially all records 03/29/93 C* in Data Transfer 6!3300File DTOCMT with CE# equal to the (:E# passed 03/29!93 C* (using logical 6!3400view DTOCMTCE) and deletes them. 03/29/93 C*

6!3500 03/29/93 C*

6!3600QQCENO C'.HAINDTOCMTCE 99 03/29/93 C

6!3700*IN99 DOWEQ*OFF 03129/93 C

6!3800DELETDTOCMTCE 03/29/93 C

68900 QQCENO F:EADEDTOCMTCE 99 03/29/93 C

61000 E~,NDDO DOW *IN99= *OFF 03/29/93 C

C*

6S)200 03/29/93 C*

6~~300IiNDSR CLRCMT SRCE3 03/29/93 C

C*

69600 ********** CLROOP SUBF; *******~'****************** 03/29/93 C** CLRCOP SUBR *

69700 * 03/29/93 C*

69800 The CLRCOP subroutine deletes all records 03/29/93 C* with CE# passed *

65900 from the data transfer file DTCOPT. * 03/29/93 C*

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 15 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
P~IEMBER . . . . . . . . . . . . MMC464 :~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 70000 . * SRCE3 04/09/93 C*

C**********************************************************************

70200 * SRCE3 04/09/93 C*

70300 INDICATORS USED . 99 * SRCE3 04/09/93 C*

70400 * SRCE3 04/09/93 C*

7D500 EXECUTED FROM . COPY1FL * SRCE3 04/09/93 C*

7D600 * SRCE3 04109/93 C*

C*********************************************************************

C*

C

C*

71100 This loop reads sequentially alt records 03/29/93 C* in Data Transfer 71200 File DTCOPT with CE# equal to the CE# passed 03/29/93 C* (using logical 71300 view DTCOPTCE) and delfnes them. 03/29/93 C*

C*

71500 QQCENO (:HAINDT('OPTCE 99 03/29/93 C

71600 *IN99 DOWEQ*OFF 03/29/93 C

C

C

71900 ENDDO DOW *IN99=*OFF 03/29/93 C

7:L000 03/29/93 C*

7:?100 03/29/93 C*

7:?200I?NDSR CLRCOP SRCE3 03/29/93 C

7;?300 03/29/93 C*

7:?400 03/26/93 C/SPACE

7:?500********** CLRCST SUBP: *************************** 03/29/93 C** CLRCST SUBR *

7:?600* 03/26/93 C*

7:?700The CLRCST subroutine deletes all records 03/29/93 C* with CE# passed *

7:?800from the data transfer file D~TOCST. * 03/29/93 C*

72900 * SRCE3 04/09/93 C*

7:3000********************************************************************SRCE3 C**

7:3100* SRCE3 04/09/93 C*

7:3200INDICATORS USED . 99 * SRCE3 04/09/93 C*

7:3300* SRCE3 04/09/93 C*

7:3400EXECUTED FROM . COPYFL * SRCE3 04/09/93 C*

7:3500* SRCE3 04/09/93 C*

7:3600********************************************************************SRCE3 C**

7:3700 SRCE3 04/09/93 C*

7:9800CLRCST E9EGSR 03/29/93 C

7:9900 03/26/93 C*

74000 This loop reads sequentially all records 03/26/93 C* in Data Transfer 71100 File DTOCST with CE# equal to the CE# passed 03/29/93 C* (using logical 71200 view DTOCSTCE) and deletes them. 03129/93 C*

C*

71400 QQCENO C',HAINDTCICSTCE 99 03/29/93 C

74500 *IN99 DOWEQ*OFF 03/26/93 C

71600 L)ELETDTOCSTCE 03/29/93 C

71700 QQCENO F:EADEDTOCSTCE 99 03/29/93 C

7~L800E;NDDO DOW*IN99-*OFF 03/26/93 C

7~E900 03/26/93 C*

5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 16 SOURCE FILE . . . . . . . . . Xl_IBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C*

C

C*

C/SPACE

C************
CLRDET
SUBI(t *******~*******************
CLRDET
SUBR
*

7.5500* 03/29/93 C*

7.5600The CLRDET subroutine deletes all records 03/29/93 C* with CE# passed *

7.5700from the data transfer file DTODET. * 03/29/93 C*

7.5800* SRCE3 04/09/93 C*

7:5900 SRCE3 04/09/93 C*************************~:********************************************

7~i000* SRCE3 04/09/93 C*

76100 INDICATORS USED . 99 * SRCE3 04/09/93 C*

76200 * SRCE3 04/09/93 C*

76300 EXECUTED FROM : (:OPYFL * SRCE3 04/09/93 C*

76400 * SRCE3 04/09/93 C*

C*************************~:********************************************

C*

C

C*

76900 This loop reads sequentially all records 03/29/93 C* in Data Transfer 77000 File DTODET with CE# equal to the C'E# passed 03/29/93 C* (using logical 71100 view DTODETCE) and del<xes them. 03/29193 C*

C*

71300 QQCENO ('.HAINDTODETCE 99 03/29/93 C

71400 *IN99 DOWEQ*OFF 03/29/93 C

TI500 I>ELETDTODETCE 03/29/93 C

71600 QQCENO F:EADEDTODETCE 99 03/29/93 C

71700 I?NDO DOW *IN99=*OFF 03129/93 C

C*

7~~9~ 03/29/93 C*

713000I?NDSR CLRDET SRCE3 03/29/93 C

C*

C/S

713300********** CLRDST SUBF; ************************ 03/29/93 C** CLRDST SUBR *

713400* 03/29/93 C*

713500The CLRDST subroutine deletes all records 03/29/93 C* with CE# passed *

713600from the data transfer file DTODST. * 03/29/93 C*

713700* SRCE3 04/09/93 C*

713800********************************************************************SRCE3 C**

78900 * SRCE3 04/09/93 C*

7SlOOpINDICATORS USED . 99 * SRCE3 04/09/93 C*

7S>100* SRCE3 04/09193 C*

7SY100EXECUTED FROM . COPYFL * SRCE3 04/09/93 C*

7Sr300* SRCE3 04/09/93 C*

*********************************:k**********************************SRCE3 C**

C*

C

C*

79800 This loop reads sequentially all records 03/29/93 C* in Data Transfer 79900 File DTODST with CE# equal to the C:E# passed 03/29/93 C* (using logical view 5738PW1 V2R2M0 92061:p SE~U SOURCE LISTING 6/01/93 11:50:28 Page 17 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
T~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 8W00 DTOSTCE) and deletes them. 03/29/93 C*

C*

C

81)300*IN99 DOWEQ*OFF 03/29/93 C

81)400DELI?TDTODS'1.'C'.E 03/29/93 C

80500 QQCENO READEDTODS'fCE 99 03/29/93 C

80600 ENDDO DOW *IN99=*OFF 03/29/93 C

C*

C*

C

C*

C/S

8:1200 03/29/93 C*******
CLRMST
SUBR
**~'**************************

CLRMST
SUBR
*

8:300 * 03/29/93 C*

8:1400The CLRMST subroutine dUetes all records 03/29/93 C* with CE# *

8',500passed from the data transfer file DT0IvIST. 03/29/93 C* *

8:.600* SRCE3 04/09/93 C*

8:.700 SRCE3 04109/93 C*********************************************************************

*

8:.800* SRCE3 04/09/93 C*

81900 INDICATORS USED . 99 * SRCE3 04/09/93 C*

8x!000* SRCE3 04/09/93 C*

8:;100EXECUTED FROM . COPYFL. * SRCE3 04/09/93 C*

8x;200* SRCE3 04/09/93 C*

8:;300 SRCE3 04/09/93 C*********************************************************************

*

8x;400 SRCE3 04/09/93 C*

8x500 CLRMST E;EGSR 03/29/93 C

~
C*

82 This loop reads sequentially all records 03/29/93 700 in Data Transfer C*

8;800 File DTOMST with CE# equal to the C'E# passed 03/29/93 C* (using logical 8;900 view DTOMSTCE) and deletes them. 03/29/93 C*

8='000 03/29/93 C*

8?~100QQCENO C:HAINDTOMSTCE 99 03/29/93 C

8~'~200*IN99 L~OWEQ*O;FF 03/29/93 C

8~'~300L~ELETDTCIMSTCE 03/29/93 C

8?~400QQCENO R.EADEDTOMSTCE 99 03/29/93 C

8?~500E.NDDO DOW *IN99=*OFF 03/29/93 C

8'-'600 03/29/93 C*

C*

C

C*

84.000 03/29/93 C/SPACE

84.100************** CLRPMT SUBR ***"*************** 03/29/93 C** CLRPMT SUBR *

84200 * 03/29/93 C*

84300 The CLRPMT subroutine deletes all records 03/29/93 C* with CE# passed *

84400 from the data transfer file D'TOPMT. * 03/29/93 C*

84500 * SRCE3 04/09/93 C*

*********************************'~*********************************SRCE3 C** *

84700 * SRCE3 04/09/93 C*

84800 INDICATORS USED . 99 * SRCE3 04/09/93 C*

84900 * SRCE3 04/09/93 C*

5738PW1 V2R2M0 92061:5 SEIU SOURCE LISTING 6/01/93 11:50:28 Page 18 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 8:1000EXECUTED FROM . COPYII. * 04/09/93 C* SRCE3 8:1100 * 04109/93 C* SRCE3 8:1200 SRCE3 04/09/93 C**************************:*******************************************

*

8:1300 * 04/09/93 C* SRCE3 8:1400CLRPMT BEGSR 04/09/93 C

8:1500 03/29/93 C*

8:1600This loop reads sequentially all records 03/29/93 C* in Data Transfer 8:1700File DTOPMT with CEIf equal to the C'.Ell 03/29/93 C* passed (using logical 8:1800view DTOPMTCE) and deUaed them. 03/29/93 C*

8:1900 03129/93 C*

8ti000QQCENO C'.HAINDTOPMTCE 99 03/29/93 C

8ti100*IN99 I>OWEQ*OFF 03/29/93 C

8ti200I>ELETDTOPMTCE 03/29/93 C

8ti300QQCENO F;EADEDTOPMTC'.E 99 03/29/93 C

8ti400I~,NDDO DOW *IN99=*OFF 03/29/93 C

8ti500 03/29/93 C*

8ti600 03/29/93 C*

8(1700I~.NDSR CLRPMT SRCE3 03/29/93 C

8ti800 03/29/93 C*

8fi900 03/29/93 C/SPACE

8',000 * 03/26/93 C***********
COPYFL
SUBR
*********'******************

COPYFL
SUBR

8~'1~ * 03/26/93 C*

8','200The COPYFL subroutine executes other routines* 03/26/93 C* to upload 8;'300the data from COP data transfer files * 03/26/93 C* to entity-level SRCE3 8;'400batch files and to clear this data from * 03/26/93 C* data transfer SRCE3 8;'500 * 03/26/93 C* SRCE3 8';600 SRCE3 04/09/93 C*********************************************************************

*

8'; * 04/09/93 C*

8;800 INDICATORS USED . NONE * 04/09/93 C* SRCE3 8'; * 04/09193 C*

8fI000EXECUTES . CLRAI)T CLFtATT CLRCHT CLRCMT * 04/09/93 C* SRCE3 8f~100CLRCOP CLRCST CLRDET CLRDST * 04/09/93 C* SRCE3 8f~200CLRM;iT CLRPMT CPYADT CPYATT * 04/09/93 C* SRCE3 8f~300CPYCHT CPYCMT CPYCOP CPYCST * 04/09/93 C* SRCE3 8f~400CPYDI;T CPYDST CPYMST CPYPMT * 04/09/93 C* SRCE3 8f~500 * 04/09/93 C* SRCE3 8f~600EXECUTED FROM . MAINI,N * 04/09/93 C* SRCE3 8f~700 * 04109/93 C* SRCE3 8f~800*********************************:e**********************************

C** SRCE3 8f~900 * 04/09/93 C* SRCE3 C

C*

85200 To process Order Master daUa copy the 03/30/93 C* records from 85300 DTOMST to BCHMST. 04/06/93 C*

C*

8S'S00EXSR CP'YMST 03/26/93 C

C*

85700 To process Order Detail datit copy the 03/30/93 C* records from 89800 DTODET to BCHDET. 04/06/93 C*

C*

5738PW1 V2R2M0 92061:p SEIU SOURCE LISTING 6/01/93 11:50:28 Page 19 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 91)000I?XSR CI'YDET 03/30/93 C

91)100 03/26/93 C*

91)200To process Order Special Charges data copy 03/30/93 C* the records 91)300from DTOCHT to BCHCHi3. 04/06/93 C*

91)400 03/30/93 C*

91)500EXSP; CPYCHT 03/30/93 C

C*

90700 To process Order Comment data copy the records03/30/93 C*

91)800from DTOCMT to BCHCOM. 04/06/93 C*

91)9 03/30/93 C*

91000 EXSR; CPYCMT 03/30/93 C

C*

91200 To process Order Discount .data copy the records03/30/93 C*

91300 from DTODST to BCHDIS. 04/06/93 C*

C*

91500 EXSR. CPYDST 03/30/93 C

C*

91700 To process Order Promotion data copy the records03/30/93 C*

9:L800from DTOPMT to BCHPRPvI. 04/06/93 C*

C*

9;!000EXSR. CPYPMT 03/30/93 C

9:!100 03/30/93 C*

9:!200To process Customer Attribute Override data 03/30/93 C* copy the 9;1300records from DTOCST to BCHCUS. 04/06/93 C*

9:!400 03/30/93 C*

9~!S00EXSR CPYCST 03/30/93 C

9x!600 03/30/93 C*

Y!700 To process Order Address data copy the records03/30/93 C* from 9x!800DTOADT to BCHADS. 04/06/93 C*

9'<!900 03/30/93 C*

9..000EXSR CPYADT 03/30/93 C

9..100 03/30/93 C*

9..200To process Order Attribute Override data copy03/30/93 C* the records 9..300records from DTOATT to H.CHATR. 04/06/93 C*

9..400 03/30/93 C*

9..500EXSR CPYATT 03/30/93 C

9~~600 03/30/93 C*

9.'.700To process COP data copy the records from 03/30/93 C* DTCOPT to 9.'.800a batch file specified in the DTCOPT r<:cord.04/06/93 C*

9'900 03/26/93 C*

C

94.100 03/26/93 C*

94.200Clear records from DTOMST, DTODE!T, DTOCHT, 04/06/93 C* DTOCMT, 94.300DTODST, DTOPMT, DTOCST, DTO.ADT, DTOATT, and 04/06/93 C* DTCOPT

94400 files that were just copied into the batch 04/06/93 C* files.

94.500 04/06/93 C*

94.600EXSR CLR.MST 04/06/93 C

94.700EXSR CLRDET 04/06/93 C

C

94.900EXSR CLRCMT 04/06/93 C

5738PW1 V2R2M0 92061.5 SE'~U SOURCE LISTING 6/01/93 11:50:28 Page 20 SOURCE FILE . . . . . . . . . XI:IBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 95000 EXSF; CLRDST 04/06/93 C

95100 EXSF; CLRPMT 04/06/93 C

95200 EXSF; CLRCST 04/06/93 C

9.5300EXSF; CLF;ADT 04/06/93 C

95400 EXSF; CLRCOP 04/06/93 C

9.5500EXSF; CLF;ATT 04/06/93 C

9.1600 03/26/93 C*

9.5700END!iR COPYFL SRCE3 03/26/93 C

9:5800 03/26/93 C*

9:1900PACE 2 03/30/93 C/S

96000 * 03/30/93 C***********
CPYADT
SUBR
*****************
CPYADT
SUBR

9~i100 * 03/30/93 C*

96200 The CPYADT subroutine copies of all * 03/30/93 C* records for CE# passed 96300 from the data transfer file DTOADT * 03/30/93 C* to the entity-level 96400 batch file BCHADS. * 03/30/93 C*

96500 * SRCE3 04/09/93 C*

C**************************:************************************

96700 * SRCE3 04/09/93 C*

96800 INDICATORS USED . 98 99 * SRCE3 04/09/93 C*

96900 * SRCE3 04/09/93 C*

9'1000EXECUTED FROM . COPYFI. * SRCE3 04/09/93 C*

9'1100 * SRCE3 04/09/93 C*

9'1200 04/09/93 C**************************************************************

9'1300 SRCE3 04/09/93 C*

9'400 CPYADT EtEGSR 03/30/93 C

9'7500 03/30/93 C*

9'1600This loop reads sequentially all 03/30/93 C* records in Data Transfer 9'1700File DTOADT with CE# equal to the 03/30/93 C* C.'E# passed (using logical 9'800 view DTOADTCE) and writes them into 03/30/93 C* the batch file BCHADS.

9'900 03/30/93 C*

98000 QQCENO C'.HAINDTOADTCE 99 03/30/93 C

98100 *IN99 L>OWEQ"OFF 03/30/93 C

C*

913300Retrieve Company Number, Customer 03/31/93 C* Number and Customer PO

913400Number from Data Transfer Order Master 03/31/93 C* File (DTOMST).

C*

C

98700 MOVE QQC:ENO KCENO 03/31/93 C

913800KDTOMS C'.HAINDTCIMST 99 03/31/93 C

98900 *IN99 I:FEQ *OFF 03/31/93 C

9Sr000 03/31/93 C*

C

99200 2; ADDOMCUSN KCUSN 04/02/93 C

99300 2; ADDOAC'.PDT KDATE 04/06/93 C

99400 2; ADDOAC'.PTM KTIME 04/06/93 C

C

95600 Z; ADDOAA,DTP KADTP 04/16/93 C

99700 KBCHAD C'HAINBCHADS 98 04/02/93 C

C*

C

5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 21 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
rvIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 C

C

C

C*

100400 IvIOVE OMCSPO BICSPO 04/06/93 C

100500 :'_-ADDOAADTP BIADTP 04/16/93 C

100600 IvIOVE OAORDN BIORDN 04/04/93 C

100700 IvIOVE OA,ADRI BIARDRI 04/16/93 C

C*

1D0900 IvIOVE OA.ADR2 BIARDR2 04/16/93 C

1D1000 PvIOVE OA,4DR3 BIARDR3 04/16/93 C

1D1100 PvIOVE QAADR4 BIARDR4 04/16/93 C

1~D1200 PvIOVE QAARDS BIARDRS 04/16/93 C

1~~1300 04/16/93 C*

1~~1400 MOVE OA;iTA BISTA 04/16/93 C

1~~1500 MOVE OAl?STD BIPSTD 04/16/93 C

1)1600 PrIOVE OADFCR BIDFCR 04/16/93 C

101700 PrIOVE 'EMf' BIRSTA 04/04/93 C

101800C* 05/26/93 101900C* If the action code 05126/93 is 'A' or 'C'.' then check the Order 102000C* Address File (ORDA,DS)If the 05/26193 in the entity. record already 102100C* exists there then be 'C' 05/26/93 the action code should- change, 102200C* otherwise it should 05/26/93 be 'A' - add.

102300C* 05/26/93 102400C QAACTN IFEQ 'A' 05/26/93 102500C QAACTN OREQ 'C' 102900C *IN99 IFEQ *ON 05/26/93 103000C MOVE 'C' BIACTN 05/26/93 103100C /?LSE 05/26/93 103200C DQOVE 'A' BIACTN 05/26/93 103300C I?NDIF *IN99=*ON 05/26/93 103400C I?NDIF QAACTN='A' 05/26/93 103500C* 03/30/93 103600C* 03/30/93 103700C *IN98 IFEQ *OFF 03/30/93 103800C UPDATEBC:IIADS 03/30/93 103900C f?LSE 03/30/93 1()4100C f?NDIF *IN98=*OFF 03/30/93 1(kt200C* 03/30/93 1()4300C E?NDIF *IN99=*OFF 04/02/93 10440()C* 04/02193 1()4500C QQCENO F;EADEDTOADTC E 99 03/30/93 104600C EiNDDO DOW *IN99=*OFF 03/30/93 1()4700C* 03/30/93 1()4800C* 03/30/93 1(14900C E;NDSR CPYADT SRCE3 03/30/93 5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 22 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 105000C* 03/30/93 105200C*************** 03/30/93 CPYATT
SUBR
******************
CPYATT
SUBR
*

105300C* * 03/29/93 105400C* The CPYATT subroutine copies all records 03/30/93 for CE# passed *

105500C* from the data transfer file DTO,ATT to 03/29/93 the entity-level *

105600C* batch file BCHATR. * 03/29/93 105700C* * SRCE3 04/09/93 105800C*********************,:********************************************

105900C* * SRCE3 04/09/93 106000C* INDICATORS USEiD : 98 99' * SRCE3 04/09/93 106100C* * SRCE3 04/09/93 106200C* EXECUTED FROM . COP~'FL * SRCE3 04/09/93 106300C* * SRCE3 04/09/93 106400C*********************~:********************************************

106500C* SRCE3 04/09/93 106700C* 03/29/93 106800C* This loop reads sequentially all records 03/29/93 in Data Transfer 106900C* File DTOATT with CE# equal to the CE# 03/30/93 passed (using logical 107000C* view DTOATTCE) and writes them into the 03/30/93 batch file BCHATR.

107100C* 03/29/93 107200C QQCENO C'.HAINDTOATTCE 99 03/29/93 107300C *IN99 I>OWEQ*OFF 03/29/93 107400C* 03/29/93 107500C* Retrieve Company Number, Customer Number 03/31/93 and Customer PO

107600C* Number from Data Transfer Order Master 03/31/93 File (DTOMST).

107700C* 03/31/93 107800C MOVE ORI)ORDN KORDN 03/31/93 108000C KDTOMS C'.HAINDTOMST 99 03/31/93 108100C *IN99 I:FEQ *OFF 03/31/93 108200C* 03131/93 1(18300C MOVE OMCONO KCONO 03/31/93 1(18400C Z:-ADDOMCUSN KCUSN 04/02/93 1(18500C Z',-ADDORC'.PDT KDATE 04/06/93 1(18600C Z',-ADDORC'.PTM KTIME 04/06/93 1(18700C MOVE OMCSPO KCSPO 03/31/93 1(18800C MOVE ORF;ESR KRESR 03/30/93 1(18900C Z'.-ADDORR:ELN KRELN 04/16193 1(19000C KBCHAT C'HAINBCHATR 98 03/30/93 1(19100C* 03129/93 1(19200C MOVE OMCONO BJCONO 04/16/93 109300C Z',-ADDOMCUSN BJCUSN 04/16/93 109400C Z; ADDORC'PDT BJDATE 04/16/93 109500C Z; ADDORC'PTM BJTIME 03/30/93 109600C* 03/30/93 109800C MOVE ORR:ESR BJRESR 03/30/93 109900C Z; ADDORRELN BJRELN 04/16/93 5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 23 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
T~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 110100C* 03/29/93 1 C MOVE ORI'TPI BJPTPI 03/30/93 1:!.0300C DQOVE ORI'TPA BJPTPA 03/30/93 1::0400C D~IOVE ORI'TAK BJPTAK 03/30/93 1:.0500C D~fOVE ORI'TIVE BJPTIV 03/30/93 1:.0600C* 03/29/93 11.0700C MOVE ORFNIN BJFNIN 03/30/93 110900C MOVE ORF(QPO BJRQPO 03/30/93 11 C MOVE ORF;QTX BJRQTX 03/30/93 111100C* 03/29/93 111300C MOVE 'EM' BJRSTA 03/30/93 111400C* 05/26/93 111500C* If the action code is e Order 05/26/93 'A' or 'C' tihen check th 111600C* Attribute File (ORDATR) he record 05/26/93 in the entity. If t is already 117000C* exists there then the 05/26/93 action code should be 'C' - change, 111800C* otherwise it should bc 05/26/93 'A' - add.

111900C* 05/26/93 112000C ORACTIN IFEQ 'A' 05/26/93 112100C ORACTIN OREQ "C:' 05/26/93 112600C *IN99 IFEQ *ON 05/26/93 112700C MOVE 'C' BJACTIN 05/26/93 112900C MOVE 'A' BJACTIN 05/26/93 113000C ENDIF *IN99=*ON 05/26/93 113100C ENDIF ORACTN='A' 05/26/93 113200C* 03/29/93 11:3300C* 03/29/93 11:3400C *IN98 IFEQ *OFF 03/29/93 11:3500C UPDATFBCHATR 03/29/93 11:3600C ELSE 03/29/93 11:3700C WRITE1FBCHATR 03/29/93 11:3800C ENDIF *IN98=*OFF 03/29/93 11:3900C* 03/29/93 111000C ENDIF *IN99=*OFF 04/02/93 11'i100C* 04/02/93 11~t200C QQCENO READEDTOATTCE 03/29/93 111300C ENDDO DOW *IN99-*OFF03/29/93 114400C* 03/29/93 111500C* 03/92193 11~I600C ENDSR CPYATT SRCE3 03/30/93 11~I700C* 03/29/93 11~t800C/SPACE 03/30/93 114900C********** ****** CPYCHT 05/26/93 CPYCHT SUBR *
SUBR
*************

5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 24 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 115000C* * 05/26/93 115100C* The CPYCHT subroutine copies all records* 05/26193 for CE# passed 115200C* from the data transfer file DTOCHT to * 05/26/93 the entity-level 115300C* batch file BCHCHG. * 05/26/93 115400C* * SRCE3 05/26/93 115500C**********************************************************************

115600C* * SRCE3 05/26/93 115700C* INDICATORS USED . 98 99 * SRCE3 05/26/93 115800C* * SRCE3 05/26/93 115900C* EXECUTES . TItANSR * SRCE3 05/26/93 116000C* * SRCE3 05/26/93 116100C* EXECUTED FROM: . COPYFL * SRCE3 05/26/93 116200C* * SRCE3 05/26/93 116300C*********************~:************************************************

116400C* * SRCE3 05/26/93 116500C CPYCHT I;EGSR 05/26/93 116600C* 05/26/93 I C* This loop reads sequentially all records 05/26/93 16700 in Data Transfer 1 C* File DTOCHT with CE# equal to the CE# 05/26/93 16800 passed (using logical 1 C* view DTOCHTCE) and writes them into 05/26/93 16500 the batch file BCHCHG.

117000C* 05/26/93 117100C QQCI?NO CHAINDTOCHTCE 99 05/26/93 117200C *IN99 DOWEQ*OFF 05/26/93 117300C* 05/26/93 1 C* Retrieve Company Number, Customer Number 05/26/93 17400 and Customer PO

1 C* Number from Data Transfer Order Master 05/26/93 17500 File (DTCMST).

117600C* 05/26/93 1:17700C MOVE OGORD1V KORDN 05/26/93 1:17800C MOVE QQCENO KCENO

1:'.7900C KDTOMS CHAINDTOMS'lC 99 05/26/93 1:'.8000C * IN99 IFEQ *OFF 05/26/93 1:.8100C* 05/26/93 :.8200 1:.8300C Z-ADDOMCUSN KCUSN 05/26/93 1;.8400C Z-ADDOGCPDT KDATE 05/26/93 11.8500C Z-ADDOGCPTM KTIME 05/26/93 11.8600C MOVE OMCSPO KCSPO 05/26/93 11.8700C MOVE OGRESR. KR.ESR 05/26/93 118800C Z-ADDOGRELrI KRELN 05/26/93 11.8900C MOVE OGABRV KABRV 05/26/93 11.9000C Z-ADDOGSEQNf KSEQN 05/26/93 119100C KBCHCH CHAINBCHCHCi 98 05/26/93 119200C* 05/26/93 119500C Z-ADDOGCPDT' BCDATE 05/26/93 119700C* 05/26/93 119900C MOVIE OGR.ESR. BCRESR 05/26/93 5738PW1 V2R2M0 920615 SE~U SOURCE LISTING 6/01/93 11:50:28 Page 25 SOURCE FILE . . . . . . . . . XI_IBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1 C Z-AD~DOGRELN BCRELN 05/26/93 1 C MOVE OGABR'V BCABRV 05126/93 1 C* 05/26/93 120300C Z-AD~DOGSEQrd BCSEQN 05/26/93 120400C MOVE OGORDf~1 BCORDN 05/26/93 1'20500C MOVE OGSPTP' BCSPTP 05/26/93 1:20600C Z-AD~DOGCHG:i BCCHGS 05/26/93 1:20700C* 05/26/93 1:20900C Z-ADDOGSPCT' BCSPCT 05/26/93 1:Z C Z-ADDOGCOST BCCOST 05/26/93 1:21200C* 05/26/93 1:21300C Z-ADDOGCPCT BCCPCT 05/26/93 1:21400C MOVE OGCURIft BCCURR 05/26/93 1:21500C MOVE OGALWD BCALWD 05/26/93 1:21600C MOVE ODGESC BCDESC 05/26/93 121700C* 05/26/93 121800C MOVE OGTXC'f BCTXCT 05/26/93 1:21900C MOVE OGFCR BCFCR 05/26/93 1:22000C MOVE OGAGRIP BCAGRP 05/26/93 1:22100C Z-ADDOGCHGN BCCHGN 05/26/93 122200C* 05/26/93 1:>.2300C MOVE OGCHGO BCCHGO 05/26/93 1x2400C MOVE *BLANR;S BCDFLT 05/26/93 1:?2500C MOVE OGWHSE BCWHSE 05/26/93 1:>.2600C Z-ADDOGUAMS BCUAMS 05/26/93 122700C* 05/26/93 1:?2900C MOVE OGCHUV1 BCCHUM 05/26193 1:3000C MOVE 'EM' BCRSTA 05/26/93 1:3100C* 05/26/93 1:?3200C* If the action code 05/26/93 is 'A' or 'C' then check the Order Special 123300C* Charge File (ORDCI-IG) 05/26/93 in the f.ntity.
If the record already 123400C* exists there then 05/26/93 the action code should be 'C' -change, 123500C* otherwise it should 05/26/93 be 'A' - add..

1:!3600C* 05/26/93 1 C OGACTN IFEQ 'A' 05/26/93 1:!3800C OGACTN ORE() 'C' 05/26/93 1:!3900C MOVE OGHIST KHIST 05126/93 1:!4000C MOVE OGORDIV KORDN 05/26/93 12 C MOVE OGRESR: KR.ESR 05/26/93 12 C Z-ADDOGRELTf KRELN 05/26/93 1:!4400C MOVE OGABRV KABRV 05/26/93 1:!4500C Z-ADDOGSEQrf KSEQN 05/26193 1:!4600C KORDCH SETLLORDCHCi 99 05/26/93 1:!4700C *IN99 IFEQ *ON 05/26/93 1:!4800C MOVE 'C' BCACTN 05/26/93 1:14900C ELSE 05/26/93 5738PW1 V2R2M0 92061.5 SE~U SOURCE LISTING 6/01/93 11:50:28 Page 26 ~~OURCE FILE . . . . . . . . . XI~IBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 125000C MOVE 'A' BCACTN 05/26/93 125100C ENDIF *IN99=*O N 05/26/93 125200C ENDI:F OGACTN= 'A' 05/26/93 125300C* 05/26/93 1:25400C* 05/26/93 125500C *IN98 IFEQ *OFF 05/26/93 1:25600C UPDATFBCHC13G 05/26/93 1:25700C ELSE, 05/26/93 1:25800C WRI7.'EBCHCH(i 05/26/93 1:25900C ENDIF *IN98=*OFF 05/26/93 1:26000C* 05/26/93 1:26100C ENDIF *IN99=*OFF 05/26/93 1:26200C* 05/26193 1:26300C QQCENO READEDTOCH'TCE 99 ' 05/26/93 126400C ENDDO DOW *IN99=*OFF 05/26/93 1:26500C* 05126/93 1:26600C* 05/26/93 1:26700C END SR CPYCHT SRCE3 05/26/93 1:26800C* 05/26/93 1:26900C/SPACE 05/26/93 1:27000C*********** 03/30/93 CPYCMT
SUBR
****'******************
CPYCMT
SUBR
*

127100C* * 03/30/93 1:27200C* The CPYCMT subroutine copies all records 03130/93 for CE# passed *

1:27300C* from the data transfer file DTOCMT to 03/30/93 the entity-level *

1:27400C* batch file BCHCOM. * 03/30/93 1:27500C* * SRCE3 04/09/93 1:27600C*********************~:******************************************

*

127700C* * SCRE3 04/09/93 127800C* INDICATORS USE1D . 98 99 * SCRE3 04/09/93 1:27900C* * SCRE3 04/09/93 1:28000C* EXECUTED FROM . COPYFL * SRCE3 04/09/93 128100C* * SRCE3 04/09/93 1:28200C*********************s:******************************************

*

1:28300C* SRCE3 04/09/93 1:28400C (.'PYCMT BEGSR 03/30/93 1:28500C* 03/30/93 128600C* This loop reads sequentially all records 03/30/93 in Data Transfer 1:28700C* File DTOCMT with CE# equal to the CE# 03/30/93 passed (using logical 1:28800C* view DTOCMTCE) and writes them into the 03/30/93 batch file BCHCOM.

1:!8900C* 03/30/93 1:19000C QQCENO C'.HAINDTOCMTCE 99 03/30/93 129100C *IN99 DOWEQ*OFF 03/30/93 129200C* 03/30/93 1 C* Retrieve Company Number, Customer Number 03/31/93 29300 and Customer PO

1:!9400C* Number from Data Transfer Order Master 03/31/93 File (DTOMST).

1:19500C* 03/31/93 12 C D~fOVE OCCORDN KORDN 03/31/93 12 C D~IOVE QQ<:ENO KCENO 03/31/93 1;!9800C KDTOMS C'.HAINDTCIMST 99 03/31/93 12 C *IN99 IFEQ *OFF 03/31/93 5738PW1 V2R2M0 92061.5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 27 SOURCE FILE . . . . . . . . . XI~IBEM/MRPGSRC
rrIEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 130000C* 03/31/93 130100C IvfOVE OMCONO KCONO 03/30/93 130300C :'_-ADDOC(:PDT KDATE 04/06/93 130400C ?-ADDOCCPTM KTIME 04/06/93 130500C PvIOVE OMCSPO KCSPO 04/06/93 130600C PvIOVE OCCMTP KCMTP 04/06/93 130700C PvIOVE OCRESR KRESR 04/23/93 130800C :'.-ADDOCRELN KRELN 04/ 16/93 130900C ?.-ADDOCCMTN KCMTN 04/ 16/93 131000C PvfOVE OCABRV KABRV 04/02/93 131100C ~'.-ADDOCSEQN KSEQN 04/16/93 1:31200C KBCHCO CHAINBCH(:OM 98 04/04/93 1:31300C* 03/30!93 1:31400C MOVE OMCONO BOCONO 03!31/93 1:31500C ~~-ADDOMCUSN BOCUSN 04/16!93 1:31600C ?.-ADDOC('PDT BODATE 03/30/93 1:31700C l.-ADDOC(:PTM BOTIME 03/30/93 1:31800C* 03/30193 1:31900C PdOVE OMCSPO BOCSPO 03/31/93 1:32000C MOVE OCCMTP BOCMTP 03130/93 1:32100C MOVE OCRESR BORESR 04/23/93 1:32200C 'L-ADDOCF;ELN BORELN 04/16/93 1:32300C* 03/30/93 1:32400C l-ADDOC(:MTN BOCMTN 04/ 16/93 1:32500C MOVE OCABRV BOABRV 03/30/93 1:32600C i:-ADDOCS;EQN BOSEQN 04/16/93 1:32700C MOVE OCORDIN BOORDN 03/30/93 1:32800C* 03/30/93 1:32900C DdOVE OCONPI BOONPI 03/30/93 1:33000C D~IOVE OCONPA BOONPA 03/30/93 1;33100C MOVE OCONAK BOONAK 03/30/93 1:33200C DQOVE OCONIV BOONIV 03/30/93 1:33300C* 03/30/93 1:33400C D~IOVE OCONBI BOONBI 03/30/93 1:33500C D~IOVE OCONQT BOONQT 03/30/93 1:33600C MOVE OC(:MMT BOCMMT 03/30/93 1:33700C D~IOVE 'EM:' BORSTA 03/30/93 1:33800C* 05/26/93 1'33900C* If the action code 05/26/93 is 'A' or 'C' then check the Order 1:34000C* Comment File (ORDCOM) If the record already05/26/93 in the entity.

1:34100C* exists there then the 05/26/93 action code should be 'C' - change, 1:34200C* otherwise it should 05/26/93 be 'A' - add..

1:14300C* 05/26/93 1:34400C OCACTN IFEQ 'A' 05/26/93 1:34500C OCACTN OREQ 'C' 05/26/93 1:34600C MOVE OCORDN KORDN 05/26/93 1:34700C MOVE OC(:MTP KCMTP 05/26/93 1:34800C MOVE OCF~ESR KRESR 05/26/93 1x4900C t;-ADDOC17;ELIN KRELN 05/26/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 28 ~~OURCE FILE . . . . . . . . . X1~IBEM/MRPGSRC
PrIEMBER . . . . . . . . . . . . MMC464 ~~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 135000C :?-ADDOCCMTN KCMTN 05/26/93 135100C IvIOVE OC,ABRV KABRV 05/26/93 135200C :?-ADDOCSEQN KSEQN 05/26/93 135300C KOR.DCO SETTLORI>('.OM 99 05/26/93 135400C *IN99 IFEQ *ON 05/26/93 135500C IvIOVE 'C' BOACTN 05126/93 135600C /:LSE 05/26/93 135700C PvIOVE 'A' BOACTN 05/26/93 135800C ENDIF *IN99=*ON 05/26/93 135900C ENDIF OCACTN='A' 05/26/93 136000C* 03/30193 136100C* 03/30/93 1:36200C *IN98 IFEQ *OFF 03/30/93 1:36300C tJPDATFBCHCOM 03/30/93 1:36400C /?LSE 03/30/93 1:36500C \~VRITEFBC'HCOM 03/30/93 1:36600C I?NDIF *IN98=*OFF 03/30/93 1:36700C* 03/30/93 1:36800C ENDIF *IN99=*OFF 04/02/93 1:36900C* 04/02/93 1:37000C QQCENO READEDTOCMTCE 99 04/07/93 1:37100C ENDDO DOW *IN99=*OFF 03/30/93 1:37200C* 03/30/93 1:37300C* 03/30/93 1:37400C ENDSR CPYCMT SRCE3 03/30/93 1:37500C* 03/30/93 1:37600C/SPACE 03/25/92 1:37700C*****************

CPYCOP
SLJBIft ***************
CPYCOP
SUBR
*

1:37800C* * 03/25/92 137900C* The CPYCOP subroutine reads DTCOPT file 03/26/93 and determine *

138000C* into which batch file a deletion record 03/26/93 has to be written. *

1:38100C Then it writes the appropriate record. 03/26/93 *

1:38200C* * SRCE3 04/09/93 1:38300C**********************.********************************************

1'.38400C* * SRCE3 04/09/93 1:38500C* INDICATORS USED : 98 99 * SRCE3 04/09/93 1:38600C* * SRCE3 04/09/93 1:38700C* EXECUTED FROM . COP7'FL * SRCE3 04/09/93 1:38800C* * SRCE3 04/09/93 1:38900C******************************************************************

1:39000C* SRCE3 04/09/93 1:39100C CPYCOP BEGSR: 03/26/93 139200C* 03/25193 1:39300C* This loop reads sequentially all records 03/26/92 in Data Transfer 139400C* File DTOCPT with CE~t equal to the CEit 03/26/93 passed (using logical 1x9500C* view DTCOPTCE) and writes a deletion record 03/26/93 into appropriate 139600C* batch file. 03/26/93 1:39700C* 03/26/92 1.39800C QQCENO CHAITfDTCOPTCE 99 03/26/93 1..9900C *IN99 DOWEQ*OFF 04120/92 5738PW1 V2R2M0 92061:5 SEIU SOURCE LISTING 6/01/93 11:50:28 Page 29 SOURCE FILE . . . . . . . . . XLIBEM/NtRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1.I~ C* 03/31/93 1.10100C* Retrieve Company dumber, r and Customer PO 03/31/93 Customer Numbe 1'10200C* Number from Data Transfer 03/31/93 Order Master File (DTOMST).

1'10300C* 03/31/93 1'10500C MOVE QQCENO KCENO 03/31/93 1'10600C KDTOMS CHAINDTOMST 99 03/31/93 1'10700C *IN99 IFEQ *OFF 03/31/93 1'10800C* 03/31/93 1'10900C* 03/29/93 1'11000C* If the file name in OOFILE 03/29/93 field is 'ORDCHG', then write 1'11100C* a record into Batch S'~pecial 03/29/93 Change File.

1<11200C* 03/29/93 1<11300C OOFILE IFEQ '~ORDCHG' 03/29/93 1'11400C MOVE OMCONO KCONO 03/30/93 1'11500C Z-ADDOMCUSN KCUSN 03129/93 1~I1600C Z-ADDOMCPDT KDATE 04/07/93 1~I1700C Z-ADDOMCPTM KTIME 04/07/93 142200C Z-ADD~OOSEQN KSEQN 04/16/93 112300C KBCHCH CHAIrBCHCHGN 98 03/29/93 112400C* 03/29/93 112600C Z-ADD~OMCUSN BCCUSN 03/30/93 112700C Z-ADD~OMCPDT BCDATE 04/06/93 112800C Z-ADD~OMCPTM BCTIME 04/06/93 112900C* 03/29/93 1~G3100C MOVE OORESR BCRESR 03/29/93 1~G3200C Z-ADD~OORELN BCRELM 04/16/93 1~I3300C MOVE OOABRV BCABRV 03/29/93 1~E3400C* 03130/93 1~G3500C Z-ADD~OOSEQN BCSEQN 04/16/93 143700C* 03/29!93 143800C *IN98 IFEQ '"OFF 03/29/93 1~I3900C UPDA7CFBCHCHG 03/29/93 1~W000C ELSE 03/29/93 1~G4100C WRITE',FBCHCHG 03/29/93 14200C ENDIF *IN98=*OFF 03/29/93 1~~4300C ENDIF COFILE='ONRDCHG' 03/30/93 1.4400C* 03/29/93 1.4500C* 03/29/93 14600C* If the file name in COFILE 03/29/93 field! is 'ORDCOM', then write 14.4700C* a record into Batch Order 03/29/93 Comment File.

14.4800C* 03/29/93 144900C OOFILE IFEQ 'ORDCOM' 03/29/93 5738PW 1 V2R2M0 92061:5 SE~U SOURCE LISTING 6/01 /93 11:50:28 Page 30 SOURCE FILE . . . . . . . . . XLIBEM/N(RPGSRC
r~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1.15100C Z-ADDOMCUSN KCUSN 03/29/93 1'15400C MOVE UMCSPO KCSPO 03/29/93 1'15600C MOVE OORESR KRESR 03/30/93 1'15700C Z-ADDOORELN KRELN 04/16/93 1'15800C Z-ADDOOCMTN KCMTN 04/16/93 1'15900C MOVE UOABRV KABRV 03/30/93 1'16000C Z-ADDOOSEQN KSEQN 04116/93 1'16100C KBCHCO CHAITBCHCOM 98 03/29/93 1'16200C* 03/29/93 1'16300C MOVE OMCONO BOCONO 03/30/93 1'16400C Z-ADDOMCUSN BOCUSN 03/30/93 1'16500C Z-ADDOMCPDT BODATE 04/06/93 1'16600C Z-ADDOMCPTM BOTIME 04/06/93 1'16700C* 03/29/93 1'46800C MOVE OMCSPO BOCSPO 03/30/93 1't7000C MOVE OORESR BORESR 03/29/93 1't7100C Z-ADD~OORELN BORELN 04/16/93 1'G7200C* 03/30/93 147300C Z-ADD~OOCMTN BOCMTN 04116/93 147500C Z-ADD~OOSEQN BOSEQN 04/16/93 1~i7700C* 03/29/93 1~G7800C *IN98 IFEQ *UFF 03/29/93 i~i7900C UPDATFBCHCOM 03/29/93 1~L8100C WRITE:BCHCOM 03/29/93 1~G8200C ENDIF *IN98=*OFF 03/29/93 1~I8300C ENDIF OOFILE='ORDCOM' 03/30/93 148400C* 03/29/93 148500C* 03/30/93 1~G8600C* If the file name in CUFILEthen write 03/30/93 field! is 'ORDDIS', 148700C* a record into Batch Order 03/31/93 Discount File.

148800C* 03/30/93 1~G8900C OOFILE IFEQ 'ORDDIS' 03/30/93 1~G9000C MOVE OMCONO KCONO 03/30/93 1~~9200C Z-ADDOMCPDT KDATE 04/07/93 1~~9300C Z-ADDOMCPTM KTIME 04/07/93 1'.9400C MOVE OMCSPO KCSPO 03/30/93 1.9500C MOVE OORESR KRESR 03/30/93 1.9600C Z-ADDOORELN KRELN 04/16/93 1.9700C Z-ADDOOSEQN KSEQN 04116/93 1~-9800C KBCHDI CHAINBCHDIS 98 03/30/93 14.9900C* 03/30/93 5738PW1 V2R2M0 920615 SEU SOURCE LISTING 6/01/93 11:50:28 Page 31 SOURCE FILE . . . . . . . . . XI~IBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 ~~EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 150000C MOVE; OMCONO BXCONO 03/30/93 150100C Z-ADI)OMCUSM BXCUSN 03/30/93 150200C Z-ADI)OMCPDT BXDATE 04/06/93 150300C Z-ADI)OMCPTM BXTIME 04/06/93 150400C* 03/30/93 150500C MOVE.OMCSPO BXCSPO 03/30/93 150600C MOVE, OORESR BXRESR 03/30/93 150700C Z-ADI)OORELN BXRELN 04/16/93 150800C Z-ADI)OOSEQN BXSEQN 04/16/93 150900C* 03130/93 S *

151200C *IN98 IFEQ *OFF 03/30/93 151300C UPDA'IFBCHDIS 03/30/93 151600C ENDIF' *IN98=*OFF 03/30/93 1517()0C ENDIF' COFILE='ORDDIS' 03/30/93 1518()0C* 03/30/93 1.51900C* 03/30/93 1.52000C* If the file name is OOFILE', then write 03/30/93 field is 'ORDPRM

1.12100C* a record into Batch Order 03/31/93 Promotions File.

1.12200C* (In promotion files, rest 04/06/93 is loaded with the paid rest 1:12300C* and free rest is loaded 04/06/93 with the rest.) 1:12400C* 03/30/93 1:12500C OOFILE IFEQ 'ORDPRM' 03/30/93 1:12600C MOVE OMCONO KCONO 03/30/93 1:12700C Z-ADDOMCUSN KCUSN 03/30/93 1:12800C Z-ADDOMCPDT KDATE 04/07/93 1:12900C Z-ADDOMCPTM KTIME 04/07/93 1:13000C MOVE OMCSPO KCSPO 03/30/93 1:13100C MOVE OOPRES KRESR 04/06/93 1:13200C Z-ADDOORELN KRELN 04/16/93 1:13300C MOVE OORESR KPREE 04/06/93 1:13400C KSCHPR CHAIrfBCHPRM 98 03/30/93 1:13500C* 03/30/93 1:13600C MOVE OMCONO HPCONO 03/31/93 Li3700C Z-ADD~OMCUSN HPCUSN 03/31/93 1:13800C Z-ADD~OMCPDT HPDATE 04/06/93 1:13900C Z-ADD~OMCPTM HPTIME 04/06/93 1:14000C* 03/30/93 1:14100C MOVE OMCSPO HPCSPO 03/31/93 1:14200C MOVE OOPRES HPRESR 04/06/93 1:14300C Z-ADD~OORELN HPRELN 04/16/93 1:14400C MOVE OORESR HPFREE 04/06/93 1:14500C* 03/30/93 1:14600C MOVE OOACTN HPACTN 03/31/93 1:14700C* 03/30/93 1:14800C *IN98 IFEQ *OFF 03/30/93 1:14900C UPDA'lf FBCHPRM 03/30/93 5738PW1 V2R2M0 920615 SEl;1 SOURCE LISTING 6/01/93 11:50:28 Page 32 S'~OURCE FILE . . . . . . . . . XLIBEM/N(RPGSRC
D~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 1:15000C ELSE 03/30/93 1:15100C WRITEFBCHPRM 03/30/93 1:15200C ENDIF *IN98=*OFF 03/30/93 1:15300C ENDIF OOFILE='ORDPRM' 03/30/93 1:15400C* 03/30/93 1:15500C* 03/30/93 1:15600C* If the file name in OOFILE', then write 03/30/93 field is 'ORDCUS

1:15700C* a record into Batch ('.ustomer 03/31/93 Attributes File.

1:15800C* 03/30/93 1:15900C OOFILE IFEQ 'ORDCUS' 03/30193 1:16000C MOVE OMCONO KCONO 03/30/93 1:16100C Z-ADDOMCUSN KCUSN 03/30/93 1:16200C Z-ADDOMCPDT KDATE 04/07/93 1:16300C Z-ADDOMCPTM KTIME 04/07/93 1:16400C MOVE OMCSPO KCSPO 03/30/93 1:16500C KBCHCU CHAII'BCHCUS 98 03/31/93 1:16600C* 03/30/93 1:16700C MOVE OMCONO BUCONO 03/31/93 1:16800C Z-ADDOMCUSN BUCUSN 03/31193 1:16900C Z-ADD~OMCPDT BUDATE 04/06/93 1:17000C Z-ADD~OMCPTM BUTIME 04/06/93 1:17100C* 03/30/93 1:17200C MOVE OMCSPO BUCSPO 03/31/93 1:17300C MOVE OOACTN BUACTN 03/31/93 1:17400C* 03/30/93 1:17500C *IN98 IFEQ *OFF 03/30/93 1:17600C UPDA'1CFBCHCUS 03/30/93 1:17700C ELSE 03/30/93 1:17800C WRITE;FBCHCUS 03/30/93 1 C ENDIF *IN98-*OFF 03/30/93 >7900 1:18000C ENDIF OOFILE='ORDCUS' 03/30/93 1 C* 03/31/93 >8100 1:18200C* 03/31/93 1:18300C* If the file name in OOFILE', then write 03/31/93 field is "ORDADS

1:18400C* a record into Batch C>rder 03/31/93 Address File.

1:18500C* 03/31/93 1:18600C OOFILE IFEQ 'IJRDADS' 03/31/93 1.'18700C MOVE OMCONO KCONO 03/31/93 1:18800C Z-ADDOMCUSN KCUSN 03/31/93 1.'18900C Z-ADDOMCPDT KDATE 04/07/93 1.'19000C Z-ADDOMCPTM KTIME 04/07/93 1:19100C MOVE OMCSPO KCSPO 03/31/93 1.'19200C Z-ADDOOADTP KADTP 04/16193 1_'19300C KBCHAD CHAINBCHADS 98 03/31/93 1_'19400C* 03/31/93 1_'19500C MOVE OMCONO BICONO 03/31/93 1'9600C Z-ADDOMCUSN BICUSN 03/31/93 '.9700 1'9800C Z-ADDOMCPTM BITIME 04/06/93 1'9900C* 03/31/93 5738PW1 V2R2M0 92061.5 SE'~U SOURCE LISTING 6/01/93 11:50:28 Page 33 SOURCE FILE . . . . . . . . . Xl_IBEM/MRPGSRC
DrIEMBER . . . . . . . . . . . . MMC464 ~.EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 150000C MOVE.OMCSPO BICSPO 03/31/93 150100C Z-ADI>OOADTP BIADTP 04/16/93 150300C* 03/31/93 150400C *IN98 IFEQ 'OFF 03/31/93 1.50500C UPDA'IFBCHADS 03/31/93 1~i0700C WRITEFBCHADS 03/31/93 160800C ENDIF' *IN98=*OFF 03/31/93 160900C ENDIF' OOFILE='ORDADS' 03131/93 161000C* 03/31/93 161100C* 03/31/93 161200C* If the file name in O~OFILE', then 03/31/93 field is 'ORDATR write 161300C* a record into Batch Order 03/31/93 Attribute File.

161400C* 03/31/93 161500C OOFILE IFEQ 'ORDATR' 03/31193 161700C Z-ADI~OMCUSN KCUSN 03/31/93 161800C Z-ADDOMCPDT KDATE 04/0?/93 1ti2100C MOVE OORESR KRESR 03/31/93 1ti2200C Z-ADDOORELN KRELN 04/16/93 1ti2300C KBCHAT CHAII'BCHATR 98 03/31/93 1ti2400C* 03/31/93 1ti2500C MOVE OMCONO BJCONO 03/31/93 lti2(i00C Z-ADDOMCUSN BJCUSN 03/31/93 1ti2700C Z-ADDOMCPDT BJDATE 04/06/93 1ti2800C Z-ADDOMCPTM BJTIME 04/06/93 1ti2900C* 03/31/93 1ti3000C MOVE OMCSPO BJCSPO 03/31/93 1ti3100C MOVE OORESR BJRESR 03/31/93 1ti3200C Z-ADDOORELN BJRELN 04/16/93 1ti3300C MOVE OOACTN BJACTN 03/31/93 1ti3400C* 03/31/93 1ti3500C *IN98 IFEQ *OFF 03/31/93 1ti3600C UPDA'CFBCHATR 03/31/93 1ti3700C ELSE 03/31/93 1ti3800C WRITEFBCHATR 03/31/93 1fi3900C ENDIF *IN98=*OFF 03/31/93 1fi4000C ENDIF OOFILE='ORDATR' 04/02/93 164100C* 04/26/93 1fi4200C* 04/26/93 1ti4300C* If the file name in OOFILE', then 04/26/93 field is "ORDDET write 1fi4400C* a record into Batch Clrder 04/26/93 Detail File.

1fi4500C* 04/26/93 lfi4li00C COFILE I:FEQ 'ORDDET' 04126/93 1fi4700C MOVE OMCONO KCONO 04/26/93 1fi4800C 2: ADDOMCUSN KCUSN 04/26/93 1fi4900C L; ADDOM(:PDT KDATE 04/26/93 5738PW1 V2R2M0 92061:5 SEIU SOURCE LISTING 6/01/93 11:50:28 Page 34 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
D~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 165000C i:-ADDOMCPTM KTIME 04/26/93 165300C i:-ADDOORELN KRELN 04/26/93 165400C KBCHDE (;HAINBCfIDET 98 04/26/93 165500C* 04/26/93 165700C i:-ADDOMCUSN BTCUSN 04/26/93 165800C i:-ADDOMCPDT BTDATE 04/26/93 1ti5900C ?-ADDOMCPTM BITIME 04/26/93 166000C* 04/26/93 166100C D~IOVE OMCSPO BTCSPO 04/26/93 166200C D~IOVE OORESR BTRESR 04/26/93 166300C l ADDORf?LN BTRELN 04/26/93 1ti6500C* 04/26/93 1ti6600C *IN98 IFEQ *OFF 04/26/93 166700C L1PDATFB(:HDET 04/26/93 1ti6800C E?LSE 04/26/93 1tS6900C WRITEFBSCHDET 04/26/93 1ti7000C F?NDIF *IN98=*OFF 04/26/93 1ti7100C E;NDIF OOFILE='ORDDET' 04/26/93 1ti7200C* 03/31/93 1ti7300C EsNDIF *IN99=*OFF 03/31/93 1ti7400C* 03/30/93 1ti7500C* 03/29/93 1ti7600C QQCENO F:EADEDTCOPTCE 99 04/02/93 1ti7700C EiNDDO DOW *IN99=*OFF 04/20/92 1ti7800C* 03/27/92 1ti7900C* 03/27/92 Iti8000C E?NDSR CPYCOP SRCE3 03/26/93 1ti8100C* 03/25/92 1ti8200C/SPACE 03/26193 1ti8300C********* 03/30/93 CPYCST
SUBR
**************************CPYCST

SUBR
*

1ti8400C* * 03/30/93 1ti8500C* The CPYCST subroutine copies all records 03/30193 for CEit passed *

lti8ti00C* from the data transfer file DTOCST to 03/30/93 the entity-level *

Iti8700C* batch file BCBCUS. * 03/30/93 168800C* * SRCE3 04/09/93 1fi8900C*******************************************************************

169000C* * SRCE3 04/09/93 169100C* INDICATORS USED . 98 99 * SRCE3 04/09/93 1fi9200C* * SRCE3 04/09/93 1fi9300C* EXECUTED FROM . COPYFL * SRCE3 04/09/93 1fi9400C* * SRCE3 04/09/93 Ifi9500C*******************************~***********************************SRCE

169600C* SRCE3 04/09/93 169700C CPYCST E;EGSR 03/30/93 1fi9800C* 03/30/93 1fi9900C* This loop reads sequentially all records 03/30/93 in Data Transfer 5738PW1 V2R2M0 92061:5 SE~U SOURCE LISTING 6/01/93 11:50:28 Page 35 SOURCE FILE . . . . . . . . . XI_IBEM/MRPGSRC
11~IEMBER . . . . . . . . . . . . M MC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1'70000C* File DTOCST with (:E# 03/30/93 equal to the CE# passed (using logical 1'70100C* view DTOCSTCE) and writes 03/30/93 them into the batch file BCHCUS.

1'70200C* 03/30/93 1'70300C QQCENO (:HAINDTOCSTCE 99 03/30/93 1'70400C *IN99 DOWEQ*OFF 03/30/93 1'70500C* 03/30/93 1'10600C* Retrieve the Customer 04/02/93 PO Number from Data Transfer 1'10700C* Order Master File (I)TOMST). 04/02/93 1'10800C* 03131/93 1'10900C D~IOVE QUORDN KORDN 04/02/93 1'11000C D~IOVE QQCENO KCENO 03/31/93 1'11100C KDTOMS ('.HAINDTOMST 99 03/31/93 1'11200C *IN99 LFEQ *OFF 03/31/93 1'11300C* 03/31/93 1'1400C D~IOVE OUCONO KCONO 04/02/93 1'71500C t'.-ADDOU(:USN KCUSN 04/02/93 1'71600C 2;-ADDOU(:PDT KDATE 04/06/93 1'1700C t;-ADDOU(:PTM KTIME 04/06/93 1'1800C MOVE OMCSPO KCSPO 03/30/93 1'1900C KBCHCU C',HAINBCHCUS 98 04/06/93 1'2000C* 03/30/93 1'2100C MOVE QUCONO BUCONO 04/02/93 1'2200C l-ADDOUCUSN BUCUSN 04116/93 1'2300C l-ADDOUC'.PDT BUDATE 04/02/93 1'2400C t;-ADDOU('.PTM BUTIME 04/02/93 1'2500C* 03/30/93 I'~2600C MOVE OMCSPO BUCSPO 04/02/93 I'~2700C MOVE OUORDN BUORDN 04/02/93 1'2800C MOVE OUAGRP BUAGRP 04/02/93 1',2900C 2:-ADDOUF'LLC BUPLLC 04/ 16/93 1'.3000C* 03/30/93 1'.3100C 2',-ADDOUI>LLC BUDLLC 04/16/93 1',3200C MOVE OUCONT BUCONT 04/02/93 1',3300C MOVE OUALWU BUALWU 04/02/93 1',3400C MOVE OUAI_WI BUALWI 04/02/93 I',~3500C* 03/30/93 '3600 1',3700C MOVE OUDSCD BUDSCD 04/02193 1',3800C MOVE OUItPCD BURPCD 04/02/93 1;'3900C MOVE OUACBO BUACBO 04/02/93 1;'4000C* 03/30/93 174100C 2; ADDOUC'.TPR BUCTPR 04/16/93 1;4200C MOVEOUFtEGI BUREGI 04/02/93 1; C MOVE OUFtEG2 BUREG2 04/02/93 1.4400C MOVE OUFtEG3 BUREG3 04/02/93 14500C* 04/02/93 1.'4600C MOVE OUF(EG4 BUREG4 04/02/93 1.'4700C MOVE OUFtEGS BUREGS 04102/93 1.'4800C MOVE OUFtEG6 BUREG6 04/02/93 1.'4900C MOVE OUF;EG7 BUREG7 04/02/93 5738PW 1 V2R2M0 92061:1 SE1;1 SOURCE LISTING 6/01 /93 11:50:28 Page 36 SOURCE FILE . . . . . . . . . XLIBEM/IVtRPGSRC
T~IEMBER . . . . . . . . . . . . M MC464 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 1'75000C* 04/02/93 1'75100C DdOVE OUREG8 BUREG8 04/02/93 1'75200C MOVE OUItEG9 BUREG9 04/02/93 1'75300C MOVE OUREGO BUREGO 04/02/93 1'75400C l-ADDOU(:R.LM BURCLM 04/16/93 1'15500C* 04/02/93 1'75600C D~IOVE OURSCC BURSCC 04/02/93 1'75700C MOVE OUI~VPC BUCVPC 04/02/93 1'75800C MOVE OU'CXB1 BUTXB1 04/02/93 1'15900C MOVE OU'CXB2 BUTXB2 04/02/93 1'16000C MOVE OU'CXB3 BUTXB3 04/07/93 1'76100C MOVE OU'CXB4 BUTXB4 04/07/93 1'16200C* 04/02/93 1'16300C MOVE OUTXRG BUTXRG 04/02/93 1'16400C MOVE OU"CMTX BUTMTX 04/02/93 1'16500C MOVE OUCNTY BUCNTY 04/02/93 176600C D~IOVE OU''.CRMS BUTRMS 04/02/93 1'76700C* 04/02/93 1'6800C MOVE 'EM' BURSTA 04/02/93 1'76900C* 05/26/93 1'77000C* If the action code 05/26/93 is 'A' or 'C' then check the Customer 177100C* Attribute File (ORD(:US)If the record 05/26193 in the entity. already 1'7200C* exists there then the 05/26/93 action code should be 'C' - change 1'7300C* otherwise it should 05/26/93 be 'A' - add.

1'7400C* 05/26/93 177500C OUACTN I:FEQ 'A' 05/26/93 1'7600C OUACTN C>REQ 'C' 05/26/93 i?7700C OUORDN SETLLORD~CUS 99 05/26/93 1?7800C *IN99 IiFEQ *ON 05/26/93 1'7900C MOVE 'C' BUACTN 05/26/93 1'8000C ELSE 05/26/93 1'.8100C MOVE 'A' BUACTN 05/26/93 1'.8200C E',NDIF *IN99=*ON 05/26/93 1'8300C E,NDIF OUACTN='A' 05/26193 1',8400C* 03/30!93 1',8500C* 03/30/93 1',8600C *IN98 IIFEQ *OFF 03/30/93 1',8700C LfPDATFBC',HCUS 03/30/93 1','8800C ELSE 03/30/93 1;'8900C VJRITEFBCHCUS 03/30/93 1;'9000C E,NDIF *IN98=*OFF 03/30/93 1','9100C* 03/30/93 119200C ENDIF *IN99=*OFF 04/02/93 1;'9300C* 04/02/93 1;'9400C QQCENO R.EADEDTOCSTCE 99 03130/93 1;9500C ENDDO DOW *IN99=*OFF 03/30/93 119600C* 03/30/93 119700C* 03/30/93 1 C* 03/30/93 '9900 5738PW1 V2R2M0 92061:5 SEIU SOURCE LISTING 6/01/93 11:50:28 Page 37 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
D~IEMBER . . . . . . . . . . . . MMC464 S.EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 1.30000C/SPACE 03/30/93 130100C******** * 03/30/93 CPYDET
SUBl2 ****************
CPYDET
SUBR

1.30200C* * 03/30/93 180300C* The CPYDET subroutine copies. all * 03/30/93 records for CE# passed 130400C* from the data tranfser file DT017ET* 03/30/93 to the entity-level 130500C* batch file BCHDET. * 03/30/93 180600C* * SRCE3 04/09/93 1;30700C*********************a:***********************************
* SRCE3 04/09/93 180800C* * SRCE3 04/09/93 180900C* INDICATORS USED . 98 99 * SRCE3 04/09/93 1.31000C* * SRCE3 04/09/93 1.31100C* EXECUTES . TItANSR * SRCE3 04/09/93 181200C* * SRCE3 04/09/93 181300C* EXECUTED FROM . COPYFL * SRCE3 04/09/93 181400C* * SRCE3 04/09/93 1.31500C*********************~.************************************

1.31600C* SRCE3 04/09/93 1.31700C CPYDET FtEGSR 03/30/93 181800C* 03/30193 1.31900C* This loop reads sequentially all 03/30/93 records in Data Transfer.

182000C* File DTODET with CE# equal to the 03/30193 CE# passed (using logical 1132100C* view DTODETCE) and writes tlhem T. 03/30/93 into the batch frle BCHDE

1132200C* 03/30/93 1132300C QQCENO C.'HAINDTODETCE 99 03/30/93 1132400C *IN99 DOWEQ*OFF 03/30/93 1132500C* 03/31/93 182600C* Retrieve Customer PO Number from 04/02/93 Data Transfer Order If32700C* Order Master File (DTOMST). 04/02/93 1f32800C* 03/31/93 1f32900C MOVE OI)ORDN KORDN 04/02/93 1f33000C MOVE QQCENO KCENO

183100C KDTOMS C'HAINDTOMST 99 03/31/93 1f33200C *IN99 I:FEQ *OFF 03/31/93 If33300C* 03/30/93 If33400C MOVE OI)CONO KCONO 04/02/93 183500C Z',-ADDODC'.USN KCUSN 04/02/93 1ft3600C 2; ADDODC',PDT KDATE 04/06/93 1ft3700C 2; ADDODC'.PTM KTIME 04/06/93 1f~3800C MOVE ODdCSPO KCSPO 03/30/93 1f~3900C MOVE OI)RESR KRESR 04/23/93 1f~4000C Z; ADDODR;ELN KRELN 04/16/93 If~4100C* 04/02/93 1ft4200C KBCHDE C'HAINBCH:DET 98 04/02/93 1f~4300C* 03/30/93 1f~4400C MOVE OI>CONO BTCONO 04/02/93 1f~4500C Z,-ADDODC'.USN BTCUSN 04/02/93 1f~4600C Z; ADDODC:PDT BTDATE 04/02/93 1f~4700C Z: ADDODC'PTM BTTIME 04/02/93 1f~4800C* 03/30/93 1f~4900C MOVE OMCSPO BTCSPO 04/02/93 5738PW1 V2R2M0 92061.'> SE1J SOURCE LISTING 6/01/93 11:50:28 Page 38 SOURCE FILE . . . . . . . . . XLIBEM/MfRPGSRC
I~ZEMBER . . . . . . . . . . . . M MC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 1135000C D~IOVE ODRESR BTRESR 04/23/93 1135100C l-ADDODF;ELN BTRELN 04116/93 1135200C D~IOVE ODORDN BTORDN 04/02/93 185300C* 03/30/93 1135400C l-ADDODQYCS BTQYCS 04/16/93 185500C t:-ADDODF;QDT BTRQDT 04/16/93 1f35600C 2;-ADDODF'MDT BTPMDT 04/16/93 185700C !.-ADDODF'L BTPL 04/16/93 1f35800C* 03/30/93 186000C l-ADDODF'IVC BTPIVC 04/16/93 1f36100C MOVE ODFOBD BTFOBD 04/02/93 186200C t;-ADDODC'.SLN BTCSLN 04/16/93 1f36300C* 03/30/93 1f36400C MOVE OD(:ITM BTCITM 04/02/93 1f36500C MOVE ODITDS BTITDS 04/02/93 1f36600C MOVE OD~NHSE BTWHSE 04/02/93 1f36700C MOVE ODORGN BTORGN 04/02/93 1f36800C* 03/30/93 1f36900C MOVE ODCSUM BTCSUM 04/02/93 1f37000C MOVE ODF'RUM BTPRUM 04/02/93 1f37100C MOVE ODDSUM BTDSUM 04/02/93 1f37200C Z',-ADDODP'RMY BTPRMY 04/16/93 1f37300C* 03/30/93 1f37400C MOVE ODHLCD BTHLCD 04/02/93 1F37500C MOVE ODS~TAT BTSTAT 04/02/93 1f~7600C 2'.-ADDODTXCM BTTXCM 04/16/93 1f~7700C Z',-ADDODSPCH BTSPCH 04/16193 1f~7800C* 03/30/93 1f~7900C MOVE ODTXCT BTTXCT 04/02/93 1f~8000C MOVE ODfTDC BTITDC 04/02/93 lfl8100C MOVE ODF'LCK BTPLCK 04/02/93 1f~8200C MOVE ODDLCK BTDLCK 04/02/93 1f~8300C* 03/30/93 1f~8400C Z; ADDODI~LI1 BTDLII 04/16/93 1f~8500C Z, ADDODDLI2 BTDLI2 04/16/93 1f~8600C Z,-ADDODDLI3 BTDLI3 04/16/93 1f~8700C Z: ADDODDLI4 BTDLI4 04f 16/93 1f~8800C* 04/02/93 1f~8900C Z; ADDODDLIS BTDLIS 04/16/93 1f~9000C Z,-ADDODDLI6 BTDLI6 04/16193 1f~9100C Z. ADDODDLI7 BTDLI7 04/16/93 1f~9200C Z. ADDODDLI8 BTDLI8 04/16/93 1f~9300C* 04/02193 lf'~9400C Z. ADDODDLI9 BTDLI9 04/16/93 lf'~9500C Z. ADDODDL10 BTDL10 04/16/93 1f,9600C MOVE ODI)OVR BTDOVR 04/02/93 1f9700C MOVE ODF'OVR BTPOVR 04/02/93 1f9800C* 03/30/93 lf!9900C MOVE ODOVRP BTOVRP 04/02/93 5738PW1 V2R2M0 92061:5 SE1:1 SOURCE LISTING 6/01/93 11:50:28 Page 39 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+....4...+...5...+...6...+...7...+...8...+...
9...+...0 1!)0000C MOVE OD()VRW BTOVRW 04/02/93 1!)0100C MOVE OD'CRDC BTTRDC 04/02/93 1!0200C MOVE ODREFN BTREFN 04/02/93 1!0300C* 03/30/93 1!/0400C MOVE ODAGRP BTAGRP 04/04/93 1!0500C MOVE OD~JVSID BTWSID 04/02/93 1!0600C MOVE ODMIS1 BTMIS1 04/02/93 1!i'0700C i:-ADDODDdIS2 BTMIS2 04/16/93 1!/0800C* 04/02193 1!/0900C DdOVE ODIvIIS3 B'rMIS3 04102/93 1!/1000C i;-ADDODF:QTM BTRQTM 04/16/93 1!1100C i:-ADDODF'MTM BTPMTM 04/16/93 1!)1200C DQOVE ODI'RHC BTPRHC 04/02/93 1!1300C* 04/02/93 1!)1400C D~IOVE ODIADJ BTIADJ 04/02/93 1!)1500C D~IOVE ODSI-IIP BTSHIP 04/02/93 1!)1600C MOVE ODSHDF BTSHDF 04/02/93 1!11700C MOVE ODOFEN B'COFEN 04/02/93 1!)1800C* 04/02/93 1!)1900C D~IOVE ODOTEN BTOTEN 04/02193 1!)2000C MOVE ODOREN BTOREN 04/02/93 1!)2100C MOVE OD(~ENO BTCENO 04/02/93 1!)2200C MOVE 'EM' BTRSTA 05/26/93 1!)2300C* 04/02/93 1!)2400C MOVE *BLANKS BTEMPR 04/02/93 192500C* 05/26/93 192600C* If the action code is e Order 05/26/93 'A' or 'C' then check th 192700C* Detail File (ORDDE'T) record already 05/26/93 in the entity. If the 192800C* exists there then the 05/26/93 ;action code should be 'C' - change 192900C* otherwise, it should 05/26/93 be 'A' - add.

1~r3000C* 05/26/93 1Sr3100C ODACTN IFEQ 'A' 05/26/93 15)3200C ODACTN OREQ 'C' 05/26/93 193300C MOVE ODOF,DN KORDN 05/26/93 193400C MOVE ODItESR KRESR 05/26/93 193500C 2;-ADDODF;ELN KRELN 05/26/93 1Sr3600C MOVE ODI'RES KPRES 05/26/93 193700C KORDDE SETLLORD~DET 99 05/26/93 1Sr3800C *IN99 I:FEQ *ON 05/26/93 193900C MOVE '('.' BTACTN 05/26/93 1~r4000C F;LSE 05/26/93 1Sr4100C MOVE 'A' BTACTN 05/26/93 194200C E;NDIF *IN99=*ON 05/26/93 194300C >:;NDIF ODACTN='A' 05/26/93 194400C* 03/30/93 194500C* 03/30/93 194600C *IN98 I',FEQ *OFF 03/30/93 194700C LIPDATFBC',HDET 03/30/93 1Sr4800C ELSE 03/30/93 5738PW1 V2R2M0 920615 SEIJ SOURCE LISTING 6/01/93 11:50:28 Page 40 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . M:VIC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 105000C f?NDIF *IN98=*OFF 03/30/93 105100C* 03/30/93 105200C fiNDIF *IN99=*OFF 04/02/93 105300C* 04/02/93 105400C QQCENO F;EADEDTODETCE 99 03/30/93 1!)5500C f'sNDDO DOW *IN99=*OFF 03/30/93 105600C* 03/30/93 105700C* 03/30/93 105800C fiNDSR CPYDET SRCE3 03/30/93 105900C* 03/30/93 1~~6100C******** * 03/30/93 CPYDST
SUBR;
*******************
CPYDST
SUBR

196200C* * 03/30/93 196300C* The CPYDST subroutine copies all * 03/30/93 records for CE# passed 196400C* from the data transfer file DTODST* 03/30/93 to the entity-level 196500C* batch file BCHDIS. * 03/30!93 196600C* * SRCE3 04109/93 196700C*********************************************************
* SRCE3 04/09/93 196800C* * SRCE3 04/09/93 106900C* INDICATORS USED . 98 99 * SRCE3 04/09/93 197000C* * SRCE3 04/09/93 107100C* EXECUTES . TF;ANSR * SRCE3 04/09/93 197200C* * SRCE3 04/09/93 197300C* EXECUTED FROM . COPYFL * SRCE3 04/09/93 157400C* * SRCE3 04/09/93 1~~7500C*********************************************************** SRCE3 197600C* SRCE3 04/09/93 157700C CPYDST E;EGSR 03/30/93 157800C* 03/30/93 197900C* This loop reads sequentially all 03/30/93 records in Data Transfer 198000C* File DTODST with CE# equal to 03/30/93 the CE# passed (using logical 198100C* view DTODSTCE) and writes them . 03/30/93 into the batch tile BCHDIS

198200C* 03/30!93 158300C QQCENO C'.HAINDTODSTCE 99 03/30/93 198400C *IN99 LtOWEQ*O:FF 03/30/93 158500C* 03/30/93 198600C* Retrieve Company Number, Customer 03/31/93 Number and Customer PO

198700C* Number from Data Transfer Order 03/31/93 Master File (DTOMST).

198800C* 03/31/93 199100C KDTOMS C'HAINDTOMST 99 03/31/93 199200C *IN99 IIFEQ *C~FF 03/31!93 199300C* 03/31/93 159400C MOVE ODdCONO KCONO 03/30/93 199500C Z, ADDOMCUSN KCUSN 04/02/93 199600C Z; ADDOICI?DT KDATE 04/06/93 199700C Z, ADDOICI?TM KTIME 04/06/93 5738PW1 V2R2M0 92061-'i SEIl SOURCE LISTING 6/01/93 11:50:28 Page 41 SOURCE FILE . . . . . . . . . XL,IBEM/MfRPGSRC
I~ZEMBER . . . . . . . . . . . . M1VIC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 200000C Z',-ADDOIRIELN KRELN 04/16193 2()0100C Z; ADDOISI:QN KSEQN 04/16/93 2(x1200C KBCHDI C'HAINBCHfDIS 98 04/06/93 2(10300C* 03/30/93 2()0400C MOVE OMCONO BXCONO 04/02/93 2(10500C Z',-ADDOMCUSN BXCUSM 04/16/93 2(10600C Z: ADDOIC1PDT BXDATE 04/02/93 2(10700C Z; ADDOIC1PTM BXTIME 04/02/93 2(10800C* 03/30/93 2(10900C MOVE OMCSPO BXCSPO 04/02/93 2(11000C MOVE OIRESR BXRESR 04/23/93 2(11100C Z,-ADDOIR1ELN BXRELN 04/16/93 2(11200C Z; ADDOISEQN BXSEQN 04/16/93 2(11300C MOVE OIORDN BXORDN 04/02/93 2(11400C* 03/30/93 2(11500C MOVE OIDTYP BXDTYP 04102/93 2(11600C MOVE OIRESN EXRESN 04/02/93 2(11700C MOVE OIRDES BXRDES 04/02/93 2(11800C Z; ADDOIU,AMS BXUAMS 04/16/93 2(11900C* 03/30/93 2(12000C Z, ADDOIU.AMO BXUAMO 04/16/93 2(12100C MOVE OIDSUM BXDSUM 04/02/93 2(12200C Z,-ADDOIDiPCT BXDPCT 04/ 16/93 2(12300C MOVE OIP'ADS BXPADS 04/02/93 2(12400C* 03/30/93 2(12500C Z; ADDOID1L BXDL 04/16/93 2(12600C MOVE OIS'i~SD BXSYSD 04/02/93 2(12700C MOVE OISHIV BXSHIV 04/02/93 2(12800C MOVE OIACRL BXACRL 04/02/93 2(12900C* 04102/93 2(13000C MOVE OIGLDT BXGLDT 04/02/93 2(13100C MOVE OIAGRP BXAGRP 04/02/93 2(13200C Z,-ADDOIPROM BXPROM 04/ 16/93 2(13300C Z ADDOID'TIV BXDTIV 04116/93 2(13400C* 04/02/93 2(13500C I~iOVE OIPROF BXPROF 04/02/93 2(13600C I~fOVE OIEVNT BXEVNT 04/02/93 2(13700C* 04/02/93 2(13800C MOVE OIDLI1 BXDLIl 04/02/93 2(13900C MOVE OIDLI2 BXDLI2 04/02/93 2(14000C MOVE 'E1~1' BXRSTA 04/02/93 2(14100C* 05/26/93 2(14200C* If the action code 05/26/93 is 'A' or 'C' tlhen check the Order 2(14300C* Discount File (ORDI>IS)If the record already05/26/93 in the entity.

2(14400C* exists there then be 'C' - change, 05/26/93 the action code should 2(14500C* otherwise it should 05/26/93 M: 'A' - add.

204600C* 05/26/93 2(14700C OIACTN IFEQ 'A' 05/26/93 2(14800C OIACTN OREQ 'C' 05/26/93 2(14900C MOVE OfORDN KORDN 05/26/93 5738PW1 V2R2M0 92061:5 SEU SOURCE LISTING 6/01/93 11:50:28 Page 42 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2)5000C PvIOVE OIRESR KRESR 05/26/93 205100C ~'.-ADDOIRELN KRELN 05/26/93 205200C ~'.-ADDOISIEQN KSEQN 05/26/93 205300C KORDDI SETLLORI)DIS 99 05/26/93 205400C *IN99 IFEQ *ON 05/26/93 205500C PrIOVE 'C' BXACTN 05/26/93 205600C /?LSE 05/26/93 205700C MOVE 'A' BXACTN 05/26/93 205800C I?NDIF *INN99=*ON 05/26/93 205900C ENDIF OIACTN='A' 05/26/93 206000C* 03/30/93 206100C* 03/30/93 2W200C *IN98 IFEQ *OFF 03/30/93 206300C UPDATFB<'HDIS 03/30/93 206400C /?LSE 03/30/93 206500C WRITEFBC'HDIS 03/30/93 206600C I?NDIF *IN98=*OFF 03/30/93 206700C* 04/02/93 21)6800C I?NDIF *IN99=*OFF 04/02/93 206900C* 03/30/93 207000C QQCENO F;EADEDTODSTCE 99 03/30/93 207100C I?NDDO DOW *IN99=*OFF 03/30/93 207200C* 03/30/93 207300C* 03/30/93 207400C I?NDSR CPYDST SRCE3 03/30/93 207500C* 03/30/93 207700C********** 03/26/93 CPYMST
S(1BR
******************
CPYMST
SUBR
*

207800C* * 03/26/93 207900C* The CPYMST subroutine copies. all records 03/29/93 for CE# passed *

208000C* from the data transfer file DTOIvIST 03/29/93 to the entity-level *

208100C* batch file BCHMST. * 03/29/93 208200C* * SRCE3 04/09/93 208300C**************************************************************

208400C* * SRCE3 04/09/93 2(18500C* INDICATORS USED : 98 !)9 * SRCE3 04/09/93 208600C* * SRCE3 04/09/93 208700C* EXECUTED FROM . COP'YFL * SRCE3 04/09/93 208800C* * SRCE3 04/09/93 208900C**************************************************************

209000C* SRCE3 04/09/93 2(19100C CPYMST E~EGSR 03/26/93 2(19200C* 03/26/93 2(19300C* This loop reads sequentially all records 03/26/93 in Data Transfer 2(19400C* File DTOMST with CE# equal to the CE# 03/26/93 passed (using logical 2(19500C* view DTOMSTCE) and writes them into 03/26/93 the batch file BCHMST.

2(19600C* 03/26/93 2(19700C QQCENO C'HAINDTC1MSTCE 99 03/26/93 2(19800C *IN99 LtOWEQ*O',FF 03/26/93 2(19900C* 03/26/93 5738PW1 V2R2M0 92061.'i SE1:1 SOURCE LISTING 6/01/93 11:50:28 Page 43 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
11~EMBER . . . . . . . . . . . . M:MC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2:0000C D40VE OMCONO KCONO 03/26/93 2:10100C Z;-ADDOMCUSN KCUSN 04102/93 2:0200C Z',-ADDOMCPDT KDATE 04/06/93 2:10300C Z:-ADDOMCPTM KTIME 04/06/93 2:10400C MOVE OMCSPO KCSPO 03/26/93 2:10500C KBCHMS C.'HAINBCHMST 98 03/26/93 2:,0600C* 03/26/93 2:.0700C MOVE OMCONO BACONO 03/26/93 2::0800C Z:-ADDOMCUSN BACUSN 03/29/93 2:.091x)C Z;-ADDOMCPDT BADATE 03/29193 2',,.1000C l-ADDOMCPDT BADATE 03/29/93 2.'.1100C* 03/26/93 2'..1200C MOVE OMCSPO BACSPO 03/26/93 21.1300C ABOVE OMORDN BAORDN 03/26/93 21.1400C MOVE OMIEDIC BAEDIC 03/26/93 21.1500C MOVE OM;iRCE BASRCE 03/26/93 21.1600C* 03/26/93 21 C Z',-ADDOMRQDT BARQDT 04/ 16/93 21.1800C Z: ADDOMI'MDT BAPMDT 04/ 16/93 21.1900C Z: ADDOMRQTM BARQTM 04/16/93 21.2000C 2',-ADDOMPMTM BAPMTM 04/16/93 212100C* 03/26/93 212200C 2'.-ADDOMORDT BAORDT 04/16/93 212300C Z'.-ADDOMORTM BAORTM 04/16/93 212400C MOVE OMl?ROF BAPROF 03/26/93 212500C MOVE OMI;ISOR BAUSOR 03/26/93 212600C* 03/26/93 212900C MOVE OMI)THC BAOTHC 03/26/93 213(x)0C MOVE OMCSHC BACSHC 03/26/93 213100C MOVE OM'JVTHC BAWTHC 03/26/93 213200C* 03/26/93 213300C MOVE OM'J~UHC BAWUHC 03/26/93 213400C MOVE OM'JLHC BAVLHC 03/26193 213500C MOVE OM'JUHC BAVUHC 03/26/93 213700C* 03/26/93 213800C MOVE OMIvIODE BAMODE 03!26/93 213900C Z. ADDOMHEAD BAHEAD 04/16/93 214000C Z. ADDOM7.'AIL BATAIL 04/16/93 214100C I~fOVE OMREFN BAREFN 03/26/93 214200C* 03/26/93 214300C MOVE OMI'CUR BAPCUR 03/26/93 214500C Z-ADDOMS~RGP BASRGP 04/ 16/93 214600C Z-ADDOMI'RMY BAPRMY 04/16/93 214700C* 03/26/93 21491x1C Z-ADDOMPMIV BATMIV 04/16/93 5738PW1 V2R2M0 92061:1 SE1:1 SOURCE LISTING 6/01/93 11:50:28 Page 44 SOURCE FILE . . . . . . . . . XLIBEM/MRPGSRC
MEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 215000C DdOVE OM~OICM BAOICM 03/26/93 215100C i;-ADDOMCRMM BACRMM 04/16193 215200C* 03/26/93 215300C D~fOVE OM~OORD BACORD 03/26/93 215400C D~IOVE OM:PMHD BAOMHD 03/26/93 215500C D~IOVE OM.AFLG BAAFLG 03126/93 215600C t;-ADDOM;iYDT BASYDT 04/16/93 215700C* 03/26/93 215800C D~IOVE OM:IFLG BAIFLG 03/26/93 215900C D~IOVE OM'TXLG BATXLG 03/26/93 216000C D~IOVE OM:fNST BAINST 03/26/93 216100C !,-ADDOMCUCR BACUCR 04/16193 216200C* 03/26/93 216400C D~IOVE OM1RTLK BARTLK 03/26/93 216500C 'l:-ADDOM;iPCH BASPCH 04/16/93 216600C i:-ADDOMI'RTY BAPR'TY 04/16/93 2:16700C* 03/26/93 2:',6800C MOVE OM1VIIS 1 BAMIS 1 03/26/93 2:.6900C G-ADDOMMIS2 BAMIS2 04/16/93 2:.7000C MOVE OM1VIIS3 BAMIS3 03/26/93 2:.7100C MOVE OM'WHSE BAWHSE 03/26/93 2:.7200C* 03/26/93 2:.7300C MOVE OMlIADJ BAIADJ 03/26/93 2:.7400C MOVE OM1BCHL BABCHL 03/26/93 2:.7500C MOVE OM1DLCK BADLCK 03/26/93 21.7600C MOVE OM:iHIP BASHIP 03/26/93 21.7700C* 03/26/93 21.7900C MOVE OMIf~OUT BAROUT 03/26/93 21.8000C MOVE OMDOVR BADOVR 03/26/93 218200C* 03/26/93 218500C MOVE 'EM' BARSTA 03/26/93 218600C MOVE 'EM' BABSTA 03/26/93 218700C* 03126/93 218800C* If the action code it as it is. 03/26/93 is 'D' - delte, then load 218900C* 03/26/93 219000C OMACTN I1FEQ 'D' 03/26/93 219200C E;NDIF OMACTN='D' 03/26/93 219300C* 03126/93 219400C* If the action code 03/26/93 is blank then load 'P' - place holder.

219500C* 03/26/93 219600C OMACTN IFEQ ' ' 03/26/93 219700C MOVE 'P' BAACTN 03/26/93 219800C E.NDIF OMACTN= ' ' 03/26/93 219900C* 03/26/93 5738PW1 V2R2M0 920615 SE~U SOURCE LISTING 6/01/93 11:50:28 Page 45 SOURCE FILE . . . . . . . . . XLIBEM/NIRPGSRC
D~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2:20000C* If the action code is 'A' or 'C' 03/26/93 then check the Order 220100C* Master File (ORDMST) in the a;ntity. 03/26/93 If the record already 2:2,0200C* exists there then the action code 03/26/93 should be 'C' - change, 220300C* otherwise it should be 'A' - add. 03/26/93 220400C* 03/26/93 2:?0500C OMACTN IFEQ 'A' 03/26/93 2:?0600C OMACTN OREQ 'C' 03/26/93 2:L0700C OMORDN FiETLLORLIMST 99 03/26/93 2:L0800C *IN99 IFEQ *ON 03/26/93 2:?0900C MOVE 'C' BAACTN 03/26/93 2:? C /?LSE 03/26/93 2:?1100C MOVE 'A' BAACTN 03/26/93 2:?1200C I?NDIF *IN99=*ON 03/26/93 2:? C ENDIF OMACTN='A' 03/26/93 2:? C* 03/26/93 2:?1500C MOVE OMCENO BACENO 04/06/93 2:?1600C* 04/06/93 2:? C *IN98 IFEQ *OFF 03/26/93 2:? C UPDATFB<:HMST 03/26/93 2:? C /:LSE 03/26/93 2:?2000C WRITEFBC'HMST 03/26/93 2:?2100C F:NDIF *IN98=*OFF 03/26/93 2:?2200C* 03/26/93 2:?2300C QQCENO READEDT(7MSTCE 99 03/26/93 2:>.2400C F?NDDO DOW 03/26/93 *IN99=*OFF

2:>.2500C* 03/26/93 2:?2600C* 03/26/93 2:?2700C E?NDSR CPYMST SRCE3 03/26/93 2:?2800C* 03/26/93 2:?2900CISPACE 03131/93 2:?3000C***************CPYPMT R

SUBR *
***************CPYPMT
SUB

2:>.3100C* * 03/31/93 223200C* The CPYPMT subroutine copies all * 03/31/93 records for CEtI passed 2:'3300C* from the data transfer file DTOI'MT* 03/31/93 to the entity-level 223400C* batch file BCHPRM. * SRCE3 04/09/93 2:'3500C* * SRCE3 04/09/93 2:'3600C**********************:****************************************

2:3700C* * SRCE3 04/09/93 2'.!3800C* INDICATORS USED . 98 99 * SRCE3 04/09/93 2:!3900C* * SRCE3 04/09/93 2:!4000C* EXECUTES . T>aANSR * SRCE3 04/09/93 2'.!4100C* * SRCE3 04/09193 2'.!4200C* EXECUTED FROM . COPYFL * SRCE3 04/09/93 2;!4300C* * SRCE3 04/09/93 2;!4400C**************************************************************

2:!4500C* SRCE3 04/09/93 2:!4600C CPYPMT EEGSR: 03/31/93 2:!4700C* 03/31/93 2:!4800C* This loop reads sequentially all 03/31/93 records in Data Transfer 2;!4900C* File DTOPMT with CE~t equal to 03/31/93 the CE~t passed (using logical 5738PW1 V2R2M0 92061_'i SE1:1 SOURCE LISTING 6/01/93 11:50:28 Page 46 SOURCE FILE . . . . . . . . . XI,IBEM/NfRPGSRC
r~IEMBER . . . . . . . . . . . . MMC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 225000C* view DTOPMTCE) and writes 03/31/93 them into the batch file BCHPRM.

225100C* 03/31/93 2:!5200C QQCENO CHAII'fDTOPMTCE 99 03/31/93 2:!5300C *IN99 DOWEQ*OFF 03/31/93 2:!5400C* 03/31/93 2:!5500C* Retrieve Company Number, 03/31/93 Customer Number and Customer PO

2:!5600C* Number from Data Transfer 03/31/93 Order Master File (DTOMST).

2:!5700C* 03/31/93 2:!5800C MOVE ONORDN KORDN 03131/93 r 2:.5900C MOVE QQCENO KCENO 03/31/93 2:!6000C KDTOMS CHAIrfDTOMST 99 03/31/93 226100C *IN99 IFEQ *OFF 03/31/93 2:16200C* 03/31/93 2:16300C MOVE OMCONO KCONO 03/31/93 226400C Z-ADD~OMCUSN KCUSN 04/02193 2'.!6500C Z-ADD~ONCPDT KDATE 04/06/93 2:16600C Z-ADD~ONCPTM KTIME 04/06/93 2'.!6700C MOVE OMCSPO KCSPO 03/31/93 2:16800C MOVE ONRESR KRESR 04/23/93 2'.!6900C Z-ADD~ONRELN KRELN 04/16/93 2'.17000C MOVE ONFREE KFREE 03/31/93 2.17100C KBCHPR CHAInBCHPRM 98 04/06/93 2:!7200C* 03/31/93 2:17300C MOVE OMCONO HPCONO 03/31/93 2:17400C Z-ADDOMCUSN HPCUSN 03/31/93 2:!7500C Z-ADDONCPDT HPDATE 03131/93 2:!7600C Z-ADDONCPTM HPTIME 03/31/93 2:!7700C* 03/31/93 2;!7800C MOVE OMCSPO HPCSPO 03/31/93 2:!7900C MOVE ONORDN HPORDN 03/31/93 2:!8000C MOVE ONRESR HPRESR 04/23/93 2'<!8100C Z-ADDONRELN HPRELN 04/16/93 2.!8200C* 03/31/93 Y!8300C MOVE ONFREE HPFREE 03/31/93 2;8400C Z-ADDONQTY HPQT'Y 04/16/93 2.!8500C MOVE ONUMSR HPUMSR 03/31/93 2:!8600C* 03131/93 2:!8700C MOVE ONRESN HPRESN 03/31/93 2::8800C MOVE ONRDES HPRDES 03/31/93 2:;8900C MOVE ONAGRP HPAGRP 03/31/93 2:;9000C MOVE ONSYSG HPSYSG 03/31/93 229100C* 03/31/93 29500C MOVE 'EM' HPRSTA 03/31/93 2:9600C* 05/26/93 2;9700C* If the action code is 05/26/93 'A' or 'C' then check the Order 2:9800C* Promotion File (ORDPRM) 05/26/93 in the entity. If the record already 2:9900C* exists there then the change, 05/26/93 action code should be 'C' -5738PW1 V2R2M0 92061-'i SEiJ SOURCE LISTING 6/01/93 11:50:28 Page 47 SOURCE FILE . . . . . . . . . XLIBEM/MfRPGSRC
MEMBER . . . . . . . . . . . . M:~IC464 SEQNBR*...+...1...+...2...+.
.3...+...4...+...5...+...6...+...7...+...8...+...9...+...0 2.90000C* otherwise it should be 'A' - add. 05/26/93 2.10100C* 05/26/93 2x0200C ONAC'CN IFEQ 'A' 05/26/93 2:10300C ONAC'fN OREQ 'C' 05/26/93 2x0400C MOVE ONORDN KORDN 05/26/93 2x0500C MOVE ONRESR KRESR 05126/93 2_i0600C Z-ADDONRELN KRELN 05/26/93 2,0700C MOVE ONFREE KFREE 05/26/93 2_0800C KORDPR SETLLORDPRM 99 05/26/93 2_0900C *IN99 IFEQ 'kON 05/26/93 2x1000C MOVE 'C' HPACTN 05/26/93 2:~ C ELSE 05/26/93 2:1200C MOVE 'A' HPACTN 05/26/93 2:11300C ENDIF *IN99=*ON 05/26/93 2:.1400C ENDIF ONACTN='A' 05/26/93 2:1500C* 03/31/93 2:.1600C* 03/31/93 2:.1700C *IN98 IFEQ *OFF 03/31/93 2..1800C UPDAT~FBCHPRM 03/31/93 2..1900C ELSE 03/31/93 2..2000C WRITE,FBCHPRM 03/31/93 2..2100C ENDIF *IN98=*OFF 03/31/93 2..2200C* 03/31/93 2~'~2300C ENDIF *IN99=*OFF 04/02/93 2~'~2400C* 04/02/93 2?'.2500C QQCENO READEDTOPMTCE 99 03/31/93 2?~2600C ENDDO DOW *IN99=*OFF 03/31/93 2.'2700C* 03/31/93 2?'~2800C* 03/31/93 2?~2900C ENDSR. CPYPMT SRCE3 03/31/93 2.3000C* 03/31/93 2.3100C/SPACE 03/26/93 233200C******** LDPARM SUBR ********************BR * 04/06/93 LDPARM SU

233300C* * 04/06/93 233400C* The LDPARM subroutine performs * 04/06/93 the following functions:

233500C* * 04/06/93 233600C* 1. Retrieve the name of tlhe local* 04/06/93 entity, user date 233700C* format, the current date in user * 04/06/93 format, and whether 233800C* COM is inxalled and interfacing * 04/06/93 in this entity.

233900C* The result will be passed back * 04/06/93 to the calling program.

234000C* * SRCE3 04/09/93 234100C*******************************:k******************************

234200C* * SRCE3 04109/93 234300C* INDICATORS USED : 99 * SRCE3 04/09/93 234400C* * SRCE3 04/09/93 234500C* EXECUTED FROM : MAIN1:.N * SRCE3 04/09/93 234600C* * SRCE3 04109/93 234700C*******************************~s******************************

234800C* SRCE3 04/09/93 5738PW1 V2R2M0 92061:1 SE1J SOURCE LISTING 6/01/93 11:50:28 Page 48 SOURCE FILE . . . . . . . . . XLIBEM/MfRPGSRC
MEMBER . . . . . . . . . . . . M:MC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2:f5000C* 04/06/93 2:f5100C* Do loop to control the flow of the subroutine. 04/06/93 2_f5200C* 04/06/93 2_f5300C DO 04/06/09 2x5400C* 04/06/93 2x5500C* Use the name of the local entity from LOCCOM 04/07/93 for the local 2,5600C* CE being processed and load this into QQENT. 04/06/93 2:f5700C* QQENT has to be lo;~ded first because it is 04/06/93 used in 2_f5800C* the next step - in the loading of QQCOM. 04/06/93 2;15900C* 04/06/93 2:f6000C MOVE ZLENT QQENT 04/06/93 2;f6100C* 04/06/93 2.16200C* Find out whether COM is installed and interfacing.04/06/93 If so 2x6300C* load QQCOM with 'Y'. Otherv~ise, load it with 04/06/93 'N".

2;16400C* 04/06/93 2x6500C MOVE 'N' QQCOM 04/06/93 2..6600C* 04/06/93 2..6700C QQENT C'.HAINENTFIL 99 04/06/93 2..6800C *IN99 I:FEQ *OFF 04/06/93 2..6900C EPCOM ANDEQ 'Y" Installed 04/06/93 2..7000C MOVE 'M' KAPP1 04/06/93 2~~7100C MOVE 'O' KAPP 2 04106/93 2..7200C KINTFA C'HAININT1FAC 99 04/06/93 2..7300C *IN99 I:FEQ *OFF 04/06/93 2..7400C ININTC ?'NDEQ 'Y' Interfacing 04/06/93 2..7500C MOVE 'Y' QQCOM 04/06/93 2..7600C E;NDIF *IN99=*OFF 04/06/93 2..7700C E',NDIF *IN99=*OFF 04106/93 2..7800C* 04/06/93 2~~7900C* If QQCOM is not 'Y', a GPLDA data area won't 04/06/93 be created in 2?'~8000C* the CL procedure. 'thus QQDFMT and QQDATE are 04/06/93 not needed.

2.'.8100C* 04/06/93 2?~g200C QQCOM IIFEQ 'N' 04/06/93 2..8300C LEAVE 04/06/93 2?~g400C 1=',NDIF QQCOM='N' 04/06/93 2?'~8500C* 04/06/93 2?'8600C* If QQCOM is 'Y', load the user date format and 04/06193 current date 2?8700C* in user format into QQDFMT and QQDATE respectively.04/06/93 23'8800C* Leave the do loop if :no TALFL:? record is found.04/06/93 We cannot 2?~8900C* load QQDATE without knowing the user date format.04/06/93 23.9000C* 04/06/93 2?~9100C 1 CHAINTALFLZ 99 04/06/93 239200C *IN99 IFEQ *ON 04/06/93 239300C LEAVF? 04/06/93 239400C ENDIF *IN99=*ON 04/06/93 239600C* 04/06/93 239700C* Retrieve the current date in YM1D format by 04/06/93 calling MZM620X, 239800C* convert it into user date format amd load it 04/06/93 into QQDATE.

239900C* 04/06/93 5738PW1 V2R2M0 92061:1 SEIJ SOURCE LISTING 6/01/93 11:50:28 Page 49 SOURCE FILE . . . . . . . . . XI,IBEM/MfRPGSRC
MEMBER . . . . . . . . . . . . M:~IC464 SEQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...9 ...+...0 2~t0000C CALL 'MZM620X' PZM620 04/06/93 2~~0100C Z-ADD~PDATE $BEFOR 04/06/93 2~t0200C MOVE 'l' $TYPE YMD to user 04/06/93 210300C MOVE QQDPMT $USER 04/06/93 210400C CALL 'MZM100' PZM100 04/06/93 210500C Z-ADD~$AFTER QQDATE 04/06193 2~t0600C* 04/06/93 240800C* 04106/93 240900C ENDSF; LDPARM SRCE3 04/06/93 241000C* 04/06/93 * * * * EIVD OF SOURCE

APPENDIX C
TO

FOR

CONVERSION OF TRANSFERRED DIGITAL DATA
by Janice S. Pitt John Lawton The following depicts the layout of the file containing the table elements 52A-52E, as well as an audit log corresponding to the exemplary system of Appendix B. These materials are m Marcam Corporation 5'738551 V2R2M0 920925 AUDIT LOG 06!03/93 11:21:08PAGE

Library/File. . XLIBEMF/API'DEF
. . .

Member . . APPDMF
. . .
. .

Job Title . . WORK WITH :DATA IN A FILE
. . .
. .

Appl Plm From Rel-Mod Lvl To Rel-Mod Lvl Appl Type Im't Extract Desc P>;m PQm MMU360 03-10 03-10 Order Transmission DD MMC460 (none) Files Load Send TrnsfRecv Trnsf Pam Generic Trnsf GPLDA RefmtAppl Dt P>;m 1?roc GPLDA Send Xfer Pam PQm PriorityLast Mt MMC462 MMC464 MMC180X (none) (none) H 930310 Blank Area ***** END OF DPU AUDIT REPORT *****

5738PW 1 V2R2M0 920615 SF?U SOUR'.CE LISTING 6/03/93 11:22:33 Page 1 SOURCE FILE . . . . . . . XLIB310/MMDDBSRC
MEMBER. . .. . . .. . . . APPDEF
SEQNBR*...+...1...+...2...+.
.3...+...4...+...5...+...6...+...7...+...8...+...9...+...0 1()DA** 07/18/90 2()DA*$ PP Permanent Physir;al File 07/18/90 3()DA** 07/18/90 4()DA** APPDEF Application Definition File 10117/90 5()DA** 07/18/90 6()DA*$ Description 07/ 18/90 7(10A** 07/18/90 8(10A** This file stores information defined for all 10/17/90 applications 9()DA** designed to function across multiple sites. The 10/07/92 information 1(100A** includes application attributes and the names 10/07/92 of the programs 1:.00A** that manipulates the data passed between sites. 10/07/92 1:!00A** 07/18/90 1.400A** 07/18/90 1100A REP (MMSTRF) 10/17/90 1:100A UNIQUE 10/ 17/90 1ti00A** 10/17/90 1'00A** 10/17/90 1800A R FAPPDEF TEXT('APPLICATION DEFINITION FILE') 11128/90 1900A** 07/18190 2(100A** 07/18/90 21.00A FDPGM R'. REFFLD (PGM ) 10/ 17/90 2x;00A COLEDG('Appl pgm') 11/28/90 2_i00A TEXT('Application Pgm') 11/28/90 2400A** 01/08191 2_'i00A** 01/08/91 2fi00A FDFREL R: REFFLD (R.KLL ) 01/08/91 2;'00A COLEDG('From Rel-Nod Lvl') 01/15/91 2f400A TEXT('From Release-Mod Level') 01/15/91 2500A** 01/08191 3(100A** 01/08/91 31.00A FDTREL R: REFFLD(RELL ) 01 /08/91 3x;00A COLEDG('To Rel-Mod Lvl') 01/15/91 3:.00A TEXT('To Release-Mod Level') 01/15/91 3400A** 11129/90 3'.00A** 11/29/90 3600A FDDRSC R: REFFLD(DESC ) 10/17190 3;'00A** 11/29/90 3f~00A** 11/29/90 3SO10A FDTYPE R: REFFLD(TYPE ) 10/17/90 4(100A COLHDG('Appl Type') 11/28190 4100A TEXT('Application Type') 11/28/90 4200A** 11/29/90 4..00A** 11/29/90 4',00A FDIPGM R. RFFLD(PROC ) 08/01/91 4_'.00A COLHDG('Init Pgm') 11/28/90 4600A TEXT('Initialization Pgm') 11/28/90 4.'00A** 09/03/91 4i!~00A** 09/03/91 4500A FDEPGM R. REFFLD(PROC ) 09/03/91 5738PW 1 V2R2M0 920615 SEU SOUR;CE LISTING 6/03/93 11:22:33 Page 2 SOURCE FILE . . . . . . . XLIB310/MM:DDBSRC
MEMBER. . . . . . . . . . . APPDEF
S.EQNBR*...+...1...+...2...+...3...+...4...+...5...+...6...+...7...+...8...+...
9...+...0 5000A COLHDG('Extract Pgm') 09/03/91 5100A TEXT('Extraction Pgm') 09/03/91 5200A** 11/29/90 5300A** 11/29/90 5400A FDBPGM REFFLD (PROC ) 08/01/91 R

5500A COLNOG ('Send Trnsf Pgm') 11/28/90 5600A TEXT ('Sending Transfer Pgm') 11/28/90 5700A** 11/29/90 5800A** 11/29/90 5900A FDRPGM R REFFLD (PROC ) 08/01/91 6000A COLEDG ('Recv Trnsf Pgm') 11/20/90 6100A TEXT ('Recving Transfer Pgm') 11/20/90 6200A** 11/29/90 6300A** 11/29/90 6400A FDGPGM R REFFLD (PROC ) 08101/91 6500A COLEDG ('Generic Trnsf Proc') 08/01191 6600A TEXT ('Generic Transfer Proc')08/01/91 6700A** 01/28/91 6800A** 01128/91 6900A FDFFGM R REFFLO (PROC ) 08/01/91 7000A COLEDG ('GPLDA Send Xfer Pgm')03/09/92 7100A TEXT ( 'GPLDA Sending Transfer03/09/92 Pgm') 7200A** 03/09/92 7300A** 03/09/92 7400A FDXFGM R REFFLD (PROC ) 03/09/92 7500A COLEDG ('GPLDA Refmt Pgm') 03/09/92 7600A TEXT ('GPLDA Reformatting Pgm')03/09/92 7700A** 08/20/92 7800A** 08/20/92 7900A FDPRTY R REFFLD (PRTY ) 08/20/92 f,000A COLEDG ('App! Priority') 08120/92 f~100A TEXT ('Application Priority') 08/20/92 E~200A* H = High Priority 08/20/92 f~300A* L = Low Priority 08/20192 f:400A** 11/29192 f~500A** 11/29/92 f~600A FDD/IMT R REFFLD (DTMT ) 10/17/90 f~700A** 08/20/92 f~800A** 08/20/92 f~900A FDPBLNK R REFFLD (BLNK ) 08/20/92 A** 10/17/90 9100A** 11/29/90 9200A* $Key fields 11/29/92 5300A** 11/29/90 A** 11/29/90 S>500A R FDPGM 10/ 17/90 <.~600A R FDFHML 01/08/91 **** END OF SOURCE ****

Claims (20)

1. Data conversion apparatus for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of said information for use by a second selected version of said computer program, said data conversion apparatus comprising A. file management means, coupled to said first and second file storage means, for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management meals includes conversion means for generating said digital records for storage in said second relational database by converting at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a function of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program.
2. Data conversion apparatus according to claim 1, wherein said conversion means comprises A. at least one table entry means for storing a procedure-representative signal representative of a procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, and B. execution means, coupled to said at least one table entry means, responsive to said procedure-representative signal for executing said procedure to perform said conversion.
3. Data conversion apparatus according to claim 2, wherein A. said conversion means comprises a plurality of said table entry means, each accessible in accord with identities of the versions of said computer program between which said procedure converts the information contained in said components of said digital records, B. said execution means comprises means for accessing a selected said table entry means based on identities of said selected versions of said computer program with which said first and second relational databases are associated.
4. Data conversion apparatus according to any of claims 2 and 3, wherein A. at least one said entry means comprises means for storing as said procedure-representative signal an identity of a subroutine of steps for converting information contained in at least a component of said digital record of said first relational database to information contained in at least one corresponding component of said digital record of said second relational database, and B. said execution means comprises means for executing said subroutine for executing said procedure to perform said conversion.
5. Data conversion apparatus according to claim 4, wherein said execution means further comprises means for configuring a central processing unit coupled with said second file storage means to execute said subroutine for executing said procedure to perform said conversion.
6. Data conversion apparatus according to claim 1 wherein said first and second file storage means are disposed remotely from one another and wherein said file management means comprises A. data transfer means coupled to said first file storage means for converting said plurality of digital records of said first relational database to a standard file transfer format for transfer to said conversion means, B. said conversion means includes disassembler means responsive to receipt of said plurality of digital records of said first relational database in said standard file transfer format for identifying information contained in at least selected components of said digital records thereof.
7. A method of data conversion for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of said information for use by a second selected version of said computer program, said data conversion method comprising A. a file management step for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management step including a conversion step for generating said digital records for storage in said second relational database by converting at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a function of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program.
8. A data conversion method according to claim 7, comprising A. a table-loading step for storing, in a table, at least one entry identifying a procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, and B. wherein, said conversion step includes the step of executing a procedure identified by a selected such table entry perform said conversion.
9. A data conversion method according to claim 8, wherein A. said table-loading step comprises the additional step of storing a plurality of said table entries, each accessible in accord with identities of the versions of said computer program between which said procedure converts the information contained in said components of said digital records, B. said executing step includes the step of accessing a selected said table entry means based on identities of said selected versions of said computer program with which said first and second relational databases are associated.
10. A data conversion method according to any of claims 8 and 9, wherein A. said table-loading step includes the step of storing, in at least one said table entry. an of said digital record of said first relational database to information contained in at least one corresponding component of said digital record of said second relational database, and B. said execution step comprises means for executing said subroutine for executing said procedure to perform said conversion.
11. A data conversion method according to claim 10, wherein said execution step further comprises the step of configuring a central processing unit to execute a subroutine identified in one of said table entries to perform a conversion.
12. A data conversion method according to claim 7, wherein said first and second file storage means are disposed remotely from one another, and wherein said tile management step comprises A. a data transfer step for converting said plurality of digital records of said first relational database to a standard file transfer format for transfer to said conversion means, B. said conversion step includes disassembler means responsive to receipt of said plurality of digital records of said first relational database in said standard file transfer format for identifying information contained in at least selected components of said digital records thereof.
13. A method of data conversion for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of said information for use by a second selected version of said computer program, said data conversion method comprising A. a file management step for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management step including a conversion step for generating said digital records for storage in sari second relational database by converting at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a function of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program C. said conversion step includes the steps of i) accessing a selected entry in a table of entries, each storing a procedure-representative signal representative of procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, said entry being selected as a function of the identities of said selected versions of said computer program with which said first and second relational databases are associated, and ii) executing the procedure represented by the procedure-representative signal stored in said selected entry to perform said conversion.
14. A data conversion method according to claim 13, including A. a table-loading step for storing, in at least one said table entry, an identity of a subroutine of steps for converting information contained in at least a component of said digital record of said first relational database to information contained in at least one corresponding component of said digital record of said second relational database, and B. said execution step comprises means for executing said subroutine for executing said procedure to perform said conversion.
15. A data conversion method according to claim 14, wherein said execution step further comprises the step of configuring a central processing unit to execute a subroutine identified in one of said table entries to perform a conversion.
16. A data conversion method according to claim 13, wherein said first and second file storage means are disposed remotely from one another, and wherein said file management step comprises A. a data transfer step for converting said plurality of digital records of said first relational database to a standard file transfer format for transfer to said conversion means, B. said conversion step includes disassembler means responsive to receipt of said plurality of digital records of said first relational database in said standard file transfer format for identifying information contained in at least selected components of said digital records thereof.
17. Data conversion apparatus for use with a digital data processing system of the type having first file storage means for storing a first relational database, said first relational database including a plurality of digital records representing information used by a first selected version of a computer program, second file storage means capable of storing a second relational database, said second relational database including a plurality of digital records representing at least a portion of said information for use by a second selected version of said computer program, said data conversion apparatus comprising A. file management means, coupled to said first and second file storage means, for generating and storing in said second relational database a plurality of digital records for use by said second selected version of said computer program, wherein each such generated digital record includes at least selected information from a corresponding digital record of said first relational database, B. said file management means includes conversion means for generating said digital records for storage in said second relational database by converting at least selected information contained in the corresponding digital record of said first relational database, wherein said conversion is a function of (i) the identity of said first selected version of said computer program, and (ii) the identity of said second selected version of said computer program, C. said conversion means comprising i) a plurality of table entry means, each for storing a procedure-representative signal representative of a procedure for converting information contained in at least a component of a digital record of said first relational database to information contained in at least one corresponding component of a digital record of said second relational database, ii) execution means for accessing a selected said table entry means as a function of the identities of said selected versions of said computer program with which said first and second relational databases are associated, and for executing the procedure represented by the procedure-representative signal stored therein to perform said conversion.
18. Data conversion apparatus according to claim 17, wherein A. at least one said table entry means comprises means for storing as said procedure-representative signal an identity of a subroutine of steps for converting information contained in at least a component of said digital record of said first relational database to information contained in at least one corresponding component of said digital record of said second relational database, and B. said execution means comprises means for executing said subroutine for executing said procedure to perform said conversion.
19. Data conversion apparatus according to claim 18, wherein said execution means further comprises means for configuring a central processing unit coupled with said second file storage means to execute said subroutine for executing said procedure to perform said conversion.
20. Data conversion apparatus according to claim 17, wherein said first and second file storage means are disposed remotely from one another and wherein said file management means comprises A. data transfer means coupled to said first file storage means for converting said plurality of digital records of said first relational database to a standard file transfer format for transfer to said conversion means, B. said conversion means includes disassembler means responsive to receipt of said plurality of digital records of said first relational database in said standard file transfer format for identifying information contained in at least selected components of said digital records thereof.
CA002124785A 1993-06-04 1994-05-31 Method and apparatus for conversion of transferred digital data Expired - Fee Related CA2124785C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/070,982 US5493671A (en) 1993-06-04 1993-06-04 Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
US08/070,982 1993-06-04

Publications (1)

Publication Number Publication Date
CA2124785C true CA2124785C (en) 2000-10-24

Family

ID=22098543

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002124785A Expired - Fee Related CA2124785C (en) 1993-06-04 1994-05-31 Method and apparatus for conversion of transferred digital data

Country Status (6)

Country Link
US (1) US5493671A (en)
EP (1) EP0629961B1 (en)
JP (1) JPH0728676A (en)
AT (1) ATE235714T1 (en)
CA (1) CA2124785C (en)
DE (1) DE69432332T2 (en)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784767A (en) * 1993-09-16 1995-03-31 Fujitsu Ltd Device and method for managing generation among processors in plural processor systems
JPH07271777A (en) * 1994-03-31 1995-10-20 Fujitsu Ltd Character code management system of decentralized information processing system
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
DE4438120A1 (en) * 1994-10-26 1996-05-02 Ibm Computerized conversion of tables
US5675637A (en) * 1995-05-16 1997-10-07 Inventions, Inc. Method for automatically obtaining and presenting data from multiple data sources
US5708828A (en) * 1995-05-25 1998-01-13 Reliant Data Systems System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields
JPH09179760A (en) * 1995-12-27 1997-07-11 Fuji Xerox Co Ltd Automatic document converter
US6023694A (en) * 1996-01-02 2000-02-08 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US5802511A (en) * 1996-01-02 1998-09-01 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US6631382B1 (en) 1996-01-02 2003-10-07 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US5778355A (en) * 1996-06-11 1998-07-07 International Business Machines Corp. Database method and apparatus for interactively retrieving data members and related members from a collection of data
US6014674A (en) * 1996-11-14 2000-01-11 Sybase, Inc. Method for maintaining log compatibility in database systems
US6429402B1 (en) 1997-01-24 2002-08-06 The Regents Of The University Of California Controlled laser production of elongated articles from particulates
DE19721129C2 (en) * 1997-05-20 1999-07-15 Detlef Arndt Method and arrangement for data transmission between computers
US5923879A (en) * 1997-07-02 1999-07-13 Ncr Corporation Conversion system and method between corba and c/c++ architectures for corba data pairs/couples
US6412082B1 (en) * 1997-12-17 2002-06-25 Sony Corporation Method and apparatus for selecting computer programs based on an error detection mechanism
DE19810784B4 (en) * 1998-03-12 2006-03-16 Telefonaktiebolaget Lm Ericsson (Publ) computer system
US6523172B1 (en) 1998-12-17 2003-02-18 Evolutionary Technologies International, Inc. Parser translator system and method
JP3674351B2 (en) * 1999-01-08 2005-07-20 富士通株式会社 Master server
DE19934788B4 (en) * 1999-07-27 2004-05-27 T-Mobile Deutschland Gmbh Process for automatically adapting data to the capabilities of a user software
US7904317B1 (en) * 1999-10-14 2011-03-08 The TriZetto Group Method and apparatus for repricing a reimbursement claim against a contract
US6473765B1 (en) 1999-12-23 2002-10-29 Ncr Corporation Matching/merging two data warehouse physical data models
US20020062241A1 (en) * 2000-07-19 2002-05-23 Janet Rubio Apparatus and method for coding electronic direct marketing lists to common searchable format
US7870107B2 (en) * 2000-08-04 2011-01-11 Agile Software Corporation Data management system and method for propagating product manufacturing information to disparate information systems
US20030126138A1 (en) * 2001-10-01 2003-07-03 Walker Shirley J.R. Computer-implemented column mapping system and method
US7206785B1 (en) * 2001-10-24 2007-04-17 Bellsouth Intellectual Property Corporation Impact analysis of metadata
WO2003040939A1 (en) * 2001-11-09 2003-05-15 Tsao Sheng A Data object oriented repository system
US20030187849A1 (en) * 2002-03-19 2003-10-02 Ocwen Technology Xchange, Inc. Management and reporting system and process for use with multiple disparate data bases
US7263512B2 (en) * 2002-04-02 2007-08-28 Mcgoveran David O Accessing and updating views and relations in a relational database
US7620664B2 (en) * 2002-04-02 2009-11-17 Mcgoveran David O Computer-implemented method for translating among multiple representations and storage structures
JP2004038876A (en) * 2002-07-08 2004-02-05 Hitachi Ltd Data format conversion method and device for program and the like, and controller management system using the data format conversion device
US7111012B1 (en) * 2002-08-23 2006-09-19 Cypress Semiconductor Corporation System and method for data transformation of device databases for forward compatibility
US20040039748A1 (en) * 2002-08-23 2004-02-26 Netdelivery Corporation Systems and methods for implementing database independent applications
WO2004046969A1 (en) * 2002-11-15 2004-06-03 Bigchampagne, Llc. Monitor file storage and transfer on a peer-to-peer network
JP4167889B2 (en) * 2002-12-06 2008-10-22 株式会社日立製作所 Data conversion method and computer system therefor
US7243158B1 (en) 2003-01-28 2007-07-10 Thomas Gutchigian Method, system and computer program for identification of data and translation of data between storage locations
US20050251812A1 (en) * 2004-04-27 2005-11-10 Convertabase, Inc. Data conversion system, method, and apparatus
US7632265B2 (en) * 2004-05-28 2009-12-15 St. Jude Medical, Atrial Fibrillation Division, Inc. Radio frequency ablation servo catheter and method
US20060085376A1 (en) * 2004-10-14 2006-04-20 The Trizetto Group, Inc. Centralized management of software adapters
US20060085361A1 (en) * 2004-10-14 2006-04-20 The Trizetto Group, Inc. Anomaly detector in a health care system using adapter
US8099736B2 (en) 2004-10-14 2012-01-17 The Trizetto Group, Inc. Systems and methods providing intelligent routing of data between software systems
US8768729B2 (en) * 2004-10-14 2014-07-01 Trizetto Corporation System and method for using a first electronic representation of contract terms for generating a second electronic representation of the contract terms
US20060253860A1 (en) * 2005-05-09 2006-11-09 The Trizetto Group, Inc. Systems and methods for interfacing an application of a first type with multiple applications of a second type
US20060282460A1 (en) * 2005-06-09 2006-12-14 International Business Machines Corporation Method and system for generic data objects
US7827562B1 (en) 2005-06-16 2010-11-02 The Trizetto Group, Inc. System and method for flexible publishing and consumption of data between disparate applications
US8015061B2 (en) * 2005-10-21 2011-09-06 Sap Ag File export channel
US20070094278A1 (en) * 2005-10-21 2007-04-26 Andreas Huppert Data transfer services
US20080033750A1 (en) * 2006-06-02 2008-02-07 The Trizetto Group, Inc. Enhanced systems and methods for processing of healthcare information
US7797743B2 (en) 2007-02-26 2010-09-14 Microsoft Corporation File conversion in restricted process
US7797742B2 (en) * 2007-02-26 2010-09-14 Microsoft Corporation File blocking mitigation
US9275085B2 (en) * 2008-05-05 2016-03-01 Hewlett Packard Enterprise Development Lp Data processing system and method
JP5595701B2 (en) 2009-09-16 2014-09-24 株式会社日立製作所 File management method and storage system
US8175734B2 (en) * 2009-10-08 2012-05-08 3D M. T. P. Ltd. Methods and system for enabling printing three-dimensional object models
JP5571985B2 (en) * 2010-03-25 2014-08-13 株式会社日立システムズ Spreadsheet file version conversion system, version conversion method, and program therefor
US8756075B1 (en) 2011-05-18 2014-06-17 Trizetto Corporation System and method for processing payment bundles
US10296976B1 (en) 2011-09-23 2019-05-21 Cognizant Trizetto Software Group, Inc. System and method for calculating estimated payment based on partial coding data
US9576046B2 (en) 2011-11-16 2017-02-21 Ptc Inc. Methods for integrating semantic search, query, and analysis across heterogeneous data types and devices thereof
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof
US9098312B2 (en) 2011-11-16 2015-08-04 Ptc Inc. Methods for dynamically generating an application interface for a modeled entity and devices thereof
US10318923B1 (en) 2012-08-01 2019-06-11 Cognizant Trizetto Software Group, Inc. Payment assurance and claim pre-validation
EP2973047A4 (en) 2013-03-15 2016-11-02 Ptc Inc Methods for managing applications using semantic modeling and tagging and devices thereof
US9762637B2 (en) 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US9462085B2 (en) 2014-03-21 2016-10-04 Ptc Inc. Chunk-based communication of binary dynamic rest messages
US10313410B2 (en) 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US9961058B2 (en) 2014-03-21 2018-05-01 Ptc Inc. System and method of message routing via connection servers in a distributed computing environment
WO2015143416A1 (en) 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US9560170B2 (en) 2014-03-21 2017-01-31 Ptc Inc. System and method of abstracting communication protocol using self-describing messages
US10025942B2 (en) 2014-03-21 2018-07-17 Ptc Inc. System and method of establishing permission for multi-tenancy storage using organization matrices
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
US9350812B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of message routing using name-based identifier in a distributed computing environment
US10803229B2 (en) * 2015-07-16 2020-10-13 Thinxtream Technologies Pte. Ltd. Hybrid system and method for data and file conversion across computing devices and platforms

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
US5058000A (en) * 1987-06-30 1991-10-15 Prime Computer, Inc. System for accessing remote heterogeneous database including formatting retrieved data into applications program format
US5226161A (en) * 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
NL8901827A (en) * 1989-07-14 1991-02-01 Oce Nederland Bv SYSTEM FOR PROCESSING FILE ORGANIZED DATA, MANAGEMENT MODULE USED THEREIN AND STORAGE MEDIA, PROVIDED WITH THE PROGRAMMING OF THIS MANAGEMENT MODULE.
US5278978A (en) * 1990-03-26 1994-01-11 International Business Machines Corporation Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system
TW226047B (en) * 1990-03-27 1994-07-01 Ibm
JPH0546449A (en) * 1991-08-21 1993-02-26 Chubu Nippon Denki Software Kk Reception file conversion processing system

Also Published As

Publication number Publication date
DE69432332D1 (en) 2003-04-30
ATE235714T1 (en) 2003-04-15
EP0629961B1 (en) 2003-03-26
DE69432332T2 (en) 2003-09-04
JPH0728676A (en) 1995-01-31
EP0629961A1 (en) 1994-12-21
US5493671A (en) 1996-02-20

Similar Documents

Publication Publication Date Title
CA2124785C (en) Method and apparatus for conversion of transferred digital data
CN100576208C (en) Be used to provide method and system to the high performance data modification of relation database table
US6321234B1 (en) Database server system with improved methods for logging transactions
EP0449449B1 (en) Use of application programs on data in a heterogeneous data base system
US5832508A (en) Method for deallocating a log in database systems
US6014674A (en) Method for maintaining log compatibility in database systems
US6785882B1 (en) Process-driven tool interface for an object management system
US20060143187A1 (en) Integrating tablespaces with different block sizes
US7209933B2 (en) Object versioning
US5787415A (en) Low maintenance data delivery and refresh system for decision support system database
US7769714B2 (en) Automatic error correction for replication and instantaneous instantiation
US7571173B2 (en) Cross-platform transportable database
JP4856541B2 (en) Automatic and dynamic provisioning of databases
EP0841626B1 (en) Data transfer mechanism
CA2441960C (en) Data loading from a remote data source
US20070083563A1 (en) Online tablespace recovery for export
US20050055351A1 (en) Apparatus and methods for transferring database objects into and out of database systems
US8554806B2 (en) Cross platform transportable tablespaces
US20060224626A1 (en) Versioned file group repository
US20080201358A1 (en) Data Processing For Objects With Unknown Data Structures
WO2011008806A1 (en) System, method, and computer program product for creating a virtual database
US7657576B1 (en) Asynchronous change capture for data warehousing
US6941309B2 (en) Object integrated management system
JP2003296171A (en) Electronic business form management method and program
US6453324B1 (en) Method for maintaining a version history of objects in a repository

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed