$TXT Created by OGI,MICHAEL at FM22-PATCH.FO-OAKLAND.MED.VA.GOV (KIDS) on Friday, 11/01/02 at 10:29 ============================================================================= Run Date: JAN 30, 2003 Designation: DI*22*95 Package : DI - VA FILEMAN Priority: Mandatory Version : 22 SEQ #109 Status: Released Compliance Date: MAR 02, 2003 ============================================================================= Associated patches: (v)DI*22*1 <<= must be installed BEFORE `DI*22*95' (v)DI*22*4 <<= must be installed BEFORE `DI*22*95' (v)DI*22*8 <<= must be installed BEFORE `DI*22*95' (v)DI*22*11 <<= must be installed BEFORE `DI*22*95' (v)DI*22*12 <<= must be installed BEFORE `DI*22*95' (v)DI*22*22 <<= must be installed BEFORE `DI*22*95' (v)DI*22*53 <<= must be installed BEFORE `DI*22*95' (v)DI*22*59 <<= must be installed BEFORE `DI*22*95' (v)DI*22*68 <<= must be installed BEFORE `DI*22*95' Subject: API TO CREATE A NEW CROSS-REFERENCE Category: - Routine Description: ============ Routines: DIKCR, DDMOD, DIKCDD ------------------------------ 1. Minor enhancement: New API to create a new-style cross-reference: CREIXN^DDMOD: New-Style Cross-Reference Creator This procedure creates a new-style cross-reference definition in the Index file. Optionally, it builds the data in the index (for Regular cross-references) or executes the set logic (for MUMPS cross-references) for all entries in the file. Compiled input templates that contain one or more of the fields defined in the cross-reference are recompiled. If cross-references on the file are compiled, they are recompiled. If a cross-reference with the same name already exists on the file, its definition is deleted, and optionally, the kill logic executed, before the new cross-reference is created. One use of CREIXN^DDMOD is in the pre-install or post-install routine of a KIDS (Kernel Installation and Distribution System) Build to create a new-style cross-reference at the installing site. Format ------ CREIXN^DDMOD(.XREF,FLAGS,.RESULT,OUTPUT_ROOT,MSG_ROOT) Routines: DIKD, DIKD2 --------------------- 2. NEW variables (such as %, DIC, and DIFLIST) that were leaking out of the DELIX^DDMOD and DELIXN^DDMOD calls. 3. If a new-style cross-reference contains two or more fields that are contained in more than one compiled input template, those input templates would unnecessarily be compiled more than once within a single DELIXN^DDMOD call. 4. Don't return an error message if the new-style cross-references specified for deletion in the DELIXN^DDMOD call does not exist. Routine: DIKC ------------- 5. The naked reference at SETXARR+18 was removed. The indirect reference earlier in the line could refer to a local array node rather than a global one. Routine: DIKCBLD ---------------- 6. Minor enhancement: Build an M routine that makes a call to CREIXN^DDMOD (see #1 above). ^DIKCBLD: This programmer mode utility can be used to create a skeleton M routine that makes a call to CREIXN^DDMOD. In the generated routine, the input parameters to CREIXN^DDMOD are set to values that pertain to a new-style cross-reference that exists in the development account. Routines: DIE2, DIEZ2 --------------------- 7. Given the following: - Field A is part of a new-style cross-reference; and - Field A is also included in an input template that is compiled. If the input template is invoked, and you enter an @ to delete the value of Field A, the kill logic of the new-style cross-reference was not getting executed. Routine: DIPS95 (Post-Install Routine) -------------------------------------- 8. This routine is the Post-Install Routine for Patch DI*22*95. It looks at all fields used in new-style cross-references and recompiles all the compiled input templates that contain those fields. This corrects in the compiled routines the problem described in #7 above. ** NOTE: You can safely delete routine DIPS95 after installing this patch. Routine: DIE ------------ 9. If the DG(n) array happens to be defined before a ^DIE call, ^DIE could file erroneous nodes in the data global. Blood Bank Team Coordination: ============================ Clearance - Feb 4, 2002 NOIS: ==== PBG-0801-N2182 Thanks to Test Sites: ==================== Birmingham OIFO Hines OIFO Salt Lake City OIFO Salt Lake City VAMC Clarksburg VAMC Heartland-West HCS Routine Summary: =============== The following routines are included in this patch. The second line of the routines now looks like: ;;22.0;VA FileMan;**[patch list]**;Mar 30, 1999 CHECK^XTSUMBLD results: Routine Name Before Patch After Patch Patch List ============ ============ =========== ========== DDMOD 621286 697591 12,53,95 DIE 10774583 10783745 1,4,8,11,59,95 DIE2 8626027 8706780 4,11,95 DIEZ2 14033219 14087746 11,95 DIKC 12042557 12442675 1,22,11,68,95 DIKCBLD n/a 7762772 95 DIKCDD 670257 598101 11,95 DIKCR n/a 10409315 95 DIKD 3688107 3787819 12,68,95 DIKD2 2009556 1997647 12,95 DIPS95 n/a 1143056 95 Installation Instructions: ========================= ** Although queuing of this patch is allowed, it is HIGHLY recommended that ALL Users be off the system and VISTA Background jobs be STOPPED before this patch is installed. Failure to do so may result in 'source routine edited' errors during a database update. Edits may be lost and records may be left in an inconsistent state. An error that occurs before a cross-reference is executed, for example, may lead to corrupted data or hard errors in the future. ** The following installation instructions are based upon the premise that the installer has heeded the above warning. The installation of this patch (step 6, below) should take less than 10 minutes. 1. AXP/DSM sites: Review your mapped routine set. If any of the routine(s) listed in the ROUTINE SUMMARY section are mapped, they should be removed from the mapped set at this time. (Note that in the VA FileMan version 22.0 Technical Manual, routine DIKC is on the list of routines recommended for mapping.) 2. Use the 'INSTALL/CHECK MESSAGE' option on the PackMan menu. This option will load the KIDS package onto your system. 3. The patch has now been loaded into a transport global on your system. You now need to use KIDS to install the transport global. 4. On the KIDS menu, under the 'Installation' menu, use the following options: Print Transport Global Compare Transport Global to Current System Verify Checksums in Transport Global Backup a Transport Global 5. In accordance with the warning at the beginning of the installation instructions, make sure ALL interactive processes, and ALL non-interactive background jobs are stopped following your site-specific procedures. For example, Inhibit users' login into the system. Stop the Background Filers. AXP/DSM Sites - Place TaskMan in a WAIT State. OpenM/Cache Sites - STOP TaskMan. Not performing this step could result in 'source routine edited' errors during database updates, and records may be left in an inconsistent state. 6. On the KIDS menu, under the 'Installation' menu, use the following option: Select Installation Option: Install Package(s) Select INSTALL NAME: DI*22.0*95 ========== The Environment Check Routine DIENVWRN runs automatically during this step. DIENVWRN issues a warning if it appears that TaskMan is still running or logons have not been inhibited. Want KIDS to INHIBIT LOGONs during the install? YES === Want to DISABLE Scheduled Options, Menu Options, and Protocols? NO == The Post-Install Routine DIPS95 runs automatically. It recompiles all compiled input templates that contain any field that is part of a new-style cross-reference. NOTE: You can safely delete routine DIPS95 after installing this patch. 7. AXP/DSM Sites - After the patch has been installed, rebuild your map set, if necessary. 8. Reenable all processes stopped in step 5 above. For example: AXP/DSM Sites - Remove TaskMan from WAIT State. OpenM/Cache Sites - Restart TaskMan. Restart the Background Filers. Enable users' login. Routine Information: ==================== Routine Name: - DDMOD Routine Checksum: Routine Name: - DIKC Routine Checksum: Routine Name: - DIKCDD Routine Checksum: Routine Name: - DIKCR Routine Checksum: Routine Name: - DIKD Routine Checksum: Routine Name: - DIKD2 Routine Checksum: Routine Name: - DIKCBLD Routine Checksum: Routine Name: - DIE2 Routine Checksum: Routine Name: - DIEZ2 Routine Checksum: Routine Name: - DIPS95 Routine Checksum: Routine Name: - DIE Routine Checksum: Routine Name: - DIENVWRN Routine Checksum: ============================================================================= User Information: Entered By : OGI,MICHAEL Date Entered : DEC 05, 2001 Completed By: SINGH,GURBIR Date Completed: JAN 28, 2003 Released By : HARROD,PAUL Date Released : JAN 30, 2003 ============================================================================= Packman Mail Message: ===================== $END TXT