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.&nbsp; 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">&nbsp; XXX&nbsp; =
BR-CREDITS&nbsp; QUANTITY-ON-HAND&nbsp; ITEM-NO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; =
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 10001059</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; XXX&nbsp; =
PR-PREFIX&nbsp; XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; =
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .33</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; =
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .33</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; =
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .34</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; </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.&nbsp; =
</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">&nbsp;&nbsp; ACCESS ORDER-ITEMS =
&amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp;&nbsp; LINK =
XXX OF ORDER-ITEMS &amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TO PR-XXX OF XXX-RATIO</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp; </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; DEFINE =
SPOILED-CREDITS INTEGER SIGNED SIZE 4 =3D BR-CREDITS of order-items =
&amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
* QUANTITY-ON-HAND of order-items &amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
* (PR-PERCENT of XXX-ratio / 100) </FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; TEMPORARY =
CREDIT-TOTAL NUM*8</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; SORT ON =
ITEM-NO</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; ITEM CREDIT-TOTAL =
SUBTOTAL SPOILED-CREDITS RESET AT ITEM-NO</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; OUTPUT =
TRANSACTIONS ADD NOITEMS ALIAS Oo-TRX</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; ITEM =
UNIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OF =
Oo-TRX INITIAL &quot;9999999999&quot;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; ITEM =
TRAN-KEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OF Oo-TRX INITIAL =
&quot;Oo&quot; + ITEM-NO + PR-PREFIX</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; ITEM =
CREDITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OF Oo-TRX =
FINAL&nbsp;&nbsp; SPOILED-CREDITS</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; OUTPUT =
TRANSACTIONS UPDATE ALIAS LASTOo AT ITEM-NO &amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VIA TRAN-KEY USING =
&quot;Oo&quot; + ITEM-NO + PR-PREFIX &amp;</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IF 0 &lt;&gt; =
(BR-CREDITS * QUANTITY-ON-HAND - CREDIT-TOTAL)</FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp;&nbsp; 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.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [3] </FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp;&nbsp; File:&nbsp; =
LASTOQ</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp;&nbsp;&nbsp;&nbsp; =
Linkitem:&nbsp; UNIT</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp;&nbsp;&nbsp;&nbsp; =
Linkitem:&nbsp; LINK-UNIT</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp;&nbsp;&nbsp;&nbsp; =
Linkitem:&nbsp; =
TRAN-KEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; 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">&nbsp; =
ORDER-ITEMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; 5,790</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
XXX-RATIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"r_ansi">Transactions =
processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"r_ansi">Records =
processed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Added&nbsp;&nbsp;&nbsp; Updated&nbsp; Unchanged&nbsp;&nbsp;&nbsp; =
Deleted</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
ORDER-ITEMS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
OO-TRX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
OQ-TRX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
LASTOQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&nbsp; =
LASTOO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"r_ansi">Finished.</FONT>
<BR><FONT SIZE=3D2 FACE=3D"r_ansi">&gt; </FONT>
</P>
<BR>
<BR>
<BR>
<BR>
<BR>

</BODY>
</HTML>
------_=_NextPart_001_01C4DE1B.710988B0--