PERSONNEL RESOURCE INFORMATION MANAGEMENT (PRIM) SYSTEM INTEGRATION TEST PLAN (SITP-C20-5)

Document Type: 
Collection: 
Document Number (FOIA) /ESDN (CREST): 
CIA-RDP88-00893R000200060006-1
Release Decision: 
RIPPUB
Original Classification: 
K
Document Page Count: 
213
Document Creation Date: 
December 16, 2016
Document Release Date: 
July 19, 2005
Sequence Number: 
6
Case Number: 
Publication Date: 
September 23, 1983
Content Type: 
REQ
File: 
AttachmentSize
PDF icon CIA-RDP88-00893R000200060006-1.pdf7.09 MB
Body: 
Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 U N C LAS S I F I E D Personnel Resource Information Management (PRIM) System Integration Test Plan (SITP-C20-5) by PRIM Project Team ODP/A/SDD OP/ID/ADRB 23 September 1983 U N C LAS S I F I E D Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 Apprd CHAPTER 1. INTRODUCTION 1. PURPOS L SCOPE 1 REFEREI~ Ili 2.. ALAN 2.:L FUNCTI 2.2 METHOD 2.2.1 2.2.2 2.2.3 2. 2.5 2.2.6 2.2.7 2.2.8 2.2.9 2_.2.10 ved For ilelas6 k@5k&O :ICFA -DP88-068 b 3 O66 66 8 -1 CONTENTS CES . . . . . . . . .. LOGY . . . . . . . . . . . . . . . . . . . . TEST TEAM . . . . . . . . . . . . . .. . . . . . RESO[JRCE REQUIREMENTS . . . . . . . . . . . . . . SYSTEM STRESS . . . . . . . . . . . . . . . . . 2.2.3.1 RELIAB'1LITY . . . . . . . . . . . . . . 2.2.3.2 SIZING . . . . . . . . . . . . . . . . . 2.2.3.3 ACCURACY . . . . . . . . . . . . . . . . 2.2.3.4 Tl:M:HNG. . . . . . . . . . . . . . . . . . 2.2.3.5 AVAILABILITY . . . . . . . . . . . . . . 2.2.3.6 BACKUP . . . . . . . . . . . . . . . . . 2.2.3.7 RECOVERY . . . . . . . . . . . . . . . . CONTROLS . . . . . . . . . . . . . . . . . . . 2.2.4.1 SOFTWARE (DEVELOPMENT AND PRODUCTION) . 2.2.4.2 SYSTEM SOFTWARE . . . . . . . . . . . . 2.2.4.3 HARDWARE . . . . . . . . . . . . . . . . 2.2.4.4 SECURITY CONTROLS . . . . . . . . . . . TEST DATA . . . . . . . .. . . . . . . . . . . . . CONSTRAINTS . . . . . .. . . . . . . . . . . . . REGRESSION TESTING .. . . . . . . DATA REC DRDTNG . . .. . . . . . . . . . . . . . EVALUATI DN . . . . . . . . . . . . . . . . . . TEST CASE MAINTENANCE . . . . . . . . . . . . . LIST OF TABLES :L :L 2 3 3 4 5 9 9 10 12 13 14 14 14 15 15 15 15 16 17 19 1.9 1.9 19 20 Appr~ved For R61eIp ?025608I0? ~CJA09P88-00893R00020006?00611 Approved For W4 169s& A05/68J0f : 6I (-hDP88-00ii3 'ff6 60006 1 TABLE PAGE 1. Documents, Publications and Reference Material . . . . . . . . 2 Approved For ReWaReG2~0j/q/S2f CAP-R 188-00893R000200060006ikii Appr ved For Release i0e51%8S/0i ~CITAFRbP88-008?aRO@10 Chapter 1 INTRODUCTION PURPOSE The purpose of through system pod in the Requ tem Requirement specified in th SCOPE This ldocument p which will subj test.; neither d near 1y live envA The intent state the overal ties procedurE:s Inte~;.region Tee.t designed in a ph Plan wiLL be wri ture of the PRIM will be updated philosophy estab each successive suppoLrt or test regarding; QAD pa ?~'he test pi Chapter 1 - PR1:M System Into contetts of the Chapter 2 _ defines testing formance, secur:Lt meets! he System Integ:ratio.n Test plan is to demonstrate estingt:aai: the system satisfies the requirements map- re:ments Traceability Matrix (RTM) to the Detailed Sys- Documenu; (DSRD) and accurately reflects the desi n Detailed System Design Specifications (DSDS). esent.s the PRIM'' System Integration Test Plan/tasks ct the p:rogra.mmo:rs' products to a thorough set of signed nor executed by the programmers and run in ~as ronment as possible with a minimum of simulation. of this test plan is to identify responsibilities '-; I test environment, identify objectives, responsibli- and tools to be used for each of the various System ased approach; therefore, this System Integration-Test tten to test Release 1 as well as the overall stru System. Thereafter, the System Integration Test for each successive release. However, the testing li h s e,d in Release 1 will continue to be. utilized i release. rce limitations,, ODP/QAD will not be providing QA la.ns in Release 1. Releases 2 through 5 are (TBR ticipation. lan in consists of 21 Chapters: "Introduction" ;resents the purpose and scope of the ;ration Test Plan and references applicable to the yste.l Int:egra.tion Test Plan. "Plafit presents the major testing methodologies and rite:r.ia to be applied against the functional, per- y, hardware, human engineering and interface requi e- Apprdved For F I@af%2VI/0P/g2 CSI %RDP88-00893R00020006?006-1 Approved For RBI as; i0e51bk1 :FCIrA FRIYP88-00843Rb?t)1Nbtb0b%8~ 1.3 REFERENCES The PRIM Team is utilizing a number of documents, publications and other reference material in writing the PRIM System Integration Test Plan. They are listed in Table 1. r-------------------------------------------------------------------- L I TABLE 1 Documents, Publications and Reference Material 1. Data Requirements Document 2. Data Specifications Document 3. Detailed System Design Specifications 4. Detailed System Requirements Document 5. Interface Control Document 6. ODP Applications Documentation Standards 7. Requirements Traceability Matrix 8. System Development. Plan --------------------------------------------------------------------Ej Approved For ReJegse J0(A5/98g0j :ICI-?[ 88-00893R000200060006-'4Z Appr ved For RJTe9fs& 2 O%/68102F: 6IAADP88-00~~3tINt & _11 Chapter 2 FUNC'rIONS PRIM is a centralized data base for use by the Personnel Officer, CIa- r:eer Aztnagement. f:Ei(-er, Office 'Director or Training Officer of a ~c.om- Iaonezit in dirE.ct support of the components day-to-day personnel aan- agement, activities. The overall objective of the test plan is to ensure that thet system meets all of the requirements identified in the Detai}l?:d System equi'.rethents Document and Detailed System Design S ec- ifications as ma ped in the Requirements Traceability Matrix and list- ed b? }low. a) Centralizing Official Data for Component Access (Release 1, & 5) b) Data Trars ers Between Components (Release 1) c)! Component Data Manipulation (Releases 2 & 4) d)'I Queries an Reports (Release 1) e) Controlled Component Data Access (Release 1.) f) Other Requirements: Performance, Security, Hardware, Human gineering, Interface, Legal 2.2 METHODOLOG The Siystem Integration Test Plan, is being written. for Release 1 of PRIM; however, t e testing philosophies established in Release 1 w be utilized insuccessive releaiI,es of PRIM. The PRIM System Integ tion Test. Plan will. ensure that program/system specifications were terpreted correc ly; coding standards and conventions were followe subject procedur s/functions have been sufficiently tested by the gramnyers involve ; previously prepared integration test packets Thel term compo separate entit rectorate leve ter.. exit :in the context of this document is defined as in the Agency"s organizational structure be it a an. office, a staff, a division., a service or a a di- en- Approved For1J Ieiase 3025T810?: IC A 2DP88-00893R00020006?00?-1 Approved For Reteksg 2I0A/68/% is bIA-kDl~88-0089iko% V1 00 i3 covering all appropriate areas were successfully tested, user produc- tion documentation, where required for a procedure/function is com- plete and accurate; program/system documentation is complete and accu- rate for procedures/functions; and that the procedures/functions will perform as specified by the user prior to "official pass" to the PRIM Library for acceptance testing by the user. 2.2.1 TEST TEAM The System Integration Test Team will consist of the two ODP and two OP analysts. Skills required will be systems analysis, system design, data base design, and project management. A detailed state-of-the-art knowledge of computer systems architecture and software engineering are mandatory. Skills will be required in interpreting the previously prepared integration test packets and in certifying that the manuals are complete and accurate. The analysts will be required to service "Requests for Change (RFC)" and to estimate impact on schedule, etc. All system analytical and design work is to be completed prior to Sys- tem Integration testing. The PRIM Project Leader will keep management apprised on the status of System Integration testing. The analysts are responsible for: a) Re-examining the internal workings of the program structure - - testing of procedures, testing system functions, the HRS2 Inter- face coming in, security testing and data transfer between com- ponents. In-depth testing of system security is considered critical. System test cases are designed by analyzing the ob- jectives and then formulated by analyzing the user documentation along with the program/system documentation. b) Ensuring that procedures are set up to control the System Inte- gration Test environment of the various test packets and the status of the test plan and tests at any given point in time. c) Re-certifying that there is sufficient disk space to contain source code, ODP load modules, OP load modules, ODP test data, if applicable, and OP test data (which after acceptance will be used to test future PRIM releases of software). d) Reviewing the established procedures and the required JCL for ODP to load their source code and test load modules back to the PERTEST test libraries, if applicable. e) JCL executes system without errors or unnecessary operator in- tervention and file labels are correct. JCL - defined file ca- pacities adequate, assuming moderate expansion. f) Execution sequence (system flow) accurate and workable. Approved For Re1ljeAst 2LOOA5/98~02i: cI -RDjP88-00893R000200060006-14 Apprd ved For UIAs6 0651J8T/O :ICFA 2DP88-0089?PbbbTb?b6bbb%-1 g)I'Re-testing the established procedures and the required JCL t transfer:tested :load modules to the PRIMTEST library, if appli- cable. During the System Integration Test phase the PRIMTES library may contain only functions that have been "officiall passed", E e., certified by ODP; whereas the ODP PERTEST library may contaii functional areas that have to be retested. h) Creating a d generating te-I.t data for System Integration tes s. The: test d t:a. will be established in such a manner that any nest or group o tests may be executed at any given time. NOTE: 3nly test..ng; generalities' have been. addressed above; more i - depth testing criteria is covered beginning with Section 2.2.2. I a more .n-depth knowledge is required of any area., it will be necess ry to refer to the supporting documentation, i.e., Program Manual, Pr d- uct Mnual, User Documentation, estc. 2.2.21 RESOURCE RE UTREMENI'S a)11 Human 1. Production Division/'MD' - Data Base Management support a d DAC su port dur__ng the,System Integration testing phase. 2. Operat ons Division/OD' - Operating the computer equipme is that t #e PRIM development system will utilize during Sys em Integr tion Testing. 3. Engina ring= DivJ.s:i.on/OEPP - System performance measurement a.nd mo itoring. 4. Inform tion and Anal. .s Branch/OP - HRS2 RAMIS Report defi- nition support. Automated Data Resources Branch/OP - PRIM DBM and ADRB ana- lysts to prepare selec''ted HRStransactions to complete a PRIM test case, i.e. I.terface Transaction for a "ZZ" TO A. PRIM =J ers Group - Directorate Referents and Directorate ADP Control Officer, represent various components during dev 1_- opment PRIM U:e:ts Group will formalize changes to current requirements if the need arises. Request for Change (RFC) will 'a controlled. via', Configuration Management Procedur s. 7. Officelof Communicat:io s i) omestic Networks Division (DND) within OC handles all RIM clomestic communications . DND is responsible or 4 he i:nsta].la.tion and/or procurement of communications Ines, modems, and cryptographic equipment in support Apprved ForURRIe,a a j0505g01/Ol2 :LCEIAJZDP88-00893R00020006Q0056-1 Approved For ke egfs~ AA/68102E: 6IT--IkDP88-OA%3 6O 1 of all PRIM peripheral equipment (terminals, remote printers, and remote job entry stations). DND inter- faces directly with Engineering Division (ED/ODP) in response to communications requirements or problems encountered in the PRIM Project. ii) Communications Security Division (CSD) within OC is responsible for TEMPEST testing/approval of all termi- nals and printers accessing PRIM. CSD interfaces di- rectly with ED/ODP in response to communications re- quirements or problems encountered in the PRIM Project. 8. Office of the Inspector General (OIG) - The Information Sys- tems Audit Division of the Audit Staff may examine PRIM pro- cedures, records, reports, and test cases during the System Integration Test phase. 9. Office of Security - The Information Systems Security Group (ISSG) will play a consulting role in the evaluation of the PRIM System security feature during System Integration Test and Acceptance Testing. b) Equipment 1. Hardware The PRIM System will be accessed by the individual com- ponents through existing equipment. Peripherals in common use include video terminals (Delta Data 5000 or 7260 series) printers (TI Silent 700, Design 100). The components will be responsible for acquiring any additional equipment needed to access the PRIM System. Any equipment, specifically ter- minals or printers, must comply with standard Agency comput- er security regulations. All System Integration Testing, Acceptance Testing and Production activity performed outside of the Headquarters building must utilize only equipment approved for classified use. (Refer to Resource Requirements, paragraph a) Human, above for further details regarding point of contact.) 2. Software In House GIMS Yes DBM System Software related to controlling read and/or write to PRIM and to data in PRIM Yes VM Yes c) Materials Applicable Documents and Forms Approved For 2ROs5/g8/IO2F: ~If-5DP88-00893R00020006000%-1 Approved For RYI rile k65k8I0i :FCIrAFP,6P88-00843IR6?8~DI)ba 0b%N - File Description The index or table of contents noting the acrony relative sequence, test description, etc. of eac data element in the project file. Form 369 - Data ]'clement Description for each data 'element listed in the file desc:ript:i.on Used to define!, each data. element within a given apl.icat_on of the system and its associated edit specifications. There is a copy of this form mentioned above:. A - Input Requirements An error message number is produced if a require data element: is missing from the input. task or transaction specified in the system design. (required or optional) to accomplish a particula Defines only those data elements that may be input B - Program Specification (PRIM has added this sp c to the front of the POL in lieu of using the nocrm.) Provides additional specifications necessary for the program to''be written that are not previousl recorded on the. data element description form or the input requirements form. C - Message Descriptions Used to document all messages generated by the project transactions in message number sequence, t:he:i.r program source number, and corrective action to be. taken upon display of the message. A g:r:aphi.c layout of each menu to be used with a project transaction which is input on a CRT terminal. (All menus must be tested on both the Delta Data 5000 and 7260T series.) Form 2271' - Program Narrative (PRIM has added, this narrati the front of the POL in lieu of using the Form. Provides a general description of the program relating; to any project function. Form 37v1 - Verification Procedures Document verification procedures that must be performed to determine successful program Approved For F I aeeL2,O 5O IO12 F 9A.E-P$P88-00893R00020006?006-) Approved For Fkekarse-2a0?/08/e2F GII4 F P88-00i933A6d626b660b8 31 execution and the identification of any messages that pertain to the program. Form 3417 - Report Specifications Form 3417A - Report Data Elements Used to supplement Form 3417 (above) in the event of insufficient space. Form 3984 - Problem Report (Discrepancy Report) (To be used for Release 1 only) The IOC Testers will record problems on this form. The OP PRIM Analysts will analyze and if appropriate forward copy to ODP PRIM Analysts. This documents and controls the correcting and retesting of the problem(s). When the problem has been corrected, the ODP PRIM Analysts will forward it (Orig plus 1) back to the OP PRIM Analysts who in turn will ask the user testers to retest the transaction. PANVALET - Current list of PANVALET Specifications and Source - to include program/module, PANVALET numbers, date last updated and level numbers. COMVAD DATADOC/PROGRAMDOC PRIM Users Manual PRIM Program Manual PRIM Production Manual Applications Manual Report-Writer Software RAMIS Graphics Audit Trail - Containing sufficient information to permit a regular security review of system activity by Office of Security. Contingency Plan - Including backup procedures in the event the main system is damaged or destroyed. Approved For Re "q,220RA( 8/p2I gIA- DB88-00893R000200060006-1 8 Apprgved For F e1Vaiel2Cb&0?/OZ2 FCIIAERbP88-0080 1 0. 9 w or pass Iords,) - For Off,-,,,e of Personnel Analysts only. GIMS Procedures, Dictionaries, M and M/Dict, SYSMAN2 (excep l f 2.2 . 3 SYSTEM System Stress t accuracy, timi-i System will pro cial HRS2 data access to emplo on-1 Lne queries #i.cial data" on mple:s: Integration Test Review System Test Packets ui:re:ment,s will be provided by the PRIM Analysts. er documentation which sets forth any special ditions and/or limitations impacting the system sts will be measured in terms of reliability, siz.ng, , availability,backup and recovery. In Release the ide components terminal access and retrieval of o fi- long with the capability for components to transfer ee data between components and to generate their o or reports, cff ine reports and graphs utilizing "of- Y. 2.2.3.1 .:L Corr-sisterit Results Tests uiLl be corducted to insure that the system provides the same results for the same successive requests for data. providing neither the ata nor the software has been changed by an update. 2.2.31.1.2 Cons stent Output Response:' Testslwill be conducted to demonstrate that the requested response levellywith a data reporting activity of up to 200 users can be acc ra- modat:d. Releas 1 will have approximately 40-50 users; therefore, the full test wish 200 users will. be certified in a future release. les will not be' Component Data F available in Release 1; testing of the update respo level will be certified beginning with Release se level will be certified beginning with Release Appr ved Fotj PNeWaf-eA2(~05/0f/g2I CL 5RDP88-00893R00020006 1.3 Cony stentt:. Update Response Level for Component Data 006-1 9 Approved For kegJs~ A05/68J01: U-ADP88-00iJ3WO 6(8~ 2.2.3.2 SIZING 2.2.3.2.1 Users The system must support up to 200 concurrent users actively querying, reporting or updating the Data Base. Release 1 will only certify ap- proximately 40-50 concurrent users, therefore, the full test with 200 concurrent users will be certified in future releases. The system must support queries and reports requesting data from up to 30 different user data files utilizing a minimum of 70 edit/validation dictionaries. In release 1 the System Integration Test Analysts will certify 10 data files and a minimum of 65 dictionaries exclusive of data files required to satisfy security. (Security is addressed in Section 2.2.4) PRIM FILES ACCESS INDEX FILES - A group of files will be provided for DB Manager both Active data and Separated data indexing. The files will be used in- directly via XBRIDGING from the PRIM PERSIGN and PRIMSEP files. A file will be provided for each Selection element used when building a Component's Active and Separated data links. The Index files will be established once and updated through XBRIDGES. How- ever, the Index files can be re- established with the PRINDX process. STATEMENT FILE - This file will permit the PRIM DBMGR DB Manager to format high volume query statements which components will utilize via the LISTSTMT Procedure. INTERFACE - This file contains all current Components INTERFACE data passed to PRIM from via SEGACCESS HRS2. The file will be accessed through SEGACCESS segments spanning to an INTERINDX which spans to INTERFACE. An INPURGE date for each INTERFACE record will be stored in the INTERINDX file and INTERFACE records will be deleted when that date is reached. Data will be loaded into the PRIM INTERINDX file Approved For ?es ~ 2P5/g8j02: f,I 1-~DP88-00893R0002000600gF-1 Appro ved For R9IJ a '06518101 :FCITA 4[ P88-0084 R6?8190& 069 d ]:NTERINDX: - OFFICIAL DATA FILES d 1 Il ie. a BUL(-LOAD statement using the isk created by the PRCAUPDT procedure resat ing an INPURGE date for each record. Data will be loaded into he. PRIM INTERFACE file via an ITEM' DUMP statement using the same disk. is file is the link between the Compone EGACCESS files and the INTERFACE ile. It contains a purge date INPURGE) for each INTERFACE record. his date will be used when purging, ata from the INTERFACE file. The NT'ERINDX link (]:NTERLINK) will also e deleted. Iles contain_ng''official personnel Compon ata. These files are moved from 1RS2 and include all Official data r i PRIM PERSIGN equired from HRS2 by PRIM. his is considered one of the Official Compon nts ata files in so far as how it is linked. he entire P'ERSIGN file will be moved my once (not: daily) into PRIM and ill he updated daily by the PRCHGLOAD rocedure with data received from the RS2 INTERFACE file via the PRCAUPDT rocedure, The P'ERSIGN data is ccessed by a component through the EGACCESS files (SYSMAN2+A) containing hat component:'s Active data links. PRI:FN - RIM INTERFACE File Name on HRS2 and DB Ma age:r RIM. This filei will insure dumps and oads are done it. the same order. This ile will contai~. all files to be dumped With a flag on those files to be dumped my on weekends'. PRI 1SEP - This file will. contain the PRIM PERSIGN Compo ents ecord for a sep'a.rated employee plus that mployee's reasofl for separation and 4ate of separation. This data is 4ccessed by a component through the EGACCESS file (SYSMAN2+S) containing that component's: Separated data links. SEG CCESS - et of segmented files. One set of DB Ma ager egmerits will be established for each evel of component access requested. Approved For RRIea~e F?R55? 100 CJA P88-00893R00020006~ 006 1 Approved For Rees 2T05/88)b2I: IA-kD'PP 88-00893k0%WA%*M 0WJ3 The file name will be the SYSMAN2 Signon concatentated to either "A" (Active), "S" (Separated) or "C" (Component). All access of Official data (Active and Separated) will be through these segmented files. SELECTION - Set of segmented files. One segment Component- will be established for each Signon Individual ORG. This file will contain the Selection Criteria used to select records File only authorized for the Signon ORG, Signon ORG text, ORGCODE links (SLORGLINK) and POSNR links (SLPOSLINK). The ORGCODE and POSNR data is accessed by a component through the SELECTION File. SYSER - In addition to its normal function, DB Manager this file will contain the Delete- Data and Invert statements needed to create new Index files for PRIM PERSIGN and PRIMSEP. This file is used by the PRINDX procedure. COMVAD - Files containing edit and validation Components data used in HRS2. These files are moved from HRS2 to support the Official data files and in Release 2 will support the Component data files. Data transferred from HRS2 into PRIM must reflect the exact same data values in the PRIM System as was present in HRS2 at the time the data was extracted (i.e., COMVAD) or processed via the HRS2 INTERFACE Data List to PRIM Active and PRIMSEP. 2.2.3.3.2 Edits and Validations for Component Data Component Data Files will not be available in Release 1, therefore, the edit and validations for these files will be certified in Releases 2 and 4. Approved For R"it 290O/98W2i: I111-I L 88-00893R000200060006-12 Apprc4ved For ilAs* i065 WOE :1CFA-&DP88-0(@9 QO$9'2bOO6i 2.2.3'.4.1. Dire The System Integ testing to ensur rest queries in ever, a more rea tanceq) Testing wh repre.Sent.at:ives query' will utili lected data list trieving the inf in the Detailed 4.2 Comp The System Integ ensure that the search) at the r conditions. How during the Acce3 40+ I PC compone:a time. In additi the daily Data B executing longer The S.Vstem In.tea ensure ",.hat the ati_ng!, conditions leases will incl Query ation Test Analysts will attempt to conduct stres4 that the system can complete 95 per. cent of the .i- -7 seconds under normal operating conditions. Ho -- istic stress test will be conducted during the Ac cep- re the OP analysts will utilize all 40+ IOC component o stress test a' t a given .point in time. The direct e the DBMS Query Language to retrieve data from s e - u.sing'the DLID: as the selection criteria for re- rm.at ion. (Norm'al operating conditions are as defned ystem Requirements Document, Section 3.2.4.1). ex Query ation Test Analysts will conduct stress testing t ystem can complete a complex query (end-to-end to of 2,000 records per minute under normal operating ver, a more realistic stress test will be conduct d ance Testing where the OP analysts will utilize all representatives, to stress test at a given point 'n n, the System itegration Test Analysts will review se Exception Resort which identifies query statements than 3 minutes. a.tion Test Analysts will conduct stress testing t ystern cart print', reports in 2 hours under normal o with a maximum overnight turnaround. Subsequent r de "scheduled" batch production reports. 2,2.31.4.4 Sche u.ling Updates to PRIM from HRS2 The ekt:ract of H the complete ni grati.on Test Ana the Data Base S ensure he upda Manager" compare the: PkI]1 Data Lis S2 data for updating the PRIM System must occur after tly update of the HRS2 Data Base. The System Int -? ysts serving as!"PRIM Data Base Manager" will review is a:ad output: from any nightly updates (Route -tA) to s to PRIM were riade. In addition, the "Data Base selected HRS2 Data Lists and number of data items to is and number of data items. Apprc''ved For F Ie9e JOS05~01 /0 C~IAJDP88-00893R00020006Q 01Q36-1 opy Reports Approved For RMle s' io '5tWOi :FCFA FP[YP88-008c333R66026db86Obg-4 2.2.3.4.5 Updates to Component Data Component Data Files will not be available in Release 1. Stress Test- ing of the update timings will be certified beginning with Release 2. The PRIM System must be available during regular working hours (0800-1800 hours), thus the System Integration Test analysts will con- duct system availability tests on the data base during these hours. In addition, the system cannot operate in a degraded mode for more than one day and the degraded mode must only affect response time with no affect on the system's functional capabilities. Tests will be conducted to insure that the PRIM System is backed up daily with audit trails of all updates to data and PRIM software. The daily backup must occur without user activation or intervention. The daily backup must be retained for a period of one-work week, a weekly backup must be kept until the next monthly backup; and each monthly backup is replaced by the next monthly backup. The PRIM System must virtually self recover in the event of hardware failure or the inadvertent destruction of data and/or files. The re- covery process to restore the PRIM System or restart an interrupted activity must minimize the need for the user to re-enter data. The capability must exist to restore the PRIM System as of the close of business the previous day, and also reprocess activity for the cur- rent day to minimize the need for the user to re-enter data. The re- store and reprocess activity must take less than two hours. The Sys- tem Integration Test Analysts serving as "PRIM Data Base Manager" will notify and coordinate with Production Division/ODP when the Data Base must be restored for either data or software problems. Approved For R"ss 10%5/p8AO J :ICI,4- ?88-00893R0002000600061t Apprc4ved For'2E eisb 2'00?5/68kf : bIYk-RDP88-00%%3 W6 1 2.2.4 CONTROLS 2.2.44; .1 SOFT A E (DEVELOPMENT AND PRODUCTION) All PRIM Softwa.r received by the PRIM Team from the programmers will be thoroughly tested on the. PRIMTEST Data Base and before it is mo ed to the Production System. The first phase of the System Integration Te t Pl .C ... 8,.11 .. .. 1 __..,..___.u -. _ T__t t__ 11. s a o f will Integration anal st:s who will perform an integrated test of all pr ce- dures/programs i a semi-live environment.. This will verify that he system still performs in the same manner with all. its functional a eas completed as it lid when only specific areas were complete. If an er- change control (~reclue:st for change) will be used to officially rep~r the Error. PRIM software which :requires change must be conducted first{ on ODP's P RTEST Data Base. After t:he error has been correc~ed and tested by th programmer, they will certify to the PRIM Projec Leader that it i ready for retest on PRIMTEST. PRIM test data isles- tabliiished utilizing accepted numbering and dating conventions to e sure ''ithe capability of re-executing or referencing any given test group of tests, After testing on PRIMTEST, the PRIM Project Leade Sion is ready fo acceptance testing and certify such via Integration Test Review. Wh re appropriate, PANVALET specifications and sourc levels are requi ed to be updated during all System Integration to t- i.ng. All of the Data read and/'or writ Syster is highly sure access and information. Se Procedures and D as.e Management System software related to controlling access to the PRIM System and to data in the PRIM sensitive; therefore, tests will be conducted to :n- at.a is limited to only the individuals needing th urity locks and keys will. be placed on selected G'.]'IS ct.ionaries (i.e., M, M/Dict, SYSMAN2). The Agency's reg la.tion on Cornputer Security, HR II controls t -e hardware security for the PRIM System. All System Integration Test- ing, Acce:pt:ance Testing and Production activity performed outside f Headquarters Buiding must utilize only equipment approved for cla si- fied Fuse. System Integration Test Analysts will monitor that access to thie system wi 1 not be conducted on equipment not approved for classified use, .e.., graphics printer. Appr ved For 9IeOge 3OQ5~08/012 :IC i4$DP88-00893800020006 0? -1 STATINTL Approved For ReleaseC2& 16/62z GFIAIR l988-00893 $061 @06J83 2.2.4.4 SECURITY CONTROLS 2.2.4.4.1 Component Record Level Access Tests will be conducted to ensure that a component is restricted to a) access only the records for individuals assigned to that component or have a Career Service Designation of that component b) access data passed electronically between components for individuals with an upcoming/proposed as i s gnment to that component c) enter, update and retrieve component data d) query and report on organizational, position and employee data that applies to their assigned job requirements. e) Directorate-level requires read access to all of the official organizational and position data as well as data for employees assigned to every office within the Directorate or who have a grandfather Career Service Designation associated with that Directorate. Directorate level cannot have access to a component's input data. 2.2.4.4.2 Limited Data Access Tests will be conducted to ensure limited read access to an employee's race code. Only designated personnel such as those responsible for preparing applicant and promotion data for Uniform Selection Review Reports can have read access to this code. 2.2.4.4.3 HRS2 Transferred Data Tests will be conducted to ensure that no one can update the data transferred into the PRIM Data Base from the HRS2 Data Base. The only way the data can be changed is by the next transfer of data from the HRS2 Data Base. The Security Matrix prevents anyone from entering new data, deleting data or changing data values of the HRS2 data stored in PRIM. Approved For lease, 2,Q0O/f8/p2F: ~IlL1-~DP88-00893R0002000600066--1 Appr ved FoY F~elCeAcA21b0?/OI8/92~ (51kRDP88-6i ftMOB'606 006-1 2..2.4.4.4 PRIM Data Base Reporting Security The Stst:em Integration Test Analysts will review the daily Security Violations Report against the PRIM Data Base which :identifies viola- tions of establ hed read and/or write access control and the stand rd ACF2 violations eport. Directorate Referents may be notified if abuses are deter ed. 2,2.5 TEST DA's Release 1 will -p ovide components terminal access and, retrieval of "official" HRS2 data which is transferred to the :PRIM Data Base each night. The data will be tested by the System Integration Test Ana lysts!i:a a semi- ive environment and will consist of re-executing he 13 PRIM procedur s, querying and reporting from: 654 COMVAD Dictionaries b)', the HRS2 0 ficial data files and c)'', the new PR PRIM PROCEDURES/ PRDDC)MF PRDLOAID PRCAIt"STB PRCA14 PDT PRCHGLOAD PRCAITR SF M data files. ROCESSES Test Responsibili) - Create ITEM-DUMP statements. DBCC - Create ITEM-LQAD statements. DBCC - Establish a component's access DB Manag criteria in that component's SELECTION file. - Extract data from the HRS2 INTERFACE file which pertains to PRIM to be used by the PRCHGLCIAD procedure. This is a [3ATCF[GIM II program. Uses disk from PRCAUPDT to make DBCC changes to PRIM PERSIGN and related Index files, PRIMSEP and related Index files, INTERINDX and load INTERFACE record into the PRIM INTERFACE file. - Allows a component to create an Components access to an employee's record, for another component or remove an access to a record created for one component by another component. Approved For Relea8eL2DAO5JOR/(112 F q Rj9P88-00893R00020006~00E1-1 Approved For RMss 10651%&01 ~CIk-FRBP88-008iiRbbbt2 tb0b ~ PRNTEPRG - Review component access segmented DBCC file and purge any records with PRGDTE LE the System date. PRINTPRG - Review the PRIM INTERINDX file for DBCC INTERLINKS with INPURGE LE the System date. Delete INTERLINK as well as the INTERFACE record related to it. PRACCUPDT - Allows the user the freedom to Components change a PRGDTE and add SSNORs to their component data file. PRCALINK - Uses SELECTION Criteria data from Components the SELECTION segment for Signon ORG to trigger the appropriate Index file(s) to build the daily link for that ORG. Done once a day - at the time of the first Signon for a particular ORG. PRINDX - This process extracts data from DBCC PRIM PERSIGN and/or PRIMSEP to DB Manager re-establish the Index files. PRCRTLINK - Uses SLORGLINK in the SELECTION DBCC segments to build new links to the ORGCODE file for each segment and SLPOSLINK in the SELECTION segments to build new links to the POSNR file for each segment. This procedure is executed on weekends by DBCC. SEARCH - This procedure will be used by the Components components to query the NAME and HPOSNR files. LISTSTMT - Allows a component to access per- DB Manager formatted statements which contain selected full file data (QUAL, LREQID, ORGCODE, etc.) as well as high volume query statements, thus eliminating the need for a component to key the various data elements to execute their request. *Indicates test responsibility for Acceptance Testing. The testing will be conducted daily by the System Integration Test Team. In addition, the System Integration Test Team will pass access Approved For RoJeRse %OG5/R8f0?I :ICI f -FO!88-00893R000200060006.i98 Apprgved For Re Us 2 o%/0'8/b2l: 6IA(-F DP88-00H3?W-1 to air (employee' individuals pen official data from one component to another for ing an upcoming assignment to a specific componen 2.2.6 CONSTRA NTS The Initial tin ng requ:i:cementt for transferring data to PRIM in Re- lease :L is gear (d to the upda.te~process of data :In the HRS2 Data Base. The +~xtract of RS2 data for updating the PRIM System nightly must oc- cur After the c mplet:e nightly update of the HRS2 Data Base. On occa- sion,; due to a tim.in2 prcblem with the HRS2 job stream PRIM may no ; get updated; ho ever, this will not seriously impact the users. A message appears at S:Lgnon time of the last date of update to the Data Base; 2.2. REGRESSSION TESTING All PR]:M test cses will be documented using preplanned test formats for dac:h and every test with accepted numbering and dating standar.s to ensure the capability of re-executing any given test or group of tests. The System Integration Test Analysts test; top down, where p- plicnb].e; therefore, if an error is detected and fixed, the tester ensure that the than?;e made will not adversely affect previously t st- ed code. 2.2.8 DATA RECORDING ]'here is a test cations. The Sy of a:1.1 tests exe tected and corre fy to the System the applicable p Statistics betwe maintained for a acke;t for every test case which is made from spec'fi- tem Integration} Test Analysts will review the results ut:ed against these test packets. If an error is e- ted, the originator of the Problem Report must ce ti- Inte.gration Test Analysts that he/she has reteste oced.ure and along with the retest date. Data Bas an HRS2 and PRIM Data Lists will. be analyzed daily and ].east 33 days after PRIM goes into Production.. 2.2.9 I VALUATI~N Release :I. of PRI HRS2 Data Base t data kralues used cable to PRIM in dated!'! nightly, t a.te test data fo evaluation is ba the 11PS2 INTERFA an employee's of Appr is basically transferring "officiall" data from t e PRIM via ex-~racts; therefore, testing of range o combination of input: types used, etc. are not appli- Re:lease I. In addition, since PRIM is due to be p- e System Integration Test: Analysts will have to c e- manipulation on a very "limited basis". Testing ic.ally one of evaluating security matrices, verifying E coming in is appl.ied properly and passing access to ic.ial dai.a from one component to another. ved For lea a R095fP810? :1CLA fDP88-00893R0002000600096-1 Approved For I ekAcI'2e08/(Y%/b2F 6I4 F P88-00IN31 68626066000631 2.2.10 TEST CASE MAINTENANCE The System Integration Test Analysts will maintain and file the re- sults of all major or necessary tests during the System Integration Test phase or until Audit Staff has completed their audit of the sys- tem. Approved For ReyseC220R/g8/p2I 9IA-PLD?88-00893R000200060006-'to Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 U N C L A S S I F I E D Personnel Resource Information Management (PRIM) Acceptance Test Plan (ATP-C20-5) by PRIM Project Team ODP/A/SDD OP/ID/ADRB 23 September 1983 Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 Aproved For Release 2005/08/02 : CIA-RDP88-00893R000200 60006-1 U N C L, A S S I F I E D 23 Septe 'giber 1983 CHAPTER I 1 INT.RODUCT 1.1 PUF:I, S1. . . . . . . . . . . .. . . . . 1 1,. 2 SCCIP . . . . . . . . . . . . . . . . . 1 1..3 REFE ENCES . . . . . . . . . . . . . 2 2.1 FUNCTIONS . .. . . . . . . . . . .. . . . . . . . . . 3 2.2 METfI DOLOGY . . . . . . . . . . . . . . . . . . . . . 3 2.2 , TEST TEAM . . . . . . . . . . . . . . . . . 4 2.2. RESOURCE REQUIREMENTS . . . . . . . . . . . . . 6 2.2. SYSTEM STRESS', . . . . . . . . . . . . . . . . . 10 2.2.3.1. RELIABILITY . . . . . . . . . . . . . 10 2.2.3I.2 SIZING . . . . . . . . . . . . . . . . . . 11 2.2.3.3 ACCURACY . . . . . . . . . . . . . . . 13 2.2.3.4 TIMING . . . . . . . . . . . . . . . . 1.4 2.2.3`.5 AVAILABILITY . . . . . . . . . . . . . 15 .7.2.3.6 BACKUP . . . . . . . . . . . . . . . . . 15 2.2.3 7 RECOVERY . . . . . . . . . . . . . . . . 15 2.2.4 CONTROLS . . . . .. . . . . . . . . . . . . .. . .16 2.2.4.1 SOFTWARE (DEVELOPMENT AND PRODUCTION) . 16 2; .2.4.2 SYSTEM SOFTWARE . . . . . . . . . . . 16 2..2.4.3 HARDWARE . . . . . . . . . . . . . . . 16 2.2.4.4 SECURITY CONTROLS . . .. . . . . . . . 17 2 . TEST DATA . . . . . . . . .. . . . . . . . . . 3.8 2.2.o CONSTRA::NTS . . . . . . . . . . . . . . . . . 20 2.2.7 REG.RESS]:ON TESTING . . . . . . . . . . . . . . 20 2.2.8 DATA REC;ORD]:NG . . . . . . . . . . . . . . . . . 20 2.2.1 E TESTA CASE N[AINTENANCE . . . . . . . . . . . . . 20 21 LIST OF TABLES Approved For ReJei4s@ 2,9 5/Q8~021: SI#-RDP88-00893R0002000600p6-111 Approved For Ike%A '2603/058/b2F: 6IA4DP88-006@3?Nb 60 1 Chapter 1 1.1 PURPOSE The purpose of the Acceptance Test Plan is to demonstrate that the system satisfies the requirements as traced in the Requirements Trace- ability Matrix to the functional requirements. In addition, this doc- ument will address Quality Assurance test plans and procedures which will be conducted by Office of Personnel/PRIM Analysts from Automated Data Resources Branch. ADRB is officially charged with QA support for all OP/ADP applications and will be conducting an independent audit for verification and validation of the PRIM System prior to recommend- ing acceptance of the system. Due to the complexity of the PRIM Sys- tem, it is being designed and tested in a phased approach. This docu- ment will further provide for a mutual understanding by all parties concerned of the Acceptance Test criteria to be conducted during the development of the PRIM System. 1.2 SCOPE This document presents the PRIM System Acceptance Test Plan/tasks which will control the PRIM test environment during development. The PRIM System is being designed in a phased approach, there- fore, the initial test plan will be written for Release 1 of PRIM. Thereafter the test plan will be updated for each successive release. However, the testing philosophy established in Release 1 will continue to be utilized in each successive release. Due to resource limitations, ODP/QAD will not be providing QA support or test plans in Release 1. Releases 2 through 5 are (TBR) regarding QAD participation. The test plan consists of 2 Chapters: Chapter 1 - 'Introduction' presents the purpose and scope of the PRIM Acceptance Test Plan and references applicable to the contents of the Acceptance Test Plan. Chapter 2 - 'Plan' presents the major testing methodologies and defines testing criteria to be applied against the functional, per- formance, security, hardware, human engineering and interface require- ments. Approved For FfI aeeL2%0W0P/q2F ( IWP88-00893R000200060006-i1 Approved For F I a e12A&0?/OZ2 FC4AE-R8P88-008 R 2 b TABLE PAGE 1. Documents, Publications and Reference Material . . . . . . . . 2 Approved For ~e"%2ROR/%0/92F CSI F P88-00893R0002000600Q6i1 Approved For Release ~A 085/0I ~ A-FR8P88-008??R 2 0M$ 1.3 REFERENCES The OP Analysts from the PRIM Team are utilizing a number of docu- ments, publications and other reference material in writing the PRIM Acceptance Test Plan. They are listed in Table 1. -------------------------------------------------------------------- Documents, Publications and Reference Material I 1. Applications Manual 2. Data Requirements Document 3. Data Specifications Document 4. Detailed System Design Specifications 5. Detailed System Requirements Document 6. Interface Control Document 7. ODP Applications Documentation Standards 8. Production Manual 9. Program Manual 10. Requirements Traceability Matrix 11. System Development Plan 12. System Integration Test Plan 13. User Manual -------------------------------------------------------------------- Approved ForLRjoe@sS R09548iO? :1Cf$DP88-00893RO00200060009-1 Approved For RA&sJ,260%/68/b2F: CIA-lkbP88-008?3WAbT&ft0 1 Chapter 2 2.1 FUNCTIONS PRIM is a centralized data base for use by the Personnel Officer, Ca- reer Management Officer, Office Director or Training Officer of a com- ponent in direct support of the component's day-to-day personnel man- agement activities. The overall objective of the test plan is to ensure that the system meets all of the requirements identified in the Detailed System Requirements Document and Detailed System Design Spec- ifications as mapped in the Requirements Traceability Matrix and list- ed below. a) Centralizing Official Data for Component Access (Release 1, 3 & 5) b) Data Transfers Between Components (Release 1) c) Component Data Manipulation (Releases 2 & 4) d) Queries and Reports (Release 1) e) Controlled Component Data Access (Release 1) f) Other Requirements: Performance, Security, Hardware, Human En- gineering, Interface, Legal 2.2 METHODOLOGY The initial Acceptance Test Plan is being written for Release 1 of PRIM; however, the testing philosophies established in Release 1 will be utilized in successive releases of PRIM. The test plan has been divided into 2 distinct areas - System and Acceptance. This is to aid in the detection of errors or deficiencies at the earliest point in time. Test packets are to be used; they are -------------------- The term component in the context of this document is defined as a separate entity in the Agency's organizational structure be it a di- rectorate level, an office, a staff, a division, a service, or a center. Approved For Release L005/08/S I : F IIA- 2 88-00893R000200060006-13 Approved specifically desig every test case wh designers. The to unique test case n in performing thei suits of all tests test library will tests-certified by providing OP the t test data base. P that any test or g However, to achiev with the ODP analy ble, execute proje lowed by the ODP a Plan for Release 1 lysts who will per in a semi-live env performs in the sa it did when only s from this phase wi to the PRIM Data B Upon successf of acceptance test successful testing ty, access, etc.) human engineering, HRS2 Data Base. T until test specifi production and mai The ODP PRIM ficiency to ensure lysts will maintai tests during the a their audit of the 2.2.1 TEST TEAM The Acceptance Tes ployees from 10 of Initial Operating lyst will provide ticipants, Directo of Personnel. She the testing effort For Fiel aie1655/0 /62 6k-R'bP88-006330666 66068 1 ed to control the testing. There is a packet for ch is made from specifications received from the t packets are identified by a cover sheet with a mber and include procedures which guide the testers tests. The OP/PRIM analysts will review the re- executed against the system test packets. The PRIM my contain functions that have passed all of ODP's official pass. In addition, ODP is responsible for ols which they may use in establishing their system IM's test data will be established in such a manner oup of tests may be executed at any given time. continuity and effective working relationships ts, the testers will, to the fullest extent possi- t testing in the same developmental sequence fol- alysts. The first phase of the Acceptance Test will consist of a system test by the OP/PRIM Ana- orm an integrated test of all procedures/programs ronment. This will verify that the system still e manner with all its functional areas completed as ecific areas were complete. An additional benefit 1 be the training and familiarization of the system se Manager and the IOC users. 1 completion of the first phase, the second phase for Release 1 will begin. This will consist of of data base security (security matrices, integri- ite testing, data transfers, performance, hardware, reporting, and massaging interface data from the sting will consist of processing transactions/data ations are met and all documentation required for tenance of the system are complete and accurate. nalysts will be notified of any system error or de- that appropriate action is taken. The OP/PRIM ana- and file the results of all major or necessary ceptance phase or until Audit Staff has completed system. Team consists of the two OP/PRIM Analysts and em- ices who have been selected to participate in the apability (IOC) of PRIM. The senior OP PRIM Ana- he communications link between ODP and the IOC par- ate Referents, the PRIM User Group and the Office will also keep management apprised on the status of via weekly reports or official briefings. The OP PRIM Analysts are responsible for: d guidance in writing system test specifications. Approved IFor F IRa~eL2Q~(0?/012 FG AERPP88-00893R000200060006 Approved For FieleaielA?/A/t2' Ci1AERbP88-001Mf66&26&60681 b) Assistance and guidance in writing acceptance test specifica- tions based on the re-execution of selected segments of all of the system test(s). c) Assistance and guidance in creating test data. d) Assistance and guidance in scheduling test resources. e) Assistance and guidance in sequencing and executing tests. f) Assistance and guidance in analyzing test results. g) Assistance and guidance in documenting all test results with ac- cepted numbering and dating standards to ensure the capability of re-executing or referencing any given test or group of tests. h) Communicating both positive and negative test results to the ODP PRIM Analysts and following up on remedial action necessary to correct deficiencies or errors with subsequent retesting. i) Ensuring that user documentation is complete and accurate as tests are executed. j) Ensuring that all Audit Staff's written requirements are met. k) Ensuring that all test objectives are met for the various data transfers. (Example: HRS2 Interface coming in and Data Trans- fers between components.) 1) Security controls (production, reports, users, etc). m) Privacy Act compliances. n) Ensuring official pass of all documentation/access to all files/data lists/complete testing capabilities, etc. (See Sec- tion ) The IOC Participants are responsible for: a) Writing acceptance test specifications based on the re-execution of selected segments or all of the system test(s). b) Creating test data in terms of transaction (menu) processing. c) Scheduling test resources. d) Sequencing and executing tests. e) Analyzing test results. f) Documenting all test results using preplanned test formats for each and every test with accepted numbering and dating standards to ensure the capability of re-executing or referencing any giv- en test or group of tests. Approved For ~e "t2R0R/V/P2I: YL -~DP88-00893R0002000600065-1 Approved g) Communicating OP/PRIM Anal to correct de h) Ensuring that tests are exe Analysts. For IeUd'2609/6$/62F 6I-F'bP88-0063hbbbbt01 both positive and negative test results to the sts and following up on remedial action necessary ficiencies or errors with subsequent retesting. user documentation is complete and accurate as cuted. Provide monthly status report to OP/PRIM i) Complying with all Audit Staff's written requirements. j) Ensuring that all test objectives are met. Skills Required - The PRIM testers (IOC Components) must be knowledgable in GI S, VM, RAMIS and the batch process, to input, up- date and retrieve formation from the PRIM System. In addition, the IOC components are committed to assisting in the training of other careerists in their Directorate who will be participating in future releases of PRIM. 2.2.2 RESOURCE REQUIREMENTS a) Human 1. Production Division/ODP - Data Base Management support and DAC suppo rt during the development testing phase 2. Operations Division/ODP - Operating the computer' equipment that the PRIM development system will utilize during Accep- tance Testing. 3. Engineering Division/ODP - System performance measurement 4. Information and Analysis Branch/OP - HRS2 RAMIS Report defi- nition s port. 5. Automate Data Resources Branch/OP - PRIM DBM 6. PRIM Users Group - Directorate Referents and Directorate ADP Control Officers represent various components during devel- opment. PRIM Users Group will formalize changes to current requirements if the need arises. Request For Change (RFC) will be controlled via Configuration Management Procedures. 7. Office of Communications i) Domestic Networks Division (DND) within OC handles all PRIM domestic communications. DND is responsible for the installation and/or procurement of communications lines, modems, and cryptographic equipment in support of all PRIM peripheral equipment (terminals, remote Approved IFor R l aLseL2R0?/0 /Q2F gIAjFpP88-00893R00020006000661 Approved For Release~D0g08/02 FCIA DP88-00883Fz b"OU6 printers, and remote job entry stations). DND interfaces directly with Engineering Division (ED/ODP) in response to communications requirements or problems encountered in the PRIM Project. ii) Communications Security Division (CSD) within OC is responsible for TEMPEST testing/approval of all termi- nals and printers accessing PRIM. CSD interfaces di- rectly with ED/ODP in response to communications re- quirements or problems encountered in the PRIM Project. 8. Office of the Inspector General (OIG) - The Information Sys- tems Audit Division of the Audit Staff will examine PRIM procedures, records and reports and certify that their tests are complete prior to the PRIM analysts recommending that the system be implemented. 9. Office of Security - The Information Systems Security Group (ISSG) will play a consulting role in the evaluation of the PRIM System security feature during Acceptance Testing. b) Equipment 1. Hardware The PRIM System will be accessed by the individual com- ponents through existing equipment. Peripherals in common use include video terminals (Delta Data 5000 or 7260 series) printers (TI Silent 700, Desi?n 100). The components will be responsible for acquiring any additional equipment needed to access the PRIM System. Any equipment, specifically ter- minals or printers, currently installed or newly acquired by the components, must comply with standard Agency computer security regulations. All Acceptance Testing and Production activity per- formed outside of the Headquarters building must utilize only equipment approved for classified use. (Refer to Re- source Requirements, paragraph a) Human, above for further details regarding point of contact.) Software In House GIMS Yes DBM System Software related to controlling read and/or write to PRIM and to data in PRIM Yes VM Yes c) Materials Applicable Documents and Forms Approved For F I1qageL2(A0W0?/(2 F 9AEPJ)P88-00893R000200060006-~ Approved For Fiekaseh2&9/A/W 6IAE A)P88-00&hF 6662 866068M Form 2968 - File Description Th index or table of contents noting the acronym, re ative sequence, test description, etc. of each da a element in the project file. Form 3692 - Data Element Description Us d to define each data element within a given ap ication of the system and its associated edit specifications. There is a copy of this form for each data element listed in the file description mentioned above. Form 3692A -Input Requirements Defines only those data elements that may be input (required or optional) to accomplish a particular task or transaction specified in the system design. An error message number is produced if a required data element is missing from the input. Form 3692B - Program Specification (PRIM has added this spec to the front of the POL in lieu of using the form.) Pr th re th vides additional specifications necessary for program to be written that are not previously orded on the data element description form or input requirements form. Form 3692C -(Message Descriptions' Us pr th ac d to document all messages generated by the ject transactions in message number sequence, it program source number, and corrective ion to be taken upon display of the message. A pr to th raphic layout of each menu to be used with a ject transaction which is input on a CRT minal. (All menus must be tested on both Delta Data 5000 and 7260T series.) Form 2278 rogram Narrative (PRIM has added this narrative to the front of the POL in lieu of using the Form.) Pr vides a general description of the program relating to any project function. Do4ument verification procedures that must be pe formed to determine successful program Approved (For F IRaeeL20AO 0?/Ot2 F C11AERRP88-00893R000200060006- Approved For IiiekAeL2e09/0?8/62F GII1-F DP88-00&3k68OQOb 6Ob%%31 execution and the identification of any messages that pertain to the program. Form 3417 - Report Specifications Form 3417A - Report Data Elements Used to supplement Form 3417 (above) in the event of insufficient space. Form 3984 - Problem Report (Discrepancy Report) (This Form to be used for Release 1 only.) The IOC Testers will record problems on this form. The OP PRIM Analysts will analyze and if appropriate forward copy to ODP PRIM Analysts. This documents and controls the correcting and retesting of the problem(s). When the problem has been corrected, the ODP PRIM Analysts will forward it (Orig plus 1) back to the OP PRIM Analysts who in turn will ask the user testers to retest the transaction. PANVALET - Current list of PANVALET Specifications and Source - to include program/module, PANVALET numbers, date last updated and level numbers. COMVAD DATADOC/PROGRAMDOC PRIM Users Manual PRIM Program Manual PRIM Production Manual Applications Manual Report-Writer Software RAMIS Graphics Audit Trail - Containing sufficient information to permit a regular security review of system activity by Office of Security. Contingency Plan - Including backup procedures in the event the main system is damaged or destroyed. Approved For Release 200S/0S8/0I F : CIA-RDP88-00893ROO0200060006-1 1 9 Approved For IekAet'260?/058/b2F 6I4AbP88-00943t' GIMS Procedurs, Dictionaries, M and M/Dict, SYSMAN2 (except for passwords) eor Office of Personnel Analysts only. NOTE: Other condi requi Copie forms with Examp documentation which sets forth any special tions and/or limitations impacting the system rements will be provided by the OP PRIM Analysts. s (some with examples and comments) of additional to be used in system testing will be ?rovided the Acceptance Test Procedures Package. les: Integration Test Review System Test Packets 2.2.3 SYSTEM STRESS System Stress tests accuracy, timing, a System will provide cial HRS2 data alon access to employee on-line queries or ficial data" only. will be measured in terms of reliability, sizing, ailability, backup and recovery. In Release 1 the components terminal access and retrieval of offi- with the capability for components to transfer data between components and to generate their own reports, offline reports and graphs utilizing "of- Tests will be condu results for the sam the data nor the so cted to insure that the system provides the same e successive requests for data providing neither ftware has been changed by an update. ent Output Response Tests will be cond cted to demonstrate that the requested response level with a data reporting activity of up to 200 users can be accom- modated. Release 1 will have approximately 40-50 users; therefore, the full test with 200 users will be certified in a future release. ent Update Response Level for Component Data Component. Data Fil s will not be available in Release 1; testing of the update response level will be certified beginning with Release 2. 0020006000p01 Approved IFor Ioe "eL2(R0?1 8192E CIIA-FJDP88-00893R0 2.2.3.2 Approved For FI66I26&0?42 SIZING dAERbP88-008R~M&0%00A 2.2.3.2.1 Users The system must support up to 200 concurrent users actively querying, reporting or updating the Data Base. Release 1 will only certify ap- proximately 40-50 concurrent users, therefore, the full test with 200 concurrent users will be certified in future releases. The system must support queries and reports requesting data from up to 30 different user data files utilizing a minimum of 70 edit/validation dictionaries. Release 1 will certify 10 data files and a minimum of 65 dictionaries exclusive of data files required to satisfy security. (Security is addressed in Section 2.2.4) PRIM FILES ACCESS INDEX FILES - A group of files will be provided for DB Manager both Active data and Separated data indexing. The files will be used in- directly via XBRIDGING from the PRIM PERSIGN and PRIMSEP files. A file will be provided for each Selection element used when building a Component's Active and Separated data links. The Index files will be established once and updated through XBRIDGES. How- ever, the Index files can be re- established with the PRINDX procedure. STATEMENT FILE - This file will permit the PRIM DBMGR DB Manager to format high volume query statements which components will utilize via the INDXSTMT Procedure. INTERFACE - This file contains all current Components INTERFACE data passed to. PRIM from via SEGACCESS HRS2. The file will be accessed through SEGACCESS segments spanning to an INTERINDX which spans to INTERFACE. An INPURGE date for each INTERFACE record will be stored in the INTERINDX file and INTERFACE records will be deleted when that date is reached. Data will be loaded into the PRIM INTERINDX file via a BULK-LOAD statement using the Approved For Pelja~eL200p581j2~ 91I -R P88-00893R00020006000qi1 Approved For FUa eL2609/0%/62~ GIIkF~)P88-00879%060620609068 1 disk created by the PRCAUPDT procedure creating an INPURGE date for each record. Data will be loaded into the PRIM INTERFACE file via an ITEM- DUMP statement using the same disk. INTERINDX - This file is the link between the Components SEGACCESS files and the INTERFACE file. It contains a purge date (INPURGE) for each INTERFACE record. This date will be used when purging data from the INTERFACE file. The INTERINDX link (INTERLINK) will also be deleted. OFFICIAL DATA FILES - Files containing official personnel Components data. These files are moved from HRS2 and include all Official data required from HRS2 by PRIM. PRIM - This is considered one of the Official Components PERSIGN Data Files in so far as how it is linked. The entire PERSIGN file will be moved only once (not daily) into PRIM and will be updated daily by the PRCHGLOAD procedure with data received from the HRS2 INTERFACE file via the PRCAUPDT procedure. The PERSIGN data is accessed by a component through the SEGACCESS file (SYSMAN2+A) containing that component's Active data links. PRIFN - PRIM INTERFACE File Name on HRS2 and DB Manager PRIM. This file will insure dumps and loads are done in the same order. This file will contain all files to be dumped with a flag on those files to be dumped only on weekends. PRIMSEP - This file will contain the PRIM PERSIGN Components record for a separated employee plus that employee's reason for separation and date of separation. This data is accessed by a component through the SEGACCESS file (SYSMAN2+S) containing that component's Separated data links. SEGACCESS - Set of segmented files. One set of DB Manager segments will be established for each level of component access requested. The file name will be the SYSMAN2 Signon concatentated to either "A" Approved For FI9apL20A0%/0?/012 ~qASR$P88-00893R000200060006121 Approved For F~eI a9e'2& &0?/&2>! 6P -FbP88-0081hk*626 0066 (Active), "S" (Separated) or "Ctt (Component). All access of Official data (Active and Separated) will be through these segmented files. SELECTION - Set of segmented files. One segment Component- will be established for each Signon Individual ORG. This file will contain the ' Selection Criteria used to select records File only authorized for the Signon ORG, Signon ORG text, ORGCODE links (SLORGLINK) and POSNR links (SLPOSLINK). The ORGCODE and POSNR data is accessed by a component through the SELECTION File. SYSER - In addition to its normal function, DB Manager this file will contain the Delete- Data and Invert statements needed to create new Index files for PRIM PERSIGN and PRIMSEP. This file is used by-the PRINDX procedure. COMVAD - Files containing edit and validation Components data used in HRS2. These files are moved from HRS2 to support the Official data files and in Release 2 will support the Component data files. Data transferred from HRS2 into PRIM must reflect the exact same data values in the PRIM System as was present in HRS2 at the time the data was extracted (i.e., COMVAD) or processed via the HRS2 INTERFACE Data List to PRIM Active and PRIMSEP. 2.2.3.3.2 Edits and Validations for Component Data Component Data Files will not be available in Release 1, therefore, the edit and validations for these files will be certified in Releases 2 and 4. Approved For ~"qL220R/~81p2F: ~If-F DP88-00893R000200060001631 Approved For FUa el 60?/0$/62F GIIk I P88-008 31 ?062'0b?906b%31 2.2.3.4 TIMING 2.2.3.4.1 Direct Query The OP PRIM Analysts will conduct stress testing utilizing IOC compo- nent representatives to ensure that the system can complete 95 per cent of the direct queries in 4-7 seconds under normal operating con- ditions. The direct query will utilize the DBMS Query Language to re- trieve data from selected data lists using the DLID as the selection criteria for retrieving the information. (Normal operating conditions are as defined in the Detailed System Requirements Document, Section 3.2.4.1) 2.2.3.4.2 Complex Query The OP PRIM Analysts will conduct stress testing utilizing IOC compo- nent representatives to ensure that the system can complete a complex query (end-to-end search) at the rate of 2,000 records per minute un- der normal operating conditions. In addition, they will review the daily Data Base Exception Report which identifies query statements ex- ecuting longer than 3 minutes. 2.2.3.4.3 Hardcopy Reports The OP PRIM Analysts will conduct stress testing utilizing IOC compo- nent representatives to ensure that the system can print reports in 2 hours under normal operating conditions with a maximum overnight turn- around. Subsequent releases will include "scheduled" batch production reports. 2.2.3.4.4 Scheduling Updates to PRIM from HRS2 The extract of HRS2 data for updating the PRIM System must occur after the complete nightly update of the HRS2 Data Base. The PRIM Data Base Manager will review the Data Base Statistics and the output from any nightly updates (ROUTE *A) to ensure that the updates to PRIM were made. In addition, the Data Base Manager compares selected HRS2 Data Lists and number of data items to the PRIM Data Lists and number of data items. Approved For Fie "eL2R0?/%8/42F CIIA-I P88-00893R00020006000P41 Approved For F I a el16&09/0'2 F6AERbP88-008 RVO600WA 2.2.3.4.5 Updates to Component Data Component Data Files will not be available in Release 1. Stress Test- ing of the update timings will be certified beginning with Release 2. The PRIM system must be available during regular working hours (0800-1800 hours), thus the analysts and customers will conduct system availability tests on both the development and production data base prior to recommending acceptance of the system. In addition, the sys- tem cannot operate in a degraded mode for more than one day and the degraded mode must only affect response time with no affect on the system's functional capabilities. Tests will be conducted to insure that the PRIM System is backed up daily with audit trails of all updates to data and PRIM software. The daily backup must occur without user activation or intervention. The daily backup must be retained for a period of one-work week, a weekly backup must be kept until the next monthly backup; and each monthly backup is replaced by the next monthly backup. -- Th -,PRIM System must virtually self recover in the event of hardware failure or the inadvertent destruction of data and/or files. The re- covery process to restore the PRIM System or restart an interrupted activity must minimize the need for the user to re-enter data. The capability must exist to restore the PRIM System as of the close of business the previous day, and also reprocess activity for the cur- rent day to minimize the need for the user to re-enter data. The re- store and reprocess activity must take less than two hours. The PRIM Data Base Manager will notify and coordinate with Production Division/ ODP when the Data Base must be restored for either data or software problems. Approved For ~eWa~2905/0S8192F qI F~P88-00893R00020006000~51 Approved For &a eI'260?/A/62~ GIIk-F bP88-00633F d062 2.2.4 CONTROLS 2.2.4.1 SOFTWARE (DEVELOPMENT AND PRODUCTION) O6068M All PRIM Software received by "official pass" from ODP will be thor- oughly tested on the PRIMTEST Data Base and accepted by the user be- fore it is moved to the Production System for semi-live environment tests. The first phase of the Acceptance Test Plan for Release 1 will consist of a System Test by the OP/PRIM Analysts who will perform an integrated test of all procedures/programs in a semi-live environment. This will verify that the system still performs in the same manner with all its functional areas completed as it did when only specific areas were complete. Once the data base has been loaded with the live production version, all procedures, dictionaries, etc. will again be certified prior to the users having access to the system. If an error is detected either on PRIMTEST or PRIM, a problem report and/or change control (request for change) will be used to officially report the er- ror. PRIM software which requires change must be conducted first on ODP's PERTEST Data Base. After the error has been corrected and test- ed, ODP will certify via "official pass" that it is ready for retest on PRIMTEST. PRIM test data is established utilizing accepted number- ing and dating conventions to ensure the capability of re-executing or referencing any given test or group of tests. After user testing on PRIMTEST, the Senior OP Analyst will request that it be moved to the Production System via a DAC PIR. A copy of the DAC PIR is to be for- warded to ADRB certifying that the software was moved. Where appro- priate, PANVALET specifications and source levels are required as part of the "official pass" during all acceptance testing. All of the Data Base Management System software related to controlling read and/or write access to the PRIM System and to data in the PRIM System is highly sensitive; therefore, tests will be conducted to en- sure access and data is limited to only the individuals needing the information. Security locks and keys will be placed on selected GIMS Procedures and Dictionaries (i.e., M, M/Dict, SYSMAN2). The Agency's regulation on Computer Security, HR controls the STATINTL hardware security for the PRIM System. All acceptance testing and Production activity performed outside of Headquarters Building must utilize only equipment approved for classified use. IOC participants will be briefed on the use of Tempest Approved equipment. IOC partic- ipants will be referred to Office of Security and Office of Communica- tions/Domestic Networks Division regarding Hardware Security ques- tions. Approved For F IfjateL20A0N0?/0p2 FClAERPP88-00893RO002000600061- Approved For F;61Va9el263S/0?/0'2 F 6AE~P88-00873F kmkt&mO(@@A 2.2.4.4 SECURITY CONTROLS 2.2.4.4.1 Component Record Level Access Tests will be conducted to ensure that a component is restricted to i a) access only the records for individuals assigned to that component or have a Career Service Designation of that component b) access data passed electronically between components for individuals with an upcoming/proposed assignment to that component c) enter, update and retrieve component data d) query and report on organizational, position and employee data that applies to their assigned job requirements. e) Directorate-level requires read access to all of the official organizational and position data as well as data for employees assigned to every office within the Directorate, or who have a grandfather Career Service Designation associated with that Directorate. Directorate level cannot have access to a component's input data. .Tests will be conducted to ensure limited read access to an employee's race code. Only designated personnel such as those responsible for preparing applicant and promotion data for Uniform Selection Review Reports can have read access to this code. Tests will be conducted to ensure that no one can update the data transferred into the PRIM Data Base from the HRS2 Data Base. The only way the data can be changed is by the next transfer of data from the HRS2 Data Base. The Security Matrix prevents anyone from entering new data, deleting data or changing data values of the HRS2 data stored in PRIM. Approved For ~e east 2055/g8/p2F: ~IA-I DP88-00893R0002000600016 1 Approved For I e%"e-260?/OS8//2F: 6IAf4QDP88-00H3k&0 1 2.2.4.4.4 PRIM Data Base Reporting Security The OP Analysts will review the daily Security Violations Report against the PRIM Data Base which identifies violations of established read and/or write access control and the standard ACF2 violations re- port. Directorate Referents may be notified if abuses are detected. 2.2.5 TEST DATA Release 1 will provide components terminal access and retrieval of "official" HRS2 data which is transferred to the PRIM Data Base each night. The data will be tested in a semi-live environment and will consist of re-executing the 13 PRIM procedures, querying and reporting from a) 65+ COMVAD Dictionaries b) the HRS2 Official data files and c) the new PRIM data files. Test PRIM PROCEDURES/PROCESSES Responsibility PRDDUMP - Create ITEM-DUMP statements. DBCC PRDLOAD - Create ITEM-LOAD statements. DBCC PRCAESTB - Establish a component's access DB Manager criteria in that component's SELECTION file. PRCAUPDT - Extract data from the HRS2 INTERFACE file which pertains to PRIM to be used by the PRCHGLOAD procedure. This is a BATCHGIM II program. PRCHGLOAD - Uses disk from PRCAUPDT to make DBCC changes to PRIM PERSIGN and related Index files, PRIMSEP and related Index files, INTERINDX and load INTERFACE record into the PRIM INTERFACE file. PRCATRSF - Allows a component to create an Components access to an employee's record for another component or remove an access to a record created for one component by another component. Approved For F~el a~seL2%0?/q/Q2F qIA-FpP88-00893R00020006000~81 Approved For Fiel a9er2h,/0?/(d2 F 6fi -F P88-0083M w 66odd I PRNTEPRG - Review component access segmented DBCC file and purge any records with PRGDTE LE the System date. PRINTPRG - Review the PRIM INTERINDX file for DBCC INTERLINKS with INPURGE LE the System date. Delete INTERLINK as well as the INTERFACE record related to it. PRACCUPDT - Allows the user the freedom to Components change a PRGDTE and add SSNORs to their component data file. PRCALINK - Uses SELECTION Criteria data from Components the SELECTION segment for Signon ORG to trigger the appropriate Index file(s) to build the daily link for that ORG. Done once a day - at the time of the first Signon for a particular ORG. PRINDX - This process extracts data from DBCC PRIM PERSIGN and/or PRIMSEP to DB Manager re-establish the Index files. PRCRTLINK - Uses SLORGLINK in the SELECTION DBCC segments to build new links to the ORGCODE file for each segment and SLPOSLINK in the SELECTION segments to build new links to the POSNR file for each segment. This procedure is executed on weekends by DBCC. SEARCH - This procedure will be used by the Components components to query the NAME and HPOSNR files. LISTSTMT - Allows a component to access per- DB Manager formatted statements which contain selected full file data (QUAL, LREQID, ORGCODE, etc.) as well as high volume query statements, thus eliminating the need for a component to key the various data elements to execute their request. The testing will be conducted daily by 10 offices and the volume of data to be used consists of 12,000 tracks. In addition, components will also be able to pass access to an employee's official data from one component to another for individuals pending an upcoming assign- ment to a specific component. Security is the major focus for Release 1 testing. Approved For F2Ue"eL2%05gi/OS8/Q2F CIA FP88-00893R00020006000~91 Approved For F Ida ey26&0?42 FGIIAERbP88-008 R b 2.2.6 CONSTRAINTS The initial timing requirement for transferring data to PRIM in Re- lease 1 is geared to the update process of data in the HRS2 Data Base. The extract of HRS2 data for updating the PRIM System nightly must oc- cur after the complete nightly update of the HRS2 Data Base. On occa- sion, due to a timing problem with the HRS2 job stream PRIM may not get updated; however, this will not seriously impact the users. A message appears at Signon time of the last date of update to the Data Base. 2.2.7 REGRESSION TESTING All PRIM test cases will be documented using preplanned test formats for each and every test with accepted numbering and dating standards to ensure the capability of re-executing any given test or group of tests. The OP Analysts and IOC Test Officers test top down; there- fore, if an error is detected and fixed, the testers ensure that the change made will not adversely affect previously tested code. 2.2.8 DATA RECORDING There is a test packet for every test case which is made from specifi- cations received from the designers. The OP PRIM Analysts will review the results of all tests executed against these test packets. If an error is detected and corrected, the originator of the Problem Report must certify to the OP PRIM Analysts that he/she has retested the ap- plicable procedure and along with the retest date. Data Base Statis- tics between HRS2 and PRIM Data Lists will be analyzed daily and main- tained for at least 30 days after PRIM goes into Production. 2.2.9 EVALUATION Release 1 of PRIM is basically transferring "Official" data from the HRS2 Data Base to PRIM via extracts; therefore, testing of range of data values used, combination of input types used, etc are not appli- cable to PRIM in Release 1. In addition since PRIM is due to be up- dated nightly, the OP PRIM Analysts will not have to create test data for manipulation. Testing evaluation is basically one of evaluating security matrices, verifying the HRS2 INTERFACE coming in is applied properly and passing access to an employee's official data from one component to another. Approved For F IRa~eL20Q5 O /012 i.qAERPP88-00893R000200060006Za Approved For IWekd1;e-'2e0?/0%/e2F dIfr-F~bP88-008' 3P?obQvj?6raobb%31 2.2.10 TEST CASE MAINTENANCE The OP PRIM Analysts will maintain and file the results of all major or necessary tests during the acceptance phase or until Audit Staff has completed their audit of the system. Approved For ~elftsq.220R/V/~2P: ~I1-~DP88-00893R00020006000O11 oRJ crtvL: No. ?STA~_I N z_[_M _ I I DC_I oP Oiutcrivu: I I (Persoiinet Re-source Inforunition Management) SDD/A O13JIECF IVL: AUD ACTION PI.J1I1 -06 I__ 3ritx] + _ JIW,P111R = 1 APIZ-JtJN T-T1 JUI1S FP -- T 17T EXCI FDJNG PLA To provide a computer system satisfying the requirements components for personal_ data using the IIRS2 Data Base as I source of data with the capability to input and update component I data, and retrieve all data stored. ACTION PLAN (Milestones) 3.2 Design Phase/Detailed Design Development 3.2.1 Develop Detailed System Design Specifications 3.2.2 Develop System Integration 'Pest Plan 3.2.3 Develop Acceptance Test Plan 3.2.4 Develop Draft of Users Manual 3.2.5 Up late System Development Plan 3.2.6 Uixlate Data Speci ficaLIC56s Document 3.2.7 Ulx]a to Requirements Traceability Matrix 3.2.8 IJplate Interface control Dbxument 3.2.9 Conduct Critical Design Review I I = ME I ING PLAN _ I - BEHIND P] Af.J COMPLETION MOMI`II: SC71EI)[1LFD 0; ACIUJAL X FY: 134 IOCT NOV DEC JAN FL:II MAR APR MAY JIJtd JUL AUG SI I' I I I .1 I 'I I I I I I I I i I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I i I I I I I I I I i I I I I I I I I I I I I I I I I I I I I I I I I~ I I I I I I o-o-1------I_----+---- I I I i I I I I I ' I I I I I I I I I I 1 I I I 1- o- I-----}o--- I-----4 o---4 ----k---o; of Agency the prime FY I W KYRi DOLLARS #33 . 4.5 I 84 4.I_T--- I 135 4.1 86 1.2 0006-1 KL.SOUI UE ESTIMATE T-~ S I 11I'I IJ I I I I I I 1>__ ,.P=ersonnel I 4 4 5 4 4 4 4 4 4 Approved For Release 2005/08/02 : CIA-RDP88-00893R00 - PROJECT LIFE CYCU 1llA.F"' OWEC[IVL: AND ACTION PLAN I ORJECl'TVC NO. App)1 E 1 For a s jam; STATOW1 I I DC--I/OP I I I I- I I o ,c. r-r_vl I SDD/A/ODP I I (Per_sonnel Resource Infonwation Pt,nagement) To provide a computer system satisfying the components for personal data using t:he I1RS2 source of data with the capability to input data, and retrieve all data stored. I- requirements of Agency Data Base as the prime and ulxlate component ACTION PLAN (Milestones) 4.0 System Implementation/Integration Phase 4.1. Develop Program ManuaL 4.2 Develop Application M P0893ROO020006000~-1 Approved 08PIli6(6/R~,1AUb'0893R06k10(d-~ IF Signon Org ne DBMGRP THEN - PRINT message stating for data base manager use only endif; IF $A(2) EQ BLANK or $A(2) NE 'A' or $A(2) NE 'C' or $A(2) NE 'D' or $A(2) NE 'R' or $A(2) NE 'X' or $A(2) NE 'AS' THEN - PRINT message stating valid Action required - RUN EXIT-FOR-RESTART ELSE IF $A(3) EQ BLANK THEN - PRINT message stating Access Segment required - RUN EXIT-FOR-RESTART endif; endif; DO UNTIL SELECTION = 'YES' or SARRAY = 109 IF $A(SARRAY) NE BLANK THEN - SELECTION = 'YES' ELSE - SARRAY = SARRAY + 1 endif; enddo; IF SELECTION = 'NO' and $A(2) NE 'R' or 'D' THEN - PRINT error message requesting one selection field to be filled in - RUN EXIT-FOR-RESTART IF $A(2) EQ 'A' and null $A(3) THEN - PRINT error message requesting Text for Action 'A' - RUN EXIT-FOR-RESTART IF $A(2) EQ 'A' and present $A(3) (Add new to the SELECTION segment specified by Access Segment field on menu) THEN - RUN ACASE - RUN ADDCASE - RUN EXIT-FOR-MORE IF $A(2) EQ 'AS' (Add additional ORG and/or TEXT to SELECTION segment specified by Access Segment field on menu) THEN - RUN ASCASE - RUN ADDCASE - RUN EXIT-FOR-MORE Approved Ae1INT23 TKApf?925/ (0?NAC~I~ ftpPPpp-00893R000200060006-1 Approve 6*60' IkU494 $b0 6 'CVASFRbk~-00893Rv 02&060006-1 IF $A(2) EQ 'C' (Change entire Criteria) THEN - RUN CCASE - RUN ADDCASE - RUN EXIT-FOR-MORE IF $A(2) EQ 'D' (Delete all Criteria) THEN - RUN DCASE - RUN EXIT-FOR-MORE endif; IF $A(2) EQ 'R' (Retrieve current Criteria) THEN - RUN RCASE - RUN EXIT-FOR-MORE IF $A(2) EQ 'X' (Exit the Menu) THEN - RUN EXIT-FOR-NOMORE endif; DEC ACASE STMT temporary buffer area $A(3) array containing Access Segment $A(4) array containing Text enddec ACASE PROC ACASE (Build first part of an add statement using ADD NEW) (STMT = 'ADD NEW '//$A(3)//$QM//$A(3)//$QM//SLTEXT// $QM//$A(4)//$QM) endproc ACASE; DEC ASCASE BLANK STMT $A(3) $A(4) r r value temporary buffer array containing array containing area Access Segment Text PROC ASCASE (Build first part of statement using ADD verb) (STMT = 'ADD '//$A(3)//$QM//$A(3)//$QM) IF $A(4) NE BLANK THEN - continue add statement to include Text (STMT = STMT//' SLTEXT '//$QM//$A(4)//$QM) endif; endproc ASCASE DEC ADDCASE BLANK value STMT2 temporary buffer area A value 5 B value 6 Approved FoADF Mjqff8JR?. .Rqa-FRE8Mg893R000200060006-12 AD II ISTR~T6OJI6 a-F P8 66893R000 0086POO69 3 Approved For a ease value 7 value 8 value 9 value 10 value 11 $A(5 through 11) 1st line of Criteria data $A(12 through 18) 2nd line of Criteria data $A(19 through 25) 3rd line of Criteria data $A(26 through 32) 4th line of Criteria data $A(33 through 39) 5th line of Criteria data $A(40 through 46) 6th line of Criteria data $A(47 through 53) 7th line of Criteria data $A(54 through 60) 8th line of Criteria data $A(61 through 67) 9th line of Criteria data $A(68 through 74) 10th line of Criteria data $A(75 through 81) 11th line of Criteria data $A(82 through 88) 12th line of Criteria data $A(89 through 95) 13th line of Criteria data $A(96 through 102) 14th line of Criteria data $A(103 through 109) 15th line of Criteria data enddec ADDCASE PROC ADDCASE (Start at first array of each Criteria line and build a Criteria value. Separate each element with an asterisk and enclose each Criteria value in quotes) INITIATE STMT2 (STMT2 = ' SLCRITERIA ') DO for each Criteria line IF $A(A) $A(C) $A(E) $A(G) NE NE NE NE BLANK BLANK BLANK BLANK or or or $A(B) $A(D) $A(F) NE NE NE BLANK BLANK BLANK or or or THEN - include in endif; STMT2 (remove imbedded blanks) (STMT2 = STMT2//$QM//$A(A)//'::'//$A(B)//'' $A(C)//'::'//$A(D)//'::'//$A(E)//';;'//$A(F)// '"r//$A(G)//$QM) (STMT2 = $EAB(STMT2) INCREASE array values for next line enddo; A=A+7, B=B+7, C=C+7, D=D+7, E _ E + 7 , F = F + 7 , G= G+ 7 EXECUTE complete statement for Action A, AS, or C (using statements formed in ACASE, ASCASE, or CCASE with criteria value formed in ADDCASE) (&STMT &STMT2) endproc ADDCASE 9 rN" Q ,I MA-C f Q P88-00893R000200060006-1 Approve ONLY 23 Approved WV1,;G~49 ibb6'AI6.IAfA&)00893R02`'60 1 DEC CCASE BLANK value STMT temporary buffer area $A(3) (array containing Access Segment) $A(4) (array containing Text) enddec CCASE START with Access Segment and build a change statement (STMT = 'CHANGE '//$A(3)//$QM//$A(3)//$QM) IF $A(4) NE BLANK THEN - (continue statement to include Text) (STMT = STMT//' SLTEXT TO '//$QM//$A(4)//$QM) endif; EXTEND STMT to contain beginning of Criteria (STMT = STMT//' SLCRITERIA TO ') endproc CCASE DEC DCASE BLANK value STMT temporary buffer area $A(3) array containing access segment enddec DCASE START with Access Segment and build a delete statement (STMT = 'DELETE '//$A(3)//$QM//$A(3)//$QM //' SLCRITERIA ') EXECUTE &STMT endproc DCASE DEC RCASE Area value 5 $A(3) array containing Access Segment TEXT temporary area for SLTEXT value CRITERIA temporary area for SLCRITERIA value SD temporary area for SD value OCCE temporary area for OCCE value SCH temporary area for SCH value GRFM temporary area for GRFM value GRTO temporary area for GRTO value SCCE temporary area for SCCE value ORGCODE temporary area for ORGCODE value enddec RCASE (Execute ACQUIRE statement for Text and Criteria for Access Segment on menu) Approved f ff M~ft?gp5/ / :AgI-~ADg D0893R00020006000~41 Approved ~ * kT '16651 )b$N~IkKDPbbYO0893R0bb2bMtobbt31 (FOR &($A(3) '&($A(3)' ACQUIRE) GFAV SLTEXT TEXT = $W VOPRINT (1114,TEXT) DO for all Criteria in Access Segment SELECTION file GET SLCRITERIA (using GFAV and GNAV) CRITERIA = $W SD = $SBF(CRITERIA,0,1,'*') OCCE = $SBF(CRITERIA,1,1,'*') SCH = $SBF(CRITERIA,2,1,'*') GRFM = $SBF(CRITERIA,3,1,'*') GRTO = $SBF(CRITERIA,4,1,'*') SCCE _ $SBF(CRITERIA,5,1,'-,') ORGCODE = $SBF(CRITERIA,6,1,'-;') VOPRINT ('*I//$ALF(area)//','//SD) area = area + 1 VOPRINT ('*I//$ALF(area)//','//OCCE) area = area + 1 VOPRINT ('*I//$ALF(area)//','//SCH) area = area + 1 VOPRINT ('-,I//$ALF(area)//','//GRFM) area = area + 1 VOPRINT ('*I//$ALF(area)//','//GRTO) area = area + 1 VOPRINT ('*I//$ALF(area)//','//SCCE) area = area + 1 VOPRINT ('*I//$ALF(area)//','//ORGCODE) area = area + 1 enddo; endproc RCASE DEC EXIT-FOR-RESTART $A(2) array containing Action $A(3) array containing Access Segment $A(4) array containing Text $A(5-109) arrays containing Criteria data BLANK value enddec EXIT-FOR-RESTART IF $A(2) EQ BLANK or $A(2) NE 'A' or $A(2) NE 'C' or $A(2) NE 'D' or $A(2) NE 'R' or $A(2) NE 'X' or $A(2) NE 'AS' THEN - RELOCATE cursor to Action (*RL2) ELSE IF $A(3) EQ BLANK THEN - RELOCATE cursor to Access Segment (-,RL3) ELSE IF SELECTION = 'NO' THEN - RELOCATE cursor to first Criteria (*RL5) Approved AgTNgS'TRA-P-T18p5( (R&A~IAO-ppgR O0893R00020006000~51 Approved PWi T46T2W576b ~NtFAUkrD "0893R0c61c od6" ELSE IF $A(2) EQ 'A' and $A(4) EQ BLANK THEN - RELOCATE cursor to Text (*RL4) endif; endif; endif; endif; endproc EXIT-FOR-RESTART PROC EXIT-FOR-MORE VOPRINT '-C' clears menu VOPRINT '*Il,E PRCAESTB' establishes value in $A(l) VOPRINT '*+B' big buffer VOPRINT '%'RL2' relocate cursor to $A(2) endproc EXIT-FOR-MORE PROC EXIT-FOR-NOMORE VOPRINT '*-F' exit format mode VOPRINT '*C' clear entire screen endproc EXIT-FOR-NOMORE endproc PRCAESTB 4.3.3 PRCAUPDT - COMPONENT ACCESS UPDATE 4.3.3.1 PURPOSE This BATCHGIM II program is designed to gather all INTERFACE changes that will affect PRIM data access. HRS2 INTERFACE changes that would affect PRIM would be changes to SSNOR, SD, ORGCODE, SCHEDULE, GRADE, SUBCAT CODE, and/or OCCUPATIONAL SERIES CODE as well as any other data that may be required. See flow diagram in Figure 8 of the Appendix. Proc Name : PRCAUPDT Language Used: PLI (BATCHGIM II) Initiated By : Production Division - DBCC Frequency Of Execution : Will be done nightly as part of the HRS2/PRIM Interface. Input : ACCESSCTL file (DLID) HRS2 INTERFACE file (all data) Output : Extract disk file with the required HRS2 INTERFACE data. Approved ~ it i i 5/1Ni'ERNAYAU-- p PR~P0893R000200060009-1 Approved ftiWI~i~4T '65/ l'$Tb$i~ DIS?&y00893R0dd266O60dd6-1 DSN= 4.3.3.3 FUNCTIONAL DESCRIPTION This program will extract changes made to PERSIGN data in the HRS2 Data Base that also apply to PRIM. As updates are made to the HRS2 PERSIGN data, entries are made in two other files (ACCESSCTL and INTERFACE). The ACCESSCTL file is merely an access file and is used by all external data bases receiving PERSIGN data from HRS2. The INTERFACE file contains the actual from/to change that was made during the nightly update. The PRCAUPDT program will scan the ACCESSCTL file in the HRS2 Data Base for those records with a value in ACCPRIM. The DL/ID of these records will be retained by the program. After a complete scan of the ACCESSCTL file, the retained DL/ID's will be used to retrieve data from the HRS2 INTERFACE file. This data will be written to disk and will be used on the PRIM Data Base by the PRCHGLOAD procedure to update the PRIM PERSIGN or PRIMSEP file and the PRIM INTERFACE file. The final step of the PRCAUPDT program will delete the ACCPRIM values from the ACCESSCTL file to avoid redundant data moves. Input to this program will be all data from the HRS2 INTERFACE; Data file. The data extracted by this program will be placed on a disk. The disk will contain the DL/ID of the HRS2 INTERFACE record and all of the INTERFACE elements. A BATCHGIM II program used to extract the INTERFACE data from HRS2 to a disk. BATCHGIM II is being used in order to be consistent with oth- er systems using HRS2 INTERFACE data. When an external system wants to access HRS2 INTERFACE data it must first access the ACCESSCTL file to know which INTERFACE record have not already been seen. The ACCESSCTL file in HRS2 uses the same DL/ID values as INTERFACE file and contains flags for each system In- terfacing with HRS2 requiring INTERFACE data. PRIM flags will be in the ACCPRIM field. Once PRIM accesses an INTERFACE record, the access Approved ADMIRNISTRATJ.VE5/INTER NAL USA ONLY 0893R00020006000f-l Approved O~~ I Tid65/ ' /6iNldi kbP6byU0893R06626OOtObbt31 flag must be removed from the ACCESSCTL file to show that INTERFACE record has been reviewed and is no longer needed by PRIM. DEC PRCAUPDT ACCESSCTL ACCPRIM access flag $A single dimensional array INTERFACE data file LVL value 1 STMT temporary buffer area enddec PRCAUPDT PROC PRCAUPDT ACCESS HRS2 Data Base ORDER ACCESSCTL DO for all ACCESSCTL records (Execute ACQUIRE statement for ACCESSCTL records with a value in ACCPRIM) (FOR ACCESSCTL WITH PRESENT ACCPRIM ACQUIRE) $A = ACCESSCTL ($W) (load into next available array) enddo; IF no records found with present ACCPRIM THEN - print message that no records were found to move to PRIM ELSE (build extract statement to include all filled arrays) DO for all filled arrays IF $A(LVL) NE $AM THEN - INCLUDE in Extract statement) (STMT = STMT//$QM//$A(LVL)//$QM) endif; LVL = LVL + 1 enddo; IF STMT NE BLANK THEN - (execute statement to place data on disk) . $DISK,$DSN=G3P.A3176600...... $VOL=LOCATE FOR INTERFACE &STMT EXTRACT - (delete ACCPRIM flags from ACCESSCTL file for all filled arrays) FOR ACCESSCTL &STMT DELETE ACCPRIM - PRINT message notifying of successful completion and files are ready for load to PRIM endif; endproc PRCAUPDT Approved fIMM"5/ gRNACI~ D~R2VO0893R00020006000981 Approved ~Wi *Jk s Ti665hi&6~N I VDRbYO0893R0662b 4.3.4 PRCHGLOAD - COMPONENT ACCESS CHANGES ltob?31 This procedure is designed to use the output from the PRCAUPDT program to make updates to the PRIM PERSIGN or PRIMSEP file, update the Access INDEX files through XBRIDGES, and make an entry in the PRIM INTERINDX and INTERFACE files. See flow diagram in Figure 8 of the Appendix. Proc Name : PRCHGLOAD Language Used: GIM POL Initiated By : Production Division - DBCC Frequency Of Execution : Will be done nightly as part of the HRS2/PRIM Interface. Input : Disk produced by PRCAUPDT. DSN= Output : Updates will be made to the PRIM PERSIGN, PRIMSEP, INDEX files (SDINDX,ORGINDX,SCCEINDX, OCCEINDX,SSDINDX,SORGINDX,SSCCEINDX, SOCCEINDX), INTERINDX, and PRIM INTERFACE. The PRCHGLOAD procedure uses the disk file created by the PRCAUPDT procedure. The disk contains updates made to PERSIGN data in HRS2 which pertain to PRIM, as well as, data which will be required for the procedure to accurately analyze the updates. These records are used to build an update statement against the PRIM PERSIGN or PRIMSEP files, make an entry in the PRIM INTERINDX file and load the INTERFACE records into the PRIM INTERFACE file. When updates are made to the PRIM PERSIGN file XBRIDGES are evoked which cause updates to INDEX files. These INDEX files are used by the PRCRTLINK procedure to es- tablish daily links for Components at Signon time. No menu will be required for this procedure. The following statement will initiate the procedure: E PRCHGLOAD Approved fffINg sp?jSp5/ (P&A~IAUfRDg 00893R00020006000p91 Approved P Ii~~6T2 576bW~1 fAUkbO&bO893R00'( 2( Od 4.3.4.5 OUTPUT The output from the PRCHGLOAD procedures will be determined by the following specifications: DOWHILE the INTERFACE data is read from the disk: - Perform unique processing for the ZZ actions. (TBR) If the record contains an SSNOR change (both segments of IFCSIGN are different and the first segment of IFCSIGN NE $$$$$$$$$) then - change PERSIGN record - change SSNOR in SEGACCESS file (SYSMAN2+C) (TBR Release 2) endif; If record contains PRIM PERSIGN updates then - update PERSIGN record (which evokes XBRIDGING and updates INDEX files where applicable. - add record to PRIM INTERINDX with INPURGE (RUNDATE + 30). endif; If the record contains CEILING 'X' (separated employee) (IFCCEIL newside EQ 'X' oldside NE 'X') then - copy PRIM PERSIGN record to PRIMSEP - add SD, OCCE, SCCE, ORG separately to PRIMSEP (to evoke XBRIDGING and update INDEX files where applicable). - add reason for separation from INTERFACE (IFISEPCODE) to PRIMSEPCODE, separation date (IFCDOA(newside)) to PRIMSEPDTE. - add record to PRIM INTERINDX with INPURGE (RUNDATE + 30). endif; If the record contains CEILING 'X' or 'G' (updates to separated record) then - update PRIMSEP RECORD - add record to PRIM INTERINDX with INPURGE (RUNDATE + 30). endif; If the record contains an old CEILING 'X' and new CEILING NE 'X' or 'G' (cancellation of an immediate separation) then - add record to PRIM PERSIGN - add record to PRIM INTERINDX with INPURGE (RUNDATE + 30). enddowhile; If all updates are completed then - load all INTERFACE records into the PRIM INTERFACE file. Approved EM f1 k 5/ ~R ftIi~WPM~P0893R00020006000?-1 Approved t I TIU65/ '$T/biNti kbPbbYO0893R06626?060689-1 Using INTERFACE data placed on a disk by the PRCAUPDT procedure, this procedure must analyze each INTERFACE field, pertinent to PERSIGN, and make the appropriate changes to the PERSIGN or PRIMSEP file on PRIM. The process order will be guaranteed by doing an ORDER of the ACCESSCTL file before acquiring any records from it. The ACCESSCTL file is a file on HRS2 used to show which records have been accessed or have not been accessed by a system interfacing with HRS2. Changes to some PRIM PERSIGN fields will envoke XBRIDGES and up- date INDEX files as noted below: PERSD SDINDX PERORGCODE ORGINDX PEROCCE OCCEINDX PERSCCE SCCEINDX Changes to some PRIMSEP fields will envoke XBRIDGES and update INDEX files as noted below: PERSD SSDINDX PERORGCODE SORGINDX PEROCCE SOCCEINDX PERSCCE SSCCEINDX The HRS2 INTERFACE record will be added to the PRIM INTERFACE file, an entry with an INPURGE date will be added to INTERINDX, and an update date will be added to SYSER to notify components of the most recent HRS2/PRIM update. DEC PRCHGLOAD CSIGN Input value from disk, shows SSNOR change CCEIL Input value from disk, Shows record moving from Active to Separated NEWREC value received from BLDSTMT (CCEIL) enddec PRCHGLOAD PROC PRCHGLOAD RUN SETLVL DO FOR ALL INTERFACE records on Disk RUN READREC CSIGN NE BLANK (SSNOR CHANGE) THEN RUN SSNCHG pffi DPO ~Q0893R000200060006i1 Approved FA8f INT 1ff~MR5/ ?RN Approved ~$VWJf il4Tidbsa6ii ,)L9 4DPbbY00893R0662b?ot0bbb31 endif; $SBF(CCEIL,1,1,'*') EQ 'X' (new side) THEN RUN NEWSEP endif; NEWREC = 'YES' (NEW EOD) THEN RUN ADDNEW endif; RUN ADDREC enddo; FILE RECORD LVL01 INTER,CS LVL02 CACTREQ,C,5 LVL02 CAFF,C,7 LVL02 CAFFTXTL,C,49 LVL02 CANF,C,5 LVL02 CANO,C,7 LVL02 CANTYST,C,3 LVL02 CAORG,C,9 LVL02 CAPNTE,C,13 LVL02 CASALARY,C,15 LVL02 CCEIL,C,3 LVL02 CCIT,C,3 LVL02 CCOVDPT,C,7 LVL02 CCOVDPTXT,C,17 LVL02 CCOVDT,C,13 LVL02 CCOVORG,C,5 LVL02 CCOVORGTXT,C,25 LVL02 CCSEOD,C,13 LVL02 CDETC,C,5 LVL02 CDETONTE,C,13 LVL02 CDETTXTS,C,25 LVL02 CDEVC,C,5 LVL02 CDEVDI,C,13 LVL02 CDEVLAST,C,13 LVL02 CDEVNTE,C,13 LVL02 CDOA,C,13 LVL02 CDOB,C,13 LVL02 CDOG,C,13 LVL02 CETP,C,13 LVL02 CFLSA,C,3 LVL02 CFLSADT,C,13 LVL02 CGR,C,5 LVL02 CGRPRT1,C,11 LVL02 CGSDTXTS,C,11 LVL02 CHQTXTS,C,9 LVL02 CHRS,C,7 Approved ~e~5/1~NA~I~D~00893R0002000600021 Approved +WR~fk~"1bb5W I ikDO' BY00893R06b2b&%0 1 LVL02 CLCD,C,13 LVL02 CLEI,C,13 LVL02 CNAMEOR,C,49 LVL02 CNAMEOR3,C,7 LVL02 CNOA,C,5 LVL02 CNSCA,C,3 LVL02 CNSCADT,C,13 LVL02 CNTY,C,3 LVL02 COCCE,C,15 LVL02 COCCETXT,C,41 LVL02 COCCFAM,C,5 LVL02 COCCSUF,C,11 LVL02 CONAMEOR3,C,7 LVL02 CORGCODE,C,39 LVL02 CORGDTIN,C,13 LVL02 COVERLAP,C,19 LVL02 COVLAPING,C,19 LVL02 COVNTE,C,13 LVL02 CPAYB,C,5 LVL02 CPAYDT,C,13 LVL02 CPAYDTC,C,3 LVL02 CPDATE,C,13 LVL02 CPGVT,C,3 LVL02 CPOSNO,C,11 LVL02 CPRA,C,3 LVL02 CPRADI,C,13 LVL02 CPRANTE,C,13 LVL02 CPRMNTE,C,13 LVL02 CPROJNO,C,13 LVL02 CPWGI,C,13 LVL02 CRACE,C,3 LVL02 CRESV1,C,11 LVL02 CRESV2,C,11 LVL02 CRESV3,C,11 LVL02 CRESV4,C,21 LVL02 CRESV5,C,21 LVL02 CRETDI,C,13 LVL02 CRETNTE,C,13 LVL02 CRTMT,C,3 LVL02 CRTMTTXT,C,13 LVL02 CSALARY,C,15 LVL02 CSCCE,C,3 LVL02 CSCCESK,C,3 LVL02 CSCCETXTS,C,9 LVL02 CSCD,C,13 LVL02 CSCH,C,9 LVL02 CSCHGRSK1,C,5 LVL02 CSCHGRSK2,C,5 LVL02 CSCHPRT1,C,9 LVL02 CSD,C,7 LVL02 CSECCL,C,3 LVL02 CSEQ,C,7 LVL02 CSERIAL,C,15 LVL02 CSEX,C,3 Approved fgA? "Aer?005/ (RQ&A~IAU D~ 00893R00020006000f31 Approved 08~ I61aiiT2V(1P5'/biT6i ' 1AU b &b0893R0(62 Odd6A LVL02 CSFN,C,15 LVL02 CSIGN,C,19 LVL02 CSREF,C,5 LVL02 CSSNOTH,C,19 LVL02 CSTAN,C,13 LVL02 CSTANAREA,C,5 LVL02 CSTANTXT,C,51 LVL02 CSTEP2,C,5 LVL02 CSTIND,C,3 LVL02 CSTRCTR,C,5 LVL02 CTOA,C,5 LVL02 CTOUR,C,3 LVL02 CVET,C,3 LVL02 CWGIE,C,3 LVL02 GCUTOFFDT,C,6 LVL02 GPROJUPDTD,C,1 LVL02 IACTREQ,C,2 LVL02 IAFF,C,3 LVL02 IAL,C,2 LVL02 IANO,C,3 LVL02 IANPRPAY,C,2 LVL02 IANTYSAL,C,5 LVL02 IANTYST,C,1 LVL02 IAORG,C,4 LVL02 IAPNTE,C,6 LVL02 ICCANO,C,3 LVL02 ICCNOA,C,2 LVL02 ICCTOA,C,12 LVL02 ICIT,C,1 LVL02 ICSEOD,C,6 LVL02 ICTPCLASS,C,3 LVL02 IDETC,C,2 LVL02 IDETONTE,C,6 LVL02 IDEVC,C,2 LVL02 IDEVDI,C,6 LVL02 IDEVLAST,C,6 LVL02 IDEVNTE,C,6 LVL02 IDOA,C,6 LVL02 IDOB,C,6 LVL02 IDOG,C,6 LVL02 IETP,C,6 LVL02 IFLSA,C,l LVL02 IFLSADT,C,6 LVL02 IGR,C,2 LVL02 IHQ,C,1 LVL02 IHRS,C,3 LVL02 IINDT,C,6 LVL02 IINORIGDT,C,6 LVL02 ILCD,C,6 LVL02 ILEI,C,6 LVL02 ILWOPSTRT,C,4 LVL02 INAMEOR,C,24 LVL02 INAMEOR3,C,3 LVL02 INCPP,C,2 Approved E 1gfkk.5/ RREtIA~WPR~Q0893R00020006000?41 Approved t k Tit'65/ 7f ~NAd1 fCDPdbYO0893R06626086r0666-1 LVL02 INEWIDN,C,9 LVL02 INSCA,C,1 LVL02 INSCADT,C,6 LVL02 INTY,C,l LVL02 IOCCE,C,7 LVL02 IOCCSUF,C,5 LVL02 IOPERATOR,C,10 LVL02 IORGCODE,C,09 LVL02 IORGDTIN,C,6 LVL02 IOUTSK,C,3 LVL02 IOVERLAP,C,9 LVL02 IOVNTE,C,6 LVL02 IOVRD,C,2 LVL02 IPAYB,C,2 LVL02 IPGVT,C,1 LVL02 IPOSNO,C,5 LVL02 IPRA,C,1 LVL02 IPRADI,C,6 LVL02 IPRANTE,C,6 LVL02 IPRMNTE,C,6 LVL02 IPROJNO,C,6 LVL02 IPWGI,C,6 LVL02 IRACE,C,1 LVL02 IREMC,C,2 LVL02 IREMNS,C,69 LVL02 IRESV1,C,5 LVL02 IRESV2,C,5 LVL02 IRESV3,C,5 LVL02 IRESV4,C,10 LVL02 IRESV5,C,10 LVL02 IRETDI,C,6 LVL02 IRETNTE,C,6 LVL02 IRTMT,C,1 LVL02 ISALARY,C,7 LVL02 ISCCE,C,1 LVL02 ISCD,C,6 LVL02 ISCH,C,4 LVL02 ISD,C,3 LVL02 ISECCL,C,l LVL02 ISEPCODE,C,10 LVL02 ISEPCOMP,C,8 LVL02 ISERIAL,C,7 LVL02 ISEX,C,l LVL02 ISFN,C,7 LVL02 ISIGN,C,9 LVL02 ISREF,C,2 LVL02 ISSNOTH,C,9 LVL02 ISTAN,C,6 LVL02 ISTEP2,C,2 LVL02 ISUSPEN,C,2 LVL02 ITIDN,C,9 LVL02 ITNAME,C,24 LVL02 ITOA,C,12 LVL02 ITOASK,C,3 Approved A~MrIN1J KTIVE5/INTERNAI- USE O P0893R00020006000~51 Approved*b ~a I ldi AbiRS 00893R 2 606N 1 LVL02 ITOUR,C,l LVL02 ITRANS,C,10 LVL02 IVET,C,1 LVL02 IWGIE,C,1 LVL02 SAFF,C,3 LVL02 SANF,C,2 LVL02 SANO,C,3 LVL02 SAPNTE,C,6 LVL02 SCEIL,C,1 LVL02 SDEVC,C,2 LVL02 SDOB,C,6 LVL02 SDOG,C,6 LVL02 SGR,C,2 LVL02 SLEI,C,6 LVL02 SNAMEOR,C,24 LVL02 SPAYB,C,2 LVL02 SPGVT,C,1 LVL02 SPROJNO,C,6 LVL02 SRTMT,C,l LVL02 SSALARY,C,7 LVL02 SSCD,C,6 LVL02 SSCH,C,4 LVL02 SSERIAL,C,7 LVL02 SSFN,C,7 LVL02 SSTEP2,C,2 LVL02 STOUR,C,1 LVL02 INTERFACE,C,22 endproc SETLVL DEC READREC $DSN value = permanent data set name $VOL value = locate enddec READREC OPEN RECORD,INPUT,$DSN=DSN,$VOL='LOCATE',$DISK='DISK' DO for INPUT record GET Corresponding PERSIGN record FOR PERSIGN '&ISIGN' ACQUIRE PERSIGN IF record found in PERSIGN THEN FILE = 'PERSIGN' endif; GET Corresponding PRIMSEP record FOR PRIMSEP '&ISIGN' ACQUIRE PRIMSEP IF record found in PRIMSEP THEN FILE = 'PRIMSEP' ELSE FILE _ 'PERSIGN' endif; enddo; Approved EIKISesfT?925/P?~AC"~DERPyO0893RO0020006000~b1 Approved tW Ii TIb'fig/bM62i?ANbP8byOO893R0?02008600?631 endproc READREC DEC BLDSTMT BLANK value $A array area containing fields to be added $C array area containing fields to be changed $D array area containing fields to be deleted $E array area containing add to INTERFACE STMT value ' ' area contains SEPCODE and SEPDTE for PRIMSEP ONLY OLD old value of IFC item NEW new value of IFC item NEWREC value 'NO' - flags new EOD - see CCEIL enddec BLDSTMT use WHEN operator for this PROC IF CACTREQ NE BLANK THEN OLD=$SBF(CACTREQ,0,1,'%~') NEW=$SBF(CACTREQ,1,1,'*') $E=' CACTREQ '//$QM//CACTREQ//$QM $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERACTREQ '//$QM//OLD//$QM//' TO //$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERACTREQ '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERACTREQ '//$QM//OLD//$QM endif; endif; IF CAFF NE BLANK THEN OLD=$SBF(CAFF,0,1,'%*') NEW=$SBF(CAFF,l,l,'%.') $E=' CAFF '//$QM//CAFF//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERAFF TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERAFF '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERAFF '//$QM//OLD//$QM Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 ADMINISTRATIVE-INTERNAL USE ONLY 37 Approve dWh~63~W 1bb5Rt I-D 8Y00893R0bb2bbbt 0 endif; endif; IF CAFFTXTL NE BLANK THEN OLD=$SBF(CAFFTXTL,0,1,'*') NEW=$SBF(CAFFTXTL,1,1,'*') $E=' CAFFTXTL '//$QM//CAFFTXTL//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERAFFTXTL TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERAFFTXTL '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERAFFTXTL '//$QM//OLD//$QM endif; endif; IF CANF NE BLANK THEN OLD=$SBF(CANF,0,1,'*') NEW=$SBF(CANF,1,1,'*') $E=' CANF '//$QM//CANF//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERANF TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERANF '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERANF '//$QM//OLD//$QM endif; endif; IF CANO NE BLANK THEN OLD=$SBF(CANO,0,1,'%;') NEW=$SBF(CANO,1,1,'*') $E=' CANO '//$QM//CANO//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERANO TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERANO '//$QM//NEW//$QM endif; Approved F I hWj N I~ DP IQ0893R00020006000 81 Approved F i`f kWg Rb51( ?/ "'6TA bP$ '60893R00 }~0 'O0 i IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERANO '//$QM//OLD//$QM endif; endif; IF CANTYST NE BLANK THEN OLD=$SBF(CANTYST,0,1,'*') NEW=$SBF(CANTYST,1,1,'*') $E=' CANTYST '//$QM//CANTYST//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERANTYST TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERANTYST '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERANTYST '//$QM//OLD//$QM endif; endif; IF CAORG NE BLANK THEN OLD=$SBF(CAORG,0,1,'*') NEW=$SBF(CAORG,1,1,'*') $E=' CAORG '//$QM//CAORG//$QM IF $SBF(OLD,O,l) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERAORG TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERAORG '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERAORG '//$QM//OLD//$QM endif; endif; IF CAPNTE NE BLANK THEN OLD=$SBF(CAPNTE,0,1,'*') NEW=$SBF(CAPNTE,l,1,'-;') $E=' CAPNTE '//$QM//CAPNTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERAPNTE TO '//$QM//NEW//$QM endif; Approved AB~INI-S ATIVE5/pN~j ACf,It-T ~88Y00893R000200060006--91 Approved +W1 ~ T~W1bb5 I Di` 00893RD 2 6" 1 IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERAPNTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERAPNTE '//$QM//OLD//$QM endif; endif; IF CASALARY NE BLANK THEN OLD=$SBF(CASALARY,0,1,'-;') NEW=$SBF(CASALARY,1,1,'*') $E=' CASALARY '//$QM//CASALARY//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERASALARY TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERASALARY '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERASALARY '//$QM//OLD//$QM endif; endif; IF CCEIL NE BLANK THEN OLD=$SBF(CCEIL,0,1,'*') NEW=$SBF(CCEIL,1,1,'*') $E=' CCEIL '//$QM//CCEIL//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' and NEW NE 'X' and NEW NE 'G' THEN $C=' PERCEIL TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCEIL '//$QM//NEW//$QM NEWREC = 'YES' (new EOD) endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERCEIL '//$QM//OLD//$QM endif; endif; IF CCIT NE BLANK THEN OLD=$SBF(CCIT,0,1,'') NEW=$SBF(CCIT,1,1,'*') $E=' CCIT '//$QM//CCIT//$QM Approved F%f1"t.5/RREI-~P0R~~D0893R00020006000~~ Approved O8P li6T2VF5/bbT ,61AU bF966'y00893R0( 626 IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCIT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCIT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERCIT '//$QM//OLD//$QM endif; endif; IF CCOVDPT NE BLANK THEN OLD=$SBF(CCOVDPT,0,1,'*') NEW=$SBF(CCOVDPT,l,l,'';') $E=' CCOVDPT '//$QM//CCOVDPT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCOVDPT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCOVDPT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERCOVDPT '//$QM//OLD//$QM endif; endif; IF CCOVDPTXT NE BLANK THEN OLD=$SBF(CCOVDPTXT,0,1,'*') NEW=$SBF(CCOVDPTXT,1,1,'*') $E=' CCOVDPTXT '//$QM//CCOVDPTXT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCOVDPTXT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCOVDPTXT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERCOVDPTXT '//$QM//OLD//$QM endif; endif; IF CCOVDT NE BLANK THEN OWL) Approved Jff& ft,,M5f ffiA~IQADg 00893R0002000600046 1 Approved FPIiiiiiT2T0'5169N6AUIkbb0893R06k00M OLD=$SBF(CCOVDT,0,1,'*') NEW=$SBF(CCOVDT,1,1,'*') $E=' CCOVDT '//$QM//CCOVDT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCOVDT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCOVDT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERCOVDT '//$QM//OLD//$QM endif; endif; IF CCOVORG NE BLANK THEN OLD=$SBF(CCOVORG,0,1,'*') NEW=$SBF(CCOVORG,1,1,'*') $E=' CCOVORG '//$QM//CCOVORG//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCOVORG TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCOVORG '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERCOVORG '//$QM//OLD//$QM endif; endif; IF CCOVORGTXT NE BLANK THEN OLD=$SBF(CCOVORGTXT,0,1,'*') NEW=$SBF(CCOVORGTXT,1,1,'';') $E=' CCOVORGTXT '//$QM//CCOVORGTXT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCOVORGTXT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCOVORGTXT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERCOVORGTXT '//$QM//OLD//$QM endif; endif; Approved ~g1~~51I~P~Q0893R00020006000~21 Approved #W I~ T2b'63/ f $N 1 DI560893R066260060( 6631 IF CCSEOD NE BLANK THEN OLD=$SBF(CCSEOD,0,1,'-.') NEW=$SBF(CCSEOD,1,1,'-,') $E=' CCSEOD '//$QM//CCSEOD//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERCSEOD TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERCSEOD '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERCSEOD '//$QM//OLD//$QM endif; endif; IF CDETC NE BLANK THEN OLD=$SBF(CDETC,0,1,'"') NEW=$SBF(CDETC,1,1,'*') $E=' CDETC '//$QM//CDETC//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERDETC TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDETC '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDETC '//$QM//OLD//$QM endif; endif; IF CDETONTE NE BLANK THEN OLD=$SBF(CDETONTE,0,1,'*') NEW=$SBF(CDETONTE,1,1,'"') $E=' CDETONTE '//$QM//CDETONTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERDETONTE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDETONTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' Approved For Release 2005/08/0 : CIA RDPON8 00893R00020006000643 Approved &1l2Sis&5766'IN&tA2b-60893R0(SM THEN $D=' PERDETONTE '//$QM//OLD//$QM endif; endif; IF CDETTXTS NE BLANK THEN OLD=$SBF(CDETTXTS,0,1,'*') NEW=$SBF(CDETTXTS,1,1,'*') $E=' CDETTXTS '//$QM//CDETTXTS//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDETTXTS TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDETTXTS '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDETTXTS '//$QM//OLD//$QM endif; endif; IF CDEVC NE BLANK THEN OLD=$SBF(CDEVC,0,1,'-,') NEW=$SBF(CDEVC,1,1,'-.') $E=' CDEVC '//$QM//CDEVC//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDEVC TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDEVC '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDEVC '//$QM//OLD//$QM endif; endif; IF CDEVDI NE BLANK THEN OLD=$SBF(CDEVDI,0,1,1-1) NEW=$SBF(CDEVDI $E=' CDEVDI '//$QM//CDEVDI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDEVDI TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDEVDI '//$QM//NEW//$QM ApprovedA~pirl TRR,? 05TRWALCIN-ff~NJJ 00893R0002000600( ~-1 Approved kW"LT 4db5Md2NNEIA31 00893Rd&2 6dd& 1 endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDEVDI '//$QM//OLD//$QM endif; endif; IF CDEVLAST NE BLANK THEN OLD=$SBF(CDEVLAST,0,1,'*') NEW=$SBF(CDEVLAST,1,1,'*') $E_' CDEVLAST '//$QM//CDEVLAST//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDEVLAST TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDEVLAST '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDEVLAST '//$QM//OLD//$QM endif; endif; IF CDEVNTE NE BLANK THEN OLD=$SBF(CDEVNTE,0,1,'%;') NEW=$SBF(CDEVNTE,1,1,'*') $E=' CDEVNTE '//$QM//CDEVNTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDEVNTE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDEVNTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDEVNTE '//$QM//OLD//$QM endif; endif; IF CDOA NE BLANK THEN OLD=$SBF(CDOA,0,1,'%') NEW=$SBF(CDOA,1,1,'*') $E=' CDOA '//$QM//CDOA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERDOA TO '//$QM//NEW//$QM endif; Approved FAKFMTR Approved FA8~1II~ii~a"1T0516NN6AUkb4-b0893R00'032Od IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDOA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERDOA '//$QM//OLD//$QM endif; endif; IF CDOB NE BLANK THEN OLD=$SBF(CDOB,0,1,'*') NEW=$SBF(CDOB,1,1,'*') $E=' CDOB '//$QM//CDOB//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERDOB TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDOB '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERDOB '//$QM//OLD//$QM endif; endif; IF CDOG NE BLANK THEN OLD=$SBF(CDOG,0,1,'*') NEW=$SBF(CDOG,1,1,'*') $E=' CDOG '//$QM//CDOG//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERDOG TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERDOG '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERDOG '//$QM//OLD//$QM endif; endif; IF CETP NE BLANK THEN OLD=$SBF(CETP,0,1,'*') NEW=$SBF(CETP,1,1,'**') $E=' CETP '//$QM//CETP//$QM Approved fgr{t14/RRACIi~POR~,~0893R00020006000~61 Approved t Wik Ti&65/ $T/6~ t k-kbP 1by00893R0dd268O6066d-1 IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERETP TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERETP '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERETP '//$QM//OLD//$QM endif; endif; IF CFLSA NE BLANK THEN OLD=$SBF(CFLSA,0,1,'*') NEW=$SBF(CFLSA,1,1,'*') $E=' CFLSA '//$QM//CFLSA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERFLSA TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERFLSA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERFLSA '//$QM//OLD//$QM endif; endif; IF CFLSADT NE BLANK THEN OLD=$SBF(CFLSADT,0,1,'%') NEW=$SBF(CFLSADT,1,1,'*') $E=' CFLSADT '//$QM//CFLSADT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERFLSADT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERFLSADT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERFLSADT '//$QM//OLD//$QM endif; endif; IF CGR NE BLANK THEN OLD=$SBF(CGR,0,1,'`') Approved FA%INI~;Ra~ff/QRMNRAMP $0893R000200060006-) Approved ~l&*Jk Tidb5 /6~i~~I 4DObbYO0893R06626?IOtObbt31 NEW=$SBF(CGR,1,1,'*') $E=' CGR '//$QM//CGR//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERGR TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERGR '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERGR '//$QM//OLD//$QM endif; endif; IF CGRPRT1 NE BLANK THEN OLD=$SBF(CGRPRT1,0,1,'*') NEW=$SBF(CGRPRT1,1,1,'7'C') $E=' CGRPRT1 '//$QM//CGRPRTI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERGRPRT1 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERGRPRTI '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERGRPRT1 '//$QM//OLD//$QM endif; endif; IF CGSDTXTS NE BLANK THEN OLD=$SBF(CGSDTXTS,0,1,'*') NEW=$SBF(CGSDTXTS,1,1,'*') $E=' CGSDTXTS '//$QM//CGSDTXTS//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERGSDTXTS TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERGSDTXTS '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERGSDTXTS '//$QM//OLD//$QM endif; endif; Approved ffm"5/giNAC"~D~RPy00893R00020006000~81 Approved +W0,;fi?WWibb5IAi DO8YO0893R0bb2 t0W 1 IF CHQTXTS NE BLANK THEN OLD=$SBF(CHQTXTS,0,1,'k') NEW=$SBF(CHQTXTS,l,l,'*') $E=' CHQTXTS '//$QM//CHQTXTS//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERHQTXTS TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERHQTXTS '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERHQTXTS '//$QM//OLD//$QM endif; endif; IF CHRS NE BLANK THEN OLD=$SBF(CHRS,0,1,'*') NEW=$SBF(CHRS,1,1,1*') $E=' CHRS '//$QM//CHRS//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERHRS TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERHRS '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERHRS '//$QM//OLD//$QM endif; endif; IF CLCD NE BLANK THEN OLD=$SBF(CLCD,0,1,'*') NEW=$SBF(CLCD,1,1,'%;') $E=' CLCD '//$QM//CLCD//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERLCD TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERLCD '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERLCD '//$QM//OLD//$QM Approved fffI~? sAeTREQ54?JEQ :A~I~ADg 00893R00020006000&1 Approved FAS~1I l~i~a 1681 ~"&PA bP -b0893R00d2 406" endif; endif; IF CLEI NE BLANK THEN OLD=$SBF(CLEI,0,1,'*') NEW=$SBF(CLEI,1,1,'-;') $E_' CLEI '//$QM//CLEI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERLEI TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERLEI '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERLEI '//$QM//OLD//$QM endif; endif; IF CNAMEOR NE BLANK THEN OLD=$SBF(CNAMEOR,0,1,'-;') NEW=$SBF(CNAMEOR,1,1,'*') $E=' CNAMEOR '//$QM//CNAMEOR//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERNAMEOR TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNAMEOR '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA THEN $D=' PERNAMEOR '//$QM//OLD//$QM endif; endif; IF CONAME03 NE BLANK THEN OLD=$SBF(CONAME03,0,1,'*') NEW=$SBF(CONAME03,1,1,'-;') $E=' IFCONAMEOR3 '//$QM//CONAME03//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERONAMEOR3 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERONAMEOR3 '//$QM//NEW//$QM endif; Approved ffi-I~g !,pp5f"%.A~l~ADg 00893R0002000600060-1 Approved P;~ I+ Ti&65MTbi~ 1AUkbPgbYO0893R0dd26686068i '1 IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERONAMEOR3 '//$QM//OLD//$QM endif; endif; IF CNOA NE BLANK THEN OLD=$SBF(CNOA,0,1,'*') NEW=$SBF(CNOA,1,1,'*') $E=' CNOA '//$QM//CNOA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERNOA '//$QM//OLD//$QM//'TO'//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNOA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERNOA '//$QM//OLD//$QM endif; endif; IF CNSCA NE BLANK THEN OLD=$SBF(CNSCA,0,1,'*') NEW=$SBF(CNSCA,1,1,'*') $E=' CNSCA '//$QM//CNSCA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERNSCA TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNSCA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERNSCA '//$QM//OLD//$QM endif; endif; IF CNSCADT NE BLANK THEN OLD=$SBF(CNSCADT,0,1,'`') NEW=$SBF(CNSCADT,1,1,'*') $E=' CNSCADT '//$QM//CNSCADT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERNSCADT TO '//$QM//NEW//$QM endif; Approved ADMR~e}eS eA 0~~5/g N~~A fflP $0893R000200060006- j Approved 06V i6Tai4TIU65MT/6iNbkkbPgbYO0893R06626?0$0666 1 IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNSCADT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERNSCADT '//$QM//OLD//$QM endif; endif; IF CNTY NE BLANK THEN OLD=$SBF(CNTY,0,1,'*') NEW=$SBF(CNTY,1,1,'*') $E=' CNTY '//$QM//CNTY//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE THEN $C=' PERNTY TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNTY '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERNTY '//$QM//OLD//$QM endif; endif; IF COCCE NE BLANK THEN OLD=$SBF(COCCE,0,1,'*') NEW=$SBF(COCCE,1,1,'*') $E=' COCCE '//$QM//COCCE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE $' THEN $C=' PEROCCE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROCCE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PEROCCE '//$QM//OLD//$QM endif; endif; IF COCCETXT NE BLANK THEN OLD=$SBF(COCCETXT,0,1,'*') NEW=$SBF(COCCETXT,1,1,'*') $E=' COCCETXT '//$QM//COCCETXT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE $' Approved FRR flfft5/JNACI1~-DP0?R0893R00020006000~21 Approved W~Ikik~"1bb51 / INWDN18YO0893R0bb2bwt0 1 THEN $C=' PEROCCETXT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,O,1) EQ '$' THEN $A=' PEROCCETXT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PEROCCETXT '//$QM//OLD//$QM endif; endif; IF COCCFAM NE BLANK THEN OLD=$SBF(COCCFAM,0,1,'%;') NEW=$SBF(COCCFAM,1,1,'*') $E=' COCCFAM '//$QM//COCCFAM//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PEROCCFAM TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROCCFAM '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PEROCCFAM '//$QM//OLD//$QM endif; endif; IF COCCSUF NE BLANK THEN OLD=$SBF(COCCSUF,0,1,'*') NEW=$SBF(COCCSUF,1,1,'*') $E=' COCCSUF '//$QM//COCCSUF//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PEROCCSUF TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROCCSUF '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PEROCCSUF '//$QM//OLD//$QM endif; endif; IF CNAMEOR3 NE BLANK THEN OLD=$SBF(CNAMEOR3,0,1,'*') NEW=$SBF(CNAMEOR3,1,1,'*') Approved A6r,N?MPTREQ54 /EQ]&A~I~ADg 00893R000200060003631 Approved V8MWT 1 05 I DW 8Y00893R0bb2 X60 1 $E=' CNAMEOR3 //$QM//CNAMEOR3//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERNAMEOR3 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERNAMEOR3 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERNAMEOR3 '//$QM//OLD//$QM endif; endif; IF CORGCODE NE BLANK THEN OLD=$SBF(CORGCODE,0,1,'*') NEW=$SBF(CORGCODE,1,1,'-;') $E=' CORGCODE //$QM//CORGCODE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERORGCODE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERORGCODE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERORGCODE '//$QM//OLD//$QM endif; endif; IF CORGDTIN NE BLANK THEN OLD=$SBF(CORGDTIN,0,1,'*') NEW=$SBF(CORGDTIN,1,1,'*') $E=' CORGDTIN //$QM//CORGDTIN//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERORGDTIN TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERORGDTIN '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERORGDTIN '//$QM//OLD//$QM endif; endif; Approved F$fi Igo?R. 5/" &,IACWPCR-f 0893R000200060006-41 Approved Fo `elleaslbb5%(i/&A6A60893R00?10b0W-4 THEN OLD=$SBF(COVERLAP,0,1,'*') NEW=$SBF(COVERLAP,1,1,'*') $E=' COVERLAP '//$QM//COVERLAP//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PEROVERLAP TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROVERLAP '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PEROVERLAP '//$QM//OLD//$QM endif; endif; IF COVLAPING NE BLANK THEN OLD=$SBF(COVLAPING,0,1,'*') NEW=$SBF(COVLAPING,1,1,'*') $E=' COVLAPING '//$QM//COVLAPING//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PEROVLAPING TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROVLAPING '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PEROVLAPING '//$QM//OLD//$QM endif; endif; IF COVNTE NE BLANK THEN OLD=$SBF(COVNTE,0,1,'*') NEW=$SBF(COVNTE,1,1,'*') $E=' COVNTE '//$QM//COVNTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PEROVNTE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PEROVNTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PEROVNTE '//$QM//OLD//$QM endif; Approved ~ ~~5/ ~ NACLIAU pOR~P0893R00020006000~51 or We16iaiiTk&5/biT6i~'1AUkbPgb-YO0893R0dd2600$0669-31 Approved endif; IF CPAYB NE BLANK THEN OLD=$SBF(CPAYB,0,1,'-;') NEW=$SBF(CPAYB,1,1,'*') $E=' CPAYB '//$QM//CPAYB//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPAYB TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPAYB '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPAYB '//$QM//OLD//$QM endif; endif; IF CPAYDT NE BLANK THEN OLD=$SBF(CPAYDT,0,1,' NEW=$SBF(CPAYDT,1,1,'-.') $E=' CPAYDT '//$QM//CPAYDT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPAYDT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPAYDT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPAYDT '//$QM//OLD//$QM endif; endif; IF CPAYDTC NE BLANK THEN OLD=$SBF(CPAYDTC,0,1,'%.') NEW=$SBF(CPAYDTC,1,1,'*') $E=' CPAYDTC '//$QM//CPAYDTC//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPAYDTC TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPAYDTC '//$QM//NEW//$QM endif; ApprovedAf t 0511pf%ALCIN-~~N> -00893R0002000600~~-1 Approved *8Vk~Wi~g1bbB)EiI~A6IRD'O00893RO6b26'0W 1 IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPAYDTC '//$QM//OLD//$QM endif; endif; IF CPDATE NE BLANK THEN OLD=$SBF(CPDATE,0,1,'*') NEW=$SBF(CPDATE,1,1,'*') $E=' CPDATE '//$QM//CPDATE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPDATE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPDATE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERPDATE '//$QM//OLD//$QM endif; endif; IF CPGVT NE BLANK THEN OLD=$SBF(CPGVT,0,1,'*') NEW=$SBF(CPGVT,1,1,'*') $E=' CPGVT '//$QM//CPGVT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPGVT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPGVT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPGVT '//$QM//OLD//$QM endif; endif; IF CPOSNO NE BLANK THEN OLD=$SBF(CPOSNO,0,1,'*') NEW=$SBF(CPOSNO,1,1,'%1') $E=' CPOSNO '//$QM//CPOSNO//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPOSNO TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' Approved FA$~ gHgli% /INTERNAI- USE O~> P0893R00020006000?~1 Approved FQri i~ikal0 5%69ITHN I'AUIkb 1'b0893R00'0310 00V&-I THEN $A=' PERPOSNO '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERPOSNO '//$QM//OLD//$QM endif; endif; IF CPRA NE BLANK THEN OLD=$SBF(CPRA,0,1,'*') NEW=$SBF(CPRA,1,1,'*') $E=' CPRA '//$QM//CPRA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPRA TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPRA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPRA '//$QM//OLD//$QM endif; endif; IF CPRADI NE BLANK THEN OLD=$SBF(CPRADI,0,1,'%;') NEW=$SBF(CPRADI,1,1,'*') $E=' CPRADI '//$QM//CPRADI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPRADI TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPRADI '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPRADI '//$QM//OLD//$QM endif; endif; IF CPRANTE NE BLANK THEN OLD=$SBF(CPRANTE,0,1,'*') NEW=$SBF(CPRANTE,1,1,'*') $E=' CPRANTE '//$QM//CPRANTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPRANTE TO '//$QM//NEW//$QM Approved ffr 1 4 / RRAqI4jEpPoR~,P0893R00020006000%1 Approved 081&Tai4T2'(X55/T~t1AkbP6&'Y00893R0(626*0(8d-) endif ; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPRANTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPRANTE '//$QM//OLD//$QM endif; endif; IF CPRMNTE NE BLANK THEN OLD=$SBF(CPRMNTE,0,1,'%;') NEW=$SBF(CPRMNTE,1,1,'k') $E=' CPRMNTE '//$QM//CPRMNTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPRMNTE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPRMNTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPRMNTE '//$QM//OLD//$QM endif; endif; IF CPROJNO NE BLANK THEN OLD=$SBF(CPROJNO,0,1,'*') NEW=$SBF(CPROJNO,1,1,'?;') $E=' CPROJNO '//$QM//CPROJNO//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPROJNO TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPROJNO '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERPROJNO '//$QM//OLD//$QM endif; endif; IF CPWGI NE BLANK THEN OLD=$SBF(CPWGI,0,1,'*') NEW=$SBF(CPWGI,1,1,'*') $E=' CPWGI '//$QM//CPWGI//$QM Approved A%F0gjgR?ffjINTERNAZ- USEP0NLY0893R00020006000~91 Approved I IkIk kI T16651 /b~"`~lk-WOk8YO0893R0bb2b IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERPWGI TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERPWGI '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERPWGI '//$QM//OLD//$QM endif; endif; IF CRACE NE BLANK THEN OLD=$SBF(CRACE,0,1,'';') NEW=$SBF(CRACE,1,1,'%;') $E=' CRACE '//$QM//CRACE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRACE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRACE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERRACE '//$QM//OLD//$QM endif; endif; IF CRESV1 NE BLANK THEN OLD=$SBF(CRESV1,0,1,'*') NEW=$SBF(CRESV1,1,1,'%1') $E=' CRESVI '//$QM//CRESVI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRESV1 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRESV1 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRESV1 '//$QM//OLD//$QM endif; endif; IF CRESV2 NE BLANK THEN tob1 Approved flICI.?e95/1(l93~ACID~00893R00020006000po1 Approved #W~ F : Wi6651 /b~~~Ik#DP~bYO0893R06626OOtOb OLD=$SBF(CRESV2,0,1,'*') NEW=$SBF(CRESV2,1,1,'*') $E=' CRESV2 '//$QM//CRESV2//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRESV2 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRESV2 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRESV2 '//$QM//OLD//$QM endif; endif; IF CRESV3 NE BLANK THEN OLD=$SBF(CRESV3,0,1,'*') NEW=$SBF(CRESV3,1,1,'*') $E=' CRESV3 '//$QM//CRESV3//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,O,1) NE '$' THEN $C=' PERRESV3 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRESV3 '//$QM//NEW//$QM endif; IF $SBF(NEW,O,1) EQ '$' THEN $D=' PERRESV3 '//$QM//OLD//$QM endif; endif; IF CRESV4 NE BLANK THEN OLD=$SBF(CRESV4,0,1,'*') NEW=$SBF(CRESV4,1,1,'*') $E_' CRESV4 '//$QM//CRESV4//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRESV4 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRESV4 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRESV4 '//$QM//OLD//$QM endif; endif; Approved AgINgSfiRsMap5/P&A~IA-ADg00893R00020006000911 Approved ~&lk'~i~i4hT2b)bt7dbk~N6ALAbFkg#-bO893RO6nMDMDV6~LI IF CRESV5 NE BLANK THEN OLD=$SBF(CRESV5,0,1,1-1) NEW=$SBF(CRESV5,1,1,1 *1 ) $E=' CRESV5 '//$QM//CRESV5//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRESV5 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRESV5 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRESV5 '//$QM//OLD//$QM endif; endif; IF CRETDI NE BLANK THEN OLD=$SBF(CRETDI,0,1,'-;') NEW=$SBF(CRETDI,1,1,'1;') $E=' CRETDI '//$QM//CRETDI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRETDI TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRETDI '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRETDI '//$QM//OLD//$QM endif; endif; IF CRETNTE NE BLANK THEN OLD=$SBF(CRETNTE,0,1,'-,') NEW=$SBF(CRETNTE,1,1,'*') $E=' CRETNTE '//$QM//CRETNTE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRETNTE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRETNTE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' Approved ~~Nf tz ~el~ts~t 8~5/ ~ NAT- Dg 00893R00020006000P21 Approved MWk~W2665'$T62NALEIADP8by00893R06626009066t31 THEN $D=' PERRETNTE '//$QM//OLD//$QM endif; endif; IF CRTMT NE BLANK THEN OLD=$SBF(CRTMT,0,1,'*') NEW=$SBF(CRTMT,1,1,'-*') $E=' CRTMT '//$QM//CRTMT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRTMT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRTMT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRTMT '//$QM//OLD//$QM endif; endif; IF CRTMTTXT NE BLANK THEN OLD=$SBF(CRTMTTXT,0,1,'*') NEW=$SBF(CRTMTTXT,1,1,'*') $E=' CRTMTTXT '//$QM//CRTMTTXT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERRTMTTXT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERRTMTTXT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERRTMTTXT '//$QM//OLD//$QM endif; endif; IF CSALARY NE BLANK THEN OLD=$SBF(CSALARY,0,1,'*') NEW=$SBF(CSALARY,1,1,'*') $E_' CSALARY '//$QM//CSALARY//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSALARY TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSALARY '//$QM//NEW//$QM Approved ADMIRNI~'t~~!INTERfAL USA PONLY0893R000200060006651 Approved FAaP"~i6T2V(5/t~IAUDM0893R06626'Od0631 endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSALARY '//$QM//OLD//$QM endif; endif; IF CSCCE NE BLANK THEN OLD=$SBF(CSCCE,0,1,'*') NEW=$SBF(CSCCE,1,1,'*') $E=' CSCCE '//$QM//CSCCE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCCE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCCE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSCCE '//$QM//OLD//$QM endif; endif; IF CSCCESK NE BLANK THEN OLD=$SBF(CSCCESK,0,1,'*') NEW=$SBF(CSCCESK,1,1,'*') $E=' CSCCESK '//$QM//CSCCESK//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCCESK TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCCESK '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSCCESK '//$QM//OLD//$QM endif; endif; IF CSCCETXTS NE BLANK THEN OLD=$SBF(CSCCETXTS,0,1,'*') NEW=$SBF(CSCCETXTS,1,1,'"') $E=' CSCCETXTS '//$QM//CSCCETXTS//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCCETXTS TO '//$QM//NEW//$QM endif; Approved f&rIl g et.?gQ5f/ :A~I~SRDg 00893R000200060006641 Approved 9kig"W ` 5166kV IX DW8Y00893R0bb2 6 1 IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCCETXTS '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSCCETXTS '//$QM//OLD//$QM ; endif, endif; IF CSCD NE BLANK THEN OLD=$SBF(CSCD,0,1,'*') NEW=$SBF(CSCD,1,1,''') $E=' CSCD '//$QM//CSCD//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCD TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCD '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSCD '//$QM//OLD//$QM endif; endif; IF CSCH NE BLANK THEN OLD=$SBF(CSCH,0,1,'*') NEW=$SBF(CSCH,1,1,'*') $E=' CSCH '//$QM//CSCH//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCH TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCH '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSCH '//$QM//OLD//$QM endif; endif; IF CSCHGRSK1 NE BLANK THEN OLD=$SBF(CSCHGRSK1,0,1,'*') NEW=$SBF(CSCHGRSK1,1,1,'*') $E=' CSCHGRSK1 '//$QM//CSCHGRSKI//$QM Approved AF$MAII MW I RFNACLIAU "RPP0893R00020006000R51 Approved 0kTid65MTbi~ikbPb'by00893R0662600606661 IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCHGRSK1 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCHGRSK1 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSCHGRSK1 '//$QM//OLD//$QM endif; endif; IF CSCHGRSK2 NE BLANK THEN OLD=$SBF(CSCHGRSK2,0,1,'*') NEW=$SBF(CSCHGRSK2,1,1,'-') $E=' CSCHGRSK2 '//$QM//CSCHGRSK2//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCHGRSK2 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCHGRSK2 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSCHGRSK2 '//$QM//OLD//$QM endif; endif; IF CSCHPRT1 NE BLANK THEN OLD=$SBF(CSCHPRT1,0,1,'*') NEW=$SBF(CSCHPRT1,1,1,'*') $E=' CSCHPRT1 '//$QM//CSCHPRTI//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSCHPRT1 TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSCHPRT1 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSCHPRT1 '//$QM//OLD//$QM endif; endif; IF CSD NE BLANK THEN OLD=$SBF(CSD,0,1,'%;') Approved FgRFogt?R. 5/Qpl%& AOWP 1Q0893R00020006000%61 Approved ~BI~~T25/~1AUb0893R0(0~2(0(~~I NEW=$SBF(CSD,1,1,'*') $E=' CSD '//$QM//CSD//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSD TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSD '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSD '//$QM//OLD//$QM endif; endif; IF CSECCL NE BLANK THEN OLD=$SBF(CSECCL,0,1,'*') NEW=$SBF(CSECCL,1,1,'*') $E=' CSECCL '//$QM//CSECCL//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSECCL TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSECCL '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSECCL '//$QM//OLD//$QM endif; endif; IF CSEQ NE BLANK THEN OLD=$SBF(CSEQ,0,1,'`') NEW=$SBF(CSEQ,1,1,'k') $E=' CSEQ '//$QM//CSEQ//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSEQ TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSEQ '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSEQ '//$QM//OLD//$QM endif; endif; Approved NACLIAUEDP?? P0893R00020006000g~1 Approved OBPI~lai~T2T(Y(1P5/T~t4iAUD15>M0893R066266A6066631 IF CSERIAL NE BLANK THEN OLD=$SBF(CSERIAL,0,1,'%;') NEW=$SBF(CSERIAL,1,1,'*') $E=' CSERIAL '//$QM//CSERIAL//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSERIAL TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSERIAL '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSERIAL '//$QM//OLD//$QM endif; endif; IF CSEX NE BLANK THEN OLD=$SBF(CSEX,0,1,'*') NEW=$SBF(CSEX,1,1,'%,') $E=' CSEX '//$QM//CSEX//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSEX TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSEX '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSEX '//$QM//OLD//$QM endif; endif; IF CSFN NE BLANK THEN OLD=$SBF(CSFN,0,1,'*') NEW=$SBF(CSFN,1,1,'*') $E=' CSFN '//$QM//CSFN//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSFN TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSFN '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSFN '//$QM//OLD//$QM Approved Illg&ei,?9p5/A~I~SRDg;00893R00020006000A 1 Approved Vk;W"g ?` 5#E 6kF2NP X--W& 8Y00893R0bb2 6* 1 endif; endif; IF CSREF NE BLANK THEN OLD=$SBF(CSREF,0,1,'*') NEW=$SBF(CSREF,1,1,'*') $E=' CSREF '//$QM//CSREF//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSREF '//$QM//OLD//$QM//'TO'//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSREF '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSREF '//$QM//OLD//$QM endif; endif; IF CSSNOTH NE BLANK THEN OLD=$SBF(CSSNOTH,O,l,'*') NEW=$SBF(CSSNOTH,1,1,'*') $E=' CSSNOTH '//$QM//CSSNOTH//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSSNOTH TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSSNOTH '//$QM//NEW//$QM endif ; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSSNOTH '//$QM//OLD//$QM endif; endif; IF CSTAN NE BLANK THEN OLD=$SBF(CSTAN,0,1,'*') NEW=$SBF(CSTAN,1,1,'*') $E=' CSTAN '//$QM//CSTAN//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTAN TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTAN '//$QM//NEW//$QM endif; Approved ~re~s,?185/(~AC~I-pg,00893R00020006000g91 Approved 06VI'ii~Tai4T &/&T6i~ k-kbP?&'Y00893R0( 626tl66O6dd-~ IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSTAN '//$QM//OLD//$QM endif; endif; IF CSTANAREA NE BLANK THEN OLD=$SBF(CSTANAREA,0,1,",-') NEW=$SBF(CSTANAREA,1,1,'-;') $E=' CSTANAREA '//$QM//CSTANAREA//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTANAREA TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTANAREA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSTANAREA '//$QM//OLD//$QM endif; endif; IF CSTANTXT NE BLANK THEN OLD=$SBF(CSTANTXT,0,1,'*') NEW=$SBF(CSTANTXT,1,1,'*') $E=' CSTANTXT '//$QM//CSTANTXT//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTANTXT TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTANTXT '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERSTANTXT '//$QM//OLD//$QM endif; endif; IF CSTEP2 NE BLANK THEN OLD=$SBF(CSTEP2,0,1,'*') NEW=$SBF(CSTEP2,1,1,'`') $E=' CSTEP2 '//$QM//CSTEP2//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTEP2 TO '//$QM//NEW//$QM endif; Approved FABnFo~"R ( 5/4p/ &RJA LPPJR.Q0893R000200060006-a Approved F &l 4~is& 166'l N&l'A 2bW-b0893R00 20 0 4 IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTEP2 '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSTEP2 '//$QM//OLD//$QM endif; endif; IF CSTIND NE BLANK THEN OLD=$SBF(CSTIND,0,1,'*') NEW=$SBF(CSTIND,1,1,'%;') $E=' CSTIND '//$QM//CSTIND//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTIND TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTIND '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSTIND '//$QM//OLD//$QM endif; endif; IF CSTRCTR NE BLANK THEN OLD=$SBF(CSTRCTR,0,1,'*') NEW=$SBF(CSTRCTR,1,1,'*') $E=' CSTRCTR '//$QM//CSTRCTR//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERSTRCTR '//$QM//OLD//$QM//' TO //$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERSTRCTR '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERSTRCTR '//$QM//OLD//$QM endif; endif; IF CTOA NE BLANK THEN OLD=$SBF(CTOA,0,1,'-') NEW=$SBF(CTOA,1,1,'*') $E=' CTOA '//$QM//CTOA//$QM Approved ~ ~~5/ NACU EDP0R~P0893R00020006000911 Approved 06~IiATid65MT/bi~'did-kbPgby00893R0662608$066931 IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERTOA '//$QM//OLD//$QM//'TO'//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERTOA '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERTOA '//$QM//OLD//$QM endif; endif; IF CTOUR NE BLANK THEN OLD=$SBF(CTOUR,0,1,'*') NEW=$SBF(CTOUR,1,1,'%;') $E=' CTOUR '//$QM//CTOUR//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERTOUR TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERTOUR '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERTOUR '//$QM//OLD//$QM endif; endif; IF CVET NE BLANK THEN OLD=$SBF(CVET,0,1,'*') NEW=$SBF(CVET,1,1,'*') $E=' CVET '//$QM//CVET//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERVET TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERVET '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' THEN $D=' PERVET '//$QM//OLD//$QM endif; endif; IF CWGIE NE BLANK THEN OLD=' ',OLD=$SBF(CWGIE,0,1,'%*') Approved -I~Vktnll 95fM ~eL~ De 00893R0002000600Q-1 -Iftiigtbb5Mi 2ND tIA44D*8Y00893R0 2 661 1 Approved NEW=$SBF(CWGIE,1,1,1*') $E=' CWGIE '//$QM//CWGIE//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=' PERWGIE TO '//$QM//NEW//$QM endif; IF $SBF(OLD,0,1) EQ '$' THEN $A=' PERWGIE '//$QM//NEW//$QM endif; IF $SBF(NEW,0,1) EQ '$' (only occurs if ITOA = 'ZZ') THEN $D=' PERWGIE '//$QM//OLD//$QM endif; endif; IF GCUTOFFDT NE BLANK THEN $E=' GCUTOFFDT '//$QM//GCUTOFFDT//$QM endif; IF GPROJUPDTD NE BLANK THEN $E_' GPROJUPDTD '//$QM//GPROJUPDTD//$QM endif; IF IACTREQ NE BLANK THEN $E_' IACTREQ '//$QM//IACTREQ//$QM endif; IF IAFF NE BLANK THEN $E_' IAFF '//$QM//IAFF//$QM endif; IF IAL NE BLANK THEN $E=' IAL '//$QM//IAL//$QM endif; IF IANO NE BLANK THEN $E=' IANO '//$QM//IANO//$QM endif; IF IANPRPAY NE BLANK THEN $E=' IANPRPAY '//$QM//IANPRPAY//$QM endif; IF IANTYSAL NE BLANK THEN $E_' IANTYSAL '//$QM//IANTYSAL//$QM endif; IF IANTYST NE BLANK THEN $E_' IANTYST '//$QM//IANTYST//$QM endif; IF IAORG NE BLANK THEN $E=' IAORG '//$QM//IAORG//$QM Approved For R IISTRATIO( 5/INTEI~I~ALI USA ORN~ 0893R00020006000931 Approved endif; IF IAPNTE NE BLANK THEN $E=' IAPNTE '//$QM//IAPNTE//$QM endif; IF ICCANO NE BLANK THEN $E=' ICCANO '//$QM//ICCANO//$QM endif; IF ICCNOA NE BLANK THEN $E=' ICCNOA '//$QM//ICCNOA//$QM endif; IF ICCTOA NE BLANK THEN $E=' ICCTOA '//$QM//ICCTOA//$QM endif; IF ICIT NE BLANK THEN $E=' ICIT '//$QM//ICIT//$QM endif; IF ICSEOD NE BLANK THEN $E=' ICSEOD '//$QM//ICSEOD//$QM endif; IF ICTPCLASS NE BLANK THEN $E=' ICTPCLASS '//$QM//ICTPCLASS//$QM endif; IF IDETC NE BLANK THEN $E=' IDETC '//$QM//IDETC//$QM endif; IF IDETONTE NE BLANK THEN $E=' IDETONTE '//$QM//IDETONTE//$QM endif; IF IDEVC NE BLANK THEN $E=' IDEVC '//$QM//IDEVC//$QM endif; IF IDEVDI NE BLANK THEN $E=' IDEVDI '//$QM//IDEVDI//$QM endif; IF IDEVLAST NE BLANK THEN $E=' IDEVLAST '//$QM//IDEVLAST//$QM endif; IF IDEVNTE NE BLANK THEN $E=' IDEVNTE '//$QM//IDEVNTE//$QM endif; Approved ~jg~r8~5/l~A~IDg,00893R00020006000~41 Approved OBVIii~4T'65/b'676i~4dibPdb'y00893R066266060669-1 IF IDOA NE BLANK THEN $E=' IDOA '//$QM//IDOA//$QM endif; IF IDOB NE BLANK THEN $E=' IDOB '//$QM//IDOB//$QM endif; IF IDOG NE BLANK THEN $E=' IDOG '//$QM//IDOG//$QM endif; IF IETP NE BLANK THEN $E_' IETP '//$QM//IETP//$QM endif; IF IFLSA NE BLANK THEN $E=' IFLSA '//$QM//IFLSA//$QM endif; IF IFLSADT NE BLANK THEN $E=' IFLSADT '//$QM//IFLSADT//$QM endif; IF IGR NE BLANK THEN $E=' IGR '//$QM//IGR//$QM endif; IF IHQ NE BLANK THEN $E=' IHQ '//$QM//IHQ//$QM endif; IF IHRS NE BLANK THEN $E=' IHRS '//$QM//IHRS//$QM endif; IF IINDT NE BLANK THEN $E_' IINDT '//$QM//IINDT//$QM endif; IF IINORIGDT NE BLANK THEN $E_' IINORIGDT '//$QM//IINORIGDT//$QM endif; IF ILCD NE BLANK THEN $E=' ILCD '//$QM//ILCD//$QM endif; IF ILEI NE BLANK THEN $E_' ILEI '//$QM//ILEI//$QM endif; IF ILWOPSTRT NE BLANK THEN $E_' ILWOPSTRT '//$QM//ILWCPSTRT//$QM Approved FA~re}eSeA~~~S/~ I&AJPP$0893R000200060006yj1 Approved bVkb~W;W, bI~ 00893R kd&OV 1 IF IOVERLAP NE BLANK THEN $E=' IOVERLAP '//$QM//IOVERLAP//$QM endif; IF IOVNTE NE BLANK THEN $E_' IOVNTE '//$QM//IOVNTE//$QM endif; IF IOVRD NE BLANK THEN $E=' IOVRD '//$QM//IOVRD//$QM endif; IF IPAYB NE BLANK THEN $E=' IPAYB '//$QM//IPAYB//$QM endif; IF IPGVT NE BLANK THEN $E_' IPGVT '//$QM//IPGVT//$QM endif; IF IPOSNO NE BLANK THEN $E=' IPOSNO '//$QM//IPOSNO//$QM endif; IF IPRA NE BLANK THEN $E_' IPRA '//$QM//IPRA//$QM endif; IF IPRADI NE BLANK THEN $E=' IPRADI '//$QM//IPRADI//$QM endif; IF IPRANTE NE BLANK THEN $E=' IPRANTE '//$QM//IPRANTE//$QM endif; IF IPRMNTE NE BLANK THEN $E=' IPRMNTE '//$QM//IPRMNTE//$QM endif; IF IPROJNO NE BLANK THEN $E_' IPROJNO '//$QM//IPROJNO//$QM endif; IF IPWGI NE BLANK THEN $E=' IPWGI '//$QM//IPWGI//$QM endif; IF IRACE NE BLANK THEN $E=' IRACE '//$QM//IRACE//$QM endif; IF IREMC NE BLANK THEN $E_' IREMC '//$QM//IREMC//$QM Approved FAc t e eA Q NR PP 0893R0002000600061) Approved 'b0893R0(2(0(d(?I endif; IF INAMEOR NE BLANK THEN $E=' INAMEOR '//$QM//INAMEOR//$QM endif; IF INAMEOR3 NE BLANK THEN $E=' INAMEOR3 '//$QM//INAMEOR3//$QM endif; IF INCPP NE BLANK THEN $E=' INCPP '//$QM//INCPP//$QM endif; IF INEWIDN NE BLANK THEN $E=' INEWIDN '//$QM//INEWIDN//$QM endif; IF INSCA NE BLANK THEN $E=' INSCA '//$QM//INSCA//$QM endif; IF INSCADT NE BLANK THEN $E=' INSCADT '//$QM//INSCADT//$QM endif; IF INTY NE BLANK THEN $E=' INTY '//$QM//INTY//$QM endif; IF IOCCE NE BLANK THEN $E_' IOCCE '//$QM//IOCCE//$QM endif; IF IOCCSUF NE BLANK THEN $E=' IOCCSUF '//$QM//IOCCSUF//$QM endif; IF IOPERATOR NE BLANK THEN $E_' IOPERATOR '//$QM//IOPERATOR//$QM endif; IF IORGCODE NE BLANK THEN $E=' IORGCODE '//$QM//IORGCODE//$QM endif; IF IORGDTIN NE BLANK THEN $E=' IORGDTIN '//$QM//IORGDTIN//$QM endif; IF IOUTSK NE BLANK THEN $E=' IOUTSK '//$QM//IOUTSK//$QM endif; ApprovedA gAM,mRTM51RMA, PI ff Os- 008938000200060006-1 Approved FA~~1 i~SiiaT2T0 5766 N l'AUFkb ' b0893R00 2 Od endif; IF IREMNS NE BLANK THEN $E=' IREMNS '//$QM//IREMNS//$QM endif; IF IRESV1 NE BLANK THEN $E=' IRESV1 '//$QM//IRESV1//$QM endif; IF IRESV2 NE BLANK THEN $E=' IRESV2 '//$QM//IRESV2//$QM endif; IF IRESV3 NE BLANK THEN $E=' IRESV3 '//$QM//IRESV3//$QM endif; IF IRESV4 NE BLANK THEN $E=' IRESV4 '//$QM//IRESV4//$QM endif; IF IRESV5 NE BLANK THEN $E=' IRESV5 '//$QM//IRESV5//$QM endif; IF IRETDI NE BLANK THEN $E=' IRETDI '//$QM//IRETDI//$QM endif; IF IRETNTE NE BLANK THEN $E=' IRETNTE '//$QM//IRETNTE//$QM endif; IF IRTMT NE BLANK THEN $E=' IRTMT '//$QM//IRTMT//$QM endif; IF ISALARY NE BLANK THEN $E=' ISALARY '//$QM//ISALARY//$QM endif; IF ISCCE NE BLANK THEN $E=' ISCCE '//$QM//ISCCE//$QM endif; IF ISCD NE BLANK THEN $E=' ISCD '//$QM//ISCD//$QM endif; IF ISCH NE BLANK THEN $E=' ISCH '//$QM//ISCH//$QM endif; Approved kMMW?995/pi~AqI4jDERfl00893R00020006000~81 Approved PkTIU65fT6T/6iN1kbPgby00893R066260060688-1 IF ISD NE BLANK THEN $E=' ISD '//$QM//ISD//$QM endif; IF ISECCL NE BLANK THEN $E_' ISECCL '//$QM//ISECCL//$QM endif; IF ISEPCODE NE BLANK THEN $E=' ISEPCODE '//$QM//ISEPCODE//$QM STMT=' PRIMSEPCODE '//$QM//ISEPCODE//$QM// //' PRIMSEPDTE '//$QM//IDOA//$QM IF ISEPCOMP NE BLANK THEN $E=' ISEPCOMP '//$QM//ISEPCOMP//$QM endif; IF ISERIAL NE BLANK THEN $E_' ISERIAL '//$QM//ISERIAL//$QM endif; IF ISEX NE BLANK THEN $E_' ISEX '//$QM//ISEX//$QM endif; IF ISFN NE BLANK THEN $E=' ISFN '//$QM//ISFN//$QM endif; IF ISIGN NE BLANK THEN $E=' ISIGN '//$QM//ISIGN//$QM endif; IF ISREF NE BLANK THEN $E=' ISREF '//$QM//ISREF//$QM endif; IF ISSNOTH NE BLANK THEN $E=' ISSNOTH '//$QM//ISSNOTH//$QM endif; IF ISTAN NE BLANK THEN $E=' ISTAN '//$QM//ISTAN//$QM endif; IF ISTEP2 NE BLANK THEN $E=' ISTEP2 '//$QM//ISTEP2//$QM endif; IF ISUSPEN NE BLANK THEN $E=' ISUSPEN '//$QM//ISUSPEN//$QM endif; Approved AMFO ERR , 5/ MN' RA ~P $0893R000200060006~j Approved 081 1~iiiT 65/&Tbii 16 kbPbbYO0893ROO62600606?631 IF ITIDN NE BLANK THEN $E=' ITIDN '//$QM//ITIDN//$QM endif; IF ITNAME NE BLANK THEN $E=' ITNAME '//$QM//ITNAME//$QM endif; IF ITOA NE BLANK THEN $E=' ITOA '//$QM//ITOA//$QM endif; IF ITOASK NE BLANK THEN $E=' ITOASK '//$QM//ITOASK//$QM endif; IF ITOUR NE BLANK THEN $E=' ITOUR '//$QM//ITOUR//$QM endif; IF ITRANS NE BLANK THEN $E=' ITRANS '//$QM//ITRANS//$QM endif; IF IVET NE BLANK THEN $E=' IVET '//$QM//IVET//$QM endif; IF IWGIE NE BLANK THEN $E=' IWGIE '//$QM//IWGIE//$QM endif; IF SAFF NE BLANK THEN $E=' SAFF '//$QM//SAFF//$QM endif; IF SANF NE BLANK THEN $E=' SANF '//$QM//SANF//$QM endif; IF SANO NE BLANK THEN $E=' SANO '//$QM//SANO//$QM endif; IF SAPNTE NE BLANK THEN $E=' SAPNTE '//$QM//SAPNTE//$QM endif; IF SCEIL NE BLANK THEN $E=' SCEIL '//$QM//SCEIL//$QM endif; IF SDEVC NE BLANK THEN $E=' SDEVC '//$QM//SDEVC//$QM Approved gA"ItA0 Rffl ~ICIN~D 00893R0002000600%-1 Approved #W; lam'16651 / NibIAJWDkbYO0893R0662bMtobW1 endif ; IF SDOB NE BLANK THEN $E=' SDOB '//$QM//SDOB//$QM endif; IF SDOG NE BLANK THEN $E=' SDOG '//$QM//SDOG//$QM endif; IF SGR NE BLANK THEN $E=' SGR '//$QM//SGR//$QM endif; IF SLEI NE BLANK THEN $E=' SLEI '//$QM//SLEI//$QM endif; IF SNAMEOR NE BLANK THEN $E=' SNAMEOR '//$QM//SNAMEOR//$QM endif; IF SPAYB NE BLANK THEN $E_' SPAYB '//$QM//SPAYB//$QM endif; IF SPGVT NE BLANK THEN $E_' SPGVT '//$QM//SPGVT//$QM endif; IF SPROJNO NE BLANK THEN $E=' SPROJNO '//$QM//SPROJNO//$QM endif; IF SRTMT NE BLANK THEN $E_' SRTMT '//$QM//SRTMT//$QM endif; IF SSALARY NE BLANK THEN $E=' SSALARY '//$QM//SSALARY//$QM endif; IF SSCD NE BLANK THEN $E=' SSCD '//$QM//SSCD//$QM endif; IF SSCH NE BLANK THEN $E_' SSCH '//$QM//SSCH//$QM endif; IF SSERIAL NE BLANK THEN $E_' SSERIAL '//$QM//SSERIAL//$QM endif; Approved Ag IINIglRRIJW/INTERNAZ- USE ORLY0893R00020006000?i1 Approved &lgi Tib6si/b~N` 9 KDPbbYO0893ROa626?b~0bbi31 IF SSFN NE BLANK THEN $E=' SSFN '//$QM//SSFN//$QM endif; IF SSTEP2 NE BLANK THEN $E=' SSTEP2 '//$QM//SSTEP2//$QM endif; IF STOUR NE BLANK THEN $E=' STOUR '//$QM//STOUR//$QM endif; endproc BLDSTMT DEC SSNCHG CSIGN Input value from disk to check for SSN Change OLD NEW $C $E old side of CSIGN new side of CSIGN statement to change DL/ID (SSNOR) part of statement for INTERFACE record PROC SSNCHG IF CSIGN NE BLANK THEN OLD=$SBF(CSIGN,0,1,'*') NEW=$SBF(CSIGN,1,1,'*') $E=' CSIGN '//$QM//CSIGN//$QM IF $SBF(OLD,0,1) NE '$' and $SBF(NEW,0,1) NE '$' THEN $C=FILE//$QM//OLD//$QM//' TO $QM//NEW//$QM endif; CHANGE &($C) $C = BLANK endif; endproc SSNCHG DEC ADDREC $A $C $D LVL $E FILE STMT STMTS all values to be added all values to be changed all values to be deleted current array level all values to be added to INTERFACE file changes are to be applied to SEPCODE and SEPDTE for PRIMSEP add only concatenation of array values for execution Approved FgnMR~RRA( 5/4 /%& IAdWP -f 0893R00020006000%) Approved FWif &'~b` tld,?/T&Nd4LRb 60893R00 00Mi IF $C NE BLANK THEN LVL = 1 STMTS = 'FOR '//FILE//' CHANGE DO UNTIL LVL GT $CM STMTS = STMTS//$C(LVL) LVL = LVL + 1 enddo; &STMTS (execute change statememt) $C=BLANK, STMTS=BLANK endif; IF $A NE BLANK or STMT NE BLANK THEN LVL = 1 STMTS = 'FOR '//FILE//' ADD DO UNTIL LVL GT $AM STMTS = STMTS//$A(LVL) LVL = LVL + 1 enddo; &STMTS &STMT (execute add statement) $A=BLANK, STMTS=BLANK endif; IF $D NE BLANK AND ITOA NE 'ZZ' THEN LVL = 1 STMTS = 'FOR '//FILE//' DELETE DO UNTIL LVL GT $DM STMTS = STMTS//$D(LVL) LVL = LVL + 1 enddo; &STMTS (execute delete statement) $D=BLANK, STMTS=BLANK, STMT=BLANK endif; IF $E NE BLANK THEN LVL = 1 STMTS = 'ADD INTERFACE '//INTERFACE DO UNTIL LVL GT $EM STMTS = STMTS//$E(LVL) LVL = LVL + 1 enddo; &STMTS (update INTERFACE file) $E=BLANK, STMTS=BLANK endif; Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 DMINISTRATIVE-INTERNAL USE ONLY 83 Approved O;V I T Ti665f /6iN1I KnPbbYO0893R0662600$0666 1 DEC ADDNEW $A all values to be added NEWREC flag to designate new record ISIGN INPUT value from disk containing record DL/ID IF $A NE BLANK THEN LVL = 1 STMTS = 'ADD NEW PERSIGN '//$QM//ISIGN//$QM DO UNTIL LVL GT $AM STMTS = STMTS//$A(LVL) LVL = LVL + 1 enddo; &STMTS (add new PERSIGN record) $A=BLANK, STMTS=BLANK endif; endproc ADDNEW DEC NEWSEP FILE value received in READREC 'PERSIGN' ISIGN value received on input enddec NEWSEP PROC NEWSEP FOR &FILE '&ISIGN' MOVE REPLACE TO PRIMSEP DELETE &FILE '&ISIGN' FILE = 'PRIMSEP' endproc NEWSEP endproc PRCHGLOAD 4.3.5 PRCATRSF - TRANSFER COMPONENT ACCESS When an employee has been nominated for reassignment consideration to another component, the owning component can electronically provide the requesting component with the employee's biographic data. If a Compo- Approved fMM~ft?gp5//PA~I,~-ODg00893R00020006000p41 Approved iV1,;figiiVg1 3 I 4kDO`I' 8YO0893R0bb2 0 1 nent wants to extend a Purge Date (PRGDTE) to avoid losing a record from it's access, that Component must use the PRACCUPDT (Access Up- date) menu to change the PRGDTE. See flow diagram in Figure 9 of the Appendix. Proc Name : PRCATRSF Language Used: GIM POL Initiated By : Component owning the employee Input : Menu parameters SSNOR of transferring employee SYSMAN2 Signon ORG PRGDTE (Purge Date) Output : The SSNOR will be copied from one SEGACCESS file to another. The PRCATRSF procedure is used by one component to pass an employee's SSNOR to another component, thus creating a link to the employee's bi- ographic data. This will be done when that employee is being nominat- ed for an assignment to another component or transferred temporarily to the other component. The sending component should enter a Purge Date. If the employee is actually assigned to the receiving office, the Purge Date will be removed by an entry in the HRS2 INTERFACE file via the PRCAUPDT procedure. If the employee is not reassigned, the entire entry made for the employee in the receiving office's file will be removed by the PRNTEPRG procedure. The SEGACCESS file with the use of Security update keys will allow the component owning the record to delete an SSNOR passed in error to another component. Access to this procedure will be controlled through a key in the SYSMAN2 file. NOTE: If Access is required to an official record and no ownership has been established in PRIM for that record, the component must request the PRIM Data Base Manager to transfer the record. This procedure will utilize the following menu which will be stored in the MENU-FORMATS file: E PRCATRSF (Component Access Transfer) ACTION: (A) ADD (D) DELETE (X) EXIT Approved AIINgMq~p54(EQ&A~I~ADgR00893R00020006000p51 Approved F li%f~is& 766MN6~A bFP8''$~b0893R00a 4 SSNOR/STATUS: STATUS: A - Active S- Separated SYSMAN2 PURGE DATE SYSMAN2 PURGE DATE MENU ITEM DESCRIPTION (R) ACTION: Action (A,D,X) (LA01) (R) SSNOR: Social Security Number (LN09) (R) STATUS: Active or Separated Employee (LA01) (R) SYSMAN2: ORG Receiving Employee Info (LA06) (0) PURGE DATE: Purge Date (YYMMDD) (LN06) If Action = 'X' then - exit the procedure. endif; If Purge Date = blank then - create PRGDTE (current date + 90) endif; If Action = 'A' or 'D' and null SSNOR, STATUS, and/or null SYSMAN2 then - issue error message (Required fields must be present) endif; If Action = 'A' and present SSNOR, STATUS and SYSMAN2 then - use the SYSMAN2 Signon ORG to verify ownership (service designation on record EQ SD field of SELECTION Criteria). ,ff-I~g M75 1 / :A~I~SRDg ;00893R00020006000861 Approved Approved #iWI;~ Ti&65/ 6 , Idi fC006b)'00893R06d266O6068d-31 If any menu STATUS = 'A' then - Build add statement for each active SYSMAN2 entry - Add SSNOR, and PRGDTE to each SEGACCESS segment as designated by SYSMAN2 entry(ies) on menu. Active SSNOR(s) will be added to SYSMAN2+A EX: Add (SYSMAN2+A) ' ' PRGDTE ' endif ; If any menu STATUS = 'S' then - Build add statement for each separated SYSMAN2 entry - Add SSNOR, and PRGDTE to each SEGACCESS segment as designated by SYSMAN2 entry(ies) on menu. Separated SSNOR(s) will be added to SYSMAN2+S EX: Add (SYSMAN2+S) ' ' PRGDTE ' endif; endif; If Action = 'D' and present SYSMAN2 on menu NE SYSMAN2 Signon ORG then - Use the SYSMAN2 Signon ORG to verify Ownership (SD on record EQ SD field of SELECTION Criteria). If any menu STATUS = 'A' then - Build delete statements for each SYSMAN2 entry on the menu. - Delete SSNOR with null SDTE from each active SEGACCESS segment as designated by the SYSMAN2 entry(ies) on the menu. Active records will be deleted from SYSMAN2+A. EX: Delete (SYSMAN2+A) ' ' when null SDTE. If any menu STATUS = 'S' then - Build delete statements for each SYSMAN2 entry on the menu. - Delete SSNOR with null SSDTE from each separated SEGACCESS segment as designated by the SYSMAN2 entry(ies) on the menu. Separated records will be deleted from SYSMAN2+S. endif; endif; EX: Delete (SYSMAN2+S) ' ' when null SSDTE. A component can transfer an employee's record if the component owns that record. Ownership is valid if the SD of the record equals the SD in the components SELECTION Criteria (SD is first segment of Cri- Approved For ADMINISTRA Release 2 VE /0 NTERNAL USE PML-g0893R000200060006 I Approved ~ ~giPi(1F(TMi ff 41CIWSfk6i-00893Rdd026666686d-1 teria). The initiating component is determined by the Signon ORG ($UNAMEl). DEC PRCATRSF BLANK value ERRSW value SLVL value 11 (SYSMAN2 level) SWCH value 'OFF' $A single dimensional array $A(2) $A(3) $A(4) $A(5) $A(6) $A(7) $A(8) $A(9) $A(10) $A(11) $A(12) $A(13) $A(14) $A(15) $A(16) $A(17) $A(18) $A(19) $A(20) $A(21) $A(22) $A(23) $A(24) $A(25) $A(26) $A(27) $A(28) $A(29) $A(30) $A(31) $A(32) $A(33) $A(34) $A(35) $A(36) $A(37) $A(38) $A(39) $A(40) $A(41) $A(42) area containing Action 1st SSNOR Status for $A(3) 2nd SSNOR Status for $A(5) 3rd SSNOR Status for $A(7) 4th SSNOR Status for $A(9) 1st SYSMAN2 Purge date for 1st SYSMAN2 2nd SYSMAN2 Purge date for 2nd SYSMAN2 3rd SYSMAN2 Purge date for 3rd SYSMAN2 4th SYSMAN2 Purge date for 4th SYSMAN2 5th SYSMAN2 Purge date for 5th SYSMAN2 6th SYSMAN2 Purge date for 6th SYSMAN2 7th SYSMAN2 Purge date for 7th SYSMAN2 8th SYSMAN2 Purge date for 8th SYSMAN2 9th SYSMAN2 Purge date for 9th SYSMAN2 10th SYSMAN2 Purge date for 10th SYSMAN2 11th SYSMAN2 Purge date for 11th SYSMAN2 12th SYSMAN2 Purge date for 12th SYSMAN2 13th SYSMAN2 Purge date for 13th SYSMAN2 14th SYSMAN2 Purge date for 14th SYSMAN2 15th SYSMAN2 Purge date for 15th SYSMAN2 16th SYSMAN2 Purge date for 16th SYSMAN2 enddec PRCATRSF Approved ABq I "RRI5/Q ~ IAL-DPOI IQ0893R00020006000?$1 Approved F';I*~k4ge~lbb?/ttY8$RN4441OPM6f0893R00M0t:0M3 READ menu into $A arrays IF $A(2) EQ 'X' THEN - RUN EXIT-FOR-NOMORE endif; IF $A(2) EQ 'A' or 'D' and (($A(3) NE BLANK and $A(4) EQ BLANK) or ($A(3) EQ BLANK and $A(4) NE BLANK) or ($A(5) NE BLANK and $A(6) EQ BLANK) or ($A(5) EQ BLANK and $A(6) NE BLANK) or ($A(7) NE BLANK and $A(8) EQ BLANK) or ($A(7) EQ BLANK and $A(8) NE BLANK) or ($A(9) NE BLANK and $A(10) EQ BLANK) or ($A(9) EQ BLANK and $A(10) NE BLANK)) THEN - PRINT message that both SSNOR and STATUS must be entered - RUN EXIT-FOR-RESTART endif; DO UNTIL SWCH EQ 'ON' or SLVL EQ 43 IF $A(SLVL) EQ BLANK THEN - SLVL = SLVL + 2 ELSE - SWCH EQ 'ON' endif; enddo; IF SWCH EQ 'OFF' THEN - PRINT message stating at least one SYSMAN2 value must be entered RUN EXIT-FOR-RESTART endif; IF $A(2) EQ 'A' THEN - RUN VERIFYCASE IF ERRSW EQ BLANK THEN - RUN SSNCASE - RUN SDCASE endif; IF ERRSW EQ BLANK THEN - RUN ADDCASE endif; RUN EXIT-FOR-MORE endif; IF $A(2) EQ 'D' THEN - RUN VERIFYCASE IF ERRSW EQ BLANK THEN - RUN SSNCASE - RUN SDCASE Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 ADMINISTRATIVE-INTERNAL USE ONLY 89 Approved 4PI ;W"Wib1b5 /bY~A6I,&-WDP' 8YO0893R0bb2bMtOb endif; IF ERRSW EQ BLANK THEN - RUN DELETECASE endif; RUN EXIT-FOR-MORE endif; DEC VERIFYCASE SEGMENT value $UNAME1 CRITERIA temporary buffer area $B single dimensional arrays $BM count of $B arrays $W current value enddec VERIFYCASE (execute statement to acquire SD values from the SELECTION segment for the initiating ORG) FOR &SEGMENT ACQUIRE SLCRITERIA DO for all Criteria lines in the file GET SLCRITERIA (use GFAV and GNAV) CRITERIA = $W $B = $SBF(CRITERIA,0,1,'*') enddo; IF $BM EQ 0 (no SD value found) THEN - PRINT message that initiator have ownership of record does not - ERRSW = '1' endif; endproc VERIFYCASE; DEC SSNCASE $A single dimensional array $A(2) area containing Action $A(3) 1st SSNOR $A(4) Status for $A(3) $A(5) 2nd SSNOR $A(6) Status for $A(5) $A(7) 3rd SSNOR $A(8) Status for $A(7) $A(9) 4th SSNOR $A(10) Status for $A(9) $B single dimensional arrays $C value ' ' buffer area for active SSNORs $D value ' ' buffer area for separated data enddec SSNCASE Approved 1A%F0g"R 5/QR/%& IA0WP -f 0893R00020006000~a Approved FW 66~aW1bbtfd&Yi%fi4-WbP 0893RO0 0 bOMI IF $A(4) EQ 'A' THEN - add $A(3) to active SSNOR statement - $C = $C//$QM//$A(3)//$QM endif; IF $A(4) EQ 'S' THEN - add $A(3) to separated SSNOR statement - $D = $D//$QM//$A(3)//$QM endif; IF $A(6) EQ 'A' THEN - add $A(5) to active SSNOR statement - $C = $C//$QM//$A(5)//$QM endif; IF $A(6) EQ 'S' THEN - add $A(5) to separated SSNOR statement - $D = $D//$QM//$A(5)//$QM endif; IF $A(8) EQ 'A' THEN - add $A(7) to active SSNOR statement - $C = $C//$QM//$A(7)//$QM endif; IF $A(8) EQ 'S' THEN - add $A(7) to separated query statement - $D = $D//$QM//$A(7)//$QM endif; IF $A(10) EQ 'A' THEN - add $A(9) to active query statement - $C = $C//$QM//$A(9)//$QM endif; IF $A(10) EQ 'S' THEN - add $A(9) to separated SSNOR statement - $D = $D//$QM//$A(9)//$QM endif; endproc SSNCASE DEC SDCASE BLANK BLVL value value 1 ERRSW value $B single dimensional arrays $BM count of used $B arrays $C buffer area containing active SSNORs $D buffer area containing separated SSNORs SDSCAN value ' ' temporary buffer area for SD value Approved f l?? ?f9p5/I( (R&A~IAO- Pp 00893R000200060006 -1 Approved b %A~gi~I2 0' /bi 4TCI Sk i 00893R(d0i6666(86d-1 DO UNTIL BLVL EQ $BM (build SD scan portion of statement) SDSCAN = SDSCAN//' WITH $SCAN(PERSD, //$QM//$B(BLVL)//$QM IF BLVL NE $BM THEN - BLVL = BLVL + 1 - SDSCAN = SDSCAN//' OR endif; enddo; IF $C NE BLANK THEN - (scan for SD value in PERSIGN) FOR PERSIGN &($C) &SDSCAN ACQUIRE PERSD IF NO VALUE ACQUIRED (SD does not match) THEN - PRINT message stating initiator does not have ownership of record - VOPRINT &($C) endif; endif; IF $D NE BLANK THEN - (scan for SD value in PRIMSEP) FOR PRIMSEP &($D) &SDSCAN ACQUIRE PERSD IF NO VALUE ACQUIRED (SD does not match) THEN - PRINT message stating initiator does not have ownership of record - VOPRINT $D endif; endif; endproc SDCASE DEC ADDCASE BLANK area containing active SSNORs area containing separated SSNORs $C buffer $D buffer $A(11) $A(12) $A(13) $A(14) $A(15) $A(16) $A(17) $A(18) $A(19) $A(20) $A(21) $A(22) $A(23) $A(24) $A(25) $A(26) $A(27) 1st SYSMAN2 Purge date for 2nd SYSMAN2 Purge date for 3rd SYSMAN2 Purge date for 4th SYSMAN2 Purge date for 5th SYSMAN2 Purge date for 6th SYSMAN2 Purge date for 7th SYSMAN2 Purge date for 8nd SYSMAN2 Purge date for 9rd SYSMAN2 1st SYSMAN2 2nd SYSMAN2 3rd SYSMAN2 4th SYSMAN2 5th SYSMAN2 6th SYSMAN2 7th SYSMAN2 8th SYSMAN2 Approved FgnFog~ glZ IR/ ~RrtI~ PMIQ0893R00020006000921 Approved 'Pik~l~ii~T oU&6g `" I'AUitb b0893R0(l2( Od $A(28) Purge date for 9th SYSMAN2 $A(29) 10th SYSMAN2 $A(30) Purge date for 10th SYSMAN2 $A(31) 11th SYSMAN2 $A(32) Purge date for 11th SYSMAN2 $A(33) 12th SYSMAN2 $A(34) Purge date for 12th SYSMAN2 $A(35) 13th SYSMAN2 $A(36) Purge date for 13th SYSMAN2 $A(37) 14th SYSMAN2 $A(38) Purge date for 14th SYSMAN2 $A(39) 15th SYSMAN2 $A(40) Purge date for 15th SYSMAN2 $A(41) 16th SYSMAN2 $A(42) Purge date for 16th SYSMAN2 SLVL value 11 (SYSMAN2 array level) PURGE buffer area for current purge date TPRGDTE $ODATE (GIM current date) TSTMT buffer containing verb and file name enddec ADDCASE IF $C NE BLANK THEN - (build and execute add statement for each SYSMAN2+A) DO UNTIL SLVL EQ 43 IF $A(SLVL) NE BLANK THEN - (SYSMAN2+A is file for add statement) IF $A(SLVL+1) NE BLANK THEN - PURGE = PRGDTE '//$QM//$A(SLVL+1)//$QM ELSE - PURGE = PRGDTE '//$QM//TPRGDTE//$QM endif; TSTMT = 'ADD '//$A(SLVL)//'A' DO execute created statement &TSTMT &($C) &PURGE enddo; endif; SLVL = SLVL + 2 enddo; endif; IF $D EQ BLANK THEN - (build and execute add statement for all SYSMAN2+S) DO UNTIL SLVL EQ 43 IF $A(SLVL) NE BLANK THEN - (SYSMAN2+S is file for add statement) IF $A(SLVL+1) NE BLANK THEN - PURGE = ' SPRGDTE '//$QM//$A(SLVL+1)//$QM ApprovedAFH-I e jg fp51R~AFIoS~D~A>-00893R0002000600 06-1 93 Approved ELSE - PURGE SPRGDTE '//$QM//TPRGDTE//$QM endif; TSTMT = 'ADD '//$A(SLVL)//'S' DO execute created statement &TSTMT &($D) &PURGE enddo; endif; SLVL = SLVL + 2 enddo; endif; endproc ADDCASE DEC DELETECASE BLANK value $C buffer area containing active SSNORs $D buffer area containing separated SSNORs $A(11) 1st SYSMAN2 $A(12) Purge date for 1st SYSMAN2 $A(13) 2nd SYSMAN2 $A(14) Purge date for 2nd SYSMAN2 $A(15) 3rd SYSMAN2 $A(16) Purge date for 3rd SYSMAN2 $A(17) 4th SYSMAN2 $A(18) Purge date for 4th SYSMAN2 $A(19) 5th SYSMAN2 $A(20) Purge date for 5th SYSMAN2 $A(21) 6th SYSMAN2 $A(22) Purge date for 6th SYSMAN2 $A(23) 7th SYSMAN2 $A(24) Purge date for 7th SYSMAN2 $A(25) 8nd SYSMAN2 $A(26) Purge date for 8th SYSMAN2 $A(27) 9rd SYSMAN2 $A(28) Purge date for 9th SYSMAN2 $A(29) 10th SYSMAN2 $A(30) Purge date for 10th SYSMAN2 $A(31) 11th SYSMAN2 $A(32) Purge date for 11th SYSMAN2 $A(33) 12th SYSMAN2 $A(34) Purge date for 12th SYSMAN2 $A(35) 13th SYSMAN2 $A(36) Purge date for 13th SYSMAN2 $A(37) 14th SYSMAN2 $A(38) Purge date for 14th SYSMAN2 $A(39) 15th SYSMAN2 $A(40) Purge date for 15th SYSMAN2 $A(41) 16th SYSMAN2 $A(42) Purge date for 16th SYSMAN2 SLVL value 11 (SYSMAN2 array level) TSTMT buffer containing verb and file name enddec DELETECASE Approved F$RfM~ R72fflgp/ &RIAC?LPPCR-f0893R00020006000~4 Approved OBPWI~~i6T2bV576bI ~tfAUikbO&b0893R0(3( 2( 0060 IF $C NE BLANK THEN (build and execute delete statement for each SYSMAN2+A) DO UNTIL SLVL EQ 43 IF $A(SLVL) NE BLANK THEN (SYSMAN2+A is file for delete statement) TSTMT = 'DELETE '//$A(SLVL)//'A' DO execute created statement to remove SSNORs from file &TSTMT &($C) enddo; endif; SLVL = SLVL + 2 enddo; endif; SLVL = 11 IF $D NE BLANK THEN (build and execute delete statement for each SYSMAN2+S) DO UNTIL SLVL EQ 43 IF $A(SLVL) NE BLANK THEN (SYSMAN2+S is file for delete statement) TSTMT = 'DELETE '//$A(SLVL)//'S' DO execute created statement to remove SSNORs from file &TSTMT &($D) enddo; endif; SLVL = SLVL + 2 enddo; endif; endproc DELETECASE PROC EXIT-FOR-RESTART IF $A(2) EQ BLANK THEN - RELOCATE cursor to Action (-~RL2) endif; IF $A(3) EQ BLANK and $A(4) NE BLANK THEN - RELOCATE cursor to $A(3) (*RL3) endif; IF $A(4) EQ BLANK and $A(3) NE BLANK THEN - RELOCATE cursor to $A(4) (1.RL4) endif; IF $A(5) EQ BLANK and $A(6) NE BLANK THEN - RELOCATE cursor to $A(5) (*RL5) endif; Approved fffigliep e- ?0051 (E?NA~IAO-ftpPOA~Y00893R00020006000651 Approve d*6V Ugi~I 06 ~bI A OO893Rd& 6( -1 IF $A(6) EQ BLANK and $A(5) NE BLANK THEN - RELOCATE cursor to $A(6) (*RL6) endif; IF $A(7) EQ BLANK and $A(8) NE BLANK THEN - RELOCATE cursor to $A(7) (*RL7) endif; IF $A(8) EQ BLANK and $A(7) NE BLANK THEN - RELOCATE cursor to $A(8) (*RL8) endif; IF $A(9) EQ BLANK and $A(10) NE BLANK THEN - RELOCATE cursor to $A(9) (*RL9) endif; IF $A(10) EQ BLANK and $A(9) NE BLANK THEN - RELOCATE cursor to $A(10) (-*RL10) endif; IF SWCH EQ 'OFF' THEN - RELOCATE cursor to first SYSMAN2 (*RL11) endif; endproc EXIT-FOR-RESTART PROC EXIT-FOR-MORE VOPRINT '*C' clears menu VOPRINT '*Il,E PRCATRSF' establishes value in $A(l) VOPRINT '*+B' big buffer VOPRINT '*RL2' relocate cursor to $A(2) endproc EXIT-FOR-MORE PROC EXIT-FOR-NOMORE VOPRINT '*-F' exit format mode VOPRINT '*C' clear entire screen endproc EXIT-FOR-NOMORE endproc PRCATRSF 4.3.6 PRNTEPRG - NOT-TO-EXCEED PURGE When an employee's reassignment is anticipated or planned, the receiv- ing organization can request that employee's record from the owning organization. The owning organization will pass this data via the PRCATRSF procedure (Component Access Transfer). A Purge Date must Approved F15/~ NA~I~j-SRR2?,00893ROO020006000961 Approved F Wgi~1bb51( A/ ti'61A- P(6' 0893R00b40b@]Bb0bt8f also be passed with the data. If the employee actually transfers, an INTERFACE transaction will officially move the individual from one or- ganization to another. However, if the employee does not move, the PRNTEPRG procedure will be used to purge the record from the Security Matrix (SEGACCESS) file of the receiving organization when the Purge Date is reached. See flow diagram in Figure 9 of the Appendix. Proc Name : PRNTEPRG Language Used: GIM POL Initiated By : Monthly process by DBCC Frequency of Execution : Monthly Input : System Date Output : List of SYSMAN2, SSNOR, PRGDTE, purged data, (PRNTEPRG Report) The PRNTEPRG procedure will be used to purge records from the SEGACCESS files. The various components can purge records using the PRCATRSF (limited use) or PRACCUPDT procedures. However, if this is not done the PRNTEPRG procedure will purge all records with a Purge Date LE to the System Date. When a SEGACCESS segment has a Purge Date LE to the System Date a purge statement will be produced and executed for that segment. EX: For (SEGACCESS Active segment) with PRGDTE LE 'System Date' delete. For (SEGACCESS Separated segment) with PRGDTE LE 'System Date' with present PRIMSEPDTE delete. No menu will be required for this procedure. The procedure will be initiated by issuing the following command: Approved ~2 UTTAT 5108/ FNAC~I~ftpP$NR0893R000200060006-1 Approved ~ W~'O~k Tidb5i/b~N I KDPbbYO0893R08626?10$06bt31 This procedure will use the following statement to purge all SEGACCESS Segments of the SSNOR with a Purge Date LE System Date. EX: For (SEGACCESS Active segment) with PRGDTE LE '(System Date)' delete. For (SEGACCESS Separated segment) with PRGDTE LE '(System Date)' with present PRIMSEPDTE delete. This procedure will also produce the PRNTEPRG Report which lists all data purged. The report will be produced for the PRIM Data Base Man- ager via REPORTW (See Report Section). xxx PRNTEPRG This procedure will use the REPORTW verb against each SEGACCESS active and separated segment (for all Component Signon ORGs) to produce a 2-part report for each Component. The report will list all data to be purged from the Component's SEGACCESS file (SYSMAN2+A (active), SYSMAN2+S (separated)). After the report has been produced, a delete statement will be issued against the active and separated segments to purge the data. The file name and the Text field of the segments will be acquired from the SELECTION file which also has a segment for each Component SYSMAN2. DEC PRNTEPRG $A single dimensional array to hold SELECTION IDs $AM count of filled $A arrays ALVL level of $A array SDATE value current date YYMMDD $B single dimensional array to hold SELECTION TEXT $BM count of filled $B arrays IDENT used to store 'type of segment' for report header INSRZ1 used to hold organizational text for report header RPTCNT count of reports produced (2 per Signon ORG) STMT1A used to build main body of the format STMT1B statement before specifics pertaining to the STMT1C organization is added. STMT1D STMT2 used to store finished format statement. Approved ~ ~e s V~5/ g?NAC~IAU DP0?2p0893R0002000600OR-1 Approved ~or ell aii'k&/RT6i''b UWDOg> Y00893R0d'd2d6766t068g~1 STMT3 used to hold deletion statement. enddec PRNTEPRG PROC PRNTEPRG GET all SELECTION DLIDs through master FOR SELECTALL ACQUIRE DO for all SELECTION records GET DLID (use NEXT) $A = $W GET SLTEXT (use GFAV) $B=$W IF $BM NE $AM THEN - $B = $A(ALVL)//' NO TEXT AVAILABLE' endif; enddo; Build main body of format statements. Leave places for inserting organizational name, and report type. DO UNTIL ALVL EQ $AM RPTCNT = 1 DO WHILE RPTCNT LE 2 IDENT = Type of report being processed. First pass - Active segment Second Pass - Separated segment INSRZ1 = Filename (Value from $A concatinated with 'A' in first pass, and with 'S' in second pass) Build format statement FORMAT P'60,131' H'$61,SECRET' 'Report of data requiring purging from the //IDENT// for //$B(ALVL)' F '$61,SECRET'; FOR //INSRZ1// WITH SAPRGDTE LE //SDATE// REPORTW SSNOR = //INSRZ1// 'L9,,Al' NAME = PERNANEOR : 'L20' SEGMENT-ACCESS-DATE = SADTE : 'L19' PURGE-DATE = SAPRGDTE : 'L10' FOR //INSRZ1// WITH SAPRGDTE LE '&SDATE' DELETE RPTCNT = RPTCNT + 1 enddo; ALVL = ALVL + 1 enddo; endproc PRNTEPRG Approved ~1M%5/2iNACID~R>E0893R00020006000991 Approved *8VkbG I &BB 6i AblASk 8Y 00893R6&2 60'dg 1 4.3.7 PRINTPRG - INTERFACE PURGE This procedure will be used to purge interface data from the PRIM INTERFACE file. When INTERFACE data is received from HRS2, the PRCHGLOAD procedure is used to analyze the data, make necessary up- dates to the PRIM PERSIGN or PRIMSEP file, create an INTERINDX record with a purge date (INPURGE = RUNDATE + 30), and add a record to the PRIM INTERFACE file. This procedure will scan the PRIM INTERINDX file and delete the INTERINDX and INTERFACE records with a purge date (INPURGE) LE the System Date. See flow diagram in Figure 10 of the Appendix. Proc Name : PRINTPRG Language Used: GIM POL Frequency Of Execution : Monthly Initiated By : Monthly process by DBCC Input : System Date INTERINDX INTERLINK (Dl) INPURGE (D2) Output : All items associated with the purge date (INPURGE) will be removed from the INTERINDX and PRIM INTERFACE files. 4.3.7.3 FUNCTIONAL REQUIREMENTS When data is added to the PRIM INTERFACE file, a link record will also be created in the INTERINDX file. The INTERINDX file will use the SSNOR as the DL/ID and any INTERFACE actions associated with that SSNOR will be entered by INTERFACE DL/ID (RUNDATE*TIME*STMT) into the INTERLINK field. The Purge Date (INPURGE) will be entered as D2s un- der INTERLINK. No menu will be required for this procedure. The following statement will initiate the procedure: E PRINTPRG Approved Fgn foR fg, 5/ ~~ ftIPt7 pPR)p0893R00020006004go Approved F ~I6 T1b'ST( i/ 6iA-WbA L-60893R00b10bM'O0bVi The PRINTPRG procedure will purge the PRIM INTERFACE file data with the following statement: FOR INTERFACE WITH INPURGE NE 'system date' DELETE INTERFACE/ The INTERINDX file data will be analyzed and purged using the follow- ing decision formula: If INTERINDX SSNOR has only one Dl and INPURGE LE System Date or has many Dls all with INPURGE LE System Date then - delete INTERINDX record endif; If INTERINDX SSNOR has more than one D1 and some INPURGE LE System Date then - delete INTERLINK when INPURGE LE System Date endif; 4.3.7.6 GENERAL PROGRAM CONSIDERATIONS The PRINTPRG procedure will delete INTERFACE records that are 30 days old. A span from INTERFACE to the INTERINDX file will be used to de- lete the INTERFACE record when the INTERINDX INPURGE date has been reached or passed. After the INTERFACE records are deleted, the asso- ciated INTERINDX record will also be deleted. 4.3.7.7 DETAILED PROGRAM SPECIFICATIONS DEC PRINTPRG BLANK value DATE value current date YYMMDD GDATE value current date - GIM format NNNN (N denoting a numeric character) INTERINDX INPURGE used via Span from INTERFACE DCNT value 0 (count of items to delete) DTECNT value 0 (count of dates checked) ID buffer for current INTERINDX DLID INDTE INPURGE date being checked LNK INTERLINK of INPURGE being checked $A buffer area to contain all delete statements to be executed ALVL level of $A array $AM count of used $A arrays DLNK INTERLINKs to delete enddec PRINTPRG Approved f ,?IIap5/ O?NAC~I~ pP0pp 0893R0002000600006-1 Approved F~8 1 ~ ( /b 1AU b 0893RD( k ( DMA FOR INTERINDX WITH INPURGE LE '&DATE' ACQUIRE If no data found THEN print message (no data found for purge) EXIT PRINTPRG DO for all records found in SCAN GET record DLID ID = $QM//$W//$QM DO for all INTERLINK values for DLID GET INTERLINK (use GFAV or GNAV) LNK = $W GET INPURGE (use GCAV) INDTE = $W IF INDTE LE DATE THEN DO (INTERLINK and INTERFACE should be deleted) DLNK = DLNK//$QM//LNK//$QM DCNT = DCNT + 1 enddo; endif; DTECNT = DTECNT + 1 enddo; IF DTECNT EQ DCNT THEN (entire INTERINDX record can be deleted) $A = 'DELETE INTERINDX '//ID ELSE (only INTERLINK in DLNK can be deleted) $A = 'DELETE INTERINDX '//ID//' INTERLINK '//DLNK endif; IF DLNK NE ' ' THEN (INTERFACE record may be deleted) $A = 'DELETE INTERFACE '//DLNK ELSE; endif; ID = BLANK LNK = BLANK INDTE = BLANK DCNT = 0 DTECNT = 0 enddo; DO UNTIL ALVL EQ $A (execute statement in $A array) DO &($A(ALVL)) enddo; ALVL = ALVL + 1 enddo; endproc PRINTPRG Approved ~g f#R~RR 5/p#%~IAGTP -P0893R0002000600gt21 Approved ~Wr'OJkWi665kilbLN Ik Dk8YO0893R0bb2bbbt0b31 4.3.8 PRACCUPDT - ACCESS UPDATE 4.3.8.1 PURPOSE This procedure will be used by the various components to make changes to their SEGACCESS segments. The components will be able to change PRGDTE, add SSNORs needed to link to their component file (Release 2), and delete SSNORs which were passed from another component but are no longer needed. See flow diagram in Figure 10 for the Appendix. Proc Name : PRACCUPDT Language Used: GIM POL Frequency Of Execution : Random per component need Initiated by : Individual Components Input : SSNOR STATUS Purge Date OWNCODE (Release 2) Output : Deletes or adds PRGDTE and/or SSNOR to file 4.3.8.3 FUNCTIONAL REQUIREMENTS This procedure will be used by a component to update it's personal SEGACCESS files. Because the SEGACCESS file ID is the same as the Signon SYSMAN2 ID, this procedure will use the Signon SYSMAN2 to de- termine the SEGACCESS file to be updated (SYSMAN2+A for Active, SYSMAN2+S for Separated). If a component has received an employee's record from another component and wants to change the Purge Date (PRGDTE) or delete the record entirely, this procedure will be used. If the SSNOR had not been previously entered into the SEGACCESS file via the PRCALINK or the PRCATRSF procedure, the component can use PRACCUPDT to enter the SSNOR in the file (SYSMAN2+C) used to link to their component file. This will allow a component to enter an SSNOR on an employee or applicant in their component file but will not allow that component access to the Official Data for that SSNOR. This procedure will utilize the following menu which will be stored in the MENU-FORMATS file. E PRACCUPDT (Access Update) Approved fffI~g errvz5/ / :A~ItADg 00893R0002000600p~31 Approved Vk~W I &BJ l ~6IX tDW-00893Robb2 6 1 Action: (A) Add (C) Change Purge Date (D) Delete (R) Retrieve (X) Exit SSNOR STATUS PURGE DATE OWNERSHIP (A/S/C) (YYMMDD) MENU ITEM DESCRIPTION (R) ACTION Action to be done (A,C,D,R,X) (LA01) (R) SSNOR Social Security Number (LA09) (R/0) STATUS Active,Separated,Component (LA01) (0) Purge Date Removal from System (YYMMDD) (LN06) (0) Ownership Ownership of Record (LA01) If Action = 'X' then - exit the procedure. endif; If Action = 'R' and present SSNOR(s) then - leave data on menu - retrieve data If Action = 'A', 'C' or 'D' and null SSNOR or null STATUS then - error message (SSNOR and STATUS must be entered) else - SEGACCESS = SEGACCESS = SEGACCESS = SYSMAN2+A SYSMAN2+S SYSMAN2+C for for for Active record Separated record Component record Approved FM 1 %5/ RNACLI~T POR~~D0893R00020006004g41 Approved Fg ~11bMT( WbY%f4- P%' 0893R00 0b6b0 If Action = 'A' and present SSNOR and STATUS = 'C' then - CSDTE = Current Date (generated by procedure) - build add statement to add SSNOR(s) to (SYSMAN2+C) with SDTE, PRGDTE, and OWNCODE endif; If Action = 'C' and present SSNOR, STATUS and present Purge :Date then - build statement to change Purge Date in SEGACCESS file SYSMAN2+A PRGDTE (Active) for SSNOR(s) with STATUS = 'A' - build statement to change Purge Date in SEGACCESS file SYSMAN2+S PRGDTE (Separated) for SSNOR(s) with STATUS = 'S' - build statement to change Purge Date in SEGACCESS file SYSMAN2+C PRGDTE (Component) for SSNOR(s) with STATUS = V. If Ownership field present on menu with STATUS = 'C' add ownership value to OWNCODE. endif; If Action = 'D' and present SSNOR and present STATUS then - build statement to delete SSNOR(s) with STATUS = 'A' from (SYSMAN2+A) when SDTE NE current date ($ODATEG) - build statement to delete SSNOR(s) with STATUS = 'S' from (SYSMAN2+S) when SDTE NE current date ($ODATEG) - build statement to delete SSNOR(s) with STATUS = 'C' from (SYSMAN2+C) endif; 4.3.8.6 GENERAL PROGRAM CONSIDERATIONS The PRACCUPDT procedure will be used by the Component to extend the purge date of SSNORs passed from another Component, extend the purge date of an employee's SSNOR who has left that Component, remove the SSNOR entirely or add the SSNOR to the Component link segment. Each record must be verified before it can be deleted. In Release 2, Component files will be added to the PRIM data base. Before an SSNOR can be added to a Component's file, it must be present in one of the Component's SEGACCESS official data link files (SYSMAN2+A or SYSMAN2+S). If the SSNOR is not present in either of those files, it must be added to the Component data link file (SYSMAN2+C) via the PRACCUPDT procedure. Adds can only be done against Component files. SSNOR cannot begin with a '6', '8', '90', ',91', '92', '95', '96', or '97'. DEC PRACCUPDT BLANK value $A single dimensional arrays $A(2) Action value Approved f f 081 2 JNACLIAUS DPRR P0893R0002000600?g51 16 INNI-I (105/ Approved FA~~1 i~iiaT2T0 5166'IYN&PA bP% b0893R00 }32azttoWi $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(5) 1st SSNOR Purge Date (SAPRGDTE) $A(6) 1st SSNOR Ownership Code (SAOWNCODE) $A(7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(9) 2nd SSNOR Purge Date (SAPRGDTE) $A(10) 2nd SSNOR Ownership Code (SAOWNCODE) $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(13) 3rd SSNOR Purge Date (SAPRGDTE) $A(14) 3rd SSNOR Ownership Code (SAOWNCODE) $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(17) 4th SSNOR Purge Date (SAPRGDTE) $A(18) 4th SSNOR Ownership Code (SAOWNCODE) $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(21) 5th SSNOR Purge Date (SAPRGDTE) $A(22) 5th SSNOR Ownership Code (SAOWNCODE) $A(23) 6th SSNOR $A(24) 6th SSNOR Status $A(25) 6th SSNOR Purge Date (SAPRGDTE) $A(26) 6th SSNOR Ownership Code (SAOWNCODE) STATSW value established in ADDCASE LOCATE value established in CKCASE enddec PRACCUPDT PROC PRACCUPDT (User Update of Access Date) READ menu values into $A single demensional arrays IF $A(2) EQ 'X' (Exit the Menu) THEN - RUN EXIT-FOR-NOMORE endif; IF $A(2) EQ BLANK or ($A(2) NE 'A' and $A(2) NE 'C' and $A(2) NE 'D' and $A(2) NE 'R') THEN - PRINT message stating valid Action required - RUN EXIT-FOR-RESTART ELSE IF $A(3) EQ BLANK and $A(7) EQ BLANK and $A(11) EQ BLANK and $A(15) EQ BLANK and $A(19) EQ BLANK and $A(23) EQ BLANK) THEN - PRINT message stating SSNOR is a required field - RUN EXIT-FOR-RESTART endif; endif; IF $A(2) EQ 'R' (Retrieve current Access Links) THEN - RUN CKCASE IF LOCATE NE 0 THEN - RUN EXIT-FOR-RESTART endif; Approved "5fRR~ACLI~~?E~p0893R00020006009~61 Approved R W RU& OM 4t; IA O OO893R0bb 01 - RUN RCASE - RUN EXIT-FOR-MORE endif; IF $A(2) EQ 'A' and ($A(4) EQ 'C' $A(12) EQ 'C' or $A(16) EQ 'C' $A(24) EQ 'C') THEN - RUN CKCASE IF LOCATE NE 0 THEN RUN EXIT-FOR-RESTART ELSE - RUN ADDCASE IF STATSW EQ 'ON' THEN - RUN EXIT-FOR-RESTART ELSE - RUN EXIT-FOR-MORE endif; endif; endif; or $A(8) EQ 'C' or or $A(20) EQ 'C' or IF $A(2) EQ 'C' (Change Purge Date) THEN - RUN CKCASE IF LOCATE NE 0 THEN - RUN EXIT-FOR-RESTART endif; - RUN CCASE - RUN EXCASE - RUN EXIT-FOR-MORE endif; IF $A(2) EQ 'D' (Delete SSNOR if SADTE not Current) THEN - RUN CKCASE IF LOCATE NE 0 THEN - RUN EXIT-FOR-RESTART endif; - RUN DCASE - RUN EXCASE - RUN EXIT-FOR-MORE DEC ADDCASE STATSW value 'OFF' STMT STMT1 SEGMENT TDATE ALVL value 'ON' if STATUS NE 'C' buffer area for add statement buffer area for 1st part of statement $UNAME1 buffer area for date value 3 $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(5) 1st SSNOR Purge Date (SAPRGDTE) $A(6) 1st SSNOR Ownership Code (SAOWNCODE) $A(7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(9) 2nd SSNOR Purge Date (SAPRGDTE) $A(1O) 2nd SSNOR Ownership Code (SAOWNCODE) Approved For Release e 2005/08/02 : CIA RDP88 OO893ROOO2OOO6OO06-1 Approved*6i ;&A;Ii( O'gM~4iATCI fk&64-00893Rd6026b66d8663-1 $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(13) 3rd SSNOR Purge Date (SAPRGDTE) $A(14) 3rd SSNOR Ownership Code (SAOWNCODE) $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(17) 4th SSNOR Purge Date (SAPRGDTE) $A(18) 4th SSNOR Ownership Code (SAOWNCODE) $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(21) 5th SSNOR Purge Date (SAPRGDTE) $A(22) 5th SSNOR Ownership Code (SAOWNCODE) $A(23) 6th SSNOR $A(24) 6th SSNOR Status $A(25) 6th SSNOR Purge Date (SAPRGDTE) $A(26) 6th SSNOR Ownership Code (SAOWNCODE) enddec ADDCASE STMT1 = 'ADD '//SEGMENT//'C' (1st part of add statement) DO for all SSNORs on menu IF $A(ALVL+l) EQ 'C' THEN - TDATE = $QM//$ODATEA($DATEG)//$QM - STMT=STMT//$QM//$A(ALVL)//$QM//' SADTE '//TDATE IF $A(ALVL+2) NE BLANK THEN - TDATE = $QM//$A(ALVL+2)//$QM - STMT=STMT//' SAPRGDTE '//TDATE ELSE - TDATE = $QM//$ODATEA($DATEG + 30)//$QM - STMT=STMT//' SAPRGDTE '//TDATE endif; IF $A(ALVL+3) NE BLANK THEN STMT=STMT//' SAOWNCODE '//$QM//$A(ALVL+3)//$QM endif; ELSE STATSW = 'ON' endif; IF &STMT NE BLANK THEN DO execute created statement &STMT1 &STMT enddo; endif; ALVL = ALVL + 4 enddo; IF STATSW EQ 'ON' THEN PRINT message stating only Status 'C items have been added endif; endproc ADDCASE Approved FAc e} eA S/4 N l pP $0893R0002000600gf~~ Approved F6P ~ii5~'i0Y' /06ffi~UA-KU'P b893RO0 ( 3 BLANK value ' ' SEGMENT $UNAME1 TSEGMENT current segment value TDATE buffer area for date $B single dimensional array $BM $BC ALVL $A hold change statements count of used $B arrays current $B array value 3 single dimensional $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(5) 1st SSNOR Purge Date (SAPRGDTE) $A(6) 1st SSNOR Ownership Code (SAOWNCODE) $A (7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(9) 2nd SSNOR Purge Date (SAPRGDTE) $A(10) 2nd SSNOR Ownership Code (SAOWNCODE) $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(13) 3rd SSNOR Purge Date (SAPRGDTE) $A(14) 3rd SSNOR Ownership Code (SAOWNCODE) $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(17) 4th SSNOR Purge Date (SAPRGDTE) $A(18) 4th SSNOR Ownership Code (SAOWNCODE) $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(21) 5th SSNOR Purge Date (SAPRGDTE) $A(22) 5th SSNOR Ownership Code (SAOWNCODE) $A(23) 6th SSNOR $A(24) 6th SSNOR Status $A(25) 6th SSNOR Purge Date (SAPRGDTE) $A(26) enddec CCASE 6th SSNOR Ownership Code (SAOWNCODE) DO UNTIL ALVL EQ 23 IF $A(ALVL) NE BLANK AND $A(ALVL+l) EQ 'A' THEN - TSEGMENT = SEGMENT//'A'//$qm//$A(ALVL) //$qm endif; IF $A(ALVL) NE BLANK AND $A(ALVL+1) EQ 'S' THEN - TSEGMENT = SEGMENT//'S'//$qm//$A(ALVL) //$qm endif; IF $A(ALVL) NE BLANK AND $A(ALVL+l) EQ 'C' THEN - TSEGMENT = SEGMENT//'C'//$qm//$A(ALVL) //$qm endif; Approved gsA(~_RLQ5/08/02 : CIA-RDP88-00893R000200060006-1 INTERNAL USE ONLY 109 Approved l~8Pkiiai6T2 516bI ~tIAUFkrD b0893ROQ'032( 0( 1 IF $A(ALVL+l) EQ 'A' OR $A(ALVL+l) EQ 'S' THEN - TDATE = $QM//$ODATEA($DATEG)//$QM - $B='FOR '//TSEGMENT//' WITH SADTE NE '// TDATE//' OR WITH NULL SADTE CHANGE SAPRGDTE TO '//$QM//$A(ALVL+2)//$QM endif; IF $A(ALVL+1) EQ 'C' AND $A(ALVL+2) NE BLANK THEN - $B = 'FOR '//TSEGMENT//' CHANGE SAPRGDTE TO '//$QM//$A(ALVL+2)//$QM IF $A(ALVL+3) NE BLANK THEN - $B($BC)=$B.($BC)//' SAOWNCODE TO $QM//$A(ALVL+3)//$QM endif; endif; ALVL = ALVL + 4 enddo; endproc CCASE DEC DCASE SEGMENT $UNAME1 TSEGMENT current segment value $B single dimensional array to hold change statements ALVL value 3 $A single dimensional array $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(23) 6th SSNOR $A(24) 6th SSNOR Status enddec DCASE DO UNTIL ALVL EQ 23 IF $A(ALVL) NE BLANK AND $A(ALVL+l) EQ 'A' THEN - TSEGMENT = SEGMENT//'A'//$qm//$A(ALVL) //$qm endif; IF $A(ALVL) NE BLANK AND $A(ALVL+1) EQ 'S' THEN - TSEGMENT = SEGMENT//'S'//$qm//$A(ALVL) //$qm endif; Approved FA%Fo~"R.125/QR/&NRIAP$0893R000200060011~-01 Approved #Wi Wik~"i665ki/kNA6IN D 8Y00893R0bb2b IF $A(ALVL) NE BLANK AND $A(ALVL+l) EQ 'C' THEN - TSEGMENT = SEGMENT//'C'//$qm//$A(ALVL) //$qm endif; IF $A(ALVL+1) EQ 'A' OR $A(ALVL+l) EQ 'S' OR $A(ALVL+1) EQ 'C' THEN - $B = 'DELETE '//TSEGMENT//$QM//$A(ALVL)//$QM endif; ALVL = ALVL + 4 enddo; endproc DCASE DEC CKCASE BLANK ALVL LOCATE $A value value 3 value 0 single dimensional array $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(5) 1st SSNOR Purge Date (SAPRGDTE) $A(6) 1st SSNOR Ownership Code (SAOWNCODE) $A(7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(9) 2nd SSNOR Purge Date (SAPRGDTE) $A(10) 2nd SSNOR Ownership Code (SAOWNCODE) $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(13) 3rd SSNOR Purge Date (SAPRGDTE) $A(14) 3rd SSNOR Ownership Code (SAOWNCODE) $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(17) 4th SSNOR Purge Date (SAPRGDTE) $A(18) 4th SSNOR Ownership Code (SAOWNCODE) $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(21) 5th SSNOR Purge Date (SAPRGDTE) $A(22) 5th SSNOR Ownership Code (SAOWNCODE) $A(23) 6th SSNOR $A(24) 6th SSNOR Status $A(25) 6th SSNOR Purge Date (SAPRGDTE) $A(26) 6th SSNOR Ownership Code (SAOWNCODE) enddec CKCASE DO UNTIL ALVL EQ 23 or LOCATE NE 0 IF $A(ALVL) NE BLANK AND $A(ALVL+l) EQ BLANK THEN - LOCATE = ALVL+l - PRINT msg (status is required) endif; ALVL = ALVL + 4 enddo; Approved fD&?sA~LQ5RTLQAFI~Dg8Y00893R000200060006 1 Approved 0;~WJIi Tid6'S/b'/6ih~ kbObbYO0893R0662b?t)606bt31 endproc CKCASE DEC EXCASE BLVL value 1 $B single dimensional array containing created statements $BM count of used $B arrays enddec EXCASE DO UNTIL BLVL EQ $BM &($B(BLVL)) (Execute all statement) BLVL = BLVL + 1 enddo; endproc EXCASE DEC RCASE ALVL value 3 SEGMENT $UNAME1 TSEGMENT current segment value HOLD temporary hold area for SAPRGDTE $A single dimensional array enddec RCASE DO UNTIL ALVL EQ 23 IF $A(ALVL) NE BLANK THEN - TSEGMENT = SEGMENT//$A(ALVL+1)//$QM //$A(ALVL)//$QM - FOR &TSEGMENT ACQUIRE SAPRGDTE SAOWNCODE - get SAPRGDTE (use GFAV) - HOLD = $W VOPRINT '*I'//$ALF(ALVL+2)//','//HOLD IF $A(ALVL+l) EQ 'C' THEN - get SAOWNCODE (use GFAV) - VOPRINT '*I'//$ALF(ALVL+3)//','//$W endif; endif; ALVL = ALVL + 4 enddo; endproc RCASE DEC EXIT-FOR-RESTART $A single dimensional arrays $A(2) Action value $A(3) 1st SSNOR $A(4) 1st SSNOR Status $A(5) 1st SSNOR Purge Date (SAPRGDTE) $A(6) 1st SSNOR Ownership Code (SAOWNCODE) $A(7) 2nd SSNOR $A(8) 2nd SSNOR Status $A(9) 2nd SSNOR Purge Date (SAPRGDTE) Approved f&[,""W?995/R/:AgIFDFO0893RO002000600pp21 Approved A9 ll 25ii6 5/6b tiAUi2b7 ' b0893R06032 40 $A(10) 2nd SSNOR Ownership Code (SAOWNCODE) $A(11) 3rd SSNOR $A(12) 3rd SSNOR Status $A(13) 3rd SSNOR Purge Date (SAPRGDTE) $A(14) 3rd SSNOR Ownership Code (SAOWNCODE) $A(15) 4th SSNOR $A(16) 4th SSNOR Status $A(17) 4th SSNOR Purge Date (SAPRGDTE) $A(18) 4th SSNOR Ownership Code (SAOWNCODE) $A(19) 5th SSNOR $A(20) 5th SSNOR Status $A(21) 5th SSNOR Purge Date (SAPRGDTE) $A(22) 5th SSNOR Ownership Code (SAOWNCODE) $A(23) 6th SSNOR $A(24) 6th SSNOR Status $A(25) 6th SSNOR Purge Date (SAPRGDTE) $A(26) 6th SSNOR Ownership Code (SAOWNCODE) BLANK value ' ' enddec EXIT-FOR-RESTART IF $A(2) EQ BLANK or ($A(2) NE 'A' and $A(2) NE 'C' and $A(2) NE 'D' and $A(2) NE 'R' and $A(2) NE 'X') THEN - PRINT MESSAGE VALID ACTION REQUIRED RELOCATE cursor to Action (*RL2) ELSE IF $A(3) EQ BLANK AND $A(7) EQ BLANK AND $A(11) EQ BLANK AND $A(15) EQ BLANK AND $A(19) EQ BLANK AND $A(23) EQ BLANK THEN - RELOCATE cursor to Access Segment (*RL3) endif; IF LOCATE NE 0 THEN - PRINT MESSAGE STATING SSNOR AND STATUS ARE REQUIRED FIELDS AND PURGE DATE IS A REQUIRED FIELD FOR 'C' - RELOCATE CURSOR TO $A(LOCATE) ' *RL' // $A (LOCATE ) - LOCATE = 0 endif; endif; endproc EXIT-FOR-RESTART PROC EXIT-FOR-MORE VOPRINT '*C' clears menu VOPRINT '*Il,E PRACCUPDT' establishes value in $A(1) VOPRINT ' :;+B' big buffer VOPRINT '*RL2' relocate cursor to $A(2) endproc EXIT-FOR-MORE PROC EXIT-FOR-NOMORE VOPRINT '*-F' exit format mode VOPRINT '*C' clear entire screen endproc EXIT-FOR-NOMORE i Approved AM ~~/~ I MR USI: PONLY 0893R000200060006 31 Approved P$i4g 11 b hff 6X t&W00893R 2 60 1 endproc PRACCUPDT 4.3.9 PRCALINK - PRIM LINKS CREATED DAILY BY COMPONENT 4.3.9.1 PURPOSE This procedure establishes the links for the initiating Signon Org to the Official Data files, ORGCODE file, POSNR file, and the Separated Data file (PRIMSEP). The procedure is activated at the time of Signon but will only perform the link-building function when the first Signon is done for an ORG. All SSNORs to be made available to the ORG initi- ating the Signon will be added to the ORGCODE and POSNR files if the user requests it. These links are stored in the ORG's SELECTION seg- ment file where the Selection Criteria also is stored. The ORGCODE and POSNR links will be created on the weekend but the user can re- quest a new link creation at flow diagram in Figure 11 of Signon time with this the Appendix. procedure. See Proc Name : PRCALINK Language Used: GIM POL Frequency Of Execution Daily, the first time a Signon is initiated against an ORG. Input Signon ORG's SELECTION file Selection Criteria SLOLNKDTE SLLNKDTE PERSIGN (XBRIDGE will trigger appropriate index) PERSD PERAORG PEROCCE PERSCCE PRIMSEP (XBRIDGE will trigger appropriate index) PERSD PERAORG PEROCCE PERSCCE INDEX files (For active data) SDINDX SDSSN ORGINDX ORGSSN OCCEINDX OCCESSN SCCEINDX SCCESSN INDEX files (For separated data) Approved FAQ- Iles q 5/q~%NRAT?PPMCg0893R0002000600%1 Approved FWkgf 6Wi6bb (3&&PltfA- PW40893RO04).20 bOMI SSDINDX SSDSSN SORGINDX SORGSSN SOCCEINDX SOCCESSN SSCCEINDX SSCCESSN Output : Current links created for the initiating ORG to Official, Separated and INTERFACE data 4.3.9.3 . FUNCTIONAL DESCRIPTION This procedure is triggered at Signon time by the EXECPROC element in SYSMAN2. If the initiator is the first to sign on to that ORG that day, the procedure will acquire the ORGs Selection Criteria from the correct SELECT segment and with the use of INDEX files will select the SSNORs which can be accessed by that ORG (Both Active and Separated files). This procedure will also give the initiator the option to es- tablish the most recent updated version of SLORGLINKs and SLPOSLINKs. No menu will be used for this procedure. The procedure will be initi- ated automatically at Signon time. If the link has not been built by a previous Signon (SLOLNKDTE IN ORG'S Selection file NE current date), the procedure will acquire Selection Criteria data from the Signon ORG's SELECTION segment and build a copy statement against the PRIM PERSIGN and PRIMSEP files to copy the appropriate SSNORs to the ORG's SEGACCESS files for active data and separated data links. The copy statement will trigger INDEX files through XBRIDGES which will elimi- nate an end-to-end search of PRIM PERSIGN or PRIMSEP. Upon request via prompts, the procedure will build an access link at first Signon to ORGCODE and POSNR files if the user requests it. This link data will be stored in the ORG's SELECTION segment and will be accessed through that file. Procedure Prompt: Do You Want Your ORG/POS Link Updated? User Response YES - create links for ORGCODE and POSNR file - create links for Active data and Separated data NO - create links for Active data and Separated data The output from the PRCALINK will be the links to the PRIM PERSIGN and PRIMSEP files. The initiator will be asked if updated links are re- quested for ORGCODE and POSNR data. If return from VOPREADI EQ 'NO' ApprovedAFD rI lggRTMTRA%ALCINffQN 008938000200060006-1 IM 115 Approve&06 iii~li({ gi6Wi~ 1 k&6i-00893R6dO0 66666666-1 then - Acquire SLOLNKDTE (Official Link date) in SELECTION file (Signon ORG) endif; If SLOLNKDTE LT System Date (Link not established) then - acquire Selection Criteria for Signon ORG from SELECTION segment. - Build statement against PRIM PERSIGN file using Selection Criteria (triggers INDEX files that apply to Selection Criteria for Active data). - use copy verb to move SSNORs into SEGACCESS segment for Active data link (SYSMAN2+A) with SDTE and PRGDTE (SDTE + 60). - build statement against PRIMSEP file using Selection Criteria (triggers INDEX files that apply to Selection Criteria for Separated data). - use COPY verb to move SSNORs into SEGACCESS segment for Separated data link (SYSMAN2+S) with a PRGDTE (current date + 60). - add current date to SLOLNKDTE in SELECTION file for Signon ORG. If return from VOPREADI EQ 'YES' then - acquire SLLNKDTE (POS/ORG link date) in SELECTION file If SLLNKDTE NE current date then - acquire ORGCODE from Criteria line in the SELECTION file. - build statement against ORGCODE file using ORGCODE from Criteria lines. - add ORGCODE to the SELECTION file (SLORGLINK). - acquire SD from Criteria lines in the SELECTION file - build statement against POSNR file using ORGCODE from Criteria line and SD from Criteria line (with $scan POSCSD EQ 'SD value' or with $scan POSORG EQ 'ORGCODE value') - add POSNR to the SELECTION file (SLPOSLINK) - add SLLNKDTE "Current Date" endif; endif; This program establishes daily links for the Signon ORGs. This pro- gram is initiated by any Signon ORG at signon time if the program name has been entered in Sysman2 EXECPROC for the Signon ORG. Only one signon per day per ORG will generate the daily links. The program will check the SLOLNKDTE in the SELECTION file to verify whether the daily link has been done. The PRCALINK procedure will also give the Signon ORG the option of creating new links to the POSNR and ORGLINK files. If the initia- Approved FA R eA 55/Q IA ~P (ftP0893RO002000600q61-g Approved F` V kT6)6 idb'g/OT&6~R i4 P?$'1CY0893R00020?0600064 tor requests new links and the SLLNKDTE is not equal to the current date then new links will be created. Otherwise, new POSNR and ORGCODE links are only created on weekends. 4.3.9.7 DETAILED PROGRAM SPECIFICATIONS DEC PRCALINK ODATE value 0, Official link date LDATE value 0, POSNR/ORGCODE link date RESPONSE value 'NO' value returned from VOPREADI SEGMENT value $UNAME1 STMT1 holds message to be displayed in the VOPREADI statement TDATE $DATEG (GIM date format) $A single dimensional array used to hold criteria data enddec PRCALINK DO acquire data from SELECTION segment FOR &SEGMENT '&SEGMENT' ACQUIRE GET SLOLNKDTE (use GFAV) ODATE = $W GET SLLNKDTE (use GFAV) LDATE = $W DO for all SLCRITERIA values GET SLCRITERIA (use GFAV & GNAV) $A = $W enddo; enddo; IF ODATE NE TDATE THEN - RUN OFFLNK endif; IF LDATE NE TDATE THEN VOPREADI 'Should new POSNR/ORGCODE links be Created (Yes or No)'//RESPONSE RESPONSE = response from VOPREADI IF RESPONSE EQ 'YES' THEN - RUN OTHLNK endif; endif; EXIT PRCALINK DEC OFFLNK ALVL value 1 ApprovedAF -I j~?MQ f~WALCl~ DP88 00893R000200060006 1 117 Approved Aor1eTIJT2Tt~(5/T6j N11AU,bP~i&'y00893R0(d26 BLANK value ' ' $A single dimension array used to hold criteria data $AM count of filled $A arrays SD SD value from SLCRITERIA OCCE OCCE value from SLCRITERIA SCHGR SCH and GRADE values from SLCRITERIA SCCE SCCE value from SLCRITERIA ORGCODE ORGCODE value from SLCRITERIA SEGMENT $UNAME1 TSEGMENT current segment being updated TDATE $DATEG PDATE $DATEG + 60 STMT area for 'WITH' portion of statement STMTA 1st part of Active statement(PERSIGN) STMTS 1st part of Separated statement (PRIMSEP) enddec OFFLNK DO UNTIL ALVL EQ $AM IF $SBF($A(ALVL),0,1,'%;') NE BLANK THEN SD=$QM//$SBF($A(ALVL),0,1,'*')//$QM endif; IF $SBF($A(ALVL),l,l,'*') NE BLANK THEN OCCE=$QM//$SBF($A(ALVL),1,1,'*') endif; IF $SBF($A(ALVL),2,1,'*') NE BLANK THEN SCHGR=$QM//$SBF($A(ALVL),2,1,'-') IF $SBF($A(ALVL),3,1,'*') NE BLANK THEN SCHGR=SCHGR//$SBF($A(ALVL),3,1,'*')//$QM endif; IF $SBF($A(ALVL),4,1,'*') NE BLANK THEN SCHGR=' GE '//SCHGR//' AND WITH SCHGR LE //$QM//$SBF($A(ALVL),2,1,'*')// $SBF($A(ALVL),4,1,'*')//$QM endif; endif; IF $SBF($A(ALVL),5,1,'*') NE BLANK THEN SCCE=$QM//$SBF($A(ALVL),5,1,'*')//$QM endif; IF $SBF($A(ALVL),6,1,'*') NE BLANK THEN ORGCODE=$QM//$SBF($A(ALVL),6,1,'-;')//$QM endif; 6COddb Approved ~ II ski. ~~5/ ~ NA~I~-- Dg ,00893R0002000600?P81 Approved 08~I~Tai~T2V65/ T ` ld1AUfibP? YO0893R0662660606di-1 (BUILD COPY STATEMENT) IF SD NE BLANK THEN STMT=STMT//' WITH $SCANX(PERSD,'//SD//')' endif; IF OCCE NE BLANK IF STMT NE BLANK THEN STMT=STMT//' AND' endif; THEN STMT=STMT//' WITH $SCANX(PEROCCE,'//OCCE//')' endif; IF SCHGR NE BLANK IF STMT NE BLANK THEN STMT=STMT//' AND' endif; THEN STMT=STMT//' WITH PERSCHGR '//SCHGR endif; IF SCCE NE BLANK IF STMT NE BLANK THEN STMT=STMT//' AND' endif; THEN STMT=STMT//' WITH PERSCCE '//SCCE endif; IF ORGCODE NE BLANK IF STMT NE BLANK THEN STMT=STMT//' AND' endif; THEN STMT=STMT//' WITH $SCANX(PERORGCODE,'//ORGCODE//')' endif; Approved A~IINI~~TIVE5/INTERNA UPPONLY0893R0002000600R~91 Approved)D~~i~I2 051bi bbl skl? 00893Rd&2'*6(ddd-1 (EXECUTE BUILD STATEMENT AND DATE UPDATE STATEMENT) STMTA='FOR PERSIGN STMTS='FOR PRIMSEP TSEGMENT = SEGMENT//'A' &STMTA &STMT COPY REPLACE TO &TSEGMENT, PERTD TO SADTE, PERTD TO SAPRGDTE FOR &TSEGMENT WITH NULL SADTE AND WITH NULL SAPRGDTE ADD SADTE '&TDATE' SAPRGDTE '&PDATE' TSEGMENT = SEGMENT//'S' &STMTS &STMT COPY REPLACE TO &TSEGMENT, PERTD TO SADTE, PERTD TO SAPRGDTE FOR &TSEGMENT WITH NULL SADTE AND WITH NULL SAPRGDTE ADD SADTE '&TDATE' SAPRGDTE '&PDATE' enddo; FOR &SEGMENT '&SEGMENT' ADD SLOLNKDTE '&TDATE' endproc OFFLNK DEC OTHLNK ALVL current $A array being addressed BLANK value ' LDATE value 0, POSNR/ORGCODE link date ORGCODE ORGCODE value from SLCRITERIA SEGMENT $UNAMEl STMT use to build 'WITH' statement for ORGCODE STMT1 use to build 'WITH' statement for POSNR STMT2 use to build 'ADD' statements to add STMTO STMTP TDATE $A $AM $B dates to the office file contains first part of ORGCODE contains first part of POSNR statement $DATEG (GIM date format) single dimensional array containing all SLCRITERIA count of filled $A arrays single dimensional array contains ORGCODE DLID for link BLVL count of $B elements stored in current $C element $C single dimension array used to store CLVL $CM $W groups of $B elements current $C element in use last $C element used current value being addressed PROC OTHLNK DO UNTIL ALVL EQ $AM IF $SBF($A(ALVL),6,l,'%*') NE BLANK Approved FAQ ~ R 514R/ R~JP P0893R0002000600Q6~~1 Approved F~9`~eNlb~ idd?A~6~R~ITA-WbP?bl&893R0062060600698f THEN ORGCODE=$QM//$SBF($A(ALVL),6,1," ')//$QM STMT=STMT//' WITH $SCANX(ORGCODE,'//ORGCODE//')' STMT1=STMT1//' WITH $SCANX(POSORG,'//ORGCODE//')' endif; ALVL=ALVL + 1 ORGCODE = BLANK enddo; IF STMT EQ BLANK (No ORGCODES found) THEN PRINT MESSAGE 'No Org Value found in Selection Criteria - See Data Base Administrator' EXIT PRCALINK endif; STMTO = 'FOR ORGCODE &STMTO &STMT ACQUIRE DO for all ORGCODE GET DLID $B = $QM//$W//$QM IF BLVL EQ 50 THEN BLVL=O,CLVL=CLVL+l endif; $C(CLVL)=$C(CLVL)//$B($BC) BLVL=BLVL+l enddo; (use NEXT) (Delete previous links) FOR &SEGMENT '&SEGMENT' DELETE SLORGLINK SLPOSLINK DO for all $C elements used FOR &SEGMENT '&SEGMENT' ADD SLORGLINK $C enddo; $B = BLANK,$C=BLANK STMTP = 'FOR POSNR &STMTP &STMT1 ACQUIRE DO for all POSNR GET DLID $B = $QM//$W//$QM IF BLVL EQ 50 THEN BLVL=O,CLVL=CLVL+l endif; $C(CLVL)=$C(CLVL)//$B($BC) enddo; (use NEXT) DO for all $C elements used FOR &SEGMENT '&SEGMENT' ADD SLPOSLINK $C enddo; FOR &SEGMENT '&SEGMENT' ADD SLLNKDTE '&TDATE' endproc PRCALINK Approved f r1RII fn J?25I08TORNALIA-RDPP88 00893R000200060006-1 U 121 Approved a I1 -5166 W6l: ~W00893Rd0b2 6'0 1 4.3.10 PRINDX - PRIM INDEXING OF DATA 4.3.10.1 PURPOSE The PRINDX procedure is used to establish the INDEX files for Active and Separated data. These files will normally be established once only and updated via XBRIDGING from the PRIM PERSIGN (Active) and PRIMSEP (Separated) files. If, however, a problem occurs with these INDEX files, they can be re-established with this procedure. See flow diagram in Figure 12 of the Appendix. Program Name : PRINDX Language Used: GIM Statements in SYSER via DAC-STMTS POL Frequency of Execution : When data base is established, re-establish INDEX files, or incorporate a new INDEX file. Input : SYSER PRINDX1 PRINDX2 PRINDX3 ,PRINDX4 PRINDX5 PRINDX6 PRINDX7 PRINDX8 PERSIGN PERSD PEROCCE PERSCCE PERORGCODE PRIMSEP PERSD PEROCCE PERSCCE PERORGCODE Output : SDINDX SDSSN ORGINDX ORGSSN OCCEINDX OCCESSN SCCEINDX SCCESSN SSDINDX SSDSSN SORGINDX Approved F -,ERleas qq /qW,& ~~LA~WP#hq0893RO0020006000f2l lblK-Aq Approved FWik~I a 1bb3T( 6/ N64iA b &60893R00&0 0 I SORGSSN SOCCEINDX SOCCESSN SSCCEINDX SSCCESSN 4.3.10.3 FUNCTIONAL REQUIREMENTS This procedure will be used by the PRIM Data Base Manager or DBCC on instructions from the Data Base Manager to re-establish the data in the INDEX files for both Active and Separated data. This procedure will be used to originally establish the INDEX files, re-establish the files any time there is a question about the connections of INDEX data, or when a new INDEX file is added to the system. This will be done with DELETE-DATA statements to remove old INDEX values and INVERT statements to establish new INDEX values. The statements will be stored in SYSER records starting with PRINDX. These statements will be stored in the order of normal execution, however, any one could be executed alone. This procedure will not require a menu. The following statements which are stored in SYSER will be executed using the DAC-STMTS proce- dure in the following format: E DAC-STMTS PRINDXI (for SDINDX) E DAC-STMTS PRINDX2 (for ORGINDX) E DAC-STMTS PRINDX3 (for SCCEINDX) E DAC-STMTS PRINDX4 (for OCCEINDX) E DAC-STMTS PRINDX5 (for SSDINDX) E DAC-STMTS PRINDX6 (for SORGINDX) E DAC-STMTS PRINDX7 (for SSCCEINDX) E DAC-STMTS PRINDX8 (for SOCCEINDX) Execution of this procedure will load into designated INDEX files all SSNORs associated to that file by associated element (ex: SDINDDX file will contain all SSNORs by SD). This process will perform the follow- ing steps by using statements stored in SYSER file: delete data from Active INDEX file. load each Active INDEX file via INVERT verb. delete data from separated INDEX file. load each separated INDEX via INVERT verb. create a completion message for each PRINDX record used. Ex. PRINDX1 will have a completion message in PRINDXIMSG ApprovedAFDgI 1~ M5 fRq AEl~?E DOP88 00893R000200060006-1 ERNNLY 123 Approved OBV I61i~Tid66/b~Ib'il~1 kbP6bY00893R0662600$066631 4.3.11 PRCRTLINK - PRIM LINKS CREATED WEEKENDS BY DBCC This procedure will be used on weekends to create new component links to the ORGCODE and POSNR files. See flow diagram in Figure 13 of the Appendix. 4.3.11.2 GENERAL INFORMATION Proc Name : PRCRTLINK Language Used: GIM POL Initiated by : DBCC Frequency of Execution : Will be done each weekend. Input : SELECTION file (all segments) SEGNAME ORGCODE data SLLNKDTE ORGCODE POSNR Output : SELECTION file (all segments) SLORGLINK SLPOSLINK SLLNKDTE 4.3.11.3 FUNCTIONAL REQUIREMENTS This procedure will use the ORGCODE portion of the SELECT field in each SELECTION segment to build an acquire statement against the ORGCODE and POSNR files. The ORGCODEs received will be added to the segment (SLORGLINK) and used by the component to query the ORGCODE file. The POSNRs received will be added to the segment (SLPOSLINK) and used by the component to query the POSNR file. A date will be stored in the SLLNKDTE field to show when the last SLORGLINK/SLPOSLINK link was created on PRIM. This procedure will require no menu. It will be initiated with the following statement: Approved -I~,et 5fRR %~IRDM 00893R00020006011g2~-1 Approved 08~ 21 Iiii6T2 '(iP5/ T(i~'tiAVFkbF9*-tO893R0( & Od86-) This procedure will acquire through the SELECTION master, SEGNAME (to know what segment is being updated), ORGCODE (to know what ORGCODE to scan for in the ORGCODE and POSNR files), and SLLNKDTE (to know if new links are required for that segment). Do for each SELECTION segment: If the SLLNKDTE is LT current date then - delete old SLORGLINK - Scan ORGCODE file for ORGCODE record containing ORGCODE from SELECTION Criteria. - add ORGCODEs acquired to current segment SLORGLINK - delete old SLPOSLINK - scan POSNR file for POSNR records containing ORGCODE from SELECTION Criteria - add POSNRs acquired to current segment SLPOSLINK - add current date to SLLNKDTE endif; This program establishes ORGCODE and POSNR links for all PRIM Signon ORGs. This program is initiated each weekend by DBCC. DATE I $A $W STMT STMT1 STMT2 VAR SDVAR OGVAR WLVL $odatea($dateg) (GIM date format) current $A being used array containing file name current value being addressed statement containing 'WITH $SCANX' statements statement containing 'WITH $SCANX' statements statement containing 'WITH $SCANX' statements value containing the SLCRITERIA value containing the Service Designations value containing the ORGCODES count of CTEMP or DTEMP elements stored in current $C or $D array CLVL current $C array element in use $C array used to store groups of CTEMP elements CTEMP variable used to store values acquired from ORGCODE DTEMP variable used to store values acquired from POSNR DLVL current $D array element in use $D array used to store groups of DTEMP elements J current array being updated Approved FAoDrM e}e lgp~R/qW, NP JAIPP $0893R00020006000p2I LAIJ Approved aPhWiSWid& 1 fAUID -b0893R06{ 2( 0' OM-l enddec PRCRTLINK PROC PRCRTLINK DO for all SELECTION segments FOR SELECTALL WITH PRESENT SLCRITERIA ACQUIRE GET file name (use NEXT) $A= $W FOR filename ACQUIRE SLCRITERIA GET SLCRITERIA (use GFAV's and GNAV's) DO for all SLCRITERIA values VAR = $W SDVAR = $SBF(VAR,0,1,'*') ORGVAR = $SBF(VAR,6,1,'*') IF ORGVAR and SDVAR NE blank THEN STMT = STMT//' WITH $SCANX(ORGCODE,'//$QM//ORGVAR//$QM')', STMT1 = STMT1//' WITH $SCANX(POSORG,'//$QM//ORGVAR//$QM')', and STMT2 = STMT2//' WITH $SCANX(POSCSD,'//$QM//SDVAR//$QM')', endif; enddo; DO for twenty values at a time FOR ORGCODE &STMT ACQUIRE GET value (use NEXT) CTEMP = $W $C(CLVL) = $C(CLVL)//$QM//CTEMP//$QM enddo; DO for twenty values at a time FOR POSNR &STMT1 OF &STMT2 ACQUIRE GET value (use NEXT) DTEMP = $W $D(DLVL) = $D(DLVL)//$QM//DTEMP//$QM enddo; (Delete previous links) FOR &($A(I)) '&($A(I)' DELETE SLORGLINK SLPOSLINK FOR &($A(I)) '&($A(I))' ADD SLORGLINK &($C(J)) SLPOSLINK &($D(J)) SLLNKDTE '&DATE' enddo; endproc PRCRTLINK Approved 00893R0002000600p 61 Approved PI&' kIT290SAM62^NAOI AtbYO0893RObb2bOBtObbt31 4.4 COMPONENT RETRIEVAL 4.4.1 DEFINITION Component Retrieval in Release 1 will be through adhoc queries. All queries will be through the SEGACCESS file. The SEGACCESS file is a segmented file, segmented by ORG Access Levels which correspond to the SYSMAN2 Signon ORG. Flow diagrams are provided in Figures 14 and 15 of the appendix to graphically depict how a query will be controlled in PRIM. 4.4.2 ONLINE QUERIES 4.4.2.1 BASIC QUERIES - VIA SEGACCESS and SELECTION 4.4.2.1.1 PURPOSE PRIM will provide components with online access to Official Personnel data. A great deal of the component's access will be done through on- line queries. All queries will be done through the SELECTION and SEGACCESS files. A query made through these files can be direct or complex. A complex query, however, will only search the SSNORs listed in the appropriate SEGACCESS file. This will eliminate the need for using reports for simple queries. See flow diagram in Figure 14 of the Appendix. Language Used: GIM statements Initiated By : Individual in a component authorized to use PRIM. Each person accessing PRIM must have pre-authorization to use one of the SEGACCESS segments established on PRIM. All queries will be done through the SEGACCESS segment and data retrieved will be for only those records authorized for that segment. Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 ADMINISTRATIVE-INTERNAL USE ONLY 127 Approve&1 th1 Q~I ~~i&$QyCIASP,~$- 00893R6dOi 66(866-1 The component online query requirements from PRIM are varied and will include such items as: 1. List the Position, Schedule, and Grade of an employee to insure the proposed assignment conforms to Office of Personnel mandated assignment controls. 2. Count Positions of a selected Occupational Series. 3. Counts of LWOP Cases and N-T-E Dates. 4. List date of last change to a position. 5. Count of vacant positions. 6. List the date a position was officially deleted. 7. List daily strength for: - part-time - full-time - Dev Comp - LWOP - Details in/out - Sick Leave (approved for disability retirement) 8. List the Service Designation of a position versus the incumbent. 9. List the Sub-Category Code of a position. 10. List selected Cover Items. 11. List FLSA Designation of Employee. 12. List projected WGI to ascertain whether to delay a promotion until the WGI is granted. Output from a GIM statement will follow in the standard GIM output vertical/horizontal print rule. The print will be horizontal if the total record length is LE 80 and vertical if it is GT 80. Approved FB I'm ?9=& AOWP -f 0893R0002000600g6-81 Approved F 'kg'I aWiddg/D 6~K~ITA- P?b (YO893R0062060600OB&P 4.4.2.2 SEARCH - SEARCH NAME AND HPOSNR FILES 4.4.2.2.1 PURPOSE This procedure is used to search for a particular record in either the NAME or the HPOSNR file. This procedure is used) rather than a state- ment, to restrict the user to only one record at a time. See flow di- agram in Figure 15 of the Appendix. 4.4.2.2.2 GENERAL INFORMATION Proc Name : SEARCH Language Used: GIM POL Initiated by : User Frequency of Execution : Random Input : Parameters File Name (NAME,HPOSNR) Value to search for 4.4.2.2.3 FUNCTIONAL REQUIREMENTS The NAME and HPOSNR files are not linked to any primary PRIM files. At times, a user may know a person's name but not the SSNOR or may wish to look at a deleted position number. Because of security re- strictions, the user will be limited to only one record from either file per request. This procedure does not require a menu. However, a file name and val- ue to be searched for must be passed at execution. Example: E SEARCH NAME (last*first) E SEARCH HPOSNR (position number) Using the parameters passed, a query statement will be made against the file specified for the record specified. The NAME file responses will list all individuals with the same last and first name specified. The HPOSNR response will only list one position record. FILE: SEARCH SCRIPT A RUFFING COMPUTER CENTER SEARCH Approved fasAi0051 FNAC~IAI-ftpPN$ 00893R000200060006-1 Approved 4Wt$ T ` 65)661i''A61,4D 00893R0bb2 60 1 All retrieval from the HPOSNR and NAME files will be through the SEARCH procedure, direct queries against these files will not be al- lowed. The procedure will not use a menu but will expect two (2) pa- rameters via prompts (file name and ID of record to be retrieved). DEC SEARCH $A array containing file name $C array containing ID of record $B array used to contain file name synonym enddec SEARCH PROC SEARCH VOPREADI 'ENTER FILE TO BE ACCESSED (NAME, HPOSNR)',$A VOPREADI 'ENTER RECORD ID FOR RETRIEVAL',$C BUILD and EXECUTE query statements for NAME or HPOSNR FOR &($b(1)) '&($c(1))' LIST EXIT PROC SEARCH endproc SEARCH Approved FEgIea A?482/0W,~~~APWg0893R00020006000~ Approved FWk~Ie Wi668AI6~R~k-WbPftL60893R0002000BOObtat The procedure will use generalized statements entered by the Data Base Manager and personalize the statement with pre-determined parameters. Because of the security matrix on PRIM, users will not be allowed to use the LIST verb with a data file name to list all elements or all records. The user will have to go through a unique SEGACCESS or SELECTION file and list each element. Because of the large number of elements, a statement will be provided in the STATEMENT file for this purpose. 4.4.2.3.2 GENERAL INFORMATION Proc Name : LISTSTMT Language Used: GIM POL Initiated by : User Frequency of Execution : Random Input : Parameters STATEMENT name ORG initiating Any additional parameters pre-established for that statement. 4.4.2.3.3 FUNCTIONAL REQUIREMENTS Statements must be entered in the STATEMENT file by the Data Base Man- ager and can use the LIST, COUNT, REPORTW, or EXTRACT verbs. State- ments added should be generalized so they can be used by all compo- nents. Each statement used by LISTSTMT will have different parameter require- ments, therefore, the user must refer to the sample given for each statement. The first and second parameters will always be STATEMENT name and ORG followed by any additional parameters, if required. Ex. E LISTSTMT POSNR T56PER ApprovedAF -IJle j~ 05IR8102 ~SERD~88 008938000200060006-1 131 ~ eT i1 !i)6iW~6IX Di~W-00893R0?0~2%b 6.00` 1 Approved If the correct parameters are passed, the output will be from the specified file for the specified ORG. One ORG accessing data for an- other ORG will envoke security restrictions and will not be allowed. The position of each parameter for a STATEMENT record should be shown by a percent sign (%) followed by the parameter number, followed by a space. Ex. (For %1 LIST PERNAMEOR) would execute as (FOR T56PER LIST PERNAMEOR) when executed by E LISTSTMT PERTEST T56PER. NOTE: There are two spaces following %1. Up to 5 parameters are allowed. LISTSTMT (Executes Pre-established statements) DEC LISTSTMT $AM $A(l) Total $A arrays read STATEMENT Name $A(2) Signon ORG of Initiator $A(3) first parameter $A(4) second parameter $A(5) third parameter $A(6) forth parameter $A(7) fifth parameter enddec LISTSTMT PROC LISTSTMT READ parameters into $A array ACQUIRE STATEMENT record per $A(l) IF STATEMENT record not found THEN Issue error (STMT not found) EXIT LISTSTMT endif; IF $AM LT 2 THEN Issue error (not enough parameters) EXIT LISTSTMT endif; IF $AM GT 2 THEN SCAN statement for %1 replace with $A(3) value endif; Approved A~ II~17I ~I~IVE5/1t~'ERNA~IAIT- P 0R~P0893R0002000600Qg21 Approved F~~~bT($$YN~~i4-P0893R00b0'00bVi IF $AM GT 3 THEN SCAN statement for %2 replace with $A(4) value endif; IF $AM GT 4 THEN SCAN statement for %3 replace with $A(5) value endif; IF $AM GT 5 THEN SCAN statement for %4 replace with $A(6) value endif; IF $AM EQ 6 THEN SCAN statement for %5 replace with $A(7) value endif; Execute READF (GIM System module) to change all single quotes to double endproc LISTSTMT 4.4.3 OFFLINE REPORTS 4.4.3.1 PURPOSE PRIM will provide components with RAMIS report definitions currently used on HRS2, as well as, frequently used REPORTW statements which can be used for offline reporting. Language Used: RAMIS REPORTW Initiated by : Individual in a component authorized to use PRIM Approved EgAj1 M005/0&/02: CIA-RDP88-00893R000200060006-1 VE- I ERNAL USE ONLY 133 Approved WIkik~"ibb5IT0(!$/b~~~Ik-#DkbYO0893R0bb2btJlOtObbt31 Each person accessing PRIM must have pre-authorization to use one of the SEGACCESS segments established on PRIM. All REPORTW or extract statements will be done through the SEGACCESS segment and data re- trieved will be for only those records authorized for that segment. The initiator of a REPORTW statement or an extract statement will be required to pass the SEGACCESS segment name and the desired report se- lection to initiate an offline report. Output for a REPORTW report will follow the format specified in the REPORTW statement. Output will be produced with a ROUTE 'A and PRINT command. A successful extract will result in a tape or disk of re- quired data. A job must then be executed on VM to use the tape/disk with a RAMIS report program to produce final output. 4.4.4 DATA BASE ACCESS VIOLATION REPORT The access violation report is used by the PRIM Data Base Manager to locate those persons having difficulty using the system or violating data base access security restrictions. Program Name : PRIMSEC Language Used: RAMIS Initiated By: DBCC Input DBCC Source Output : PRIM Security Access Violation Data Approved FA M ~pA 1q=N.Ai RP 90893R00020006000 14 Approved 08~Iili6T2 5/btT6i,~ IAflkDf MO893RO6' 26MOd?631 The PRIM System must provide weekly reports to the PRIM Data Base Man- ager identifying any violations of established read and/or write ac- cess control to the PRIM System. The violations of established access control report should be similar to the HRS2 Data Base report. The report will also identify individuals who have been forced off' the PRIM System after 3 security code violations. Input will be provided by DBCC. 4.4.4.5 OUTPUT The report should list at a minimum: 1. Data Base Name 2. User Identification 3. Terminal Identification 4. Date and Time of violation 5. If appropriate: a) Data List Name b) Transaction Number c) Verb Name 4.4.5 DATA BASE EXCEPTION REPORT This report is used by the Data Base Manager to identify those state- ments executing longer than 3 minutes. ApprovedAFDV-IPff j~M510q/ERNAL CIA RDOPN88 OO893ROOO2OOO6OOO6-1 Approves P6~ ~~i~' '(kiad~Al i kl9gii-00893R6dOi6db66863b-1 Program Name : PRIMEXCP Language Used: RAMIS Initiated By : DBCC Input : DBCC Source Output : PRIM Exceptions Data A weekly Data Base Exception Report will be produced to identify query statements executing longer than 3 minutes. The report will be used by the Data Base Manager to focus on component areas that may need guidance on creating cost effective queries. This report can use the same program used for the HRS2 Data Base. Input to this report will be provided by DBCC. 4.4.5.5 OUTPUT The report should list at a minimum: 1. Data Base Name 2. User Identification 3. Terminal Identification 4. Date and Time of statement 5. If appropriate: a) Data List Name b) Transaction Number 4.4.6 ACF2 VIOLATION REPORT Approved FAQ g 5/4 / RAOWP ff 0893R0002000600g6~-61 Approved Fo kel~iali'i(d?%0 &i %IA- P6 IOY0893R006~0666000@Bf A standard report will be available online or offline to an ACF2 Con- trol Officer showing ACF2 violations by persons attempting to illegal- ly access a dataset. 4.4.7 PRNTEPRG REPORT The PRNTEPRG Report will give the user a list of SSNORs and associated data which was purged from each segment of the SEGACCESS file. 4.4.7.2 GENERAL INFORMATION Program Name : PRNTEPRG Report Language Used: GIMS REPORTW Initiated By: PRNTEPRG Procedure Input : Records with Purge Date (PRGDTE) LE System Date Output : SYSMAN2 (SEGACCESS Segment Name) SSNOR STATUS NAME 4.4.7.3 FUNCTIONAL DESCRIPTION The PRNTEPRG Report will be produced by the PRNTEPRG Procedure. The procedure will produce the report using a REPORTW statement just prior to executing the delete statement. The report will be printed with a ROUTE *A and a PRINT command which will route the listing to the PRIM Data Base Manager. A comment line will be used to slot the listing to the Data Base Manager. The PRNTEPRG Procedure will create and execute a REPORTW statement for each SEGACCESS that has data to purge. Approved f ri ? 20054?/EQ&AFItADg~88 00893R000200060006 1 137 Approved F4P i~SaT~ b 166'l ~"6A b ' b0893R00 2 00 The PRNTEPRG report will be a basic REPORTW output. It will provide the user by SEGACCESS (SYSMAN2) with SSNOR, STATUS, Name for each item purged. 4.4.8 DBSTATS REPORT The DBSTATS report is a statistical report of the outlay of the data base resources. 4.4.8.2 GENERAL INFORMATION Program Name DBSTATS Report Initiated By DBCC nightly Input : DBCC source Output : Statistics of PRIM Data Base 4.4.8.3 FUNCTIONAL DESCRIPTION The DBSTATS report will be produced nightly by DBCC for the PRIM Data Base Manager. This report will be compared with a similar report pro- duced for the HRS2 Data Base for verification that the nightly Inter- face between the two systems was successful. The report will also be used by the PRIM Program Applications Specialist (PAS) to determine when a reallocation is required. 4.4.9 PRCHANGE REPORT - REMOVE, SEPARATE, AND SSN CHANGES The PRCHANGE report will be a REPORTW produced report and will provide the user a list of Active SSNORs that are to be deleted (with SDTE NE current date), Separated SSNORs that are to be deleted (SSDTE NE cur- rent date) and SSNORs that have changed (IFCSIGN old NE $$$$$$$$$ and NE new). Approved f [I AI.?e25/ p?NAgI-,~-ftDERPP0893R0002000600?~81 Approved I b*k 2b'6S/TM62NAOI P]8bY00893ROO6260H130bbt31 Proc Name : PRCHANGE Report Language Used: GIM REPORTW Frequency Of Execution : Random per component need Initiated by : Individual Components Input : SEGACCESS (SYSMAN2) STATUS (A/S) System Date (SDTE or SSDTE) Purge Date (PRGDTE) INTERFACE (PRIM) IFCSIGN (old/new SSNOR) IFCNAMEOR (old/new name) Output : Report of Component link data The PRCHANGE report will be created by a REPORTW statement. By going through the master SEGACCESS segment with a selection statement for SDTE NE current date or SSDTE NE current date and with IFCSIGN 'OLDSSNOR' NE '$$$$$$$$$' and NE 'NEWSSNOR' a report can be produced to advise the generating office of records that will soon be purged and the date of purge (PRGDTE) as well as, SSNORs that have changed and what they were changed to. A file will be provided which will contain statements which can be adapted for any segment. This can be done with a temporary change and execution by any individual. If, however, this report is used exten- sively by all segments, a procedure can be implemented that will ac- cept parameters via a procedure and change the statement and execute it. (TBR) The output will be produced with a ROUTE %.A and a PRINT command for the appropriate printer. It will contain only data for the initiating segment and that data will include: SSNOR STATUS NAME IN Date Purge Date New SSNOR NEW NAME Approved For Release 2005/08/02 : CIA-RDP88-00893R000200060006-1 ADMINISTRATIVE-INTERNAL USE ONLY 139 Approved 08~i~IaiiIM6557 ~ AU D b0893R0($($2( Od6 l Chapter 5 Approved -I~g t Q5# %A lI RDE 00893R0002000600,04661 Approved Chapter 6 Figure 1 - PRIM FUNCTIONAL FLOW Figure 2 - PRIM HARDWARE CONFIGURATION Figure 2.1 - DMS ARCHITECTURE Figure 3 - PRIM REQUIREMENTS MATRIX Figure 4 - PRIM PROCEDURES Figure 5 - PRIM SHORT FILE DESCRIPTIONS Figure 6 - PRDDUMP & PRDLOAD DATA FLOWS Figure 7 - PRCAESTB DATA FLOW Figure 8 - PRCAUPDT & PRCHGLOAD DATA FLOWS Figure 9 - PRCATRSF & PRNTEPRG DATA FLOWS Figure 10 - PRINTPRG & PRACCUPDT DATA FLOWS Figure 11 - PRCALINK DATA FLOW Figure 12 - PRINDX DATA FLOW Figure 13 - PRCRTLINK DATA FLOW Figure 14 - BASIC QUERY DATA FLOW Figure 15 - SEARCH DATA FLOW Approved F~% e}MI, ff/JM, PJAIRP $0893R000200060001641 Nal,