go to post Robert Cemper · Jun 23, 2020 The most simple way to do it:in class Table.A have Property TableB as Table.B;in class Table.B have Property TableA as Table.A; in your code it may look like this: set objA=##class(Table.A).%OpenId(212)set objB=##class(Table.B).%OpenId(99)set objA.TableB=objBset objB.TableA=objAdo objA.%Save(), objB.%Save() You are free to index properties TableA or TableB according to your needsand you can also use Implicit JOIN between these tables.
go to post Robert Cemper · Jun 23, 2020 Suggestion for a calculated Property: Property SentTimeNEW As Ens.DataType.UTC [ Calculated, SqlComputed, SqlComputeCode = { set {*}=$s({SentTime}<1842:"",1:{SentTime}) } ];
go to post Robert Cemper · Jun 23, 2020 OK. I understand those records where created BEFORE you defined your new column.I checked the internal code $s(%val="":"",1:$zdatetime($zdTH($zdatetimeh(%val,3,,,,,,,,0),-3),3,,3)) This tells me:- Your value is Not Empty - it has no valid time format, so it is trapped by the ERROR option and set to Zero ==>> 1840-12-31 00:00:00 Suggestion:- set value to NULL for old records.or- create your own data type for this case. or - use a calculated Property to trap the values
go to post Robert Cemper · Jun 23, 2020 1840-12-31 00:00:00 is point Zero of internal time setting.It applies as default to empty data type Ens.DataType.UTC
go to post Robert Cemper · Jun 22, 2020 embedded SQL is probably an overkill for this formating.Just convert it to the internal format, add what you need and assemble the pieces in COS ; set datein=201906192359; set add=60 ;; seconds to addset dh=$ZDH($e(datein,1,8),8)set hh=$e(datein,9,10)set mi=$e(datein,11,12)set new=$ZTH(hh_":"_mi_":00",3)+addset zdt=$zdt(new\86400+dh_","_(new#86400),3)set dateout=$tr($e(zdt,1,*-3),"-: ")
go to post Robert Cemper · Jun 20, 2020 if you know exactly what characters you want to remove you may use $TRANSLATE (in SQL) ! docs: https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=RSQL_d_translate
go to post Robert Cemper · Jun 19, 2020 for the fixed part you still can use classic mapping.for the variable section you may set CONTENT = "MIXED" for the containing propertyand get the raw XML structure in hands .You can then analyze this "inner" XML using class %XML.TestReader
go to post Robert Cemper · Jun 18, 2020 The example and the class are simply wrong A %Library.DynamicObject that is composed here just has neither a method %Clone nor a method %Compose You may report the bug to WRC
go to post Robert Cemper · Jun 16, 2020 Ah, getting closer:The problem seems to reduce to an alternative way (a wrapper around) to %Open and %Delete.
go to post Robert Cemper · Jun 16, 2020 it isn't the save yet. especially if some UNIQUE conflict prevents the save and requires a Rollbackdelete isn't affected at all
go to post Robert Cemper · Jun 16, 2020 As all you need is in %Persitent you could have your own personal.persitent extending %persitentwrapping %Open and %Delete in your own extended code.3 points to consider: how to force your personal.persitent to all existent and future classes ? how to force classes generated by DDL ? how to maintain your extension over release changes ? Sorry, I doubt if this is the right approach
go to post Robert Cemper · Jun 16, 2020 take a look at %Library.Persistent. Methods %Open, %OpenId have a 3rd call parameter status that returns a %Status value indicating success or failure. %Delete, %DeleteId do it as direct result by a %Status value indicating success or failure. No further need of an %On.... to know success or failure
go to post Robert Cemper · Jun 13, 2020 Allmost! 3rd Update since if the left side is a Unix Timestamp, then you get this result: write $zdt($zdth(1591891200000\1000,-2),3) ==> 2020-06-11 18:00:00 docs: https://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=RCOS_fzdatetime timezone conversion from UTC may compensate the 6 hours difference ! in Middle Europ we have we have 2 hrs+ to UTC so write $zdt($zdt($zdth(1591891200000\1000,-2),-3),3)2020-06-11 16:00:00
go to post Robert Cemper · Jun 13, 2020 to complete this.Docker has its storage here. C:\Users\<youruser>\AppData\Local\Docker\wsl\data\ext4.vhdxC:\Users\<youruser>\AppData\Local\Docker\wsl\distro\ext4.vhdx