Rechercher

Pergunta
· Set. 13

Ensemble query

Hi Team,

I've basic learning in Ensemble. I want to create a code as per following request. Please help in clearing following questions

We have a business process-AA. In this business process, we have onRequest method, here after performing some logic, I have to call a method ProcessAAlogic. 

In ProcessAAlogic method, after initial processing, we have to call a business operation BB asynchronously (which will give a flag "AACompleted" having value 1 or 0) in pResponse object.
Now based on this AACompleted flag, I have to call other methods which are part of onRequest method  i.e.,GoAheadtoCC and GoAheadtoDD.

Question-1-how to call a business operation asynhronously and get the response?
Question-2-Assuming AACompleted flag is part of pResponse, then how to write the code to get its value and store the same in newvariable AACompletedfromPresponse.
Question-3-Assuming we fetch the variable AACompletedfromPresponse, then how code flow goes back to on Request method ?

Class AA as Ens.BusinesProcess {

Method on Request (pRequest as ClassA, pResponse as Ens.Response) as %status
{
    // After performing some logic
     Set tSC=..ProcessAAlogic()
   
     If  AACompletedfromPresponse {
    Set tSC=..GoAheadtoCC(AACompletedfromPresponse)
     }
    Else {
    Set tSC=..GoAheadtoDD(AACompletedfromPresponse)
    }

     
}

Method ProcessAAlogic () as %status {

    //after Intial processing 
    Set tSC = ..SendCallAsync("BB", pRequest)

    Set AACompletedfromPresponse=AACompleted (variable from pResponse)
}

}

2 Comments
Discussão (2)2
Entre ou crie uma conta para continuar
Artigo
· Set. 13 4min de leitura

Plug-N-Play on Pattern Match WorkBench

Plug-N-Play on Pattern Match WorkBench

Article to announce pre-built pattern expressions are available from demo application.

AI deducing patterns require ten and more sample values to get warmed up.

The entry of a single value for a pattern has therefore been repurposed for retrieving pre-built patterns.

Example: Email address

Paste an sample value for example an email address in description and press "Pattern from Description".

The sample is tested against available built-in patterns and any matching patterns and descriptions are displayed.

Patterns can also be retrieved by Keyword. For example: "email".

Keywords for English, French, Spanish and Portuguese are supported depending on the selected interface language mode.

Fallback simple format

In case where an unmatched sample is provided for single entry, the behavior is to create a simple format pattern based on input:

Available Patterns today

Network and Messaging

Keyword Description Example
email Email address info@genput.com
fqdn Fully qualified domain name  www.genput.com
http An HTTP(S) web address with FQDN, ipv4, ipv6<br/>with optional interface name, port number, query string and anchor label https://www.genput.com/app/page.cls?a=1&b=2#anchor3
ipv4 IP Version 4 address 208.130.29.0
ipv4 cidr IPV4 with Classless Inter-Domain Routing 208.130.29.0/24
ipv6 IP Version 6 address 3007:0ad3::ed00:17:4371
ipv6 cidr IPV6 with Classless Inter-Domain Routing 3007:0ad3::ed00:17:4371/24

 Storage

Keyword Description Example
archive files Files with known archive extension test_file.zip
data files Match files with known data extensions test_file.csv
document files Match files with known document extensions test_file.pdf
fileshare Directory/ Fileshare for Windows / Unix

\\hostname\user\docs\Letter.txt

smb://hostname/directorypath/resource

image files Match files with known image extensions test_file.png
test_file.jpeg
sound files Match files with known sound extensions test_file.wav
web files Files with known web extensions test_file.html
test_file.js

Security

Keyword Description Example
user principal name Logon name username@domain.com
down-level logon Logon name domain.com\username

Clinical

Keyword Description Example
reference range lab reference range 135-145 mmol/L
100-132 mg/dL
0.25-0.75 μkat/L
< 100 mg/dL

Date time formats

