Encontrar

Resumen
· 2 hr atrás

InterSystems 开发者社区中文版:2025年度简报

大家好,欢迎访问 2025 年度开发者社区简报。
一般统计信息:
✓ 2025 年共发布了 148 篇帖子:
 90 篇帖子
 53份公告
 4个问题
  – 1次讨论
✓ 2025 年共有 268 位成员加入开发者社区
✓ 总共发布了 2,463 篇帖子
✓ 总共有 21,461 位成员加入
最热门:
2025 年纵览InterSystems开发者社区
Artículo
· 7 hr atrás Lectura de 2 min

Como comparar o conteúdo de duas globais

Rubrica de FAQ do InterSystems

O utilitário ^%GCMP pode ser usado para comparar o conteúdo de dois globals.

Por exemplo, para comparar ^test e ^test nos namespaces USER e SAMPLES, ficaria assim:

No exemplo abaixo, 700 globais idênticas são criadas nos dois namespaces, e o conteúdo de uma delas é alterado para torná-lo o alvo de detecção.
 

USER>kill ^test
USER>for i=1:1:100 { for j=1:1:7 { set ^test(i,j)="Test"_i } }
 
USER>zn "samples"                  // change namespace to SAMPLES
SAMPLES>kill ^test
SAMPLES>for i=1:1:100 { for j=1:1:7 { set ^test(i,j)="Test"_i } }
 
SAMPLES>set ^test(50,5,1)=1        // Change one of the globals created in the SAMPLES namespace.
SAMPLES>do ^%GCMP
Compare global ^test               // Global to compare.
on directory set: (this system)    // Enter
in namespace: SAMPLES =>           // Enter (if this namespace is OK)
with global ^test=>                // Global to compare
on directory set: (this system)    // Enter
in namespace: SAMPLES => USER      // Namespace to compare
Output differences on
Device:                            // Destination for output results. Press <Enter> to view in a terminal.
                                   // If you enter the full path of the log file name, the output will be sent there.
Right margin: 80 =>

Compare global ^test in SAMPLES
 with global ^test in USER
 
^test(50,5,1) exists in ^|"SAMPLES"|test but not in ^|"USER"|test    // Detects differing globals
Time=.001822
SAMPLES>

Se você quiser comparar entre instâncias em servidores diferentes, em vez de dentro da mesma instância, use o utilitário ^DATACHECK. Para instruções sobre como usar o utilitário ^DATACHECK, consulte o artigo relacionado abaixo:

How to compare multiple globals and routines in two databases

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 7 hr atrás Lectura de 1 min

Mostrar los elementos de configuración de producción con estado

Este código muestra los elementos de producción configurados e indica si están habilitados o deshabilitados.

 

Include (Ensemble, EnsUI, EnsUtil)

Class Test.ProductionConfig
{

ClassMethod GetConfigItems() As %Status
{
Set tStatement = ##class(%SQL.Statement).%New()
Set tSC = tStatement.%PrepareClassQuery("Ens.Config.Production","EnumerateConfigItems")
Write tSC,!
Write "ConfigItemName"," ","Enabled",!
#Dim exp As %Exception.SystemException
#Dim rset As %SQL.StatementResult
Set rset = tStatement.%Execute()
Write rset,!
Write rset.%SQLCODE,!
While rset.%Next() {
Try {
Set tConfigName = rset.%GetData(1)
Set tEnabled = rset.%GetData(3)
Catch exp {
Write "CATCH",!
Write exp,!
Write exp.DisplayString(),!
}
Write $Get(tConfigName)," ",$Get(tEnabled),!
}
Quit tSC
}

}

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 7 hr atrás Lectura de 1 min

Exibir os Itens de Configuração de Produção com Status

Este código fornece os itens de produção configurados com status habilitado ou desabilitado.

 

Include (Ensemble, EnsUI, EnsUtil)

Class Test.ProductionConfig
{

ClassMethod GetConfigItems() As %Status
{
Set tStatement = ##class(%SQL.Statement).%New()
Set tSC = tStatement.%PrepareClassQuery("Ens.Config.Production","EnumerateConfigItems")
Write tSC,!
Write "ConfigItemName"," ","Enabled",!
#Dim exp As %Exception.SystemException
#Dim rset As %SQL.StatementResult
Set rset = tStatement.%Execute()
Write rset,!
Write rset.%SQLCODE,!
While rset.%Next() {
Try {
Set tConfigName = rset.%GetData(1)
Set tEnabled = rset.%GetData(3)
Catch exp {
Write "CATCH",!
Write exp,!
Write exp.DisplayString(),!
}
Write $Get(tConfigName)," ",$Get(tEnabled),!
}
Quit tSC
}

}

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 7 hr atrás Lectura de 2 min

CCR: Bloqueio das transições markMoveToXXXXComplete e markCANCELComplete quando houver ItemSets não implantados

Como parte das melhorias relacionadas ao uso e à usabilidade do CCR, certas transições agora são bloqueadas quando um Registro CCR possui ItemSets não implantados para Ambientes obrigatórios.

Para promover boas práticas, quando um CCR de Nível 1 ou Nível 2 se move entre Ambientes, é importante que os ItemSets sejam implantados nos Ambientes obrigatórios antes de confirmar que o CCR foi implementado com sucesso no próximo Ambiente. Anteriormente, ao progredir um CCR de um Ambiente para outro, os usuários não eram obrigados a implantar os ItemSets antes de executar as transições markMoveToXXXXComplete ou markCANCELComplete. Agora, ambas as transições são bloqueadas se houver ItemSets não implantados para os próximos Ambientes.

 

Existem algumas observações importantes em relação a essa mudança:

  • Para CCRs de Nível 1 apenas: Se um usuário desejar cancelar um CCR e houver ItemSets não implantados antes de cancelar, o comportamento do CCR é o seguinte:
    • Quaisquer ItemSets não implantados existentes antes de escolher o cancelamento são abandonados automaticamente (isso não é um comportamento novo, mas é importante observar). ItemSets abandonados não impedem que o usuário execute a transição markCANCELComplete.
    • Novos ItemSets são criados para reverter as alterações em cada Ambiente afetado.
    • Esses novos ItemSets que foram criados devem ser implantados antes de executar a transição markCANCELComplete.
  • Para CCRs de Nível 2: Não fazemos um backout automático, o que significa que os ItemSets não implantados permanecerão assim até que o usuário os limpe. Portanto, a transição markCANCELComplete será bloqueada até que todos os ItemSets não implantados sejam abandonados ou implantados antes de mudar a Fase ou mover para Cancelado, incentivando boas práticas.

Essas restrições são aplicadas a todos os Ambientes Secundários que estão marcados como “Requer ItemSets”. Se os Ambientes forem mantidos atualizados de outra forma (por exemplo, atualização de banco de dados, tarefa AutoDownload), é necessário garantir que a opção “Requer ItemSet” esteja desmarcada para evitar que a nova verificação do fluxo de trabalho atrapalhe o trabalho.

Por favor, não hesite em comentar aqui com dúvidas ou entrar em contato pelos canais normais de suporte CCR.

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