go to post Otto Medin · Dec 10, 2020 ...or using a stored procedure along these lines: ClassMethod RenameTable(oldName As %String, newName As %String) As %String [ SqlProc ]{ try { &sql(select %ID into :className from %Dictionary.ClassDefinition where SqlTableName = :oldName ) if SQLCODE set status = "Error: Table '" _ oldName _ "' not found." quit set classDef = ##class(%Dictionary.ClassDefinition).%OpenId(className) set classDef.SqlTableName = newName set saveStatus = classDef.%Save() set status = $case(saveStatus, 1: "OK", : "Error: " _ $system.Status.GetErrorText(saveStatus)) } catch { set status = "Error: " _ $zerror } return status}Note: This doesn't handle the special case where there is no 'SqlTableName' defined.
go to post Otto Medin · Aug 7, 2017 Hi Kishan,The error message indicates that you're trying to access a property called 'value' in a collection of objects (%Collection.ListOfObj), but there is no such thing. My guess is that you're trying to access a property of one of the objects in the collection, in which case you need to use the 'GetAt' method of the collection object to specify which one you're after.Here's more information on how to handle collections of objects.Otto
go to post Otto Medin · Jun 8, 2017 Depending on the exact behavior you're after, the "binary follows" operator (]) may do the trick. For your two values, it yields the desired result, regardless of how you set them: USER>set a = "1.0", b = "2.2" write a]b 0 USER>set a = "1.0", b = 2.2 write a]b 0 USER>set a = 1.0, b = 2.2 write a]b 0 USER>set a = 1.0, b = "2.2" write a]b 0
go to post Otto Medin · May 22, 2017 Hi,Here's how to add an HL7 Business Operation to your Production:https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EHL72_business_operationNote that the instruction to "Click HL7 Output" refers to a tab in the wizard window. Once there, you can select HTTP as the Output Type.Otto
go to post Otto Medin · May 22, 2017 Hi,Here's how to add an HL7 Business Operation to your Production:https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EHL72_business_operationNote that the instruction to "Click HL7 Output" refers to a tab in the wizard window. Once there, you can select HTTP as the Output Type.Otto
go to post Otto Medin · May 22, 2017 Hi,A couple of questions, in order to better understand what to recommend:Is the Caché instance where you're running the script an ECP client of the remote Caché instance?I can't quite parse "on just one server for all server". Is there a typo in there somewhere?Cheers,Otto
go to post Otto Medin · May 18, 2017 USER>set (^x, ^x("a"), ^x("b","c")) = "" USER>set ref = "^x", count = $data(@ref)#2 USER>for count = count:1 set ref=$query(@ref) quit:ref="" USER>write count 3 USER> Perhaps someone has a more elegant way to make sure the root node gets counted...? Otto
go to post Otto Medin · May 17, 2017 Hi Jiri,The article you're referring to is from the early days of Ensemble, when we used an adapter library from a partner. This arrangement changed a few years ago, when the important needs of our users were sufficiently covered by our native adapter library. At that point, support for some non-critical interfaces was dropped.I've looked around for examples of AS2 use with Ensemble, but so far I've drawn a blank. Perhaps others can comment, but failing that, my advice is that you speak to your local InterSystems representatives about your requirements and potential ways forward.Kind regards,Otto
go to post Otto Medin · May 9, 2017 Hi Steve,Here are a couple of ways to do this:1. Use ^%GSIZE to look at the size of your index global before and after you populate your new index. (If you look at the class definition, the global name is listed as "IndexLocation" in the "Storage" section.)2. Map the index global to a separate database and look at the size of the CACHE.DAT.The advantage of the second approach is that subscript-level mapping lets you selectively isolate indices.Otto