Manual FM Registrations

English manual

1.About FM Registrations #

FM Registrations is a software to generate license codes for your Filemaker projects. Especially fitted for standard solutions, FM Registrations allows you to register your solutions, your customers, plus all the license codes you create for them. Send your customers license codes by which they can unlock your solutions. At the first start-up of your solution, customers will be asked to register their license keys. It can look like this:

FM Registrations does not replace Filemaker accounts. It is not meant for regular login, but rather something to unlock a purchased license. In the example above, the customer enters his registration data once, after which the status of the file is set to “unlocked”. It is a verification of a proper code and allows access to the file if the code is correct. How this works is explained in the example file which comes with FM Registrations.

FM Registrations can do more as “just unlock”. With the help of FM Registrations you also can transport, within the license code, parameter to configure your solution. Think of the number of users, an expiry date, or any other triggers you would like to use to handle appropriate settings. All this extra information is encrypted when generating a new code for your customer, and it is decrypted in the solution when the customer enters the registration code. The information is then made available again, allowing you to configure your solution as you prefer.

FM Registrations is a versatile solution, perfectly fitted not only to protect and unlock your software, but also to configure it at will.

1.1.Minimal requirements #

FM Registrations has been developed with Filemaker Pro and needs Filemaker Pro 15 Advanced (Mac or Windows) to work.

FM Registrations uses some custom functions, which only can be embedded in your solution with the help of an Advanced version of Filemaker Pro.


1.2.What's in the package #

FM Registrations is made up of Filemaker files:

  • FM Registrations, the solution file (no administration access)
  • Example file (free access)

1.3.What do license codes look like? #

License codes can be made of up to 2 parts:

  1. Registration code
  2. Extra code (optional)

The customer gets for example the following data to unlock his software license:

Example registration code MGS3.02_wr3DocKag4VxwqXDrcKow4fCt8OqVMKsw6jD icKRwqzCgsKdw4Hct8OdwrzDk8OEw4bDtHl5eGrDu7M6 i3jMOQwr9kwqzCmcKxwqXDrHjDrMOgwr2CgMK7w5XD ssKYwohq3qrCpcKEfcKuwp9q=

In this example, the registration code has a prefix describing the software and the version (“MGS3.02_”), which makes it easier to recognize what software and version the code is meant for.

Example extra code

In this example the extra code is a random code, but you can use any text string (like: project references, names, or anything else). The extra code is optional. We recommend to use an extra code for enhanced security.


1.4.Is there a test version? #

No, there is no test version of FM Registrations. Inform yourself here on this website or contact us with any questions you might have.

1.5.Can I adjust FM Registrations? #

The solution file and how the encryption works cannot be adjusted, though you always make your own unique settings. The solution file has the administration part removed. The example file is completely open and adaptable and shows you step-by-step how to integrate with your own files.

1.6.How secure is the encryption? #

FM Registrations is not an encryption technology. You cannot encrypte texts, fields or databases with it. It’s only goal is to generate license codes and to transport the information in an encrypted format to the customer – which can then use the code to unlock your solution.  How secure are these registration data? Is it possible to hack this?

The answer is twofold: No, FM Registrations cannot easily be hacked, but at the other hand it has not been developed to give you a 100% security. FM Registrations works with several components: There is an encryption, an encoding, a checksum verification and every solution needs a unique secret key. Add to all this the option of FM Registrations to work with two random codes per license (registration code + extra code), it becomes clear that hacking is hard. The security of your own programming seems to be of more relevance when it comes to securing your application.


1.7.In which languages FM Registrations can be used? #

FM Registration is a multilingual software. Currently the following languages are supported:

  • German
  • English
  • French
  • Spanish

The language support is for the user interface of the application and extends to the output in lists as well as email texts to customers.

All texts can be corrected or enhanced and in regard to email texts, even new multilingual textblocks can be created in the Toolbox.


2.How to install FM Registrations #