Keyword Description Example
leap year Leap years from 1840 2000
CCYYMMDD Date format 20250911
CCYY/MM/DD Date format 2025/09/11
CCYY-MM-DD Date format 2025-09-11
MMDDCCYY Date format 09112025
MM/DD/CCYY Date format 09/11/2025
MM-DD-CCYY Date format 09-11-2025
DDMMCCYY Date format 11092025
DD/MM/CCYY Date format 11/09/2025
DD-MM-CCYY Date format 11-09-2025
HHMM 12 Time format 1256 AM
HHMM 24 Time format 1256
HH:MM 12 Time format 12:56 AM
HH:MM 24 Time format 12:56
HHMMSS 12 Time format 12:56:56 AM
HHMMSS 24 Time format 12:56:56
HH:MM:SS 12 Time format 12:56:56 AM
HH:MM:SS 24 Time format 12:56:56
CCYYMMDDHHMM Datetime format 202509111256
CCYYMMDDHHMMSS Datetime format 20250911125656
CCYY/MM/DD HH:MM 12 Datetime format 2025/09/11 12:56 AM
CCYY/MM/DD HH:MM 24 Datetime format 2025/09/11 12:56
CCYY-MM-DD HH:MM 12 Datetime format 2025-09-11 12:56 AM
CCYY-MM-DD HH:MM 24 Datetime format 2025-09-11 12:56
CCYY/MM/DD HH:MM:SS 12 Datetime format 2025/09/11 12:56:56 AM
CCYY/MM/DD HH:MM:SS 24 Datetime format 2025/09/11 12:56:56
CCYY-MM-DD HH:MM:SS 12 Datetime format 2025-09-11 12:56:56 AM
CCYY-MM-DD HH:MM:SS 24 Datetime format 2025-09-11 12:56:56
MM/DD/CCYY HH:MM:SS 12 Datetime format 09/11/2025 12:56:56 AM
MM/DD/CCYY HH:MM:SS 24 Datetime format 09/11/2025 12:56:56
MM-DD-CCYY HH:MM:SS 12 Datetime format 09-11-2025 12:56:56 AM
MM-DD-CCYY HH:MM:SS 24 Datetime format 09-11-2025 12:56:56
DD/MM/CCYY HH:MM:SS 12 Datetime format 11/09/2025 12:56:56 AM
DD/MM/CCYY HH:MM:SS 24 Datetime format 11/09/2025 12:56:56
DD-MM-CCYY HH:MM:SS 12 Datetime format 11-09-2025 12:56:56 AM
DD-MM-CCYY HH:MM:SS 24 Datetime format 11-09-2025 12:56:56

Exact Vs Contains

To match text within larger text body a prefix and suffix may be added to a pattern for example:

.1(.E1P)1"("3N1")"3N1"-"4N1"-"4N.1(1P.E)

Can be used to match the formatted number in:

The user may be contacted via mobile (323)045-5639-4739 for further clarification.

Written as a code example:

USER>set text="The user may be contacted via mobile (323)045-5639-4739 for further clarification."

USER>write text?.1(.E1P)1"("3N1")"3N1"-"4N1"-"4N.1(1P.E)
1
USER>set text="The user may be contacted via mobile4(323)045-5639-47394for further clarification."

USER>write text?.1(.E1P)1"("3N1")"3N1"-"4N1"-"4N.1(1P.E)
0

Feedback

Open to suggestions for other information candidates for patterns.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Set. 12 3min de leitura

Melhorando Consultas lentas de SQL no InterSystems IRIS: Uma Solução Prática

Uma coisa que aprendi ao longo dos anos é que, não importa o quão aprimorada seja a lógica do seu aplicativo, o desempenho do banco de dados acabará por determinar o sucesso ou fracasso da experiência do usuário. Trabalhando com o InterSystems IRIS, recentemente vivenciei isso em primeira mão. Um de nossos clientes estava construindo um painel de relatórios que funcionava perfeitamente durante os testes, mas assim que o conjunto de dados de produção cresceu para milhões, os tempos de resposta ficaram extremamente lentos.

À primeira vista, parecia um problema de hardware. Os servidores estavam sobrecarregados, o uso de memória aumentou e todos estavam convencidos de que precisavam aumentar a infraestrutura. No entanto, uma análise mais aprofundada do IRIS revelou uma história diferente. O verdadeiro problema não era o hardware — eram os planos de execução do SQL.

