AnsweredAssumed Answered

Persistent ID - hit or miss

Question asked by vtdonn on Jun 17, 2015
Latest reply on Jun 22, 2015 by rouelf_1

Title

Persistent ID - hit or miss

Post

Before we deploy a solution we send clients a file (we call it the "initialization" file) that they open in FM Go and press a button that uses the Get (PersistentID) function. This populates a field with that value, and then the solution is emailed back to us. Here is the language we use to get their device ID-

Set Variable [$id; Value:Get(PersistentID)]

Set Field [PrefPersistentID; $id]

This gives us a value of "13CBFB663FCC4948857D9E7E6A2D5BBF", for instance.

That's it. PrefPersistentID is surfaced on the interface, and we simply open the file that is returned to us, copy/paste that value into their actual solution so their solution can only be opened on their device(s). The startup script simply checks device ID against a list of approved device IDs, as follows:

 

Set Variable [$id; Value:Get(PersistentID)]

Set Field [PrefPersistentID; $id]

If[PrefPersistentID ≠ "13CBFB663FCC4948857D9E7E6A2D5BBF"

Show Custom Dialog ["Incompatible Device"; "Software is not authorized for use on this device"]

Close File [Current File]

 

The problem is that it doesn't always work. Just yesterday I sent the initialization file to a client and they ran it on two devices. I delivered their solution with those IDs plugged in, and the solution opens on one device but not the other. Same thing happened last week- two devices were defined, and the solution only opens on one of the devices. PrefPersistentID is formatted as a text field. We were thinking it may have to do with "0" versus "O" in the IDs or something along those lines but cannot see any patterns.

Does anyone know of any pitfalls to look out for when using the Get(PersistentID) function? I have a feeling there is some limitation that we aren't aware of. Or might there be a better way to prevent sharing their solution with unauthorized devices? As is often the case, folks have often figured out more elegant ways to solve problems than what we've thought of. So if anyone has suggestions, please share.  Thanks-

Outcomes