Encontrar

Pregunta
· 19 ene, 2025

Where did my variables go? Without Exclusive NEW, now I get <UNDEFINED>

I inherited some legacy MUMPS / ObjectScript code. A code review identified an exclusive NEW and that is not allowed per our coding standards.

 

The original code contains:

RUN(CALL,DRVNAME)
 S $EC=""
 S ^TMP($J,"RMPV","DRVNAME")=DRVNAME
 N TMPFILE,OLDIO
 S OLDIO=$IO
 I $G(^TMP("RMPV","SILENT"),1) S IOP="NULL",%ZIS=0 D ^%ZIS I '$G(POP,1) U IO
 D INIT^@DRVNAME
 D  ; scope variables
 .N (DUZ,CALL) ; Protect %response
 .S IOF="""""",IOM=80,U="^"
 .D @CALL
 U OLDIO
 Q

 

I attempted to replace Exclusive NEW with a ClassMethod in a procedure block as follows:

RUN(CALL,DRVNAME) ;primary entry point
 Set ^OLIVER(0-$I(^OLIVER)) = $ZDateTime($NOW(),8,1,3)_" : "_$JOB_"/"_$STACK_" : RUN1^RMPVDRV"
 Set ^OLIVER(0-$G(^OLIVER),"CALL")=CALL
 Set ^OLIVER(0-$G(^OLIVER),"DRVNAME")=DRVNAME
 Merge ^OLIVER(0-$G(^OLIVER),"DUZ")=DUZ
 If '$Data(DUZ) Set DUZ=$Get(^OLIVER)
 If '$D(^OLIVER) $EC=""
 ^TMP($J,"RMPV","DRVNAME")=DRVNAME
 TMPFILE,OLDIO
 OLDIO543=$IO
 $G(^TMP("RMPV","SILENT"),1) IOP="NULL",%ZIS=0 ^%ZIS '$G(POP,1) IO
 Set ^OLIVER(0-$G(^OLIVER),"SILENT")=$G(^TMP("RMPV","SILENT"),1)
 INIT^@DRVNAME
 Set ^OLIVER(0-$I(^OLIVER),"OLDIO1")=OLDIO543
 //D ; scope variables
 //.;N (DUZ,CALL) ; Protect %response
 //.S IOF="""""",IOM=80,U="^"
 //.Do @CALL
 Do ##class(VALIP.REST.Implementation.Generic).doCall(CALL,DUZ)
 Set ^OLIVER(0-$I(^OLIVER)) = $ZDateTime($NOW(),8,1,3)_" : "_$JOB_"/"_$STACK_" : RUN2^RMPVDRV"
 Set ^OLIVER(0-$I(^OLIVER),"OLDIO2 in RMPVDRV")=$Get(OLDIO543)
 OLDIO543
 Q

I see <UNDEFINED> error when I try to OLDIO543. All my variables have gone. What happened? Or how can I replace Exclusive NEW?

 

Here is the class with my new ClassMethod:

Class VALIP.REST.Implementation.Generic [ ProcedureBlock ]
{

/// Protect %response
ClassMethod doCall(CALL, DUZ) [ PublicList = (CALL, DUZ) ]
{
Try {
Set IOF="""""",IOM=80,U="^"
Do @CALL
Quit
Catch exp {
Set ^OLIVER(0-$I(^OLIVER)) = $ZDateTime($NOW(),8,1,3)_" : "_$JOB_" : Catch in VALIP.REST.Implementation.Generic"
Set ^OLIVER(0-$G(^OLIVER),"$ZERROR") = $ZERROR
Set ^OLIVER(0-$G(^OLIVER),"exp") = exp
}
Quit
}

}
 

3 comentarios
Comentarios (3)1
Inicie sesión o regístrese para continuar
Pregunta
· 19 ene, 2025

cconsole alarm: ROLLFAIL: <STORE>rbbulk+27^ROLLBACK

Hi experts, please, do you know cause this errors in cconsole?
I'd like know what can I investigate.

01/16/25-18:25:40:081 (11368) 0 Job failed in StartDeepSeeAgents^%SYS.DeepSee:  tPriority=H, n=117, pAgentCount=128, pCount=116, $zu(56,3)=<UNKNOWN ERROR>, $zu(56,5)=JOB^%ZSTART, $zu(56,6)=
01/16/25-18:26:45:922 (10800) 2 ROLLFAIL: <STORE>rbbulk+27^ROLLBACK
01/16/25-18:26:45:922 (10800) 2 Process halts and system might hang when CLNDMN retries the rollback
01/16/25-18:26:45:922 (10800) 2 JOBEND_LOCKCLR: not all locks released in TRANSCB job#125, tid=125, h,t=0xbf0d4318,0xbf01b618
01/16/25-18:26:45:922 (14752) 2 Process terminated abnormally (pid 10800, jobid 0xada9007d) (Halted with an open transaction)
01/16/25-18:26:45:922 (14752) 0 Clean daemon has rolled back open transaction for job 125
01/16/25-18:26:45:922 (14752) 2 Process terminated abnormally (pid 10800, jobid 0xada9007d) (Halted with an open transaction)
01/16/25-18:26:45:922 (14752) 0 cleaned dead job, pid: 10800, jobid 0xada9007d

Thank you.

1 Comentario
Comentarios (1)1
Inicie sesión o regístrese para continuar
Artículo
· 19 ene, 2025 Lectura de 1 min

2024.3 HTTP Interoperability Highlight - New Outbound OAuth 2.0 Settings

In your Interoperability Production you could always have a Business Operation that is an HTTP client, that uses OAuth 2.0 for authentication, but you had to customize the Operation for this authentication methodology. Since v2024.3, which was lately released, there is a new capability, providing new settings, to handle this more easily.

In your Business Operation that uses the HTTP Outbound Adapter, you will find new Settings, under the OAuth group.

For example:

  • Access Token Placement (Header | Body | Query)
  • Grant Type (Password | JWT Authorization | Client Credentials)

See all the new OAuth-related settings documentation here

And here's a sample screen shot of a related Operation's settings:

Comentarios (0)1
Inicie sesión o regístrese para continuar
Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 18 ene, 2025 Lectura de 1 min

Conectando o IRIS ao SQL Server usando conexão ODBC

Neste tutorial, vou discutir como você pode conectar sua plataforma de dados IRIS a uma base de dados sql server.

 

Prerequisitos: 

Passo 1: Rode a fonte de dados ODBC

Passo 2: Vá na aba DSN de sistema e clique Adicionar:

Passo 3: Selecione "Driver ODBC para SQL Server" e clique em finalizar

Passo 4: preencha os detalhes do servidor:

 

Passo 5: 

 

 

 

Passo 6: Clique em próximo

 

Passo 7: clique em finalizar 

 

Você pode verificar a conexão por essa janela

 

 

Agora abra o Portal de Administração IRIS:

Vá em: Administração do sistema -> Configuração -> Conectividade -> Conexões SQL Gateway

Clique em criar nova conexão

Passo 8: Preencha os detalhes e teste a conexão.

 

Nota se você não consegue ver a DSN: Assegure-se de  selecionar o driver correto no passo 3, e no nível de DSN do Sistema.

 

Agora você estabeleceu a conexão!

Comentarios (0)1
Inicie sesión o regístrese para continuar