2018 June Release

Advanced Use CasesPermanent link for this heading

You can create user-defined forms and process documents automatically.

FormsPermanent link for this heading

With the graphical form editor you can create new forms with drag-and-drop and extend objects with new properties without programming knowledge (Enterprise and higher only).

Either you can add a form to an existing object (shown in the properties of the object as first tabs) or you can create basic objects based on a form.

Form Fields

You can use the following form fields on your form:

  • Input Field
    A single-valued field of a particular type (e.g. string, date or object).
  • Item List
    A list of fields of a particular type (e.g. string, date or object)
  • Multiline Text
    A multi-valued field of type string.
  • Check Box
    One or more check boxes (multiple selection is possible).
  • Radio Buttons
    One value can be selected from several values with radio buttons.
  • Combo Box
    One value can be selected from several values in a drop-down box.
  • Standard Property
    Provides the ability to display standard properties of objects on the user-defined form.
  • Separator
    Used to structure related properties.
  • HTML Text
    Allows providing formatted descriptions on the form.

Types

You can define the following types for input fields and item lists:

  • String
  • Integer
  • Float
  • Date
  • Date and Time
  • Timespan
  • Hyperlink
  • Currency
  • Object

Note: The type of a field cannot be changed after the form is published.

Additional Settings

Depending on the type, you can make further settings for form fields. In general, you can specify:

“General” tab

  • Label
  • Mandatory field
  • Help text
  • Initialization value

“Advanced” tab

  • Programming name
  • Readability or changeability depending on user rights
  • Mask (string and integer)
  • Expressions for computing and validating

Multilingualism

For the languages ​​available in the Fabasoft Cloud, you can provide translations for the names and context-sensitive help. To do so, open the properties of the form (context menu command “Properties”) and switch to the “Translations” tab. For each multilingual name of the form, you will find a corresponding entry.

Creating a FormPermanent link for this heading

To create a form, perform the following steps:

  1. Navigate in the desired Teamroom.
  2. Open the context menu in an empty part of the content area and click “New”.
  3. In the “All” category select the “Form” entry.
  4. Define the initial data of the form and click “Next”.
    • Enter a multilingual name.
    • Define a base class to specify the base properties of the default template. For example, if you select “Document With User Data”, the File field is available in the default template of the form.
      When choosing “Container With User Data”, you can also specify whether it is a file. The reference to the file is saved for the subordinate objects. This makes it possible, for example, that the properties of the file are also available as fields in Microsoft Word.
    • Abstract forms cannot be used directly but serve as base forms.
    • Define a base form, if you want to take over tabs and fields of another form.
    • Check Suppress Template Creation, if you want to prevent that objects based on the form can be directly created. In this case, the form can only be assigned to existing objects (using the form category).
  5. Arrange the desired fields with drag-and-drop.
  6. Click “Next“.

The form is now available as a draft. Within this Teamroom, test objects can already be created based on the draft (if you have not chosen Suppress Template Creation). The drafts can be found in the create dialog in the “Forms (Draft)” category.

Example

The following example shows in particular the possibility of using expressions in forms. The amount of each installment is to be calculated based on a total amount and a payment frequency.

Create a form (“Object With User Data” base class) with following three properties:

  • Total Amount (input field)
    Type: Currency
    Programming Name: totalpayment
  • Payment Frequency (radio buttons)
    Options: Monthly (ID: 1), Quarterly (ID: 2), Semi-Annual (ID: 3), Annual (ID: 4); The ID is determined by the order of the options.
    Programming Name: paymentfrequency
  • Installment (input field)
    Type: Currency
    Programming Name: installment

To calculate the installment dynamically, you must define expressions for the fields:

  • For the Total Amount and Payment Frequency field enable the Handle Changes of Values option and enter true as expression. This means that if you change the values, the installment value is updated directly.
  • For the Installment field enable the Compute Value of Field option and enter the following expression:

Calculating Value

// allows using the short reference of FSCUSERFORMS@1.1001:GetFieldValue
%%USING FSCUSERFORMS@1.1001;

Currency @installment = cooobj.GetFieldValue("totalpayment");

if (@installment.currvalue) {
  
// switch based on the ID of paymentfrequency
  switch (cooobj.GetFieldValue("paymentfrequency")) {
  
case 1:
    @installment /= 12;

    
break;
  
case 2:
    @installment /= 4;

    
break;
  
case 3:
    @installment /= 2;

    
break;
  }

}