Aqui está a abordagem prática que adotei, passo a passo:

 

Passo 1: Verificar as Ferramentas de Desempenho SQL

O IRIS vem com um monitor de desempenho SQL muito útil. Executar as consultas problemáticas por meio dele me mostrou exatamente o que estava acontecendo: consultas nas tabelas inteiras em cada solicitação. Assim que vi o plano, ficou claro que o otimizador não tinha as opções certas disponíveis.

Passo 2: Reavaliar a Estratégia de Indexação

Tínhamos índices no lugar, mas não para a forma como as consultas foram realmente escritas. Por exemplo, o painel filtrava intensamente um campo de data, mas não havia um índice nessa coluna. Assim que criei um índice ali, o tempo de execução caiu de segundos para menos de 200 milissegundos. Essa única mudança fez uma diferença drástica.

Passo 3: Reescrever Algumas Consultas

Nem toda correção era sobre índices. Algumas consultas foram estruturadas de maneiras que impediram o otimizador de fazer seu melhor trabalho. Substituir algumas subconsultas por junções e simplificar condições redundantes deu ao IRIS mais flexibilidade para escolher caminhos eficientes. Foram pequenas mudanças no código, mas desbloquearam grandes melhorias.

Passo 4: Testar em Escala, Não Apenas em Ambiente de Desenvolvimento

Uma das armadilhas que vejo com frequência — e na qual eu mesmo caí aqui — é testar apenas com pequenos conjuntos de dados. Uma consulta que funciona rapidamente com 100 linhas pode se comportar de maneira muito diferente com 10 milhões. Após o ajuste, certifiquei-me de fazer testes de estresse nas consultas com volumes de dados semelhantes aos de produção. Isso deu a confiança de que as melhorias se manteriam ao longo do tempo.

---

Ao final desse processo, o painel de controle passou de lento para ágil, sem tocar no hardware. Para mim, a grande lição foi que o InterSystems IRIS já possui as ferramentas que você precisa para diagnosticar e resolver esses gargalos — você só precisa usá-las.

 

Se você está desenvolvendo com o IRIS, meu conselho é simples: inclua o monitoramento de desempenho como parte de seu fluxo de trabalho desde o início. Não espere até que os usuários reclamem. O SQL Performance Monitor, combinado com uma estratégia de indexação cuidadosa e um bom design de consultas, pode economizar horas (e dores de cabeça) mais tarde.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Set. 12 5min de leitura

Ejecuta tu Agente de IA con InterSystems IRIS y modelos locales con Ollama

En el artículo anterior vimos cómo construir un agente de IA de atención al cliente con smolagents e InterSystems IRIS, combinando SQL, RAG con búsquedas vectoriales e interoperabilidad.

En ese caso, utilizamos modelos en la nube (OpenAI) para el LLM y los embeddings.

En esta ocasión daremos un paso más: ejecutar el mismo agente, pero con modelos locales gracias a Ollama.

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· Set. 12

Faites partie de notre vidéo du 10e anniversaire !

Cette année, notre Communauté de Développeurs d'InterSystems fête ses 10 ans, et nous vous invitons à participer aux festivités !

Nous créons une vidéo spéciale, remplie de vœux et de souvenirs de membres du monde entier. Envie de participer ? C’est simple :

▶️ Enregistrez un court extrait (1 à 2 minutes) dans lequel vous :

  • Partagez un moment fort ou mémorable de votre expérience au sein de la Communauté de Développeurs
  • Envoyez vos félicitations pour ce 10e anniversaire 🎊

Nous rassemblerons vos contributions dans une grande vidéo de célébration pour le plus grand plaisir de tous ! 🎬✨

👉 Cliquez ici pour enregistrer votre vidéo

Cela ne prend que quelques minutes : suivez les instructions à l’écran ; aucune configuration n’est requise. Une fois terminé, nous recevrons automatiquement votre vidéo.

Ne manquez pas votre chance d’être présenté lors de la célébration officielle du 10e anniversaire ! 🥂

Discussão (0)1
Entre ou crie uma conta para continuar