Ir para o conteúdo

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>