Histórico de Alterações (LOG de Tabelas)
<h1>Regras de negócio</h1> Esse serviço permite consultar a data de alteração de um período específico que seja passado no campo dhAlter e entidades específicas passadas no campo Entidade. <br /><br /> Para utilizar a API, deve-se fazer uma requisição <b>POST</b> para o endpoint correspondente ao serviço desejado. <br /> <h3>Dependências</h3> <br>Da versão `4.35 (ou superior) do SankhyaOm`, basta seguir [este guia](https://ajuda.sankhya.com.br/hc/pt-br/articles/34538747408407-Log-de-Altera%C3%A7%C3%B5es-para-API-como-ativar-desativar-e-acompanhar-os-registros-de-altera%C3%A7%C3%A3o) para para ativar a rotina.<br> <br>Da versão 4.34, ou anterior, o processo é conforme segue: <br>1) Para que o serviço retorne informações, é necessário habilitar o parametro <b>LOGTABOPER</b> disponível nas Preferencias do SankhyaOm. Este liga ou desliga a funcionalidade de Log.<br /> 
<b>IMPORTANTE:</b> Ao ativar este parâmetro, serão criados gatilhos (triggers) no Banco de Dados. Durante o processo de ativação, pode haver um bloqueio temporário das tabelas, o que pode impactar a performance do SankhyaOM. Para minimizar qualquer impacto negativo no desempenho do sistema, recomendamos que a ativação do parâmetro seja realizada fora do horário de operação. <br>
<br /> 2) Temos também o parâmetro <b>LOGTABMAXAGE</b> que permite alterar a quantidade de dias que o Log ficará disponível. Por padrão, o tempo é de 3 dias corridos e este parâmetro permite alterar para até 7 dias corridos. Vale ressaltar que não é possível guardar os logs por mais de 7 dias. <br />

<br /> Para realizarmos a busca através do Json, utilizamos o serviço <i><b>"GatewayServiceProviderSP.logAlteracoesTabelas".</b></i><br />
<h3>Exemplo de uso:</h3> <ul> <li>URL Gateway Produção: https://api.sankhya.com.br/</li> <li>URL Gateway Sandbox: https://api.sandbox.sankhya.com.br/</li> </ul> <b>URL de chamada</b>: https://[URL_GATEWAY]/gateway/v1/mge/service.sbr?serviceName=GatewayServiceProviderSP.logAlteracoesTabelas&outputType=json <br /><br /><b>Corpo de requisição</b>{
"serviceName": "GatewayServiceProviderSP.logAlteracoesTabelas",
"status": "1",
"requestBody": {
"dhAlter": "2023-01-27T11:00:28",
"size":17,
"page":0,
"entidades": [
{
"nome": "Produto"
},
{
"nome": "CabecalhoNota"
},
{
"nome": "ItemNota"
},
{
"nome": "Estoque"
}
]
}
}
<b>Retorno:</b>
{
"serviceName": "GatewayServiceProviderSP.logAlteracoesTabelas",
"status": "1",
"pendingPrinting": "false",
"transactionId": "2F153D4BD713800F9B770DCC4FA1FE12",
"responseBody": {
"registros": [
{
"entidade": "Produto",
"dtAlter": "2023-02-27T08:14:46",
"evento": "CHANGE",
"pk": [
{
"nomeColumnPk": "CODPROD",
"valorPk": 1254
}
]
},
{
"entidade": "CabecalhoNota",
"dtAlter": "2023-02-27T08:14:46",
"evento": "CHANGE",
"pk": [
{
"nomeColumnPk": "NUNOTA",
"valorPk": 2144
}
]
},
{
"entidade": "ItemNota",
"dtAlter": "2023-02-27T09:00:12",
"evento": "CHANGE",
"pk": [
{
"nomeColumnPk": "NUNOTA",
"valorPk": 27283
},
{
"nomeColumnPk": "SEQUENCIA",
"valorPk": 1
}
]
},
{
"entidade": "Estoque",
"dtAlter": "2023-02-27T09:01:14",
"evento": "CHANGE",
"pk": [
{
"nomeColumnPk": "CONTROLE",
"valorPk": "018-23-76800"
},
{
"nomeColumnPk": "TIPO",
"valorPk": "P"
},
{
"nomeColumnPk": "CODPARC",
"valorPk": 0
},
{
"nomeColumnPk": "CODLOCAL",
"valorPk": 70180000
},
{
"nomeColumnPk": "CODPROD",
"valorPk": 504
},
{
"nomeColumnPk": "CODEMP",
"valorPk": 1
}
]
}
]
}
}
Além disso, existe uma forma de otimizar o processo e utilizar um parametro na requisição direta no loadRecords para puxar apenas registros que foram alterados a partir de um determinado momento. Basta inclui a propriedade <i><b>"modifiedSince".</b></i> na requisição. <br />
<h3>Exemplo de uso direto no end-point loadRecords</h3>{
"serviceName": "CRUDServiceProvider.loadRecords",
"requestBody": {
"dataSet": {
"rootEntity": "Parceiro",
"includePresentationFields": "N",
"offsetPage": "0",
"modifiedSince":"2024-04-16T12:59:59",
"criteria": {
"expression": {
"$": ""
}
},
"entity": {
"fieldset": {
"list": "CODPARC,NOMEPARC,FORNECEDOR,CLIENTE,CODCID,CLIENTE,CLASSIFICMS"
}
}
}
}
}
<br />O exemplo acima retorna todos os Parceiroso que foram editados a partir de 16/04/2024 12:59:59, conforme indicado no parametro <i><b>"modifiedSince".</b></i> presente na requisição.
Response
Consulta efetuada com sucesso