smdig Posted February 14, 2013 Posted February 14, 2013 Hi, I am trying to solve a problem in filemaker 11. I have a database that has multiple orders from customers. However, the product ordered can be repeated multiple times across the customer orders. Herein lies my problem. I can have two or three users, each with a pile of product that can have the same title, but is for different customers orders. They run a script which allows them to scan the product barcode and it searches the database for the first outstanding customer order matching the barcode. Problem being, that if two users have the same product and happen to run the script at the same time, its possible that they both find the same customer order. As the next part of the script is to print off an invoice to accompany the product, it is then possible that the invoice is printed twice and we duplicate the order. I have tested this scenario using two Imacs side by side, with different users, two scanning guns and have replicated this error. I have tried setting the user name into a variable before the script enters find mode and then once a matching order is found, enter the user name into a field using the Get (UserName) function and compare this to the name set in the variable. That way, if user A performed the find and that was set in the variable, but the name field got set with user B, the two would not match. However, if both users run the script at the same time, then it is still possible to bypass this check. If any one has any ideas of a solution that would work I would be very grateful. Regards, Sdig.
Digital Life Posted February 15, 2013 Posted February 15, 2013 I think you need to add something like a status field which gets populated with 'Printed' or 'Printing' if someone has printed the order. The field could autopopulate to 'New' when an order is made. So the find would then look for orders that have that product and a status of new which then would get changed to 'Printed' when the first user starts processing the order.
Lee Smith Posted February 15, 2013 Posted February 15, 2013 Hi, I am trying to solve a problem in filemaker 11. Please update your Profile to reflect your current version of FileMaker, OS and Platform. Here is a quick link for your connivence. My Profile
smdig Posted February 18, 2013 Author Posted February 18, 2013 I think you need to add something like a status field which gets populated with 'Printed' or 'Printing' if someone has printed the order. The field could autopopulate to 'New' when an order is made. So the find would then look for orders that have that product and a status of new which then would get changed to 'Printed' when the first user starts processing the order. Hi Digital Life, Thanks for your reply. However, all the records are marked New before the scanning process starts. Once a record is found and printed, it is marked as such. As i explained in my post, this is not the problem. The problem is, that when you have even two users both with scan guns and they scan the same product barcode, which is then part of a find request for the first outstanding order matching the barcode, Filemaker runs so fast, that it can allow them both to find exactly the same record. This would not be a problem if they were searching for different barcodes, but they are not. We are supplying orders taken on Amazon Market Place. As such, you can easily have 20 orders for the same product. As we can easily have over 700 orders come in at once, I am redesgining our system, as at present we intially print all the order receipts and match the stock to them. Under the new system, we want to be able to have the stock pulled and then scan the product and match it to the first oustanding order for that product and then print the order receipt. This will save our packers a lot of time. Sdig. Please update your Profile to reflect your current version of FileMaker, OS and Platform. Here is a quick link for your connivence. My Profile Hi Lee, Sorry, I have now updated my information. Regards, Smdig.
David Jondreau Posted February 19, 2013 Posted February 19, 2013 Digital Life has the right idea. Finding the same record isn't the problem. Printing the invoice for the same record is the problem. In your script, after the record is found, have the script check to see if a status field is set to "Pending". If it isn't, set the field to "Pending..." and continue with printing. If it is do the find again. You may want to add an Open Record[] step and trap for an error instead of setting a field to Pending.
Recommended Posts
This topic is 4294 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now