Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-15 Thread Raymond DeGennaro II

At 00:18 -0400 2005/08/13, Mark Johnson wrote:

I think the EQUATE TRUE TO 1 comes from a taught programming discipline from
a long time ago and, like many learned things, isn't bad so it doesn't need
replacing. But I don't think it's necessary.


I use constructs like this a lot and I'm new to MVDBMS (Started in 
'90).  I know personally, I do this because of my Pascal/C/C++ 
background has me far, far too used to used to having real constants, 
enumerated types, variables that can be passed to subroutines by 
values or reference, etc.  and EQUates are the best way to duplicate 
that functionality.


As for using assignments instead of EQUates, I've seen far too often, 
insidious bugs that take much longer to track down than they should, 
because somebody accidentally/inadvertently changed a constant.  I've 
seen this most often when a subroutine changes a passed in variable. 
This is very easy to do because all variables are passed by reference 
and not by value (the default in Pascal/C/C++).


Ray
--
.=.
| =-=-=-=-=-=-= Eagle Rock Information Systems Corp =-=-=-=-=-=-= |
| -=-=-=-=-=-=- web and database business solutions -=-=-=-=-=-=- |
|   http://www.eriscorp.commailto:[EMAIL PROTECTED]   |
|Midwest Regional Office: 815-547-0662 (voice)  815-547-0353 (Fax)|
.=.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-14 Thread Dave Walker
On Fri, 2005-08-12 at 19:36 -0400, Mark Johnson wrote:
 I don't specifically recall the guy's name but it's from India or Pakistan
 or some hindu country. It's not Chandru Murthi though.
 
 Thank him for me for making that part of my client's system more consistent
 than the other half. It's a hybrid of Primac for A/R, G/L, A/P  P/O with
 RESULTS running the Inventory, Order Entry, Sales Analysis. The Primac Job
 Costing Module is held in a very high regard and my client sorely misses it
 when they converted to Great Pains and got a rather childish replacement
 from GP.
 
 Thanks.
 P.S What's that stuff after your name. Looks like a foreign phone number or
 some computer graphics :)

