Introduction of Calling Quick Screens as Functions
Michael Lee
Michael.Lee@mclsystemsinc.com
Tue, 25 May 2004 13:43:40 -0700
This is a multi-part message in MIME format.
--Boundary_(ID_C0FB7b+WHUtuJ8mTD6mpIQ)
Content-type: text/plain; charset=us-ascii; format=flowed
Content-transfer-encoding: 7BIT
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]
>Sent: May 25, 2004 2:22 PM
>To: Penney, John; Viet Nguyen; Hodson, Paul M EDUC:EX;
>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]
>Sent: Tuesday, May 25, 2004 12:14 PM
>To: 'Viet Nguyen'; Hodson, Paul M EDUC:EX; 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]
>Sent: Tuesday, May 25, 2004 11:44 AM
>To: Hodson, Paul M EDUC:EX; 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] On Behalf Of Hodson, Paul M
>EDUC:EX
>Sent: Tuesday, May 25, 2004 2:37 PM
>To: '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).
>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
> phodson@pacificcoast.net
>
>
>
>
>
>= = = = = = = = = = = = = = = = = = = = = = = = = = = =
>Mailing list: powerh-l@lists.sowder.com
>Subscribe: "subscribe" in message body to
>powerh-l-request@lists.sowder.com
>Unsubscribe: "unsubscribe <password>" in message body to
>powerh-l-request@lists.sowder.com
>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
>Subscribe: "subscribe" in message body to powerh-l-request@lists.sowder.com
>Unsubscribe: "unsubscribe <password>" in message body to
>powerh-l-request@lists.sowder.com
>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
>Subscribe: "subscribe" in message body to powerh-l-request@lists.sowder.com
>Unsubscribe: "unsubscribe <password>" in message body to
>powerh-l-request@lists.sowder.com
>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
>Subscribe: "subscribe" in message body to powerh-l-request@lists.sowder.com
>Unsubscribe: "unsubscribe <password>" in message body to
>powerh-l-request@lists.sowder.com
>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
>Subscribe: "subscribe" in message body to powerh-l-request@lists.sowder.com
>Unsubscribe: "unsubscribe <password>" in message body to powerh-l-request@lists.sowder.com
>http://lists.sowder.com/mailman/listinfo/powerh-l
>This list is closed, thus to post to the list you must be a subscriber.
>
>
>
--Boundary_(ID_C0FB7b+WHUtuJ8mTD6mpIQ)
Content-type: text/html; charset=us-ascii
Content-transfer-encoding: 7BIT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
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 type="cite"
cite="midB4EA5C275B4CE842BCF51FE20D469AA0C53325@hbmsexch2.flinflon.hbms">
<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,
<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 [<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:
<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 [<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 <password>" 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 <password>" 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 <password>" 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 <password>" 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 <password>" 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>
</body>
</html>
--Boundary_(ID_C0FB7b+WHUtuJ8mTD6mpIQ)--