Table of Contents

Altus troubleshooting

Unmanaged Solution Layer prevents Quick Create Form from being displayed

This issue has presented itself in some environments in relation to the Optimisation Plan table, but may also occur in other tables.

The cause of the issue is unknown, but on some occasions, an empty unmanaged solution layer is applied to tables unnecessarily during the Solution upgrade process. This layer then prevents subsequent changes to the table (such as turning on the Quick Create form) from being applied in the environment when updated via a later Solution upgrade.

If this problem is experienced, the following steps can be taken to resolve the issue:

  1. Navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation.
  2. Select the Solution that contains the table that is experiencing the issue with (e.g. for Optimisation Plan table, select the Atsumeru solution).
  3. Select Tables from the left nav.
  4. Locate and select the table that is experiencing the issue (e.g. Optimisation Plan).
  5. From the ribbon, select Advanced > See solution layers.
  6. If an unmanaged solution layer is present, select the layer and then select Remove from the ribbon. This will remove the unmanaged solution layer from the table and restore the table definition to its intended state.

Power BI - Fixing Black KPI Icons in Reports

Due to a Microsoft update, the KPIs on the Projects report - Project page were showing all black, as shown below:

Screenshot of black KPI icons on the Project page

The reports affected are:

  • Project Insights - Projects page
  • Portfolio Insights - Program Overview page

Other KPI icons on all other pages of the Project report may work fine. The difference between this page and the others is the way the conditional formatting rules were set. To fix the issue, the rules for conditional formatting for each of those fields need to be updated to Icon only.

The steps below will fix the issue for both reports:

  1. Navigate to the Project Insights report and go to the Projects page.
  2. Open the Details visual and select one of the KPI Icons fields on the right.
  3. Select the drop-down arrow at the end of the field name and select Conditional Formatting then Icons as shown below:
    Screenshot of selecting the Details visual
  4. Change the Icon layout to Icon only:
    Screenshot of changing the Icon layout to Icon only
  5. Repeat these steps to update all the KPI icons on the page.
  6. Save and publish the report.

Removing Option Set Values

In some cases it may be desirable to remove Option Set values from the base Altus solution. When doing this in a Development environment you can make the changes in an unmanaged solution, package the solution and deploy this to a Production environment but find that the changes have not been applied to the target environment.

This is unfortunately a deficiency in the Microsoft Power Platform:

Option set merge behaviour

In order to implement the deletion, an unmanaged layer will need to be applied in Production. This goes against best practice but is not an Altus specific limitation. Customers are encouraged to log this as a support issue from their M365 tenancy referring to Support Case #2406110030004894 to let Microsoft know this situation is unsatisfactory.

Additionally please consider voting on this idea to gain traction with Microsoft -> VOTE: Choice field should be top-win instead of merge behavior

Power Automate Flows need Associated Apps applied

Microsoft is releasing a change on the 30th May 2024, that means that all Power Automate Flows will need to have an Associated Apps value or they will not run. This applies to all Power Automate Flows, not just those deployed as part of the Altus product.

The Associated Apps section can be found in the bottom-right hand corner of the Flow detail screen:

This shows the location of the Associated App section in dynamics flows

Make sure all active Flows are associated with the Altus app.

Config layering issue

In certain customisation scenarios the configuration layering order can become undesirable.

In order to rectify this issue, please follow these instructions.

Refreshing or automating the import Timesheet Actuals into Finance

It is possible to completely refresh the project financials from timesheets and even do this on a regular basis:

See Altus Community: Timesheet to Finance Sync Flow

Dynamics team creation failure

Microsoft has made a recent change that requires some permissions changes to allow Dynamics teams creation. The issue usually surfaces in the following error message when you attempt to associate an Office 365 Group with a program or portfolio.

Error message showing that you do not have permissions to create the team in dynamics

Additional permissions are required in order for Dynamics team creation to succeed and are working on rolling out a fix for this in a future update. In the meantime, the following workaround can be implemented if required until the update reaches your environment:

  1. In an unmanaged solution in your environment (eg Altus Enhancements) create a new security role

  2. Select the Business Management tab and grant the following permissions to the new security role:

    • Security Role - Read and Assign [Business Unit access]
    • Team - Create, Read, Write, Append, Append To [Business Unit access]

    Screenshot of the business management tab security role team permissions highlighted

  3. Save your new security role

  4. Grant the new Security role to whichever users/teams that you wish to allow to create group association for

  5. Your custom security role can later be deleted from your environment once the update has reached your environment

