# Most efficient way to navigate to the new layout

**URL:** <https://the.fmsoup.org/t/most-efficient-way-to-navigate-to-the-new-layout/2506>\
**Category:** Questions\
**Tags:** scripting, performance\
**Created:** [October 3, 2021, 3:19pm UTC](https://the.fmsoup.org/t/most-efficient-way-to-navigate-to-the-new-layout/2506 "2021-10-03T15:19:38Z")\
**Posts on this page:** 1\
**Page:** 2

<div class="post-metadata">

**Author:** ![Kirk](https://yyz2.discourse-cdn.com/flex030/user_avatar/the.fmsoup.org/kirk/32/2197_2.png) [@Kirk](https://the.fmsoup.org/u/Kirk)\
**Post date:** [October 24, 2022, 3:30pm UTC](https://the.fmsoup.org/t/most-efficient-way-to-navigate-to-the-new-layout/2506/21 "2022-10-24T15:30:15Z")

</div>

You could use a simple (or even the more recently Claris-codified) transaction processing methods.

[FitchandFitch.com](http://FitchandFitch.com) did a page on "Modern Commitment" which is a very simplistic version of transaction processing - compared to the new Claris stuff that is far more comprehensive. The basic concept is to intercept the commit using the OnRecordCommit script trigger and NOT allow that to process UNLESS there it is running from a script. As such, IMPLICIT commits (clicking outside of a field/portal) will not commit the record.

The simple script:

```auto
Set Variable[$param ; Value: Get(ScriptParameter)] 
If[IsEmpty( $param )] 
  Exit Script[False] 
End If

```

And in the scripted commit (close, save, whatever), you can assign a parameter of `"Get (ScriptName)"`, which would only be true if executed from a script.

[Previous page](https://the.fmsoup.org/t/most-efficient-way-to-navigate-to-the-new-layout/2506.md?page=1)
