go to post Eduard Lebedyuk · Feb 18, 2019 Some general advice:Root directory should be a configurable setting,Before changing config, call NormalizeDirectory method of %File classCheck that directory exists and you can write to itIf it's Ensemble check that Ensemble can write to that directory tooTry to minimize the number of root directories, if you have to have several. It's preferable to use subdirectories.Calculate all subdirectories via calls to SubDirectoryName method from %File classYou should not have slash symbols for directories/files purposes in your code base.
go to post Eduard Lebedyuk · Feb 18, 2019 This seems to work for me: set x = "%sqlcq.something.value.foo" write x?1"%sqlcq".E That said, I assume you're iterating over some list of classes. If so, it may be better to add this or equivalent condition to the builder of the class list. If you do it via SQL and %Dictionary package, then excluding System classes, or generated classes or even classes that %STARTSWITH '%sqlcq' may be a better solution.
go to post Eduard Lebedyuk · Feb 16, 2019 Any particular reason to prefer: $system.Dictionary.comMemberKeyGet over $$$comMemberKeyGet ?
go to post Eduard Lebedyuk · Feb 16, 2019 Please modify your answer to point to InterSystems online documentation.
go to post Eduard Lebedyuk · Feb 8, 2019 You can easily develop your own custom function. Here's an example of a custom function which checks that the number is valid. /// Functions to use in rule definitions. Class Custom.Functions Extends Ens.Rule.FunctionSet { /// Returns 1 if a string is a number, 0 otherwise ClassMethod IsValidNumber(string As %String) As %Boolean [ CodeMode = expression, Final ] { $ISVALIDNUM(string) } }
go to post Eduard Lebedyuk · Feb 6, 2019 COS Faker is for generating random data.I'm more interested in meaningful initial data.
go to post Eduard Lebedyuk · Feb 6, 2019 Are you using EnsLib.FTP.InboundAdapter?Deletion happens after file is processed.What error are you getting?File size absolutely should not affect deletion result.
go to post Eduard Lebedyuk · Feb 6, 2019 Two ways to solve this error:Change permissions for the OS user you use to connect to the FTP so the user can delete (write permission) filesSet service setting DeleteFromServer to 0
go to post Eduard Lebedyuk · Feb 5, 2019 You can have a device which holds the connection and read from it when you want to.
go to post Eduard Lebedyuk · Feb 4, 2019 #) I know websocket server works from the browser client, just not from Cache client.#2) I do not have control (or even dev access) to the websocket server. It's not Cache-based through.
go to post Eduard Lebedyuk · Feb 4, 2019 Looks like there's a character stream somewhere. You should always use binary streams to upload binary data such as images, PDFs and so on.First of all you need to understand where the problem is: on sending or on receiving.To do that upload PDF using your BO and download it from AWS website manually (using your browser). If you can open downloaded file, then it means that your upload code is correct and the problem is with download code. If you can't open the file it means that you need to check upload code.
go to post Eduard Lebedyuk · Feb 4, 2019 Redefine HTTP adapter like this: Class Production.Adapter.HTTPOutboundAdapter Extends EnsLib.HTTP.OutboundAdapter { Method PostURL(pURL As %String, Output pHttpResponse As %Net.HttpResponse, pFormVarNames As %String, pData...) As %Status [ CodeMode = expression ] { ..SendFormDataArray(.pHttpResponse, "POST", ..GetRequest(), .pFormVarNames, .pData, pURL) } ClassMethod GetRequest() As %Net.HttpRequest { set request = ##class(%Net.HttpRequest).%New() set request.ContentType = "application/pdf" quit request } } And use it instead of default adapter. For better performance it would be better to reuse the request. Alternatively, you can call SendFormDataArray adapter method directly and it accepts request object.
go to post Eduard Lebedyuk · Feb 1, 2019 Please share the code from %0AmBx1^%sqlcq.PRD.2249 To do that open %sqlcq.PRD.2249 routine (int routine, afaik mac routine wouldn't have this ) If you can't find routines check that system saves sources for cached queries. If it doesn't set the setting to save routines, purge this query and run it again. After that you should be able to see the source. Also can you determine which part of SQL causes this error?
go to post Eduard Lebedyuk · Feb 1, 2019 Check Cache Security Administration Guide. And also this article.
go to post Eduard Lebedyuk · Jan 31, 2019 What status does this line return: set sc=conn.Connect("Production","username","password") Can you execute a trivial statement such as: SELECT 1 or (depenting on your target DBMS): SELECT 1 FROM dual or is it the same error?