FM Registrations comes as set of Filemaker files:

  • FmRegistrations: Main solution file
  • FMR-Example01: Example file

Copy the files somewhere on your hard disc. To use the files you need a full current version of Filemaker Pro Advanced (see “minimal requirements”).

3.Registration und Anmeldung #

Öffnen Sie die Datei FmRegistrations und geben Sie Ihre Registrationsdaten ein, wenn Sie danach gefragt werden.




Anschliessend landen Sie auf der Startseite:



Links ist die vollständige Navigation der Datei.
Rechts oben gibt es eine Hilfe-Funktion und eine Sprachumschaltung.


4.FM Registrations: The code generator #

FM Registrations has two parts – a code generator and an example file. This chapter speaks of the code generator. Here you register your filemaker solutions, create customers and generate license codes.


4.1.Register your own Filemaker solutions #

In a first step register your own Filemaker solutions. Each solution must be listed as a software in FM Registrations. You can do so under “Software details”:



Click on the plus symbol to create a new entry. As soon as a record has been created, you will be presented with a layout where you can add the details for your software solution:



On this screen you have 3 tabs, called “Software”, “Features” and “Keys”.

  1. Software: Name, version and preferences can be defined
  2. Features: In the tab features you define own triggers, as you would like them to use to configure your solution
  3. Keys: Generate unique secret keys for your solutions.


Tab: Software

Fill out the details concerning your software solution. The code type is automatically set to “Random” when creating a new solution. This is the most simple version. If you switch to “Features” you will be able to make many more adjustments:



If Features has been activated, you can define the standard settings for any new code. If you want to use features, you must list all relevant features you want to handle under the tab “Features” prior to listing them as a standard under the tab “Software”. See below. As soon as you have created some features, you will be able to select them here as a preset for new license codes.


Tab: Features

Features are codes, which you define to represent something and which you want to use to configure your software. There can be unlimited features and each feature can have an own code. Features are assigned to one of the 4 available slots. This is how it could look like:




Every line represents a feature:

  • active This defines the visibility of this feature in the selection for creating license codes. Deactivate this to maintain the information, but exclude it from active selection for new codes.
  • Feature Textlabel for your eyes only. This is not relevant for the customer, but just a help within FM Registrations.
  • Code This is the trigger, which is encrypted in the license code. This text block is also what you get back, if your client unlocks his license with the license key. Use this code in any of your scripts to configure your solution. You define how far it takes you!
  • Version (optional) Internal information about the version of the feature. Again, this is not relevant for the customer, but rather for your eyes only. It is meant to be able to differentiate between two versions of the same kind of functionality. You might want to choose to depracate one function, but not completely removing it from your code. You might have similar (but different) scripts in place. In that case, it can be helpful to differentiate between two versions.
  • Slot FM Registrations offers 4 feature-slots in every code. While you can define unlimited features, only 1 feature can be choosen per slot. In other words: You have 4 unique triggers you can encrypt in any license code. That should be more as you would ever need for a standard software. In case it is not enough, combine what you need in single slots, by creating “group” codes.


Tab: Keys

The tab “Keys” is where you create unique and random keys for your products. This differentiates the software solutions and helps you to create unique keys for every solution. Note that you can create a regular key and a beta key. The beta key can be used to unlock beta versions.


4.2.Register licensees #

Under “Licensees” addresses and contacts are registered. Every address is a licensee address. To every address unlimited licenses can be generated.



  • Adress
    Add the address of the licensee. If you sell to a reseller and later you register the real licensee, select the reseller as a linked address.
  • Remarks
    Your own remarks for this address
  • History
    All saved or emailed codes are written into this log-field. It is some extra security and stores changes while they are made.

4.3.Register software license #

In the lower part of the layout “Licensee” you can now register software licenses.

Select a software


From the solutions you created, choose one from the popup menu:



By selecting a software all presets will be copied as a standard.

