Congratulations and big THANKS @Alberto Fuentes
- Log in to post comments
Congratulations and big THANKS @Alberto Fuentes
Similar to previous years I will provide the results of our private leaderboard
DCrank AOCrank Scores Stars ok% ----- Code Parts OK ----- Name
0 --- ---- ---- --- ----*----*----*----*----* --- DC Members ---
1 7 7361 50 100 3333333333333333333333333 abdul-manaan
2 8 7296 50 100 3333333333333333333333333 Yuval Golan
3 9 5310 36 72 3333333333333331331------ JFerreB
4 11 2598 18 36 333333333---------------- Peter Zubiago
5 13 2537 17 34 333333331---------------- Oskari Kosonen
6 14 2052 14 28 3333313---1-------------- Keith Avery
7 15 1928 13 26 3333331------------------ Jani Hurskainen
8 17 1639 11 22 333311--1---------------- Ivo ver eecke
9 18 1278 9 18 33331-------------------- TylerFeldhege
10 21 875 6 12 333---------------------- rhodery
11 23 695 5 10 331---------------------- Chris Marais
12 24 565 4 8 33----------------------- Oliver Wilms
13 --- ---- ---- --- ------------------------- --- ISC internals ---
14 2 7592 50 100 3333333333333333333333333 TestSet 1
15 3 7545 50 100 3333333333333333333333333 TestSet 2
16 22 811 6 12 333---------------------- Junhee Lee
17 --- ---- ---- --- ------------------------- --- unknow in DC ---
18 1 7683 50 100 3333333333333333333333333 Dominik Znidar
19 4 7540 50 100 3333333333333333333333333 Joaquin Derrac Rus
20 5 7539 50 100 3333333333333333333333333 Jarjar 314
21 6 7527 50 100 3333333333333333333333333 (anonymous user #1128565)
22 10 3295 23 46 3333313-1331311---------- (anonymous user #4293990)
23 12 2569 18 36 33333-331-1-3------------ Sloan Kanaski
24 16 1902 13 26 33331111--1-------------- Chhayank Warad
25 19 1083 8 16 3333--------------------- Noah Dohrmann
26 20 1064 8 16 3333--------------------- (anonymous user #214666)
27 25 427 3 6 31----------------------- Gary Nguyen
28 Rows(s) Affected
UTC 2024-12-30 08:28:42
EST 2024-12-30 03:28:42
Hi @Jeffrey Drumm ;
different approach: use your own datatype that always returns fixed MAXLEN string:
/// Make fixlength String according to MAXLEN parameter
Class rcc.GetFix Extends %Library.String
{
/// Fill value <var>%val</var> to <a href="#MAXLEN">MAXLEN</a> characters.
Method Get() As %String [ CodeMode = generator, ServerOnly = 1 ]
{
set code="$e(%val_"""_$j("",+%parameter("MAXLEN"))
set code=code_""",1,"_+%parameter("MAXLEN")_")"
$$$GENERATE( " Quit "_code)
QUIT $$$OK
}
}and a test class:
Class rcc.FixTest Extends %RegisteredObject
{
Property test As rcc.GetFix(MAXLEN = 12);
}
and now some check from terminal:
SAMPLES>set z=##class(rcc.FixTest).%New() set z.test="rob"
SAMPLES>write z.test,$L(z.test)
rob 12
SAMPLES>;some oversized string
SAMPLES>set z.test=";some oversized string"
SAMPLES>write z.test,$L(z.test)
;some oversi12
SAMPLES> Hope this helps you along
My guess:
#2)
Every LOCK persists until the process is ended or the LOCK is removed explicitely (LOCK -....)
it is not related to any error handling.
#1)
depends on your design.
If there is no conflict of subscripts between ADD and REMOVE possible there is no need of a Lock
no need for this COPY
if your docker-compose.yml contains
volumes:
- ./:/home/irisowner/dev
So comparing .CLS to .MAC/.INT is like comparing a goat to the final cheese you buy.
video added https://youtu.be/fl0SDt-rxAU
A few questions:
To get the property position dynamically by program you may use this ClassMethod
ClassMethod PropSeq(classname As %String = "", propname As %String = "")
As %String [ SqlProc ]
{
if classname="" set classname=..%ClassName(1)
set pos=0
&sql(
SELECT SequenceNumber INTO :pos
FROM %Dictionary.CompiledProperty
WHERE transient=0
AND parent=:classname
AND name=:propname
)
if SQLCODE set pos="-1;"_SQLCODE
quit pos
}
a somewhat 'dirty' approach
select ID, Name_GivenName from Demo.DemoPatient
where FOR SOME %ELEMENT(Demo.DemoPatient.Aliases) ($LISTFIND(%value,'Twain')>0)advantage - no need to know the structure of your serial class
risk - false positives for unexpected coincidences. eg. Washington, John, ...
the example builds on the fact that the storage structure of the serial object is known
Storage Default { <Data name="serItemState"> <Value name="1"> <Value>Subject</Value> </Value> <Value name="2"> <Value>Change</Value> </Value> <Value name="3"> <Value>Color</Value> </Value> </Data> <State>serItemState</State> <StreamLocation>^rcc.IC.serItemS</StreamLocation>
in this case color is #3 in serial storage ==>> $list(%Value,3)
So you need to know the position of FamilyName in HS.SDA3.Name (e.g.7 ?)
then you can use $list(%value,7) = 'Twain' as condition
7 is just a guess as I don't have any HS* classes at hands
This article is focused on indexing, though it shows the principle of the SQL query
Effective use of Collection Indexing and Querying Collections through SQL
THX. Never used it before
it applies to any code in ObjectScript
BIG THANKS!
That soved the problem
It's a shame that the owner of the package didn't react to the ISSUE on Github or OEX for 3 months
run
USER > zn "%SYS"
%SYS > ZLOAD JOURNAL
%SYS > Printin WebTerminal you just get NOTHING
in normal terminal and iterm you see the code
@Mario Sanchez Macias You missed the point.
The essential functionality is to have a total autonomous partition to work in.
It was never named so, but it is the real Shell for ObjectScript and its predecessors for >50 years !
THX
simple case:
write some lines of ObjectScript in TERMINAL with Functions, ....
NO need to compile it, no INT, no MAC, no traces.
Just DO it:
---
or load some INT., apply your changes, run it, forget it
no save, no recompile, ...
WebTerminal is based on Xecute and compiled code
Same in Studio.
Overall a nice idea.
the package still needs some polishing to convince
suggestion1: fix issue to build clean docker
suggestion2: re-enable Start+Stop message so uses see it was moving
suggestion3: show which class you check , kind of work log
suggestion4: also step into sub-packages e.g. not just rcc but also rcc.unittests. codeinspector could be a good start
sugesstion5: allow also MAC, INT, INC code to be checked
I just can repeat my message from OEX review !
.png)
it would be great if the issues in building Docker container would be fixed.
so we can touch it and reduce frustration of evaluators first
Actually it is broken, Issues pending since some days
Your code looks like a ClassQuery. %Library.Query
This is not a Stored Procedure :=> a ClassMethod ...[SqlProc,SqlName=anyname]
and everything happens inside this ClassMethod
you run is by CALL PROCEDURENAME
I use it since Caché 2014.* at least.
this just the latest documentation.
What's the purpose of the semicolon ? SELECT Name,Home_State FROM Sample.Person ;
for TEMP table see: https://docs.intersystems.com/iris20242/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_createtable#RSQL_createtable_desc_temp
Before collecting all pieces in the Stores Procedure
I'd suggest to test you queries isolated im SMP or from terminal in SQL shell
UNderstand a STORED PROCEDURE as a special case of a ClassMethod
using CREATE PRODURE .......LANGUAGE OBJECTSCRIPT
You can write it with all specials you need
see docs: https://docs.intersystems.com/iris20242/csp/docbook/Doc.View.cls?KEY=RSQL_createprocedure
write $translate($justify(input,ln)," ",0)