@installment;

The GetFieldValue action makes it very easy to access the value of fields using the programming name. It implicitly takes into account that the software component differs from draft forms and published forms.

Further information on expressions can be found in the white paper “An Introduction to Fabasoft app.ducx”.

Publishing a FormPermanent link for this heading

After finalizing the draft, the form may be published.

To publish a form, perform the following steps:

  1. Navigate in the Teamroom with the desired form.
  2. In the context menu of the form, click “Publish Form”.

Within this Teamroom, objects can already be created based on the published form (if you have not chosen Suppress Template Creation). The published forms can be found in the create dialog in the “Forms” category.

If necessary, you can customize the form even after the publishing. Until you publish the form again, the changes will not be generally available.

Releasing a FormPermanent link for this heading

To be able to use forms in general they must be released via the context menu command “Release Form for Usage”. The release can be done either for the user only (testing purposes) or for organizations, organizational units, teams or external organizations. To release for organizational elements, you must be an organization administrator or authorized by an organizational policy to manage the corresponding organizational element. Users with the “Head” role can also release for organizational units.

To release a form, perform the following steps:

  1. Navigate to the form and execute the context menu command “Release Form for Usage”.
  2. Mark the organization, organizational unit or team for which the form should be released and click “Next”.

The release state can be removed by executing the context menu command again and removing the check marks for the corresponding entries.

Form TemplatePermanent link for this heading

In the form's properties on the “Form” tab, you will find the corresponding templates. You can use the templates to create objects directly based on the form. If you want to prevent this, choose Suppress Template Creation and publish the form again.

  • Generated Default Template
    If you do not define your own template, the default template is used to generate the template and published template, which are used when creating objects based on the form.
  • Template
    You can define your own template (e.g. a Word document with default content), which is used when creating objects based on the form.
  • Template (Published)
    When publishing a form the Template (Published) is generated from the Template.

Form CategoryPermanent link for this heading

In the form's properties on the “Form” tab, you will find the corresponding Category (Published).

The category can be used for the following use cases:

  • Adding a form to an object
  • Specifying the applicability
  • Specifying the retention rules

Adding a Form to an ObjectPermanent link for this heading

Not only basic objects that are based on a form can be created but it is also possible to extend existing objects with a form. This is particularly useful for Teamroom templates.

To add a form to an object, perform the following steps:

  1. Navigate in the desired object.
  2. Click the “Properties” action.
  3. In the Category field (typically on the “General” tab), select the desired category. The category name corresponds to the form name.
  4. Click “Next”.

The form is displayed as the first tab in the properties of the object. When you define the object as a Teamroom template, the form is available with each newly created object that is based on the template.

ApplicabilityPermanent link for this heading

In the properties of the category, on the “Template Category (Component Object)” tab, in the Applicable for field, you can define object classes for which the category should be useable.

Example:

If you want to restrict a BPMN process to a form category and use activities that are allowed only for documents, you can customize the category accordingly (only “Document” must be entered).

Retention RulesPermanent link for this heading

The form category can additionally be used to define retention rules. You can find the category in the properties of the form on the “Form” tab in the Category (Published) field.

In the properties of the category, on the “Retention Rules” tab you can define whether objects with this category are retention worthy. For retention worthy objects, a retention period can be defined manually on the “Retention” tab. Within this period, the object cannot be deleted.

The retention period can also be calculated based on the category. To do so, define in the category a Retention Period and a Base Date for Retention Period. The calculation of the concrete retention period is carried out via a background task, which must be defined in the Default Background Tasks field.

In the background task, select the “Determine Retention Period Based on the Category” action. In addition, determine the date when the background task should run. In general, it makes sense to use the Base Date for Retention Period as Base Date for Time Interval and, for example, “Immediately” as time interval.

For disposal, you can define another background task in the category. In general, it makes sense to define the Retention Period as base date for the execution of the task. As action, you can either select “Delete Automatically” or “Start Process”. If you want to start a process, you must also specify the process. In the process, a task with the activity “Retention Period Exceeded” should be defined.

When the background task is executed, the process is started and can be processed by the defined users in the worklist. The “Retention Period Exceeded” activity provides the steps “Delete”, “Extend Retention Period” and “Accept”.

