From 662fe8c7e77240e569f1902c0f798c7bdafa901e Mon Sep 17 00:00:00 2001 From: Pravin Barton <9560941+isc-pbarton@users.noreply.github.com> Date: Mon, 21 Sep 2026 16:49:21 -0400 Subject: [PATCH] fix: DeepSee Architect no longer throws error message when no cube selected --- CHANGELOG.md | 1 + cls/SourceControl/Git/Utils.cls | 3 ++- test/UnitTest/SourceControl/Git/Extension.cls | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 480b2550..4a71bf64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Import All no longer deletes items that are mapped in from another database, which could delete Embedded Git itself where it is mapped instance-wide (#997) - A custom pull event handler stored in the repository is now loaded and compiled before it runs, so operations on a freshly built instance no longer fail with `` (#1000) +- IRIS BI Architect no longer throws `` error when no cube selected (#980) ## [2.17.1] - 2026-08-18 diff --git a/cls/SourceControl/Git/Utils.cls b/cls/SourceControl/Git/Utils.cls index d2bb11f3..f0575c14 100644 --- a/cls/SourceControl/Git/Utils.cls +++ b/cls/SourceControl/Git/Utils.cls @@ -1861,10 +1861,11 @@ ClassMethod ExportItem(InternalName As %String, expand As %Boolean = 1, force As quit $$$OK } -ClassMethod ItemIsProductionToDecompose(InternalName, Output productionName) +ClassMethod ItemIsProductionToDecompose(InternalName, Output productionName) As %Boolean { set settings = ##class(SourceControl.Git.Settings).%New() set name = $piece(InternalName,".",1,*-1) + return:name="" 0 set decomposeProduction = settings.decomposeProductions && (..Type(InternalName) = "cls") && ##class(SourceControl.Git.Production).IsProductionClass(name, "FullExternalName") if decomposeProduction { diff --git a/test/UnitTest/SourceControl/Git/Extension.cls b/test/UnitTest/SourceControl/Git/Extension.cls index c490e0ad..90164aa0 100644 --- a/test/UnitTest/SourceControl/Git/Extension.cls +++ b/test/UnitTest/SourceControl/Git/Extension.cls @@ -35,4 +35,14 @@ Method TestGeneratedFilesReadOnlyOption() $$$ThrowOnError(sc) } +/// DeepSee Architect calls UserAction with ".CLS" as the internal name when no cube is selected +Method TestUserActionEmptyClassName() +{ + set settings = ##class(SourceControl.Git.Settings).%New() + set settings.decomposeProductions = 1 + do settings.%Save() + do ##class(SourceControl.Git.Extension).%New("").UserAction(1,3,".CLS") + do $$$AssertSuccess("UserAction did not throw exception with empty class name") +} + }