Do you do a lot of this query statement within an I-type kind of thing?  The 
performance must be atrocious.

I would make an index on "cust_shipto_cart" in the detail file (if you don't 
already have one), and use the unibasic setindex and readfwd commands instead 
of having it parse a list.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of jonathanm
Sent: Wednesday, June 22, 2011 11:23 AM
To: [email protected]
Subject: [U2] Very Strange: Only first DICT entry using SUBR is LISTed


Hi, all.

I'm on UniData 6.0 on hpux.

I have a couple of DICT entries, expect_total_qty and receipt_total_qty on a
file called core_cart_head. They are listed below. When I use them in a LIST
command like "LIST core_cart_head expect_total_qty receipt_total_qty" only
the first field has an values, regardless of the order. For example, with
the above LIST command I get:

LIST core_cart_head expect_total_qty receipt_total_qty
core_cart_head     Expect Total Qty     Receipt Total Qty
67094_436_1        4
67094_436_2        7
67094_436_3        7
67094_436_4        1
67094_436_5        3
5 records listed

But if I reverse the order of fields and use "LIST core_cart_head
receipt_total_qty expect_total_qty" I get:

LIST core_cart_head receipt_total_qty expect_total_qty
core_cart_head     Receipt Total Qty     Expect Total Qty
67094_436_1        2
67094_436_2        5
67094_436_3        6
67094_436_4        3
67094_436_5        8
5 records listed

All of the data listed is correct; the only problem is only the first DICT
word listed shows any values.

Any ideas why this is happening and how I can get both DICT words to show
values?

Now here's the trick: Both DICT words use the SUBR function. They call a
subroutine that EXECUTEs a different LIST command and parses the output,
returning certain key information from the output.

Here are the DICT entries:

expect_total_qty
001: V The total number of cores expected in this cart.
002: SUBR("GET.LIST.TOTAL",'LIST core_cart_detail WITH cust_shipto_cart
"':@ID:'" TOTAL expect_qty',"conversion=MR0")
003: MR0
004: Expect Total Qty
005: 10L
006: S

receipt_total_qty
001: V The total number of cores received in this cart.
002: SUBR("GET.LIST.TOTAL",'LIST core_cart_detail WITH cust_shipto_cart
"':@ID:'" TOTAL receipt_qty',"conversion=MR0")
003: MR0
004: Receipt Total Qty
005: 10L
006: S

And here is the subroutine they're calling:

GET.LIST.TOTAL
001: $BASICTYPE "P"
002: SUBROUTINE GET.LIST.TOTAL(RESULT,COMMAND,OPTIONS)
003: *
004: CONVERSION_CODE=''
005: * process options
006: OPT.CNT=DCOUNT(OPTIONS,@AM)
007: FOR OPT.PTR=1 TO OPT.CNT
008:     OPTION=OPTIONS<OPT.PTR>
009:     OPT.NAME=FIELD(OPTION,'=',1)
010:     VALUE.START=COL2()+1
011:     OPT.NAME=OCONV(TRIM(OPT.NAME),'MCU')
012:     OPT.VALUE=OPTION[VALUE.START,LEN(OPTION)-VALUE.START+1]
013:     BEGIN CASE
014:         CASE OPT.NAME='CONVERSION'
015:             CONVERSION_CODE=OPT.VALUE
016:     END CASE
017: NEXT OPT.PTR
018: *
019: RESULT=''
020: PERFORM COMMAND CAPTURING SCREEN.OUTPUT
021: TOTAL.POS=INDEX(SCREEN.OUTPUT,@AM:'TOTAL ',1)
022: IF TOTAL.POS THEN
023:
REMAINING.STR=SCREEN.OUTPUT[TOTAL.POS+8,LEN(SCREEN.OUTPUT)-TOTAL.POS-7]
024:     RESULT=TRIM(REMAINING.STR<1>)
025:     IF CONVERSION_CODE <> '' THEN
026:         RESULT=ICONV(RESULT,CONVERSION_CODE)
027:     END
028: END
029: RETURN


Thanks for any help!

Jonathan
--
View this message in context: 
http://old.nabble.com/Very-Strange%3A-Only-first-DICT-entry-using-SUBR-is-LISTed-tp31904158p31904158.html
Sent from the U2 - Users mailing list archive at Nabble.com.

_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users
<html>
<body>
________________________________ Dave Davis Team Lead, R&amp;D P: 614-875-4910 
x108 F: 614-875-4088 E: [email protected] 
[http://www.harriscomputer.com/images/signatures/HarrisSchools.gif] 
[http://www.harriscomputer.com/images/signatures/DivisionofHarris.gif]
 6110 Enterprise Parkway Grove City, OH 43123 www.harris-schoolsolutions.com 
This message is intended exclusively for the individual or entity to which it 
is addressed. This communication may contain information that is proprietary, 
privileged or confidential
 or otherwise legally exempt from disclosure. If you are not the named 
addressee, you are not authorized to read, print, retain, copy or disseminate 
this message or any part of it. If you have received this message in error, 
please notify the sender immediately
 by e-mail and delete all copies of the message.
</body>
</html>
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to