Can you open in your browser the address that you have in parameter LOCATION of your class that extends %SOAP.WebClient? You should at least get an error "Invalid action" if your SOAP server is created in IRIS.
- Log in to post comments
Can you open in your browser the address that you have in parameter LOCATION of your class that extends %SOAP.WebClient? You should at least get an error "Invalid action" if your SOAP server is created in IRIS.
Where is the code for PersonSets2()? And how do you connect to external database?
In IRIS there are no built-in constructors. Classes that don't inherit from a system class are usually used as storage for class methods. Therefore, if you want to create an object you need to inherit your own class from one of the system classes, like %RegisteredObject (won't save your objects to the database), %SerialObject (won't save your objects to the database on its own), %Persistent (will save your objects to the database) etc. For example:
Class Sample.Header extends %Persistent
{
Property Key As %String;
Property Show As %Boolean;
}You're not executing it:
vism1.Execute(cmd);To make it shorter, can be
vism1.Execute('$$Check^logininput()');
sResult:=vism1.Value;You can also find an example in this GitHub repository.
For me it's a horrible news 😭 I really prefer to use Studio when explaining how to create properties (particularly relationships) and queries (particularly Class Queries based on COS) to students who see IRIS for the first and the last time during my classes. And when something goes wrong (and it does a lot of the time) it's usually easier to ask them to delete the code that produces error and rewrite it while I'm looking than to figure out what's wrong with it. And if it something more complicated than simple properties it can take a lot of time.
Besides, not all students know (and want/need to learn) how to use VS Code and look for proper plug-ins, extensions etc. It will really make my life that much harder.
This is a great opportunity to take and exam for free in a nice friendly setting. Therefore, I would definitely recommend using this opportunity.
From what I understand in the article, in Caché 5.0 and earlier versions the modern Management Portal is called System Management Portal.
I see that it's a known situation, they even added a NB in the post:
NB Dear contestants, please take into consideration that support for the contest cloud sql environment is only available during business hours M-F 9-5 US Eastern Time. We seem to be experiencing a failure of the cloud environment such that deployments are stuck in Pending status for some users.
Awesome! Thanks for the prize and congratulations to the winners and all participants!
Hmm, probably InterSystems folks were doing something. Works OK now.
.png)
Before:
Query GetAllOlderThan(Age As %Integer = 65) As %Query(ROWSPEC = "Name:%Name,Age:%Integer") [ SqlProc ]
{
}
ClassMethod GetAllOlderThanExecute(ByRef qHandle As %Binary, Age As %Integer = 65) As %Status
{
set qHandle = $lb($random(200), 0)
Quit $$$OK
}
ClassMethod GetAllOlderThanClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
set qHandle = ""
Quit $$$OK
}
ClassMethod GetAllOlderThanFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
if $ListGet(qHandle, 2) = $ListGet(qHandle, 1)
{
Set Row = ""
set AtEnd = 1
} else
{
Set Row = $Lb(##class(%PopulateUtils).Name(), ##class(%PopulateUtils).Integer(18, 90))
set $list(qHandle, 2) = $list(qHandle, 2) + 1
}
Quit $$$OK
}After:
Query GetAllOlderThan(Age As %Integer = 65) As %Query(ROWSPEC = "Name:%Name,Age:%Integer") [ SqlProc ]
{
}
ClassMethod GetAllOlderThanExecute(ByRef qHandle As %Binary, Age As %Integer = 65) As %Status
{
set qHandle = $lb($random(200), 0, Age)
Quit $$$OK
}
ClassMethod GetAllOlderThanClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
set qHandle = ""
Quit $$$OK
}
ClassMethod GetAllOlderThanFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
if $ListGet(qHandle, 2) = $ListGet(qHandle, 1)
{
Set Row = ""
set AtEnd = 1
} else
{
Set Row = $Lb(##class(%PopulateUtils).Name(), ##class(%PopulateUtils).Integer($ListGet(qHandle, 3), 90))
set $list(qHandle, 2) = $list(qHandle, 2) + 1
}
Quit $$$OK
}
}
> Hi @Iryna Mykhailova and welcome to the Tutorials Contest.
Why, thank you ![]()
Both %SQLQuery and %Query are class queries. As for the Studio - I do believe it's the easiest way for people who start working with IRIS to get acquainted with the technology!
You are right, I forgot to keep in mind that I have a parameter for the second example. I will correct it to reflect that I'm looking for people older than the exact age. Thanks for the heads-up!
I know about multidimensional properties. But at this pint they aren't even listed as an option in the Wizard. And I'm not sure they are that useful for modern applications. I would guess their use was to transition applications from hierarchical model to object model.
Yes, and what I love about it - you can use any ODBC based tool and write a simple SQL select and voila:
.png)
I'm uncovering my keyboard and stretching my fingers ![]()
.png)
The same article is the most popular post everywhere ![]()
![]()
Oh, wow! Quite unexpected! Thanks!
Linguistic expert ![]()
.png)
1 less translation and I could've been a Prolific Blogger ![]()
Thank you, got a new server in the morning.
Ok, I found it. It was Ctrl+/
But I have several / on my keyboard and only the one on the main keyboard (with letters) works.
I don't really care what are the exact keystrokes, I just want them to work, and they don't ![]()
Sure, I know /* */ work.
But students use different IDEs so they get used to some behavior and adding multiline comments is apparently one of them. In my Studio it shows like this and the menu works but the shortcuts don't.
.png)
Does it work for you? I have 2022.2 and it doesn't work
I press and nothing happens.
Congratulations everyone! Well done!
Thank you
I had to figure out how this whole thing works (and to search lots of sites to get the general idea) so decided it would be nice to share the basics with others as well.
Will this do, to have both delete and update:
CREATE TABLE nodes2 (
name VARCHAR(50) NOT NULL,
parent VARCHAR(50),
PRIMARY KEY (name),
FOREIGN KEY(parent) REFERENCES nodes (name) ON UPDATE cascade on DELETE cascade
)Yes, that's what I did (because, obviously, the class being abstract is not the cause - works great in other scenarios):
Class Test.NewClass Extends %Persistent [ Abstract, NoExtent ]
{}
Class Test.NewClass1 Extends Test.NewClass
{}I do know you don't inherit all from the secondary class, but I though the number of things I do inherit was more than just parameters, properties and methods. I take it queries, foreign keys, triggers, projections are out as well?
Thanks! Now it works
Interesting! Good to see that Community is constantly improving!
Yes, I do have a DLL. Besides, the rest of the menu items are OK.
.png)
The same problem with About screen:
.png)