2017 October Release

SearchPermanent link for this heading

CPQuickSearchActionPermanent link for this heading

The customization point CPQuickSearchAction allows overriding the action to be called to perform the quick search in an object pointer property.

Syntax

customize CPQuickSearchAction<cfgobjclass, cfgview> {
  cfgqsaction = ...;
}


Description:

  • cfgobjclass
    The customization applies to objects of the defined object class.
  • cfgview
    The property, to which the customization applies when a quick search is executed.
  • cfgqsaction
    Action to be called as quick search action.

The following example defines SearchUser as action for the quick search in the owner property.

Example

customize CPQuickSearchAction<Object, objowner> {
  cpqsaction = SearchUser;
}

CPQuickSearchAppearancePermanent link for this heading

The customization point CPQuickSearchAppearance defines for which object class in which object pointer property the enhanced or simple appearance is used.

Syntax

customize CPQuickSearchAppearance<cfgobjclass, cfgattrdefopt> {
  appearance = ...;
}


Description:

  • cfgobjclass
    The customization applies to objects of the defined object class.
  • cfgattrdefopt
    The property, to which the customization applies when a quick search is executed.
  • appearance
    Defines whether the results of the quick search in the property property are displayed “Enhanced” or “Simple”.

The following example defines the enhanced appearance for all objects, which are searched in the Owner (COOSYSTEM@1.1:objowner) property.

Example

customize CPQuickSearchAppearance<Object, objowner> {
  appearance = QS_ENHANCED;
}

CPQuickSearchSuffixPermanent link for this heading

The customization point CPQuickSearchSuffix defines the properties to be displayed in the enhanced appearance. A search result of the object class cfgobjclass is displayed in the cfgattrdefopt list according to the additionaldescription and the cfgmultilinedescription expression. If cfgattrdefopt does not contain a value, the setting applies to all lists.

For the “Simple” appearance the result of the cfgmlnamesuffix expression is used. For the “Enhanced” appearance the result of the cfgmultilinedescription expression is used. If this expression is not defined, the cfgmlnamesuffix expression is used.

Syntax

customize CPQuickSearchSuffix<cfgobjclass, cfgattrdefopt > {
  cfgmlnamesuffix = expression {...}
  cfgmultilinedescription = expression {...}
}


Description:

  • cfgobjclass
    The customization applies to objects of the defined object class.
  • cfgattrdefopt
    Optionally the customization applies to this property.
  • cfgmlnamesuffix
    This result can only be displayed in one line and is displayed after the object name.
  • cfgmultilinedescription
    This Fabasoft app.ducx expression defines the additional properties to be displayed. The result can also be displayed in multiple lines. For displaying a multiline result \n is used for starting a new line.

The following example defines that for search results of the User (COOSYSTEM@1.1:User) object class also the default role is displayed.

Example

customize CPQuickSearchSuffix<User> {
   cfgmultilinedescription = expression {
     UserRoleList[] @defroles = cooobj.userroles[COOSYSTEM@1.1:default];
     string @rolename = "";
     if (count(@defroles) == 0) {
       @defroles = cooobj.userroles;
     }
     if (count(@defroles) > 0) {
       UserRoleList @defrole = @defroles[0];
       if (@defrole != null) {
         @rolename = @defrole.userrolepos.objname;
         @rolename += " "+@defrole.userrolegroup.grshortname;
       }
     }
     [cooobj.objname, @rolename];
   }
}

CPMindbreezeQueryConstraintsPermanent link for this heading

The customization point CPMindbreezeQueryConstraints provides a set of Mindbreeze constraints, which are used to restrict the search results of the Mindbreeze query to particular scopes.

Syntax

customize CPMindbreezeQueryConstraints<objclass, roomclass, constrainttype> {
  queryconstraintdicts = expression {...};
}


Description:

  • objclass
    The customization applies to objects of the defined object class.
  • roomclass
    The customization applies to objects of the defined room type.
  • constrainttype
    Input Parameter to identify the context. It is an instance of the type FSCVENV@1.1001:MindbreezeQueryConstraint.
    FSCVENV@1.1001:MQC_GENERAL for example is used to calculate the default query constraints used in the default search of the browser client.
  • queryconstraintdicts
    Defines a list of dictionaries that describe a search scope. The dictionaries consist of the following entries:
    • id
      The id of the query scope.
    • name
      The name of the query scope. This text will be shown in the autocomplete dropdown list of the search box.
    • defaulttab
      true if this scope should be the default scope, i.e. the scope that is used if the user does not choose particular scope from the autocomplete dropdown list of the search box.
    • constraint
      A Mindbreeze query constraint string that restricts the search to this scope.

The following example defines two scopes, one without a restriction and one within the current group.

Example

app.ducx Customization Language

customize CPMindbreezeQueryContraint<Folder, null, null> {
  queryconstraintdicts = expression {
     dictionary[] @constraints;
     if (cooobj.objowngroup) {
       Object @group = cooobj.objowngroup;
      @constraints = [
         {
           id: "group",
           name: "In Group \"" + @group.objname + "\"",
           defaulttab: true,
           constraint: "objowngroup/annotation/mes:key:" + @group.objaddress
         },
         {
           id: "all",
           name: "Everywhere",
           defaulttab: false,
           constraint: "ALL"
         }
       ];
     }
     return @constraints;
   }
}