AnsweredAssumed Answered

Update related records without changing found set

Question asked by AlastairMcInnes on Oct 28, 2016
Latest reply on Oct 28, 2016 by AlastairMcInnes



I have a table of book data and another of reviews, which is linked to the book table using a field called TitleID - each book has a TitleID, which is shared by the various versions of the book (hardback, paperback, epub - each of which has its own book record) and each review contains a field with the ID in it so that I can export related reviews along with the book data.


If a user adds a review to a book, I would like to be able to flag the book as changed - there is an Export field which is either "Yes" or blank, with "Yes" meaning that the book data has changed and the book should be exported from the database to update other systems. This flag needs to be set on all the versions of the book - so all the book records with the same TitleID.


My current solution is to have a script triggered by the OnCommit trigger on the Reviews layout - the script uses GoToRelatedRecord to get the related books, and loops through them setting the Export flag.


This works fine except that if the user already had a found set of books when they added the review, that found set is lost and replaced with just the books sharing the TitleID.


I tried having the GoToRelatedRecord open the found records in a new window but that causes a very annoying flicker when the new window opens, runs the update and closes again. This happens despite a Freeze Window step - which, not unreasonably, doesn't freeze a different window. I tried setting the new window size to 1,1 and then tried setting its position to -1,-1. Both of those seem to resize the original window which is even more annoying than the flicker.


I tried putting the Book export flag on the reviews layout and updating it there, but that only updates one of the related books.


So the actual question here is whether there's a way of updating related records without changing the found set in the related table?