Solved

FM - Setting Timestamp Field Based on Another Field set via a Script

Posted on 2011-03-17
10
758 Views
Last Modified: 2012-06-27
This is really hard to test as I have a lot of scripts run off of my Status field.  Already searched EE and FM Help.  I want a timestamp field to be filled with the current date/time anytime there is a modification in my Status field.  This seems easy - just put a script trigger on OnOjbectSave.  However, what if the field is set in a script.  I think this bypasses the trigger.  I have so many scripts that alter this field (Retain, Retire, or Refer status) that it would be nice if I could just set the timestamp field to alter anytime this status field alters.  I thought of doing this via the field's properties AutoEntry, but my understanding is that these fields only run on record creation and not any time in the future when the field might be modified.  Suggestions?
0
Comment
Question by:rvfowler2
  • 6
  • 3
10 Comments
 
LVL 25

Accepted Solution

by:
Will Loving earned 500 total points
ID: 35159486
Use the following auto-enter calculation with the "Do not update..." checkbox unchecked.

Let (
trigger = Status ;
Get (CurrentTimeStamp)
)
0
 
LVL 25

Expert Comment

by:Will Loving
ID: 35159509
Also, you might want to consider an audit trail for Status, which tracks what field was changed and when. Check out this video tutorial from John Mark Osborne on Object Script Triggers. The whole video is a good introduction to an explanation of the differences between the various triggers, but at just before the 10 minute mark he shows how to create an audit trail.
0
 
LVL 25

Expert Comment

by:Will Loving
ID: 35159512
Sorry, I meant the "Do not replace existing value of field (if any)" checkbox.
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 4

Expert Comment

by:challengeday
ID: 35159523
Sounds like a cool video, I don't see the url though. Thanks!
0
 
LVL 25

Expert Comment

by:Will Loving
ID: 35159963
0
 
LVL 2

Author Comment

by:rvfowler2
ID: 35161032
Thanks, I'll look into the video.  Easier than I thought.  But I created 3 timestamp fields so we can have a record if somone moves from retain to refer and then to retire.  So, can you do the calc like this?

If (Status = "Retain";
Let (
RetainStamp = Status ;
Get (CurrentTimeStamp)
)
)
0
 
LVL 25

Expert Comment

by:Will Loving
ID: 35161081
Yes, doing it conditionally works (at least on my test)
0
 
LVL 2

Author Comment

by:rvfowler2
ID: 35162303
Yes, it worked, thanks, but I'm having a hard time understanding it in English.  Let sets a variable and then uses it in a calc after the semicolon.  However, here, it seems that the entirety of the calc is simply Get (CurrentTimeStamp), so the variable, or in this case the field, is equal to the timestamp since it is equal to whatever comes after the semicolon.  Did I say it or explain it correctly?
0
 
LVL 25

Assisted Solution

by:Will Loving
Will Loving earned 500 total points
ID: 35162453
I got the calc elsewhere myself, so I don't have a technical explanation but I think that in either case, what is happening is that setting the Let variable to equal the Status field causes the calc to evaluate whenever Status changes. It's some aspect of how/when a Let variable evaluates in a calculation which is different from just doing an If statement.
0
 
LVL 2

Author Closing Comment

by:rvfowler2
ID: 35165321
Thanks.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Problem: You have a hosted FileMaker database and users are tired of having to use Open Remote or Open Recent to access the database. They say, "can't you just give us something to double-click on rather than have to go through those dialogs?" An…
Having just upgraded from Filemaker 11 to Filemaker 12 over the weekend, we thought we would add some tips for others making the same move.  In general, our installation went without incident. Please note that this is not a replacement for Chapter 5…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question