You can now adjust whatever needs adjustment.

  • Change features
  • Set the seat count for this license
  • Generate an aditional “Extra code” (click on “<” or use an own text)


Generate license codes

All settings for this license now must be encoded. Click on the red button “Encrypt”, thus generating the registration code with the current settings. If everything goes well, the button turns green and says “OK”.


See codes and details

Click on the (i)-symbol to see an overview of all details of this code.



All previous steps can be seen here. When any changes are made here, the code must be regenerated with the updated settings. You also can decrypt the result, to verify that everything works. The decryption should be the same for the implementation in your file.

  • “Final Code” is what is considered the registration code or license code as sent to your customer.
  • “Extra Code” ist optional, and – if used – must be delivered to your client as well.


4.3.1.Code-Type "Features" #

As soon as you select a software, all presets are selected. When, for example, you have pre-defined the code-type “Features” for this specific solution it might show some features as follows:



All presets can be adjusted. There are 4 slots for listing features. Each slot can have an unlimited number of choices to choose from. Other fields let you define the number of users (number of seats for this license) or an additional code, etc.

If needed, you can switch the code-type anytime to random code or vice versa. More about this further down.

4.3.2.Code-type "Random code" #

When choosing the code-type “Random code”, the Features disappear and you see an empty text field, which can be filled with any text string. A random string is generated by clicking on  “<“, following the settings as defined under “Settings > Code Settings”. This works identical also for the optional Extra Code (User Key). If you fill out both fields with a random key, it might look like this:




4.3.3.Switching the code-type #

The code-type can be switched any time by clicking on the symbol ().

Important: When using a random code, you cannot add parameters to configure your solution. The same also counts for the number of users. Would you like to add, for example, a number of users / seat licenses, you must use the code-type “Features”. You can switch the code-type by clicking on the symbole. When the code-type is switched, you must generate new license codes for this license entry.

4.3.4.How to choose the best code-type #

We have included two code-types as requirements might differ. Here some considerations for choosing the best code-type for your purposes.

Registration code

  1. When you just want to unlock your software and need no further configurations, you might opt for the Random Code. In its simplest form, you only use a registration code, and no extra code.
  2. When you want to configure something, you choose the Features-Code.

Extra Code

Use an extra code if…

  1. … you use the same configuration for multiple licensees, but each of them should receive a different registration code.
  2. … you want to have some extra security.


4.3.4.Sending registrations details per email #

You can send the registration details to your customers directly. Click on the envelope-button to show a summary of all information.



The following summary is shown:



  • This you can do from here: Send out an email or copy the information to the clipboard
  • Multilingual: The language of the email matches the setting for the user interface.
  • Adjustable: Adjust this standard text under “Settings > Email Settings”.



4.3.5.Deactivating or deleting codes #

Created codes can be deactivated or deleted.

  • A deactivated code remains in the system
  • A deleted code is completely removed (but probably still in the History as a backup)

These are the functions to deactivate or delete a code. To be able to delete codes you first have to activate the deletion button by clicking on the waste bin above the list.



A deactivated entry is just visually marked:



We suggest not to delete issued codes, but rather deactivate them. This way you will be able to track and trace codes if they appear somewhere else later on.

When a customer orders an upgrade, rather deactivate the old license, and create a new registration.


4.3.6.Create multiple codes at once #

FM Registrations supports batch-generating new codes. This might be helpfull if you want to provide a distribution partner with a series of codes to use.

When a customer registers his license later on, you can take that code and list it to a proper address, and link the address to the distribution partner.

The batch-processing of new codes can be found here:



  1. Select a software
  2. Set the number of codes you want to create
  3. Select code-type (when using features, the standard settings will be used)
  4. Set the use of an Extra Code (optional)
  5. Set the number of users (for Features Code)
  6. Set expiry date (for Features Code)
  7. Set expiry days (for Features Code)
  8. Name the batch (a time-stamp is added as well) for easy selection


Now generate the codes. Verify the list if it is shown, check the data and close the window.

