I'm going with the assumption that you don't care which field changed only that 1 changed.
- Create an array with 1 row.
- Define the array with every field you want to test.
- Create 2 array functions. First is a create object, second is a delete object with no keys (to clear the array).
- In the edit record: USER: Initialize detail screen (existing record). Call the delete to clear the array, then call the create and put all the fields into the array.
- Use the *CVTVAR function to move the array to a text field large enough to hold all the data.
- In the user point USER: Validate detail screen relations (or wherever you are testing for changes) Repeat the array steps (clear and load).
- Use the *CVTVAR function to move the array to a second text field large enough to hold all the data.
- Compare the text fields from 5 and 7, if they are different, something changed.
You could try doing it with an array with 2 records and keyed by every field but i can't remember if there is a limit on the number of keys in an array. If you try this, make sure to suppress the duplicate record message.