DI*21.0*24 (422)    BUILD (9.6)

Name Value
NAME DI*21.0*24
PACKAGE FILE LINK VA FILEMAN
TYPE SINGLE PACKAGE
DESCRIPTION OF ENHANCEMENTS
This patch makes the following changes: 
    If you Enter/Edit the entries in this file and enter ^LOOP at the
    S:'$D(var) var=...     or
    D:'...                 or
    X:'...
 
and in the file, there was a field with a name that started with the
letter before the colon (:), an infinite loop would occur.  This patch
corrects this problem.  (DICOMPX)
 
6.  If the cross references on a file are compiled, and the file contains
trigger-type cross references, FileMan could break the routine within a do
'Select NAME:' prompt you can get a hard error.
block structure, so that the first line of the next routine starts with a
.line.  For example, the last few lines of one routine could be:
 
         I X'="" D
         .N DIK,DIV,DIU,DIN
  END    G ^zzzz2
 
and the first few lines of the next routine could be:
 
  zzzz2  ; COMPILED XREF FOR FILE #xxxxx ; 10/30/96
 
         ; 
         .K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^DIZ(xxxxx,D0,3)):
           ^(3),1:"")S X=$P(Y(1),U,2),X=X S DIU=X K Y X ^DD(xxxxx,2,1,
           12,2.1) X ^DD(xxxxx,2,1,12,2.4)
         ...
 
This patch ensure that routines are not broken within do block structures.
(DIKZ)
 
