Problem updating last record written at sort break in QTP
Tim Cummings
tim.cummings@frequencymarketing.com
Thu, 9 Dec 2004 13:18:11 -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_01C4DE1B.710988B0
Content-Type: text/plain;
charset="iso-8859-1"
I have a QTP that writes some transactions and at the end I may have to
update the last
transaction written to adjust for rounding problems. Here is the scenario:
ORDER ITEM
XXX BR-CREDITS QUANTITY-ON-HAND ITEM-NO
1 101 1 10001059
XXX-RATIO
XXX PR-PREFIX XXX-RATIO
1 20 .33
1 20 .33
1 20 .34
All of the OO-TRX and OQ-TRX get written properly but the update at ITEM-NO
fails.
Using the exact key value given in the error message, I can find the
TRAN-KEY when
the QTP is finished.
Why does the QTP fail?
Here's the code:
CAN CLE
ACCESS ORDER-ITEMS &
LINK XXX OF ORDER-ITEMS &
TO PR-XXX OF XXX-RATIO
DEFINE SPOILED-CREDITS INTEGER SIGNED SIZE 4 = BR-CREDITS of order-items
&
* QUANTITY-ON-HAND of
order-items &
* (PR-PERCENT of XXX-ratio /
100)
TEMPORARY CREDIT-TOTAL NUM*8
SORT ON ITEM-NO
ITEM CREDIT-TOTAL SUBTOTAL SPOILED-CREDITS RESET AT ITEM-NO
OUTPUT TRANSACTIONS ADD NOITEMS ALIAS Oo-TRX
ITEM UNIT OF Oo-TRX INITIAL "9999999999"
ITEM TRAN-KEY OF Oo-TRX INITIAL "Oo" + ITEM-NO + PR-PREFIX
ITEM CREDITS OF Oo-TRX FINAL SPOILED-CREDITS
OUTPUT TRANSACTIONS UPDATE ALIAS LASTOo AT ITEM-NO &
VIA TRAN-KEY USING "Oo" + ITEM-NO + PR-PREFIX &
IF 0 <> (BR-CREDITS * QUANTITY-ON-HAND - CREDIT-TOTAL)
ITEM CREDITS OF LASTOo = CREDITS OF LASTOq + ((BR-CREDITS *
QUANTITY-ON-HAND - CREDIT-TOTAL * -1))
GO
Executing request 1 ...
----------------------------------------------------------------------------
---
Cannot find record with this key/index value.
[3]
File: LASTOQ
Linkitem: UNIT
Linkitem: LINK-UNIT
Linkitem: TRAN-KEY Oq1000105920
Action Taken: Run terminated.
----------------------------------------------------------------------------
---
Records read:
ORDER-ITEMS 5,790
XXX-RATIO 3
Transactions processed: 3
Records processed: Added Updated Unchanged
Deleted
ORDER-ITEMS 0 0 0
0
OO-TRX 3 0 0
0
OQ-TRX 3 0 0
0
LASTOQ 0 0 0
0
LASTOO 0 0 0
0
Finished.
>
------_=_NextPart_001_01C4DE1B.710988B0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2654.45">
<TITLE>Problem updating last record written at sort break in =
QTP</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=3D2 FACE=3D"Courier New">I have a QTP that writes some =
transactions and at the end I may have to update the last </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">transaction written to adjust =
for rounding problems. Here is the scenario:</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New">ORDER ITEM</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> XXX =
BR-CREDITS QUANTITY-ON-HAND ITEM-NO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> =
1 =
101 &nb=
sp; 1 10001059</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New">XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> XXX =
PR-PREFIX XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> =
1 =
20 .33</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> =
1 =
20 .33</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> =
1 =
20 .34</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">All of the OO-TRX and OQ-TRX =
get written properly but the update at ITEM-NO fails.</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">Using the exact key value given =
in the error message, I can find the TRAN-KEY when</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">the QTP is finished. =
</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New">Why does the QTP fail?</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New">Here's the code:</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New">CAN CLE</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> ACCESS ORDER-ITEMS =
&</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> LINK =
XXX OF ORDER-ITEMS &</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New"> TO PR-XXX OF XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> DEFINE =
SPOILED-CREDITS INTEGER SIGNED SIZE 4 =3D BR-CREDITS of order-items =
&</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New"> &=
nbsp; &=
nbsp; &=
nbsp; =
* QUANTITY-ON-HAND of order-items &</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New"> &=
nbsp; &=
nbsp; &=
nbsp; =
* (PR-PERCENT of XXX-ratio / 100) </FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> TEMPORARY =
CREDIT-TOTAL NUM*8</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> SORT ON =
ITEM-NO</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> ITEM CREDIT-TOTAL =
SUBTOTAL SPOILED-CREDITS RESET AT ITEM-NO</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> OUTPUT =
TRANSACTIONS ADD NOITEMS ALIAS Oo-TRX</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> ITEM =
UNIT OF =
Oo-TRX INITIAL "9999999999"</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> ITEM =
TRAN-KEY OF Oo-TRX INITIAL =
"Oo" + ITEM-NO + PR-PREFIX</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> ITEM =
CREDITS OF Oo-TRX =
FINAL SPOILED-CREDITS</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"Courier New"> OUTPUT =
TRANSACTIONS UPDATE ALIAS LASTOo AT ITEM-NO &</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New"> VIA TRAN-KEY USING =
"Oo" + ITEM-NO + PR-PREFIX &</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New"> IF 0 <> =
(BR-CREDITS * QUANTITY-ON-HAND - CREDIT-TOTAL)</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New"> ITEM CREDITS =
OF LASTOo =3D CREDITS OF LASTOq + ((BR-CREDITS * QUANTITY-ON-HAND - =
CREDIT-TOTAL * -1))</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">GO</FONT>
</P>
<BR>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Executing request 1 ...</FONT>
<BR><FONT SIZE=3D2 =
FACE=3D"r_ansi">--------------------------------------------------------=
-----------------------</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">Cannot find record with this =
key/index =
value. =
=
[3] </FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> File: =
LASTOQ</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
Linkitem: UNIT</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
Linkitem: LINK-UNIT</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
Linkitem: =
TRAN-KEY &nbs=
p; &nbs=
p; Oq1000105920</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Action Taken: Run terminated.</FONT>
<BR><FONT SIZE=3D2 =
FACE=3D"r_ansi">--------------------------------------------------------=
-----------------------</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Records read:</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
ORDER-ITEMS &=
nbsp; &=
nbsp; 5,790</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
XXX-RATIO &nb=
sp; &nb=
sp; 3</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Transactions =
processed: &n=
bsp; 3</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Records =
processed: &n=
bsp; =
Added Updated Unchanged =
Deleted</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
ORDER-ITEMS &=
nbsp; &=
nbsp; =
0 =
0 =
0 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
OO-TRX =
=
=
3 =
0 =
0 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
OQ-TRX =
=
=
3 =
0 =
0 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
LASTOQ =
=
=
0 =
0 =
0 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi"> =
LASTOO =
=
=
0 =
0 =
0 0</FONT>
</P>
<P><FONT SIZE=3D2 FACE=3D"r_ansi">Finished.</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">> </FONT>
</P>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>
------_=_NextPart_001_01C4DE1B.710988B0--