go to post David Hockenbroch · Jan 18, 2023 Here's some documentation on the INTO clause. As Robert already said, though, it's a way to do an embedded query and store the result columns into variables in the host language.
go to post David Hockenbroch · Jan 10, 2023 Are you sure that's where your problem is? If I do: select MONTH(dateadd(mm,-1,GETDATE())) I get 12. If I create a query with a where clause similar to yours on my data, it works as expected.
go to post David Hockenbroch · Nov 18, 2022 Is that what you want to do, or should you be defining your property as: Property Status As %String(VALUELIST = ",InProgress,Done,Canceled") [ InitialExpression = "InProgress" ]; This makes InProgress the default status when a new CarDealer.Order is created.
go to post David Hockenbroch · Nov 15, 2022 This might be easier to do with XPath rather than a loop. First, you'll need to create a %XML.XPATH.Document object, maybe using the create from string method: set sc = ##class(%XML.XPATH.Document).CreateFromString(xmlstring,.mydoc) Check that the status you get back from that is not an error. If it isn't, you mydoc should be an XPath document. Then you should be able to use the EvaluateExpression method of that document to get what you want, something like: set sc = mydoc.EvaluateExpression("/Msg/Parties/Party[AgentId=1]/OrgCode","",.value) If that status is okay, the value you're looking for will be in value, unless there are multiple XML nodes that match that path. W3 provides the XPath syntax specification here.
go to post David Hockenbroch · Nov 9, 2022 SQL gateway connections provide a way to make an ODBC or JDBC connection to an external data source. It can be another IRIS instance, but doesn't have to be. So whatever you can do with either of those kinds of connections, you can do with the SQL gateways.
go to post David Hockenbroch · Nov 7, 2022 I've had to do this a time or two in a development environment. Sometimes you can find it under System Operation > Processes and terminate the process. If that doesn't work, you can look at the process ID of the process and kill it at the OS level (the kill command in Linux, or taskkill in Windows). Just be aware that depending on what it's doing and how the task was written, you may end up with some weird stuff.
go to post David Hockenbroch · Oct 10, 2022 Others have already explained why you can't use those list functions on a list of datatype. As an alternative approach, though, you could change your persistent class to save the original string that you are using to create the list, then use your $ListFromString etc. on that as you have been.
go to post David Hockenbroch · Oct 7, 2022 Is oneFldLogin.cls the login page for the application? Go to your management portal, System Administration, Security, Applications, Web Applications, and find the web app. At the bottom, under Custom Pages, is that set as the login page? If you open it in Studio or VS Code, does oneFldLogin.cls extend %CSP.Login?
go to post David Hockenbroch · Sep 29, 2022 You could create a new class that extends %ZEN.Component.toolbar, and override the ongetdata property to be a certain method name, then define that method in the class. Then you'd have your own custom tag to use in your zen pages. Here's more information on creating custom Zen components. Inevitably, though, someone is going to come in here and tell you not to use Zen in any new development because it's deprecated, FYI. Which makes me sad, because I still really like working with it.
go to post David Hockenbroch · Sep 29, 2022 In the management portal, go to System Administration, Security, Applications, Web Applications and find your application. Under security settings, disable Unauthenticated, and enable Password. Then, when you send your requests, you need to include a base 64 encoded basic authentication header with the username and password, or on the end of the URL include ?CacheUserName=username&CachePassword=password. Keep in mind, though, that if you aren't using HTTPS, you could end up transmitting a username and password in plain text or in a very easily decrypted way. If you want only specific users to be able to access the API, consider creating a new Resource then setting that resource as the Resource Required in the security settings, then only giving that resource to people who need to access the API.
go to post David Hockenbroch · Sep 28, 2022 Here's the documentation for that function. It looks like ##CLASS(Ens.Util.FunctionSet).Lookup("AllowLT", pRequest.GetValueAt("OBR:21"),"0",4) would do what you're asking; if the table or value can't be found, it'll return a 0.
go to post David Hockenbroch · Sep 22, 2022 If you have multiple cursors anywhere in the class with the same name, that will come up. If it says C10, then you must have two different places where you're doing a "DECLARE C10 CURSOR FOR . . ." and you'll have to rename one of those cursors.
go to post David Hockenbroch · Jul 29, 2022 You can probably make that work, but why not put the method in a %CSP.REST class to start with and have the CSP page call it? That seems more in line with the way those things are meant to be used.
go to post David Hockenbroch · Jul 18, 2022 I think what you're looking for might be setting the isolation level to read committed. This will make the process wait for the in-progress changes have been committed, though you'll still want to make sure you handle SQLCODE -114 somehow, too. That's the code you get back if there's a timeout waiting for the lock. You should be able to set that using: %SYSTEM.SQL.Util.SetOption("IsolationMode",1,.oldval) If you do that before your query, the rest of the process will run at that isolation level. You can use that same method to set the LockTimeout too, by the way. Default is 10 seconds.
go to post David Hockenbroch · Jul 18, 2022 The error seems to occur when it's trying to access the log file. Under you advanced settings, have you checked where it's trying to find or create your log file and made sure it's valid?
go to post David Hockenbroch · Jun 6, 2022 Double check your IP address and port in the settings on the Preferred Server menu.
go to post David Hockenbroch · May 31, 2022 It sounds to me like there's an issue with the design there. If the field can be duplicated, why is it marked as unique at all?
go to post David Hockenbroch · May 31, 2022 Rochdi, I'd get rid of: Set Line = File.Read(1000)While (File.Read(1000)'="") { S mystring=mystring_File.Read(1000)} And then after your set Httprequest = ##class(%Net.HttpRequest).%New(), use: set sc = Httprequest.EntityBody.CopyFromAndSave(File) Then you can check sc to see if you got any errors doing that.
go to post David Hockenbroch · May 31, 2022 Your tResult will have a property called %SQLCODE that gets set when the query is run. If %SQLCODE = 100, that means that the query ran successfully but returned no results or that you've reached the end of the result set. If %SQLCODE = 0, you have some results. If %SQLCODE is less than zero, that's an error code. if tResult.%SQLCODE = 100{ //whatever you want to do for no results here }