AnsweredAssumed Answered

Web viewer + Web Direct = record lock after close

Question asked by justinc on Apr 6, 2017
Latest reply on Apr 6, 2017 by howardh

These files are hosted on FMS 15.01.  User clients are FMP14 or 15.


I have a bit of UI where UserA (from FileA) is using FileMaker to log into FileB; UserA in FileA goes to a layout that has a web viewer - this web viewer points at FileB using Web Direct.  FileA and FileB are hosted on the same server (if that matters).


The interafce is fairly simple - its a list view where UserA can make comments in the records.  My problem is that UserA is locking a record in FileB after they have closed the layout.  So if UserA doesn't happen to click into empty space to force the commit, the record stays locked.


So UserA would initiate this layout by clicking a button in FileA; this opens a new window which goes to this particular layout.  The UI for this layout has the nav bar at the top (so this portion is local to FileA context) with a 'Done' button.  The body element is completely taken up by the Web Viewer which is showing FileB via Web Direct.  So the idea is that UserA interacts through the web viewer and then clicks 'Done' (which is NOT in the web viewer) - the Done button attempts to close the Web Direct session and closes the pop-up window.


But my 'Done' script doesn't appear to be correctly closing the connection and the record stays locked; if UserB comes along and tries to make changes to the same records, they get an ugly error, something along these lines:  "[WebDirect-103B7] (web [fmwebdirect])" is modifying this record.  You cannot use this record until "[WebDirect-103B7] (web [fmwebdirect])" is finished."


Screen Shot 2017-04-06 at 9.16.03 .png


How can I properly commit the records from UserA's web direct session, and still close the window that the web viewer is in?


I thought about providing a 'Save' button that's inside the web viewer (which just does a simple 'commit' step), but it would be nice if it could be one click ('Done' from the FileA context of this layout), instead of two ('Save' from webviewer/FileB context + 'Done' from the base layout FileA context).