go to post Cristiano Silva · Nov 7, 2022 Hi Andy, If you are using the tableNagator you can extends and override the XData Contents with icons, in the place of default buttons. Class to extends %ZEN.Component.tableNavigator If you are using the tableNagatorBar you can extends and override the javascript method renderButtons with icons, in the place of default buttons. Class to extends %ZEN.Component.tableNavigatorBar
go to post Cristiano Silva · Nov 7, 2022 Hi Patrik, I did a mistake, when you call the method recursively you need to pass the unitCode like this: DO ..workpieceUnit(rs.article, article, unitCode)
go to post Cristiano Silva · Nov 5, 2022 Hi Patrik, For a better readability of code, switch the Quit command by Return in the portions of your code. where you relay want to return. For example in this codesnippet in the While: W !, "BEGENING OF LOOP FOR: "_rs.articleCode IF (rs.article = article) { SET unitCode = rs.unitCode QUIT } This Quit, only exit form While not from Method. Other problem is that the last line with Quit without argument can cause a <FUNCTION> error because doesn't return any value. If I'm not miss understood, you can add a third parameter to use internally of method to check if the method needs to run or not. For example if the condition to stop is the unitCode is not blank change the signature of method and add the following line in the beginning of method: A possible version to method is: ClassMethod workpieceUnit(mainArticle As %String, article As %String, unitCode As %string = "") As %String { Return:(unitCode '= "") unitCode &SQL(SELECT unit->unitCode INTO :unitCode FROM production_article.composition WHERE mainArticle = :mainArticle AND article = :article) IF SQLCODE = 0 { W !, "Has Value" Return unitCode } ELSE { SET sql = "SELECT article, unit->unitCode, production_article.composition_sqlArticleCode(article, type) AS articleCode FROM production_article.composition WHERE mainArticle = "_mainArticle_" AND type = 1", rs = ##class(%SQL.Statement).%ExecDirect(,sql) WHILE rs.%Next() { W !, "BEGENING OF LOOP FOR: "_rs.articleCode IF (rs.article = article) { SET unitCode = rs.unitCode Return unitCode } // CHECK IF WORKPIECE HAS COMPOSITION &SQL(SELECT COUNT(*) INTO :composition FROM production_article.composition WHERE mainArticle = :rs.article) IF (composition > 0) { W !, "START RECURSIVE" DO ..workpieceUnit(rs.article, article) } } W !, "END OF LOOP" Return unitCode } Return "" }
go to post Cristiano Silva · Nov 5, 2022 Hi Sheetal, Kill the variable that represents the processed segment at the end of loop. If you be working with Array or List after Get or Set of the some item, call the method %UnSwizzleAt to remove the item object from memory. If the array or list be a property in a Persistent class, Save the instance of persistent class before call the %UnSwizzletAt to the item.
go to post Cristiano Silva · Nov 3, 2022 Hi Maciej, You can execute this query to achieve what you want: SELECT Name, Super, CASE WHEN Super [ 'InboundAdapter' THEN 'InboundAdapter' ELSE 'OutboundAdapter' END "Type" FROM "%Dictionary".ClassDefinition WHERE Super LIKE '%InboundAdapter%' OR Super LIKE '%OutboundAdapter%' In the IRIS 2021.1 Name Super Type Ens.Enterprise.MsgBank.BankTCPAdapter EnsLib.TCP.InboundAdapter,EnsLib.TCP.CountedCommon InboundAdapter Ens.Enterprise.MsgBank.ClientTCPAdapter EnsLib.TCP.OutboundAdapter,EnsLib.TCP.CountedCommon OutboundAdapter EnsLib.EDI.X12.Adapter.TCPInboundAdapter EnsLib.TCP.InboundAdapter InboundAdapter EnsLib.EDI.X12.Adapter.TCPOutboundAdapter EnsLib.TCP.OutboundAdapter OutboundAdapter EnsLib.EMail.InboundAdapter Ens.InboundAdapter InboundAdapter EnsLib.EMail.OutboundAdapter Ens.OutboundAdapter OutboundAdapter EnsLib.FTP.InboundAdapter EnsLib.File.InboundAdapter,EnsLib.FTP.Common InboundAdapter EnsLib.FTP.OutboundAdapter Ens.OutboundAdapter,EnsLib.FTP.Common,EnsLib.File.Common OutboundAdapter EnsLib.File.InboundAdapter Ens.InboundAdapter,EnsLib.File.Common InboundAdapter EnsLib.File.OutboundAdapter Ens.OutboundAdapter,EnsLib.File.Common OutboundAdapter EnsLib.Gateway.ServiceAdapter Ens.InboundAdapter InboundAdapter EnsLib.HTTP.InboundAdapter EnsLib.TCP.InboundAdapter InboundAdapter EnsLib.HTTP.OutboundAdapter Ens.OutboundAdapter OutboundAdapter EnsLib.IWay.DSN.OutboundAdapter EnsLib.TCP.CountedOutboundAdapter OutboundAdapter EnsLib.IWay.IBO.OutboundAdapter EnsLib.TCP.CountedOutboundAdapter OutboundAdapter EnsLib.IWay.InboundAdapter EnsLib.TCP.CountedXMLInboundAdapter InboundAdapter EnsLib.IWay.OutboundAdapter EnsLib.TCP.CountedOutboundAdapter OutboundAdapter EnsLib.JMS.InboundAdapter Ens.InboundAdapter,EnsLib.JMS.Common InboundAdapter EnsLib.JMS.OutboundAdapter Ens.OutboundAdapter,EnsLib.JMS.Common OutboundAdapter EnsLib.JavaGateway.InboundAdapter Ens.InboundAdapter,EnsLib.JavaGateway.Common InboundAdapter EnsLib.JavaGateway.OutboundAdapter Ens.OutboundAdapter,EnsLib.JavaGateway.Common OutboundAdapter EnsLib.LDAP.Adapter.Outbound Ens.OutboundAdapter,EnsLib.LDAP.Adapter.Common OutboundAdapter EnsLib.LDAP.OutboundAdapter Ens.OutboundAdapter OutboundAdapter EnsLib.MFT.Adapter.Inbound Ens.InboundAdapter,EnsLib.MFT.Adapter.Common InboundAdapter EnsLib.MFT.Adapter.Outbound Ens.OutboundAdapter,EnsLib.MFT.Adapter.Common OutboundAdapter EnsLib.MQSeries.InboundAdapter Ens.InboundAdapter,EnsLib.MQSeries.CommonAdapter InboundAdapter EnsLib.MQSeries.OutboundAdapter Ens.OutboundAdapter,EnsLib.MQSeries.CommonAdapter OutboundAdapter EnsLib.MQTT.Adapter.Inbound Ens.InboundAdapter,EnsLib.MQTT.Adapter.Common InboundAdapter EnsLib.MQTT.Adapter.Outbound Ens.OutboundAdapter,EnsLib.MQTT.Adapter.Common OutboundAdapter EnsLib.PEX.InboundAdapter Ens.InboundAdapter,EnsLib.PEX.Common InboundAdapter EnsLib.PEX.OutboundAdapter Ens.OutboundAdapter,EnsLib.PEX.Common OutboundAdapter EnsLib.Pipe.InboundAdapter Ens.InboundAdapter,Ens.Util.Pipe InboundAdapter EnsLib.Pipe.OutboundAdapter Ens.OutboundAdapter,Ens.Util.Pipe OutboundAdapter EnsLib.SAP.OutboundAdapter EnsLib.IWay.OutboundAdapter OutboundAdapter EnsLib.SOAP.CST.OutboundAdapter EnsLib.TCP.OutboundAdapter,EnsLib.SOAP.CST.Common OutboundAdapter EnsLib.SOAP.InboundAdapter EnsLib.TCP.InboundAdapter InboundAdapter EnsLib.SOAP.OutboundAdapter Ens.OutboundAdapter OutboundAdapter EnsLib.SQL.InboundAdapter Ens.InboundAdapter,EnsLib.SQL.Common InboundAdapter EnsLib.SQL.OutboundAdapter Ens.OutboundAdapter,EnsLib.SQL.Common OutboundAdapter EnsLib.Siebel.HTTPOutboundAdapter EnsLib.HTTP.OutboundAdapter OutboundAdapter EnsLib.TCP.CountedInboundAdapter EnsLib.TCP.InboundAdapter,EnsLib.TCP.CountedCommon InboundAdapter EnsLib.TCP.CountedOutboundAdapter EnsLib.TCP.OutboundAdapter,EnsLib.TCP.CountedCommon OutboundAdapter EnsLib.TCP.CountedXMLInboundAdapter EnsLib.TCP.InboundAdapter,EnsLib.TCP.CountedCommon,Ens.Util.XML.Reader InboundAdapter EnsLib.TCP.CountedXMLOutboundAdapter EnsLib.TCP.CountedOutboundAdapter,Ens.Util.XML.Reader OutboundAdapter EnsLib.TCP.DuplexAdapter Ens.InboundAdapter,Ens.OutboundAdapter InboundAdapter EnsLib.TCP.FramedInboundAdapter EnsLib.TCP.InboundAdapter,EnsLib.TCP.FramedCommon,EnsLib.TCP.TextLineCommon InboundAdapter EnsLib.TCP.FramedOutboundAdapter EnsLib.TCP.OutboundAdapter,EnsLib.TCP.TextLineCommon,EnsLib.TCP.FramedCommon OutboundAdapter EnsLib.TCP.InboundAdapter Ens.InboundAdapter,EnsLib.TCP.Common InboundAdapter EnsLib.TCP.OutboundAdapter Ens.OutboundAdapter,EnsLib.TCP.Common OutboundAdapter EnsLib.TCP.TextLineInboundAdapter EnsLib.TCP.InboundAdapter,EnsLib.TCP.TextLineCommon InboundAdapter EnsLib.TCP.TextLineOutboundAdapter EnsLib.TCP.OutboundAdapter,EnsLib.TCP.TextLineCommon OutboundAdapter EnsLib.TN3270.OutboundAdapter EnsLib.IWay.IBO.OutboundAdapter OutboundAdapter EnsLib.Telnet.OutboundAdapter Ens.OutboundAdapter OutboundAdapter EnsLib.UDP.InboundAdapter Ens.InboundAdapter,EnsLib.UDP.Common InboundAdapter EnsLib.UDP.OutboundAdapter Ens.OutboundAdapter,EnsLib.UDP.Common OutboundAdapter
go to post Cristiano Silva · Nov 3, 2022 Hi Kevin, You can set programatically the value of property AppTimeout of the class %CSP.Session when the user login in the application.
go to post Cristiano Silva · Nov 1, 2022 Hi Andy, The "problem" is that the Fetch is executed on the Namespace thats the zen page reside, and the data global doesn't exists or not mapped. A simple solution change the method to: Method DataExtractionCurrent(Output tSC As %Status, pInfo As %ZEN.Auxiliary.QueryInfo) As %ResultSet [ ZenMethod ] { New $Namespace set $Namespace = "DATAEXTRACTION" #Dim result As %ScrollableResultSet = ##Class(%ScrollableResultSet).%New("%DynamicQuery:SQL") Set tSC=result.Prepare("SELECT * from FairWarning_Table_Local.Logs") Write !, tSC // value of 1 Set tSC = result.Execute() Write !, tSC // value of 1 Set tSC = result.%Save() // The class use temp globals that are mapped Write !, tSC // value of 1 Return result } Bellow a test if your code: The suggested code: Regards
go to post Cristiano Silva · Oct 4, 2022 Hi @Dominic Chui Another way is: In ObjectScript Explorer click in Show System Items.
go to post Cristiano Silva · Sep 28, 2022 Hi @Marykutty George you can use the WebGateway EventLog to capture more informations about the request did to WebGateway. See the documentation: https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_oper_config#GCGI_config_parms_system_event