Web service Portolog: Inclusão/Alteração de Programação Preliminar
Serviço web que efetua o processamento dos pedidos de inclusão/alteração de programação preliminar dentro do Portolog. As programações preliminares informam com antecedência as quantidades de veículos por tipo de carga que acessarão o porto em determinadas faixas de hora, e são necessárias para o posterior sequenciamento dos transportes.
Observação:
Os pedidos de inclusão de programações preliminares são só uma solicitação por parte dos terminais de uma certa quantidade de transportes que ele espera que possam acessar o porto em determinadas faixas de hora. Esses pedidos serão posteriormente processados pelo sistema e os resultados das quantidades que efetivamente poderão acessar o porto estarão disponíveis conforme web service de consulta das quantidades atendidas. Baseado nessas quantidades efetivamente calculadas pelo sistema é que os terminais poderão sequenciar seus DL-es.
Atores que podem utilizar o Serviço:
- Operador Portuário
- Terminal Portuário
Endpoint do Serviço:
POST url_base/psp-portolog-rest/api/programacao-preliminar/nova/v1.02
Content-Type:
application/xml
ou application/json
Parâmetros da Requisição de Inclusão/Alteração de Programação Preliminar:
Dados Gerais:
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
versao | versão do arquivo de inclusão/alteração de programação preliminar | String(Obrigatório) | 4 | body | Versão Atual: 1.02 |
cnpjTerminal | CNPJ do Terminal associado a programação preliminar | String(Obrigatório) | 14 | body | |
porto | Bitrigrama do Porto associado a programação preliminar | String(Obrigatório) | 5 | body |
Lista de Programações Preliminares:
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
seq | Sequencial para identificar o registro dentro do arquivo. Deve ser único para possibilitar o relacionamento no arquivo de retorno do processamento. | Numeric(Obrigatório) | - | body | |
data | Data da programação preliminar | Data(Obrigatório) | 10 | body | Formato: AAAA-MM-DD |
janelaTempo | Código da Janela de Tempo da Programação Preliminar | Numeric(Obrigatório) | - | body | Domínio: Vide campo "observação" logo abaixo. |
Lista das Quantidades Solicitadas Para Cada Janela de Tempo:
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
tipoCarga | Tipo de carga transportado | String(Obrigatório) | 15 | body | Domínio: CONTEINER, VEICULO, GRANEL, CARGA_SOLTA ou CONTEINER_VAZIO |
detalheTipoCarga | Código do detalhe do tipo de carga transportado | String(Obrigatório) | 5 | body | Domínio: Vide campo "observação" logo abaixo. |
quantidadeSolicitada | Quantidade Solicitada de Transportes que acessarão ao porto naquela janela de tempo da Programação Preliminar | Numeric(Obrigatório) | - | body |
Observação:
Para acesso às informações dos códigos de janela de tempo e de detalhe de tipo de carga de cada porto favor consultar através do acesso à tela do Portolog, no menu "Serviços" e item de menu "Informações para Integração".
Resposta da Requisição:
Dados Gerais:
Nome | Descrição | Tipo | Observação |
---|---|---|---|
versao | versão do arquivo de retorno de processamento de inclusão/alteração de programação preliminar | String(Obrigatório) | Versão Atual: 1.00 |
dataProcessamento | Data/Hora do registro de processamento de inclusão/alteração de programação preliminar | Data/Hora(Obrigatório) | |
seq | Sequencial para identificar o registro dentro do arquivo | Numeric(Obrigatório) | |
mensagem | Mensagem de sucesso ou erro no processamento de inclusão/alteração de programação preliminar | String(Obrigatório) |
Exemplos de Arquivos XML/JSON:
Exemplo de JSON do arquivo de inclusão/alteração de programação preliminar:
{
"versao":"1.02",
"cnpjTerminal":"46591057000103",
"porto":"BRSSZ",
"programacaoPreliminar":
[
{
"seq":"0",
"data":"2019-12-06",
"janelaTempo":"1",
"quantidadeSolicitada":
[
{
"tipoCarga":"CONTEINER",
"detalheTipoCarga":"CONT1",
"quantidadeSolicitada":"85"
},
{
"tipoCarga":"GRANEL",
"detalheTipoCarga":"SOJA",
"quantidadeSolicitada":"55"
}
]
},
{
"seq":"1",
"data":"2019-12-06",
"janelaTempo":"2",
"quantidadeSolicitada":
[
{
"tipoCarga":"CONTEINER",
"detalheTipoCarga":"CONT1",
"quantidadeSolicitada":"125"
},
{
"tipoCarga":"GRANEL",
"detalheTipoCarga":"SOJA",
"quantidadeSolicitada":"95"
}
]
}
]
}
Exemplo de retorno de JSON com a resposta da requisição:
{
"dataProcessamento" : "2019-12-05T18:10:52.417-03:00",
"itemProcessado" :
[
{
"mensagem" : [ "[IN0208] Registro processado com sucesso" ],
"seq" : 0
},
{
"mensagem" : [ "[IN0208] Registro processado com sucesso" ],
"seq" : 1
}
],
"versao" : "1.00"
}
Exemplo de retorno de JSON com resposta de erro:
{
"dataProcessamento" : "2019-12-05T18:13:09.741-03:00",
"itemProcessado" :
[
{
"mensagem" : [ "[ER0128] Capacidade excedida para este detalhe do tipo de carga" ],
"seq" : 0
},
{
"mensagem" : [ "[ER0128] Capacidade excedida para este detalhe do tipo de carga" ],
"seq" : 1
}
],
"versao" : "1.00"
}
Exemplo de XML do arquivo de inclusão/alteração de programação preliminar:
<?xml version="1.0" encoding="utf-8"?>
<programacoesPreliminares xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" versao="1.02" xmlns="http://www.portosempapel.gov.br/programacaoPreliminar">
<cnpjTerminal>04291660000120</cnpjTerminal>
<porto>BRVIX</porto>
<programacaoPreliminar seq="0001">
<data>2019-12-12</data>
<janelaTempo>001</janelaTempo>
<quantidadeSolicitada>
<tipoCarga>CONTEINER</tipoCarga>
<detalheTipoCarga>2</detalheTipoCarga>
<quantidadeSolicitada>100</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>GRANEL</tipoCarga>
<detalheTipoCarga>1</detalheTipoCarga>
<quantidadeSolicitada>100</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>CARGA_SOLTA</tipoCarga>
<detalheTipoCarga>3</detalheTipoCarga>
<quantidadeSolicitada>100</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>VEICULO</tipoCarga>
<detalheTipoCarga>6</detalheTipoCarga>
<quantidadeSolicitada>100</quantidadeSolicitada>
</quantidadeSolicitada>
</programacaoPreliminar>
<programacaoPreliminar seq="0002">
<data>2019-12-12</data>
<janelaTempo>002</janelaTempo>
<quantidadeSolicitada>
<tipoCarga>CONTEINER</tipoCarga>
<detalheTipoCarga>2</detalheTipoCarga>
<quantidadeSolicitada>80</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>GRANEL</tipoCarga>
<detalheTipoCarga>1</detalheTipoCarga>
<quantidadeSolicitada>50</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>CARGA_SOLTA</tipoCarga>
<detalheTipoCarga>3</detalheTipoCarga>
<quantidadeSolicitada>70</quantidadeSolicitada>
</quantidadeSolicitada>
<quantidadeSolicitada>
<tipoCarga>VEICULO</tipoCarga>
<detalheTipoCarga>6</detalheTipoCarga>
<quantidadeSolicitada>90</quantidadeSolicitada>
</quantidadeSolicitada>
</programacaoPreliminar>
</programacoesPreliminares>
Exemplo de retorno de XML com a resposta da requisição:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loteProcessado xmlns="http://www.portosempapel.gov.br" versao="1.00">
<dataProcessamento>2019-12-05T18:26:00.206-03:00</dataProcessamento>
<itemProcessado seq="1">
<mensagem>[IN0208] Registro processado com sucesso</mensagem>
</itemProcessado>
</loteProcessado>
Exemplo de retorno de XML com resposta de erro:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loteProcessado xmlns="http://www.portosempapel.gov.br" versao="1.00">
<dataProcessamento>2019-12-05T18:26:00.206-03:00</dataProcessamento>
<itemProcessado seq="1">
<mensagem>[ER0167] A janela de tempo informada é inválida</mensagem>
</itemProcessado>
</loteProcessado>