go to post John Murray · Jan 31, 2017 There's no BOM, and the XML header claims that the content is UTF-8 encoded. But on your other post you reported that your content contains a left-single-quote character and that the SAX parser choked on a character, which I suspect was this character in Unicode form rather than UTF-8 encoded.So, what originally wrote the pInput stream's content? Did it actually UTF-8 encode the data it wrote to the stream?
go to post John Murray · Jan 31, 2017 What does the start of the pInput stream contain? One quick but ugly way of checking this would be to write it to a scratch global before the call to OpenStream which errors, e.g. Set ^tMurillo=pInput.Read(255) Do pInput.Rewind() Then afterwards run the following in Terminal: w ^tMurillo w $a(^tMurillo,1),!,$a(^tMurillo,2),!,$a(^tMurillo,3) This should show us whether the creator of the stream started it with a BOM character or sequence, and also whether there is an XML header specifying an encoding. That information is apparently important to the %XML.SAX.StreamAdapter used by %XML.SAX.Parser, which in turn is what the OpenStream method of %XML.Reader uses.
go to post John Murray · Jan 30, 2017 I'll repeat what I wrote on the previous DC thread you opened about this issue:I think you need to focus on the input stream. What type of stream is pInput ? You can get its classname using pInput.%ClassName(1)If it is a file stream, what wrote it? Does its file contain a BOM at the start?
go to post John Murray · Jan 30, 2017 Please clarify what you mean by "browse the file contents".Are you opening c:\TEMP\SoapTree.xml in a text editor?Maybe that editor is assuming that the file is UTF8-encoded.Can you view it in a tool that shows you the byte values it contains?Did you have a particular reason for choosing to write the file using an instance of %Stream.FileBinary instead of %Stream.FileCharacter?Also, be aware that the WebMethod classmethod of %SOAP.WebBase is tagged as "Internal" and commented thus: /// This method is used internally by Caché. You should not make direct/// use of it within your applications. There is no guarantee made about either/// the behavior or future operation of this property.
go to post John Murray · Jan 26, 2017 I think you need to focus on the input stream. What type of stream is pInput ? You can get its classname using pInput.%ClassName(1)If it is a file stream, what wrote it? Does its file contain a BOM at the start?You might need to open a support case with WRC. I don't work for InterSystems.
go to post John Murray · Jan 26, 2017 My guess is that your pInput stream contains XML encoded as UnicodeLittle characters.The left single quote character is unicode codepoint 8216 decimal which is 2018 hex. In UnicodeLittle this gets transposed and the 0x18 comes first, followed by the 0x20.
go to post John Murray · Jan 26, 2017 What is the nature of the failure?Perhaps when you save your LUT changes there's a small time window during which no LUT entries exist. This is pure speculation on my part, as I haven't investigated. But if it's true then I can imagine this could cause problems in the production. In which case, perhaps you need to suspend at least the relevant parts while you save the change.
go to post John Murray · Jan 17, 2017 %Admin_Task is a Resource, as are %Admin_Manage and %Admin_Operate.In contrast, %All is a Role.Access to SQL tables is controlled either at the Role level or at the individual User level.If your user has permissions on the %Admin_Task resource because they hold a role, then it may be appropriate to grant the necessary SQL permissions to that role. By doing this, anyone else holding the role will also be able to access the table.To grant the SQL permissions, edit the role (or user) definition. Go to the "SQL Tables" tab. Set the namespace dropdown to "%SYS" and check the box to include system items:In my example above the %Operator role has no permissions on SQL tables in %SYS.Use the Add Tables button to add a row that gives this role permission to perform a SELECT on the %SYS_Task.History table .
go to post John Murray · Jan 9, 2017 Aha! I have changed those two settings and I now see the extra columns of checkboxes.
go to post John Murray · Jan 9, 2017 I got a couple more of these over the weekend, despite having checked and altered my settings per your other post:
go to post John Murray · Jan 9, 2017 Thanks Eduard. I'd add, this has to be done from the %SYS namespace.
go to post John Murray · Jan 9, 2017 I think this limitation is unfortunate. Encountering the "Service unavailable" when you're trying to evaluate Caché for the first time might discourage you from continuing.
go to post John Murray · Jan 9, 2017 Quick'n'dirty way is to edit the cache.cpf file and then reactivate the config change. Simplest way to reactivate (though not always convenient) is to restart Caché.
go to post John Murray · Jan 6, 2017 My page looks different:As well as not having the extra checkboxes your screenshot shows, mine are all unchecked but I still get the notifications.
go to post John Murray · Jan 5, 2017 Thanks for doing that. The DC forum software didn't allow me to answer my own question.
go to post John Murray · Jan 5, 2017 Thanks for the information Jamie. At the time I posted the question I don't think this level of back-compatible implementation of Studio's existing mechanism was available. I'm pleased to confirm that in the Atelier 1.0 release our existing add-ins "just work". Well done team!
go to post John Murray · Jan 5, 2017 A new set of keys was published yesterday at the Field Test page.
go to post John Murray · Dec 19, 2016 Is the E: drive a real local drive, or is it a mapped driveletter intended to give you access to a folder shared by another machine?
go to post John Murray · Dec 19, 2016 Sorry to hear about your experience with Deltanji. I've not been able to find any sign that you contacted us at George James Software for assistance. Given the chance, we're generally helpful folk.
go to post John Murray · Dec 16, 2016 Also, the $ZF calls made by Studio via your source control class will operate with the server credentials that the InterSystems superserver (port 1972, typically) uses. On Windows that's the logon account of the Caché/Ensemble/HealthShare service. Whereas when you launch a Caché terminal onto you local instance from your Windows desktop, your $ZF calls will use the credentials you logged in to the Windows desktop with. Similarly on non-Windows platforms.