Como aplicar patch de metadados no SAP Service and Ass...

Neste Guia, vou orientar você nas etapas necessárias para aplicar patches nas definições de metadados do SAP Service e Asset Manager.

Conteúdo:
O que é um patch?
Por que a correção é fornecida como patch?
Como aplicar o patch?
Apêndice

O que é um patch?

Um patch é uma representação compacta das diferenças entre dois arquivos, destinada ao uso com arquivos de texto orientados a linhas. Descreve como transformar um arquivo em outro e é assimétrico: o patch do arquivo1 para o arquivo2 não é o mesmo patch para a outra direção.

Porque a correção vem como um patch?

Anteriormente, as correções eram fornecidas como arquivos contendo alterações. O usuário precisa substituir os arquivos padrão originais pelos arquivos de patch para obter a correção.

Foi uma tarefa desafiadora e manual quando duas correções separadas exigiam alterações no mesmo arquivo. Para resolver esse problema, foi introduzido um formato de patch para correções de metadados. O formato de patch usa contexto e números de linha para localizar diferentes regiões de arquivo. Pode ser aplicado a uma versão do primeiro arquivo um pouco anterior ou posterior àquela da qual foi derivado, desde que o programa aplicativo ainda possa detectar o contexto da alteração.

Um único arquivo de patch pode conter diferenças para qualquer número de arquivos, e git diff produz diferenças para todos os arquivos modificados no repositório em um único patch.

Como aplicar o patch?

O patch pode ser aplicado no IDE abaixo

  1. Off-line: código do Microsoft Visual Studio
  2. On-line – SAP Business Application Studio

Opção 1: offline: código do Microsoft Visual Studio

  1. Dcarregue o arquivo de patch de metadados do SAP Note XXXXXXX.
  2. Ccopie o arquivo de patch no Microsoft Visual Studio Code.
  3. UMCorrija o serviço SAP e os metadados do Asset Manager.

Vamos usar o exemplo SAP Note 3486946 para metadados 2.405.

1a) Dcarregue o arquivo de patch de metadados da nota SAP 3486946.

Baixe o arquivo 3486946(2405).patch em https://me.sap.com/notes/3486946

1b) Ccopie o arquivo de patch no Microsoft Visual Studio Code.

Copie o arquivo baixado de preferência adjacente à pasta de definições de metadados

VSC_Copy_Patch_File.png

1c) UMCorrija o serviço SAP e os metadados do Asset Manager.

Abra o terminal incorporado no código do Microsoft Visual Studio (Menu>Terminal>Novo Terminal), vá para a pasta de definições de metadados e execute o comando patch.

patch --no-backup-if-mismatch -p4 < ../3486946\(2405\).patch

O –no-backup-if-incompatibilidade A opção faz com que o patch não crie arquivos de backup, mesmo para patches incompatíveis

-p

Remover componentes do caminho inicial (separados por barras) dos caminhos diferenciais tradicionais. Exemplo com -p2, um patch contra para/dir/arquivo será aplicado diretamente ao arquivo.

-p4 significa que removerá 4 componentes principais da rota

De para/src/metadata/definitions/Application.app PARA Aplicativo.app

VSC_Patched.png

aplique o patch ao arquivo Application.app indica que as alterações foram aplicadas com sucesso.

Opção 2: On-line – SAP Business Application Studio

  1. Dcarregue o arquivo de patch de metadados do SAP Note XXXXXXX.
  2. Ccopie o arquivo de patch para o SAP Business Application Studio.
  3. UMCorrija o serviço SAP e os metadados do Asset Manager.

2a) Dcarregue o arquivo de patch de metadados da nota SAP 3486946.

Baixe o arquivo 3486946(2405).patch em https://me.sap.com/notes/3486946

2b) Ccopie o arquivo de patch para o SAP Business Application Studio.

Faça upload do arquivo de patch baixado, de preferência para a pasta de definições de metadados

BAS_Load.png

BAS_Patch_File.png

2c) UMCorrija o serviço SAP e os metadados do Asset Manager.

Abra o terminal integrado (Menu > Exibir > Terminal)

BAS_Terminal.png

Execute o comando patch da pasta de definições de metadados

patch --no-backup-if-mismatch -p4 < ./3486946\(2405\).patch

