RE: [U2] Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Stevenson, Charles
Re. controlling items in hashed files

A few years ago I migrated a UV installation from Solaris to NT and they
wanted to use Visual Source Safe, to conform to their existing standard
for all non-UV s/w.

We kept an entire dictionary as one single source file under VSS
control, with a frontend mechanism for packing/unpacking that file
from/to production (or development, or qa) hashed dictionaries.  I like
that approach, because dictionary items are interrelated with
I-descriptors, phrases, and correlatives referencing other items.  A
programmer would check out the entire dictionary, not just an item.

But we also had the UV frontend put hashed items under VSS individually
(paragraphs, config control items, etc.) they would each be presented to
VSS as a flat file that VSS would control, and VSS would give them back
as flat files, which our frontend would deploy as items in a hashed
file.

I don't recall how we kept track of the kind of thing that it was  when
it was inside VSS.  Naming convention?  1st line in the file?  Whatever
it was, the UV frontend for checkin & checkout did the translating.

I have done the same sort of thing with a UV-friendly frontend to RCS.
As a matter of fact, the VSS interface borrowed from & replaced my usual
RCS interface when they migrated from Solaris to NT.

That must have been 6+ years ago.  I think I remember all that right.
Mostly.

cds
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Brian Leach
Kevin

Absolutely agreed: dictionaries have a strange place in the MV world since
they can be user defined for a useful report, but changes might screw up a
selection required for a program. Which, as we all know, can be bad bad BAD.

My approach has been to make everything 'source'. Rather than create
dictionaries directly (urgh) I create a simple script to define one or more
files - a bit like CREATE TABLE but just for regular files. An example might
look like this:

BEGIN TABLE BOOK_TITLES
  SUBJECT "Audio Book Titles" 
  FIELD TITLE_ID FNO 0 NUMERIC
  FIELD SHORT_TITLE FNO 1 LEN 30
  FIELD UTITLE FNO 1 LEN 30 CONV "MCU"
  (etc)
  FIELD PRICE FNO 6 MONEY
ENDDEFN

BEGIN TABLE BOOK_SALES
   ...
   FIELD TITLE_ID FNO 10 NUMERIC MVED
   FIELD QTY FNO 11 NUMERIC MVED DEPENDS TITLE_ID
   ...
   FIELD LINE_TOTAL EXPR \QTY * PRICE\ MONEY MVED DEPENDS TITLE_ID
   ...
ENDDEFN

I then have a very simple program that parses this and builds the
dictionaries accordingly. 

Why?

So that I can put the script into source control, and handle it just like
any other source item, and easily rebuild the dictionaries by running the
scripts again.

I can also version stamp the script along with the rest of my source code.
I've recently written an article for Spectrum on version stamping (should be
in this issue but I haven't got a copy yet!). Version stamping is one of
those critical client/server things - ensuring that the right version of the
client is talking to the right version of the server.

There's no point getting the client side right in terms of version
management, and then forgetting the server.

Which leads on to a shameless plug ...



My mvInstaller program builds setups for deploying multivalue applications.
One of my clients is using it to handle rollouts to 250 (that's right)
servers in a distributed system. It is based on the installer I wrote at MMT
- that saved me more time than anything else in terms of QA as well as
deployment. It supports windows and server based installations, creates
files, installs data and programs, executes commands and runs subroutines:
and amongst its many useful features the installations can be version
sensitive.

And the setup definitions are scripts, so they can be version managed.

If you're building windows setups for the client, don't forget the server.

Read more on my website: www.[removethis]brianleach.co.uk



Brian




> -Original Message-
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King
> Sent: 17 January 2007 02:42
> To: u2-users@listserver.u2ug.org
> Subject: RE: [U2] Integration of UniVerse with Microsoft Team 
> System 2005 {Unclassified}
> 
> Really, couldn't it be also argued that - along with what 
> Clif has mentioned - that ALL dictionaries - even phrases - 
> are code to be under control as well, not just I-descriptors. 
>  If a dictionary changes, things could get ugly.
> 
> -Kevin
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] [UV] Calculate age from date of birth

2007-01-17 Thread Anthony W. Youngman
In message 
<[EMAIL PROTECTED]>, 
Timothy Snyder <[EMAIL PROTECTED]> writes

