Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fold all updates since May from master and internal repo into v1 #437

Merged
merged 59 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
36e13be
Add one-liner to install IPM
evshvarov May 13, 2023
e5dfffc
Normalize package name *after* using $order to check for multiple doc…
isc-tleavitt Jun 9, 2023
c34accd
Set up for `intersystems-community.testingmanager` VS Code extension
gjsjohnmurray Jun 12, 2023
64f5495
Fix broken `exec` command
gjsjohnmurray Jun 12, 2023
e3f6be4
Use prefix to work around filename length limits
isc-tleavitt Jun 16, 2023
3abf84c
Merge pull request #386 from evshvarov/patch-1
isc-tleavitt Jun 16, 2023
0e922d9
Merge pull request #417 from intersystems/fix-long-paths-tar
isc-rkuszews Jun 16, 2023
76c130d
Merge pull request #411 from intersystems/fix-367
isc-rkuszews Jun 16, 2023
ec4c808
Merge pull request #414 from gjsjohnmurray/fix-413
isc-tleavitt Jun 16, 2023
3ef095f
fixed installing python dependencies for ipm dependencies
daimor Jun 19, 2023
597224a
Merge pull request #419 from daimor/fix-418
isc-rkuszews Jun 21, 2023
b40622f
Merge pull request #415 from gjsjohnmurray/magenta-quokka
isc-rkuszews Jun 21, 2023
c42968e
auto bump version with release
bot Jun 21, 2023
37bbdb2
Set the ^UnitTestRoot node when building the container
gjsjohnmurray Jun 22, 2023
67d2a57
EnableEnsemble for Verify stage
daimor Jul 10, 2023
e548249
Merge pull request #420 from gjsjohnmurray/crimson-chipmunk
isc-rkuszews Jul 17, 2023
d6ee931
add zpm version and current refistry
Jul 20, 2023
852dbf7
Merge pull request #425 from SergeyMi37/entrance
isc-rkuszews Sep 8, 2023
0e3d2d8
Merge pull request #423 from daimor/task422
isc-rkuszews Sep 8, 2023
532aa7a
fix: update to new set-output syntax
isc-tleavitt Jan 12, 2024
daf6603
Update packages.yml
isc-tleavitt Jan 12, 2024
3224660
Update packages.yml
isc-tleavitt Jan 12, 2024
c57fa56
Update packages.yml
isc-tleavitt Jan 12, 2024
6401156
Update packages.yml
isc-tleavitt Jan 12, 2024
29e4ece
To stay under GitHub actions jobs threshold, only test packages with …
isc-tleavitt Jan 12, 2024
290c0b4
Fix URL, maybe issue with parameter?
isc-tleavitt Jan 12, 2024
f16a6af
Update packages.yml
isc-tleavitt Jan 12, 2024
da9d924
Revert "Update packages.yml"
isc-tleavitt Jan 12, 2024
97740e5
Update packages.yml
isc-tleavitt Jan 12, 2024
56f5d23
Update packages.yml
isc-tleavitt Jan 12, 2024
47ca190
Merge branch 'HSIEO-5999' into v1
isc-tleavitt Jan 19, 2024
7f76b22
Merge branch 'master' into v1
isc-tleavitt Jan 19, 2024
e683924
(fix) various %ZPM -> %IPM equivalents from community modifications
isc-tleavitt Jan 19, 2024
79c1f54
Merge in internal updates
isc-tleavitt Jan 25, 2024
6d1be2d
CI workflow changes
isc-tleavitt Jan 25, 2024
b554c02
Support act for running CI on a dev's machine
isc-tleavitt Jan 30, 2024
18fac8c
Shorten image list and break into separate file
isc-tleavitt Jan 30, 2024
3d00bf6
More logging; always clean up
isc-tleavitt Jan 30, 2024
3f899c5
ci: add ci to test popular packages
isc-shuliu Jan 30, 2024
e5b48e9
Changes to run properly in act
isc-tleavitt Jan 30, 2024
4b8c676
ci: share container among jobs
isc-shuliu Jan 31, 2024
f0cef1c
ci: checkout source code in each job
isc-shuliu Jan 31, 2024
295e2b7
Merge branch 'v1-jan-2024-updates' into v1-jan-2024-package-ci
isc-shuliu Jan 31, 2024
61ac085
Merge pull request #1 from isc-shuliu/v1-jan-2024-package-ci
isc-shuliu Jan 31, 2024
f2c2e71
fix bug in ci workflow
isc-shuliu Jan 31, 2024
60e154d
ci: parameterize minVersionCount for packages.yml
isc-shuliu Jan 31, 2024
26dbd93
Merge pull request #2 from isc-shuliu/master
isc-shuliu Jan 31, 2024
926cd19
ci: bug fix
isc-shuliu Jan 31, 2024
6500399
Merge pull request #3 from isc-shuliu/master
isc-shuliu Jan 31, 2024
34d6ce4
run ci in USER instead of %SYS
isc-shuliu Feb 1, 2024
e8db00e
run zpm test in %SYS
isc-shuliu Feb 1, 2024
fe2475f
ci: fix type in %UnitTest.Manager name
isc-shuliu Feb 1, 2024
82e2f87
typo fix
isc-shuliu Feb 1, 2024
d53fc9a
typo fix
isc-shuliu Feb 1, 2024
a79e69a
Merge pull request #4 from isc-shuliu/master
isc-shuliu Feb 2, 2024
64c7516
Merge pull request #444 from isc-shuliu/v1-jan-2024-updates
isc-tleavitt Mar 4, 2024
fb2b2ba
Merge in internal updates
isc-tleavitt Mar 19, 2024
c9073be
fix: typo in class name
isc-tleavitt Mar 19, 2024
8cb2711
fix: docker run flags in "Clean install and test"
isc-tleavitt Apr 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ jobs:
steps:
- id: set-matrix
run: |
matrix=`curl https://pm.community.intersystems.com/packages/-/all | jq '.[].name' | jq -s`
echo "::set-output name=matrix::$matrix"
matrix=`curl https://pm.community.intersystems.com/packages/-/all?allVersions=1 | jq 'reduce .[] as $item ([]; if $item.allVersions | length >= 10 then . + [$item.name] else . end)' | tr -d '\n\t\r '`
echo $matrix
echo "matrix=${matrix}" >> "$GITHUB_OUTPUT"
job2:
needs: job1
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.job1.outputs.matrix)}}
matrix:
package: ${{fromJson(needs.job1.outputs.matrix)}}
steps:
- run: echo test
8 changes: 8 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"recommendations": [
"intersystems.language-server",
"intersystems-community.testingmanager",
"intersystems-community.vscode-objectscript",
"ms-azuretools.vscode-docker"
]
}
4 changes: 2 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
"username": "_system",
"password": "SYS",
"ns": "%SYS"
}

},
"intersystems.testingManager.client.relativeTestRoot": "tests/unit_tests"
}
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# InterSystems Package Manager

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased - 0.9.0+snapshot]

