Introduction of Calling Quick Screens as Functions

Guy Werry guy.werry@hbms.ca
Tue, 25 May 2004 16:01:53 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C4429B.81B51970
Content-Type: text/plain;
	charset="iso-8859-1"

Yeah, for my tastes it's just about as easy to do a couple of subfiles ...
typically I keep the "intermediate" subfiles small by using just the bare
minimum of data items in each of the files.  
 
I guess too that my preferences are coloured (fer you Americans on the list,
that's the "Queen's English" for 'colored') by never having learnt how to do
Quick in batch mode and by starting my career in Cobol, where you often had
that sort of processing (extract from the master file, write to a sort file,
sort the sort file, do some more transformations, open yet another file to
report to, etc., etc.).
 
Guy.

-----Original Message-----
From: Michael Lee [mailto:Michael.Lee@mclsystemsinc.com]
Sent: May 25, 2004 3:44 PM
To: Guy Werry
Cc: powerh-l@lists.sowder.com
Subject: Re: Introduction of Calling Quick Screens as Functions


Hi Folks,

Just to add my 2 cents. Perhaps you can do most things in QTP but can you do
them as efficiently? For example if I have to link to a file and read down a
date range until a certain criteria is reached then I run into problems.
This is especially true if it's a loop within a loop. With Quick I can have
a WHILE RETRIEVING loop with a BREAK option to quite once whatever criteria
is met (for example a total or count reaches a certain level... report all
customers whose invoices total at least $1,000,000 or who have had 10 orders
in the last month).

Usually where I use QUICK as a batch process I am reading down a chain. For
each of those records I go out and do another read down another chain and so
on. To do this in QTP I would have to build a huge record complex and write
to a subfile and then create another subfile and so on and so on. There are
some nice tricks that one can do in QTP using "IF 1 = 2" type processing but
not anything that can't be done in just as easy-if not easier-in QUICK. This
coupled with the fact that using INTERNALs allows a user to put 'like-code'
in one place often makes QUICK faster and more maintainable. 

QTP is great for straightforward mass updates but I find that the more
complex the process the more QUICK comes into it's own in my humble(ish)
opinion.

Regards,


Michael Lee
MCL Systems Inc.


Guy Werry wrote:


I can't agree with your statement that interactive quick is a better tool.

Qtp is specialized for "batch" processing, whereas with Quick we're tricking

an interactive product to do something it's not really intended for.  As I

wrote to Viet privately, I've almost never had to resort to another tool

besides Qtp.  And, where I've used another tool (normally Cobol), it has

almost always involved cases where the algorithm required array handling,

which ALL of the Powerhouse tools do poorly.



As John alludes, you may have to plan out a bit what you're trying to do, as

it may take several Qtp processes, but once you get used to doing things

that way it becomes very much 2nd nature.  I would also think that it may be

easier to debug, also.

 

Guy.



-----Original Message-----

From: David Morrison - Corporate [ mailto:dmorrison@mcbrideelectric.com
<mailto:dmorrison@mcbrideelectric.com> ]

Sent: May 25, 2004 2:22 PM

To: Penney, John; Viet Nguyen; Hodson, Paul M EDUC:EX;

powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subject: RE: Introduction of Calling Quick Screens as Functions 





Viet,



<rant on>



Well, now you see why the cost of running California's prisons has

skyrocketed.  Here you have someone working for that department that refuses

to use a better tool when it is available.



</rant off>



David Morrison

McBride Electric



 -----Original Message-----

From: 	Penney, John [ mailto:John.Penney@corr.ca.gov
<mailto:John.Penney@corr.ca.gov> ] 

Sent:	Tuesday, May 25, 2004 12:14 PM

To:	'Viet Nguyen'; Hodson, Paul M EDUC:EX;  powerh-l@lists.sowder.com
<mailto:powerh-l@lists.sowder.com> 

Subject:	RE: Introduction of Calling Quick Screens as Functions 



Dear Viet:

<rant on> or whatever

The majority, if not the vast majority of batch processing can easily or if

not easily, with come forethought can indeed be accomplished via QTP. The

tools, techniques and procedures alluded to in this thread reflect the

leading edge of the most sophisticated users who have years if not decades

of Powerhouse experience. I do not think that it would be in your best

interest to learn how to program Quick to act just like a variant of Cobol-

or am I missing something? I do realize that the Quick language provides you

this type of functionality but, IMHO, it is to be used with caution and only

after long reflection as to the consequences. QTP is a fine tool and looping

constructs are there in the facility. YMMV IIRC IMHO

<rant off> or whatever



JP in Sacto

-----Original Message-----

From: Viet Nguyen [ mailto:VNguyen@wsboces.org <mailto:VNguyen@wsboces.org>
]

Sent: Tuesday, May 25, 2004 11:44 AM

To: Hodson, Paul M EDUC:EX;  powerh-l@lists.sowder.com
<mailto:powerh-l@lists.sowder.com> 

Subject: RE: Introduction of Calling Quick Screens as Functions 





Where can I learn more about using quick as batch programs? I am a

newbie at Cognos QTP - it's very awkward for me without the looping

constructs.

Thanks.



-----Original Message-----

From:  powerh-l-admin@lists.sowder.com
<mailto:powerh-l-admin@lists.sowder.com> 

[ mailto:powerh-l-admin@lists.sowder.com
<mailto:powerh-l-admin@lists.sowder.com> ] On Behalf Of Hodson, Paul M

EDUC:EX

Sent: Tuesday, May 25, 2004 2:37 PM

To: ' powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> '

Subject: Introduction of Calling Quick Screens as Functions 



We have a batch quick process(aka ghost screen) that processes a WEB

calls

(up to 2500 concurrent clients) from a JAVA app through oracle 8i blob

data

type and generates PDF output back to the WEB app(see  www.sanface.com
<http://www.sanface.com> ).

All

run from a batch quick engine running in "persistent" mode using  a

trigger

and an openVMS mailbox. This allows our CUI user to the have the same

processing as the WEB does (sharing the processing) and dressed up the

powerhouse CUI interface(lipstick on a pig - sorry but the WEB is much

sexier but why re-write if it ain't broke)



Also at another client, we have batch quick that is used as an interface

between Level 4 (business app) and Level 3 (steel mill line ops) that is

shared. DMQueue is used to pass messages with the same quick engine

running

6 different mill ops interfaces. Again sharing processing.



There are papers written in the cognos proceedings (user group meeting

minutes). One comes to mind "Quick:To Batch or not to batch" from the

1994

version.



 



  

Paul Hodson

Senior Systems Consultant



    

Tel:     (250) 387-8877

           (250) 744-2372

Fax:    (250) 744-2372

Email:  Paul.Hodson@gems7.gov.bc.ca <mailto:Paul.Hodson@gems7.gov.bc.ca> 

           phodson@pacificcoast.net <mailto:phodson@pacificcoast.net> 











= = = = = = = = = = = = = = = = = = = = = = = = = = = =

Mailing list:  powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subscribe: "subscribe" in message body to

powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


Unsubscribe: "unsubscribe <password>" in message body to

powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


http://lists.sowder.com/mailman/listinfo/powerh-l
<http://lists.sowder.com/mailman/listinfo/powerh-l> 

This list is closed, thus to post to the list you must be a subscriber.



= = = = = = = = = = = = = = = = = = = = = = = = = = = =

Mailing list:  powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subscribe: "subscribe" in message body to  powerh-l-request@lists.sowder.com
<mailto:powerh-l-request@lists.sowder.com> 

Unsubscribe: "unsubscribe <password>" in message body to

powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


http://lists.sowder.com/mailman/listinfo/powerh-l
<http://lists.sowder.com/mailman/listinfo/powerh-l> 

This list is closed, thus to post to the list you must be a subscriber.



= = = = = = = = = = = = = = = = = = = = = = = = = = = =

Mailing list:  powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subscribe: "subscribe" in message body to  powerh-l-request@lists.sowder.com
<mailto:powerh-l-request@lists.sowder.com> 

Unsubscribe: "unsubscribe <password>" in message body to

powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


http://lists.sowder.com/mailman/listinfo/powerh-l
<http://lists.sowder.com/mailman/listinfo/powerh-l> 

This list is closed, thus to post to the list you must be a subscriber.







= = = = = = = = = = = = = = = = = = = = = = = = = = = =

Mailing list:  powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subscribe: "subscribe" in message body to  powerh-l-request@lists.sowder.com
<mailto:powerh-l-request@lists.sowder.com> 

Unsubscribe: "unsubscribe <password>" in message body to

powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


http://lists.sowder.com/mailman/listinfo/powerh-l
<http://lists.sowder.com/mailman/listinfo/powerh-l> 

This list is closed, thus to post to the list you must be a subscriber.

= = = = = = = = = = = = = = = = = = = = = = = = = = = =

Mailing list:  powerh-l@lists.sowder.com <mailto:powerh-l@lists.sowder.com> 

Subscribe: "subscribe" in message body to  powerh-l-request@lists.sowder.com
<mailto:powerh-l-request@lists.sowder.com> 

Unsubscribe: "unsubscribe <password>" in message body to
powerh-l-request@lists.sowder.com <mailto:powerh-l-request@lists.sowder.com>


http://lists.sowder.com/mailman/listinfo/powerh-l
<http://lists.sowder.com/mailman/listinfo/powerh-l> 

This list is closed, thus to post to the list you must be a subscriber.



  


------_=_NextPart_001_01C4429B.81B51970
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE></TITLE>

<META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=640535220-25052004>Yeah, 
for my tastes it's just about as easy to do a couple of subfiles ... typically I 
keep the "intermediate" subfiles small by using just the bare minimum of data 
items in each of the files.&nbsp; </SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=640535220-25052004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=640535220-25052004>I 
guess too that my preferences are coloured (fer you Americans on the list, 
that's the "Queen's English" for 'colored') by never having learnt how to do 
Quick in batch mode and by starting my career in Cobol, where you often had that 
sort of processing (extract from the master file, write to a sort file, sort the 
sort file, do some more transformations, open yet another file to report to, 
etc., etc.).</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=640535220-25052004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=640535220-25052004>Guy.</SPAN></FONT></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> Michael Lee 
  [mailto:Michael.Lee@mclsystemsinc.com]<BR><B>Sent:</B> May 25, 2004 3:44 
  PM<BR><B>To:</B> Guy Werry<BR><B>Cc:</B> 
  powerh-l@lists.sowder.com<BR><B>Subject:</B> Re: Introduction of Calling Quick 
  Screens as Functions<BR><BR></FONT></DIV>Hi Folks,<BR><BR>Just to add my 2 
  cents. Perhaps you can do most things in QTP but can you do them as 
  efficiently? For example if I have to link to a file and read down a date 
  range until a certain criteria is reached then I run into problems. This is 
  especially true if it's a loop within a loop. With Quick I can have a WHILE 
  RETRIEVING loop with a BREAK option to quite once whatever criteria is met 
  (for example a total or count reaches a certain level... report all customers 
  whose invoices total at least $1,000,000 or who have had 10 orders in the last 
  month).<BR><BR>Usually where I use QUICK as a batch process I am reading down 
  a chain. For each of those records I go out and do another read down another 
  chain and so on. To do this in QTP I would have to build a huge record complex 
  and write to a subfile and then create another subfile and so on and so on. 
  There are some nice tricks that one can do in QTP using "IF 1 = 2" type 
  processing but not anything that can't be done in just as easy-if not 
  easier-in QUICK. This coupled with the fact that using INTERNALs allows a user 
  to put 'like-code' in one place often makes QUICK faster and more 
  maintainable. <BR><BR>QTP is great for straightforward mass updates but I find 
  that the more complex the process the more QUICK comes into it's own in my 
  humble(ish) opinion.<BR><BR>Regards,<BR><BR><BR>Michael Lee<BR>MCL Systems 
  Inc.<BR><BR><BR>Guy Werry wrote:<BR>
  <BLOCKQUOTE 
  cite="midB4EA5C275B4CE842BCF51FE20D469AA0C53325@hbmsexch2.flinflon.hbms" 
  type="cite"><PRE wrap="">I can't agree with your statement that interactive quick is a better tool.
Qtp is specialized for "batch" processing, whereas with Quick we're tricking
an interactive product to do something it's not really intended for.  As I
wrote to Viet privately, I've almost never had to resort to another tool
besides Qtp.  And, where I've used another tool (normally Cobol), it has
almost always involved cases where the algorithm required array handling,
which ALL of the Powerhouse tools do poorly.

As John alludes, you may have to plan out a bit what you're trying to do, as
it may take several Qtp processes, but once you get used to doing things
that way it becomes very much 2nd nature.  I would also think that it may be
easier to debug, also.
 
Guy.

-----Original Message-----
From: David Morrison - Corporate [<A class=moz-txt-link-freetext href="mailto:dmorrison@mcbrideelectric.com">mailto:dmorrison@mcbrideelectric.com</A>]
Sent: May 25, 2004 2:22 PM
To: Penney, John; Viet Nguyen; Hodson, Paul M EDUC:EX;
<A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subject: RE: Introduction of Calling Quick Screens as Functions 


Viet,

&lt;rant on&gt;

Well, now you see why the cost of running California's prisons has
skyrocketed.  Here you have someone working for that department that refuses
to use a better tool when it is available.

&lt;/rant off&gt;

David Morrison
McBride Electric

 -----Original Message-----
From: 	Penney, John [<A class=moz-txt-link-freetext href="mailto:John.Penney@corr.ca.gov">mailto:John.Penney@corr.ca.gov</A>] 
Sent:	Tuesday, May 25, 2004 12:14 PM
To:	'Viet Nguyen'; Hodson, Paul M EDUC:EX; <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subject:	RE: Introduction of Calling Quick Screens as Functions 

Dear Viet:
&lt;rant on&gt; or whatever
The majority, if not the vast majority of batch processing can easily or if
not easily, with come forethought can indeed be accomplished via QTP. The
tools, techniques and procedures alluded to in this thread reflect the
leading edge of the most sophisticated users who have years if not decades
of Powerhouse experience. I do not think that it would be in your best
interest to learn how to program Quick to act just like a variant of Cobol-
or am I missing something? I do realize that the Quick language provides you
this type of functionality but, IMHO, it is to be used with caution and only
after long reflection as to the consequences. QTP is a fine tool and looping
constructs are there in the facility. YMMV IIRC IMHO
&lt;rant off&gt; or whatever

JP in Sacto
-----Original Message-----
From: Viet Nguyen [<A class=moz-txt-link-freetext href="mailto:VNguyen@wsboces.org">mailto:VNguyen@wsboces.org</A>]
Sent: Tuesday, May 25, 2004 11:44 AM
To: Hodson, Paul M EDUC:EX; <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subject: RE: Introduction of Calling Quick Screens as Functions 


Where can I learn more about using quick as batch programs? I am a
newbie at Cognos QTP - it's very awkward for me without the looping
constructs.
Thanks.

-----Original Message-----
From: <A class=moz-txt-link-abbreviated href="mailto:powerh-l-admin@lists.sowder.com">powerh-l-admin@lists.sowder.com</A>
[<A class=moz-txt-link-freetext href="mailto:powerh-l-admin@lists.sowder.com">mailto:powerh-l-admin@lists.sowder.com</A>] On Behalf Of Hodson, Paul M
EDUC:EX
Sent: Tuesday, May 25, 2004 2:37 PM
To: '<A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>'
Subject: Introduction of Calling Quick Screens as Functions 

We have a batch quick process(aka ghost screen) that processes a WEB
calls
(up to 2500 concurrent clients) from a JAVA app through oracle 8i blob
data
type and generates PDF output back to the WEB app(see <A class=moz-txt-link-abbreviated href="http://www.sanface.com">www.sanface.com</A>).
All
run from a batch quick engine running in "persistent" mode using  a
trigger
and an openVMS mailbox. This allows our CUI user to the have the same
processing as the WEB does (sharing the processing) and dressed up the
powerhouse CUI interface(lipstick on a pig - sorry but the WEB is much
sexier but why re-write if it ain't broke)

Also at another client, we have batch quick that is used as an interface
between Level 4 (business app) and Level 3 (steel mill line ops) that is
shared. DMQueue is used to pass messages with the same quick engine
running
6 different mill ops interfaces. Again sharing processing.

There are papers written in the cognos proceedings (user group meeting
minutes). One comes to mind "Quick:To Batch or not to batch" from the
1994
version.

 

  </PRE>
    <BLOCKQUOTE type="cite"><PRE wrap="">Paul Hodson
Senior Systems Consultant

    </PRE></BLOCKQUOTE><PRE wrap=""><!---->Tel:     (250) 387-8877
           (250) 744-2372
Fax:    (250) 744-2372
Email: <A class=moz-txt-link-abbreviated href="mailto:Paul.Hodson@gems7.gov.bc.ca">Paul.Hodson@gems7.gov.bc.ca</A>
          <A class=moz-txt-link-abbreviated href="mailto:phodson@pacificcoast.net">phodson@pacificcoast.net</A>





= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subscribe: "subscribe" in message body to
<A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
Unsubscribe: "unsubscribe &lt;password&gt;" in message body to
<A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
<A class=moz-txt-link-freetext href="http://lists.sowder.com/mailman/listinfo/powerh-l">http://lists.sowder.com/mailman/listinfo/powerh-l</A>
This list is closed, thus to post to the list you must be a subscriber.

= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subscribe: "subscribe" in message body to <A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
Unsubscribe: "unsubscribe &lt;password&gt;" in message body to
<A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
<A class=moz-txt-link-freetext href="http://lists.sowder.com/mailman/listinfo/powerh-l">http://lists.sowder.com/mailman/listinfo/powerh-l</A>
This list is closed, thus to post to the list you must be a subscriber.

= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subscribe: "subscribe" in message body to <A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
Unsubscribe: "unsubscribe &lt;password&gt;" in message body to
<A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
<A class=moz-txt-link-freetext href="http://lists.sowder.com/mailman/listinfo/powerh-l">http://lists.sowder.com/mailman/listinfo/powerh-l</A>
This list is closed, thus to post to the list you must be a subscriber.



= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subscribe: "subscribe" in message body to <A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
Unsubscribe: "unsubscribe &lt;password&gt;" in message body to
<A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
<A class=moz-txt-link-freetext href="http://lists.sowder.com/mailman/listinfo/powerh-l">http://lists.sowder.com/mailman/listinfo/powerh-l</A>
This list is closed, thus to post to the list you must be a subscriber.
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: <A class=moz-txt-link-abbreviated href="mailto:powerh-l@lists.sowder.com">powerh-l@lists.sowder.com</A>
Subscribe: "subscribe" in message body to <A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
Unsubscribe: "unsubscribe &lt;password&gt;" in message body to <A class=moz-txt-link-abbreviated href="mailto:powerh-l-request@lists.sowder.com">powerh-l-request@lists.sowder.com</A>
<A class=moz-txt-link-freetext href="http://lists.sowder.com/mailman/listinfo/powerh-l">http://lists.sowder.com/mailman/listinfo/powerh-l</A>
This list is closed, thus to post to the list you must be a subscriber.

  </PRE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C4429B.81B51970--