BAS_Patched.png

aplique o patch ao arquivo Application.app indica que as alterações foram aplicadas com sucesso.

Nota: Exclua o arquivo 3486946(2405).patch da árvore do projeto após aplicar o patch.

Apêndice:

Possíveis razões para falha no comando patch

Comum:
1. Você deve estar no diretório de nível correto que corresponde à opção -p.
-p remove os principais componentes do caminho (separados por barras) dos caminhos diferenciais tradicionais. Por exemplo, com -p2, um patch para/dir/file será aplicado diretamente ao arquivo.
2. O arquivo deve existir na estrutura do projeto à qual você está tentando aplicar o patch

3. Aplicado parcialmente: se o patch foi aplicado a 2 de 3 arquivos Siga a etapa no. 4, Desfaça as alterações nos 2 primeiros arquivos e aplique novamente.

Importante:
4. O arquivo deve ser “suficientemente semelhante” àquele a partir do qual o patch foi produzido, caso contrário o patch não será aplicado. – Certifique-se de que o contexto do patch seja respeitado. Aplica o patch aos metadados padrão. Se estiver personalizando, abra o arquivo .patch em seu editor de texto e faça as alterações manualmente. Consulte “Qual é a estrutura de um patch» seção.
5. A etapa 4 se aplica a todos os arquivos no .patch

Outros:

  • Reinicie o VSCode e tente novamente
  • Abra um novo espaço de trabalho no VSCode e aplique o patch
  • Aplicar o patch no SAP Business Application Studio

Qual é a estrutura de um patch?

Aqui está um patch simples da nota SAP 3486946 – SAP Service and Asset Manager – Falha na atualização do aplicativo, NativeClass não está definido

3486946(2405).patch

diff --git a/src/metadata/definitions/Application.app b/src/metadata/definitions/Application.app
index 27681dc0d5..e7e901ddcc 100644
--- a/src/metadata/definitions/Application.app
+++ b/src/metadata/definitions/Application.app
@@ -22,5 +22,5 @@
"OnSuspend": "/SAPAssetManager/Rules/ApplicationEvents/ResetPeriodicAutoSync.js",
"OnExit": "/SAPAssetManager/Rules/ApplicationEvents/ExitEventHandler.js",
"OnLinkDataReceived": "/SAPAssetManager/Rules/DeepLinks/LinkDataReceived.js",
- "_SchemaVersion": "23.4"
+ "_SchemaVersion": "24.4"
}

Divida-o em seções:

diff --git a/src/metadata/definitions/Application.app b/src/metadata/definitions/Application.app

Este é o cabeçalho diferencial do Git. diff –git não é um comando literal, mas simplesmente sugere a noção de um diff específico do Git no estilo de comando Unix.

a/src/metadata/definitions/Application.app e b/src/metadata/definitions/Application.app são os arquivos comparados, com os principais nomes de diretório aeb adicionados para distingui-los caso sejam iguais (como são aqui, este patch mostra alterações de uma versão do mesmo arquivo para outra). Para gerar esse patch, editei o arquivo Application.app e executei git diff, que mostra alterações não graduais entre a árvore de trabalho e o índice. Não há diretórios nomeados a e b no repositório, são apenas convenções.

index 27681dc0d5..e7e901ddcc 100644

Esta é uma linha de cabeçalho estendida, uma das várias formas possíveis e apenas uma neste patch. Esta linha fornece informações do índice Git sobre este arquivo: 27681dc0d5 e e7e901ddcc são os IDs de blob das versões A e B do conteúdo do arquivo comparado e 100644 são os bits de modo, indicando que este é um arquivo normal: não executável e não um link simbólico (o uso de .. aqui entre IDs de blob é apenas como um separador e não tem nada a ver com seu uso na nomenclatura). Outras linhas de cabeçalho podem indicar os modos antigo e novo se eles foram alterados, os nomes dos arquivos antigos e novos se o arquivo foi renomeado, etc.

Os IDs de blob serão usados ​​se esse patch for aplicado posteriormente pelo Git ao mesmo projeto e ocorrerem conflitos durante a aplicação. Se esses blobs estiverem em seu banco de dados de objetos, o Git poderá usá-los para realizar uma mesclagem de três

FONTE

Por Staff

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *