go to post Robert Cemper · Apr 4, 2021 Let's analyze this: [leaving aside that $Zf(-1 .. is Deprecated) You run the same sequence in 2 Caché/IRIS processes in parallel. There is no synchronization between them Both run in the same namespace ==> therefore the same default directory where SDIR_"DIRLIST.TXT" is located ???? " .. but from a different folder... " is SDIR different ????? if not : Both processes spawn 2 times a sub-process for each $ZF(-1) let's name the sub processes fg1, fg2 and bg1,bg2 The sub_process from foreground is not synchronized to the sub-process of background and your construct has no control on the sequence they are running. If the run sequence fg, fg1,fg2,bg,bg1,bg2 there should be no problem. But that's rater unlikely it looks like fg,bg,fg1,fg2,bg1 (partially deleting results of fg2), bg2 To verify what's really happening run fg,fg1,fg1,bg (JOB ), bg1,bg2 So they both can't influence each other.
go to post Robert Cemper · Apr 3, 2021 You may use this at init time https://openexchange.intersystems.com/package/helper-for-objectscript-language-extensions to add your ZPM command and function. It does a unique insert of the label
go to post Robert Cemper · Apr 2, 2021 When I was Software Support Manager @ Digital Equipment Corp. in a former lifein the previous millennium we had 2 basic rules graved in stone: The (contracted) customer is right. IF NOT, Rule #1 has to be applied. I won with my team the annual European customer survey competitionover several years in sequence.
go to post Robert Cemper · Apr 2, 2021 @Vic Sun. your reaction is - to formulate it politely - a disappointment.But no surprise to me.
go to post Robert Cemper · Apr 2, 2021 I miss a button "Excellent Answer" in the community Big Thanks!
go to post Robert Cemper · Apr 2, 2021 I understood that 14 licenses + Grace Period are your biggest pains.In past, I decreased the risk by moving ALL (suspicious) connections to a dedicated Userobserving his maxConnection limit using %CSP.Session.Login() especially this explanation: Login with this username and password, returns a status code to show if it worked or not. This method also trades license units at the same time so this CSP session will be logged in as a named user. If you pass type=1 then this will trade licenses only and not login as this user. This can't avoid a DDoS attack but it limits the initial impact and allows you toprotect some emergency licenses. [As I know the inventor of Grace Period since it was rolled out with a lot of pain for customersI'm not willing to discuss this "feature" in public again]
go to post Robert Cemper · Apr 1, 2021 Yes, pls. share!I always liked to see not just the ONE and ONLY solution but a choice.
go to post Robert Cemper · Mar 31, 2021 as you are in SMP anyhow just try to do an insert manually.Just 1 row.you seem to require something else <UNDEFINED>in addition, if your record exists already You may need an INSERT OR UPDATE (if this is possible in postgreSQL)It could be OK, but I wonder that you insert just 1 valueEventually, there is something required that is missing?Check the definition of the generated Caché class,
go to post Robert Cemper · Mar 31, 2021 Seems just a typo in INSERT statement.Target Columns must be in parenthesis. INSERT INTO HSIPIData.datos_usarios2 (addresses) SELECT Addresses FROM HSPI_Data.patient
go to post Robert Cemper · Mar 31, 2021 This article and the related example in OEX may be helful.Effective use of Collection Indexing and Querying Collections through SQL
go to post Robert Cemper · Mar 30, 2021 eg. with SQL:INSERT INTO... Linked_Table Select ...from Cache_Tableas described in docs
go to post Robert Cemper · Mar 30, 2021 you are mixing up 2 things: one is the class that stores data in Caché the Class generated as LINKED TABLE that stores its data in postgreSQL.' so the LINKED describes the structure that is used by generated SQL statementsto work on postgreSQL. Take a look at the storage definition of the classand see the difference.But your code in Cache acts as if data were local !!Either by Objects or by Tables. if you issue a %Save() on the class it runs a INSERT OR UPDATE undercover.
go to post Robert Cemper · Mar 29, 2021 a few simple steps. if not existing yet create a table on Postgres with the identic columns that you see in Cache or use an existing target next use SMP > SQL > Wizzard > Link Table It creates a class /table that reflects all columns /properties of the linked table. + storage method that can read, write, delete, insert over ODBC / JDBC on the postgreSQL table.
go to post Robert Cemper · Mar 28, 2021 added a video recently and an automatic Installation of a Customized Command ZME into %ZLANGC00.mac
go to post Robert Cemper · Mar 27, 2021 a nice description of what a sub-select does preparing the resultset
go to post Robert Cemper · Mar 25, 2021 similar to the proposal of @Timothy Leavitt you use a Sub-Select for sortingand do the output in the outer SELECT SELECT Name, SSN, Home_State, Home_Street, Age, Company, DOB FROM ( SELECT top all * FROM Sample.Person order by ID desc) As you use Caché you may try in Namespace SAMPLES
go to post Robert Cemper · Mar 25, 2021 In a recent example I posted, I had the need to extend the naming and proposed folder structureIt was obvious if you were reading the downloaded repository. The related article was an advertisement and a "heads up" that it just wasn't the default structure as usual.
go to post Robert Cemper · Mar 24, 2021 So you have to examine this special record in detail in the underlying Global.Seems to be a broken record that you hit by accident.
go to post Robert Cemper · Mar 23, 2021 OK. this looks like the first record you find is already in trouble.I'd expect your data type is something else then stored.Next omit the conversion %ODBCOUT() just to see what internal content is and where it starts select ID,%INTERNAL(VerzamelDatTijd), DateTijdSec from GLPPatTcActie where pnr = '27085070017' and LTestId->Makey='BLA' and glpactieid->makey in ('TAV','TMA') The next question is of course which program writes these values? and how? what's the source? I get more and more the impression that some 'aged' program writes directly into the global.Probably directly some $HOROLOG which is a combined %DATE,%TIME construct.