go to post Robert Cemper · Feb 6 As a first step I would search Journals to find the Globals affectedif they are not in IRISTEMP/CACHETEMP or PPG of if Journal is switched off. In order to separate routine calls (abc^myroutine) from real ^globalsThough journal just shows Process Ids, no routine names.
go to post Robert Cemper · Feb 6 Great idea.Though it requires to run the whole application repeatedly.Eventually need to fix transactions broken by <PROTECT>
go to post Robert Cemper · Feb 4 I just identified a possible source of the hidden Python installation:https://docs.intersystems.com/iris20243/csp/docbook/DocBook.UI.Page.cls?KEY=GEPYTHON_prereqs#GEPYTHON_prereqs_version Microsoft Windows does not come with a default version of Python, andas of InterSystems IRIS 2024.2, the InterSystems IRIS installer for Windowsno longer installs Python for you. I did an upgrade from my previous IRIS 2024.1
go to post Robert Cemper · Feb 4 After un-install of my own python versionsPY was still there in a different hidden and protected version unknown for me.I detected it using regedit C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.12_3.12.2288.0_x64__qbz5n2kfra8p0\ I fail to explain where it came from (pre-installed win ?? )Manual killing it and reinstallation of an official Python distribution fixed it.BIG THANKS for your advise and help-
go to post Robert Cemper · Feb 4 Merci,As noted I'm back to python 3.9.13. sys.path looks correctthe problem persistsmessage log shows: (17064) 1 [Generic.Event] Python library failed to LoadLibraryEx :126 C:\Program Files\Python313\python3.dll NTFS error 126 indicates also a problem in DLL registry.I used an official 64bit installer. Probably Pre-WIn11 design.
go to post Robert Cemper · Feb 3 Your file format doesn't fit, but you are close.UDL Header is missing, also leading blanks in the lines as you have no labels.And you have to switch to namespace %SYS and back to make it work. ROUTINE DisplayDB[Type=INT] new $namespace zn "%SYS" set db=##class(Config.Databases).DatabasesByServer("",.dbList) for i=1:1:$LENGTH(dbList,",") { set dbName= $PIECE(dbList,",",i) write dbName,! } quit
go to post Robert Cemper · Feb 1 Try this from %Library.Routine: https://docs.intersystems.com/iris20243/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=%25Library.Routine#Deletewith flag=2 classmethod Delete(rtnname As %String, flag As %String = 0, supressbackup As %Boolean = 0, nsp As %String = $namespace) as %Status Delete the routine rtnname. If the rtnname is not fully qualified we will resolve this into a fully qualified name first and then proceed with the rest of the delete. For example if you specify 'test' and there is a 'test.mac' it will resolve to this, if there was only a 'test.obj' it will resolve the name to this. The parameter flag specifies how much to delete. The options are: 0 - Delete entire routine, for a MAC routine this will delete MAC, INT, OBJ. For an INT routine it will delete INT and OBJ, for a INC routine it will only delete the INC, for a BAS routine it will delete the BAS and the OBJ code. 1 - Delete just the named routine, for example for a MAC routine it will only delete the MAC and it will leave the INT and OBJ if present. 2 - Delete all the source code but leave any OBJ code.
go to post Robert Cemper · Jan 31 this fails with <ILLEGAL VALUE> if time part is negative (before 3AM)
go to post Robert Cemper · Jan 28 I think SQL is correct. The. problem is caused by INSERT or UPDATE for UPDATE NVL takes an existing field from a record and handles NULL for INSERT there is just no existing record to take a field from NVL() is not a synonym for $GET() we know from ObjectScript
go to post Robert Cemper · Jan 23 Take a look into OpenExchange there are 669 packages using DockerWhich means at least 90% of them are running on the latest free Community Versions down loaded.I bet there are enough examples that fit your needs
go to post Robert Cemper · Jan 22 something like this ? | COL | VAL | | ------ | --- | | codRep | 401, 428, 428, 464, 472 | | Abril | 100000, 180000, 160000, 0, 0 | | Agosto | 100000, 350000, 200000, 90000, 0 | then this is the SQL statement SELECT 'codRep' "COL", list($JUSTIFY(codRepresentante,10)) "VAL" FROM Ped.MetasRepresen where ano=2024 Union All SELECT ' Abril', list($JUSTIFY(vendasAbril,10)) FROM Ped.MetasRepresen where ano=2024 Union All SELECT 'Agosto', list($JUSTIFY(vendasAgosto,10)) FROM Ped.MetasRepresen where ano=2024
go to post Robert Cemper · Jan 22 I understand that you want to have full control of your versionIncrement and Decrement eventually also more than just +1,-1so VERSIONPROPERTY is a dead herring.BUT: You can achieve this in combination with a little SQL method. Property RowVer As %Integer [ SqlComputeCode = { if $i({*},$g(%IncDec)) }, SqlComputed, SqlComputeOnChange = (%%INSERT, %%UPDATE) ]; ClassMethod IncDec(step As %Integer = 0) As %Boolean [ SqlName = IncDec, SqlProc ] { set %IncDec=step quit 1 } Now you can set the increment to any %Integer of your choice.e.g. -1 decrement by 1, 1 increment by 1, 0 leave it How to use it: INSERT OR UPDATE pck.myTable SET name='Omer' WHERE pck.IncDec(-2)=1 AND .... any other conditions .... the IncDec SQLmethod is used as a static methodit doesn't reference any row dependencySo it is executed once before any row related processing. if you omit it then row_version is not changed
go to post Robert Cemper · Jan 22 the posted link is limited to HS licensed users only HERE is an official public link: VERSIONPROPERTYIt does basically the same as my previous SqlComputeOnChange examplehidden and with less typing
go to post Robert Cemper · Jan 21 I feel deeply honored and congratulate all other winning contributors!🌟🌟🌟🌟🌟🌟🌟
go to post Robert Cemper · Jan 21 what you see as \x.... is the hex image of a $LB("SERVERA.FOO.BAR.ORG/STAGE", ......)try ZZDUMP of any $LB() and you see length + type + content\t is the misinterpretation of length x\09my guess it's the hex_dump of some object
go to post Robert Cemper · Jan 21 Calculated doesn't do it.BUT; [ SqlComputed, SqlComputeOnChange = (%%INSERT, %%UPDATE) ]
go to post Robert Cemper · Jan 20 Yes i! I'm quite sure! DSTIME was introduced with or short after release of DeepSee morethan a decade back and didn't change.
go to post Robert Cemper · Jan 20 you have to add you own RowVersion property.my example only increases the version if there was a any change in the row. Property RowVer As %Integer [ SqlComputeCode = { if $i({*}) }, SqlComputed, SqlComputeOnChange = (%%INSERT, %%UPDATE) ]; works for SQL- and Object-mode