[Download-List] Unexpected Field Value

Patrick O'Neal poneal at westinautomotive.com
Wed Aug 3 17:09:34 EDT 2005


Hi David,

ODBC_SHIPPED_QTY is a derived field where the formula is "(ODBC_SIGN *
<2>)". Attribute 2 is the Shipped Qty. The reason for doing this is
because in this particular file, all quantities and dollars are stored
as positive numbers, even if the entire document represents a credit. It
is necessary to look at other fields to determine the value of the sign.

The field ODBC_SIGN looks at those other fields, and returns either "1"
or "-1" depending on their values. It calls a subroutine from the
Derived Field slot which passes the Invoice Type and Invoice record key.
The subroutine looks like this:

SUBROUTINE SOPS0100.1(RESULTS,INV.TYPE,REFERENCE)
(snip comments and stuff)
RESULTS = ''
IF INV.TYPE = '3' OR INV.TYPE = '8' THEN    ;* Types 3 & 8 are Credit
Memos and should be negative;
  RESULTS = -1
END ELSE
  REF = FIELD(REFERENCE,'*',2)
  IF INV.TYPE = 1 AND REF[1,3] = "I/V" THEN ;* Type 1 is a Standard
Shipment, but if the Invoice# starts with "I/V" then it's an
    RESULTS = -1                            ;* Invoice Void and should
be negative;
  END ELSE
    RESULTS = 1                             ;* Any other eventuality is
a debit and should be positive.
  END
END

When printed by the DOWNLOAD command, the ODBC_SIGN field behaves itself
with regard to the sign, but the ODBC_SHIPPED_QTY field always comes
back as a positive number, even if it should have been negative. Here is
an example:
==============================
DOWNLOAD version 7.12

Using input file ICEDETHST

Output to screen

 

 Invoice  Order Nbr   Inv Typ  Sign  Qty       Signed Qty

  467474  325024      1           1        85        85

  467474  325024      1           1       104       104

  467482  324867      1           1       120       120

  467488  325356      1           1        60        60

          CR24398     3          -1         1         1

==============================
Notice that on the line with the Order# of "CR24398", the "Sign" is
negative, but the "Signed Qty" is still positive.

Pat.

> -----Original Message-----
> From: David L. Rotman [mailto:rotmand at cedarville.edu] 
> Sent: Monday, August 01, 2005 6:50 AM
> To: download-list at cedarville.edu
> Subject: Re: [Download-List] Unexpected Field Value
> 
> 
> Pat--
> 
> Would you be able to share the definitions for 
> ODBC_SHIPPED_QTY and ODBC_SIGN?  I'd be glad to take a look at them.
> 
> This kind of problem in the past has been related to an 
> underlying subroutine changing the value of @ID or @RECORD 
> but there could be some other problem also.
> 
> 
> >>> poneal at westinautomotive.com 7/26/2005 2:19:55 PM >>>
> Hi Group,
>  
> (Avante 9.2.5f, Unidata 6.0, SB+ 5.2.4)
>  
> I had occasion to use DOWNLOAD yesterday; I was pulling 
> shipped quantities from the ICEDETHST file (Avante sales 
> invoice history). There is a field definition in ICEDETHST 
> called ODBC_SHIPPED_QTY which is simply the quantity shipped 
> multiplied by either 1 or -1 depending on whether it was a 
> regular sales invoice or a credit memo. The sign is derived 
> by calling a subroutine from the dictionary field ODBC_SIGN. 
> The subroutine looks at the invoice type and returns either 
> "1" or "-1". The ODBC_SHIPPED_QTY field then simply 
> multiplies the Shipped Qty (record attribute 2) times ODBC_SIGN.
>  
> I was extracting the data summarized on part number and just 
> wanted the net quantity per part. I figured if I just totaled 
> the ODBC_SHIPPED_QTY field, it should net debits to credits. 
> What was unexpected was that DOWNLOAD seems to lose the sign 
> from the ODBC_SHIPPED_QTY field; everything came back as a 
> positive number. However, if I included the ODBC_SIGN field 
> itself, it came back as both positive and negative, as it 
> should have. Why do you suppose it would do that? Naturally, 
> in order to show the ODBC_SIGN field, I had to omit the 
> DET.SUP keyword and show each detail record.
>  
> For those of you with Avante, the commands I was working with were:
>  
> SELECT ICEDETHST WITH Z_INV_DATE = "07/25/05" BY ITEM_NBR 
> (Z_INV_DATE is a derived field that links to ICEHDRHST to get 
> the Invoice Date)
>  
> DOWNLOAD ICEDETHST BREAK.ON ITEM_NBR TOTAL ODBC_SHIPPED_QTY DET.SUP
>  
> Which should produce one line per part number showing the 
> total (net) shipped qty. The UniQuery LIST command correctly 
> shows the sign, but DOWNLOAD does not. Any ideas?
>  
> Thanks,
>  
> Pat O'Neal
> Senior Programmer/Analyst
> Westin Automotive Products, Inc.
> (626) 960-6762 x439
>  
> 
> Dave Rotman
> Director of Computer Services
> Cedarville University
> 251 N. Main Street
> Cedarville, OH 45314
> rotmand at cedarville.edu
> voice 937-766-7905
> fax 937-766-8819
> 
> 
> _______________________________________________
> download-list mailing list
> download-list at cedarville.edu 
> http://mail.cedarville.edu/mailman/listinfo/do> wnload-list
> 




More information about the download-list mailing list