go to post Eduard Lebedyuk · 23 hr ago IRIS supports multiple inheritance for methods, so create an abstract class which holds the methods and add it to a list of superclasses of your production class.
go to post Eduard Lebedyuk · Apr 18 1. Provision Azure File Share. 2. Mount it locally (on a server with IRIS.DAT) 3. Copy IRIS.DAT into the share. 4. Mount Azure File Share into your cloud env. 5. Move IRIS.DAT from the file share to your block storage. 6. Remove Azure File Share.
go to post Eduard Lebedyuk · Apr 17 Longrunning tcp connections might be an issue. I would definitely try setting it to something lower.
go to post Eduard Lebedyuk · Apr 17 You need to iterate on value: // extract json content from the request: set dynRequestJsonPayload = {}.%FromJSON(%request.Content) #dim JsonIterator As %Iterator.AbstractIterator set JsonIterator = dynRequestJsonPayload.%GetIterator() // iterate on json structure: if dynRequestJsonPayload '= "" { while JsonIterator.%GetNext(.key, .value, .NodeType) { if NodeType = "string" { do GlobalTrace("NodeType: " _ NodeType _ "; key: " _ key _ "; value: " _ value) } elseif NodeType = "array" { // i want to iterate on this array... // the following line throws the exeception "ERREUR #5002: Erreur ObjectScript: <INVALID OREF>traitementUFI+34^common.REST.1" set JsonIteratorSecondary = value.%GetIterator() } else { // Do something } } }
go to post Eduard Lebedyuk · Apr 16 Do you have Stay Connected setting equal to -1? Try setting it to a lower value, i.e. 30.
go to post Eduard Lebedyuk · Mar 29 Try this in /bin/iris2/mgr/irisodbc.ini: [ODBC Data Sources] HL7Interface2=HL7Interface2 [HL7Interface2] Driver = /usr/lib64/psqlodbcw.so Setup=/usr/local/lib/libodbcpsqlS.so Description = HL7 Interface DB Servername = localhost Port = 5432 Protocol = 7.4-1 UserName = postgres Password = <real pw here> Database = hl7interface ReadOnly = no And restart iris, after that would it connect?
go to post Eduard Lebedyuk · Mar 6 Great article! I would advice to reuse the client, it will save you a lot of time. In REST: ClassMethod init() { If '$data(%JDBCGateway) { Set %JDBCGateway("client") = ##class(%SYS.Python).Import("boto3").client("dynamodb") Set %JDBCGateway("table") = ..getTable("us-east-2", "mytable") } } ClassMethod getTable(region, tablename) As %SYS.Python [ Language = python ] { import json import boto3 dynamo = boto3.resource("dynamodb", region_name=region) return dynamo.Table(tablename) } ClassMethod writepy(table, pk, sk, msg) [ Language = python ] { message_record = { "PK": pk, "SK": sk, "msg": msg } table.put_item(Item=message_record) } And call writepy, passing %JDBCGateway("table") (or %JDBCGateway("client")). In interoperability Business Hosts it can look like this: Class App.BS Extends Ens.BusinessService { Parameter ADAPTER = "Ens.InboundAdapter"; Property Adapter As Ens.InboundAdapter; Property Table As %SYS.Python; Method OnInit() As %Status { Set ..Table = ##class(App.REST).getTable("region", "table") Quit $$$OK } } Also when you're using resource Table instead of client you can use normal JSON and not DynamoDB JSON which makes code more readable and you can also use Dynamic Objects to serialize to json / in python parse it from json to dict and call update.