InboxPermanent link for this heading

In an inbox, rules for the processing of incoming objects can be defined. A rule consists of conditions and actions.

You can create the inbox directly on “Home” (background context menu > “New” > “Inbox”). As for Teamrooms, you can also set a team for inboxes to define the access rights.

To define rules for an inbox, perform the following steps:

  1. Navigate in the desired inbox.
  2. Click the “Manage Rules” action.
  3. Specify whether the rules are to be applied to top-level objects only. If so, the rules are applied to all objects (including folders) at the top level. Otherwise, the rules are applied to all objects (also in folder hierarchies), but not to the folders themselves, since in this case they are only used for structuring.
  4. Open the “Rule” menu and click “New”.
  5. Enter a name for the rule.
  6. Set the conditions for the rule. A condition checks whether the selected property contains the defined string (case-insensitive). Specify the string without wildcards. All conditions must be met for the rule to run. Do not specify a condition if the rule should always be executed.
  7. Specify the actions to be executed.
    • Import Data (Asynchronous)
      The content of the incoming CSV file is imported. To do so, the target for the import and the type of import (e.g. members or organizational structure) must be specified. You can download templates for the CSV files via the respective manual actions (e.g. “Import Members” action of an organization).
    • Define Property Value
      A value is assigned to a property of the incoming object.
    • Assign Category
      The specified category is assigned to the incoming object.
    • Classify With Mindbreeze InSpire
      The incoming objects are classified. Based on the classification, a category is assigned to the object.
    • Start Process
      The specified process is started on the incoming object.
    • Assign (Asynchronous)
      The incoming document can be assigned based on QR code or PDF keywords. By default, the Fabasoft Cloud ID (e.g. COO. 1.506.4.4063) of the document whose content is to be replaced by the incoming document must be stored in the QR code or PDF keywords. If you select Close Document, the status of the document is set to “Closed” by default. Closed documents can no longer be changed as long as the status is not removed.
      However, the type of assignment and closing can be influenced by an incoming category of the incoming document.
      For non-assignable objects, you can define a folder as the target. The assignment is performed asynchronously at regular intervals.
  8. Click “Next”.
  9. You can define additional rules, or complete the processing with "Save".

For an object placed in the inbox, the rules are checked according to the order. If all conditions of a rule apply to an incoming object or no condition has been defined, the defined actions are executed on the object. Only the first applicable rule is executed.

Classifying and RegisteringPermanent link for this heading

The Fabasoft Cloud in conjunction with Mindbreeze InSpire allows you to automatically classify documents and extract metadata (Enterprise and higher only). Especially when interacting with custom forms, you have a powerful concept for the incoming classification of documents for your particular application.

The following steps explain the basic operation:

  1. In a learning phase, Mindbreeze InSpire is trained to classify the documents. For the extraction of the metadata from documents, regular expressions can be defined.
  2. In productive mode, when classifying documents (either manually or automatically triggered), the metadata and classification are requested from the Mindbreeze InSpire service. Feedback can further improve the quality of the classification.
  3. For the classification value, a category with a corresponding import ID is searched and assigned to the document.
  4. The category can be used to start a specific registration or to initialize a process. If metadata can be retrieved from the document, the data will be prefilled and highlighted in color.

PrerequisitesPermanent link for this heading

The classification requires a Mindbreeze InSpire service, which can be configured by the organization administrator (for more information, see the administration help).

Using CategoriesPermanent link for this heading

The classification value calculated by Mindbreeze InSpire is used to determine a category based on the Import ID of the category. The following processing can be defined via the category:

  • type of registration
  • standard process
  • retention rules

Categories are used in the context of different apps and can be created or managed there (e.g. custom forms).

Using FormsPermanent link for this heading

User-defined forms (see chapter “Forms”) can be taken into account during classification. The corresponding Category (Published) is displayed in the properties of the form. Define in the properties of the category classification value as Import ID, which is returned by Mindbreeze InSpire for the corresponding type of documents. This way the registration is based on the form.

The metadata extracted during classifying is applied to the corresponding fields when registering.

Note: If the programming names of the user-defined fields do not match the Mindbreeze InSpire keys, your organization administrator must enter the corresponding mapping in the Mindbreeze InSpire service.

