Kurro Lopez · Mar 15, 2024 go to post

ding, ding, ding... we have a winner!!!

Yep... the event OnEndRequest is the correct answer... I can get the end of the process.

Thanks for your help

Kurro Lopez · Mar 20, 2024 go to post

He is more than a hero... he is our inspiration. I have no words to express my admiration for @Robert.Cemper1003.

Congratulation, I hope we can meet together soon

Kurro Lopez · Mar 27, 2024 go to post

I'm afraid you need a Office 365 subscription, because it is a functionality for full version. Sorry.

The webhook is associated with an account and is managed by the Microsoft server, a personal account does not have a service that is "listening" for external requests.

Kurro Lopez · Apr 1, 2024 go to post

Congratulations to the winners. Thanks for all, we must to repeat 😉

Kurro Lopez · Apr 10, 2024 go to post

Thanks, using this code I've converted it to a Strem.GlobalChar and read the content correctly

Kurro Lopez · Jul 15, 2024 go to post

I don't believe that training is working as poorly as I'm experiencing. Does anyone have any answers to this problem?

Kurro Lopez · Jul 23, 2024 go to post

Thanks Thomas,

Indeed, I have tried to use IntegratedML as a neural network, if I really need my model to learn to find what the pattern of converting degrees Celsius to Fahrenheit is, it is to "feed" the data with more data.

Thanks so much for the explanation.

Kurro Lopez · Oct 18, 2024 go to post

Note: I've done the following code to catch the native error... but it is a bit "smell code"

// run the querySet tSC = ..Adapter.ExecuteUpdateParmArray(.nrows,SQL,.param)

// Check if there is any errorIf$$$ISERR(tSC)
{
	Set msgError = $System.Status.GetErrorText(tSC) 
	// Check here if the native error code is 2601 (Cannot insert duplicate key row into object 'MYPATIENTS' with unique index 'UQ_UNIQUE_INDEX')if$FIND(msgError, "[2601]") > 0
	{
	    // This is a insert/update that violates the unique code// remove duplicate recordquit$$$OK
	}
	else
	{
	    // Generic error... thow excepctionquit tSC
	}
}
Kurro Lopez · Oct 18, 2024 go to post

Thanks Julian.

If there is any error in the query, always throw a generic error code (ERROR #6022: Gateway: Execute fail), but I don't know if it is due a a duplicate value (code 2061) or is due other sql error code.

Using this code, err.Code always is 6022

Kurro Lopez · Oct 28, 2024 go to post

Thank you Luis Angel,

I've followed the steps of the documentation and now it works.

Fortunally, the code of that namespace it was a dummy code just to create a documentation about how to rename a namespace.

Thanks @Brett Saviano 

I've already taken a look at the api/atelier APIs, and they've been very helpful in retrieving namespace names.

In our check method, in addition to server information, we return more information about production, such as the version number, last installation date, connection status with external databases, etc.

We have two mirrored servers, so if one of the servers goes down, the backup server is activated.

If the server name is different than expected, it's because the backup server has been activated and is providing service without issue, but we have an alert that the primary server has gone down.

This is an example of what our check service returns:

{
  "result": "OK",
  "methods": [
    {
      "test": "SQL_USERS",
      "result": "OK"
    },
    {
      "test": "SQL_APPOINTMENT",
      "result": "OK"
    },
    {
      "test": "VERSION",
      "result": "1.14.0.0327"
    },
    {
      "test": "INSTALLED",
      "result": "2024-12-04T08:04:52+01:00"
    }
  ],
  "serverName": "SRVPROD01",
  "serverApi": "10.168.1.1",
  "serverInstance": "HEALTHCONNECT",
  "execution_time": "00:00:00.0597418"
}

Hi @Touggourt 

If you want to retrieve the values, prepare the query by concatenating the values ​​you want to retrieve

set var1 = "Book"set var2 = "Author"set query = "SELECT "_var1_","_var2_" FROM myTables.Books"set statement = ##class(%SQL.Statement).%New()

set status = statement.%Prepare(query)
set rset = statement.%Execute()
do rset.%Display()

Have a look the following link:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

Regards
 

Also... you can create a ClassMethod to pass the fields to retrieve

ClassMethod DynamicQuery(columns As%String) As%Status
{
    // columns: comma-separated string, e.g. "Book,Author"// Basic validationIf columns = "" {
        Write"No columns specified.", !
        Quit$$$ERROR
    }
    
    // Build the SQL querySet sql = "SELECT " _ columns _ " FROM myTables.Books"Try {
        Set stmt = ##class(%SQL.Statement).%New()
        Set sc = stmt.%Prepare(sql)
        If$$$ISERR(sc) {
            Write"Error preparing the query.", !
            Quit sc
        }
        
        Set rset = stmt.%Execute()
        
        While rset.%Next() {
            For i = 1:1:rset.%ColumnCount {
                Write rset.%GetColumnName(i), ": ", rset.%Get(i), " | "
            }
            Write !
        }
    } Catch ex {
        Write"Error executing the query: ", ex.DisplayString(), !
        Quit ex.AsStatus()
    }

    Quit$$$OK
}

Then, call it using this command:

Do##class(MyApp.Utils).DynamicQuery("Book,Author")

Hi community:

  • My name is Francisco López, AKA Kurro López
  • I'm from Spain, born and living in Málaga (Andalusia) in southern Spain, close to Mediterranean Sea.
  • Working as project manager in Salutic Soluciones, SL. This company is dedicated to creating software for medical management and services for health insurance companies.
  • I have extensive programming experience in several languages, from Clipper 87 to C#, including Python, PowerBuilder, Visual Basic, and, of course, ObjectScript. I've spent a long career dedicated to programming and the technical and functional analysis of new processes. I love programming in IRIS because it gives me a lot of freedom when generating complex workflows that would be much slower to complete with other languages.
  • My main hobby is the mountains. I love long walks, hiking, and discovering new places. I used to do mountain running, but my knees aren't what they used to be.
  • LinkedIn: https://www.linkedin.com/in/franciscolopezdelasheras/
  • I won't be attending READY 2025 this year, but I have attended in previous years and it's a great experience that everyone should go to at least once.

Thanks, Evgeny, as always.

It's not a bad idea to use an abbreviation map and Python for this. I can create a table with the code name and replace it with the UTC value.

https://www.timeanddate.com/time/zones/

This is a complete list of time zone codes and their UTC values.

What's the problem? Some are duplicated.

According to this list, Thursday, July 3rd at 08:20:00 AST, 2025 could be:

AST: Arabia Standard Time - UTC+03

AST: Atlantic Standard Time - UTC-04

Perhaps there's a mistake in the list.

Great team!!!
I've missed you all so much this year, I hope to see you all next year.

  • Went to the sea or a lake
    • YES... I live in a city by the Mediterranean Sea
  • Hiked/enjoyed nature
    • YES... I love it
  • Traveled somewhere new
    • YES... A small town in Galicia
  • Attended a concert or festival
    • YES... Brisa festival
  • Watched a movie or series
    • YES... Every day
  • Read a book
    • YES... A few
  • Earned points and redeemed a reward on Global Masters 🏆
    • YES.. Every day
  • Joined READY 2025 🎉
    • NO :( 
  • Spent time with family or friends
    • YES.. Always

Thanks for the information. I'll have a look the instructions how to implement a Semaphore.

Thanks... I was making my own class to convert datetime in other time zone, more or less that is working in C#

You have save me a lot of hours of work.

Well done. 🥇