4.3.7.Export and print #

Registration codes can be exported or printed as a list. To do so, first switch to list view:



In list view you can search or select a batch. Here you also find options to print or export your selection.



Using these functions you can

  • Create a backup in list form
  • Generate an overview of all issued codes for a company/licensee
  • Print or export any selection

5.Settings #

Under Settings you can define some global parameters for FM Registrations.


5.1.Translations with the Toolbox #

In the Settings pages you find a Toolbox for translations. The Toolbox can be reached through the button in the top row. Clicking the button will open a new window with the Toolbox.



The Toolbox opens in a new window where texts and translations can be searched and edited. It is also possible to create new texts, for example for the registration emails.




The columns in this layout represent:
Variable for the layout | ID | Internal label | Edit | Delete.

With “+” a new entry can be created. You can search for texts. Clicking on the edit symbol opens a popover with all languages to edit.



Text labels are variables. In the lower part of the screen you have 4 formatting options for the variable. Choose (1) which is best for your purpose. Clicking (2) on the most left column on any variable will highlight that value in yellow and copy its content to the clipboard (to easily paste it somewhere else).



5.2.Email settings #

Emails with registration data can be configured under “Email settings”.



The email text can be multilingual and uses text variables which are generated with the Toolbox (see: Toolbox). Textvariables can be searched and included with drag-and-drop.

Under Summary you find the email text itself. It summarises all details of the license, as needed for the customer to unlock his software. The field Extra Text will be put at the close of the email.

Textlabels can be edited in the Toolbox, where you also can create new texts for use here in these email settings.




5.3.Code settings #

Code settings is where you define the standard settings for your secret keys. You can define the length of each key as well the characters used.




5.4.Backup #

The backup option is meant to save a compressed clone of the current file locally. If the file is hosted on a Filemaker server, you don’t need this function.

Choose a directory to save your backup. There is also a setting to automatically create a copy when closing the document.


5.5.Import/Export #

Under «Import/Export» some options can be found to import and export the data FM Registrations.

  • Import
    This option enables you to import data from another FM Registrations file. Once up upgrade comes out, it is possible to import the data from your older file with a few clicks.
  • Export
    Export your data in several Excel files (XLSX).




6.Example file #

The example file shows step-by-step how to decrypt the codes in your solution.

The example file itself is well documented. Read also the english introduction as saved in the scripts. The functions to decrypt the code and to unlock the software are structured like a FileMaker module. This simplifies the import and integration in your own files. If you are not yet familiar with the idea of FileMaker modules, please consider reading the (short) description on



The example file uses:

  • Custom Functions for decoding, decryption etc. (you need Filemaker Pro Advanced to integrate them into your solution)
  • own tables
  • own layouts
  • own scripts.




6.1.Test mode #

The example file comes with a functioning test mode setting. The same scripts for a real scenario are used, but with a preset of test codes. We suggest that you first have a close look at the functioning of the module with the help of the test mode. The test mode shows you all you need as well as all you should get from the scripts in this file.

To activate test mode is simple. Click on “Start Test Mode” to fill test data into the registration fields.



The button to register cannot be selected unless the field for the registration code is filled out. With test data it looks like this:



The button to register is now blue and can be clicked. Once clicked the registrationdata is testet.



During registration (which only takes seconds), the registration report (in red, below the registration button) is generated. The report can be easily enhanced – see the registration script.

  • All data has been decrypted, tested and decoded.
  • The check sum has been calculated and is OK – the code is valid.
  • No additional checks were made this time (as: your own logic).
  • The registration was successful. Thank you for registering. The software has been unlocked.
  • The backup of registration data was successful





6.2.Result #

Test mode and live mode process data identically. After a successful registration all data is put into variables and be made accessible, in order that the information can be reused. As a last step the data will be backedup, that your data can be used for later verifications.





These fields are used for backup. The registration code is uncrypted, uncoded and is now accessible for you to play with.

