Robert Cemper · Sep 13, 2021 go to post

I did further investigations on 'broken' input files and placed a related issue
https://github.com/MakarovS96/cache-tort-git/issues/8
It happened a little bit by accident but I found this a possible realistic scenario that explains
why the problem occurs every now and then.  You may argue this is bad handling by user.
Accepted. But not unlikely.
I found this situation:

  • I have a project. with several packages and classes
  • I deleted a class BUT the PACKAGE was not saved and didn't reflect the change
  • From ClassMethod ExportProject(project ,1) I get this strange XML for the deleted class c:\temp\TEST\dc\MyCompany\EmployeRegister1.cls.xml <?xml version="1.0" encoding="UTF-8"?> <Export generator="IRIS" version="26"> </Export>
  • now I need a GIT expert to analyze what happens with this incomplete input.
  • my assumption: according to the file name there is an empty entry of type CLS named /dc/MyCompany/EmployeRegister1.cls.xml or similar
  • when ist is restored it may cause the described problem togehter with the reported bug in $system.OBJ.Load() 
Robert Cemper · Sep 12, 2021 go to post

Finally, the docker image now builds OK and contains all required classes & all globals.
( + also the bug in dc.script.Genre.cls was fixed) 
Connection to local PowerBi now works and shows the expected images.
Thanks for fixing it.
I was somewhat surprised that IRIS Analytics was not required at all since there
was no Cube nor Pivot nor Dashboard. I built it myself just using dc.dc.bi.PopSongs.
OK. PowerBI graphics look better.
But here is not the place to comment on ZEN graphics.   

Robert Cemper · Sep 11, 2021 go to post

no chance. M$ wants a corporate e-mail. I have no corporation.
confirms my personal opinion on M$ products

I can only use the free download version.

Robert Cemper · Sep 11, 2021 go to post

When I downloaded your Repo from GitHub the docker image generated.
But I just see just NOTHING inside the container of the dc.* classes or globals that are in the repo
I couldn't find any cube or pivots or dashboards. Neither in the container nor in the repo.
Not just me, also Power BI just found NOTHING.
What do you expect me to vote for ?
Sorry.

Robert Cemper · Sep 10, 2021 go to post

I was unable to reproduce it in InterSystems Studio Client  2021.1.0 Build 205
maybe some older version ?
 

Robert Cemper · Sep 10, 2021 go to post

As seen in my comment I can reproduce the error pattern and show some really dirty effects.
Someone willing to debug this source control and expose his SYSLIB may be the winner.
 

Robert Cemper · Sep 9, 2021 go to post

from class docs:

• property Server as %String(MAXLEN=64,MINLEN=0);

Name of the remote server where the DB resides.
If empty, the database is local.
Remote server must already be configured to be entered here.

 so this applies if you have some ECP connected DBs

Robert Cemper · Sep 9, 2021 go to post

omit the server name and just use "" for your local server
 

%SYS>set db=##class(Config.Databases).DatabasesByServer("",.dbList)
%SYS>zw
db=1
dbList="DEMO,IRISSYS,CACHE,ECODE,EDATA,ENSLIB,IRISAUDIT,IRISLIB,IRISLOCALDATA,IRISTEMP,USER"
%SYS>

Robert Cemper · Sep 5, 2021 go to post
s max=0,glb="^MyGlobal" f  s glb=$q(@glb) q:glb=""  s:$ql(glb)>max max=$ql(glb)
zw max
Robert Cemper · Sep 5, 2021 go to post

Beginners see the query plan first and then create the index on items in WHERE clause.
Experts mostly reverse the sequence.

Robert Cemper · Sep 3, 2021 go to post

SSO account can be shared for WRC (if enabled), DC, OEX, Learnig, ..
Global Masters is an external application that can make use of SSO
but has its own independent accounts as well.  

Robert Cemper · Sep 3, 2021 go to post

did you try 

ZN "%SYS"

   to return ? or switching to a different Namespace and back to %SYS ?

Robert Cemper · Aug 31, 2021 go to post

as posted on stackoverflow:

for details see Class %ZEN.Component.dateText

setting format:
Property format As %ZEN.Datatype.string(MAXLEN = 3, VALUELIST = ",MDY,DMY,YMD", ZENEXPRESSION = 1)
you have exactly 3 formats or "" 

Your guess on values is correct and documented:   
/// The value of this control is always in the canonical form: YYYY-MM-DD

As this is one of the oldest components of ZEN your only chance to achieve
your way of operation is to create your own version inheriting from
Class %ZEN.Component.dateText and overloading the parts you want to change

Robert Cemper · Aug 27, 2021 go to post

OK!  you talk about a local variable array
If you don't pass the local array with the JOB command it is not defined in the new JOB
because it is LOCAL   
except if you run  the 2 SET commands of your example also in the JOBbed routine.
also your WRITE command will fail if you don't specify some output device.
since by definition a background JOB doesn't have foreground output.

Robert Cemper · Aug 26, 2021 go to post

@Lewis Houlden 
If you stop a process from the Management portal you have the option to launch an <RESJOB>  error in $ZE
this allows you to clean out the message that triggered your process.
If not, the triggering message remains unprocessed in the queue.
Which results in the retry you see.

Robert Cemper · Aug 25, 2021 go to post

You might be able to achieve the first part of your description by some tricky JOIN constructs.
Just access to a non-existing column will fail at generating the Query.
Cascading might be easier (also for maintenance)  by filling a TempTable over several cycles
and so assemble the final result.

I would suggest to create a ClassMethod projected to SQL as Stored Procedure.
then instead of the trick with the switch you just provide the parameters that you really have

Robert Cemper · Aug 25, 2021 go to post

to rephrase your problem:
- You look for a way to switch on/off  column 1
so you need a switch:  >>> new parameter 
and use it like this:

... WHERE (0=? OR  column1=?) AND column2=?

if your first param is 0   then 2nd param (for column1) is irrelevant 
if your first param is 1   then 2nd param (for column1) is effective 
so execute(0,a,b)   uses any value of column1
whille execute(1,a,b) filters column1 and column2