Tabs and Business Process Flow are not visible on the Project Entity

This error can occur when the New Project Business Process Flow has been either deactivated, deleted or removed from the Altus Model Driven App. An example of this can be seen below.

The project shows only the Details tab, none of the others typically associated with the Major Project Type

To resolve this error, please check the following items and ensure that your environment matches the setup.

  • Check that the New Project Business Process Flow exists and is enabled.
    • The New Project Business Process Flow.
  • Check that the New Project Business Process Flow is still associated to the Altus Model-Driven App
    • Classic
      • Classic UI - New Project Process
    • Modern
      • Modern UI - New Project Process

User cannot access BPF

This error can occur when a user tries to open a project that has a project type associated to a BPF that the user does not have security privileges to access. It will usually result in an error message similar to below:

The principal user error displayed when the user tries to open a project

Principal user (Id=e5ad310b-6bc5-ea11-a812-000d3a6aacc7, type=8, roleCount=5, privilegeCount=941, accessMode=0), is missing prvRead*{your_BPFName}*bpf privilege (Id=0ee551b5-325a-4c08-bfb6-97cb2c3ea7e8) on OTC=10160 for entity '*{your_BPFName}*'. context.Caller=e5ad310b-6bc5-ea11-a812-000d3a6aacc7

If you experience this error please ensure you have followed all configuration steps in reference->adding a workflow.

User in a business unit cannot create Project for the Web project

If you have created a user in a business unit other than the root org business unit, there are some additional steps you need to perform to allow those users to access Project for the Web.

As per Microsoft's documentation, the first step to ensuring access for the business unit user to Project for the Web is to add the Project User and Common Data Service User roles to the team that has been created for your business unit.

However, these steps alone still result in an error "Your session expired. Refresh the page to continue." for that user when they try to create a new Project for the Web project.


Error message displaying 'Your session expired. Refresh the page to continue.'

To ensure business unit users do not encounter this error, you also need to add the Altus - P4TW Business Unit role to the team for your business unit. This role contains the additional permissions required for your user.

Hidden form tabs appearing

In Kaizen release 2022.03.08.4 we released some form loading improvements to reduce load time and the amount of flashing of tabs and forms. As part of this any conditional tabs have been made hidden to prevent the user from seeing the tabs and then them disappearing, instead we start them hidden and then show the ones that need to be shown.

Due to these changes, if you have tabs you have hidden and don't want shown or want to show them conditionally via your own custom code you will need to make one of the following changes:

  1. Navigate to the Settings > Configuration Settings > Form Tab Visibility Service Exclusions and add an exclusion for your form tab. This will tell us to ignore it so you can manage it. If you want to stop us hiding something you can disable an exclusion

    Add an exclusion to settings, configuration settings, form tab visibility service exclusions
  2. Append _ignoreftv to the internal name of the tab in the form designer. This will tell us to ignore it so you can manage it

    Append _ignoreftv to the internal name of the tab
  3. For projects, programs and portfolios you can update the form tab visibility settings via the Project Types for projects or the relevant setting for programs and portfolios

    Modify form tab visibility in the Project Type settings

Proposal details tab not visible

In Kaizen release 2022.03.08.4 we released some form loading improvements to reduce load time and the amount of flashing of tabs and forms. As part of this the proposal details tab has been hidden so we can calculate all the tabs visibility and then smoothly show the appropriate tabs.

Due to these changes, there is a known issue with the proposal form whereby if there are visible custom tabs on the form that the loading process will currently not show the details tab as it believes necessary tabs are already visible.

To allow your tabs to load seamlessly and smoothly with the other tabs, please hide all your custom tabs in the form designer.

Problems in the desktop and mobile Power Apps players

Altus is currently intended to be utilised within an internet browser, we are aware that Altus is not fully functional in the mobile and desktop Power Apps players. We will be working to improve this over time and extend compatibility out to the mobile and desktop players. Please utilise the built-in feedback tool to highlight if this is important to you.

