Content Tools

Overview

These functions extend Appian content and offer document/folder search, directory listing, and the ability to get/set the searchable attribute of a folder.

Functions are designed for and only work on Appian content, not the local filesystem. All search functions assume the root folder and all subfolders are searchable. Search functions will not return results contained within non-searchable objects.

All functions use the serviceContext of the user account executing the expression at runtime.

Key Features & Functionality

Data Types

  • contentSecurityRoleMap: CDT that backs the returnContentRoleMap function

Smart Services

  • Copy Document (Change Extension)
  • Delete Document Version
  • Delete Folder Contents
  • Delete Files Older Than
  • Delete Files Created Before
  • Delete Multiple Documents
  • Remove Member From Folder Security
  • Inherit Security From Parent for Folder
  • Inherit Security from Parent for Document
  • Remove Member From KC Security
  • Delete Rule/Constant Versions
  • Set Folder Security
  • Create Document Version
  • Create expression rule
  • Update expression rule expression
  • Update expression rule parameters

Functions

  • getfoldersrequiringchangesapproval
  • getsubfoldersfromfolder
  • getdocumentsfromfolder
  • getdocumentinternalidsfromfolder
  • getfilesolderthandate: Get files older than a particular date
  • getfileslargerthansize: Get files larger than a particular size
  • finddocumentsbyname
  • getconstantorruleuuidbyname
  • findcontentbyattribute
  • getcontentdetailsbyuuid
  • getcontentdetailsbyinternalname
  • getcontentobjectdetailsbyid
  • getcontentobjectswithnumofversions: function to find rules or constants with a given number of versions. Useful to find out objects that can increase memory usage in the collaboration engine. See https://forum.appian.com/suite/help/16.3/kb/kb-1226.html
  • getcontentobjectrevisionhistorydetails: Retrieves the revision history of a content object formatted as "[version id, date created, date updated, size, author]"
  • getconstantsfromfolder
  • getconstantsbyname
  • setfoldersearchability
  • getfoldersearchability
  • getdownloadersfromgroup
  • returncontentrolemap
  • getprocessmodeldetailsbyuuid
  • getrulereferencebyname
  • generateuuid
Anonymous
  • The plugin will not be affected in any way. The "removed" tag is an internal tag that HC reads - we will be updating the HC. There may be some updates to the Content Tools plugin but always in a backwards compatible fashion. Public APIs that have been truly removed will be called out in release notes.

  • Thanks! But in health check we see some of the APIs removed. In which way, it will affect?

  • Hi Team,

    We are using this plugin.

    In health check, we received some of the APIs used in this plugin got removed/deprecated. Can we expect any update on the plugin sooner?

    We used the below functions in our app. We are going to upgrade to 20.1. Can you confirm that the below functions will work in 20.1?

          FindContentByAttribute
          FindDocumentsByName
          FindFoldersByName
          GetContentObjectDetailsByID
          GetDocumentsFromFolder
          GetSubfoldersFromFolder

    Health check report:

    Content Tools (com.appiancorp.ps.plugins.contenttools) references removed and deprecated Appian APIs
    [removed] com.appiancorp.suiteapi.common.LocalObject.<init>(java.lang.Integer,java.lang.Long)
    [removed] com.appiancorp.suiteapi.common.exceptions.AppianException.<init>(com.appiancorp.suiteapi.common.exceptions.ErrorCode,java.lang.Object[])
    [removed] com.appiancorp.suiteapi.common.exceptions.AppianException.<init>(com.appiancorp.suiteapi.common.exceptions.ErrorCode,java.lang.Throwable)
    [removed] com.appiancorp.suiteapi.content.ContentFilter.<init>(int,int)
    [removed] com.appiancorp.suiteapi.process.exceptions.SmartServiceException.Builder.<init>(java.lang.Class,java.lang.Throwable)
    [removed] com.appiancorp.suiteapi.type.TypedValue.<init>(java.lang.Long,java.lang.Object)
    [deprecated] com.appiancorp.suiteapi.common.ServiceLocator.getContentService(com.appiancorp.services.ServiceContext)
    [deprecated] com.appiancorp.suiteapi.common.ServiceLocator.getStatisticsService(com.appiancorp.services.ServiceContext)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.approve(java.lang.Long[])
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getAllChildren(java.lang.Long, com.appiancorp.suiteapi.content.ContentFilter, java.lang.Integer)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getAllChildrenAndVersions(java.lang.Long, com.appiancorp.suiteapi.content.ContentFilter)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getExpiredIds(java.lang.Long, java.lang.Integer, com.appiancorp.suiteapi.content.ContentFilter)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getInactive(java.lang.Long, com.appiancorp.suiteapi.content.ContentFilter)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getPendingPaging(java.lang.Long, com.appiancorp.suiteapi.content.ContentFilter, int, int, java.lang.Integer, java.lang.Integer)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.getVersions(java.lang.Long[], java.lang.Integer)
    [deprecated] com.appiancorp.suiteapi.content.ContentService.unexpire(java.lang.Long[])

  • Hi Team,

    We are using content functions plugin in our apps 

    com.appiancorp.cloud.plugins. contentfunctions - 1.1.2.jar (Last updated Feb 2 2018)
    We are upgrading our platform to New version 20.1. Can you please confirm  

    com.appiancorp.ps.plugins.contenttools-1.1.3.jar (Last updated Nov 8, 2019) is the replacement of content functions plugin as we didn't find any official statement on it.

    Thanks

  • Yes, this will continue to work. That being said I would recommend that you move over to the OOTB folder expression to pull out childDocuments.

  • Hi Team,


    we are preparing to upgrade our platform to New version 20.1 .we are using this ( content tools ) plugin & its functions ex : getdocumentsFromFolder() in our existing rules. Can you please confirm this plugin would support to 20.1 version or Can we get upgraded/replacement of this plugin

    Thanks

  • Need to correct one point in my post .. Adding to Designers role corrects the issue were a folder no longer exists.   The use case where folder exists but user does not have access works as expected and we do get the PrivilegeException message returned.   

  • Hi,   I was hoping someone could help explain why this error is occurring when calling getcontentdetailsbyuuid on a folder UUID which a user has view access to the folder or the folder has been deleted.

      'getcontentdetailsbyuuid' [line 5]: The user [ATM_Developer] does not have sufficient privileges to perform the requested action. (APNX-1-4205-003)

    The above error only occurs for users who are not members of the Design group. If the user is a member of the designers group, however,  then the function returns either of these two messages depending on current state: 

    No object with this UUID has been found: PrivilegeException
    No object with this UUID has been found


    Is  being a member of the Designers group a requirement to leverage this function to get the desired results?   Or have a run into an Appian bug/or plugin in function bug? 

    All my testing in in appian cloud instance on 19.4.