InboxPermanent link for this heading

Documents can be classified automatically via the inbox. To do so, you can define a rule that performs the “Classify With Mindbreeze InSpire” action (see also chapter “Inbox”).

WorkflowPermanent link for this heading

When using the “Register” activity, documents can be classified and registered via the workflow. You can start an ad-hoc process with the prescribed activity “Register”. In a predefined BPMN process, the activity can also be used (the usability has to be restricted to documents).

The following steps can be performed via the activity. Only appropriate work steps are offered in the respective context.

  • Open
    Opens the document.
  • Classify and register
    Classifies the document with Mindbreeze InSpire and opens the appropriate registration form.
  • Registering
    Opens the registration form.
  • Do not register
    Removes the activity from the worklist without performing a registration.

RegisterPermanent link for this heading

When you register a document, you can capture metadata of the document in a split view (on the left the metadata, on the right the document). If necessary, the document is also assigned (e.g. to a file).

Register (generic)

The generic registration is available if no category could be determined by the classification. In this case, you can capture metadata in a split view.

Register as (incoming category)

An incoming category determines the registration and assignment of the document. The incoming category can be assigned directly to a document or to a category that is assigned to a document. If no category is assigned to a document, the incoming categories of the licensed apps are also considered.

Register as (form)

When a form category is assigned to a document, the user-defined metadata can also be entered in a split view.

Form InboxPermanent link for this heading

The form inbox allows you to capture data using an HTML form and store it in the Fabasoft Cloud. You may also use an Inbox room as an alternative to a “Form Inbox”.

To create a form inbox and receive the identification of the form inbox, perform the following steps:

  1. Navigate in the desired Teamroom.
  2. Open the context menu of an empty part of the content area and click “New”.
  3. In the “Tools” category, select the “Form Inbox” entry.
  4. Enter a name and click “Next”.
  5. In the context menu of the form inbox, click “Properties”.
  6. On the “Form Inbox” tab in the ID field, you can find the unique ID of the form inbox. Copy the ID to use it further on in the HTML form.
  7. Click “Next”.

As an alternative to a “Form-Inbox” you can also create an “Inbox” room. In that case you have to use the Fabasoft Cloud ID as identifier for this Inbox room.

To define a corresponding HTML form on a page of your web site, perform the following steps:

  1. Create an HTML form on a page of your web site.
  2. Define the following attributes of the HTML form:
    • Attribute: action
      Value: https://at.cloud.fabasoft.com/foliop/createobject
      Note: Change the host in the URL to de.cloud.fabasoft.com if your form inbox is located in Germany or to ch.cloud.fabasoft.com in Switzerland.
    • Attribute: method
      Value: post
    • Attribute: accept-charset
      Value: UTF-8
    • Attribute: enctype
      Value: multipart/form-data
  3. Define a hidden field named objectclass and specify the Fabasoft Cloud ID or the reference of the object class from which an instance is to be created in the form inbox when the HTML form is submitted. For example, you can use the following object classes:
    • Folder: COODESK@1.1:Folder
    • PDF Document: FSCACROBAT@1.1:PDFObject
    • Microsoft Word Document: COOMSOFFICE@1.1:WinWordObject
    • Microsoft Excel Worksheet: COOMSOFFICE@1.1:ExcelObject
    • Microsoft PowerPoint Presentation: COOMSOFFICE@1.1:PowerPointObject
    • Generic Content: GENCONT@1.1:ContentObject
    • Object with Form Data: FSCUSERFORMS@1.1001:ObjectWithUserForm or
      FSCUSERFORMS@1.1001:DocumentWithUserForm or
      FSCUSERFORMS@1.1001:ContainerWithUserForm
  4. Define another hidden field named inbox and set its value to the ID field of the form inbox (or the Fabasoft Cloud ID for an Inbox room).
  5. If necessary, define additional fields.

You can specify the following fields in the HTML form (unless otherwise specified, the fields are optional):

Field in HTML Form

Description

objectclass

Required field: Defines the Fabasoft Cloud ID or reference of the object class from which an instance is to be created in the form inbox after the HTML form is transferred.

inbox

Required field: Defines the ID of the form inbox. Alternatively, the Fabasoft Cloud ID of the form inbox can be used.

redirect