Solution upgrade issues

Solution upgrades can fail for a variety of reasons. Often the error message from a failed solution upgrade will point you to a dependency or a specific component that is causing the failure. At other times the failure message is a little less obvious to interpret.

One specific error that is less obvious to diagnose occurs when another managed solution (usually an enhancements or customer specific managed layer) has modified the default control that should be used for a table that originates in Altus (eg to switch the default control to be editable grid).

The error resulting from this will appear as This solution cannot be uninstalled because the 'CustomControlDefaultConfig' with id '{guid}' is required by the '{Your custom managed Solution}' solution. Uninstall the {Your custom managed solution} and try again.

For some reason this configuration change does not handle solution layering well and the presence of a top layer managed solution that modifies the default control will prevent an underlying solution update from completing. Altus strictly recommend not modifying the control settings at the table level for any of the tables that are shipped with Altus.

If you do end up in a scenario like this, the recommended course of action is to remove the customised default control from the table in your custom solution (in the environment where it is unmanaged). Then package your custom solution update and deploy it to your environment where it appears as a managed solution. This should then allow the Altus solution update to succeed.

Populate project against proposal on transition to project

When a proposal approval occurs and the proposal transitions into a newly created project, it makes sense to create a link between that proposal and the project that was created from it.

Existing customers may need to manually update the Proposal Approval Flow so that this link is created on the proposal. To do this, follow these steps:

  1. Navigate in make.powerapps.com to solutions and select Atsumeru
  2. Towards the top right of screen, select to filter to view only Cloud flow
    Select 'Cloud flow' in Atsumeru make.powerapps.com
  3. Select Proposal Approval Atsumeru
    Select Proposal Approval Atsumeru
  4. Select to Edit the Flow
    Select Edit, to edit the flow
  5. Scroll down and select Scope - Approval to expand it
  6. Select Condition - Test Approval to expand it
  7. Select Scope - Update Proposal Approved to expand it
  8. Select Apply to each - Approved Proposal to expand it
  9. Select Update a record - Proposal Approved to expand it
  10. Select Show advanced options to show all available columns on the roposal update action Show advanced options is highlighted
  11. Locate the Sensei Project (Projects) column. Type into the column value: "/sensei_projects()" Add /sensei_projects() to the Sensei Project (Projects) column
  12. Then, place the cursor in the middle of the parenthesis and scroll down in the Dynamic content pane to locate the Create a new record - Sensei Projects heading and select **
    Place the cursor in the middle of the parenthesis and scroll down in the dynamic content pane to locate the create a new record - Sensei Projects heading and select **
  13. Select to Save the Flow

Dynamics team creation failure

Note

This was fixed in release 2021.07.05.2 If you are still experiencing this issue please check your what's new page to see which version you have.

Microsoft has made a recent change that requires some permissions changes to allow Dynamics teams creation. The issue usually surfaces in the following error message when you attempt to associate a Microsoft 365 Group with a project, program or portfolio.

Error message showing that you don't have permissions to create the team in Dynamcis 365. Please ask an administrator to assign the group to the project for you.
Altus have identified the additional permissions required in order for Dynamics Team creation to succeed and are working on rolling out a fix for this in a future update. In the meantime, the following workaround can be implemented if required until the update reaches your environment:

  1. In an unmanaged solution in your environment (e.g. Altus Enhancements), create a new security role
  2. Select the Business Management tab and grant the following permissions to the new security role:
    • Security Role - Read and Assign [Business Unit access]
    • Team - Create, Read, Write, Append, Append To [Business Unit access]
      Screenshot of the permissions to be granted
  3. Save your new security role
  4. Grant the new security role to whichever users/teams that you wish to allow to create group association for
  5. Your custom security role can later be deleted from your environment once the Altus Update has reached your environment (Fixed in release 2021.07.05.2)

Power Automate 502 - BadGateway Error

A Power Automate 502 error occurs displaying "Flow run failed."