7.  This patch also fixes several problems with %DT and time input:
    NOIS: KAN-0396-41540
 
    a. If only numbers are entered in the date and/or time position, like
       9999999999999999999999999999999, an illegal number error could
       result.
       
    b. Even with %DT["N", %DT was accepting noncanonic numbers (numbers
       with a leading 0).  So, 090196 was accepted, but 100196 was not.
       
    c. If only a time is input, and the AM/PM designation on the time
       contained punctuation (like 2:00 A.M.), the input was rejected.
    (DIA2)
       
    d. A single 0 in the minutes or seconds position of the time, could
       cause the time to be interpreted incorrectly.  For example, 01:0
       was interpreted as 10:00 am, and T@01:01:0 was interpreted as
       10:00:10 am.  With this fix, time with a single 0 in the minutes or
       seconds position is rejected.
       
    e. Time with hours of 0 or 00 were not getting interpreted
       correctly.  For example:
                                            Intepreted as
  
                                            =============
                       Input             Before fix  After fix
                       =====             ==========  =========
         %DT'["S"      [0]0:01:03     => 01:03       rejected
                       [0]0:01:03 AM  => 01:03       rejected
                       [0]0:01:03 PM  => 13:03       rejected
         
                          0:01        => 13:00       00:01
                       [0]0:01 AM     => 01:00       00:01
                       [0]0:01 PM     => 13:00       rejected
2.  For set of codes ^DIR Reader calls, adds a new input array: 
         
         %DT["S"          0:01:03     => 13:00:03    00:01:03
                       [0]0:01:03 AM  => 01:00:03    00:01:03
                       [0]0:01:03 PM  => 13:00:03    rejected
         
                          0:01        => 13:00:00    00:01:00
                       [0]0:01 AM     => 01:00:00    00:01:00
                       [0]0:01 PM     => 13:00:00    rejected
       
    f. T@14AM translated to 00:14.  After this fix, T@14AM is rejected.
 
       
    g. If %DT["S" and the time contained seconds, and there was at least
       one space between the time and the AM/PM designator, the time was
       rejected.  For example, T@1:00:00 PM was rejected, T@1:00:00PM was
       accepted. (This bug fix applies to DSM, not MSM, sites.)
 
    h. If only a year and a time is entered, %DT was accepting the input
       and echoing back a time without hours or minutes:
        
       >S %DT="AEST"
    DIR("L",#) Only applies to set of codes.  Replaces the standard 
       >D ^%DT
        
       DATE: 1995@9  (1995@::00)
        
       >ZW Y
       Y=2950000.09
        
       This change makes %DT reject this input.
 
    NOIS: MAR-0996-21548
               vertical listing of codes that the Reader displays.  It is 
    (DIDT)
 
8.  If the user enters something like P at the THEN PRINT FIELDS prompt, and
there are no fields that begin with P, DICOMP was looking at the "PT"
nodes to find all backpointing files that begin with P.  This could lead
to confusing messages like 'such and such pointer is not cross
referenced', or 'by ... do you mean... '.
 
    NOIS: ISH-1194-40032
    (DICOMP0)
 
               up to the programmer to ensure that the contents of the 
 
9.  If a line in a word processing field sent to ^DIWP contains a vertical
bar, followed by alphanumerics, followed by punctuation, followed by more
alphanumerics, an undefined J(0) error can occur at DD^DICOMPV, if there
is at least one file on the system whose name starts with the characters
between the vertical bar and the punctuation. For example, the following
code produces the error:
 
    S X="A line of text <vertical bar>A:B"
    S DIWF="N",DIWL=10,DIWR=68
               DIR("L") array matches the codes in the second ^-piece of 
    D ^DIWP
 
if there are any files on the system that start with 'A'.
 
    NOIS: BRX-1196-11544
          DES-1096-41943
          DES-1296-40431
          HAM-1096-20548
          HIN-1196-41175
          KNX-1196-40451
               DIR(0).  
    (DICOMP0)
 
Routine Summary: 
===============
 
  Routine Name    Before Patch    After Patch    Patch List 
  ============    ============    ===========    ==========
  DIA2            4082017         4038834        24
  DIAU            6095280         6112601        24
  DICOMP0         9824026         9896481        24
 
  DICOMPX         3752529         3767023        24
  DID             9150099         9151079        24
  DIDT            6692350         6401681        18,24
  DIKZ            9722237         9897922        6,24
  DIQGDD          7426471         6585703        24
  DIQGDDF         N/A             1999058        24
  DIQGDDU         1298733         1578963        24
  DIR             8215233         8414467        13,24
 
Installation Instructions: 
               The format of the DIR("L") array is similar to DIR("A") 
=========================
 
    1.  AXP Sites - The routines %DT and DIR are usually mapped on
systems that allow mapping, so you will need to disable mapping for these
routines.
 
    2.  Use the 'INSTALL/CHECK MESSAGE' option on the PackMan menu. This
option will load the KIDS package onto your system.  The environment
check routine, DIENV, will run automatically.
 
               and DIR("?").  The #'s must be numeric starting from 1. The
    DIENV is sent to prevent the inadvertent queuing of the installation
of this patch.
 
    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
               numbered lines are written first and the DIR("L") is 
           Compare Transport Global to Current System
           Verify Checksums in Transport Global
           Backup a Transport Global
 
    5.  Inhibit users from login into the system.  Some of the routines in
this patch are used heavily in DHCP applications, most notably %DT and
DIR. The consequences of installing this patch while users are on the
system are that users may get a 'source routine edited' error.  Due to the
high usage of these routines in all of DHCP code, it is highly recommended
that users be off the system when installing this patch.
               written last.
 
    6.  AXP Sites - Place Taskman in a WAIT State.
        MSM Sites - STOP Taskman.
 
    7.  On the KIDS menu, under the 'Installation' menu, use the
following option:
 
              Select Installation Option: Install Package(s)
              Select INSTALL NAME: DI*21.0*24
                                   ==========
 
  
              Answer 'NO' to 'Want to DISABLE Scheduled Options, Menu
Options, and Protocols?
  
    8.  MSM Sites - Answer YES to the question 'Want to MOVE routines to
other CPUs?'.
 
        Then enter the names of your other Compute and Print server(s).
 
        NOTE: You will then see the following message:
    Example:
 
        TASKMAN is not running. You must run the routine XPDCPU in the
production UCI for each of the VOLUME SETS you have listed once the
installation starts!!
 
    9.  MSM Sites - After the installation begins, you will be prompted
to enter a DEVICE.  After the device has been entered, KIDS will pause.
At this time, you need to go to each of the CPUs that were entered in
step 8, and start a job that will allow them to receive the patched
routines.  On each one, you do the following:
1.  Given the following: 
 
 
    a) >D ^XUP    This will set up the programming environment.
        ======
    b) >D ^XPDCPU This starts the job that receives the patched routines.
        =========
    c) Select INSTALL NAME: DI*21.0*24
                            ==========
The installation will then continue.
 
    10.  After installing this patch, you need to move routine DIDT
    >S DIR(0)="SO^1:ONE;2:TWO;3:THREE;4:FOUR;5:FIVE;6:SIX;7:SEVEN"
from your production account to the manager account.  Then, in the manager
account, rename:
 
         DIDT to %DT
      
         Example: ZL DIDT ZS %DT
 
    11.  AXP Sites - After the patch has been installed, rebuild your map
set.
 
    >S DIR("L",1)="Select one of the following:"
    12.  AXP Sites - Remove Taskman from WAIT State.
         MSM Sites - Restart Taskman.
 
    13.  Enable users' login.
    >S DIR("L",2)=""
    >S DIR("L",3)="  1  ONE      5  FIVE"
    >S DIR("L",4)="  2  TWO      6  SIX"
    >S DIR("L",5)="  3  THREE    7  SEVEN"
    >S DIR("L")="  4  FOUR"
    >D ^DIR
 
 
    Select one of the following:
 
    1  ONE      5  FIVE
    2  TWO      6  SIX
    3  THREE    7  SEVEN
    4  FOUR
  
    Enter response: ?
 
    Enter a code from the list.
    a. You have a file with a pointer-type .01 field called NAME.
 
    Select one of the following:
 
    1  ONE      5  FIVE
    2  TWO      6  SIX
    3  THREE    7  SEVEN
    4  FOUR
 
    Enter response: 
 
    b. NAME points to a file that has a free text field called SHORT
Also, for set of codes ^DIR Reader calls, this patch removes unnecessary
blank lines that appeared before and after the vertical list of codes.
 
Also, when using DIR("?") - one line help - this patch makes sure a period
(.) terminates DIR("?").
 
Also, this patch makes sure that DIR("?") is not overwritten by the
Reader's default help prompt.
 
(DIR)
       DESCRIPTION.  
 
3.  Two problems with the FIELD^DID are corrected with this patch:
 
    a.  If the FIELD^DID call was used to retrieve field level attributes
of a file with a file number less than or equal to 1, error code 200 would
be returned: "An input variable or parameter is missing or invalid".  This
patch makes FIELD^DID work for fields in files numbered 1 or less.
 
    b.  FIELD^DID returned erroneous values for FIELD LENGTH for fields
with data types of MUMPS, SET OF CODES, VARIABLE POINTER, and DATE/TIME.
    c. NAME has NAME:SHORT DESCRIPTION as an output transform.  
This patch makes FIELD^DID return more accurate values for FIELD LENGTH
for these types of fields.
 
    (DID, DIQGDD, DIQGDDF, DIQGDDU)
 
4.  This patch corrects the problem which can be reproduced by doing the
following:
 
    (1) On the FileMan menu, select OTHER OPTIONS -> AUDITING
    (2) Select Audit Option #1, FIELDS BEING AUDITED.
 
    (2) Pick a file that has no fields being audited.
    (3) Select Audit Option #2, DATA DICTIONARIES BEING AUDTED.
 
    An undefined variable DFF error would occur.
 
    NOIS: ISB-1096-30117
    (DIAU)
 
5.  If on a field you tried to put an output transform that looked like
 
TRACK PACKAGE NATIONALLY NO
BUILD COMPONENTS
  • ENTRIES:
    • DIA2
      ACTION:   SEND TO SITE
      CHECKSUM:   B5728944
    • DIDT
      ACTION:   SEND TO SITE
      CHECKSUM:   B15357741
    • DICOMP0
      ACTION:   SEND TO SITE
      CHECKSUM:   B13099710
    • DIR
      ACTION:   SEND TO SITE
      CHECKSUM:   B18027048
    • DID
      ACTION:   SEND TO SITE
      CHECKSUM:   B21681559
    • DIQGDD
      ACTION:   SEND TO SITE
      CHECKSUM:   B16344042
    • DIQGDDF
      ACTION:   SEND TO SITE
      CHECKSUM:   B3292905
    • DIQGDDU
      ACTION:   SEND TO SITE
      CHECKSUM:   B4331401
    • DIAU
      ACTION:   SEND TO SITE
      CHECKSUM:   B13429440
    • DICOMPX
      ACTION:   SEND TO SITE
      CHECKSUM:   B6142744
    • DIKZ
      ACTION:   SEND TO SITE
      CHECKSUM:   B20172197
ENVIRONMENT CHECK ROUTINE DIENV