How can i know what documents have been rejected in Kofax Quality control screen? - fax

I have a Kofax batch with multiple documents. The process I want to built is as follows.
Check for quality of faxed documents in Kofax QC screen.
Reject documents which are not clear, skewed etc..
Send a feedback to the submitter.
Question is, where can I find the details of the documents which I have flagged as rejected. Does Kofax keep the tiff images of rejected documents?

If I understand correctly, you are trying to send e.g. an email to update the submitted?
Rejected documents/pages remain in the batch, but are marked as rejected.
I suggest you check the CaptureSV\sources folder for the example custom panel which will allow you to access all the batch info from vb.net (You can also write it in c#, but no c# example code is provided). Check also the developers guide for helpful instructions.

Related

Firebase Data Loss? [duplicate]

I really like the offering that's Cloud Firestore. But does it have an audit trail?
Why am I asking? While some use of databases is essentially "state" (e.g. multiplayer games), for other uses also the history matters. Also, at times being able to see the history would be useful for debugging purposes (time travel).
So what's the means I would have to ask e.g. "who deleted a value in this document" or "who has touched this doc since its inception"?
Do people use additional commentary documents to do this at the application level, or can I just enable a setting somewhere that would create such a document behind the scene, automatically? (I could then describe access rights just as for any other Firestore document.)
Addons, plugins etc. can also be suggested. I don't have a pressing use case for this right now - just want to understand where Cloud Firestore would fit and where not.
Btw, the Getting to know Cloud Firestore series in Youtube is plain awesome! :)
Edit: 2022-10-25
As Frank mentioned in his answer, yes, by the time I have written this answer, there wasn't a solution for audit logging. However, when it comes to today, this option is available and it can be also configured based on what you need.
For a better understanding, I recommend you check the official documentation regarding Firestore audit logging where it is said that:
Google Cloud services write audit logs to help you answer the questions, "Who did what, where, and when?" within your Google Cloud resources.
Old answer:
> **Note:** This answer was correct at the time of writing, but is now outdated. See [this answer](https://stackoverflow.com/a/74154622/209103) for details.
So what's the means I would have to ask e.g. "who deleted a value in this document" or "who has touched this doc since its inception"?
Cloud Firestore doesn't store such metadata. If you find yourself in a position in which you need such details, you'll need to create a mechanism to store them. So in case you want to know who deleted a specific value, you should create an array of objects where you should store the UID of the user who deleted that value and a timestamp.
Do people use additional commentary documents to do this at the application level
Yes, we usually do.
or can I just enable a setting somewhere that would create such a document behind the scene, automatically?
There is no such setting that can be enabled.
If you need a history version of the document, a possible schema that might help you is in my answer from the following post:
Firestore: Version history of documents
While Alex's answer was correct at the time of writing, Firestore nowadays provides audit logging capabilities that you can enable and configure based on your needs.
See the documentation on Firestore audit logging for full details on the Admin Activity audit logs and Data Access audit logs that can be set up.

How does Firestore handle offline / online deletions?

This question is purely conceptual and I am trying to get a better grasp of how offline capability works for Firestore. So I understand that writes do not immediately go through and that they must be confirmed by the server and so offline writes sit on the device until it goes back online. I also understand that Firestore uses the last write wins schema. My question is, say somebody online deletes a document that someone offline is writing to or using, etc. What happens then when that offline person goes back online? Is a new document created now since essentially the offline user would be writing to a document that doesn't exist once they go back online?
It depends on the code you used for writing to the document. If that could would auto-create the document if it doesn't exist (i.e. if it's a set and not an update), then it will indeed recreate the document.
If this is not the behavior you want, you can control it (in whatever way you want) with security rules.

Does Cloud Firestore have an audit trail?

