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 @Mary 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
go to post Cristiano Silva · Sep 14, 2022 Hi @Mary George Generally this message means that the Client disconnect from server because the request took to long time to reply. See documentation description:
go to post Cristiano Silva · Sep 14, 2022 Hi @Rochdi Badis Complementing @David Hockenbroch answer, you need to change the If statement, because we can't compare TimeStamp directly, even in the internal format, because in the comparision they are treated like strings. Use some one of these methods: $System.SQL.Functions.DATEDIFF ##Class(%Library.UTC).Compare ##Class(%Library.UTC)Diff
go to post Cristiano Silva · Sep 13, 2022 Hi @Evgeny Shvarov, Do you need to export the class definition of Productions Items? If yes, use the method ExportUDL of class %SYSTEM.OBJ Regards.
go to post Cristiano Silva · Sep 12, 2022 Hi Evgeny, You can handle deploy of Production Items and Configurations with the classes of package: Ens.Deployment More about deployment of productions Other way you can implement Production Source Control. Regards.
go to post Cristiano Silva · May 30, 2022 Hi Rochdi, The HTTP error 500 indicates that something happened in the server that's cause a error. I suggest you to do a test using postman or similar REST tool. If the works fine, maybe you can posted the JSON with some problem. Another suggest, change your code : While ('File.AtEnd) { s Line=Line_File.Read(1000)_$char(10) } do Httprequest.EntityBody.Write(Line) By: do Httprequest.EntityBody.CopyFrom(File) Regards.
go to post Cristiano Silva · May 10, 2022 Hi Nilson, Check the credentials (username and password) the error reported was "Access denied".
go to post Cristiano Silva · Mar 31, 2022 Hi Harshdeep, The error invalid of is like a Java NullPointerException or NullReferenceException of .Net. Check if intFaceDao or InterfaceDaoa are valid objects. Put these macros in you code e execute a test. $$$LOGINFO("Check intFaceDado " _ ..Adapter.intFaceDao) $$$LOGINFO("Check DaoInterfaceDado" _ ..Adapter.intFace.DaoInterfaceDao) After execution, see in the Envent Log the result. Regards
go to post Cristiano Silva · Feb 13, 2022 Hi Prashanth, You need to create another web application with Authentication Method equal unauthenticated. Default web application: Unauthenticated Web Application: Samples of access: Regards. Cristiano José da Silva.
go to post Cristiano Silva · Feb 13, 2022 Hi Michel, Yes, your SELECT statement returns the ID of he class. The ID of the %Dictionary.IndexDefinition class is compounded by parent||Name. The property parent is a reference to the class definition that contains the index. See: See the documentation for more information: https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic....
go to post Cristiano Silva · Feb 2, 2022 HI @phillip jack, Like @Eduard Lebedyuk told, the better way is using stored procedures written in COS, but if you want to use only SQL you can try this: SELECT ID, $LISTGET($LISTGET($LISTGET(Skill)),1) PSKILL, $LISTGET($LISTGET($LISTGET(Skill)),2) OSKILL FROM myclass.DataBase If you change the serial object and add more properties increment the outer $LISTGET last parameter Regards, Cristiano José da Silva.