Análise de Validação de Estoque
Este documento descreve o processo de análise técnica quando ocorre erro de validação de estoque durante a exportação de pedidos, utilizando como apoio:
- Insomnia
- Banco Cloud
- CloudWatch
Como exemplo, será utilizado o cliente Amabile, com erro de validação de estoque em 02/03/2026.
Identificar o erro no Station
Para localizar o produto com erro na validação de estoque:
- Acesse Tarefas escalonadas no Station.
- Clique sobre a tarefa de descarga que está com erro.
- Analise os detalhes apresentados na tela.

Nesta tela, é possível verificar que:
- A descarga foi realizada com sucesso.
- O erro ocorreu na exportação, etapa em que a validação de estoque é aplicada.
- A mensagem indica falta de estoque para o produto 1640, no local 10100, na empresa 1, pois não há saldo suficiente para atender a quantidade negociada no pedido.
Para investigar a situação no CloudWatch, copie o nome do arquivo de descarga do vendedor.
No exemplo:
dsg_95_20260302185127423366.zip
Analisar o erro no CloudWatch
Localizar os logs da lambda de exportação
-
Abra o CloudWatch no perfil correspondente ao cliente.
-
No menu lateral, acesse Logs > Gerenciamento de Logs.
-
Na busca de Grupos de logs, procure pela lambda:
/aws/lambda/sfv-mobile-lambda-seller-discharge-prod-us-east-2-main -
Clique em Pesquisar todos os fluxos de log (canto inferior direito).
-
Em Eventos de log, cole na busca o nome do arquivo de descarga copiado no Station.
-
Ajuste o período de tempo conforme o horário em que a tarefa ocorreu.
-
Clique no link azul em Nome do stream de logs da primeira linha que contenha na mensagem um texto semelhante a:
{‘Records: [{messageId...”
Identificar a tentativa de inserção do pedido
Dentro do stream de logs:
- Role a página ou use Ctrl + F.
- Pesquise por INSERT.
- Localize a linha em que o Landix tenta inserir o pedido no Sankhya, com mensagem semelhante a:
Sending INSERT PEDIDO TO API...
Algumas linhas abaixo, é exibido o retorno do Sankhya informando estoque insuficiente.
Exemplo de retorno:
[ERROR] 2026-03-02T21:51:44.409Z Ưbb6c8e-ebd7-4fd2-9878-1152756729df
{
"errorType": "Exception",
"errorMessage": "Erro: Estoque insuficiente.\nEmpresa: 1\nProduto: 1640 - TALHARIM 500G\nLocal: 10100\nValidação do estoque: Empresa/Local",
"stackTrace": [
"Traceback (most recent call last):\n",
" File \"/var/task/proc_exp_utils.py\", line 370, in call_api_insert_pedido\n raise Exception(f\"Erro: {status_msg}\")\n",
"Exception: Erro: Estoque insuficiente.\nEmpresa: 1\nProduto: 1640 - TALHARIM 500G\nLocal: 10100\nValidação do estoque: Empresa/Local\n"
]
}
No corpo do INSERT, também é possível identificar a quantidade do produto que o sistema tentou consumir para efetivar a venda.
Orientação ao vendedor
Quando ocorre esse erro, o vendedor receberá a mensagem e deverá ajustar a quantidade negociada, garantindo que ela não ultrapasse a quantidade disponível no momento do fechamento do pedido.
Consultar logs na lambda MEDIATOR
Para aprofundar a análise, também é possível verificar os logs da lambda:
/aws/lambda/sfv-mobile-lambda-sfa-mediator-prod-us-east-2-main
Essa lambda é responsável por:
- Receber todas as requisições vindas do SSM
- Acionar diferentes partes do sistema e outras lambdas
Como a validação de estoque é acionada pela MEDIATOR (que chama a SELLER-DISCHARGE), se ocorrer erro de validação e não houver logs suficientes na SELLER-DISCHARGE, é provável que existam registros úteis na MEDIATOR.
Consultar o estoque atual do produto no ERP (Insomnia)
Para validar o estoque no ERP:
- Abra o Insomnia.
- Procure a requisição “TGFEST – Estoque”.
- Utilize o body de consulta abaixo (substituindo os parâmetros conforme necessário).
{
"serviceName":"CRUDServiceProvider.loadRecords",
"requestBody":{
"dataSet":{
"rootEntity":"Estoque",
"offsetPage":0,
"criteria": {
"expression": {
"$": "this.CODPROD = '<Código do Produto>' AND this.CODLOCAL = '<Código do Local de Estoque>'"
}
},
"entity":{
"fieldset":{
"list":"CODPROD,ESTOQUE,RESERVADO"
}
}
}
}
}
Retorno da Sankhya:
{
"serviceName": "CRUDServiceProvider.loadRecords",
"status": "1",
"pendingPrinting": "false",
"transactionId": "B6B7E5C9F7C786C677197A89E834D492",
"responseBody": {
"entities": {
"total": "1",
"hasMoreResult": "false",
"offsetPage": "0",
"offset": "0",
"metadata": {
"fields": {
"field": [
{
"name": "CODPROD"
},
{
"name": "ESTOQUE"
},
{
"name": "RESERVADO"
},
{
"name": "CODEMP"
},
{
"name": "CODLOCAL"
},
{
"name": "CONTROLE"
},
{
"name": "CODPARC"
},
{
"name": "TIPO"
}
]
}
},
"entity": {
"f6": {
"$": "0"
},
"f7": {
"$": "P"
},
"_rmd": {
"CODPROD": {
"$": "{\"decVlr\":2,\"decQtd\":0,\"controle\":{\"tipoContEst\":\"N\",\"listaContEst\":[\"\"],\"usaMascara\":false}}",
"provider": "PRODUTORMP"
}
},
"f0": {
"$": "1640"
},
"f1": {
"$": "6"
},
"f2": {
"$": "6"
},
"f3": {
"$": "1"
},
"f4": {
"$": "10100"
},
"f5": {}
}
}
}
}
Interpretar o retorno e confirmar a falta de estoque
No retorno:
f1representa ESTOQUEf2representa RESERVADO
Para calcular o estoque disponível:
ESTOQUE (f1) - RESERVADO (f2)
No exemplo, o cálculo resulta em estoque disponível igual a 0.
Por isso, a quantidade negociada no pedido não foi atendida e o ERP retornou estoque insuficiente.