DESCRIPTION OF ENHANCEMENTS |
Prerequisites:
If FileMan patch DI*21*29 is installed without installing patch
the second file pointed-to by the variable pointer. Found by Tom
Ackerman.
LOOKUPS USING POINTER FIELDS:
a) Fixed a lookup problem in Social Work Case File (650) reported by
Kevin McGee, San Francisco VAMC. Lookup with lower case letter + last 4
digits SSN was very slow, and could potentially fail to find a valid match
as well.
GMRP*2.5*46, and if the site has the 'ASK TITLE OK?' parameter in file
LOOKUPS WHERE DIC(0)["N":
a) When FileMan does a lookup by IEN because DIC(0)["N" and it can find
no other matches, make it ask OK?... Reported by Clayton Curtis as a
MailMan bug when he accidently entered a number at the recipient prompt
(in an attempt to edit a line number of the message.).
121.99 (field 3.5) turned on and the user does the lookup on the title
VARIABLE PRESERVATION,CLEANUP,OUTPUT:
a) Users lookup value X wasn't being protected while executing
IDENTIFIER logic. Reported by George Huggins, Indian Health Service.
b) When user was entering a new entry with DIC(0)'["A", and up-arrowed
out either during the entry of a required IDENTIFIER, or at the 'Are you
Adding...' message, FileMan wasn't setting output variable DUOUT. Reported
by Robert Whelan, Albany IRMFO.
file by Internal Entry Number (IEN) the '...OK? YES//' prompt will be
c) UTILITY option to EDIT a file wasn't cleaning up the DR variable at
the end. If the PRINT option was run immediately afterwards, it tried to
use DR as an input variable with unexpected results. Reported by Skip
Ormsby, Clarksburg VAMC.
MIX^DIC1 AND IX^DIC CALLS:
a) Honor cross-reference list D in an MIX^DIC1 call, when FileMan goes
off to look on cross-references for pointer, date, set and variable
displayed twice.
pointer fields on the home file, transforms lookup value from lower to
upper case, and other types of transforms. Previously FileMan was looking
at all x-refs during this part of the logic. Reported by Greg Kreis.
b) Using the MIX^DIC1 call, if one of the x-refs in input variable "D"
is on a pointer field, we do a lookup in the pointed-to file. FileMan was
still using the list of indexes in "D" on the pointed-to file, even though
they only had meaning in the original home file. Reported by Tom Love
(Indian Health Service).
c) If developer did an MIX^DIC1 or IX^DIC call with D containing a
cross-reference before "B" (ex. "AC"), and lookup value was a pointer,
set, variable pointer or date, then lookup could only find the entry by
its internal value. Reported by Greg Kreis.
PROBLEMS WITH PARTIAL MATCHING:
a) Problem stuffing the .01 field of a multiple with "///" in an input
template, when field is defined as a date with time. When user enters a
After GMRP*2.5*46 has been installed, the user will only be prompted once
date with time as a lookup value, FileMan converts it to its FileMan
internal value, then if it finds a partial match to that date/time,
considers that to be a match. If there is just one partial match, this
entry is selected. This was a problem when user was trying to stuff a
date/time entry into a multiple with the 3 slash syntax. The fix is for
FileMan to automatically put an X into DIC(0), thus forcing exact matches
only, when the 3 slash syntax is used in an input template. Found by
Cindy Heuer (Hines IRMFO) in Radiology.
b) FileMan did not properly find partial matches to a numeric lookup
under those conditions.
value, if the value in the index was alpha-numeric, but started with a
number containing decimals. This was found at Tucson VAMC by Jim Orrey.
They had a file where entries contained rational numbers, but they had
created an index with a trailing blank, in order to force string
collation.
c) If .01 field is longer than 30 characters, user enters a lookup value
greater than 30 characters in lower or mixed case, FileMan failed to find
valid matches to the lookup value. Reported by Dave Bolduc (AIMC
programmer)
PROBLEMS ADDING NEW RECORDS:
a) If a process held onto a LOCK on what would have been the next record
to be added to a file before incrementing the next record number count in
the header node, any other process trying to add an entry to that file
would get stuck in an infinite loop (unless/until the first process
released its lock).
b) If, contrary to the instruction on page 65 of the FileMan version 21
Programmers Reference Manual, a routine called FILE^DICN with the local
variable DD set equal to "B", or the name of some other index in the data
file, or the record number of an existing record, or 0, that routine would
get stuck in an infinite loop.
c) If a routine called FILE^DICN with DD set to some other value, the
new record would be added to the file with that as its record number, even
if DD's value was not a legal record number. This erroneous behavior even
overrode the use of DINUM.
==============
In addition, a new flag DIC(0)["B" was added. The purpose of the flag is
to restrict FileMan to looking only on the "B" index of any files
pointed-to by the file in which you're doing the lookup. The complete API
description is available in HTML format at:
http:
//www.vista.domain.ext/softserv/infrastr.uct/fileman/docs/pm/cl-dic-f.htm
Patch Description
Routine Summary:
================
The following routines are included in this patch. The second line of
these routines now look like:
=================
<tab>;;21.0;VA FileMan;**[patch list]**;Dec 28, 1994
CHECK^XTSUMBLD results:
Routine Name Before Patch After Patch Patch List
============ ============ =========== ==========
DIA 6481291 7724491 29
DIC 9887383 10229217 8,29
DIC1 7157061 7440729 29
DIC2 3386307 3335934 29
DICM 8204058 9718946 29
DICM0 4918663 4859257 6,29
DICM2 6920486 7132763 29
DICM3 4620259 5089665 29
DICN 7476631 7973339 12,19,29
DICN1 7148963 5825723 29
DICQ 8535882 9280954 29
DICQ1 5481016 5602061 29
DIE1 6179725 6188430 29
This patch fixes many bugs and makes some minor enhancements in the
DIE17 6896286 6919106 19,29
DIE3 4863655 4850886 29
DIOU 4914520 5001668 8,29
DIU 4034034 4050319 29
Installation Instructions:
==========================
FileMan lookup (^DIC, IX^DIC and MIX^DIC1) entry points.
1. The routines DIC, DIC1, DIC2, DICM, DICM0, DICM2, DICM3, DICN,
DICN1, DICQ, DICQ1, DIE1, DIE17 and DIOU are usually mapped on systems
that allow mapping, AXP sites 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. DIENV is sent in order to
prevent the inadvertent queueing 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
Compare Transport Global to Current System
Verify Checksums in Transport Global
Backup a Transport Global
The patch addresses the following NOIS and E3R:
5. Inhibit users from login into the system. The consequence of
having users on the system while installing this patch are that users
adding or 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.
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*29
==========
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
NOIS: E3R:
server(s). NOTE: You will then see the following message:
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:
======== =======
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*29
==========
The installation will then continue.
10. AXP Sites - After the patch has been installed, rebuild your map
ANN-0496-42241 7556
set.
11. AXP Sites - Remove Taskman from WAIT State.
MSM Sites - Restart Taskman.
12. Enable user's login.
BIR93-2-2097
CLE-1295-41595
CLL94-3-0077
DAY-0895-42009
DUB-0696-30598
HUN-0896-21930
ISL-0794-50399
KNX-0396-41289
Progress Notes patch GMRP*2.5*46 should be installed at the same time as
LEA-0496-41204
LON-0296-62113
MAD-0694-40057
MWV-1295-21154
NOL-0896-71128
OKL-0396-70731
PAL-1096-60467
REN93-4-0762
SFC-0696-61382
TUC-0295-60054
this FileMan patch. Below is a brief description of that patch. If the
WCO-0195-50090
In addition, the patch fixes the following bugs/shortcomings reported in
mail messages and not through the NOIS or E3R system.:
ONLINE HELP/PROMPTS:
a) Question mark help on a set of codes wasn't right aligning the
external value of the possible choices in the display. Reported by Cathy
Progress Notes patch is not installed, it will result only in a minor
Williamson (Hines IRMFO).
b) If adding a new entry failed due to failure during execution of a
LAYGO node on the file, or because the file is restricted from editing
(such as an archive file), FileMan quit without giving any indication. Now
it will question mark beep so user knows something went wrong. Reported
locally by Don Creaven.
c) When doing a lookup on a multiple field with a whole-file
cross-reference (like a SYNONYM multiple), the entry from the x-ref was
annoyance as described, but will not affect any data.
being displayed, but not the .01 at the top level of the selected entry.
Reported by Robert Melmoth (Hines IFMRO).
d) When doing a lookup on some index other than the .01, only the value
from the index is displayed, and not the value of the .01 field itself.
Reported by Tom Ash (Montgomery)
e) A new field SHORT DESCRIPTION was added to the DIALOG file. A WRITE
identifier was added to display this field on lookup. Suggested by Mike
Kilmade.
HARD ERRORS:
a) Bad variable name error at NAME+1^DICM2, when displaying DIC("B")
default value when following a pointer to a variable pointer. Reported by
Mary Ann Ferrarese in Record Tracking.
b) NOPEN error when job is queued with no device, DIC(0)["Q" and lookup
fails. It tried to write #7,??. Reported by Skip Ormsby (Clarksburg
VAMC).
c) UNDEF error at R+1^DIC2 when a cross-reference entry exists but no
corresponding entry exists in the data. Found during testing of FileMan
21 at Oklahoma City VAMC.
d) UNDEF error in ALL^DICM2 was caused when we had a file with the .01
field a variable pointer, the .01 field of the first pointed-to file is a
pointer, user selects the value on the pointed-to file, presses return
when matches on the home file are selected, then FileMan starts to look at
|