2019 November Release

RoomPermanent link for this heading

CPActionConditionPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPActionCondition is used to define if an action is allowed for the current inbox.

Syntax

customize CPActionCondition<inboxobjclass, actionobjclass> {
  allowed = expression {...}
}

Description:

  • inboxobjclass
    The customization applies to inboxes of the defined object class.
  • actionobjclass
    The customization applies to actions of the defined object class.
  • allowed
    Defines the expression to evaluate whether the action is allowed for the inbox.

Example

customize CPActionCondition<InboxRoom, RuleAction> {
  allowed = expression {
    true;
  }
}

CPAutoCreateAppConfigurationPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPAutoCreateAppConfiguration defines if an app configuration room should be created automatically for an organization when the app which supplies the app configuration is licensed.

When the app configuration room is created automatically the users returned by the customization point FSCTEAMROOM@1.1001:CPInitalConfigurationUsers will be the initial administrators of the app configuration room. Otherwise these users will get an welcome screen entry to create an app configuration room.

Syntax

customize CPAutoCreateAppConfiguration <objclass> {
  
autocreate = boolean;
}

Description:

  • objclass
    The object’s class.
  • autocreate
    Defines if the room should be created automatically or if a welcome screen event should be displayed.

Example

customize CPAutoCreateAppConfiguration<ScrumCenter> {
  autocreate = false;
}

CPChangeAllocationPermissionPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPChangeAllocationPermission is used to define the access types which are needed on the source room to change the allocation of an object another room. The customization point is evaluated by the action FSCTEAMROOM@1.1001:HasRoomChangeAllocationAccess.

The use cases are described by instances of the object class FSCCONFIG@1.1001:Context.

Syntax

customize CPChangeAllocationPermission<objclass> {
  
requiredpermission = expression {...}
}

Description:

  • objclass
    The object class of the room to which the current object is assigned to.
  • requiredpermission
    Access type required to change the room.

Example

customize CPChangeAllocationPermission<TeamRoom> {
  requiredpermission = expression {

   return #AccTypeChangeSec;

  }

}

CPConvertRoomSourcePropertiesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPConvertRoomSourceProperties is used when an object of the configured object class is converted to another object class to define which object lists should be merged to the target list defined in the FSCTEAMROOM@1.1001:CPConvertRoomTargetProperty customization point.

The customization point is evaluated during the FSCTEAMROOM@1.1001:ConvertRoomAsync use case.

Note: Objects which are not allowed in the target property will be assigned as orphan objects to the room of the target.

Syntax

customize CPConvertRoomSourceProperties<srcclass> {
  sourceattributes = objectlists;
}

Description:

  • srcclass
    The customization applies to objects of the defined object class that will be converted to another object class.
  • sourceattributes
    Defines the object lists (AttributeObjectDef[]) that should be merged to the target list.

Example

customize CPConvertRoomSourceProperties<DAMShelf> {
  sourceattributes = {damschildren, damscontracts}
}

CPConvertRoomTargetPropertyPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPConvertRoomTargetProperty is used when an object is converted to an instance of the configured object class to define the target property for the child objects. The child objects are defined by use of the FSCTEAMROOM@1.1001:CPConvertRoomSourceProperties customization point.

The customization point is evaluated during the FSCTEAMROOM@1.1001:ConvertRoomAsync use case.

Syntax

customize CPConvertRoomTargetProperty<targetclass> {
  targetattribute = objectlist;
  initializeapproom =
boolean;
}

Description:

  • targetclass
    The customization applies to objects of the defined object class to which the object should be converted.
  • targetattribute
    Defines the object list (AttributeObjectDef) that should be the target list.
  • initializeapproom
    If the object is converted to an AppRoom or ExternalArea the application mapped for FSCTEAMROOM@1.1001:InitializeNewAppRoom will be executed after conversion to perform additional settings.

Example

customize CPConvertRoomTargetProperty<DAMShelf> {
  targetattribute = damschildren;
}

CPExpandTeamControlPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPExpandTeamControl is used to evaluate the additional information displayed for an entry when it’s expanded in the team control. The customization can be changed for each object class depending on the room context.

Syntax

customize CPExpandTeamControl<objclass, roomobjclass> {
  expandedentry = expression {...}
  expandableinreducedmode = boolean;
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • roomobjclass
    The object class of the room to which the current object is assigned to.
  • expandedentry
    Defines an expression to get the additional information displayed on expanding an entry. The additional information must be returned as dictionary. The information contained in the dictionary is displayed in the expanded section. Note: If you want to display information for members of expanded groups, it is possible to include a list of sub dictionaries with detailed information  for each group member.
  • expandableinreducedmode
    Defines if entries of this object class are expandable in light dispatcher. In the XML dispatcher each entry is expandable by default.

Example

customize CPExpandTeamControl <User, TeamRoom> {
  expandedentry = expression {
    dictionary retdict = {};
    retdict.SetEntry(#StrEmail.Print(), cooobj.GetHoverText().email);
    retdict.SetEntry(#persorgtxt.Print(), cooobj.GetHoverText().orgtext);
    return retdict;
  }

  expandableinreducedmode = false;

}

customize CPExpandTeamControl <WorkGroup, TeamRoom> {
  expandedentry =
expression {
    
dictionary retdict = {};
    User[] members = cooobj.wgrmembers;

    coouser.Sort(&members, true, #objname);
    
integer idx = 0;

    for (User member : members) {

      if (member && member.HasClass(#User)) {

        dictionary hoverdict = member.GetHoverText();

        dictionary entrydict = {

          value = :>member.GetName(),

          presymbol = #SymbolUser.GetAddress(),

          hover = :>hoverdict.hovertext,

          alignright = true,

          address = :>member.GetAddress()

        };

        idx++;

        string key = "" + string(idx) + ".";

        retdict.SetEntry(key, entrydict);

      }

    }
    return retdict;
  }

  expandableinreducedmode = true;

}

CPExternalAreaClassPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPExternalAreaClass is used to define the object class for the external area of the app room. If no object class is configured, the first external area class of the current app is used. If no customization is done and no external area class is assigned to the current app, the feature is deactivated.

Syntax

customize CPExternalAreaClass<objclass> {
  externalareaclass = objectclass;
}

Description:

  • objclass
    The customization applies to app rooms or app configuration rooms of the defined object class.
  • externalareaclass
    Defines the object class that should be used for the external area.

Example

customize CPExternalAreaClass<DAMConfiguration> {
  externalareaclass = DAMExternalArea;
}

CPGetAppDashboardSettingsPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetAppDashboardSettings is used to define app dashboard settings.

Syntax

customize CPGetAppDashboardSettings<objclass> {
  disableapproomnews = boolean;
}

Description:

  • objclass
    The customization applies to dashboards of the defined object class.
  • disableapproomnews
    If true, the notification for app room news is not enabled automatically.

Example

customize CPGetAppDashboardSettings<ServiceDeskDashboard> {
  disableapproomnews = true;
}

CPGetInboxConfigurationPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetInboxConfiguration is used to define which condition properties and which rule actions are allowed for the inbox room class.

Syntax

customize CPGetInboxConfiguration<objclass> {
  allowedactions = objectclasses;
  allowedattrdef = attributedefinitions;
}

Description:

  • objclass
    The customization applies to inbox rooms of the defined object class.
  • allowedactions
    Defines which rule actions are allowed. If empty, all rule actions will be available.
  • allowedattredef
    Defines which properties are allowed for conditions.

Example

customize CPGetInboxConfiguration<InboxRoom> {
  allowedattrdef = [#objname, #objsubject, #contextension];
}

CPGetInitialConfigurationUsersPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetInitalConfigurationUsers defines the users which are used as initial administrators for automatically created app configuration rooms or for the welcome screen event which requests to create an app configuration room.

Syntax

customize CPGetInitialConfigurationUsers <objclass > {
  
configusers = expression {...}
}

Description:

  • objclass
    The object class of the object’s current room
  • group
    The organization for which the app configuration room should be created is available in the local scope of the customization point
  • configusers
    The users which should get request.

Example

customize CPGetInitialConfigurationUsers<AppConfigurationRoom> {

  configusers  = expression {
    return coouser.ExpandGroupMembers(group.objowner +
                                      group.objsecsecurity +
                                      group.objsecchange);
  }
}

CPGetRoomPublishStatesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetRoomPublishStates defines the list of available publish states for a FSCTEAMROOM@1.1001:Room class.

Syntax

customize CPGetRoomPublishStates<objclass> {
  
publishstates = expression {…}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • publishstates
    Defines an expression to get the list of available publish states. The return value is an object list of type FSCTEAMROOM@1.1001:RoomPublishState[].
  • default
    Defines an expression to get the default publish state when a new room is created.

Example

customize CPGetRoomPublishStates<TeamRoom> {
  publishstates = expression {

   return [#TeamRoomTeamOnly, #TeamRoomPublicLookup, #TeamRoomPublicClearance];

  }

  default = expression {

    return #TeamRoomTeamOnly;

  }

}

CPGetRoomRolesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetRoomRoles defines the list of available room roles and the default role for new FSCTEAMROOM@1.1001:Room members.

The customization point FSCTEAMROOM@1.1001:CPGetRoomRoles is evaluated on several points of the FSCTEAMROOM@1.1001:Room business logic, e.g. on calculating the room roles to be shown in the team control.

The roles list is ordered by room role priority. The first list entry is the role with highest priority, while the last list entry is the role with the lowest priority.

Syntax

customize CPGetRoomRoles<objclass> {
  
roles = expression {…}
  
default = expression {…}
  multipleroles = boolean
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • roles
    Defines an expression to get the list of available room roles. The return value is an object list of type FSCTEAMROOM@1.1001:RoomRole[].
  • default
    Defines an expression to get the default role for adding new team members. The return value is an object pointer to a FSCTEAMROOM@1.1001:RoomRole object.
  • multipleroles
    Defines if a team member can have multiple room roles at the same time. Default value is false.

Example

customize CPGetRoomRoles<TeamRoom> {
  roles = expression {

   return [#RoleTeamRoomOwner, #RoleTeamRoomFullControl,
            #RoleTeamRoomCanChange, #RoleTeamRoomReadOnly];

  }

  default = expression {

    return #RoleTeamRoomCanChange;

  }

  multipleroles = false;

}

CPGetRoomSecurityPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetRoomSecurity is used to evaluate the security context for FSCTEAMROOM@1.1001:Room child objects depending on a particular FSCTEAMROOM@1.1001:Room use case.

The use cases are described by instances of the object class FSCCONFIG@1.1001:Context.

Currently these context objects are used: FSCTEAMROOM@1.1001:CtxApplyRoom, FSCTEAMROOM@1.1001:CtxChangePublishState, FSCTEAMROOM@1.1001:CtxMoveToWastebasket as well as FSCTEAMROOM@1.1001:CtxRestoreFromWastebasket.

The customization point FSCTEAMROOM@1.1001:CPGetRoomSecurity is evaluated if a use case according to one of these contexts is executed.

Syntax

customize CPGetRoomSecurity<objclass, roomobjclass, usecase, room> {
  
seccontext = expression {...}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • roomobjclass
    The object class of the room to which the current object is assigned to.
  • usecase
    Defines the use case for security context evaluation
  • room
    The room of the current object.
  • seccontext
    Defines an expression to get the security context. A security context is an aggregate of type FSCFOLIO@1.1001:SecurityContext.

Example

customize CPGetRoomSecurity <Object, TeamRoom, CtxApplyRoom> {
  roles = expression {

    SecurityContext ctx = null;

    if (room && room.HasClass(#Room)) {

      Object aclref = room.objaclref;

      ctx = {

        objaccdef : room.objaccdef,

        objaclobj : room.objaclobj),

        objaclref = :>aclref ? :>room : null

      };

    }

   return ctx;

  }

}

CPGetTargetRoomClassesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGetTargetRoomClasses defines if the room assignment of an object, which is referenced by more than one room, can be changed.

Syntax

customize CPGetTargetRoomClasses <Sourceclass, Objclass, SOFTWARECOMPONENT> {
  
targetclasses = Targetroom
}

Description:

  • sourceroomclass
    The object class of the object’s current room
  • objclass
    The object’s class
  • component
    Reference of the customizing software component
  • targetclasses
    Possible object classes of target rooms.

Example

customize CPGetTargetRoomClasses<TeamRoom, CompoundObject , FSCTEAMROOM@1.1001> {

  targetclasses = TeamRoom;

}

customize CPGetTargetRoomClasses<TeamRoom, ContentObject, FSCSCRUM@1.1001> {

  targetclasses = {RootObject, Folder}

}

CPGETWBContainersPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPGETWBContainers is used to define which object classes should be considered as containers when calling FSCTEAMROOM@1.1001:GetOriginalChildren.

Syntax

customize CPGetWBContainers< sourceroomclass> {
  
containerclasses = expression {...}
}

Description:

  • objclass
    The customization applies to waste baskets of the defined object class.
  • containerclasses
    Defines the object classes that should be considered as containers when calculating the original children of a room

Example

customize CPGetWBContainers <PersonnelFileShelf> {
  containerclasses = expression { return [#PersonnelFile, #ContentObject]; }
}

CPIsValidImportTargetPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPIsValidImportTarget is used define if an object is an valid import target and is currently evaluated when uploading a document/e-mail using Microsoft Office (FSCFOLIOGUI@1.1001:TPImportOfficeDocument).

Syntax

customize CPIsValidImportTarget<srcclass> {
  isvalidtarget = expression {...}
}

Description:

  • srcclass
    The customization applies to objects of the defined object class.
  • isvalidtarget
    Defines whether the object can be selected as import target.

Example

customize CPIsValidImportTarget<CompoundObject> {
  isvalidtarget = expression { true };
}

CPNotifiedRoomRolesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPNotifiedRoomRoles defines the list of room roles which should be notified by email in some use cases.

The customization point FSCTEAMROOM@1.1001:CPNotifiedRoomRoles for example is evaluated when an organization member is excluded from an cloud organization and the member currently participates in the current room.

The roles can also include room roles from the app configuration.

Syntax

customize CPNotifiedRoomRoles<objclass, usecase> {
  
roles = expression {…}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • usecase
    The usecase for which the notified room roles should be evaluated.
  • roles
    Defines an expression to get the list of room roles which should be notified by email..

Example

customize CPNotifiedRoomRoles<Room> {
  roles = expression {

   return cooobj.GetRoomRoles(true);

  }

}

customize CPNotifiedRoomRoles<ScrumCenter> {
  roles = expression {

   return [#RoleScrumAdministrator];

  }

}

customize CPNotifiedRoomRoles<ScrumProject> {
  roles = expression {

   return [#RoleScrumAdministrator];

  }

}

CPPublicConfigurationPropertiesPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPPublicConfigurationProperties defines a list of properties which can be read from the app room or app configuration room without access permissions to the app room or app configuration room.

Syntax

customize CPPublicConfigurationProperties <sourcroomeclass> {
  attributes
= attributes
}

Description:

  • sourceroomclass
    The object class of the object’s current room
  • attributes
    The configuration properties of the app configuration or app room which are allowed to read without access permissions

Example

customize CPPublicConfigurationProperties<PersonnelFileShelf> {

  attributes = {

    pfsimportmasterfiledata,

    pfswatermarktext,

    pfswatermarkimage

  }

}

customize CPGetTargetRoomClasses<TeamRoom, ContentObject, FSCSCRUM@1.1001> {

  targetclasses = {RootObject, Folder}

}

CPRestrictPropertyActionComponentsPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPRestrictPropertyActionComponents is used to restrict the properties which can be set by a PropertyAction.

Syntax

customize CPRestrictPropertyActionComponents<objclass> {
  restrictedcomponents = expression {...}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • restrictedcomponents
    Properties of the defined software components cannot be set by a PropertyAction.

Example

customize CPRestrictPropertyActionComponents<Object> {
  restrictedcomponents = [
    FSCCONNECT@1.1001,
    FSCPDFGEN@1.1001
  ];

}

CPSendRoomInvitationPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPSendRoomInvitation defines if invitation e-mails for an FSCTEAMROOM@1.1001:Room should be sent.

Syntax

customize CPSendRoomInvitation<objclass> {
  expr
= expression {...}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • expr
    Defines an expression to get a Boolean if the invitation e-mail should be sent.

Example

customize CPSendRoomInvitation<TeamRoom> {
  expr = expression {

   return true;

  }

}

CPTeamControlPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPTeamControl is used to evaluate texts and symbols displayed in the team control. The team control is displayed for all room classes, so the configuration can be changed for each class derived from FSCTEAMROOM@1.1001:Room. A default configuration for the class FSCTEAMROOM@1.1001:Room is already supplied.

Syntax

customize CPTeamControl<objclass> {
  
placeholdertext = expression {...}
  noresulttext = expression {...}
  createtext = expression {...}
  createhovertext = expression {...}
  createsymbol = expression {...}
  createapplication = expression {...}
  excludedattrdefs = expression {...}
  disablecreate = expression {...}
}

Description:

  • objclass
    The customization applies to objects of the defined object class.
  • placeholdertext
    Defines an expression to get the string that will be displayed as placeholder in the select box to find an add new team members.
  • noresulttext
    Defines an expression to get the string that will be displayed in the select box when no contacts matching the search criteria were found..
  • createtext
    Defines an expression to get the string that will be displayed in the select box to create a new contact.
  • createhovertext
    Defines an expression to get the string that will be show as hover text of the create button in the xml dispatcher.
  • createsymbol
    Defines an expression to get the symbol  that will be displayed beside the create text. In the xml dispatcher it is used as symbol of the create button too.
  • createapplication
    Defines an expression to get the application  that will executed when a new contact should be created..
  • excludedattrdefs
    Defines an expression to get a list of attribute definitions which are not loaded for each contact displayed in the team control to improve the display performance. Especially attributes with many values which are not relevant for the displayed information should be excluded.
  • disablecreate
    Defines an expression to decide if the creation of new objects is not allowed in the team control.

Example

customize CPTeamControl <TeamRoom> {
  placeholdertext = expression { return #StrSearchEmailOrOrganisation; }

  noresulttext = expression { return #StrEnterValidEmail; }

  createtext = expression { return #StrInviteNewContact; }

createhovertext = expression { return #AccordionCreateStr; }

createsymbol = expression { return #SymbolUserNew; }

  createapplication = expression { return #RoomCreateSimpleListContact; }

  excludedattrdefs = { useracceptedusers, userrefusedusers, userknownusers }
  disablecreate = expression { return false; }
}

CPUseGlobalAppDashboardPermanent link for this heading

The customization point FSCTEAMROOM@1.1001:CPUseGlobalAppDashboard defines if one global app dashboard should be created for each user. Otherwise a separate app dashboard is created for each app configuration room the user was added to. By default an app dashboard is created for each app configuration room instance.

Syntax

customize CPUseGlobalAppDashboard <objclass > {
  
useglobal = boolean
  hideappconfiguration = boolean
}

Description:

  • objclass
    The object class of the app configuration room for which an app dashboard should be created
  • useglobal
    The return value defines if a global or separate app dashboards should be created
  • hideappconfiguration
    The app configuration room is not shared to the desk of the app administrator when he receives the license. By default the app configuration room is shared to the desk.

Example

customize CPUseGlobalAppDashboard<AppConfigurationRoom> {

  useglobal = false;
  hideappconfiguration = false;

}

customize CPUseGlobalAppDashboard<ScrumCenter> {

  useglobal = true;
  hideappconfiguration = true;

}