int_producaoHoje Previdência · Backend dotnet_bke · Carga de propostas de produção (REST)
https://hojeprevidencia-ww1.dynv6.net — backend REST em /dotnet_bke/.
Projeto hojeprev.root · banco HOJE_PREV.
A API REST expõe inclusão unitária (add), carga em lote pós-fechamento (add_lote),
cancelamento (cancel) e balancete diário (balancete_diario) na tabela dbo.int_producao,
utilizada no fluxo de fechamento previdenciário para carga de produção.
A carga em lote via arquivo CSV permanece fluxo interno separado (prev_fechamento_carga_int_producao).
Cada registro é identificado de forma única pela combinação cpf + num_proposta.
O campo idproposta na API REST é igual a num_proposta (normalizado: UPPER, trim, máx. 30 caracteres).
Use o valor retornado no add na rota de cancelamento: POST .../cancel/{idproposta} — ex.: PROP001.
O cpf continua obrigatório no payload do add, mas não compõe a chave de unicidade.
POST /add. Cada inclusão usa lote automático INT_PRODUCAO_AAAA_MM_DD (ou TESTE_AAAA_MM_DD com carga_teste: true).POST /balancete_diario (informe carga_teste: true se a carga foi de teste) para avisos e checagens.POST /add_lote: cabeçalho com grupo_uso, mes_referencia, lote_producao (obrigatório em produção; opcional com carga_teste: true) e array propostas[]."carga_teste": true no add, balancete_diario ou add_lote.
O lote automático passa a ser TESTE_AAAA_MM_DD (ex.: TESTE_2026_06_16), isolado do lote de produção INT_PRODUCAO_AAAA_MM_DD.
No add_lote, com carga_teste: true, lote_producao pode ser omitido (gerado pela data de dt_interface) ou informado com prefixo TESTE_.
add_lote grava todos os itens no mesmo lote_producao (coluna arquivo).
Itens válidos são inseridos ou reativados se existirem com status CANCELADO.
Itens inválidos retornam engine_status: erro na lista propostas[] sem interromper os demais.
Todos os endpoints exigem header HTTP:
Authorization: Bearer <token_jwt>
POST https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/login Content-Type: application/x-www-form-urlencoded username=<usuario>&password=<senha>&contexto=<contexto_acesso>
O token retornado em engine_data.token (ou estrutura equivalente do login)
deve ser enviado nas chamadas à API int_producao.
A API está documentada no Swagger UI do dotnet_bke
(Swashbuckle), grupo api_int_producao, rótulo Carga int_producao.
| Recurso | URL |
|---|---|
| Swagger UI | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/swagger |
| OpenAPI JSON (spec desta API) | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/swagger/api_int_producao/swagger.json |
| GET mes_referencia_atual | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/mes_referencia_atual |
| POST add | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/add |
| POST add_lote | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/add_lote |
| POST cancel | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/cancel/{idproposta} |
| POST balancete_diario | https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/balancete_diario |
https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/swagger.Bearer <token_jwt> (token do login).POST .../add, POST .../add_lote, POST .../cancel ou POST .../balancete_diario, preencha o JSON e execute Try it out.
O schema do body de add corresponde a dotnet_bke.model_engine.TSroV3IntProducaoIn;
cancel usa rota POST .../cancel/{idproposta} com body TSroV3IntProducaoCancelIn (somente observacao);
balancete_diario usa TSroV3IntProducaoBalanceteDiarioIn (grupo_uso obrigatório; dt_carga opcional);
add_lote usa TSroV3IntProducaoAddLoteIn (cabeçalho + propostas[]).
Startup.cs — SwaggerDoc("api_int_producao")
+ endpoint na UI. Rebuild do dotnet_bke necessário após deploy.
/api_int_producao/mes_referencia_atual
Mês de referência atual — lê cproc_config.FECHAMENTO_MENSAL_MES_ABERTO (grupo HOJEPREV).
Query obrigatória: ?grupo_uso=HOJEPREV. Use antes do add para saber qual mes_referencia enviar (deve estar no mesmo mês/ano de int_producao_mes_emissao_propostas).
Retorna: mes_referencia_atual, fechamento_mensal_mes_aberto, int_producao_mes_emissao_propostas, int_producao_mes_vigencia_propostas (todos iguais ao fechamento aberto).
/api_int_producao/add
Inclusão de novo registro. Falha com erro se já existir registro ativo com o mesmo num_proposta.
Body: JSON com campos descritos na seção 5. Após cada add, a procedure reaplica as checagens de prev_fechamento_carga_int_producao em todo o arquivo do dia.
Controles da carga diária (INT_PRODUCAO_AAAA_MM_DD): cod_plano fixo 01; mesmo fechamento_mensal_mes_aberto entre registros do lote.
/api_int_producao/add_lote
Carga em lote pós-fechamento de produção — mesmo tratamento do add, com cabeçalho compartilhado e array de propostas.
Body: JSON com cabeçalho (grupo_uso, mes_referencia, lote_producao obrigatórios; dt_interface opcional) e propostas[] com os campos de proposta (seção 6.2).
Retorna lote_producao, qtd_propostas, qtd_ok, qtd_erro, contadores do lote (qtd_add, qtd_cancel, qtd_ativos) e lista propostas[] com status por item (seq, idproposta, checagem_erro).
Após gravação, reaplica as 5 checagens pós-gravação sobre todo o lote_producao informado.
/api_int_producao/balancete_diario
Balancete da carga REST do dia — equivalente ao relatório de fechamento da carga lote.
Body: { "grupo_uso": "HOJEPREV", "dt_carga": "16/06/2026", "carga_teste": false } — grupo_uso obrigatório; dt_carga e carga_teste opcionais (default: hoje e produção).
Retorna lote_producao, qtd_add, qtd_cancel, qtd_ativos, qtd_problemas, balancete (por checagem_erro) e lista problemas.
lote_producao corresponde à coluna arquivo em int_producao (ex.: INT_PRODUCAO_2026_06_16).
qtd_add e qtd_cancel acumulam as operações REST do dia (tabela int_producao_api_controle_dia); qtd_ativos é o COUNT de registros não cancelados (checagem_erro sem prefixo CANCELADO) para o arquivo do dia.
/api_int_producao/cancel/{idproposta}
Cancelamento da carga de produção: marca o registro em int_producao (checagem_erro = CANCELADO - {observacao}) e atualiza dt_processamento_carga com o momento do cancelamento. O registro permanece na tabela para auditoria.
Rota: idproposta = num_proposta retornado no add (ex.: PROP001).
Body: JSON com único campo observacao (obrigatório — motivo do cancelamento, gravado em checagem_erro).
Falha com not_found se o idproposta não existir; com erro se já cancelado, se observacao estiver vazia ou se a proposta já estiver implantada em PROP (PROPOSTA_JA_IMPLANTADA).
GET /api_int_producao/get.
add (proposta unitária)| Campo JSON | Tipo SQL | Obrig. | Descrição |
|---|---|---|---|
cpf | varchar(11) | Sim* | CPF do proponente — 11 dígitos, zero-fill à esquerda (ex.: 00123456789); dado cadastral, não faz parte da chave |
num_proposta | varchar(30) | Sim* | Número da proposta — chave primária; retornado como idproposta na API |
grupo_uso | varchar(20) | Sim | Obrigatório — chave em cproc_config para fechamento (ex.: HOJEPREV) |
carga_teste | boolean | Não | true = lote automático TESTE_AAAA_MM_DD em vez de INT_PRODUCAO_AAAA_MM_DD (default: produção) |
mes_referencia | smalldatetime | Sim | Mês/ano da proposta; deve coincidir com int_producao_mes_emissao_propostas atual (consultar GET mes_referencia_atual) |
dt_interface | smalldatetime | Não | Data da interface em dd/MM/yyyy; omitir = data atual (somente dia, sem hora) |
lote_producao | varchar(100) | Não | Somente leitura na resposta — gerado como INT_PRODUCAO_AAAA_MM_DD ou TESTE_AAAA_MM_DD (carga_teste) |
cod_plano | varchar(10) | Fixo | Fixo 01 — não enviar no JSON do add |
dt_proposta | smalldatetime | Sim | Data da proposta |
nome | varchar(80) | Sim | Nome do proponente |
dt_nasc | smalldatetime | Sim | Data de nascimento |
rg | varchar(40) | Sim | Documento de identidade |
rg_dt | smalldatetime | Sim | Data de emissão do RG |
rg_org | varchar(40) | Sim | Órgão emissor |
endereco | varchar(150) | Sim | Logradouro |
bairro | varchar(80) | Sim | Bairro |
telefone | varchar(50) | Sim | Telefone |
cidade | varchar(60) | Sim | Cidade |
estado | varchar(2) | Sim | UF |
cep | varchar(9) | Sim | CEP |
sexo | varchar(1) | Sim | M / F |
estado_civil | varchar(1) | Sim | Código estado civil |
profissao | varchar(50) | Não | Profissão |
email | varchar(90) | Sim | E-mail (obrigatório) |
vl_produto | numeric(9,2) | Fixo | Fixo 20.00 — não enviar no JSON |
matricula | varchar(15) | Sim | Matrícula |
matinstituidor | varchar(15) | Não | Matrícula instituidor |
tipo_averbacao | varchar(30) | Sim | Texto livre (qualquer tipo de averbação). Enviar sem acentos e sem caracteres estendidos (ASCII); a API aplica UPPER + remove_acento, mas evite símbolos especiais. |
codorgao | varchar(20) | Sim | Código do órgão |
nomeorgao | varchar(80) | Sim | Nome do órgão |
codupag | varchar(20) | Sim | Código UPAG |
nomeupag | varchar(80) | Sim | Nome UPAG |
uf_upag | varchar(2) | Sim | UF da UPAG |
cod_produtor | varchar(20) | Não | Código do produtor — opcional; se não houver, omitir o campo ou enviar vazio ("" / null); gravado como NULL no banco |
* Obrigatório no add. A unicidade é por num_proposta (idproposta = num_proposta).
add_lote (cabeçalho + array)| Campo JSON | Tipo SQL | Obrig. | Descrição |
|---|---|---|---|
grupo_uso | varchar(20) | Sim | Chave em cproc_config para fechamento (ex.: HOJEPREV) |
carga_teste | boolean | Não | true = lote TESTE_AAAA_MM_DD; lote_producao opcional (auto) ou com prefixo TESTE_ |
mes_referencia | smalldatetime | Sim | Mês/ano da proposta; deve coincidir com int_producao_mes_emissao_propostas atual (GET mes_referencia_atual) |
dt_interface | smalldatetime | Não | Data da interface em dd/MM/yyyy; omitir = data atual (somente dia) |
lote_producao | varchar(100) | Sim* | Identificador do lote (coluna arquivo). Produção: ex. INT_PRODUCAO_2026_06_16. Teste: ex. TESTE_2026_06_16 ou omitir com carga_teste: true |
propostas | array JSON | Sim | Lista de objetos com os campos da seção 6.1 (cpf, num_proposta, dados cadastrais etc.) — sem repetir grupo_uso, mes_referencia ou lote_producao |
* lote_producao obrigatório em carga de produção; com carga_teste: true pode ser omitido (gerado) ou informado com prefixo TESTE_.
| Campo JSON | Tipo SQL | Obrig. | Descrição |
|---|---|---|---|
observacao | varchar(255) | Sim | Único parâmetro do body — motivo do cancelamento; gravado em checagem_erro como CANCELADO - {observacao}. O registro é identificado por idproposta na URL (POST .../cancel/{idproposta}). |
dt_processamento_carga (campo interno): preenchido automaticamente no add com o momento da inclusão; no cancel, atualizado para o momento do cancelamento. Retornado nas respostas de ADD e CANCEL (yyyy-MM-dd HH:mm:ss).
add):
fechamento_mensal_mes_aberto, int_producao_mes_emissao_propostas,
int_producao_mes_vigencia_propostas, cod_plano (sempre 01),
lote_producao (coluna arquivo), checagem_erro,
dt_processamento_carga, carga_anterior
— preenchidos pela API a partir de cproc_config e regras de carga.
tipo_averbacao: aceita qualquer valor descritivo (não há lista fechada).
Preferir texto curto em maiúsculas, sem acentos nem caracteres estendidos
(ex.: NOVA, PORTABILIDADE, RENOVACAO — não Renovação).
Campos de nome/endereço/cidade seguem a mesma recomendação; acentos são removidos na gravação quando
remove_acento está disponível no banco.
Antes de gravar, a procedure aplica os mesmos tratamentos de prev_fechamento_carga_int_producao:
num_proposta — fn_limpa_num_proposta, UPPER, trim, max 30; chave primária e valor de idpropostacpf — zero-fill 11 dígitos; dado cadastral (não compõe a chave)cod_plano — sempre 01 (campo interno; retornado no GET SQL)tipo_averbacao — valor livre; UPPER + remove_acento, max 30 (enviar sem acentos)vl_produto — fixo 20.00 (campo interno)email — obrigatório; UPPER, remove espaços e aspas; formato inválido marca EMAIL_INVALIDO em checagem_erro (não rejeita o add)lote_producao — INT_PRODUCAO_AAAA_MM_DD (produção) ou TESTE_AAAA_MM_DD (carga_teste: true); coluna arquivodt_interface — dd/MM/yyyy; default: data de hoje (sem componente de hora)dd/MM/yyyy; inválidas retornam erro antes do INSERTgrupo_uso — obrigatório; chave em cproc_config para fechamento (ex.: HOJEPREV)fechamento_mensal_mes_aberto, int_producao_mes_emissao_propostas, int_producao_mes_vigencia_propostas — sempre FECHAMENTO_MENSAL_MES_ABERTO do grupo (não parametrizáveis)cod_produtor — opcional; omitir ou vazio → gravado como NULLmes_referencia — obrigatório; validado no mesmo mês/ano do fechamento abertoTodos os add do mesmo dia compartilham o mesmo lote (lote_producao / coluna arquivo = INT_PRODUCAO_AAAA_MM_DD). Regras de checagem alinhadas à carga interna:
cod_plano fixo 01 em toda carga REST (não parametrizável).fechamento_mensal_mes_aberto é definido internamente via cproc_config (não enviado pelo cliente).checagem_erro)checagem_erro e carga_anterior não são parâmetros de entrada — controlados pela API (carga_anterior sempre N; checagens abaixo preenchem checagem_erro na resposta do add).
Idênticas a prev_fechamento_carga_int_producao (UPDATE por arquivo). O registro retorna engine_status: ok; problemas ficam em checagem_erro. Nenhuma checagem rejeita o add.
| checagem_erro | Condição |
|---|---|
NUM_PROPOSTA_DUPLICADO | num_proposta repetido no mesmo arquivo (seq > 1) |
NUMERO_PROPOSTA_MAIOR_30 | num_proposta com mais de 30 caracteres após gravação |
PROPOSTA_JA_IMPLANTADA | CPF + proposta já existem em PROP com mês de fechamento diferente |
EMAIL_INVALIDO | E-mail não passa em fnAppEmailCheck |
VL_CONTRIB_MAIOR_QUE_20 | vl_produto > 20,00 |
null | Sem problemas detectados |
| engine_status | HTTP | Significado |
|---|---|---|
| ok | 200 | Operação concluída. ADD retorna idproposta, cpf, num_proposta, lote_producao, dt_processamento_carga; CANCEL retorna idproposta, cpf, num_proposta, checagem_erro, dt_processamento_carga, engine_message: cancelado. |
| erro | 200 ou 500 | Falha de negócio (ex.: registro já existe, proposta implantada, JSON inválido). Ver engine_message. |
| not_found | 200 | GET SQL ou CANCEL: registro inexistente (engine_data null no GET). |
{
"engine_status": "ok",
"idproposta": "PROP001",
"cpf": "12345678901",
"num_proposta": "PROP001",
"lote_producao": "INT_PRODUCAO_2026_06_16",
"checagem_erro": null,
"dt_processamento_carga": "2026-06-16 14:23:11",
"qtd_add": 42,
"qtd_cancel": 3,
"qtd_ativos": 39
}
{
"engine_status": "ok",
"lote_producao": "INT_PRODUCAO_2026_06_16",
"mes_referencia": "01/06/2026",
"dt_interface": "16/06/2026",
"qtd_propostas": 2,
"qtd_ok": 2,
"qtd_erro": 0,
"qtd_add": 2,
"qtd_cancel": 0,
"qtd_ativos": 2,
"propostas": [
{ "seq": 1, "cpf": "12345678901", "num_proposta": "PROP001",
"idproposta": "PROP001", "engine_status": "ok", "checagem_erro": null }
]
}
{
"engine_status": "ok",
"lote_producao": "INT_PRODUCAO_2026_06_16",
"dt_carga": "16/06/2026",
"qtd_add": 42,
"qtd_cancel": 3,
"qtd_ativos": 39,
"qtd_problemas": 2,
"balancete": [
{ "checagem_erro": "OK", "qtd": 37 },
{ "checagem_erro": "EMAIL_INVALIDO", "qtd": 2 }
]
}
{
"engine_status": "ok",
"idproposta": "PROP001",
"checagem_erro": "VL_CONTRIB_MAIOR_QUE_20"
}
{
"engine_status": "ok",
"grupo_uso": "HOJEPREV",
"fechamento_mensal_mes_aberto": "01/06/2026",
"int_producao_mes_emissao_propostas": "01/06/2026",
"int_producao_mes_vigencia_propostas": "01/06/2026",
"mes_referencia_atual": "01/06/2026"
}
{
"engine_status": "erro",
"engine_message": "Registro ja existe (num_proposta)"
}
eng_sql.curl -s -X GET "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/mes_referencia_atual?grupo_uso=HOJEPREV" \ -H "Authorization: Bearer <TOKEN>"
curl -s -X POST "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/login" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=integracao&password=***&contexto=HOJEPREV"
curl -s -X POST "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/add" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"grupo_uso": "HOJEPREV",
"carga_teste": true,
"cpf": "12345678901",
"num_proposta": "PROPTEST001",
"mes_referencia": "01/06/2026",
"dt_proposta": "15/06/2026",
"nome": "JOAO DA SILVA",
"dt_nasc": "01/01/1980",
"rg": "MG1234567",
"rg_dt": "01/01/2000",
"rg_org": "SSP-MG",
"endereco": "RUA EXEMPLO 100",
"bairro": "CENTRO",
"telefone": "31999999999",
"cidade": "BELO HORIZONTE",
"estado": "MG",
"cep": "30100000",
"sexo": "M",
"estado_civil": "C",
"email": "JOAO@EXEMPLO.COM.BR",
"matricula": "123456",
"tipo_averbacao": "NOVA",
"codorgao": "ORG01",
"nomeorgao": "ORGAO EXEMPLO",
"codupag": "UP01",
"nomeupag": "UPAG EXEMPLO",
"uf_upag": "MG"
}'
Resposta inclui "lote_producao": "TESTE_2026_06_16" (data do processamento).
curl -s -X POST "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/add" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"grupo_uso": "HOJEPREV",
"cpf": "12345678901",
"num_proposta": "PROP001",
"mes_referencia": "01/06/2026",
"dt_proposta": "15/06/2026",
"nome": "JOAO DA SILVA",
"dt_nasc": "01/01/1980",
"rg": "MG1234567",
"rg_dt": "01/01/2000",
"rg_org": "SSP-MG",
"endereco": "RUA EXEMPLO 100",
"bairro": "CENTRO",
"telefone": "31999999999",
"cidade": "BELO HORIZONTE",
"estado": "MG",
"cep": "30100000",
"sexo": "M",
"estado_civil": "C",
"email": "JOAO@EXEMPLO.COM.BR",
"matricula": "123456",
"tipo_averbacao": "NOVA",
"codorgao": "ORG01",
"nomeorgao": "ORGAO EXEMPLO",
"codupag": "UP01",
"nomeupag": "UPAG EXEMPLO",
"uf_upag": "MG"
}'
curl -s -X POST "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/add_lote" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"grupo_uso": "HOJEPREV",
"mes_referencia": "01/06/2026",
"dt_interface": "16/06/2026",
"lote_producao": "INT_PRODUCAO_2026_06_16",
"propostas": [
{
"cpf": "12345678901",
"num_proposta": "PROP001",
"dt_proposta": "15/06/2026",
"nome": "JOAO DA SILVA",
"dt_nasc": "01/01/1980",
"rg": "MG1234567",
"rg_dt": "01/01/2000",
"rg_org": "SSP-MG",
"endereco": "RUA EXEMPLO 100",
"bairro": "CENTRO",
"telefone": "31999999999",
"cidade": "BELO HORIZONTE",
"estado": "MG",
"cep": "30100000",
"sexo": "M",
"estado_civil": "C",
"email": "JOAO@EXEMPLO.COM.BR",
"matricula": "123456",
"tipo_averbacao": "NOVA",
"codorgao": "ORG01",
"nomeorgao": "ORGAO EXEMPLO",
"codupag": "UP01",
"nomeupag": "UPAG EXEMPLO",
"uf_upag": "MG"
}
]
}'
curl -s -X POST "https://hojeprevidencia-ww1.dynv6.net/dotnet_bke/api_int_producao/cancel/PROP001" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"observacao": "Cliente desistiu da proposta"
}'
{
"engine_status": "ok",
"idproposta": "PROP001",
"cpf": "12345678901",
"num_proposta": "PROP001",
"checagem_erro": "CANCELADO - Cliente desistiu da proposta",
"dt_processamento_carga": "2026-06-16 15:40:02",
"engine_message": "cancelado"
}
Para DBAs e testes diretos no SQL Server. O REST usa internamente OPERACAO = ADD, ADD_LOTE ou CANCEL.
OPERACAO = DDL
Cria tabela int_producao e índices de forma idempotente.
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"DDL"}';
OPERACAO = GET_MES_REFERENCIA (REST: GET mes_referencia_atual)
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"GET_MES_REFERENCIA","grupo_uso":"HOJEPREV"}';
OPERACAO = BALANCETE_DIARIO (REST: POST balancete_diario)
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"BALANCETE_DIARIO","grupo_uso":"HOJEPREV","dt_carga":"16/06/2026"}';
Balancete e lista de problemas do arquivo INT_PRODUCAO_AAAA_MM_DD. Inclui qtd_add, qtd_cancel e qtd_ativos.
OPERACAO = ADD_LOTE (REST: POST add_lote)
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"ADD_LOTE","grupo_uso":"HOJEPREV","mes_referencia":"01/06/2026","lote_producao":"INT_PRODUCAO_2026_06_16","propostas":[{"cpf":"12345678901","num_proposta":"PROP001","dt_proposta":"15/06/2026","nome":"JOAO DA SILVA","dt_nasc":"01/01/1980","rg":"MG1234567","rg_dt":"01/01/2000","rg_org":"SSP-MG","endereco":"RUA EXEMPLO 100","bairro":"CENTRO","telefone":"31999999999","cidade":"BELO HORIZONTE","estado":"MG","cep":"30100000","sexo":"M","estado_civil":"C","email":"JOAO@EXEMPLO.COM.BR","matricula":"123456","tipo_averbacao":"NOVA","codorgao":"ORG01","nomeorgao":"ORGAO EXEMPLO","codupag":"UP01","nomeupag":"UPAG EXEMPLO","uf_upag":"MG"}]}';
Carga em lote com cabeçalho compartilhado. Retorna contadores e lista propostas[] com status por item.
OPERACAO = CANCEL (REST: POST cancel/{idproposta})
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"CANCEL","idproposta":"PROP001","observacao":"Cliente desistiu"}';
Marca checagem_erro e atualiza dt_processamento_carga — não remove o registro. Bloqueia se já existir em PROP.
OPERACAO = GET (somente SQL)
EXEC dbo.sro_v3_int_producao_api
@__json_data = N'{"OPERACAO":"GET","num_proposta":"PROP001"}';
Retorno: engine_status = ok com engine_data (objeto completo) ou not_found.
| Arquivo | Conteúdo |
|---|---|
doc/api_int_producao.html | Esta documentação |
bd/areas/hojeprev/procs_sro_v3_int_producao_api.sql | Procedure REST (DDL, ADD, ADD_LOTE, CANCEL, BALANCETE_DIARIO, GET, GET_MES_REFERENCIA) |
bd/areas/hojeprev/procs_prev_fechamento_carga_int_producao.sql | Carga batch CSV (fluxo interno) — origem dos tratamentos espelhados na API REST |
bd/areas/hojeprev/procs_hojeprev_global_proc_INT_PRODUCAO_INCLUIR.sql | MERGE + integração PROP (frontend interno) |
bd/areas/hojeprev/tables_int_producao.sql | DDL tabela int_producao |
bd/areas/hojeprev/00_sro-v3-api.sql | Índice rápido da API |
backend/dotnet_bke/Controllers/API_int_producaoController.cs | Endpoints REST add / add_lote / cancel / balancete_diario / GET mes_referencia_atual |
backend/dotnet_bke/model_engine/API_int_producao_ModelEngine.cs | Modelo JSON e montagem do EXEC |
backend/dotnet_bke/Startup.cs | Registro Swagger (api_int_producao) |