Show / Hide Table of Contents

    Application Properties

    The two samples below show how to store, get, update and delete application properties.

    Some DocuWare client applications may need to store additional information. This could be achieved by storing that information as application properties on document level or on section level.

    Warning

    The application properties which are stored on documentation level throught the API are stored on the first section of the document.

    How the application properties are treated on some document operations:  

    • Clip - each document presorves its own application properties
    • UnClip - each document preserves its own application properties
    • Staple - only the application properties of the first section of the first document are preserved
    • UnStaple - the application properties are set to all newly created documents
    • Split - the application properties are set to all newly created documents
    • CheckOut - the application properties of the first section are preserved
    • CheckIn - the application properties of the two documents are merged

    Store, Update and Delete Application Properties

    C#

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using DocuWare.Platform.ServerClient;
    
    namespace DocuWare.PlatformClientExamples
    {
        static partial class Examples
        {
            /// <summary>
            /// Stores, gets, updates and deletes application properties on document level.
            /// </summary>
            public static void ApplicationProperties(Document newDocument, FileCabinet cabinet)
            {
                FileInfo[] filesInfo = new FileInfo[] { new FileInfo("2Pages.pdf"), new FileInfo("2Pages.pdf")};
    
                // add application properties on upload
                newDocument.ApplicationProperties = new List<DocumentApplicationProperty>();
                newDocument.ApplicationProperties.Add(new DocumentApplicationProperty() { Name = "key1", Value = "Best Value" });
                newDocument.ApplicationProperties.Add(new DocumentApplicationProperty() { Name = "key2", Value = "For Delete" });
    
                // upload the document and retrieve it
                newDocument = cabinet.UploadDocument(newDocument, filesInfo);
                newDocument = newDocument.GetDocumentFromSelfRelation();
    
                DocumentApplicationProperties properties = new DocumentApplicationProperties();
                properties.DocumentApplicationProperty = new List<DocumentApplicationProperty>();
    
                // update application properties
                properties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key1", Value = "UpdatedValue" });
                properties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key3", Value = "NewValue" });
    
                // delete existing application property
                properties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key2", Value = null });
    
                // update application properties
                newDocument.PostToAppPropertiesRelationForDocumentApplicationProperties(properties);
            }
    
            /// <summary>
            /// Stores, gets, updates and deletes application properties on section level.
            /// </summary>
            public static void ApplicationProperties(Section section, FileCabinet cabinet)
            {
                // add application properties on upload
                DocumentApplicationProperties appProperties = new DocumentApplicationProperties();
                appProperties.DocumentApplicationProperty = new List<DocumentApplicationProperty>();
                appProperties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key1", Value = "Best Value" });
                appProperties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key2", Value = "For Delete" });
    
                section.PostToAppPropertiesRelationForDocumentApplicationProperties(appProperties);
    
                // get application properties
                appProperties = section.GetDocumentApplicationPropertiesFromAppPropertiesRelation();
    
                // update application properties
                appProperties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key1", Value = "UpdatedValue" });
                appProperties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key3", Value = "NewValue" });
    
                section.PostToAppPropertiesRelationForDocumentApplicationProperties(appProperties);
    
                // delete existing application property - this will delete "key2" record
                appProperties.DocumentApplicationProperty.Add(new DocumentApplicationProperty() { Name = "key2", Value = null });
    
                section.PostToAppPropertiesRelationForDocumentApplicationProperties(appProperties);
            }
        }
    }
    
    About Us Contact Imprint Terms Data privacy
    © 2024 DocuWare Corporation powered by DocFX Back to top