Error message displaying 'Flow run failed.'

  1. Check that the Approvals Administrator role has been given to the user who owns the flow
  2. Make sure the Approvals Administrator role has read access to the System Job Table

    Screenshot displaying the 'Approvals Administrator' being granted access to the 'System Job' table

Error with Alternate Keys failing

Occasionally, you may see the following error:

The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.sometableBase' and the index name 'ndx_for_entitykey_sensei_primarykey'. The duplicate key value is <redacted>.

This error appears to be caused by the alternate key for a table being activated before the table is present in the environment. When this happens, the only thing that needs to be done is that the key index needs to be manually activated.

  1. Download and install XRM Toolbox from https://www.xrmtoolbox.com
  2. Within XRM Toolbox download the tool Alternate Key Manager

    Screenshot of the XrmToolbox Tool Library
  3. Open the tool and connect to your Dynamics instance
  4. Load entities and select the table that is generating the error

    Screenshot after loading entities with table generating the errors highlighted
  5. Load the keys and then select the key that is causing the error and hit the activate button until it gives you a response. The properties should change to active

    Screenshot of the loaded key with the Activate button selected
    Sometimes the properties will not fresh correctly after activating the key. You may need to exit out of the tool and then enter back again to see them change. Once the key is active, then this error should no longer occur.

Reset task sync data

Sometimes while configuring a task sync deployment it is possible to make a mistake and end up with duplicate entries in the sensei_externaltask table. These duplicate entries will often appear like this in the system:

A screenshot of MS Excel spreadsheet showing duplicate tasks highlighted

You can reset the task sync data and have it repopulate by following the steps below.

There is currently a plugin that exists which will prevent you from deleting synchronized tasks except through the task engine. You will need to disable this plugin (and then re-enable it).

To do this, as a system administrator, launch the Plugin Registration Tool (this tool is available from Microsoft: Download tools from NuGet | Microsoft Docs).

  1. Select + Create New Connection

    Create connection button highlighted
  2. Log in to your Office 365 tenant

    Screenshot of login page with Office 365 selected
  3. If prompted, select the environment that contains your Altus installation.
  4. Scroll down the list of registered plugins and locate and expand (Assembly) SenseiDataIngestionPlugin

    Screenshot of the Plugin Registration Tool with (Assembly) SenseiDataIngestionPlugin expanded
  5. Select to expand (Plugin) SenseiDataIngestionPlugin.Sensei_PreventTaskDeleteWithExternal
  6. If you have a step listed under the (Plugin) SenseiDataIngestionPlugin.Sensei_PreventTaskDeleteWithExternal, right click the step attached to it and select Disable from the context menu. If no steps are listed, nothing needs to be done here, proceed to step 1 below.

You can turn this back on afterwards by simply selecting Enable from the context menu.

Once that is complete, follow these steps:

  1. Turn off your data flows so that they do not run any more, or set them to only run on demand
  2. Download this flow and install it into your environment
  3. Enable the flow
  4. Optionally run the Flow and provide a value other than "YES" to perform a test run without actually deleting the data
  5. Provide the "YES" value as the parameter to actually perform the delete operations
  6. Once the flow run is complete don't forget to:
  • Re-enable the task sync dataflows
  • If the plugin step was disabled, use the plugin registration tool to re-enable SenseiDataIngestionPlugin.Sensei_PreventTaskDeleteWithExternal

If the argument "DeleteFlag" is left blank or contains any string other than "YES" then the flow will run but not delete anything so that you can see what it would do. If you enter "YES" as the argument, then it will perform the delete.

The length of the entire delete operation depends on how many tasks are in the system, but testing has shown it takes approximately 1 minute per 100 external tasks. The current maximum number of tasks supported by this flow is 100,000 unique tasks per run. It is possible to run this data flow multiple times if necessary.

Duplicate resource plan data or timesheet data

Due to a concurrency issue, there have been some circumstances in the past which could result in duplicate resource plan data or timesheet data appearing in the system. Typically the duplicate data will not present itself in the resource plan itself or in the timesheet itself, rather it becomes evident either in reporting or when attempting a resource to finance forecast sync.

New key constraints have been shipped in Altus which will enforce that in future these duplicate data records cannot be created. However, for existing environments already containing duplicate data records, additional steps need to be performed.