Required field: Defines the URL the submitter is redirected to after submitting the HTML form. The URL has to be defined absolutely including protocol and host. Protocol and host must match the URL of the page on which the form is embedded.

errorredirect

Defines the URL the submitter is redirected to in case of a processing error. If this parameter is omitted, the user will be redirected to the page defined by redirect. The URL has to be defined absolutely including protocol and host. Protocol and host must match the URL of the page on which the form is embedded.

The error code and an error description are provided in the errorcode and error parameters.

objname

Defines the name of the created object.

objsubject

Defines the subject of the created object.

objcategory

Defines the category of the created object.

If an objcategory is specified, fields that are assigned to the category can also be submitted as HTML fields. The Programming Name of the category fields must match the name of the respective HTML fields.

content

Allows uploading a file, which is then stored in the File field of the generated object.

This is only possible if the File property is assigned to the object class specified as objectclass. The relevant HTML field must be of type file. When saving, the system does not check whether the file extension of the uploaded file matches the data type of the object class. You can use the accept attribute in the input field to restrict the selection to specific file types. Only one file can be uploaded via this field.

attachmentkeys

Defines the names of the HTML fields (separated by a comma) for submitting additional files.

For the uploaded files, documents are instantiated in the Fabasoft Cloud, which are then stored in the property specified in the attachmentattrdef field of the instance of objectclass. The specified HTML fields must be of type file. If a value is specified in the attachmentkeys field, it is also necessary to provide a value for attachmentattrdef. The object class of the objects created for the uploaded files is determined by the file extension of the uploaded files. The file names are used as names for the created documents.

attachmentattrdef

Defines the Fabasoft Cloud ID or the reference of the property, in which additional uploaded documents are stored.

If a value is specified in the field attachmentattrdef, you also have to provide the attachmentkeys. For object class Folder (COODESK@1.1: Folder), provide the COOSYSTEM@1.1:objchildren property.

<Reference/Fabasoft Cloud ID of other properties>

You may also set other properties that a user can change in the properties editor. These properties are identified by their fully qualified reference or their Fabasoft Cloud ID (e.g. COOSYSTEM@1.1:objexternalkey).

Note:

  • You can find the Fabasoft Cloud ID on the “General” tab in the Properties dialog of the corresponding object. To identify object classes and properties, you can use the reference as well as the Fabasoft Cloud ID. You can determine the reference of properties by pressing the key combination Ctrl + Shift + # in the “Properties” dialog.
  • Certain versions of Microsoft Internet Explorer do not provide the form data in UTF-8 encoding if the page in which the form is included does not also use the UTF-8 character set. The accept-charset parameter is ignored in this case. However, you can include a hidden field with a UTF-8 character in the form to work around this problem.
  • New objects will be created by the user “Form Poster Fabasoft Cloud”. This user will need change access to the Form-Inbox object or the Inbox room, respectively. When creating a Form-Inbox within a Teamroom access for this user is granted automatically. However, if you use an Inbox room you have to add this user explicitly to the team of this room. Just search for a user with e-mail-address “formposter@fabasoft.com”.
  • If you assign a category to the new objects or if you have some rules configured in the Inbox room that assign categories or initiate a process, the user “Form Poster Fabasoft Cloud” will need also read access to the Teamrooms where you created the user form (and thus also the form category) or your processes.

Example

<!-- Replace "form inbox ID" with the value of the ID field of your form inbox.
  -->

<form action="https://at.cloud.fabasoft.com/foliop/createobject" method="post"
  accept-charset="UTF-8" enctype="multipart/form-data">

  <input name="encodingfix" type="hidden" value="&#9760;" />
  <input type="hidden" name="objectclass" value="COODESK@1.1:Folder" />
  <input type="hidden" name="inbox" value="form inbox ID" />

  <input type="hidden" name="attachmentkeys" value="attachments">

  <input type="hidden" name="attachmentattrdef"

    value="COOSYSTEM@1.1:objchildren">

  <label for="objname">Name:</label>
  <input type="text" name="objname">

  <br>

  <label for="objsubject">Subject:</label>

  <input type="text" name="objsubject">

  <br>

  <label for="attachments">Attachments:</label>

  <input type="file" name="attachments" multiple="multiple" accept="pdf">

  <br>

  <input type="submit" value="Send">
  <input type="Reset">

</form>