Hello,
I'm trying to deploy one dashboard from my local environment to a cloud one.
I just built a very simple dashboard to test the process and added the following data binding record to the package:
Object: Dashboard (which is over table SysDashboard)
Filters: Section that is equal to Dashboards AND Title starts with 'Something'.
Key: Title and Section
No Forced update, since installatation type is Installation
Checking the bound data, this is only returning one record, which is what I want: the new Dashboard I have created.
I used this composite key since the Section Id is the same in both environments and I can't just use Id, as I plan to update a few existing Dashboards later, and their Id is different on both environments.
When importing the exported Package, it error with the following details:
2020-04-28 17:38:12,098 Installing data 2020-04-28 17:38:13,348 Error occurred while installing data "SysDashboard" in package "Base". UId 37e19c02-7e20-426f-af6b-7d6e84d3dcd4: Column Caption value cannot be obtained because it has not been loaded. 2020-04-28 17:38:13,364 Terrasoft.Common.InvalidObjectStateException: Column Caption value cannot be obtained because it has not been loaded. at Terrasoft.Core.Entities.EntityColumnValue.get_Value() at Terrasoft.Core.Entities.Entity.GetColumnValue(String valueName) at Terrasoft.Core.Packages.PackageInstallUtilities.GetSaveDataConditions(EntitySchema schema, PackageSchemaDataDescriptor dataDescriptor, Entity dataPackageEntity) at Terrasoft.Core.Packages.PackageInstallUtilities.SaveData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Func`5 prepareData, IDictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallSchemaData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Dictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallPackageSchemaData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Dictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallPackageSchemaData(IEnumerable`1 elements, IPackageContentProvider contentProvider, Boolean continueIfError, Boolean isAppInstalling) 2020-04-28 17:38:13,364 Error occured while performing operation on "SysDashboard" item, UId = 37e19c02-7e20-426f-af6b-7d6e84d3dcd4. 2020-04-28 17:38:13,364 Terrasoft.Common.InvalidObjectStateException: Column Caption value cannot be obtained because it has not been loaded. at Terrasoft.Core.Entities.EntityColumnValue.get_Value() at Terrasoft.Core.Entities.Entity.GetColumnValue(String valueName) at Terrasoft.Core.Packages.PackageInstallUtilities.GetSaveDataConditions(EntitySchema schema, PackageSchemaDataDescriptor dataDescriptor, Entity dataPackageEntity) at Terrasoft.Core.Packages.PackageInstallUtilities.SaveData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Func`5 prepareData, IDictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallSchemaData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Dictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallPackageSchemaData(PackageSchemaDataDescriptor dataDescriptor, Stream dataStream, Dictionary`2 schemaLocalizableData, Boolean isAppInstalling) at Terrasoft.Core.Packages.PackageInstallUtilities.InstallPackageSchemaData(IEnumerable`1 elements, IPackageContentProvider contentProvider, Boolean continueIfError, Boolean isAppInstalling) 2020-04-28 17:38:13,426 Compiling configuration dll 2020-04-28 17:42:46,874 When application installed, an error(s) occured
Does anyone know how to fix this issue or have an alternative way of deploying dashboards from one environment to another?
Thanks,
Artur
Like
Hi Artur,
The dashboard's data is stored in the SysDashboards for dashboards on analytics,
and SysWidgetDashboard for dashboards in the section pages.
You can transfer this data using data bindings or on the DB level (merge for existing on the target instance and insert for nonexisting).
Data for folders, filters, and column setup is stored in the SysProfileData. You can transfer it similarly to the dashboard's data.
In case if you need more information on adding data bindings for the package, please see the article below:
https://academy.bpmonline.com/documents/technic-sdkmp/7-13/binding-data-package
Thank you!