5 Replies Latest reply on Sep 2, 2014 4:26 PM by eoin

    Barcoding in Filemaker



      Barcoding in Filemaker


      Hi, I am currently building an ERP system for my business.  I have made a document registry that is used to store a soft copy of all company documents.

      In trying to modernize the system, I am thinking of using a bare coding system as follows.  The process is simple and is outlined as per example.

      Table 1 : Expense

      • kf_UUID = Get(UUID)  - This is a unique key
      • Document Container  - Container Field to Store the Document
      • Expense Amount - Number
      • Expense Date - Date Stamp

      What I want is that when we are to make an expense, a new record is created in Table 1.  The kf_UUID is auto generated along with the Expense Amount and Date.  A form is to printed on A4 which will be the Petty Cash Voucher (PCV).  This will be taken to the Cashier who will disburse the cash for the said expense.

      Once the expense has been made with the supplier, the relevant invoice is to be attached to the PCV and is brought to the central registry where an Ipad like set up will be made.  The screen will only allow (from all the full features of the ERP) for the user to Scan the PCV Barcode.  Once the barcode is scanned, the system will recognize that it is a PCV and search the relevant table for the relevant document.  Then the same Ipad will be used to take a picture of the Invoice and place it in the container field.

      The reason to barcode is that we are to issue LPOs, Petty Cash, Fuel Orders, all from the system so an assorted range of stationary linked to different table will be printed.  I do not want my staff to go all over the database to start entering a reference number (That can be repeated) but instead want a quick barcode system to do so.

      In my research I have found an addon script on the below website:


      It can generate barcodes but how do I scan them back into the system and decrypt them?

      Any help would be very much appreciated as I seem to have hit a wall.


      Many thanks,



      FM13 User



        • 1. Re: Barcoding in Filemaker

          and is brought to the central registry where an Ipad like set up will be made.  

          What do you mean by "Ipad Like"?

          iPads (and iPhones) can be set up in FileMaker Go to scan bar codes using their cameras and the Insert From Device Script step.

          A regular computer with an attached bar code scanner can also be used with FileMaker Pro to scan the bar codes--provided that the scanner is set up to function in "Keyboard emulation mode" which is the default set up for almost all such bar code scanners.

          For more on what type of script you might use with the second option, see: Need help writing script to integrate barcode scanning

          For more on scanning from FM GO 13 on an iOS device, see: http://www.mightydata.com/blog/barcode-scanning-in-filemaker-13/

          • 2. Re: Barcoding in Filemaker



            reading what you wish to do .... it seems pretty straight forward.

            Todd Giest's barcode creator is not the only barcode creation method for filemaker on the desktop platform, but it is perhaps the most straight forward to use when creating barcodes on both the desktop and the iPad/iPhone. 

            The lack of an ability to use or install a barcode generation font in FMGo makes this Giest barcode module for all intensive purposes seamless on the iPad and the desktop. Before this you would have to have suspended FMGo after calling another app using the open URL, generate the barcode image in the 3rd party app and then have that app call filemaker and have filemaker copy the barcode into a container field for printing.

            Getting back to your solution ... 

            there are a few things unclear to me, in the fields you list, there is no mention of a barcode container field and how that barcode is created. The UUID field would generate a value that is too long and unwieldy for barcodes, let alone a (easy) human readable format.

            I would suggest first, you have a counter field starting as say 90000000 that increments by 1 for each new record, you can then use that fields value to generate a barcode with Giests module into a container field which will be required when you actually need to print the barcode. 

            By prefixing the the counter field with 90 it will give you 999999 possible PCVs over the life time of your system, it will also allow you to identify the document type by the first 2 digits of the fixed length barcode as a PCV (90's are PCV's),  91 could be another type of scan for a future project and so on.

            I do this with my own systems where I generate barcodes for goods in records all begin with 90, internal movement barcodes from various departments begin with a different 2 digits depending on the department, dispatch with another 2 digits and so on. So when I scan a barcode I can have one screen to scan and depending on the first 2 digits (internal barcodes) I can identify the source and script the action to take.

            Ok, so now you have a counter field with a unique number (index) and the container field with a barcode image of that counter field number which you'll use for printing the actual barcode image onto your form.

            When it comes to scanning the barcode with the iPad to find the original record ... if you script the scanning and place the scan result into a text field ... not a container field the iPad will place the scanned barcode result in text format into the field. So then if you scripted a scan into a global text field and then used an on object modify script trigger to go to related record in table 1 : using a layout based on the table it should find your original record.

            Now you need a button on that layout to scrip the insert from device (camera) document picture  and placing it into the document container field for that record.

            That's the general gist of how it can be done, if I had a better understanding I could be more specific ... but reading back on this it should give you food for thought .



            • 3. Re: Barcoding in Filemaker

              Dear PhilModJunk and Eoin,

              Thanks for your valuble input.

              I will take both your points into consideration and I think it will work out.

              I had one more question, 

              Is it possible to say for testing purposes have a container field where I can place a JPG of the said barcode and let the system based on that container scan the said barcode and dump the results in a second field.  The above is just for testing purposes.

              Field 1 = Barcode Container - To be placed as JPG

              Field 2 = Barcode Meaning - Based on calculation once the Barcode Container has been filled.

              Or should I just skip the above and just proceed to FMGO?




              • 4. Re: Barcoding in Filemaker

                IF you are going to use Insert From Device with FileMaker Pro, you'll have to test this on an iOS device in FM GO, I know of no way to test it in FileMaker Pro.

                • 5. Re: Barcoding in Filemaker

                  Aly, the container field for the barcode image is really only necessary for the generation of a printable barcode (barcode.png) on your PCV stationary, assuming of course you are using the Geist Barcode Creator module to create the barcode in the first place. This barcode should be generated from a value in a text field that increments by 1 for each new record (your index or primary key field).

                  For testing purposes in filemaker you can do your find on the text field that the barcode was created from to find the record.

                  When you get to the iOS device, when you scan the barcode you will be looking to use the scan result (usually a text or numeric string) to find the same record in your table. You will not be inserting the scanned barcode into the table again, you should be decoding the scan into a text field (perhaps a global) and do a find with that against the primary key not the barcode container. 

                  You can of course use the GetContainerAttribute function to get the barcodes image text value, but that really seems unnecessary and long winded since the same value is present in the Primary Key field.

                  If I am understanding you correctly I am thinking along these steps in the process

                  PCV Creation

                  Generate a new PCV record with a primary key 

                  Generate a barcode of the primary key with Geist Barcode Creator and place it in a container field 

                  Print the PCV with the created barcode image on it.

                  Invoice for the PCV Entry

                  Scan the barcode on the PCV and with the scan result find the Primary key in the table

                  Go to that record and allow the user to take a photo of the invoice and place it into the document container for that record.