HI team,
i want to find the type of extension and Size of list of documents and i have used document function and build an expression rule it is working fine in expression rule as expected when i call that expression in an interfcae it is shoowing error as document function is deleted.
a!localVariables( local!size: a!forEach(ri!documents, document(fv!item, "size")), local!extension: a!forEach( ri!documents, document(fv!item, "extension") ), toboolean( and(and(reject( fn!isnull, { a!forEach( local!extension, if(fv!item <> "pdf", false, null) ) } )), and(reject( fn!isnull, { a!forEach( local!size, if(fv!item > 5000000, false, null) ) } ) ))) )
when i use in interface getting error as shown below
Discussion posts and replies are publicly visible
Does the User who is logged in an using this interface have the correct security to access the document that is throwing this error?
yes,Stewart Burchell
Hello NewBegineer Even though the document exists, it might not be able to retrieve information if the user lacks the necessary permissions to access the specific document.Check the security settings of the documents listed in ri!documents. Verify if the user's role or group has read access to these documents.
Was the document just uploaded by the user on the very same interface?
yes
This is what I expected based on your error description. Documents which have just been uploaded on the same interface are not available to the normal set of document parsing functions, including "document()", and trying to call it will result in an error.
This is because, prior to the form being submitted, the documents are actually stored in a special place in the Appian File System that we don't have access to from the front-end (including the design side).
Only after the task is submitted, are they moved out of that reserved space and into their target upload folder, at which point you can call "document()" on them.
I would add, also, that the File Upload Field has a built-in way to validate on Extension and Size of uploaded files, so there should be no need to implement your own version of it at this point.
Yes i have did but i have a requirement where i want to disable a button on the above mentioned conditions
NewBegineer said:i want to disable a button on the above mentioned conditions
Unfortunately until something like my Ancient Feature Request is implemented, there is no direct supported way to do this with freshly-uploaded files. The linked feature request would, of course, enable this use case as well as many other things. If you feel so inclined, please visit that old thread, upvote it, and add a comment detailing your use case.
cc Peter Lewis (are there any engineers finally ready to take this on as their "free time project"?)
Hi vinayj0006,
a!localVariables( local!document, local!documentContent, local!documentSize, local!documentExtension, { a!fileUploadField( label: "Documents", target: cons!APP_TEMPORARY_FOLDER, maxSelections: 1, value: local!document, saveInto: { local!document, a!save( local!documentContent, property( property( a!fileUploadField(value: local!document), "contents", null ), "value", null ) ), a!save( local!documentSize, property( local!documentContent, "fileSizeDisplay", null ) ), a!save( local!documentExtension, property(local!documentContent, "extension", null) ) } ) } )
You can use this code to get the metadata of uploaded document at runtime.