| DESCRIPTION OF ENHANCEMENTS |
This patch fixed a few minor bugs and adds some enhancements to correct
in the ^DIC lookup. This will get them clear out of the lookup.
instead $O through the index on the pointer, so records will not be in
alphabetic sequence. This sequence was always used on pointers in V21.
NOIS: MAC-0999-63042
Routine: DIC5
-------------
When a numeric lookup value is entered and indexed field is a pointer,
make lookup by IEN work the way it did in version 21. NOIS:
FGH-1099-30988, PTH-1099-21795, BHH-1099-41454
Previously, users wre able to enter a single up-arrow ^ but this only took
Routine: DIC3
-------------
Lookups on the DRUG file by synonym were selecting the right drug, but
displaying the wrong .01 field value. This happened when DIC(0) contained
an "O", there was more than one exact match on the SYNONYM index to the
lookup value, but all but one match were screened out by a DIC("S")
screen. NOIS: BHH-1099-40749, CAH-1099-31208, ISB-1099-33134,
IOW-1099-42292, POP-1099-42462, TUC-1099-61597
Routine: DIC
them out of the search through the current index. If there were many
------------
DIC("W") was being set earlier in a call to ^DIC in Version 22 than it was
in Version 21. This caused an UNDEF error to occur in some files with a
user-defined lookup. This change restores backwards compatibility in this
area to V21. NOIS: MUR-0999-31608
Routine: DICF4
--------------
When a call to FIND^DIC was made with the "M" flag, and an entry was found
on an index other than the first one in the list, an extra node was
indexes being searched, the search could continue for a long time with no
returned containing the external index value, even if the FIELDS parameter
did not contain "IXE". This caused the Finder Delphi Component to display
the wrong values. NOIS: BAY-1199-30365
Routine: DICA
-------------
If an UPDATE^DIE call is made and the FDA uses a LAYGO/Finding node to
lookup or add an entry at the top level of a file, and an Adding node is
used to add an entry into a multiple within that record, and the top level
record is added because it was not found, a null subscript error would
way to exit. NOIS: NTH-0399-71535.
occur. For example, if the FDA is:
FDA(1000,"?+1,",.01)="TEST ENTRY"
FDA(1000.02,"+2,?+1,",.01)="TEST SUBENTRY"
and the Updater has to add TEST ENTRY to file #1000, a null subscript
error will occur.
Routines: DIE1,DIE2
-------------------
If ^DIE was used to edit a subfile directly, and that subfile was at least
two levels down from the top, ^DIE was not updating the DA array correctly
when the user went down into and back out of multiples within that
subfile. NOIS: ISW-0599-20886
Routine: DIEQ
-------------
Set the DA array to the subfile level if the user enters ? or ?? at the
Select prompt of a multiple. This ensures that xecutable help, screens on
Routines: DDSU,DICQ,DICQ1,DICLIX
pointer or sets, and input transforms on the .01 field of the multiple can
rely on the DA array to be at the subfile level, whether ? or ?? is
entered at the Select prompt or at the .01 field of the multiple.
NOIS
====
ATG-0397-30298
ATG-1199-31667
BAY-1199-30365
BHH-1099-40749
--------------------------------
BHH-1099-41454
BRX-0197-11979
BRX-0699-11412
CAH-1099-31208
CHA-1099-30189
FGH-1099-30988
IOW-1099-42292
ISB-1099-33134
ISL-0699-52609
ISW-0199-21924
Control number of entries displayed in "?" help. Developers needed a way
ISW-0599-20886
LAH-1099-60966
MAC-0999-63042
MAD-0394-40135
MUR-0999-31608
NHM-1199-10884
NTH-0399-71535
PAL-1099-60334
POP-1099-42462
POR-1199-51265
to control question mark help in the ^DIC lookup so that the output didn't
PTH-1099-21795
TUC-1099-61597
Thanks to Test Sites
====================
Fort-Meade
Washington
Portland
Poplar-Bluff
David Alexander - Birmingham CIOFO
deficiencies in the FileMan Lookup routines ^DIC*, Finder routines ^DICF*,
scroll off the screen. New input variable
Lucille Barrios - Washington ISC
Thanks to anyone I may have missed on this list. Your help in testing is
invaluable to us.
Routine Summary:
================
The following routines are included in this patch. The second line of these
routines now look like:
DIC("?N",file#)=number_of_entries_to_display can be set to the number of
<tab>;;22.0;VA FileMan;**[patch list]**;Mar 30, 1999
CHECK^XTSUMBLD results:
Routine Name Before Patch After Patch Patch List
============ ============ =========== ==========
DDSU 4516702 4589256 4
DIC 10513568 9848200 4
DIC0 4489087 4839635 4
DIC1 8396997 8559944 1,4
entries to be displayed at any one time in question mark help. NOIS:
DIC2 2989510 4974600 4
DIC3 8139369 7291022 1,16,4
DIC4 4973984 5435232 4
DIC5 new 1959090 4
DICA 8300985 8533062 1,4
DICF2 8772057 8940451 4
DICF3 3363767 3125335 4
DICF4 7990992 7644291 4
DICF5 2319707 3414721 4
DICFIX 6867704 6906289 4
ISW-0199-21924.
DICLIX 6388314 6415652 4
DICM 8046960 8330209 4
DICM0 8997983 9037748 16,4
DICM2 5782025 6032022 4
DICM3 4576635 4576635 16,4
DICN 6535731 6787162 4
DICN1 7864160 7828348 4
DICQ 6248469 6387812 4
DICQ1 7645506 7976918 4
DICUIX1 3761139 3826551 4
DICUIX2 7134369 7214869 4
DIE 10606815 10620115 1,4
DIE1 10290843 10471504 1,4
DIE17 9556587 9659127 4
DIE2 8785703 8634855 4
DIE3 4915247 5222949 4
DIED 8319960 10169985 4
DIEQ 5540099 5793825 4
DIEZ1 8970637 9131334 4
Routines: DIC4,DICF4,DICM0,DICM3,DICN,DICQ1,DIE,DIE1,DIE17,DIE3,DIED,DIEZ1
Installation Instructions:
==========================
** It is HIGHLY recommended that ALL Users and VISTA Background jobs to be
STOPPED. Failure to do so may result in a 'source routine edited'
error, the edits will be lost and records may be left in an
inconsistent state.
**
1. AXP 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.
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 DIENVWRN will run automatically. Routine
DIENVWRN is sent in order to prevent the inadvertent queuing during the
installation of this patch.
Control lookup to pointed-to files. During lookups on files with
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
either indexed pointer or variable pointer fields, FileMan does a lookup
5. Inhibit users' login into the system. The consequence of having
users on the system while installing this patch are that users editing
records will get a 'source routine edited' error, the edits will be lost
and records may be left in an inconsistent state. Note that most of these
routines are heavily used in DHCP applications.
6. AXP Sites - Place TaskMan in a WAIT State.
OpenM/Cache Sites - STOP TaskMan.
on the pointed-to file, lookup for a match to the lookup value entered by
7. On the KIDS menu, under the 'Installation' menu, use the following
option:
Select Installation Option: Install Package(s)
Select INSTALL NAME: DI*22.0*4
==========
Answer 'NO' to 'Want to DISABLE Scheduled Options, Menu Options,
and Protocols?
and Editing routines ^DIE*.
the user. FileMan always looked on either the "B" index only on the
8. AXP Sites - After the patch has been installed, rebuild your map set,
if necessary.
9. AXP Sites - Remove TaskMan from WAIT State.
OpenM/Cache Sites - Restart TaskMan.
10. Enable users' login.
pointed-to file (if DIC(0) did not contain "M"), or else on all lookup
indexes. A new input array to the interactive lookup ^DIC or to the
silent data base server lookup routine FIND^DIC, allows the developer to
specify what indexes are to be used during lookup on a pointed-to file.
The array for ^DIC looks like
DIC("PTRIX",from_file#,pointer_field#,to_file#)=list_of_indexes.
For the Finder, it looks like
DINDEX(("PTRIX",from_file#,pointer_field#,to_file#)=list_of_indexes
For ^DIE, it looks like:
DIE("PTRIX",from_file#,pointer_field#,to_file#)=list_of_indexes
Routines: DIC,DIC0,DIC1,DIC2,DIC3,DIC5,DICFIX,DICM,DICM0,DICM3
--------------------------------------------------------------
ConTinue looking through all indexes. ^DIC lookup does an initial pass
through the list of indexes, looking for matches to the lookup value as it
was entered by the user. If any are found, they are presented to the
user, and whether or not any are accepted, FileMan gets out. Only if it
finds no matches, does it attempt transforms on the lookup, such as
converting pointers, variable pointers, sets or dates to their internal
***** Y2K Waiver Exemption ID#: Y2KWE0015 *****
format, or converting the lookup value to upper case. This can cause the
lookup to miss some of the matching values. A new flag "T" can be put
into DIC(0) that will cause FileMan to keep looking until it has either
tried everything, or until the user selects an entry. In addition, the
transforms for pointers, variable pointers, dates or sets are done during
the first pass, so indexes are truly searched in the order requested by
the user. NOIS: ATG-0397-30298, BRX-0197-11979, MAD-0394-40135.
Routines: DICF2,DICF3,DICF4,DICF5
---------------------------------
"O" flag in Finder call. It was discovered here that the "O" flag in the
finder didn't work the same in version 22 as it did in version 21. With
this patch, the behavior is the same as version 21, in that an entire pass
through all indexes is made to find any exact matches, before doing a
second pass to find partial matches. NOIS: PAL-1099-60334, LAH-1099-60966
Routine: DICN1
--------------
'Before' values in SET/KILL logic. It was discovered here that when a new
entry was added using the classic interactive lookup ^DIC, the X1 and X2
Routines: DIC,DIC1,DICM,DICM0,DICM3
array entries for the "BEFORE" values for use in the SET and KILL logic of
new style indexes were not always reliable. This corrects that bug.
Routine: DICM
-------------
'Missing Right Parenthesis' error in Print. When doing a print, at the
PRINT FIELD prompt, if a field name greater than 30 characters long was
entered, along with a header qualifier in mixed case, a 'missing right
parenthesis' error occurred. This error was actually happening during the
lookup for field name on the DD. NOIS: BRX-0699-11412.
-----------------------------------
Routine: DICM2
--------------
Variable pointer prefix in lower case. When doing a lookup on an indexed
variable pointer field, if the user entered the prefix in lower case or
mixed case, but the prefix was in upper case on the file, the lookup
failed. NOIS: ISL-0699-52609.
Routine: DICUIX2
----------------
"^^" OUT. Users will be allowed to enter a double up-arrow ^^ at a prompt
UNDEF error in lookup. It was discovered here that an UNDEF error could
occur if the code used to build index information for the classic lookup
^DIC or the Finder FIND^DIC could not determine what field was indexed.
Routines: DICQ, DICQ1, DICUIX1
------------------------------
Question mark help was very slow when a fairly large file pointed to a
very large file like the PATIENT file. We were building a temporary index.
The algorithm that decides when to build an index was changed. Also, in
question mark help, we won't ever build a temporary index, but will
|