You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have a business process with a compile issue. When I try to fix the compile with VS Code (Server mode), the class in Iris is reverted back to the broken version from my git checkout when I would expect the fixed version would be exported.
Basically, the signature of the OnRequest() method got changed to this:
Class Demo.MyProcess Extends Ens.BusinessProcess
{
Method OnRequest(pRequest As Ens.StreamContainer, Output pResponse As %RegisteredObject) As %Status
{
/// business logic
Quit $$$OK
}
When I save the class as-is, I get the following output:
exporting new version of Demo.MyProcess.CLS to C:\InterSystems\FHIR2025\mgr\repo\Demo\cls\Demo\MyProcess.cls
Compilation started on 08/04/2025 09:42:21 with qualifiers 'cuk'
Compiling class Demo.MyProcess
ERROR #5478: Keyword signature error in Demo.MyProcess:Method:OnRequest, keyword 'method argument/s signature' must be '%Library.Persistent,%Library.Persistent' or its subclass
> ERROR #5030: An error occurred while compiling class 'Demo.MyProcess'
Detected 1 errors during compilation in 0.293s.
When I fix the method signature and save to recompile the class, I get the same log. It is as if the original version gets exported/imported/compiled before my updates are actually saved and compiled.
Work Around: I found that if I edit the file directly in the git checkout on my OS, then Iris imports that when I open (load) the file to view.
Module Version: 2.12.2
$zv: IRIS for Windows (x86-64) 2025.1 (Build 223U) Tue Mar 11 2025 18:14:42 EDT
I'm still trying to figure out a fix. A workaround for now is to turn off the "Decompose Productions" flag in settings, fix the class definition, compile, and turn the "Decompose Productions" flag back on.
The root cause is ##class(SourceControl.Git.Production).IsProductionClass() which should be doing a preview load of the class from disk into a process-private global. Instead it is doing a real load and overwriting the class definition.
Activity
cambot commentedon Aug 5, 2025
For what it's worth, I loaded the latest version of this module from the main branch (Commit cbcdc5b) and still see this issue.
isc-pbarton commentedon Aug 8, 2025
I'm still trying to figure out a fix. A workaround for now is to turn off the "Decompose Productions" flag in settings, fix the class definition, compile, and turn the "Decompose Productions" flag back on.
The root cause is
##class(SourceControl.Git.Production).IsProductionClass()which should be doing a preview load of the class from disk into a process-private global. Instead it is doing a real load and overwriting the class definition.