go to post Robert Cemper · Mar 20, 2018 OPEN and USE do not consume an additional license / license slotOut of a running job you consume an additional license slot only by a JOB command.
go to post Robert Cemper · Mar 19, 2018 If you didn't correct the other 2 mistakes it's no surprise.The code should look like this: set tSC=$$$OK set ^tvalue=1 set ^tvalue=$INCREMENT(^tvalue) #dim rs as EnsLib.SQL.GatewayResultSet #dim reStream as %Stream.GlobalCharacter if $$$ISERR(pRequest) quit pRequest set sc=..Adapter.ExecuteQuery(.rs,..GetTheSubmissionData(pRequest.pMonth, pRequest.pApp, pRequest.pRef, pRequest.pInPat)) if $$$ISERR(sc) quit sc set reStream=##class(%Stream.GlobalCharacter).%New() while rs.Next() { set (comma,rec)="" for i=1:1:rs.GetColumnCount() { set rec=rec_comma_""""_rs.GetData(i)_"""" set comma="," } ;; set reStream="" ;; dont kill your stream before using !!! OMG set sc=reStream.WriteLine(rec) } do reStream.%Save() ;; sc doesn't reflect if there is a content in reStream. check Size instead set sc=''reStream.Size if ($$$ISOK(sc)){ set pResponse.pReqDetails=reStream set reStream=""} else {$$$TRACE("There is nothing on the stream")} set tSC=pResponse.%Save() set tSC=..SendRequestSync(..TargetConfigNames,pResponse,.pOutput) Quit tSC
go to post Robert Cemper · Mar 16, 2018 I just can detect.#dim reStream as %Stream.GlobalCharacterin your code but nowhere set reStream=##class(%Stream.GlobalCharacter).%New() or similar. So no Object.
go to post Robert Cemper · Mar 16, 2018 Checking some hints for SMTP.office365.com https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin-mso_dep365/smtpoffice365com-relay-535-573-authentication/9de8d176-1c07-4e66-b14f-148d3bd51bbfI see that the require SSL/TLS encryption.In your code I miss Set server.SSLConfiguration = "whatever you named it" This might most likely cause the problem. In anticipation of your next post: How to setup SSL/TLS configuration.http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_ssltls#GCAS_ssltls_createedit
go to post Robert Cemper · Mar 16, 2018 It's indeed incredible simple. You just have to bend your fingers a little bit.And virtual namespace %ALL allows even to have your own "SYSLIB" like behavior with common code.
go to post Robert Cemper · Mar 15, 2018 resolving the dependencies in the correct order.That's probably the weakest spot and requires often manual intervention.
go to post Robert Cemper · Mar 15, 2018 If DATA and CODE are separated then taking over CACHE.DAT from a final test environment could be an option.But as the default for a namespace is DATA+CODE and this is widely spread also in large applications inreal environments recompiling is the only possibility. Many years back even a special change was implemented inCaché to support compiling during runtime of the code.I personally dislike both and fought for clear separation of CODE from DATA. With very limited success.
go to post Robert Cemper · Mar 13, 2018 I Googled just a few notes:GE Healthcare to Acquire IDX Systems Corporation (2005)https://www.businesswire.com/news/home/20050929005340/en/GE-Healthcare-Acquire-IDX-Systems-Corporation-Significantlyand wiki tells me it runs on Caché:https://en.wikipedia.org/wiki/IDX_SystemsBut this doesn't tell us how it communicates with users and external devices.Caché is definitely not blocking a move to Linux. C++ based connections may prevent it if you don't have the sources and a lot of experience to test and debug it.Eventually, other members of the developers' society have more detailed insight.But I think GE should know it.
go to post Robert Cemper · Mar 13, 2018 find here the list of supported platforms for Caché.http://docs.intersystems.com/documentation/ISP/ISP-20172/ISP_technologies.html#ISP_platforms not clear what idx stands for and how it relates. At least It is no language for Caché
go to post Robert Cemper · Mar 13, 2018 you code is missing the final Quit resultto satisfy the Set tSC=..CheckRequests(.pRequest,.pResponse)so you return nothing or the code you showed to us is incompleteI also miss the closing } of WHILE in your snippet.If you have no return value write instead DO ..CheckRequests(.pRequest,.pResponse)
go to post Robert Cemper · Mar 13, 2018 What about a helper classmethod if the expected result is a stringClassmethod DumpHelper(call as %String ) { write @call,! quit}
go to post Robert Cemper · Mar 12, 2018 do you look for $System.Util.CreateGUID() ?http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.Util#METHOD_CreateGUIDProperty myguid As %GUID [ Required ];Will not work as %Lbrary.GUID is an abstract utility class and does not extend %DataType. So it is no DataType and has no Accessors!http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25Library.GUIDuse instead.:Property myguid As %String [Required];andS obj.myguid = $System. Util.CreateGUID() But you are free to define your own data type combining %String and %GUID
go to post Robert Cemper · Mar 9, 2018 there is an external config file in %cacheroot%/cache.cpf that holds your configuration. It is loaded at startup.You can verify it with any text editor and check especially directories. of your DBsAnd you see also NAMESPACE definitions.The important part is at the beginning.[ConfigFile]Version=2017.226[Databases]CACHESYS=C:\InterSystems\17E20\mgr\CACHELIB=C:\InterSystems\17E20\mgr\cachelib\CACHETEMP=C:\InterSystems\17E20\mgr\cachetemp\CACHE=C:\InterSystems\17E20\mgr\cache\CACHEAUDIT=C:\InterSystems\17E20\mgr\cacheaudit\BLOCKS=C:\opt\blocks\data\DOCBOOK=C:\InterSystems\17E20\mgr\docbook\ENSDEMO=C:\InterSystems\17E20\mgr\ensdemo\ENSEMBLE=C:\InterSystems\17E20\mgr\ensemble\ENSEMBLEENSTEMP=C:\InterSystems\17E20\mgr\ensemble\ensembleenstemp\ENSEMBLESECONDARY=C:\InterSystems\17E20\mgr\ensemble\ensemblesecondary\ENSLIB=C:\InterSystems\17E20\mgr\enslib\SAMPLES=C:\InterSystems\17E20\mgr\samples\TEST=C:\opt\blocks\test\USER=C:\InterSystems\17E20\mgr\user\[Namespaces]%SYS=CACHESYSBLOCKS=BLOCKSDOCBOOK=DOCBOOKENSDEMO=ENSDEMOENSEMBLE=ENSEMBLESAMPLES=SAMPLESUSER=USER
go to post Robert Cemper · Mar 8, 2018 IF you did a Restore of "%SYS" DB (.../mgr/CACHE.DAT)then you may have destroyed essential instance specific installation informationGo back and do a fresh install. And don't touch %SYS during restore.
go to post Robert Cemper · Mar 8, 2018 IF it was really only permissions you could run ^SECURITY from terminal promptUSER>zn "%SYS"%SYS>d ^SECURITY1) User setup2) Role setup3) Service setup4) Resource setup5) Application setup6) Auditing setup7) Domain setup8) SSL configuration setup9) Mobile phone service provider setup10) OpenAM Identity Services setup11) Encryption key setup12) System parameter setup13) X509 User setup14) Exit Option? 11) Create user2) Edit user3) List users4) Detailed list users5) Delete user6) Export users7) Import users8) Exit or Option? 21) Create role2) Edit role3) List roles4) Detailed list roles5) Delete role6) Export roles7) Import roles8) Exit or Option? 31) Edit service2) List services3) Detailed list services4) Export services5) Import services6) Exit Option? 4Export which services? * => *Export to file name ServicesExport.xml =>and so on...and Import on your test server .....But take care how you handle external connections!
go to post Robert Cemper · Mar 8, 2018 backups typically backup a DB in Cachè but never a full installation. (e.g ref to registry and similar)Do a fresh installation and next move / restore your DB
go to post Robert Cemper · Mar 8, 2018 take a look to class %SYSTEM.WorkMgr.I think this could match your description.http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.WorkMgr
go to post Robert Cemper · Mar 8, 2018 Thanks Vitaly!My almost first task when I joined ISC was to translate a CSP training developed by "Salva" Jose-Tomas Salvadorfrom Spanish to German and English.So I have very personal feelings about this subject.