OOPS!!!  I need to correct what I just posted.  In the following statement:

Then, if the target MMYY is less than the birth MMYY, subtract one
from the age.

both of those references should say MMDD instead of MMYY.

Or use the Julian Day conversion code? Actually, I think that would mess 
up if either year was a leap year, so while a good idea it's actually to 
be avoided ...


Cheers,
Wol
--
Anthony W. Youngman <[EMAIL PROTECTED]>
'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the
thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man
lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998
Visit the MaVerick web-site -  Open Source Pick
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


[U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread rayd . jones
For what it's worth when we started using Uv I established an account 
exclusively
for dictionaries.
Our dictionary maintenance tool (VB4) was used to create files (and search
or maintain dictionaries) so we controlled the data & dict totally (the Data
element in a DATA account and it's Dictionary in the DICT account). Only
designated DBA's had Unix level WRITE permissions to the DICT account - so
everything was locked down. Periodically the LIVE data and dictionaries were
copied onto the Dev machine so programmers quickly came to realise the futility
of developing their own sub-sets,  outside of their own test accounts. Read
and execute permissions were globally available, so it encouraged proper
library maintenance.
Sadly the majority of our apps are now SQL based, so no more innovation for
us
Ray


___

Tiscali Broadband from 14.99 with free setup!
http://www.tiscali.co.uk/products/broadband/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] [UV] Calculate age from date of birth

2007-01-17 Thread Darren Macdonald
Perhaps a better way to do this would be to calculate a 'born before
date'.

This may save on processing time as well...

So, everyone born before 17/01/1942 is 65 or older.

HTH

Darren

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dominion
Sent: 16 January 2007 21:05
To: u2-users@listserver.u2ug.org
Subject: [U2] [UV] Calculate age from date of birth

Hi,
Could anyone tell me how I can calculate someones age from their date of
birth at a specific point in time? ie, age at 6 April 2006 if their date
of
birth is 12 October 1967.

Thanks,

Dom
-- 
View this message in context:
http://www.nabble.com/-UV--Calculate-age-from-date-of-birth-tf3023501.ht
ml#a8398858
Sent from the U2 - Users mailing list archive at Nabble.com.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] [UV] Calculate age from date of birth

2007-01-17 Thread Allen Egerton

Mark Olarte wrote:

Okay, to be truly accurate - divide by 365.25.  (3 * 365) + 366 = 1461
total days in a four year span including a leap year.  1461 / 4 =
365.25.


Apparently in my world last night leap year had one LESS day...

--
Allen
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] [UV] Calculate age from date of birth

2007-01-17 Thread Oaks, Harold
Dom:

Use my routine posted earlier, but insert the target date instead of
date():

Suppose variable DOB holds the date of birth in internal format.
Suppose TARGET is the 'as of' date in internal format also.

  DOBX = OCONV(DOB,'D4/')
  DOB.YR = DOBX[7,4]
  DOB.DA = DOBX[4,2]
  DOB.MO = DOBX[1,2]

  TARGETX = OCONV(DATE(),'D4/')
  TARGET.YR = TARGETX[7,4]
  TARGET.DA = TARGETX[4,2]
  TARGET.MO = TARGETX[1,2]

  AGE = TARGET.YR - DOB.YR
  * We will subtract 1 from age if the 'now' month & day is earlier
in the
  * year than the 'dob' month & day, otherwise not

  IF TARGET.MO < DOB.MO THEN
 AGE = AGE - 1
  END ELSE
 IF TARGET.MO = DOB.MO AND TARGET.DA < DOB.DA THEN
AGE = AGE - 1
 END
  END
  * The variable AGE now holds their age as of the target date.

Harold Oaks
Sr. Programmer/Analyst
Clark County, WA

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Darren
Macdonald
Sent: Wednesday, January 17, 2007 4:57 AM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] [UV] Calculate age from date of birth

Perhaps a better way to do this would be to calculate a 'born before
date'.

This may save on processing time as well...

So, everyone born before 17/01/1942 is 65 or older.

HTH

Darren

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dominion
Sent: 16 January 2007 21:05
To: u2-users@listserver.u2ug.org
Subject: [U2] [UV] Calculate age from date of birth

Hi,
Could anyone tell me how I can calculate someones age from their date of
birth at a specific point in time? ie, age at 6 April 2006 if their date
of birth is 12 October 1967.

