查找

文章
· 一月 4 阅读大约需 2 分钟

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

讨论 (0)1
登录或注册以继续
文章
· 一月 4 阅读大约需 1 分钟

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
}

}

讨论 (0)1
登录或注册以继续
文章
· 一月 4 阅读大约需 1 分钟

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
}

}

讨论 (0)1
登录或注册以继续
文章
· 一月 4 阅读大约需 2 分钟

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.

讨论 (0)1
登录或注册以继续
文章
· 一月 4 阅读大约需 1 分钟

Visualize as configurações do seu servidor InterSystems usando o Structurizr

gj :: configExplorer é uma nova extensão do VS Code que se integra ao Server Manager e utiliza o Structurizr para gerar diagramas de configuração dos seus servidores.

Aqui está um curto vídeo introdutório.

Ao usar a API Nativa do Intersystems IRIS para Node.js, não é necessário instalar nenhum código de suporte nos servidores. Essa escolha de tecnologia também permite que ele participe do atual concurso da Developer Community.

O lançamento inicial foca em dois aspectos da configuração do servidor:

  • Namespaces e bancos de dados
  • Conectividade ECP

Sugestões sobre o que adicionar a seguir são bem-vindas, assim como feedback em geral.

讨论 (0)1
登录或注册以继续