### Added
-

### Changed
- HSIEO-9484: Add additional argument to buildDepsGraph to allow putting in an additional list element of dependency's DisplayName
- HSIEO-9484: Add additional property DisplayName to %IPM.Storage.ModuleReference

### Fixed
- HSIEO-9269, HSIEO-9402: % percent perforce directories are no longer necessary
- HSIEO-9269, HSIEO-9404: Repo check should happen in the order to repo creation, not by repo name
- HSIEO-9269, HSIEO-9411: Make sure can load and export xml Package-type resource
- HSIEO-9269, HSIEO-9403: Ensure studio project uses display name.
- HSIEO-9269, HSIEO-9404: Repo check should happen in the order to repo creation, not by repo name
- HSIEO-9269, HSIEO-9366: Make sure VersionInfo uses exact database namespace instead
- HSIEO-9269, HSIEO-9384: %IPM.Utils.Build:CreateNamespace should not call %IPM class from %SYS namespace
- HSIEO-9269, HSIEO-9333: OnDetermineResourceDeployability should make sure to check uppercase of item suffix
- HSIEO-9269, HSIEO-9315: HSCC needs to re-create %IPM mapping for application namespace because of its mapping deletion
- HSIEO-9269, HSIEO-9276: Fix dependency analyzer issue
- HSIEO-9269, HSIEO-9275: IsAvailable() method need to work robustly
- HSIEO-9269, HSIEO-9277, HSIEO-9235: Remove exportDeployedItem temporarily until HSIEO-9235
- HSIEO-9269, HSIEO-9278: Mark based module as non deployed if install in dev mode
- HSIEO-9269, HSIEO-9279: Enable resource mapping creation during build
- HSIEO-9269, HSIEO-9280: Load unittest code during module install
- HSIEO-9430: Module definition should not expose DisplayName + deprecate DisplayNameInternal as it will not be used anymore
- HSIEO-9924: RunDev needs to do complete installation of component and dependencies via ignoreInstalled, so adding ignoreInstalledModules checker in syncLoadDependencies