The first step is to remove the duplicate records from the environment. To facilitate this, a Power Automate flows have been created which will identify and optionally delete the duplicate records.

These Flows are available here:

When importing the flow to the environment that contains your Altus installation, you will need to create or select a Dataverse connector. Once created, you can run the flow in preview mode (by entering any value other than DELETE in the parameter prompt). The flow will determine whether duplicate data exists in your environment. At the completion of the flow run (which may take some time depending on the amount of data) you can expand the final compose action in the flow to view a list of data that was flagged as duplicate data. Note: if there is a lot of duplicate data, you may see a download link instead of text appearing directly in the action output.

Screenshot of the flow

If duplicate records are found, you can choose to either manually remove the duplicates (directly via Dataverse) or you can choose to run the flow again in delete mode. To run in delete mode, enter DELETE in the input parameter to the flow when prompted. The flow will run again and will again collect the list of duplicate records, but this time will also delete those duplicate records. The flow run will still output the list of duplicate records in the final compose action. After deleting the duplicates you may wish to copy this data out of the flow to keep as a record.

Note that if you have duplicate data in any Approved Timesheets, you will need use the Plugin Registration Tool to temporarily disable the 'Delete of sensei_timesheetdata' Plugin step relating to the 'Sensei_PreventTimesheetDelete' function in the 'SenseiDataIngestionPlugin'. Once the duplicate data has been deleted, re-enable this Plugin Step. Screenshot of the Plugin step to temporarily disable

After any duplicate records have been removed from your environment, you can now select to activate the key that will prevent further duplicates from being created in your environment. When a new key is deployed to an environment, Dataverse will automatically attempt to activate that new key. However, if there is data already present in an environment which violates that new key, the activation of the new key will fail. Once the duplicate data has been removed, the key can be activated by performing the following steps:

  1. Navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation
  2. From the left menu, expand Dataverse and select Tables
  3. Select the All tab and then locate the Resource Request Data or Timesheet Data table (as per the one which contained duplicate data. Repeat these steps to ensure both keys are activated if both contained duplicate data)
  4. Under the Schema heading, select Keys

    Screenshot of the Resource Request Data with the Keys button highlighted
  5. Check the status of the UniqueResReqAndDate or UniqueTimesheetRowAndDate (as applicable)
  6. If the status is active already, you do not need to do anything
  7. If the status is failed, select the Key and then from the ribbon select Retry. Assuming there is now no data that violates the key, it should now activate correctly

    Screenshot of the UniqueResReqAndDate table keys with the retry button highlighted

Duplicate Timesheet Periods

Protections have always been in place in Altus to prevent creation of timesheet periods which overlap or leave gaps.

A unique key constraint has later been introduced to Timesheet Periods to prevent creation of Timesheet Periods that contain duplicate names. Duplicate Timesheet Period names can negatively impact reporting and so should be avoided.

Environments which do not contain duplicate Timesheet Period names will have the unique constraint automatically deployed and activated. For environments where duplicate Timesheet Periods had been created, please follow these steps to remove duplicates and to then activate the unique key constraint.

  1. As an Altus Administrator, log in and open the Altus app, then navigate to the Settings area
  2. From the left menu, select Timesheet Periods
  3. Select to sort the list of Active Timesheet Periods by Name
  4. Look through the list of Timesheet Periods and identify any which have duplicate names
  5. Select to edit Timesheet Periods with duplicate names and give a unique Name to that Timesheet Period
  6. Once all Timesheet Periods contain unique names, navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation
  7. From the left menu, expand Dataverse and select Tables
  8. Select the All tab and then locate the Timesheet Period table
  9. Under the Schema heading, select Keys

    Screenshot of the Timesheet Period with the Keys button highlighted
  10. Check the status of the Unique Timesheet Period key
  11. If the status is active already, you do not need to do anything
  12. If the status is failed, select the Key and then from the ribbon select Retry. Assuming there is now no data that violates the key, it should now activate correctly

    Screenshot of the Unique Timesheet Period key with the retry button highlighted

Application failed to load error

This is an indication that the current user may be missing the Basic User permission in Dynamics. Please refer to Deployment -> Add individual users into the Altus Security Roles

