as by docs.
By default $ztz shows you geographic offset of your server to Greenwich. No DST !
so for Madrid "write $ZTZ" => -60
- Log in to post comments
as by docs.
By default $ztz shows you geographic offset of your server to Greenwich. No DST !
so for Madrid "write $ZTZ" => -60
I see 2 principal ways:
I miss my code quality!
Satisfying these "rules" kept me more busy than the rest of the code.png)
!!
Nothing prevents you to have such rules as part of your object definition.
And all the code to define this is definitely part of Caché or IRIS.
Caché and IRIS have excellent SQL support and projection of objects to simple tables.
But you should not try to compare an Object database to any relational database.
Just as a comparison, you won't ask:
Why does a 747 not have red blinking warning lights at his back like a yellow school bus?
In reverse the 2 you mentioned try to mimic features of an Object database. With limited success.
PuTTY, KiTTY
if you don't have the fitting Dockerfile + docker-compose.yml your installation might end in troubles
I'd suggest using one of the ready-made templates.
https://github.com/intersystems-community/objectscript-docker-template
or any other from OEX https://openexchange.intersystems.com/
As by default is READ ONLY as with any installation and you are well-advised not to change this.
What container image do you start ?
@Sergei Shutov You missed the point.
validator
is typically stored as part of the individual data record to handle various types of checks within your class to provide the highest flexibility. Think of language or geographically related checking.
You can't bypass the challenge.
Neither by $classmetho() nor any code generator as this is all static code frozen and inflexible a runtime.
Creating a check routine by field or by record is not a realistic solution
BIG THANKS !
SMELLS ! what a waste of energy just for cosmetics and no added value or functionality !
.png)
Video was added today https://youtu.be/bVSlprhsUJ8
Good Morning,
Now the case seems rather clear to me:
There's a mismatch. You see the code but no data at runtime.
Project is always just a subset of Namespace
you seem to miss this mapping by failed installation
[Map.your namespace>
Global_Ens.SecondaryData*=ENSSECONDARY
Global_EnsDICOM.Dictionary=ENSLIB
Global_EnsEDI.Description=ENS
Global_EnsEDI.Description("X","X12")=ENSLIB
Global_EnsEDI.Schema=ENS
Global_EnsEDI.Schema("HIPAA_4010")=ENSLIB
Global_EnsEDI.Schema("HIPAA_5010")=ENSLIB
Global_EnsEDI.Schema("ISC_00401")=ENSLIB
Global_EnsEDI.Schema("ISC_00405")=ENSLIB
Global_EnsEDI.X12.Description=ENS
Global_EnsEDI.X12.Description("HIPAA_4010")=ENSLIB
Global_EnsEDI.X12.Description("HIPAA_5010")=ENSLIB
Global_EnsEDI.X12.Schema=ENS
Global_EnsEDI.X12.Schema("HIPAA_4010")=ENSLIB
Global_EnsEDI.X12.Schema("HIPAA_5010")=ENSLIB
Global_IRIS.Msg=ENS
Global_IRIS.Msg("Arial,Tahoma,Verdana")=ENSLIB
Global_IRIS.Msg("Confirm")=ENSLIB
Global_IRIS.Msg("EDIDocumentView")=ENSLIB
Global_IRIS.Msg("Ens")=ENSLIB
Global_IRIS.Msg("EnsAlert")=ENSLIB
Global_IRIS.Msg("EnsBPL")=ENSLIB
Global_IRIS.Msg("EnsColumns")=ENSLIB
Global_IRIS.Msg("EnsDICOM")=ENSLIB
Global_IRIS.Msg("EnsEDI")=ENSLIB
Global_IRIS.Msg("EnsEDIEDIFACT")=ENSLIB
Global_IRIS.Msg("EnsEDIHL7")=ENSLIB
Global_IRIS.Msg("EnsEDISEF")=ENSLIB
Global_IRIS.Msg("EnsEDIX12")=ENSLIB
Global_IRIS.Msg("EnsEnt")=ENSLIB
Global_IRIS.Msg("EnsLDAP")=ENSLIB
Global_IRIS.Msg("EnsMQTT")=ENSLIB
Global_IRIS.Msg("EnsPushNotifications")=ENSLIB
Global_IRIS.Msg("EnsRecordMap")=ENSLIB
Global_IRIS.Msg("EnsSAP")=ENSLIB
Global_IRIS.Msg("EnsSR")=ENSLIB
Global_IRIS.Msg("EnsSearchTable")=ENSLIB
Global_IRIS.Msg("EnsWf")=ENSLIB
Global_IRIS.Msg("EnsXPATH")=ENSLIB
Global_IRIS.Msg("EnsebXML")=ENSLIB
Global_IRIS.Msg("Ensemble")=ENSLIB
Global_IRIS.Msg("ITK")=ENSLIB
Global_IRIS.Msg("RuleEditor")=ENSLIB
Global_IRIS.Msg("Workflow")=ENSLIB
Global_IRIS.Msg("tahoma,verdana")=ENSLIB
Global_IRIS.MsgNames=ENS
Global_IRIS.MsgNames("Arial,Tahoma,Verdana")=ENSLIB
Global_IRIS.MsgNames("Confirm")=ENSLIB
Global_IRIS.MsgNames("EDIDocumentView")=ENSLIB
Global_IRIS.MsgNames("Ens")=ENSLIB
Global_IRIS.MsgNames("EnsAlert")=ENSLIB
Global_IRIS.MsgNames("EnsBPL")=ENSLIB
Global_IRIS.MsgNames("EnsColumns")=ENSLIB
Global_IRIS.MsgNames("EnsDICOM")=ENSLIB
Global_IRIS.MsgNames("EnsEDI")=ENSLIB
Global_IRIS.MsgNames("EnsEDIEDIFACT")=ENSLIB
Global_IRIS.MsgNames("EnsEDIHL7")=ENSLIB
Global_IRIS.MsgNames("EnsEDISEF")=ENSLIB
Global_IRIS.MsgNames("EnsEDIX12")=ENSLIB
Global_IRIS.MsgNames("EnsEnt")=ENSLIB
Global_IRIS.MsgNames("EnsLDAP")=ENSLIB
Global_IRIS.MsgNames("EnsMQTT")=ENSLIB
Global_IRIS.MsgNames("EnsPushNotifications")=ENSLIB
Global_IRIS.MsgNames("EnsRecordMap")=ENSLIB
Global_IRIS.MsgNames("EnsSAP")=ENSLIB
Global_IRIS.MsgNames("EnsSR")=ENSLIB
Global_IRIS.MsgNames("EnsSearchTable")=ENSLIB
Global_IRIS.MsgNames("EnsWf")=ENSLIB
Global_IRIS.MsgNames("EnsXPATH")=ENSLIB
Global_IRIS.MsgNames("EnsebXML")=ENSLIB
Global_IRIS.MsgNames("Ensemble")=ENSLIB
Global_IRIS.MsgNames("ITK")=ENSLIB
Global_IRIS.MsgNames("RuleEditor")=ENSLIB
Global_IRIS.MsgNames("Workflow")=ENSLIB
Global_IRIS.MsgNames("tahoma,verdana")=ENSLIB
Global_IRIS.Temp.EnsHostTotals=IRISTEMP
Global_IRIS.Temp.EnsPortal*=IRISTEMP
Global_IRIS.Temp.EnsPublic*=IRISTEMP
Global_IRIS.Temp.Ens*=ENSENSTEMP
Routine_Ens*=ENSLIB
Package_CSPX.Dashboard=ENSLIB
Package_Ens=ENSLIB
Package_EnsLib=ENSLIB
Package_EnsPortal=ENSLIBand eventually also these databases
ENSENSTEMP=C:\InterSystems\IRIS\mgr\ENS\ensenstemp\ ENSLIB=C:\InterSystems\IRIS\mgr\enslib\ ENSSECONDARY=C:\InterSystems\IRIS\mgr\ENS\enssecondary\
What do you mean by "my namespace extends %sys"
This makes no sense to me.
Did you setup the namespace yourself ?
which means table does not exist.
SO your namespace is not setup for Interoperability aka Ensemble
as you use Studio jus look for some Ens* classes
.png)
if you see nothing of them,
then the setup of your namespace is just wrong
You have to create it again or change your configeratiion manually.
I think this should work if your namespace is enabled for Ensemble / Interoperability
Check this in SMP:
SELECT count(ID) FROM Ens.MessageHeader
ClassMethod FetchMsgCount() As %Integer [ PublicList = msgCount,SQLCODE ]
{
set msgCount=-1
&sql(SELECT count(ID) INTO :msgCount FROM Ens.MessageHeader)
If SQLCODE=0 Quit msgCount
Quit SQLCODE
}
or just simpler
ClassMethod FetchMsgCount() As %Integer [ ProcedureBlock = 0 ]
{
set msgCount=-1
&sql(SELECT count(ID) INTO :msgCount FROM Ens.MessageHeader)
If SQLCODE=0 Quit msgCount
Quit SQLCODE
}
Your last finding signals to me that you get blocked by [ProcedureBlock]
either try using %suspendedCount instead of suspendedCount
Method OnTask() As %Status [ PublicList = suspendedCount,SQLCODE ]
{ //implementation }or put it into a PublicList together with SQLCODE
https://docs.intersystems.com/iris20211/csp/docbook/DocBook.UI.Page.cls?KEY=ROBJ_method_publiclist
The license-mechanic is a little bit complicated:
As a consequence, a request for license number 26 consumes 25 additional licenses for that user !!
And these licenses come back to in the license slot mode only if ALL processes of that user are terminated
So using a single user (e.g. from CSP) is rather risky in that relation
$system.License.Login() may help you cross that limit.
from docs:
What's bad about using %RCOPY if you want it ?.png)
From the main menu, in DC select members
.png)
select the member of interrest
.png)
and show all posts
.png)
It's a "FEATURE" of recent IRIS to hide deprecated code ![]()
Hi @Jeffrey Drumm . there are 2 options
#1)
From SMP > Explorer > Classes in %SYS set filter to %IO*.cls and Documentation.png)
#2)
In Studio in NS %SYS load the class and show Class Documentation
[CTRL + SHIFT +F1]
and see the code. I have seen more thrilling constructs before.
GREAT!
%IO* is invisible in my local Class Reference
@Marlin Mixon
It is just not possible the way you tried. Because: (from class docs)
Move to this position in the stream. If this suceeds then return true, else return false. Note this implementation is not efficient because it searches from the start of the stream,
This means it does a Rewind() and a Read(position)
• method Write(data As %RawString) as %Status
Appends the string data to the stream and advances the current stream position by the number of characters in data.
Note that a write operation immediately following a read or rewind will clear out the existing data in the stream.
%SYS>d ^SECURITY
1) User setup
2) Role setup
3) Service setup
4) Resource setup
5) Application setup
6) Auditing setup
8) SSL configuration setup
9) Mobile phone service provider setup
10) OpenAM Identity Services setup
11) Encryption key setup
12) System parameter setup
13) X509 User setup
14) KMIP server setup
15) Exit
Option? 1
1) Create user
2) Edit user
3) List users
4) Detailed list users
5) Delete user
6) Export users
7) Import users
8) Exit
Option?
so you can call the local commandline ( session or terminal) and run
your SELECT in SQL shell [ do $system.SQL.Shell() ]
or from SMP System->Explorer->SQL to see if there is any content.
If there is some content you may try next to use variables from the global scope
for your embeded SQL
instead of
&sql(Select demoVersion into :DemoVersion from demointerface.DemoInstances where ID=:demoID)
try it with
&sql(Select demoVersion into :%DemoVersion from demointerface.DemoInstances where ID=:%demoID)
what do you mean by "local" ?
local session, local instance, local server ?
assuming "production" runs on a server