Jihad Yamout ( I think I 've got it spelled right) and his brother both
worked on Primac in its early days. I'm not sure who was responsible for
the cpylib system. I'll have to ask him tomorrow.

I'm gonna have to bite the bullet and change my sig. At one time, before
internationalisation and different character encodings, back when ASCII
was king, it was a neat little ASCII art hack that looked like swirls of
smoke and stars. It now seems that no one sees it as I send it, so I
guess it's time to move on.

Regards,
--
Dave Walker

The one absolutely unselfish friend that man can have in this selfish
world, the one that never deserts him, the one that never proves
ungrateful or treacherous, is his dog. -- George Graham Vest
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-13 Thread FFT2001
In a message dated 8/12/2005 6:01:23 PM Pacific Daylight Time, 
[EMAIL PROTECTED] writes:


 If you're walking through and you see a CUSTdotwhatever you *know* - 
 or at least you *should* know, if you're at *that* level - that 
 CUSTdotwhatever is, the CUSTomer record and whatever refers to a 
 particular field.
 
 Ergo:
   In RAID,
 
 CUST(field)/
 
 gives the required response..
 
 No downsides just another* way..
 

The issue is not whether you know that it's the Customer file.
The issue is what value does Cust(address) have right now?
You can't ask RAID while in Raid.  What you have to do in this scenario, is 
have a cheat sheet or use another session to look up the Cust dictionary to 
figure out where the Address field is *at* and then ask raid something like
*/Cust(5)

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


Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-13 Thread FFT2001
In a message dated 8/12/2005 4:33:50 PM Pacific Daylight Time, 
[EMAIL PROTECTED] writes:


 That begs the question. EQUATE the attribute number for a dynamic array
 (compiler replacement) or EQUATE the field for a dimensioned array, (alias
 concept). I've seen many examples of both but I think they lean more towards
 the DIM variety. And the survey says...

I don't think anyone is championing the cause for localizing what are in 
effect global variables.  Rather my point was since RAID does not like a 
variable 
like
EQUATE CUST.ADDR TO CUST(10)
no matter where it's defined.  Wouldn't it be better, at least from the 
perspective of a RAID user to use a variable like
EQUATE A.CUST.ADDR TO 10
and then reference the address by
R.CUST(A.CUST.ADDR) = ''
or equally
R.CUSTA.CUST.ADDR = ''
depending on whether you've created R.CUST as a DIM or DYN array.

That was my point, it has nothing to do with whether these definitions are 
done locally within the mainline program, or as an INCLUDE.

Will Johnson
Fast Foward Technologies
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Les Hewkin
Rubbish,sorry Tony but that's what I think. You say experienced developers and 
big companies don't use EQU INVNO.TABLE TO CUST(40). I beg to differ. What do 
you call experienced? does 20 years count??? and what do you call a big 
company??? we only have two boxes running universe, two HP boxes, one with 32 
processors and four logical machines, with over 5k users. We define all our 
files this way. Our user base is growing all the time as the company grows and 
our apps just keep on working.

Les.

-Original Message-
From: Tony Gravagno [mailto:[EMAIL PROTECTED]
Sent: 12 August 2005 07:23
To: u2-users@listserver.u2ug.org
Subject: [Maybe spam] RE: [U2] Remove Scenario


Mark Johnson wrote:
 Here's a doozy.

Mark, the fundamental problem is that the original code wasn't designed for
the application that it's being asked to do now.  That construct that you
describe EQU INVNO.TABLE TO CUST(40) is something that experienced
developers simply don't use anymore because it's such a bad idea.  That
code was written for small companies and when they get larger it falls
apart as you see.  It's like generating invoice numbers like this:
INV.NUM = (OLD.NUM+1)R%4
Anyone remember day 10,000?


This e-mail and any attachments are confidential and intended solely for the 
use of the addressee only. If you have received this message in error, you must 
not copy, distribute or disclose the contents; please notify the sender 
immediately and delete the message.
This message is attributed to the sender and may not necessarily reflect the 
view of Travis Perkins plc or its subsidiaries (Travis Perkins). Agreements 
binding Travis Perkins may not be concluded by means of e-mail communication.
E-mail transmissions are not secure and Travis Perkins accepts no 
responsibility for changes made to this message after it was sent. Whilst steps 
have been taken to ensure that this message is virus free, Travis Perkins 
accepts no liability for infection and recommends that you scan this e-mail and 
any attachments.
Part of Travis Perkins plc. Registered Office: Lodge Way House, Lodge Way, 
Harlestone Road, Northampton, NN5 7UG.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Tony Gravagno
I wasn't clear about that at all, sorry.  What I meant was that experienced
developers don't put a table of 50,000 invoice numbers into a single
attribute in the customer master file, or even reserve one atb for open
invoices and another one for closed, especially when either one of those
atb's can expend beyond a couple thousand values.

Equating a name to a dimensioned array element is absolutely standard and
IMO preferred practice - sorry if that was confused.

Tony

Les Hewkin wrote:
 Rubbish,sorry Tony but that's what I think. You say
 experienced developers and big companies don't use EQU
 INVNO.TABLE TO CUST(40). I beg to differ. What do you
 call experienced? does 20 years count??? and what do you
 call a big company??? we only have two boxes running
 universe, two HP boxes, one with 32 processors and four
 logical machines, with over 5k users. We define all our
 files this way. Our user base is growing all the time as
 the company grows and our apps just keep on working. 
 
 Les.
 
 -Original Message-
 From: Tony Gravagno
 That construct that you 
 describe EQU INVNO.TABLE TO CUST(40) is something that
 experienced developers simply don't use anymore...
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


RE: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Peter Gonzalez

Tony,
Thank you for clearing up the issue of using EQUATES. I was ready to pile 
on you along with Les Hewkin. We use EQUATES and live by what they 
describe.  I have learned never to trust DICTS.


I always value your responses, since you where the head guy at Pick Systems 
RD. Keep writing to this list. thanks.


At 02:34 AM 8/12/2005 -0700, you wrote:

I wasn't clear about that at all, sorry.  What I meant was that experienced
developers don't put a table of 50,000 invoice numbers into a single
attribute in the customer master file, or even reserve one atb for open
invoices and another one for closed, especially when either one of those
atb's can expend beyond a couple thousand values.

Equating a name to a dimensioned array element is absolutely standard and
IMO preferred practice - sorry if that was confused.

Tony

Les Hewkin wrote:
 Rubbish,sorry Tony but that's what I think. You say
 experienced developers and big companies don't use EQU
 INVNO.TABLE TO CUST(40). I beg to differ. What do you
 call experienced? does 20 years count??? and what do you
 call a big company??? we only have two boxes running
 universe, two HP boxes, one with 32 processors and four
 logical machines, with over 5k users. We define all our
 files this way. Our user base is growing all the time as
 the company grows and our apps just keep on working.

 Les.

 -Original Message-
 From: Tony Gravagno
 That construct that you
 describe EQU INVNO.TABLE TO CUST(40) is something that
 experienced developers simply don't use anymore...
---
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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread FFT2001
In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time, 
[EMAIL PROTECTED] writes:


 Thank you for clearing up the issue of using EQUATES. I was ready to pile 
 on you along with Les Hewkin. We use EQUATES and live by what they 
 describe.  I have learned never to trust DICTS.

The only problem being (or at least last time I checked) was that RAID 
doesn't understand EQUATES.  So you're walking through the code and see
CUST.ADDRESS = ''
and you type
*/CUST.ADDRESS
and it says whatever something like variable not found or something I 
forget.

So is there a downside to using a construct like
A.CUST.ADDRESS = 40
CUST.RECA.CUST.ADDRESS = 

Then RAID is quite happy with it.

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


Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Mark Johnson
I agree here. If I had the luxury of writing a complete new application, I
would borrow from my Primac experience and use

INCLUDE FILE.DEFS CUSTOMER

which contains

OPEN CUSTOMER TO F.CUSTOMER ELSE STOP (sic)
DIM CUST.REC(100)
EQUATE  CUST.NAMETOCUST.REC(1)
etc

which virtually forces a uniform nomenclature for the opening of the file
(named commons not withstanding), the read-in REC and consistent field names
throughout the application.

While many of my clients have bits and pieces of these concepts, it's still
a scattered mess of crap when it's not application-wide. Primac was so
advanced that they didn't wait for MV to come out with the INCLUDE concept.
They wrote their own with a pre-compiler that assembled the code. Pretty
impressive for 1982.

I choose not to use these methods as since my clients (except those with
Primac) already have so many half-baked disciplines, what's one more. And
while it could be argued that I'm only adding to the fire, I am the current
cook in the kitchen. I see so much mis-guided code in my travels that I feel
pretty good with my own rather direct form of coding.

One mis-use of these Equates was on the per-program level and the
application had this throughout their programs:

EQUATE CUSTNAME TO CUST.REC(1)
EQUATE CUST.NAME TO CUSTOMER(1)
EQUATE CNAME TO C(1)
EQUATE CUSTNAME TO DATA.CUSTOMER(1)
EQUATE CUSTOMER.NAME TO CUSTOMER.REC(1)
etc

I can't recall now but there were 17 different expressions for the first
attribute in the customer file throughout all the programs. Thus, the local
use of these equates is just as bad as not using them. Given that there are
many ways to abbreviate CUSTOMER NAME, it's hard to remember which gets used
when.

That's my 2 cent son local equates. Global equates are more preferred.
Mark Johnson
- Original Message -
From: Les Hewkin [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 4:40 AM
Subject: RE: [Maybe spam] RE: [U2] Remove Scenario


 Rubbish,sorry Tony but that's what I think. You say experienced developers
and big companies don't use EQU INVNO.TABLE TO CUST(40). I beg to differ.
What do you call experienced? does 20 years count??? and what do you call a
big company??? we only have two boxes running universe, two HP boxes, one
with 32 processors and four logical machines, with over 5k users. We define
all our files this way. Our user base is growing all the time as the company
grows and our apps just keep on working.

 Les.

 -Original Message-
 From: Tony Gravagno [mailto:[EMAIL PROTECTED]
 Sent: 12 August 2005 07:23
 To: u2-users@listserver.u2ug.org
 Subject: [Maybe spam] RE: [U2] Remove Scenario


 Mark Johnson wrote:
  Here's a doozy.

 Mark, the fundamental problem is that the original code wasn't designed
for
 the application that it's being asked to do now.  That construct that you
 describe EQU INVNO.TABLE TO CUST(40) is something that experienced
 developers simply don't use anymore because it's such a bad idea.  That
 code was written for small companies and when they get larger it falls
 apart as you see.  It's like generating invoice numbers like this:
 INV.NUM = (OLD.NUM+1)R%4
 Anyone remember day 10,000?


 This e-mail and any attachments are confidential and intended solely for
the use of the addressee only. If you have received this message in error,
you must not copy, distribute or disclose the contents; please notify the
sender immediately and delete the message.
 This message is attributed to the sender and may not necessarily reflect
the view of Travis Perkins plc or its subsidiaries (Travis Perkins).
Agreements binding Travis Perkins may not be concluded by means of e-mail
communication.
 E-mail transmissions are not secure and Travis Perkins accepts no
responsibility for changes made to this message after it was sent. Whilst
steps have been taken to ensure that this message is virus free, Travis
Perkins accepts no liability for infection and recommends that you scan this
e-mail and any attachments.
 Part of Travis Perkins plc. Registered Office: Lodge Way House, Lodge Way,
Harlestone Road, Northampton, NN5 7UG.
 ---
 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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Mark Johnson
I'll add another localized comment from my experience.

My client with the 17 different expressions of CUSTOMER NAME actually had 17
versions of

EQUATE CUST.NAME.ATTRIBUTE TO 1
EQUATE CUSTOMER.NAME.ATT TO 1
EQUATE CNAME.ATR TO 1
etc.

So I still stand by my original belief that if these EQUATES are localized
as in this example, then you are missing the point and only adding to the
confusion. You cannot remember which version is in each different program
without going to the top of the program to find it.

Only by having these EQUATES in an application-wide INCLUDE concept can its
value be realized. Otherwise, it's just another half-baked inconsistent
method.

My 1 cent.
Mark Johnson
- Original Message -
From: [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 1:27 PM
Subject: Re: [Maybe spam] RE: [U2] Remove Scenario


 In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time,
 [EMAIL PROTECTED] writes:


  Thank you for clearing up the issue of using EQUATES. I was ready to
pile
  on you along with Les Hewkin. We use EQUATES and live by what they
  describe.  I have learned never to trust DICTS.

 The only problem being (or at least last time I checked) was that RAID
 doesn't understand EQUATES.  So you're walking through the code and see
 CUST.ADDRESS = ''
 and you type
 */CUST.ADDRESS
 and it says whatever something like variable not found or something I
 forget.

 So is there a downside to using a construct like
 A.CUST.ADDRESS = 40
 CUST.RECA.CUST.ADDRESS = 

 Then RAID is quite happy with it.

 Will Johnson
 ---
 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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Mark Johnson
Sidebar. I wanted to change a 6 digit date value when re-processing a data
set. The program would use today's date and I wanted to use the week prior.

So I ran the program in the debugger and when I got to that line I did
*/DTE = 081005
of which I replaced it with
080305.
and continued.

When it was done, it had posted it to date 80305. Fortunately it isn't a
date value just a posting reference. Thus, the debugger removed the leading
zero (aka MS Excel Zip Codes). This was on D3. Is this also on UV/UD?

Thanks.
Mark Johnson

P.S. Don't flame me for my method. Just focus on the debugger issue at hand.
Thanks.
- Original Message -
From: [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 1:27 PM
Subject: Re: [Maybe spam] RE: [U2] Remove Scenario


 In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time,
 [EMAIL PROTECTED] writes:


  Thank you for clearing up the issue of using EQUATES. I was ready to
pile
  on you along with Les Hewkin. We use EQUATES and live by what they
  describe.  I have learned never to trust DICTS.

 The only problem being (or at least last time I checked) was that RAID
 doesn't understand EQUATES.  So you're walking through the code and see
 CUST.ADDRESS = ''
 and you type
 */CUST.ADDRESS
 and it says whatever something like variable not found or something I
 forget.

 So is there a downside to using a construct like
 A.CUST.ADDRESS = 40
 CUST.RECA.CUST.ADDRESS = 

 Then RAID is quite happy with it.

 Will Johnson
 ---
 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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Marilyn Hilb
I am on MasterPack. Whenever I 'deliver' a modification with a dictionary on it 
from one system to another, that process actually re-builds the equate includes 
for any new dictionary item I may have added. So yup, got lots of these, but 
not something I or any recent programmer before me did intentionally. 


 -Original Message-
From:   Mark Johnson [mailto:[EMAIL PROTECTED] 
Sent:   Friday, August 12, 2005 1:35 PM
To: u2-users@listserver.u2ug.org
Subject:Re: [Maybe spam] RE: [U2] Remove Scenario

I'll add another localized comment from my experience.

My client with the 17 different expressions of CUSTOMER NAME actually had 17
versions of

EQUATE CUST.NAME.ATTRIBUTE TO 1
EQUATE CUSTOMER.NAME.ATT TO 1
EQUATE CNAME.ATR TO 1
etc.

So I still stand by my original belief that if these EQUATES are localized
as in this example, then you are missing the point and only adding to the
confusion. You cannot remember which version is in each different program
without going to the top of the program to find it.

Only by having these EQUATES in an application-wide INCLUDE concept can its
value be realized. Otherwise, it's just another half-baked inconsistent
method.

My 1 cent.
Mark Johnson
- Original Message -
From: [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 1:27 PM
Subject: Re: [Maybe spam] RE: [U2] Remove Scenario


 In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time,
 [EMAIL PROTECTED] writes:


  Thank you for clearing up the issue of using EQUATES. I was ready to
pile
  on you along with Les Hewkin. We use EQUATES and live by what they
  describe.  I have learned never to trust DICTS.

 The only problem being (or at least last time I checked) was that RAID
 doesn't understand EQUATES.  So you're walking through the code and see
 CUST.ADDRESS = ''
 and you type
 */CUST.ADDRESS
 and it says whatever something like variable not found or something I
 forget.

 So is there a downside to using a construct like
 A.CUST.ADDRESS = 40
 CUST.RECA.CUST.ADDRESS = 

 Then RAID is quite happy with it.

 Will Johnson
 ---
 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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Dave Walker
Interesting. Especially since I have the distinct pleasure of sharing a
cubicle wall with one of the original Primac developers.

And while the cpylibs work as $INCLUDEs now, we still use cpylib from
force of habit.
--
Dave Walker
8..7 4(())  -::-
  -::-8.74 .74(())
 ((88.74  ..74  -::-
((88.74   * Peace

 

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf Of Mark Johnson
 Sent: Friday, August 12, 2005 2:22 PM
 To: u2-users@listserver.u2ug.org
 Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
 
 I agree here. If I had the luxury of writing a complete new 
 application, I
 would borrow from my Primac experience and use
 
 INCLUDE FILE.DEFS CUSTOMER
 
 which contains
 
 OPEN CUSTOMER TO F.CUSTOMER ELSE STOP (sic)
 DIM CUST.REC(100)
 EQUATE  CUST.NAMETOCUST.REC(1)
 etc
 
 which virtually forces a uniform nomenclature for the opening 
 of the file
 (named commons not withstanding), the read-in REC and 
 consistent field names
 throughout the application.
 
 While many of my clients have bits and pieces of these 
 concepts, it's still
 a scattered mess of crap when it's not application-wide. Primac was so
 advanced that they didn't wait for MV to come out with the 
 INCLUDE concept.
 They wrote their own with a pre-compiler that assembled the 
 code. Pretty
 impressive for 1982.
 
 I choose not to use these methods as since my clients (except 
 those with
 Primac) already have so many half-baked disciplines, what's 
 one more. And
 while it could be argued that I'm only adding to the fire, I 
 am the current
 cook in the kitchen. I see so much mis-guided code in my 
 travels that I feel
 pretty good with my own rather direct form of coding.
 
 One mis-use of these Equates was on the per-program level and the
 application had this throughout their programs:
 
 EQUATE CUSTNAME TO CUST.REC(1)
 EQUATE CUST.NAME TO CUSTOMER(1)
 EQUATE CNAME TO C(1)
 EQUATE CUSTNAME TO DATA.CUSTOMER(1)
 EQUATE CUSTOMER.NAME TO CUSTOMER.REC(1)
 etc
 
 I can't recall now but there were 17 different expressions 
 for the first
 attribute in the customer file throughout all the programs. 
 Thus, the local
 use of these equates is just as bad as not using them. Given 
 that there are
 many ways to abbreviate CUSTOMER NAME, it's hard to remember 
 which gets used
 when.
 
 That's my 2 cent son local equates. Global equates are more preferred.
 Mark Johnson
 - Original Message -
 From: Les Hewkin [EMAIL PROTECTED]
 To: u2-users@listserver.u2ug.org
 Sent: Friday, August 12, 2005 4:40 AM
 Subject: RE: [Maybe spam] RE: [U2] Remove Scenario
 
 
  Rubbish,sorry Tony but that's what I think. You say 
 experienced developers
 and big companies don't use EQU INVNO.TABLE TO CUST(40). I 
 beg to differ.
 What do you call experienced? does 20 years count??? and what 
 do you call a
 big company??? we only have two boxes running universe, two 
 HP boxes, one
 with 32 processors and four logical machines, with over 5k 
 users. We define
 all our files this way. Our user base is growing all the time 
 as the company
 grows and our apps just keep on working.
 
  Les.
 
  -Original Message-
  From: Tony Gravagno [mailto:[EMAIL PROTECTED]
  Sent: 12 August 2005 07:23
  To: u2-users@listserver.u2ug.org
  Subject: [Maybe spam] RE: [U2] Remove Scenario
 
 
  Mark Johnson wrote:
   Here's a doozy.
 
  Mark, the fundamental problem is that the original code 
 wasn't designed
 for
  the application that it's being asked to do now.  That 
 construct that you
  describe EQU INVNO.TABLE TO CUST(40) is something that experienced
  developers simply don't use anymore because it's such a bad 
 idea.  That
  code was written for small companies and when they get 
 larger it falls
  apart as you see.  It's like generating invoice numbers like this:
  INV.NUM = (OLD.NUM+1)R%4
  Anyone remember day 10,000?
 
 
  This e-mail and any attachments are confidential and 
 intended solely for
 the use of the addressee only. If you have received this 
 message in error,
 you must not copy, distribute or disclose the contents; 
 please notify the
 sender immediately and delete the message.
  This message is attributed to the sender and may not 
 necessarily reflect
 the view of Travis Perkins plc or its subsidiaries (Travis Perkins).
 Agreements binding Travis Perkins may not be concluded by 
 means of e-mail
 communication.
  E-mail transmissions are not secure and Travis Perkins accepts no
 responsibility for changes made to this message after it was 
 sent. Whilst
 steps have been taken to ensure that this message is virus 
 free, Travis
 Perkins accepts no liability for infection and recommends 
 that you scan this
 e-mail and any attachments.
  Part of Travis Perkins plc. Registered Office: Lodge Way 
 House, Lodge Way,
 Harlestone Road, Northampton, NN5 7UG.
  ---
  u2-users mailing list
  u2-users@listserver.u2ug.org
  To unsubscribe

Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Mark Johnson
I don't specifically recall the guy's name but it's from India or Pakistan
or some hindu country. It's not Chandru Murthi though.

Thank him for me for making that part of my client's system more consistent
than the other half. It's a hybrid of Primac for A/R, G/L, A/P  P/O with
RESULTS running the Inventory, Order Entry, Sales Analysis. The Primac Job
Costing Module is held in a very high regard and my client sorely misses it
when they converted to Great Pains and got a rather childish replacement
from GP.

Thanks.
P.S What's that stuff after your name. Looks like a foreign phone number or
some computer graphics :)

- Original Message -
From: Dave Walker [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 3:03 PM
Subject: RE: [Maybe spam] RE: [U2] Remove Scenario


 Interesting. Especially since I have the distinct pleasure of sharing a
 cubicle wall with one of the original Primac developers.

 And while the cpylibs work as $INCLUDEs now, we still use cpylib from
 force of habit.
 --
 Dave Walker
 8..7 4(())  -::-
   -::-8.74 .74(())
  ((88.74  ..74  -::-
 ((88.74   * Peace



  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] Behalf Of Mark Johnson
  Sent: Friday, August 12, 2005 2:22 PM
  To: u2-users@listserver.u2ug.org
  Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
 
  I agree here. If I had the luxury of writing a complete new
  application, I
  would borrow from my Primac experience and use
 
  INCLUDE FILE.DEFS CUSTOMER
 
  which contains
 
  OPEN CUSTOMER TO F.CUSTOMER ELSE STOP (sic)
  DIM CUST.REC(100)
  EQUATE  CUST.NAMETOCUST.REC(1)
  etc
 
  which virtually forces a uniform nomenclature for the opening
  of the file
  (named commons not withstanding), the read-in REC and
  consistent field names
  throughout the application.
 
  While many of my clients have bits and pieces of these
  concepts, it's still
  a scattered mess of crap when it's not application-wide. Primac was so
  advanced that they didn't wait for MV to come out with the
  INCLUDE concept.
  They wrote their own with a pre-compiler that assembled the
  code. Pretty
  impressive for 1982.
 
  I choose not to use these methods as since my clients (except
  those with
  Primac) already have so many half-baked disciplines, what's
  one more. And
  while it could be argued that I'm only adding to the fire, I
  am the current
  cook in the kitchen. I see so much mis-guided code in my
  travels that I feel
  pretty good with my own rather direct form of coding.
 
  One mis-use of these Equates was on the per-program level and the
  application had this throughout their programs:
 
  EQUATE CUSTNAME TO CUST.REC(1)
  EQUATE CUST.NAME TO CUSTOMER(1)
  EQUATE CNAME TO C(1)
  EQUATE CUSTNAME TO DATA.CUSTOMER(1)
  EQUATE CUSTOMER.NAME TO CUSTOMER.REC(1)
  etc
 
  I can't recall now but there were 17 different expressions
  for the first
  attribute in the customer file throughout all the programs.
  Thus, the local
  use of these equates is just as bad as not using them. Given
  that there are
  many ways to abbreviate CUSTOMER NAME, it's hard to remember
  which gets used
  when.
 
  That's my 2 cent son local equates. Global equates are more preferred.
  Mark Johnson
  - Original Message -
  From: Les Hewkin [EMAIL PROTECTED]
  To: u2-users@listserver.u2ug.org
  Sent: Friday, August 12, 2005 4:40 AM
  Subject: RE: [Maybe spam] RE: [U2] Remove Scenario
 
 
   Rubbish,sorry Tony but that's what I think. You say
  experienced developers
  and big companies don't use EQU INVNO.TABLE TO CUST(40). I
  beg to differ.
  What do you call experienced? does 20 years count??? and what
  do you call a
  big company??? we only have two boxes running universe, two
  HP boxes, one
  with 32 processors and four logical machines, with over 5k
  users. We define
  all our files this way. Our user base is growing all the time
  as the company
  grows and our apps just keep on working.
  
   Les.
  
   -Original Message-
   From: Tony Gravagno [mailto:[EMAIL PROTECTED]
   Sent: 12 August 2005 07:23
   To: u2-users@listserver.u2ug.org
   Subject: [Maybe spam] RE: [U2] Remove Scenario
  
  
   Mark Johnson wrote:
Here's a doozy.
  
   Mark, the fundamental problem is that the original code
  wasn't designed
  for
   the application that it's being asked to do now.  That
  construct that you
   describe EQU INVNO.TABLE TO CUST(40) is something that experienced
   developers simply don't use anymore because it's such a bad
  idea.  That
   code was written for small companies and when they get
  larger it falls
   apart as you see.  It's like generating invoice numbers like this:
   INV.NUM = (OLD.NUM+1)R%4
   Anyone remember day 10,000?
  
  
   This e-mail and any attachments are confidential and
  intended solely for
  the use of the addressee only. If you have received

RE: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Bill_H
Mark:

I've said this before many times.  Use equates when you later want to alter
one or another side of an equality.  For example:

EQUATE APFILE.BALDUE  TO APFILE.REC(2)

but don't use an EQUATE to simply assign a value.  For example:

EQUATE BELL$ TO CHAR(9)

If you want to assign a variable simply:

BELL$ = CHAR(9)

This solves a lot of confusion.

Bill

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Mark Johnson
 Sent: Friday, August 12, 2005 4:32 PM
 To: u2-users@listserver.u2ug.org
 Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
 I'll go out on a limb here and make a conclusive opinion.
 
 I don't like EQUATES inside of a program. That doesn't mean I 
 don't like EQUATES. I just don't like them as some form of 
 higher programming when they are in a program.
 
 I do like them in a consistent manner and the way to make 
 them consistent is in an INCLUDE. Thus have a SETUP include 
 that has all of the housekeeping crap like EQUATE TRUE TO 1, 
 FALSE TO 0 EQUATE AM TO CHAR254, 253, 252 ETC PROMPT 
 EQUATE BELL TO CHAR(8)
 blah, blah, blah.
 
 and then have your file-defining EQUATES in their own single 
 INCLUDE. Thus the filehandle, DIM size and all of the things 
 you are trying to normalize are consistent.
 
 Like before, I've seen too many scattered examples of 
 half-baked ideas of EQUATES that really don't impress me 
 much. Sometimes I see one or two EQUATES like EQUATE CUSTNAME 
 TO 1 EQUATE PRODDESC TO 6
 
 and they're used properly but in the same program you see:
 
 PRINT CUSTRECCUSTNAMEL#30: :CUSTREC49D2/
 
 C'mon. Either all or none at all.
 
 That begs the question. EQUATE the attribute number for a 
 dynamic array (compiler replacement) or EQUATE the field for 
 a dimensioned array, (alias concept). I've seen many examples 
 of both but I think they lean more towards the DIM variety. 
 And the survey says...
 
 Thanks.
 
 - Original Message -
 From: Marilyn Hilb [EMAIL PROTECTED]
 To: u2-users@listserver.u2ug.org
 Sent: Friday, August 12, 2005 2:48 PM
 Subject: RE: [Maybe spam] RE: [U2] Remove Scenario
 
 
  I am on MasterPack. Whenever I 'deliver' a modification with a 
  dictionary
 on it from one system to another, that process actually 
 re-builds the equate includes for any new dictionary item I 
 may have added. So yup, got lots of these, but not something 
 I or any recent programmer before me did intentionally.
 
 
   -Original Message-
  From: Mark Johnson [mailto:[EMAIL PROTECTED]
  Sent: Friday, August 12, 2005 1:35 PM
  To: u2-users@listserver.u2ug.org
  Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
  I'll add another localized comment from my experience.
 
  My client with the 17 different expressions of CUSTOMER 
 NAME actually 
  had
 17
  versions of
 
  EQUATE CUST.NAME.ATTRIBUTE TO 1
  EQUATE CUSTOMER.NAME.ATT TO 1
  EQUATE CNAME.ATR TO 1
  etc.
 
  So I still stand by my original belief that if these EQUATES are 
  localized as in this example, then you are missing the 
 point and only 
  adding to the confusion. You cannot remember which version 
 is in each 
  different program without going to the top of the program 
 to find it.
 
  Only by having these EQUATES in an application-wide INCLUDE concept 
  can
 its
  value be realized. Otherwise, it's just another half-baked 
  inconsistent method.
 
  My 1 cent.
  Mark Johnson
  - Original Message -
  From: [EMAIL PROTECTED]
  To: u2-users@listserver.u2ug.org
  Sent: Friday, August 12, 2005 1:27 PM
  Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
 
   In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time, 
   [EMAIL PROTECTED] writes:
  
  
Thank you for clearing up the issue of using EQUATES. I 
 was ready 
to
  pile
on you along with Les Hewkin. We use EQUATES and live 
 by what they 
describe.  I have learned never to trust DICTS.
  
   The only problem being (or at least last time I checked) was that 
   RAID doesn't understand EQUATES.  So you're walking 
 through the code 
   and see CUST.ADDRESS = ''
   and you type
   */CUST.ADDRESS
   and it says whatever something like variable not found or 
   something I forget.
  
   So is there a downside to using a construct like 
 A.CUST.ADDRESS = 40 
   CUST.RECA.CUST.ADDRESS = 
  
   Then RAID is quite happy with it.
  
   Will Johnson
   ---
   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/
 ---
 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: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Bruce Nichol

Goo'day, Will
At 13:27 12/08/05 -0400, you wrote:


In a message dated 8/12/2005 6:00:10 AM Pacific Daylight Time,
[EMAIL PROTECTED] writes:


 Thank you for clearing up the issue of using EQUATES. I was ready to pile
 on you along with Les Hewkin. We use EQUATES and live by what they
 describe.  I have learned never to trust DICTS.

The only problem being (or at least last time I checked) was that RAID
doesn't understand EQUATES.  So you're walking through the code and see
CUST.ADDRESS = ''
and you type
*/CUST.ADDRESS
and it says whatever something like variable not found or something I
forget.


Ah yes, but

If you're walking through and you see a CUSTdotwhatever you *know* - 
or at least you *should* know, if you're at *that* level - that 
CUSTdotwhatever is, the CUSTomer record and whatever refers to a 
particular field.


Ergo:
 In RAID,

CUST(field)/

gives the required response..

No downsides just another* way..



So is there a downside to using a construct like
A.CUST.ADDRESS = 40
CUST.RECA.CUST.ADDRESS = 

Then RAID is quite happy with it.

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


--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.8/71 - Release Date: 12/08/05




--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.8/71 - Release Date: 12/08/05


Regards,

Bruce Nichol
Talon Computer Services
ALBURYNSW 2640
Australia

http://www.taloncs.com.au

Tel: +61 (0)411149636
Fax: +61 (0)260232119

If it ain't broke, fix it till it is! 



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.8/71 - Release Date: 12/08/05
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/


Re: [Maybe spam] RE: [U2] Remove Scenario

2005-08-12 Thread Mark Johnson
Not for nothin' but I believe there's more to the variable assignment
version of an equate than you've expressed.

In essence, there are 2 kinds of EQUATES. The first style, sometimes known
as an alias, is like your

EQUATE APFILE.BALDUE  TO APFILE.REC(2)

and you can manage the contents of the second field in the A/P record either
using the left portion of the TO or the right.

The second style is more on the compiler level and not a simple variable
assignment.

 EQUATE TRUE TO 1

causes the compiler to replace the expression TRUE inside the source code
with the literal value '1'. Then it compiles. This is different than

TRUE=1

which occurs at run-time.

Quite frankly I really, really don't think the assignment version matters
with today's processors. This theory has been around since Jurrasic Pick and
may have made more of a difference back then. Today, saving 5-10 cpu cycles
per second is drop-dead useless regardless of how many users there are. Even
on a 500 user system, that's 5,000 savings against 2,800,000,000. Hardly
noticable. Only the lunatic fringe or purely academic can support that
argument.

I think the EQUATE TRUE TO 1 comes from a taught programming discipline from
a long time ago and, like many learned things, isn't bad so it doesn't need
replacing. But I don't think it's necessary.

EQUATE CUSTNAME TO 1 falls into the same assignment category. This borders
more on documenting the program than programming in it. Technically
speaking, you're wasting time with an equate like this as many times the
programmer will use

PRINT CUSTREC1

and the pre-compiler would have wasted those few precious cycles replacing
the text CUSTNAME with the digit 1.

Thus the argument should be had for the human programmer's effeciency and
not the program's. Before the flames come, I'm not endorsing bad coding. But
to have EQUATE CUST.AR.BAL TO 49 at the top (or buried in an INCLUDE) and
trying to debug (or read) a program with a problem in that area means more
work for me. Considering that the editor is purely numeric, if field 49 is
screwed up somehow and I have a program filled with indirect references, I
have to print out that roadmap to see the reference. Plus there is a good
chance (except for Manage-2000 I guess) that the outside dict names don't
always (or can't) be used for internal variable names. There's a dozen ways
to express CUSTOMER NAME and only one way to express '1'.

I remember a senior programmer in 1978 printing out the map of the compiled
program and trying to insure that a FOR...NEXT loop fell within the
boundaries of a single object code frame. That's inconcievable today.

BTW, I don't subscribe to EQUATEing variables (nor alias's for that matter)
as my client's code is far too scattered to introduce this level of
overhead. My INCLUDE SETUP is all equal signs and I don't use File Defining
INCLUDES unless the entire (or virtually entire) application is that way
(Primac).

Thus I guess I am a keeper of the standard manual coding styles.

One other thing. I know where the $ in BELL$ came from but tell me why you
use it. I've seen it before in SAS but never have used it in any MV
programming except if previously used. Just interested, that all.

Mark Johnson


- Original Message -
From: Bill_H [EMAIL PROTECTED]
To: u2-users@listserver.u2ug.org
Sent: Friday, August 12, 2005 8:35 PM
Subject: RE: [Maybe spam] RE: [U2] Remove Scenario


 Mark:

 I've said this before many times.  Use equates when you later want to
alter
 one or another side of an equality.  For example:

 EQUATE APFILE.BALDUE  TO APFILE.REC(2)

 but don't use an EQUATE to simply assign a value.  For example:

 EQUATE BELL$ TO CHAR(9)

 If you want to assign a variable simply:

 BELL$ = CHAR(9)

 This solves a lot of confusion.

 Bill

  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of Mark Johnson
  Sent: Friday, August 12, 2005 4:32 PM
  To: u2-users@listserver.u2ug.org
  Subject: Re: [Maybe spam] RE: [U2] Remove Scenario
 
  I'll go out on a limb here and make a conclusive opinion.
 
  I don't like EQUATES inside of a program. That doesn't mean I
  don't like EQUATES. I just don't like them as some form of
  higher programming when they are in a program.
 
  I do like them in a consistent manner and the way to make
  them consistent is in an INCLUDE. Thus have a SETUP include
  that has all of the housekeeping crap like EQUATE TRUE TO 1,
  FALSE TO 0 EQUATE AM TO CHAR254, 253, 252 ETC PROMPT 
  EQUATE BELL TO CHAR(8)
  blah, blah, blah.
 
  and then have your file-defining EQUATES in their own single
  INCLUDE. Thus the filehandle, DIM size and all of the things
  you are trying to normalize are consistent.
 
  Like before, I've seen too many scattered examples of
  half-baked ideas of EQUATES that really don't impress me
  much. Sometimes I see one or two EQUATES like EQUATE CUSTNAME
  TO 1 EQUATE PRODDESC TO 6
 
  and they're used properly but in the same program you see