in DockerFile
USER root
## add gitRUN apt update && apt-get -y install git
- Log in to post comments
in DockerFile
USER root
## add gitRUN apt update && apt-get -y install git
A little bit of cosmetics in your printf could make it JSON formatted.
print(f'{{"subscript":{subscript},"value":"{value}"}}')
which should result in a nice conveniant JSON object
{
"subscript":1,
"value":"2.16.840.1.113883.3.86ISCInterSystems Corporation"
}
try:
Property alternateId As %String(%JSONNULL = 1);
{
"alternateId": null ,
"benefitPlanId": "FLSN4444",
If you get back large results sets that you use for further processing PyODBC will be better suited.
But for a small number of values, the overhead at both ends to service ODBC structures may not pay off
since both ends have to get their internal structure in to ODBC and out of it.
I don't have measured the difference so this is just a guess:
- for the typical embedded SQL returning < 1..10 rows a MethodCall might be more efficient.
This doesn't prevent you from using and tuning an SQL SELECT isolated in IRIS environment.
In any case, the transfer between PY and IRIS is the slowest piece.
The less data you transport the faster the action is completed.
And transport in blocks wins over isolated pieces in loops.
there is Native API for Python - InterSystems IRIS Data Platform 2020.3
and embedded Python is available for testing but not released officially
https://openexchange.intersystems.com/package/Trying-Embedded-Python
https://openexchange.intersystems.com/package/Wsock-Embedded-Py
There is InterSystems IRIS Adoption Guide available from WRC.
It states:
.png)
.png)
.png)
You should check with WRC which kit to use.
But I'd personally suggest to move to IRIS NativeAPI for .NET
see also Using the Native API for .NET
![]()
try to use a username with privileged %ALL in Health Share
to distinguish between network problems and access right problems
That's happening due to problems in the network or system stop/restart.
normally it recovers without manual interventions and without data loss.
levels 0 and 1 signal it's an info / warning.
Hi, @Timothy Leavitt .#
What's about a prodlog ? ![]()
"JSONid public" would be nice pairing with "rowid privat" ? ![]()
create a calculated property and it looks like any other one
Property MyId As %Integer [ Calculated, SqlComputeCode = { set {*}={%%ID}}, SqlComputed ];
O dear! Sorry
this looks strange to me LITERAL ('PERSON') expected, IDENTIFIER (Person) found
with not much hope:
does CAST(TableA.ID AS INTEGER) instead of TableA.ID make a difference?
indeed by CUSTOM_MyQuery(TableA.ID) you just pass 1 parameter
but LinkedFundsByPerson(TableA.ID,1) might work
as the signature expects 2 params some related code is generated
even if the second param isn't used at all.
You can test the Stored Procedure interactive from SMP>SQL>storedProcedures
and you should be asked for 2 params
did you consider using some of the standard MACROS available in Ensemble.inc ?
@Chris Bransden
Without knowing the definition of CUSTOM_MyQuery(par) it's no possible to answer.
The error message indicates that a literal is expected but indeed TableA.ID is a column reference and you feed a whole resultset instead of a single value
My interpretation: You want to see the rows found by CUSTOM_MyQuery()
which is indeed a classical inner join.
So what is the result returned by SELECT * FROM CUSTOM_MyQuery(??) ?
You may try this transformation that does the same in principle
SELECT * FROM TableA
WHERE 0<(SELECT count(*) FROM CUSTOM_MyQuery(TableA.ID))
nowhere. It's the purpose of deployed code not to be hacked nor debugged
GREAT!
>>unless perhaps the right person at InterSystems is reading this and gets the change put into the products. <<
My hope is with you!
But even if you place a Prodlog / Change Request it might be a matter of years [plural] to see this in production.
Always assuming the "priests of the security grail" don't oppose. ![]()
There is a bunch of auto-generated methods that might be useful:
https://community.intersystems.com/post/useful-auto-generated-methods
especially this one from @Eduard Lebedyuk
#############################################################
But with PropertySetObjectId you can expedite things
set person = ##class(Person).%New()
set companyId = 123
do person.EmployedAtSetObjectId(companyId)
The main advantage is that company object doesn't have to be opened.
#############################################################
an example of a self-referencing 1:1 relationship
it is also characterized by our "implicit join" feature ->
Class Sample.Person Extends (%Persistent, %Populate) {
- - -
Property Spouse As Sample.Person
Index sp On Spouse [ Unique ]; // to verify 1:1
- - -
}
YES ! but not it's addressed explicitly
thx. I wasn't sure this works also for IRISTEMP
There is some 'silent' period during the night.
Actually, a snapshot (~380 GB) is taken during a Freeze-Thaw window, Which is not really RO.
the format ./IOTABLE="CP1252" applies only using the OPEN command
$ZCONVERT and %Stream.FileCharacter just use "CP1252" just by the name
In namespace %SYS you have a utility NLS that shows your installed conversion table and its short names.
%SYS>d ^NLS
2) Select defaults
2) I/O tables
Items marked with (*) represent the locale's original default
I/O table Current default
--------------------- --------------------
1) Process RAW (*)
2) Cache Terminal UTF8 (*)
3) Other terminal UTF8 (*)
4) File RAW (*)
5) Magtape RAW (*)
6) TCP/IP RAW (*)
7) System call RAW (*)
8) Printer RAW (*)
I/O table: 4
1) RAW (*) 2) UTF8
3) UnicodeLittle 4) UnicodeBig
5) CP1250 6) CP1251
7) CP1252 8) CP1253
9) CP1255 10) CP437
11) CP850 12) CP852
13) CP866 14) CP874
15) EBCDIC 16) Latin2
17) Latin9 18) LatinC
19) LatinG 20) LatinH
21) LatinT
So you see the shortnames but no Latin1 but CP1252 which is almost identical.
the related problem is described here:
https://www.i18nqa.com/debug/table-iso8859-1-vs-windows-1252.html
"ISO-8859-1 (also called Latin-1) is identical to Windows-1252 (also called CP1252) except for the code points 128-159 (0x80-0x9F). ISO-8859-1 assigns several control codes in this range. Windows-1252 has several characters, punctuation, arithmetic and business symbols assigned to these code points."
and Encoding Problem: ISO-8859-1 vs Windows-1252
So you should check what your customer really does (some hide the fact they use Windows)
The appropriate table can be used in
SUPER ! ![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Robert
Sorry! That doesn't indicate any reason. $zf(-1) is just a spawn.
I just verified:
If this record is
Property Record as %STRING;you can use 2 calculated properties
/// true if Header/Trailer
Property HeaderTrailer as %Boolean [Calculated,SqlComputed,
SqlComputeCode = { set {*} = $extract({Record},1,20)?20" " } ];
/// make integer, 0 for Header / Trailer
Property RecordType as %Integer [Calculated,SqlComputed,
SqlComputeCode = { set {*} = $extract({Record},21,23)\1 } ];