Home > Forum > Forms > Attachment access recording

Attachment access recording
0

Hi everyone!
I am developing a document repository. Has anyone come to a solution on how to record each attachment access by a user? Users will access documents that are already in the archive (finish step) and will not be assigned to anyone. In some cases I would like to know who read a document in pdf attached to a process. Any ideas on how can this be accomplished?

MVP

Hi Michał

maybe you find a way to get in touch with Bo Jamison:
TRACKING ACTIONS INSIDE WEBCON
https://community.webcon.com/forum/thread/536

Alternatively you could connect with Markus Jenni from Nexplore on LinkedIn:
https://community.webcon.com/forum/thread/271

I had just some other idea and it could work.
If you only need it in some specific form, it may be possible to overwrite sending the request and add a custom header to the request.
This header in turn could be logged to the iss log.

I'm quite sure that I have modified the function to send the request in the past.

Best regards,
Daniel

In reply to: Daniel Krüger (Cosmo Consult)

Hi Michał

maybe you find a way to get in touch with Bo Jamison:
TRACKING ACTIONS INSIDE WEBCON
https://community.webcon.com/forum/thread/536

Alternatively you could connect with Markus Jenni from Nexplore on LinkedIn:
https://community.webcon.com/forum/thread/271

I had just some other idea and it could work.
If you only need it in some specific form, it may be possible to overwrite sending the request and add a custom header to the request.
This header in turn could be logged to the iss log.

I'm quite sure that I have modified the function to send the request in the past.

Best regards,
Daniel

Well...I've just tried a different approach. I've made a technical workflow that records access (signature of the repository element, person, date and time) and created a menu item wchich invokes an action which runs this new technical workflow with the given data. While whis would seem ideal, it's actually not. When the original repository item form is loaded, the action on load of the form is executed - it invokes menu button action wchich runs an action staring a new instance of the technical registering workflow. It would be perfect if not for one thing - once the action of running the technical workflow is executed, the orignal form reloads and thus we end up in an infinice loop. Is there a way to stop the original form from reloading after menu button is being invoked?

MVP
In reply to: Michał Ludwiczak

Well...I've just tried a different approach. I've made a technical workflow that records access (signature of the repository element, person, date and time) and created a menu item wchich invokes an action which runs this new technical workflow with the given data. While whis would seem ideal, it's actually not. When the original repository item form is loaded, the action on load of the form is executed - it invokes menu button action wchich runs an action staring a new instance of the technical registering workflow. It would be perfect if not for one thing - once the action of running the technical workflow is executed, the orignal form reloads and thus we end up in an infinice loop. Is there a way to stop the original form from reloading after menu button is being invoked?

I have a slightly different idea, which I haven’t tested:

Instead of starting the technical workflow from the menu button, which triggers the reload, the button could create an invisible iFrame. The source of the iFrame will be the URL to start the technical workflow. Just loading the page won’t do anything but you could add the url parameter PATH_Id to start the registering path. You only need to enable the path as a quick path. This way the technical workflow should be executed and completed without effecting the parent window.
I hope I didn’t misspelled the parameter. :)

Best regards,
Daniel

In reply to: Daniel Krüger (Cosmo Consult)

I have a slightly different idea, which I haven’t tested:

Instead of starting the technical workflow from the menu button, which triggers the reload, the button could create an invisible iFrame. The source of the iFrame will be the URL to start the technical workflow. Just loading the page won’t do anything but you could add the url parameter PATH_Id to start the registering path. You only need to enable the path as a quick path. This way the technical workflow should be executed and completed without effecting the parent window.
I hope I didn’t misspelled the parameter. :)

Best regards,
Daniel

Thanks Daniel for your suggestion, but while you were writing the reply, I've been trying a different approach and it worked. I've created a dedicated table in the Webcon database (I wonder how it will behave when upgrading the server?) for storing the necessary data (who, when and what was accessed). Then I've put an insert statement in "SQL COMMAND" in a business rule. And last - on loading the form I execute a Form rule which invokes the mentioned business rule. The info is stored on loading the form, form reload is not being invoked, all works as desired!

I'm nearly certain that creating a table in the Content database is not a good practise... what do you advise? Another DB? If not, how will the Webcon upgrading engine behave when it finds a table, that should not be there?

MVP
In reply to: Michał Ludwiczak

Thanks Daniel for your suggestion, but while you were writing the reply, I've been trying a different approach and it worked. I've created a dedicated table in the Webcon database (I wonder how it will behave when upgrading the server?) for storing the necessary data (who, when and what was accessed). Then I've put an insert statement in "SQL COMMAND" in a business rule. And last - on loading the form I execute a Form rule which invokes the mentioned business rule. The info is stored on loading the form, form reload is not being invoked, all works as desired!

I'm nearly certain that creating a table in the Content database is not a good practise... what do you advise? Another DB? If not, how will the Webcon upgrading engine behave when it finds a table, that should not be there?

Hi Michał,

that's always the problem with the forum. If one has a problem there's seldom time to wait on a reply.
At least any interested reader has now three different approaches to handle this. :)

I doubt that the custom table inside the content database* will cause any issues during an update. I can test it when I create our BPS 2023 sandbox tomorrow.

I assume that you have a custom connection with a dedicated user to write into this table. As the default bps_user database account won't have the permissions to do so.
Therefore you could also have an own database, it wouldn't make much of a difference.

So what kind of topics do we have:
- Data presentation in the document or in some kind of report needs to be handled manually either way
- Backup& restore would need to cover the custom database
- Updating table structure / moving, this needs to be handle in both cases. Whether you also need to create a database in test/production doesn't make much of a difference.
- Unlikely cases that a BPS upgrade would have issues with a custom table. I doubt it, but it could happen
- I would assume, that the volume of the entries will become large and would cause issues with the disk space when the table is part of the content database.

I would opt for the separate database and maybe add the creation/update of structure to sql statement. So that it gets updated if anything changes.

Best regards,
Daniel

In reply to: Daniel Krüger (Cosmo Consult)

Hi Michał,

that's always the problem with the forum. If one has a problem there's seldom time to wait on a reply.
At least any interested reader has now three different approaches to handle this. :)

I doubt that the custom table inside the content database* will cause any issues during an update. I can test it when I create our BPS 2023 sandbox tomorrow.

I assume that you have a custom connection with a dedicated user to write into this table. As the default bps_user database account won't have the permissions to do so.
Therefore you could also have an own database, it wouldn't make much of a difference.

So what kind of topics do we have:
- Data presentation in the document or in some kind of report needs to be handled manually either way
- Backup& restore would need to cover the custom database
- Updating table structure / moving, this needs to be handle in both cases. Whether you also need to create a database in test/production doesn't make much of a difference.
- Unlikely cases that a BPS upgrade would have issues with a custom table. I doubt it, but it could happen
- I would assume, that the volume of the entries will become large and would cause issues with the disk space when the table is part of the content database.

I would opt for the separate database and maybe add the creation/update of structure to sql statement. So that it gets updated if anything changes.

Best regards,
Daniel

You are definitly right Daniel, I will create a new database tomorrow dedicated to extra tables for Webcon and move this table there. More elegant and orderly way I guess. Thanks for the assist today!