therefore I asked for a FULL class definition for BOOK!
But I got just 1 line.
there can't be help without sufficient information
- Log in to post comments
therefore I asked for a FULL class definition for BOOK!
But I got just 1 line.
there can't be help without sufficient information
Now, this gets clear.
With the keyword IDKEY you replaced the default ID naming it RowID.
To store it:
set book=##class(BOOK).%New()
set book.RowId=obj.ID ; from JSON obj
set book.Title=obj.Title ; from JSON obj
do book.%Save()to retrieve an existing Rowid:
set book=##class(BOOK).%OpenId(obj.ID) ;from JSON obj
,;; access or change your book.TitleI'm sorry. it seems you don't understand what I'm talking about.
You just gave me the names. Not the structure and definition.
Expected example:
Class RestApi.Books Extends %Persistent
{
Property Title As %String;
Property Pages As %Integer;
Storage Default
{
<Data name="BooksDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Title</Value>
</Value>
<Value name="3">
<Value>Pages</Value>
</Value>
</Data>
<DataLocation>^RestApi.BooksD</DataLocation>
<DefaultData>BooksDefaultData</DefaultData>
<IdLocation>^RestApi.BooksD</IdLocation>
<IndexLocation>^RestApi.BooksI</IndexLocation>
<StreamLocation>^RestApi.BooksS</StreamLocation>
}
} Class RestApi.Title Extends %Persistent
{
Property Title As Books;
Property Text As %String;
Storage Default
{
<Data name="TitleDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Title</Value>
</Value>
<Value name="3">
<Value>Text</Value>
</Value>
</Data>
<DataLocation>^RestApi.TitleD</DataLocation>
<DefaultData>TitleDefaultData</DefaultData>
<IdLocation>^RestApi.TitleD</IdLocation>
<IndexLocation>^RestApi.TitleI</IndexLocation>
<StreamLocation>^RestApi.TitleS</StreamLocation>
}
}
it's midnight now. I finish
maybe next week.
the story is clear. Your class definition is not.
once more pls show class definitions for RESTAPI.TITLE and ??.BOOK
(every class has also a package, default is User)
you may need Studio od VSCode to see it.
and {"ID":17, "Title":"LEARNING CAHE REST API"} is a
Dynamic JSON object unrelated to any class definition
This returns to what we were talking about yesterday.
You mix classes with JSON objects and RowID might be something different.
so pls add the definition of the classes you talk about (e.g: RESTAPI.TITLE and TITLE table ??)
it's not obvious what you refer to in "object without ID but having RowID" ???
How did you get the screenshot?
Assuming your RowId is unique you can define a unique Index on it.
Index RowIdx On RowId [ Type = index, Unique ];now (after building that index) you can open your object by its RowID
SET task.Title = ##class(RESTAPI.TITLE).RowIdxOpen(RowID)Ah thanks! That passed me.
Every Database in Caché or IRIS has a "NickName" (TEST, APP, USER, *TEMP, ..)
The file location is just a pointer related to the location of the file used
Similar Resource is an attribute to this "NickName". and NOT to the related file
Changing it affects user access, but doesn't care at all about the file location.
The *.DAT file has no information about Resources or its NickName.
Way back in the past, when file sizes were limited by file systems, there were
"Continuation" Files for Cache.DAT. Those knew the starting Cache.DAT.
But this is decades back and gone and doesn't exist anymore.
To find this quoting in Windows kept me busy for quite a while 2 months ago
as it wasn't part of the README.md !
Exactly!
I just was not sure about the abbreviation.
therefore to create the required oref :
SET task.Title = ##class(User.Book).%OpenId(obj.Title)I will not be present, but my main interest is and ever was
Distributed Code and Version Management in a World Wide Scope
I experienced it in personal practice and was always impressed how well that worked.
You depend on the structure of the dynamic object you compose in the 1st line.
if it has a property TitleID it will work. (using obj.TitleID lower case!!)
But in your question, it is not clear what Title Class refers to.
I see All.Allbooks and somewhere User.Book and also %request and no other class around
I guess you look for this:
ClassMethod GetABookById(id As %Integer) As %Status
{
SET MyBooks = ##class(All.Allbooks).%OpenId(id)
SET obj={}
set obj.ID=MyBooks.%Id()
set obj.Title=MyBooks.Title
WRITE obj.%ToJSON()
Quit 1
}ATTENTION:
MyBooks.Title is just a reference to User.Book
For some of them exist even concrete proposals for solutions. (e.g. Global <-> JSON)
namespace %SYS ?
all required privileges ?
Checked Class Docu for 2017.1 >>> query Detail exists !
https://cedocs.intersystems.com/ens20171/csp/documatic/%25CSP.Documatic.cls
this worked for me
select CAST(0+AVG(PackingTimeSpent) as TIME) average ....
the 0+ forces Integer, then CAST understands you
and pls. don't ask why. I just tried
the output from AVG() is definitely NOT Integer
It should be the same port as SMP - default 52773
this are not properties but an ERROR Status Object.
the boxes are non-printable binary values from $LB() or similar.
if this is inside a method add [ProcedureBlock = 0] to the method
@Jean Millette
Just great! I was searching for this for quite some time
ZWRITE ^globalHi @Evgeny Shvarov,
I run my Docker Desktop on WIN10
And with my setup, I have reviewed more than 300 Docker build sequences
Always focused on how easy it is for the average consumer and how well the description fits reality.
This package forced me to exercise settings that were just not needed before
And (differently from others) there is not the slightest signal in the description of that requirement.
It's some *KIT* stuff and the official doc doesn't care much about WIN.
it finally moved along. and others should be warned [getting rid of it was another story]
And the result was something that I see multiple times daily in my SMP instances.
Sorry!
Nice screenshots from VSCode.
Just to be clear: I tried but will never use VSCode as long as I have my Studio available.
And I never touched it in any of my reviews or other situations.
GREAT !
without touching the code
You are right.
But it works in a test within a Try-Catch bloxk
try {
;;; run your code
}
catch e {
if $ze["<RESJOB>" while $TLEVEL { tcommit }
}Do you still expect some echo?
Or is the question meanwhile just out of date?
Do you still expect some echo?
Or is the question meanwhile just out of date?
| Globals: Embedded Python vs. ObjectScript is also available on Online Demo since its first release. It is also listed in OEX Directory "Products with Demo" Pls adjust the list accordingly |
@Chris Stewart it was there even earlier see my article Repairing your Index
the background then, were manually written index globals.
the BIG advantage is to slice it down and run it as slow as you need with practically no extra load