go to post Chris Stewart · Nov 20, 2017 Are there locks against this global? You can check this with View Locks in the Management PortalAlso, are you sure that the Backup was taken using an appropriate backup tool? Generally a backup will be taken from a consistent state, and would not include locking
go to post Chris Stewart · Nov 10, 2017 Yes, but using a relationship to do this would automate a lot of cross referencing. For the example above, a 1-1 relationship would keep each side correct, when an update is made on either sideSee http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=... for more details
go to post Chris Stewart · Oct 27, 2017 So I think you're encoding it as an Authorization Header? In that case, you can extract this from set Auth = %request.GetCgiEnv("HTTP_AUTHORIZATION")then process this however you need to (for example if you have something like "Basic 123908109abc", this will unpack it and decode the Base64) set AuthType = $P(Auth," ",1) set AuthString = $P(Auth," ",2) set DecodeAuthString = $SYSTEM.Encryption.Base64Decode(AuthString) set userid = $p(DecodeAuthString,":",1) set token = $p(DecodeAuthString,":",2)
go to post Chris Stewart · Oct 27, 2017 HI SoufianeI'd need more info about the format of the data and how you are sending it to comment any further
go to post Chris Stewart · Oct 27, 2017 Hi SofianeI'm assuming you want to read this from a JSON payload. You can follow the instructions in https://community.intersystems.com/post/lets-write-angular-1x-app-cach%C... to implement a fromJSON method, after reading the payload from the HTTPRequestHTHChris
go to post Chris Stewart · Sep 6, 2017 If you're iterating that would typically be done with a CURSOR. Each fetch cycle would pop the new state of the variables in, in line with each row (make sure you check for SQLCODE while doing this, to determine if there is a row to fetch).More documentation on this is athttp://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...EDIT:Mixed my dynamic SQL methods there. You would use rset.%Next to do this iteration in %SQL.Statement, but the general theory still holdshttp://localhost:57773/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_dynsql#G...
go to post Chris Stewart · Sep 5, 2017 Hi Paul You will need to execute it after Preparing it SET rset = tStatement.%Execute()
go to post Chris Stewart · Aug 31, 2017 http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...$EXTRACT can also be used for substringing, and should prove useful
go to post Chris Stewart · Aug 21, 2017 HI RuiUnicode 0x3 is the ETX character, which can be used as newline in certain text editors. Any control chars are disallowed in XML processing, so these should be stripped from whatever query you are using to drive this reportHTHChris
go to post Chris Stewart · Aug 8, 2017 HI MinuGBLOCKCOPY is used to create a smaller database, after some data is removed and leaves sparse space in the database. If your database is full, then copying it will not save space. Before anything else, you should check the size of your globals and remove any data that you do not need. GBLOCKCOPY should then reclaim some space for you
go to post Chris Stewart · Aug 7, 2017 Hi KishanA method is attached to a specific instance of an Object class. A Classmethod can be called without having to instantiate the object.So, we could have a Method on a Person object to update addressdo person.UpdateAddress("New address")Whereas, for a ClassMethod, we could define a Classmethod to give us as object instance to then work onset person = ##class(User.Person).CreatePerson("FirstName","LastName",Age) Hope that helps?
go to post Chris Stewart · Aug 4, 2017 Hi ManojThere's example code of reading a JSON string from a POST request, and then transforming it to an object inhttps://community.intersystems.com/post/lets-write-angular-1x-app-cach%C3%A9-rest-backend-part-9Hope that helpsChris
go to post Chris Stewart · Aug 3, 2017 Hi ConfusedIf you're a Trak customer, your best option is to raise a TRC to have the appropriate Support team assist. However, IE11 isn't a fully supported platform for Layout Editor, though it will work. You will need the Microsoft DHTML Editing Component at a minimum, this can be obtained fromhttps://www.microsoft.com/en-gb/download/details.aspx?id=8956Hope this helpsChris
go to post Chris Stewart · Aug 3, 2017 Jeffrey, there's usually free parking on Cambridge Parkway, which is a short walk from the ISC Office
go to post Chris Stewart · Jul 27, 2017 Hi RubensFabian wrote a great article about RegExp matching in the Routes here:https://community.intersystems.com/post/advanced-url-mapping-restHowever, I don't believe that you can do conditional expressions inside the Route. I think you would instead have to do this in your Method code (happy to be corrected by someone more clever than I am)
go to post Chris Stewart · Jul 24, 2017 HI Sebastian You may want to look at the Caché FileServer linked from the comments on this posthttps://community.intersystems.com/post/url-security-over-2-applicationsThis may be a helpful starting point for you?
go to post Chris Stewart · Jul 3, 2017 Hi SimchaI've written a multi part guide to doing just this (it's not complete yet, but I've been struggling to get enough time to finish it). You can find it here - https://community.intersystems.com/post/lets-write-angular-1x-app-cach%C3%A9-rest-backend-start-hereHope that helpsChris
go to post Chris Stewart · Jun 28, 2017 This tip has saved me a ton of hassle in a number of occasions. One thing to note is that you will inherit the OS user that Caché is running under, so always remember to select your operating user carefully when installing Caché, so as to not give terminal users network access that they may not otherwise have
go to post Chris Stewart · Jun 28, 2017 I don't think this is a great idea, to mix the technologies, as both will try to manipulate the DOM, and you would likely see strange behaviourIf you are migrating the application in a modular fashion, I've found it's best to keep the functionality seperate, and tune the navigation to switch between the appropriate technologies and migrate the existing pages as you go. The only thing to be careful about is your %session state if you do this (I've barely used %session on my Angular code, and instead try to write everything to work in a stateless fashion)
go to post Chris Stewart · Jun 12, 2017 There can be more to "speed" that just execution time of your code. If you need to add an index to help performance, then a Caché SQL query will be able to utilise it without any code changes. If you are using $Order, then you need to spend some time writing and testing your new code.I typically use SQL to identify objects, then Object methods to interact with them, but for simple updates of large numbers of objects, I'll usually use a simple SQL Update. The beauty of Caché is the flexibility to use the best tool for the task at hand