Extending Tracking Log

OK, I have another one for the forum…

Is there any way in servoy (or through a plugin) to extend the information placed into the tracking log? I have a global variable that contains information about additional identity information that really is needed to be compliant with a standard. As of right now, I can see no way to add in an additional column to the tracking log. I want this global stored with every tracking item at the time the tracking occurs. I can try to fix it up afterwards, but that is not very secure (i.e. through a stored calculation).

Does servoy provide any method for extending the internal modules in general? I am a very good java programmer and would be happy to super class some of these internals to do what I need, but I can’t find any methodology to do this. It seems that the plugin interface does not provide this level of functionality.

Are my assumptions correct on this? Can anyone think of a clever way around my tracking problem?

With the many different security standards out there, it would be very nice to have access to the tracking and session information from within Servoy.

Jim Olsen

In Servoy 3.0 final, it will be possible to define/have your own user_uid (also to be able to use LDAP id and such) whould it help we store that user_uid besides the current user_name in the log table? (if you don’t use the custom user_uid it will use the currrent user_id)

Whould this help?

Well in our case it won’t help that much. It would be really nice to register a call back that allowed us to log our own information alongside the standard information. In our case, the information is actually about a patient record and the name of the patient they are changing at that time. I got around the problem by creating an sql trigger and populating the tracking log that way. I would much prefer to keep the solution entirely within Servoy.

I would love to see some call backs or event mechanisms within Servoy. It would expand the power of the plugin mechanism and create a more dynamic solution.

Jim

You can use the onDataChange event on a field to make log entries. I’ve done this on other medical applications - and it works great.

SAMPLE

var oldData = arguments[0] //always has the "before" value
var newData = fieldName  //new value

forms.myLogForm.controller.newRecord()
forms.myLogForm.oldValue = oldData
forms.myLogForm.newValue = newData
forms.myLogForm.pk = pk_id
forms.myLogForm.user = globals.user_id
forms.myLogForm.controller.saveData()

Hope this helps point you in the right direction.