Thanks for posting your query in Oracle Community.
The LASTSIGNONDTTM from PSOPRDEFN will get updated by multiple ways. like.. from Crystal Reports, OR by any Service Operations.. etc.
I Would suggest you to make use of "Field Change" Event of the Record.Field to trigger the code when ever the Field Value is changed.
Please mark my update as "Correct Answer" or "Helpful Answer" if it helps/answers your question.
Have a look at the Signon PeopleCode you have enabled.
It's under the following navigation.
Main Menu > PeopleTools > Security > Security Objects > Signon PeopleCode