UI CustomizationThe Anyplan user interface can be customized in many ways. It can be extended with additional modules, entities or attributes, it can be modified through configuration and also through the use of claims to hide or disabled functionality.

Some examples are listed below:

Gantt Grid ColumnsThe Anyplan data model can be extended by solution developers using attributes or new entities. These can then be displayed in the Gantt data grid as additional columns. Developers can choose to include these in the Anyplan filtering mechanism. A UIFactory class is designed to manage the transformation of domain specific objects to ViewModels and provides the means for third party developers to extend it, such as adding new columns that are available when a plan is loaded in Anyplan. These additional columns are defined in the Gantt DataGrid control and mapped to specific custom properties that have been added to the domain and its corresponding ViewModel.

Property panels

Anyplan uses a variety of property panels to provide an interface to many types of object in the network (projects, plans, activities, links, resources and calendars). All property panels can be extended by solution developers using the available frameworks and APIs. The property panels are designed to be activated by user selection and displayed in a modeless floating panel that can be dragged around by the user.

Property Panels are an essential component of Anyplan® and a standard mechanism that is used to view and edit details about the active target object. Property Panels are built on the Model-View-ViewModel pattern where the business logic and presentation is separated, harnessing the power of DataBinding between the View and the ViewModel.

Custom menusSolution developers can provide custom menus to control Anyplan implementation and extensions.

Custom BrandingSolution developers can customize the look and feel and branding of Anyplan including splash screens, logos and colors.

Claims for setting UI attributesAnyplan uses the Microsoft Identity Foundation (MIF) to customize the user interface. Versions of Anyplan can be created that set regions for the UI to one of 3 states:

Enabled: read/write

Disabled: read-only

Hidden: not visible

This allows both us and solution developers to create product versions suited to different audiences. The claims are retrieved from the database when the client starts up. We can provide customers and partners with a tool to administer and publish the claims.

UI Configuration SettingsMany aspects of the UI can be configured including the standard footers and headers used in printing plans and charts. A strings XML file is used for most UI labels and messages and any of these can be overridden by custom strings or translated versions.

Custom SearchThe Anyplan Search API has been created with the intention that third party developers can utilize the application’s global search field in their own controls and views.

Custom Business RulesAnyplan comes with default settings for a wide range of business rules. Rules are created using Injected Business Logic which can be overwritten for different product versions or for specific customer or partner implementations. For example, initialization can load organizational defaults. Some examples are follows:

Unique Name checks e.g. for public plans and activities;

Baseline activities and resource usages;

Activity creation such as rules for when child activities cannot be created;

Default settings for new plans;

Resource creation;

Partial scheduling rules;

Etc.

Planning & Scheduling Customization

Anyplan’s Scheduling Engine comes with a variety of scheduling algorithms. The engine has been developed as an independent module and can be replaced by one of the VAR/SI’s own design.

Customizing Portfolio Reports

Anyplan uses a query selection mechanism for creating Portfolio queries. The selection mechanism can be extended to include any custom entities.

Portfolios views are very similar to views of live plans (Gantt and other chart views) and UI customization is therefore identical.