filePro
Resource Page!

Partial key search using ordinary lookups.


You know that when you use any filepro automatic index you could search for a partial match. If you have an SKU or UPC like 700332154180 and you want to search for similar matches that contains the begining 10 characters you write : 7003321541 and filepro will bring you the first occurance matching the sequence (this is in ?clerk using option 4 of the Inquire, Update Add menu).

This case is different and a little bit backwards. Supopse you have the complete UPC (all 12 digits) and you want the record that at most match the UPC. For example, you have 700332154180 and you want the record that most match this number. You have 3 records with keys: 70033215, 7003321541 and 700332. They are partial keys and you want to bring the one that matches the most (this case 7003321541).

Item location codes were assign using this approach. In a warehouse, merchandise could take large, medium or little space. It depends on the type of merchandise you sell. So you could have the same type of merchandise varying in size or color in the same spot or in the same rack (depends on the size of the rack). In this case location codes were assign partially to the UPC. So the map file for the location code file is something like this:

map: (stuff of the map file)
PARTIAL UPC: 12:*:
LOCATION: 6:ALLUP:
For some items the UPC exists completely in the location code file and for others it only exists partialy. (Some items could vary in size and are in the same spot. Other could take 3 or 4 racks).

Example

Supose we have an order with items and we need to find the location code for each one:

700332156110 SOLON HUB PORTS 4 USB
700332154170 SOLON HUB PORTS 16 100MBPS
700332154180 SOLON HUB PORTS 8
700332154181 SOLON HUB PORTS 16
They are all in the same rack with location code A01C01 . The record in the location code file seen on screen 0 would be:
PARTIAL UPC:70033215
LOCATION CODE:A01C01
Using exact match, on an ordinary lookup, the keys would not match. We can force this using partial search. For that we need the following code:
       if
       then:ln(2,.0)="12"
------------------------------------
again  if
       then:pa(12,allup)=mid(1,"1",ln)
------------------------------------
       if   ln lt "2"
       then:2="XXXXXX";end
------------------------------------
       if
       then:lookup location k=pa x=A -nx
------------------------------------
       if   not location
       then:ln=ln-"1";goto again
------------------------------------
       if
       then:2=location(2)
------------------------------------
       if
       then:display
------------------------------------
       if
       then:end
------------------------------------
Field 1 is UPC and 2 is location code (Home token table file, same for the location file). At least 2 numbers must match the record on the location.

With the previous example we would search for the first UPC number a record for the following posibilities:

700332156110
70033215611
7003321561
700332156
70033215
7003321
700332
70033
7003
700
70
When the match is done the search stops delivering the correct location code. If location does not exists XXXXXX will be return.

Direct all questions and doubts to: [email protected]


Last Update:
07/19/2000
Hosted by www.Geocities.ws

1