6.3.Unlocking #

The unlocking of the software does not happen, unless all tests on the registration code gave positive results. The unlocking itself is quite unspectacular. It is just a field with a value. The value indicates the type of unlocking. Any value can be entered and it can be any kind of field you would like it to  be. This field registers – so to speak – the status of the solution. It should be evaluated during start-up and it can be configured like this:

  1. Value = “” (no value)
    The software has not yet be registered. If this field is empty, route to the registration page.
  2. Value = 1
    This could be used to mark a test version. Based on this value, you can activate a certain FileMaker account, a certain menu set or do any other kind of configuration to define what the test version is allowed to do.
  3. Value = V
    V like Vendetta? Well, this could be your code to define a full version. If the field has this value, it already has been registered and you can forward to the regular login page or start page.

In the example file it is slightly differently solved. This is on purpose, as you should give meaning and value yourself. The only important thing is to have such a field, and to give it a value when the registration is successful. In the start-up script, evaluate the value each time as to know what to do.



Test version
The example files has no direct script for creating a test version. All you have to do, however, is to store an appropriate value in this final field. It will set the status of the file to “Test version”. The final field is universal. It can contain a single value, helping you to distinguish between “non registered”, “test version”, “full version” or anything else you might come up with.

The registration data as well as the final status are saved in a backup record. In your start-up script, you should read the information from the status field into some global field, to make an easy check possible. The start-up script in the example file shows you how to do this.

7.How to integrate in your own solution #

This chapter describes how you integrate the decrypting module into your own solution. It is based on the example file, and it shows you how to arrive at an unlocked version for your client.


7.1.Step by step #

The following steps describe how to implement the functions of the example files into your own solutions. You will have to use Filemaker Pro Advanced (see also: Minimal requirements).


  1. Import all Custom Functions
  2. Import of all tables
  3. Create layouts just as in the example file
  4. Import all scripts
  5. Copy all objects of all layouts of the example file to the corresponding layouts in your own solution file
  6. Create a single record in all tables.

7.1.1.Custom functions #

FM Registrations uses some own functions, which are available as custom function in the example file. You have to import them from the example file into your solution file, which only can be done with Filemaker Pro Advanced.



Import all custom functions into your own solution file.


7.1.2.Tables #

From the example file you import the two tables FmRegistrations and StartUpRegistration. Create a single record in both tables.



7.1.3.Creating layouts #

Ensure that for each imported table you have 1 layout with the name of the table. Then check if there are more layouts in the example file for each table and create (not: design) those layouts in your solution file. Adding objects will come in later, after importing the scripts.



7.1.4.Scripts #

The scripts in the example file are structured like a FileMaker module. The modules is called “FMR License Registration” and follows the set-up of a typical FileMaker module. Take note of all the folders and script names. In FileMaker modules the functionality and the settings are kept separate.

More about FileMaker modules can be learnt at



7.1.5.Copy layout objects #

In a last step you copy the objects from the example file to each corresponding layout in your own solution. You then can design the pages as you please. Note the script triggers and formatting settings on some objects.

7.1.2.Testing the implementation #

Congratulations! You have just implemented the decryption of license codes!

Your following step should be to test the implementation and to find and solve any irregularities.

  1. Testing in test mode
    The best way to start is with the test mode. The test mode has several scripts, well integrated with the final workflow. Using the test mode, it is easy to check if all is well. It should work just as in the example file which you have for a comparison. If the test mode returns good results, move on to the next step.
  2. Test with your own secret keys
    The registration module has a script for settings. In this script add your own secret keys, as generated in the code generator “FM Registrations”. Deactivate test mode (if it was still active) and test the registration with your own registration data, which you must have created in FM Registrations before (for example a license code for your own company).

Congratulations! When everything works, the implementation is now complete. You have made a working copy just as in the example file. Now you can add your own logic, to expand functionality. The main script has indicated where to add your own logic.


Suggest Edit