Advanced Use Cases
You can create user-defined forms and process documents automatically.
Forms
With the graphical form editor you can create new forms with drag-and-drop and extend objects with new properties without programming knowledge.
Either you can add a form to an existing object (shown in the properties of the object) or you can create basic objects based on a form.
Note: You can only create, edit and release forms and categories if you are authorized in the Edit Forms and Categories organizational policy. Explicit authorization is required as app.ducx expressions can be created in the context of forms and categories.
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 plain text, code or HTML. - 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
- Numerator (only input fields)
- Hyperlink
- Password
- Currency
- Object
You must also define the type of objects allowed (for example, standard objects). - Compound Type
You must also select either a standard type or a type defined via a form. You can choose between standard and chart display.
Note: If the form has already been released, the type of a field can only be changed to compatible types (e.g. from string to hyperlink or password).
Additional Settings
Depending on the type, you can make further settings for form fields. In general, you can specify:
“General” tab
- Label
- Mandatory field
- Description (is displayed with the field as an additional description to the label)
- Help text (is displayed as context-sensitive help)
- Initialization value
“Advanced” tab
- Programming name
- Readability or changeability depending on user rights
- Mask (string and integer)
- Expressions for computing and validating
You are supported by syntax checking and auto-completion when entering an app.ducx expression. You can find more information in the white paper „Model-Base Customizing: new window“.
“Display” tab
- Control (the used control, based on the field type, is displayed read-only)
- Compute Control Styles
- Compute Control Options
- Display in New Row (if disabled, the field will be displayed next to the previous field)
- Field Width (in percent in relation to the other fields in a row)
Trace output
When you use expressions for calculation or validation, it can sometimes be difficult to identify errors in the expressions. To simplify analysis, you can write trace output to the web browser console. To do this, you must go to the context menu of the Teamroom where the form is used, choose “Tools” > “Activate Trace Outputs” and allow trace output.
Call in expressions:
- cooobj.Trace("string");
- cooobj.Trace("string", value);
Output:
The output is a JSON data record.
- c
Context of the call (Teamroom). - d
Current time. - s
Section of the expression (if available). - t
The text to be traced (first parameter of the trace call). - u
Current user. - v
The value to be traced (second parameter of the trace call).
Creating a Form
Forms can be used in the context in which they are defined or referenced. To make forms generally available for Teamrooms (but not for app rooms), use a form and category collection in “Customizing”. Otherwise, forms can be stored in app configurations (“Forms and Categories” widget), in app rooms (“Templates and Presettings” action > “Forms and Categories” widget) or in Teamrooms (“Templates and Presettings” action > “Forms and Categories” widget).
To create a form, proceed as follows:
- Navigate in the “Forms and Categories” widget in the desired context.
- Click the “Create Form” action.
- Define the initial data of the form and click “Next”.
- Enter a multilingual name.
- Define a base form, if you want to take over tabs and fields of another form.
Note: The base form property can only be changed when the form is not released for usage.
Template categories (component objects) can also be used as base forms. When template categories of installed software components change, the forms based on them are marked as “Changed After Release”. These forms must be re-released to apply the changes. - Define the incoming category for registration, if you want to register objects based on the form in a specific way.
Note: When using the “Category for Generic Registration With Form”, only the user-defined form is displayed without default tabs during registration. - Define the base class to specify which objects the form is basically suitable for. If the form is used directly as a template, the template will have the corresponding object class.
- Object With User Data
Can be used for base objects, objects with object list and documents. - Document With User Data
Can be used for documents.
Note: If the form is used directly as a template, a content (“Content” tab) can be saved. - Container With User Data
Can be used for objects with object list.
Note: You can additionally specify whether it is a file. For the subordinate objects, the reference to the file is saved. This makes it possible, for example, that the properties of the file are also available as fields in Microsoft Word. In addition, file-typical actions such as “Replace”, “Close”, “Cancel”, “Restore” and “Scan” are automatically available. - Room With User Data
Can be used for rooms.
Note: If the form is used directly as a template, roles analogous to a Teamroom are available.
- If you specify a symbol, it will be displayed instead of the object class symbol for objects that have the form assigned.
- Abstract forms cannot be used directly but serve as base forms.
- 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).
- Arrange the desired fields with drag-and-drop.
- Click “Next“.
- In the context menu of the form, click “Release for Usage”.
Note:
- To use a form, on the one hand the users must be authorized in the corresponding room and on the other hand the form must be released for usage.
- Changes can be released using the “Re-Release” context menu command.
- You can withdraw the release with the “Withdraw Release” context menu command.
- You can export a form as JSON file with the “Download” action. The import takes place via the “Upload” action.
- An existing, currently not released category can be converted into a form (“Tools” > “Convert to Form” context menu command). Thus, no migration is necessary if the category is to be extended by user-defined fields.
Backward Linking
For an input field or an item list of type “Object” (type of content: forms), a backward linking with another input field or item list of type “Object” can be defined. In the case of backward linking, the other object is automatically referenced in the object entered in the field.
Note: The field or fields for backward linking can be located either on one form or on two forms.
To define a backward linking with only one form involved, proceed as follows:
- Create the form.
- Define an input field or an item list of type “Object”.
- Select “Forms” as type of content.
- Define the form you have just created as the default form for objects in the field.
- If the backward linking is to refer to a second field, define a corresponding second field.
- Apply the changes so that you can define the link.
- Edit the first field again. In the Link to Field field, which is now available, you can define the field for backward linking.
- Apply the changes.
To define a backward linking with two forms involved, proceed as follows:
- Create the first form.
- Define an input field or an item list of type “Object”.
- Select “Forms” as type of content.
- Define the form you have just created as the default form for objects in the field.
- Apply the changes.
- Create the second form in the same way as the first form, but select the first form as the default form for objects in the field.
- Edit the field in the first form again.
- Define the second form as the standard form for objects in the field.
- Define the field for the backward linking of the second form in the Link to Field field.
- Apply the changes.
Note: You must release both forms for usage at the same time.
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 |
---|
Currency @installment = cooobj.totalpayment; if (@installment.currvalue) { // switch based on the ID of paymentfrequency switch (cooobj.paymentfrequency) { case 1: @installment /= 12; break; case 2: @installment /= 4; break; case 3: @installment /= 2; break; } } @installment; |
Downloading and Uploading Forms
You can download forms as JSON files and upload them again. The following options are available to you:
Download
- To download a form, execute the “Download” action or context menu command. The form is downloaded as a JSON file. If other forms are referenced in the form (e.g. a basic form), these forms are not included in the JSON file.
- To download several forms at the same time, select them and execute the “Download” context menu command. The forms are downloaded together as JSON files in a ZIP file.
Note: You can also include structuring folders, whereby also all subordinate structuring folders and forms are considered. The structuring is adopted accordingly when uploading. - When downloading, the translations, the incoming category for registration, the symbol, the retention settings and the default background tasks are also considered.
- To be able to download forms, you need at least read rights and you must be authorized by the “Edit Forms and Categories” organizational policy.
Download Fully
- To download a form fully including the dependent forms, execute the “Download Fully” action or the context menu command. The form and the dependent forms are downloaded together as JSON files in a ZIP file. If there are no dependent forms, the form is downloaded as JSON file.
- If you do not have read access to a dependent form or the dependent form is in the wastebasket, a corresponding message is displayed. You can still download the form without the affected dependent forms. Please note, however, that the form will not work as desired if you upload it in another installation in which the dependent forms concerned are not available in the desired version.
Upload
- To upload a form directly to an existing form, execute the “Upload” action or context menu command on the existing form and select a JSON file.
- To upload a form in a list, execute the “Upload” action and select a JSON file.
- If no form with the key in the JSON file exists, a new form is created and stored in the list.
- If a form with the key in the JSON file already exists, it is updated, regardless of whether the form is in the current list. If the form is not in the current list, a shortcut is inserted, too.
- To upload multiple forms in a list, execute the “Upload” action and select a ZIP file with the forms.
- The drag-and-drop import and the import via Ctrl + C and Ctrl + V of forms is not possible. Instead, use the “Upload” action.
- When uploading, you can decide whether the incoming category for registration, the retention settings and the default background tasks should also be considered. If so, the settings (including empty values) of the JSON file are applied. If not, the settings will not be applied and the currently existing settings will be retained when updating.
- If you upload several forms in a ZIP file, you will first receive an overview of all the forms contained. Deselect the forms that you do not want to upload.
- Create Selected Forms
Shows the forms that can be newly created. - Update Selected Forms
Shows existing forms that can be updated. - Non-Updatable Forms
Shows the forms that you cannot update due to the lack of change rights or because the forms are in the wastebasket.
If you select the Create Non-Updatable Forms With a New Key option, new forms are created for existing forms to which you have no rights or which are in the wastebasket.
It is recommended that you do not continue and first request the rights to the listed forms or restore them from the wastebasket.
- A check of the uploaded forms is carried out and the result is displayed in an overview.
Attention: It is strongly advised not to continue with errors. If you continue, you must fix the problems manually before you release the forms for usage. Otherwise you may risk losing data. - The errors are stored on the “Advanced” tab in the “Import Errors” field of the form for traceability.
Keys
Forms that were created before the 2025 March Release and have not been edited or downloaded since then do not have a key for unique identification. This also applies to JSON files that were downloaded before the 2025 March Release.
The keys can be found on the “General” tab of the forms and form elements.
The keys are essential for identifying the forms and form elements and prevent potential errors and data loss. The following procedure is therefore strongly recommended:
- If you have JSON files without keys (downloaded before the 2025 March Release), replace them by re-downloading the forms from the production environment.
Note: JSON files without keys can still be uploaded, but correct identification of the fields when updating forms cannot be guaranteed (may result in data loss). - If you are using a test system for form creation, make sure that it has at least the 2025 March Release.
- If you have developed forms in a test system, discard them. Download the forms from the production system and upload them to the test system. This creates a unique link between the forms. You can then further develop the forms in the test system and upload and update them in the production system.
Note: If the forms from a test system have never been transferred to the production system, you can download them and upload them to the production system. This also creates a unique link between the forms. - Alternatively, a form from a production system can be linked to an existing form in a test system by executing the “Upload (Migration)” context menu command once (only available in test systems). Any existing keys for the form in the test system will be ignored and the keys from the JSON file will be adopted. An attempt will be made to update existing fields, but correct identification cannot be guaranteed (may result in data loss). Therefore, use the method described in the previous point whenever possible.
Common Error Messages
- Field "<field name>" ("<property>"): The object with the key "<ID>" could not be found.
The specified user-defined field references an object in the specified property that does not exist in the system. If you continue, you will lose the entry for the non-existent object. - The form "<form name>" with the key "<ID>" is replaced by the form "<form name>" with the key "<ID>".
You are trying to upload a form directly into an existing form, but the forms do not match. Make sure that you select the JSON file that belongs to the form. - The key "<ID>" is already used for <object type> "<object name>" (<Fabasoft Cloud ID>). A new key is generated.
An object with the specified key already exists in another form. A new key is generated to ensure that the keys are unique. You lose the connection to the original object. - The backlink between the fields “<field name>" and “<field name>” has been removed. The property will be cleared.
The backlink has been changed and cannot be corrected in one step. You have to define the backlink manually.
Note: If the form was already released, you must first release the form without backlink changes. Subsequently, you can define the desired backlink manually and release the form again. - The key “<ID>” for the field “<field name>” is ignored because the uploaded form itself has no key.
The problem only occurs if the JSON file has been modified. If no key is defined for the form itself, all other keys are ignored. - The field “<field name>” has no key and is therefore ignored.
The problem only occurs if the JSON file has been modified. If a key is defined in the form itself, all other form elements are also identified by a key. Form elements without a key are ignored.
Metadata of a Form
You can also make the following settings in the properties of a form.
“Advanced” tab
- Available Processing States
You can define processing states that can be selected in the Processing State standard field. - Name Build Configuration
You can specify a name build for the names of objects based on the form. - Prepare Commit Configuration
You can define an app.ducx expression that is executed as part of the prepare commit. - Applicable for
You can specify the object classes for which the form can be used.
“Retention” tab
You can specify whether objects based on the form are retention worthy. This tab displays the Category (Draft) retention properties. When the form is published, the settings are applied to the Category (Published).
“Translations” tab
For the languages available in the Fabasoft Cloud, you can provide translations for the names and context-sensitive help. For each multilingual name of the form, you will find a corresponding entry.
Form Template
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 (Draft)
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 releasing a form for usage the Template (Published) is generated from the Template (Draft).
Form Category
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
- Defining the registration behavior
- Defining the applicability
- Defining retention worthiness
- Defining background tasks
- Defining permissions
Note: The settings of the Category (Draft) are applied to the Category (Published) when the form is published.
Adding a Form to an Object
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 templates.
To add a form to an object, proceed as follows:
- Navigate in the desired object.
- Click the “Properties” action.
- In the Category field (typically on the “General” tab), select the desired category. The category name corresponds to the form name.
- Click “Next”.
The form is displayed in the properties of the object. When you define the object as a template, the form is available with each newly created object that is based on the template.
Further Use Cases
A description of the further use cases of a form category can be found in chapter “Categories”.
Defining and Using a Compound Type
Forms can also be used to define compound types, which in turn can be used in other forms as types for input fields or element lists.
Defining a Compound Type
To define a compound type, proceed as follows:
- Navigate in the desired Teamroom.
- Open the context menu in an empty part of the content area and click “New”.
- In the “All” category, select the “Form” entry.
- Define the initial data of the form and click “Next”.
- Enter a multilingual name.
- Define “Compound Type” as base class.
- Arrange the desired fields with drag-and-drop.
Note: Compared to a standard form, the selectable fields and settings are reduced accordingly. - Click “Next”.
Note:
- The following additional settings can be made on the "Advanced" tab in the form properties:
- Key for Unique Lists
Defines the properties that are used as keys for unique aggregate lists. - Key for Sorting Lists
Defines the properties that are used as keys for sorting aggregate lists. - Simple View of Properties
Defines the properties that are displayed in the simple representation of an aggregate list (for example, in the property editor).
- The form is now available as a draft. Publish the form for general use.
Using a Compound Type
To use the compound type, proceed as follows:
- Create a new form or open an existing form.
- Define an input field or an element list and select “Compound Type” as type.
- Select "Forms" as the type of content.
- In the Compound Type User Form field, select the previously defined type.
- In the Compound Type Display Mode field, select “Standard” or “Chart”. If you choose “Standard”, the field values of the aggregate are displayed. If you choose “Chart”, a Highchart diagram based on the aggregate data is displayed. However, the aggregate must have a certain structure according to the diagram type. The chart type (line chart by default) is defined on the “Display” tab in the Expression for Calculating the Control Options field.
Example: dictionary({ chart: { type: "bar" } });
For more information see:
https://api.highcharts.com/highcharts/: new window - Click "Next" twice to complete the editing.
Categories
Categories can be assigned to objects (“General” tab) and thus influence the behavior of the objects.
Categories can be used for the following use cases:
- Defining the registration behavior
- Defining default follow-ups
- Defining the applicability
- Defining retention worthiness
- Defining background tasks
- Defining permissions
User-defined categories can be used in the context in which they are defined or referenced. To make categories generally available for Teamrooms (but not for app rooms), use a form and category collection in “Customizing”. Otherwise, categories can be stored in app configurations (“Forms and Categories” widget), in app rooms (“Templates and Presettings” action > “Forms and Categories” widget) or in Teamrooms (“Templates and Presettings” action > “Forms and Categories” widget).
The “Change Assignment” context menu command can be used to change the context of the category.
Note: You can only create, edit and release forms and categories if you are authorized in the Edit Forms and Categories organizational policy. Explicit authorization is required as app.ducx expressions can be created in the context of forms and categories.
Defining the Registration Behavior
By default, the “Register as” context menu command provides all possible registration targets. If the registration target is well-known, it can be restricted to improve the usability (Incoming Category for Registration field).
Defining Default Follow-Ups
To receive a reminder at a specific time, follow-ups can be used (Default Follow-Ups field). You can find more information on follow-ups in chapter “Follow-Ups”.
Defining the Applicability
Not every category make sense for every object class. Thus, the object classes for which the categories are allowed can be restricted (Applicable for field). In addition, if you want to use special base dates for follow-ups or retention periods a restriction to the object classes that provide the desired properties is needed.
If you want to restrict a BPMN process to a category and use activities that are allowed only for a certain object class, you can define the category accordingly (only the corresponding object class must be entered).
Defining Retention Worthiness
Compliance rules may enforce that objects must not be deleted for a defined time period (“Retention” tab).
In the properties of the category, on the “Retention” tab you can define whether objects with this category are retention worthy. In addition, define a Retention Period and a Base Date for the Beginning of the Retention Period. The calculation of the concrete retention period is carried out via a background task, which must be defined on the “Background Tasks” tab.
Note: Alternatively, you can also use the “Create/Edit Background Task” button on the “Retention” tab.
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 the Beginning of the Retention Period as Base Date for the 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”.
Defining Background Tasks
Background tasks allow you to perform actions at a specific time (“Background Tasks” tab).
More information can be found in chapter “Background Tasks”.
Defining Permissions
In general, the defined team can access the Teamroom and its contents. Access to individual objects can also be granted via a category (“Permissions” tab).
Note: In order that the access rights granted via categories are evaluated, the entry “Extended by category” or “Extended by category and workflow” must be selected in the Access Protection field of the Teamroom.
Background Tasks
For categories, background tasks can be stored that execute an action at a definable point in time.
Actions
Possible actions (extendable by apps):
- Determine Retention Period Based on the Category
- Determine Retention Period Based on the Category and Close (File and Documents)
- Execute Expression (App: Forms)
Only available if the user is allowed to create user-defined forms. - Delete Automatically
- Anonymize Object
By default, the following data is removed (for special objects, such as support requests or tickets, additional fields are considered):- History
- Remarks
- References (referenced objects are deleted if the object is the origin, otherwise objects are removed)
- Processes (the processes must be completed, otherwise the background task will fail)
- Versions
- Start Process (App: Workflow)
Note: The background tasks of objects are displayed on the “Background Tasks” tab. Whether background tasks that have already been processed are displayed depends on the action. You can override the default setting of the action using the Remove Processed Entries From the List of Background Tasks field.
Point in Time
The action can be executed at an explicit time or at a time based on a base date. Optionally, the execution date can be redefined if the base date is changed.
Repetition
It is also possible to repeat background tasks. The following cases can be distinguished.
Explicit date or date is not recalculated when the base date is changed
You can define a repetition rule that is applied starting with the execution time.
- Unit
Defines the unit of the interval (e.g. day or month). - Interval
Defines the interval between the repetitions (number). - Repeat Until
Defines the end time of the repetitions (infinite, explicit date, date value of a property).
Date is recalculated when the base date is changed
The background task is rescheduled after the selected action is executed and the base date is changed. Only Repeat Until can be defined as a repetition rule.
Suspend Background Task When Deleting
You can define whether the background task is automatically suspended when the affected object is deleted or canceled and again activated when the object is restored.
Inbox
In an inbox, rules for the processing of incoming objects can be defined. A rule consists of conditions and actions.
You can create an inbox in your personal folder (background context menu > “New” > “Inbox”). As for Teamrooms, you can also set a team for inboxes to define the access rights.
Note: You can only create and edit inbox rules if you are authorized in the Manage Inbox Rules organizational policy. Explicit authorization is required as app.ducx expressions can be created in the context of inbox rules.
To define rules for an inbox, proceed as follows:
- Navigate in the desired inbox.
- Click the “Manage Rules” action.
- 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.
- Open the “Rule” menu and click “New”.
- Enter a name for the rule.
- Set the conditions for the rule. A condition checks whether the selected property contains the defined string (case-insensitive). Specify the string without wildcards. If you select the “Condition as Expression” entry, you can define an app.ducx expression as a condition. All conditions must be met for the rule to run. Do not specify a condition if the rule should always be executed.
- Specify the actions to be executed.
- Execute User Defined Expression
Allows defining an app.ducx expression that will be executed. In the app.ducx expression, you can use cooobj to access the object. You are supported by syntax checking and auto-completion. - 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). - Extract E-Mail Attachments (Asynchronous)
The attachments are extracted from an e-mail and stored as separate objects for further processing in the inbox. The e-mail can be kept, moved or deleted. - 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. - OCR Text Recognition (Asynchronous)
For documents that can be converted to PDF, text recognition can be performed.
Note: Only objects are considered for which no text recognition has been performed since the last content change. - 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. The assignment is performed asynchronously at regular intervals.- Close Document
Defines whether 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. - Continue Process on Object
Defines whether an existing process is to be continued on the target object after assignment. - Continue Process on File of Object
Defines whether an existing process is to be continued on the file of the target object after assignment. - Activities to Be Continued Automatically
If a process is to be continued, it is also possible to define activities that are automatically continued. These activities automatically get the status “Not Executed”. If an activity to be automatically continued currently has the status “Startable” or “Started”, this activity is set to “Not Executed”. Other activities with the same activity definition will not be automatically continued in this case. - Start New Process on Object
Defines whether a new process is to be started on the target object after assignment. For this purpose, you can specify the desired BPMN process. - Start New Process on File of Object
Defines whether a new process is to be started on the file of the target object after assignment. For this purpose, you can specify the desired BPMN process. - Target for Unassignable Documents
For non-assignable objects, you can define a folder as the target.
- Click “Next”.
- 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.
Note:
- The organization of the placed objects must correspond to the organization of the inbox for the rules to be applied.
- To be able to define the rules, you must be authorized in the Manage Inbox Rules organizational policy.
Classifying and Registering
The Fabasoft Cloud in conjunction with Mindbreeze InSpire allows you to automatically classify documents and extract metadata. 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:
- 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.
- 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.
- For the classification value, a category with a corresponding import ID is searched and assigned to the document.
- 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.
Prerequisites
The classification requires a Mindbreeze InSpire service, which can be configured by the organization administrator (for more information, see the administration help).
Using Categories
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 Forms
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.
Inbox
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”).
Workflow
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.
Register
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 Inbox
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, proceed as follows:
- Navigate in the desired Teamroom.
- Open the context menu of an empty part of the content area and click “New”.
- In the “Tools” category, select the “Form Inbox” entry.
- Enter a name and click “Next”.
- In the context menu of the form inbox, click “Properties”.
- 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.
- 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, proceed as follows:
- Create an HTML form on a page of your web site.
- 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
- Define a hidden field named objectclass and specify the Fabasoft Cloud ID or the full 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
- As an alternative to the objectclass field, you can define a hidden field named objecttemplate, in which you store the Fabasoft Cloud ID of an object (e.g. a template) that is to be copied when the HTML form is submitted.
- 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).
- If necessary, define additional fields.
You can specify the following fields in the HTML form (unless otherwise specified, the fields are optional):
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 full 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.
- 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 a duplicate of an object is to be created (objecttemplate), the user "Form Poster Fabasoft Cloud" must also have the right to duplicate the object. If referenced objects are to be accessed (e.g. categories or text modules), the user must also have the necessary access rights for these objects.
- If you assign a category (objcategory) 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.
- If you pass a category (objcategory) with the form data but it is not set check whether the category can be applied to the created object.
Example |
---|
<!-- Replace "form inbox ID" with the value of the ID field of your form inbox and "redirect URL" by a URL of a page that schould be shown after the form was proccessed on the server. --> <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="☠" /> <input type="hidden" name="objectclass" value="COODESK@1.1:Folder" /> <input type="hidden" name="redirect" value="redirect URL" /> <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> |