Thanks,

Dom
--
View this message in context:
http://www.nabble.com/-UV--Calculate-age-from-date-of-birth-tf3023501.ht
ml#a8398858
Sent from the U2 - Users mailing list archive at Nabble.com.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Brian Leach
>. Only designated 
> DBA's had Unix level WRITE permissions to the DICT account - 
> so everything was locked down. 

And of course, now that there are the CONV, FMT, COL.HDG and EVAL keywords
in RetrieVe there is no need to use synonym dictionaries for reports, and
thus no real need to give even power users access to the dictionaries.

Before then with products like mvQuery we created reporting accounts
containing file pointers pointing to local dictionaries (contents copied
from the live dictionaries) and to the live data files, to keep the two
views (update and reporting) separate. Then power users could be give update
security to the reporting dictionaries without screwing up anything that
could be used by the live application. 

Brian
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] RE: [UV] Calculate age from date of birth

2007-01-17 Thread Martin Phillips

Hi all,

Here is how to do it as a dictionary I-type. It is trivial to convert this 
for a "normal" program. The code below works for the nasty cases of doing it 
on Feb 29 or for someone born on that date.


OCONV(DATE(),'D4YMD'); OCONV(DOB,'D4YMD'); @1[1,[EMAIL PROTECTED],4];
IF @1[6,5] GE @2[6,5] THEN @3 ELSE @3 - 1

This is made up of four simple expressions.
7  The first gets the current date and formats it as  MM DD. This result 
is stored in the variable @1.
7  The second formats the date of birth in the same way.  This result is 
stored in the @2 variable.
7  The third simple expression subtracts the year of birth from the current 
year.  The result is stored in @3.
7  The final expression determines whether the current date is before the 
birthday and, if so, modifies the calculated age.



Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200 
---

