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:
- Navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation.
- Select the Solution that contains the table that is experiencing the issue with (e.g. for Optimisation Plan table, select the Atsumeru solution).
- Select Tables from the left nav.
- Locate and select the table that is experiencing the issue (e.g. Optimisation Plan).
- From the ribbon, select Advanced > See solution layers.
- 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:
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:
- Navigate to the Project Insights report and go to the Projects page.
- Open the Details visual and select one of the KPI Icons fields on the right.
- Select the drop-down arrow at the end of the field name and select Conditional Formatting then Icons as shown below:
- Change the Icon layout to Icon only:
- Repeat these steps to update all the KPI icons on the page.
- 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:
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:
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.
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:
In an unmanaged solution in your environment (eg Altus Enhancements) create a new security role
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]
Save your new security role
Grant the new Security role to whichever users/teams that you wish to allow to create group association for
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.
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.
- Check that the New Project Business Process Flow is still associated to the Altus Model-Driven App
- Classic
- Modern
- Classic
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:
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.
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:
- 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
- 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
- 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
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:
- Navigate in make.powerapps.com to solutions and select Atsumeru
- Towards the top right of screen, select to filter to view only Cloud flow
- Select Proposal Approval Atsumeru
- Select to Edit the Flow
- Scroll down and select Scope - Approval to expand it
- Select Condition - Test Approval to expand it
- Select Scope - Update Proposal Approved to expand it
- Select Apply to each - Approved Proposal to expand it
- Select Update a record - Proposal Approved to expand it
- Select Show advanced options to show all available columns on the roposal update action
- Locate the Sensei Project (Projects) column. Type into the column value: "/sensei_projects()"
- 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 **
- 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.
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:
- In an unmanaged solution in your environment (e.g. Altus Enhancements), create a new security role
- 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]
- Save your new security role
- Grant the new security role to whichever users/teams that you wish to allow to create group association for
- 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."
- Check that the Approvals Administrator role has been given to the user who owns the flow
- Make sure the Approvals Administrator role has read 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.
- Download and install XRM Toolbox from https://www.xrmtoolbox.com
- Within XRM Toolbox download the tool Alternate Key Manager
- Open the tool and connect to your Dynamics instance
- Load entities and select the table that is generating the error
- 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
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:
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).
- Select + Create New Connection
- Log in to your Office 365 tenant
- If prompted, select the environment that contains your Altus installation.
- Scroll down the list of registered plugins and locate and expand (Assembly) SenseiDataIngestionPlugin
- Select to expand (Plugin) SenseiDataIngestionPlugin.Sensei_PreventTaskDeleteWithExternal
- 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:
- Turn off your data flows so that they do not run any more, or set them to only run on demand
- Download this flow and install it into your environment
- Enable the flow
- Optionally run the Flow and provide a value other than "YES" to perform a test run without actually deleting the data
- Provide the "YES" value as the parameter to actually perform the delete operations
- 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.
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.
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:
- Navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation
- From the left menu, expand Dataverse and select Tables
- 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)
- Under the Schema heading, select Keys
- Check the status of the UniqueResReqAndDate or UniqueTimesheetRowAndDate (as applicable)
- If the status is active already, you do not need to do anything
- 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
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.
- As an Altus Administrator, log in and open the Altus app, then navigate to the Settings area
- From the left menu, select Timesheet Periods
- Select to sort the list of Active Timesheet Periods by Name
- Look through the list of Timesheet Periods and identify any which have duplicate names
- Select to edit Timesheet Periods with duplicate names and give a unique Name to that Timesheet Period
- Once all Timesheet Periods contain unique names, navigate to make.powerapps.com and ensure you have selected the environment which contains your Altus installation
- From the left menu, expand Dataverse and select Tables
- Select the All tab and then locate the Timesheet Period table
- Under the Schema heading, select Keys
- Check the status of the Unique Timesheet Period key
- If the status is active already, you do not need to do anything
- 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
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
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:
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:
- Userback (User Feedback Tool) - Security Information
- Userback (User Feedback Tool) - Information Security Policy
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.
Recommended screen resolution
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
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.