I really like the offering that's Cloud Firestore. But does it have an audit trail?
Why am I asking? While some use of databases is essentially "state" (e.g. multiplayer games), for other uses also the history matters. Also, at times being able to see the history would be useful for debugging purposes (time travel).
So what's the means I would have to ask e.g. "who deleted a value in this document" or "who has touched this doc since its inception"?
Do people use additional commentary documents to do this at the application level, or can I just enable a setting somewhere that would create such a document behind the scene, automatically? (I could then describe access rights just as for any other Firestore document.)
Addons, plugins etc. can also be suggested. I don't have a pressing use case for this right now - just want to understand where Cloud Firestore would fit and where not.
Btw, the Getting to know Cloud Firestore series in Youtube is plain awesome! :)
Edit: 2022-10-25
As Frank mentioned in his answer, yes, by the time I have written this answer, there wasn't a solution for audit logging. However, when it comes to today, this option is available and it can be also configured based on what you need.
For a better understanding, I recommend you check the official documentation regarding Firestore audit logging where it is said that:
Google Cloud services write audit logs to help you answer the questions, "Who did what, where, and when?" within your Google Cloud resources.
Old answer:
> **Note:** This answer was correct at the time of writing, but is now outdated. See [this answer](https://stackoverflow.com/a/74154622/209103) for details.
So what's the means I would have to ask e.g. "who deleted a value in this document" or "who has touched this doc since its inception"?
Cloud Firestore doesn't store such metadata. If you find yourself in a position in which you need such details, you'll need to create a mechanism to store them. So in case you want to know who deleted a specific value, you should create an array of objects where you should store the UID of the user who deleted that value and a timestamp.
Do people use additional commentary documents to do this at the application level
Yes, we usually do.
or can I just enable a setting somewhere that would create such a document behind the scene, automatically?
There is no such setting that can be enabled.
If you need a history version of the document, a possible schema that might help you is in my answer from the following post:
Firestore: Version history of documents
While Alex's answer was correct at the time of writing, Firestore nowadays provides audit logging capabilities that you can enable and configure based on your needs.
See the documentation on Firestore audit logging for full details on the Admin Activity audit logs and Data Access audit logs that can be set up.

Flutter: offline local storage syncing with online e.g. firebase

Is this a common/reasonable Use case?
An app allows a user to save favorites locally so that the user doesn't need to signup.
Then the user afterwards desires to share their favorites.
Therefore favorites data needs to be synced from local to remote. The usual local storage for flutter is sqflite, and firebase/store is the remote. However, this seems cumbersome, as sql to nosql conversion is necessary.
I thought that this would be a general issue for UX etc, but I can't find any discussion of this issue? Maybe forcing the user to create an account is the most general solution?
It's a common understanding that if you don't have user account then you can't have any user data associated with your name. You don't have to force the user to have an account or lock them out.
When they favourite something just show a dialog telling them "If you don't have an account your favourites are stored on the device only. If you want your favourites to be available everywhere please create an account" then show options for "Create account" or "No, Thanks"
Create account: Goes to account creation page
No, Thanks: Adds the device to the favourites list and lets the user continue to do what your app does.
There's no problem to solve here from what I'm seeing. If you don't have an account you don't get account functionality. If you track users without them entering anything it's also a little bit illegal and creepy so no need to push the limits on how you can track the same user.
Another way to think of it is to make signup so easy they don't mind and also guarantee that it's worth it. Won't be used for spam or information selling. Take what's app as an example, even though you need to mobile number to send the messages, it's just used as a unique identifier and has nothing to do with the device's number.
Ask for their phone number or email or just any email, you'll most likely get fake info.
And what does your analytics say? Are you getting requests from users saying they lost all their information on a different device? How many people are using your favourite functionality?
I may have come to the party a little late here but here's my 2 cents worth.
The Sql to NoSql conversion is not cumbersome. In fact, there is a reasonable use case for this. I have the same requirement for an app that I am about to build.
Anyway, to store data in RDMDB or NoSQLDB you will need a data model to ensure consistency in your app. If the user has been using the app offline, and they later choose to go online, you can allow them to create the Remote Account, then check if they have local favorites. If they do, you will HAVE to ask them if they'd like to import them into the remote storage. If they choose to do so, you will then have to read their favorites from the local storage and store them in a List<Model> then map() that back to the online storage.
NoSqlDB can accept the json type data, so your model should include the conversion fromMap() and toJson() for this purpose (and others).
When I have come around to doing this, I will share my code (if I remember to come back here).

Difference between Cache,Session,Application,View in ASP.Net

I want to store some data during my site viewing.
Sometime i need to store large data like crystal reports and some times i need to store a string.
So which is best to use and when to use.
Where are these datas stored. i.e., Client or Server
Please go through this link:
Nine Options for Managing Persistent User State in Your ASP.NET Application
What you are asking is about State Management in ASP.NET. What you have actually listed is Server Side state management options.
You can made a choice of which to use depending on your requirement or functionality.
I will recommend you do some background reading on MSDN regarding State Management. I am not sure which answer you need here as your query is a bit generic.
Here is a link to get you started... http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
This is a very open ended question. Ass Julius said you need to learn more about the different ways you can store information. For example, Application is used when you want to store information on the initial startup of the site and make it available to all users. Session is for a single user so you may have many sessions open depending on how many users you have online at that time. Cache is also a way you can store information on the server. All of these are stored on the server so if you have hundreds of users online at the same time, server memory will be consumed holding all this information. Rule of thumb is to try to be conservative when storing information in these locations. Personally, I rarely use application and also try to limit my use of session to when it makes sense. If I were to write an app that used crystal reports as you are, I would probably use sql to store the paramaters of the report and generate the report from the parameters but it depends entirely on the needs of the user using the app.
You can find a wealth of infomation on this subject on line. Hopefully this will give you some information.

Resources