Screenshot of the application failed to load error

Project Picker disappears when using customised Details tab

When visiting a project for the first time after clearing the cache, the link project pcf loads briefly and then disappears. After a standard refresh, the pcf will load correctly.

Erratic behaviour with the External Project Picker has been observed when showing the Details tab (Details/operational_details/agile_details) via form customisation instead of using the provided dynamic hide/show functionality used in Enterprise Project Types. If override of the dynamic functionality is required, please alter that accordingly before customising the form.

Proposal Approval Flow issues

Solution Layering of Power Automate Flows

Completion of the Business Process Flow for a Proposal should trigger the Power Automate Flow that handles Proposal Approvals.

As soon as the Proposal Approval Atsumeru flow is connected in an environment it will create a Solution Layer. From time to time, modifications are made to the Proposal Approval Atsumeru Flow in the Altus Solution.

If a Solution Layer is present in an environment, then that Solution Layer will prevent those latest changes to that Flow being exposed in the environment. (This behaviour also has the benefit that if custom behaviours have been added to that Flow in an environment then those will not be automatically overwritten by a Solution Update). If there are changes in the Proposal Approval Atsumeru Flow that you know are present in the Solution but are not yet exposed to your environment, you can choose to remove the Customization Layer from that Flow and it will then revert to the version in the (updated) Solution. Note that after removing the customization layer you would then need to reapply any custom behaviours that you had added to the Flow.

Field Length Issues

Power Automate Flows tend to a cache details about destination tables/entities (for an undocumented period of time). If changes have been made to say the length of a field in Dataverse then it can take some time for those changes to be reflected in the Flow. This can result in errors such as this one:

Screenshot of a Flow error relating to character limit being exceeded, even if the underlying field has been updated to accommodate the extra characters.

The Flow can be 'forced' to update its associated Dataverse limits by selecting to turn the Flow Off and then then On again.

Altus user feedback tool

The Altus user feedback tool is used to capture and record user feedback about the Altus product. You access the feedback tool via the Feedback link on the left navigation bar within Altus. If you are using the mobile experience, this link may not display. Upon clicking the feedback navigation the below will be displayed:

The following feedback types can be provided:

  • Report a Bug: Let us know if you see something that is broken or not working as expected. The fields on the form are:
    • Your email address (mandatory field)
    • Add a title
    • Describe the bug in detail
  • Feature Request: Tell us how we can improve Altus. The fields on the form are:
    • Your email address (mandatory field)
    • Give your idea a name
    • Tell us more, including the problem it solves
  • General Feedback: Rate your experience with Altus
    • Rate Altus out of five stars

Any feedback you provide will go into the Userback system and will be reviewed by Altus. You may be contacted by Altus to provide further details or be given an update on your feedback.

An Altus customer may opt-out of this service by adding a setting to the Altus configurations settings area:

Setting Value Effect
FeedbackOptOut True Disables Altus User feedback collection

Technical References:

Safari browser issues

Safari 11.0 uses Intelligent Tracking Prevention to block third-party tracking cookies. Due to the way Intelligent Tracking Prevention categorises cookies, login.microsoftonline.com is currently included in this category (even though login.microsoftonline.com is not a tracking domain), and Altus could be prevented from opening.

If encountering issues with Safari on Mac, disable cross-site tracking or switch to Microsoft Edge/Chrome.

Screenshot of Safari browser issue

Altus is designed to provide you with the best user experience possible utilising the Power Platform. To enjoy the full functionality and visual quality of the application, we recommend that you use a screen resolution of 1920x1080 pixels (as a recommended minimum). This resolution will allow you to see all the details and features of Altus without any distortion or cropping. If your screen resolution is lower than 1920x1080, you may encounter some issues with layout and performance. Therefore, we suggest that you adjust your screen settings to match our recommended resolution.

Project tabs missing

Strategy Tab highlighted on the Project form

On certain installations the tabs that integrate between the feature levels may be missing. This could be caused by the level of SKU agreed at deployment-time not including these features. The Portfolio and Strategy features may still be available but the the integration features may be disabled. Please contact your deployment partner to have the SKU level of your Altus deployment changed to enable these tabs.