### Security
-

### Removed
-

### Deprecated
-
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ ARG REGISTRY=https://pm.community.intersystems.com

RUN --mount=type=bind,src=.,dst=/home/irisowner/zpm/ \
iris start iris && \
iris session iris "##class(%SYSTEM.OBJ).Load(\"/home/irisowner/zpm/Installer.cls\",\"ck\")" && \
iris session iris "##class(IPM.Installer).setup(\"/home/irisowner/zpm/\",3)" && \
iris session IRIS < /home/irisowner/zpm/iris.script && \
iris stop iris quietly
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ Helps to install ObjectScript classes and routines, globals, Embedded Python mod

## Installing ObjectScript Package Manager Client:

0. Use one-liner in terminal call or programmatically:
```
s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
```

OR:

1. Download the [latest version](https://pm.community.intersystems.com/packages/zpm/latest/installer) of zpm from the registry
2. Import the zpm.xml into IRIS and compile via any desired way (Management Portal, Studio or Terminal)

Expand Down
6 changes: 6 additions & 0 deletions iris.script
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
zn "USER"
do $System.OBJ.Load("/home/irisowner/zpm/Installer.cls","ck")
do ##class(IPM.Installer).setup("/home/irisowner/zpm/",3)
do ##class(%IPM.Main).Shell("install vscode-per-namespace-settings")
set ^UnitTestRoot="/usr/irissys/.vscode/%SYS/UnitTestRoot"
halt
2 changes: 1 addition & 1 deletion scripts/make-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ rm -rf /opt/out/*
iris start $ISC_PACKAGE_INSTANCENAME
/bin/echo -e \
" zpm \"package zpm -only -p \"\"/tmp/zpm-${VERSION}\"\" \":1\n" \
" set sc = ##class(%ZPM.Installer).MakeFile(\"/tmp/zpm-${VERSION}.tgz\", \"${RELEASE_FILE}\")\n" \
" set sc = ##class(IPM.Installer).MakeFile(\"/tmp/zpm-${VERSION}.tgz\", \"${RELEASE_FILE}\")\n" \
" halt" \
| iris session $ISC_PACKAGE_INSTANCENAME -U%SYS

Expand Down
2 changes: 1 addition & 1 deletion src/cls/IPM/DependencyAnalyzer.cls
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ ClassMethod FindReferenceHelper(pIsModule As %Boolean, pName As %String = "", pI
If $IsObject(tHomeModule) {
Set tHomeModuleName = tHomeModule.Name
}
If 'pIsModule && ($ZConvert(tRawFileName_tFileType,"U") '= $ZConvert(pName,"U")) {
If pIsModule || ('pIsModule && ($ZConvert(tRawFileName_tFileType,"U") '= $ZConvert(pName,"U"))) {
// For non modules, need to ensure references to class itself aren't output
Merge pReferences(tHomeModuleName,tRawFileName,tFileType) = $$$ZPMDependencyTempData(tNextCounter,tReferenceKey)
}
Expand Down
2 changes: 1 addition & 1 deletion src/cls/IPM/ExtensionBase/CompositeMethodOverrides.cls
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ ClassMethod SetSubExtensionClasses(pClassNames As %List) As %Status
}
}
$$$ThrowOnError(tStatus)
Set @..#SUBEXTENSIONGBL = tClassNames
Set @..#SUBEXTENSIONGBL = pClassNames
} Catch e {
Set tStatus = e.AsStatus()
}
Expand Down
22 changes: 16 additions & 6 deletions src/cls/IPM/General/ModuleInfo.cls
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Parameter XMLIGNOREINVALIDTAG = 1;
Parameter XMLIGNOREINVALIDATTRIBUTE = 1;

/// lowercase storage name of the module
Property Name As %IPM.DataType.ModuleName(%JSONFIELDNAME = "name") [ Required ];
Property Name As %IPM.DataType.ModuleName(%JSONINCLUDE = "NONE", XMLPROJECTION = "NONE") [ Required ];

Property Description As %String(%JSONFIELDNAME = "description", MAXLEN = 1000);

Expand All @@ -31,14 +31,24 @@ Property PlatformVersion As %String(%JSONFIELDNAME = "platform_version", MAXLEN
Property Repository As %String(MAXLEN = "", XMLPROJECTION = "NONE");

/// Case-sensitive display name of the module as it appears in the module manifest
Property DisplayNameInternal As %IPM.DataType.ModuleName(%JSONINCLUDE = "NONE") [ Internal ];
Property DisplayName As %IPM.DataType.ModuleName(%JSONFIELDNAME = "name", XMLNAME = "Name");

Property DisplayName As %IPM.DataType.ModuleName(%JSONFIELDNAME = "displayName") [ Calculated, SqlComputeCode = { Set {*} = $Case({DisplayNameInternal}, "": {Name}, : {DisplayNameInternal})}, SqlComputed ];
Method NameSet(val As %String) As %Status
{
Set i%Name = $$$lcase(val)
Set i%DisplayName = val
Return $$$OK
}

Method NameSet(val As %RawString) As %Status
Method DisplayNameSet(val As %String) As %Status
{
If (i%Name '= "") {
If (i%Name '= $$$lcase(val)) {
Return $$$ERROR($$$GeneralError, "DisplayName needs to be case sensitive form of module name: "_i%Name)
}
}
Set i%DisplayName = val
Set i%Name = $$$lcase(val)
Set i%DisplayNameInternal = val
Return $$$OK
}

Expand All @@ -54,4 +64,4 @@ Method VersionStringGet() As %String
Quit ..Version.ToString()
}

}
}
5 changes: 3 additions & 2 deletions src/cls/IPM/Lifecycle/Base.cls
Original file line number Diff line number Diff line change
Expand Up @@ -1090,6 +1090,8 @@ Method %Verify(ByRef pParams) As %Status
// Create a new namespace and load the module in it.
#dim tNSConfig As %IPM.Storage.ModuleSetting.NamespaceConfig
Set tNSConfig = ..Module.GetNamespaceConfig()
Set tSysReqs = ..Module.SystemRequirements
If $IsObject(tSysReqs), tSysReqs.Interoperability = "enabled" Set tNSConfig.EnableEnsemble = 1

// Create namespace in which to run tests and switch to it.
$$$ThrowOnError(##class(%IPM.Utils.Build).InitializeNamespace("VERIFY",tVerbose,.tNewNamespace,tNSConfig))
Expand Down Expand Up @@ -1492,7 +1494,7 @@ Method OnDetermineResourceDeployability(ByRef pParams, ByRef pResourceInfo, Outp
Set tSC = $$$OK
Try {
If $Data(pParams("Deploy","Parameter"),tDeployParameter)#2 && (tDeployParameter '= "") {
If ($Piece(pResourceInfo("Name"),".",*) = "CLS") {
If ($ZCVT($Piece(pResourceInfo("Name"),".",*), "U") = "CLS") {
Set tClass = $Piece(pResourceInfo("Name"),".",1,*-1)
If $$$comClassDefined(tClass) && $$$defMemberDefined(tClass,$$$cCLASSparameter,tDeployParameter) {
// e.g., HSDEPLOY, HSAADEPLOY
Expand Down Expand Up @@ -1608,4 +1610,3 @@ Query Packaging(pPackaging As %String = "") As %SQLQuery [ Final, SqlProc ]
}

}

43 changes: 36 additions & 7 deletions src/cls/IPM/Main.cls
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,30 @@ ClassMethod TerminalPrompt() As %String
Quit prompt
}

/// @API.Method
/// Get Version modules and current registry
/// example do ##class(%IPM.Main).GetVersion("zpm,zpm-registry",.out,.list)
ClassMethod GetVersion(ModuleName, ByRef out, list)
{
Do ..GetListModules("*", ModuleName, .list)
for i=1:1 { quit:'$d(list(i),ns)
set ns=$lg(ns,1)
for ii=1:1 { quit:'$d(list(i,"modules",ii),module)
set out($lg(module,1))=$lb(ns,$lg(module,2))
}
}
set sc=$$$OK
set sql="select URL from %IPM_Repo_Remote.Definition where Enabled = 1"
,rs=##class(%ResultSet).%New()
,sc=rs.Prepare(sql)
Set:sc sc=rs.Execute("")
If sc {
Quit:'rs.%Next()
set out=rs.Get("URL")
}
Quit sc
}

/// For use in unit tests that need to test if a command threw any exceptions.
ClassMethod ShellInternal(pCommand As %String, Output pException As %Exception.AbstractException) [ Internal ]
{
Expand All @@ -685,9 +709,11 @@ ClassMethod ShellInternal(pCommand As %String, Output pException As %Exception.A
If (tCommand '= "") {
Set tOneCommand = 1
}
do ##class(%IPM.Main).GetVersion("zpm",.out)
Set introMessageList = $ListBuild(
"Welcome to the Package Manager Shell (ZPM). Version: "_$$$FormattedLine($$$Green, ..GetVersionModule("zpm")),
"Enter q/quit to exit the shell. Enter ?/help to view available commands"
"Enter q/quit to exit the shell. Enter ?/help to view available commands",
"Current registry "_$$$FormattedLine($$$Cyan,$g(out))
)
Set tInShell = 0
For {
Expand Down Expand Up @@ -732,7 +758,7 @@ ClassMethod ShellInternal(pCommand As %String, Output pException As %Exception.A
Do ..Repository(.tCommandInfo)
} ElseIf (tCommandInfo = "load") {
Do ..Load(.tCommandInfo)
} ElseIf (tCommandInfo = "cos") {
} ElseIf (tCommandInfo = "exec") {
Write !
Xecute tCommandInfo("parameters","cos")
} ElseIf (tCommandInfo = "install") {
Expand Down Expand Up @@ -1127,12 +1153,14 @@ ClassMethod IsAvailable(pModuleName As %String, pNamespace As %String = "", pArg
If pNamespace'="" {
Set $namespace = pNamespace
}
Set module = ##class(%IPM.Storage.Module).NameOpen(pModuleName,0,.sc)
$$$ThrowOnError(sc)
If module.AvailabilityClass ="" {
Quit 1
If '##class(%IPM.Storage.Module).NameExists(pModuleName,.id) {
Return 0
}
Set availabilityClass = ##class(%IPM.Storage.Module).AvailabilityClassGetStored(id)
If availabilityClass = "" {
Return 1
}
Quit $ClassMethod(module.AvailabilityClass,"IsAvailable",pNamespace,pArgs...)
Quit $ClassMethod(availabilityClass,"IsAvailable",pNamespace,pArgs...)
}

ClassMethod GetNamespaceDefaultModifiers(Output pDefaultArray) [ Internal ]
Expand Down Expand Up @@ -2945,3 +2973,4 @@ ClassMethod DisplayModules(ByRef pList, pNumbered As %Boolean = 0, pWithNamespac
}

}

2 changes: 1 addition & 1 deletion src/cls/IPM/Repo/Filesystem/Cache.cls
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ Storage Default
<Value>PlatformVersion</Value>
</Value>
<Value name="16">
<Value>DisplayNameInternal</Value>
<Value>DisplayName</Value>
</Value>
</Data>
<DataLocation>^IPM.Repo.Filesystem.CacheD</DataLocation>
Expand Down
41 changes: 23 additions & 18 deletions src/cls/IPM/Repo/Manager.cls
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ Method SearchRepositoriesForModule(pSearchCriteria As %IPM.Repo.SearchCriteria,
If $$$ISERR(tSC) {
Quit
}

Set tServer = ##class(%IPM.Repo.Definition).%OpenId(tRes.%Get("ID"),,.tSC)
Set repoID = tRes.%Get("ID")
Set tServer = ##class(%IPM.Repo.Definition).%OpenId(repoID,,.tSC)
If $$$ISERR(tSC) {
Quit
}
Expand Down Expand Up @@ -93,34 +93,39 @@ Method SearchRepositoriesForModule(pSearchCriteria As %IPM.Repo.SearchCriteria,
For i=1:1:tServerResults.Count() {
Set item = tServerResults.GetAt(i)
#; Sorting versions
Set versions(tServer.Name, +item.Version.Major, +item.Version.Minor, +item.Version.Patch, " "_item.Version.Patch_"_"_item.Version.Prerelease) = item
Set versions(+item.Version.Major, +item.Version.Minor, +item.Version.Patch, " "_item.Version.Patch_"_"_item.Version.Prerelease, repoID, tServer.Name) = item
}
}
Set name = ""
For {
Set name = $Order(versions(name))
Quit:name=""
Set major = ""
For {
Set major = $Order(versions(name, major), -1)
Quit:major=""
Set minor = ""
For {
Set minor = $Order(versions(name, major, minor), -1)
Set major = ""
For {
Set major = $Order(versions(major), -1)
Quit:major=""
Set minor = ""
For {
Set minor = $Order(versions(major, minor), -1)
Quit:minor=""
Set patch = ""
For {
Set patch = $Order(versions(name, major, minor, patch), -1)
Set patch = $Order(versions(major, minor, patch), -1)
Quit:patch=""
Set sub = ""
For {
Set sub = $Order(versions(name, major, minor, patch, sub), 1, item)
Set sub = $Order(versions(major, minor, patch, sub), 1)
Quit:sub=""
Do pResults.Insert(##class(%IPM.Storage.QualifiedModuleInfo).%New(name, item))
Set repoOrder = ""
For {
Set repoOrder = $Order(versions(major, minor, patch, sub, repoOrder), 1)
Quit:repoOrder=""
Set name = ""
For {
Set name = $Order(versions(major, minor, patch, sub, repoOrder, name), 1, item)
Quit:name=""
Do pResults.Insert(##class(%IPM.Storage.QualifiedModuleInfo).%New(name, item))
}
}
}
}
}
}
}
} Catch e {
If (e.Name["ZSOAP") && $Data(%objlasterror) {
Expand Down
Loading
Loading