u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Stevenson, Charles
The following is not true for EVAL on UV (I don't know about UD):

> ... now that there are the CONV, FMT, COL.HDG and 
> EVAL keywords in RetrieVe there is no need to use synonym 
> dictionaries for reports, and thus no real need to give even 
> power users access to the dictionaries

True for CONV, FMT, COL.HDG, but (for UV) you need write permissions on
the dictionary to to use EVAL.
It writes a temporary item to the dictionary for the duration of the
sentence's execution.  Example when I am read-only:

   >LIST CALL EVAL "1"
   1  WRITE attempt on read-only file.
   Unable to write item "EVAL4952.1".
   I-descriptor "1" was not compiled.
   >

I assume this was by conscious design, but I don't know.
It may be too late to completely change that because people may rely on
it.
But I think it should be configurable.  

How about UniData?
Do I feel a [BB] enhancement request coming on?

Chuck
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Clifton Oliver
I may be mistaken, and do not have access to a system to test at the 
moment, but doesn't EVAL require write permissions to the dictionary to 
build a temporary I-descriptor? Or am I mis-remembering something (yet 
again :-).



On 1/17/07, author wrote:

And of course, now that there are the CONV, FMT, COL.HDG and EVAL keywords
in RetrieVe there is no need to use synonym dictionaries for reports, and
thus no real need to give even power users access to the dictionaries.

---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Timothy Snyder
[EMAIL PROTECTED] wrote on 01/17/2007 12:32:19 PM:

> True for CONV, FMT, COL.HDG, but (for UV) you need write permissions on
> the dictionary to to use EVAL.
>
> How about UniData?

This is not true for UniData.  You can use EVAL without having write access
to the dictionary.

Tim Snyder
Consulting I/T Specialist
U2 Consulting
North American Lab Services
IBM Software Group
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [U2] re: Integration of UniVerse with Microsoft Team System 2005 {Unclassified}

2007-01-17 Thread Bill Haskett
Charles:

EVAL and COL.HDG don't even work on UniData in PICK mode.  UniData basically
cripples the query language in PICK mode but this can usually be
"worked-around" by lower casing the VERBS (list, sort, etc).

Bill
 

> -Original Message-
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of 
> Stevenson, Charles
> Sent: Wednesday, January 17, 2007 9:32 AM
> To: u2-users@listserver.u2ug.org
> Subject: RE: [U2] re: Integration of UniVerse with Microsoft 
> Team System 2005 {Unclassified}
> 
> The following is not true for EVAL on UV (I don't know about UD):
> 
> > ... now that there are the CONV, FMT, COL.HDG and 
> > EVAL keywords in RetrieVe there is no need to use synonym 
> > dictionaries for reports, and thus no real need to give even 
> > power users access to the dictionaries
> 
> True for CONV, FMT, COL.HDG, but (for UV) you need write 
> permissions on
> the dictionary to to use EVAL.
> It writes a temporary item to the dictionary for the duration of the
> sentence's execution.  Example when I am read-only:
> 
>>LIST CALL EVAL "1"
>1  WRITE attempt on read-only file.
>Unable to write item "EVAL4952.1".
>I-descriptor "1" was not compiled.
>>
> 
> I assume this was by conscious design, but I don't know.
> It may be too late to completely change that because people 
> may rely on
> it.
> But I think it should be configurable.  
> 
> How about UniData?
> Do I feel a [BB] enhancement request coming on?
> 
> Chuck
> ---
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [U2] [UV] Calculate age from date of birth

2007-01-17 Thread Thomas Derwin
Here's our routine (an external subroutine we've used for years, first
on Sequoia, then on Unidata):

:ED BP AGE.CALC
Top of "AGE.CALC" in "BP", 38 lines, 1,384 characters.
001: SUBROUTINE AGE.CALC (BIRTH.DATE , AS.OF.DATE , AGE)
002: 
003: *Author  : Tom Derwin
004: *Date: 8/22/95
005: *Req. by : Dianon Systems Inc.
006: *Job #   :
007: *
008: *Purpose : Return patient's age based on date of birth and "as
of"
009: *  date (e.g. collection date or today's date).
010: 
011: *   Begin History  (latest always on line 13)
012: *  DateReq byProgrammer/ Comments
013: * 08/22/95 n/a   T.Derwin  / New pgm, adapted from
FIND.AGE.SUB.
014: * End History
015: 
016: *
017: * Note: birth date & "as of" date are passed in internal format.
018: *
019: AGE = '' ; * Added RHH 1/26/95 so 'AGE' is always defined.
020: IF BIRTH.DATE = '' THEN RETURN
021: IF BIRTH.DATE MATCH '0N' OR BIRTH.DATE MATCH '-0N' THEN NULL ELSE
RETURN
022: IF AS.OF.DATE MATCH '0N' OR AS.OF.DATE MATCH '-0N' THEN NULL ELSE
RETURN
023: IF AS.OF.DATE = '' THEN AS.OF.DATE = DATE() ; * Default to today.
024: *
025: YR.DIFF = OCONV(AS.OF.DATE,'D4Y') - OCONV(BIRTH.DATE,'D4Y')
026: BIRTH.MONTH = OCONV(BIRTH.DATE,'DM')
027: AS.OF.MONTH = OCONV(AS.OF.DATE,'DM')
028: BEGIN CASE
029:   CASE AS.OF.MONTH > BIRTH.MONTH ; NULL
030:   CASE AS.OF.MONTH < BIRTH.MONTH ; YR.DIFF = YR.DIFF - 1
031:   CASE AS.OF.MONTH = BIRTH.MONTH
032: AS.OF.DAY = OCONV(AS.OF.DATE,'DD')
033: BIRTH.DAY = OCONV(BIRTH.DATE,'DD')
034: IF AS.OF.DAY < BIRTH.DAY THEN YR.DIFF = YR.DIFF - 1
035: END CASE
036: AGE = YR.DIFF
037: RETURN
038: *END
Bottom.

Have fun,
Tom

>>> [EMAIL PROTECTED] 01/16/07 4:04 PM >>>
Hi,
Could anyone tell me how I can calculate someones age from their date of
birth at a specific point in time? ie, age at 6 April 2006 if their date
of
birth is 12 October 1967.

Thanks,
Dom

-
This e-mail and any attachments may contain CONFIDENTIAL
information, including PROTECTED HEALTH INFORMATION. If you are not
the intended recipient, any use or disclosure of this information
is STRICTLY PROHIBITED; you are requested to delete this e-mail and
any attachments, notify the sender immediately, and notify the
LabCorp Privacy Officer at [EMAIL PROTECTED] or call (877)
23-HIPAA / (877) 234-4722.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/