SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
LacteWS - WS PARPRIMO PARA COMPARTILHAMENTO DE DADOS LACTEOS




                                                  Douglas Hiura Longo
                                                  douglashiura@inf.ufsc.br

                                                  Rogério Bagatini




1     Introdução



       A Parprimo disponibiliza infraestrutura de Web Service (LacteWS) para o compartilhamento
dos dados dos laticínios ou cooperativas, ou seja, Através do LacteWS é possível publicar e
resgatar as informações.

       Este tutorial está estruturado em duas partes principais, sendo, o Modelo de Dados e o
Web Service LacteWS. A pretensão deste é ser sucinto sem definição de tecnologias ou métodos
de tecnologia.




2      O Modelo de Dados



       O modelo de dados está descrito no wsdl(comentado mais a frente) e representado aqui
com um diagrama. Todas as entidades que carregam os dados têm prefixo Bean, exemplo
BeanProdutor. Em todas as entidades há um atributo chamado uid do tipo inteiro. O uid deve ser
único para cada tipo de entidade, pode ser um valor sequencial inteiro, ainda, o uid é a chave de
referências.
BeanTransportadora
                                                      uid            Integer
                                                      nome           String
                                                      municipio      Integer (#1)
                                                      cnpj           Long

                                                1


                BeanColetor                N
   uid              Integer                                        BeanCaminho
   nome             String                            uid            Integer
                                           1
   transportadora BeanTransportadora                  nome           String
                                                 N
                                                      coletor        BeanColetor




                BeanColeta                                                1
                                                                              N
  uid             Integer
  volume          Integer                                            BeanRota
  produtor        BeanProdutor                        uid            Integer
  compartimento Integer                               inicio         Date
  temperatura     Float *                             descarga       Date
                                       N              caminho        BeanCaminho
  alizarol        Integer *
  data            Date                                coletas        List<BeanColeta>


                                                1
                                       N




                                                        1
                                                             BeanProdutor
                                               uid              Integer
                                               nome             String
                                               municipio        Integer (#1)




Diagrama do modelo de dados - 1
3      Descrições e restrições



       Sobre o diagrama acima, segue, uma pequena descrição do modelo de dados e
implicitamente cada nome e seu tipo se definem. Ademais, todos os atributos são requeridos,
exceto marcados com *(temperatura e alizarol), para restrições e intervalos descreve-se:



BeanTransportadora

       uid -

       nome - comprimento de 1 a 40.

       municipio –ver Tabela Valor – Município.

       cnpj – é o valor do cadastro de pessoa jurídica, não é feita validação.



BeanColetor

       uid -

       nome - comprimento de 1 a 40.

       transportadora -



BeanCaminho

       uid -

       nome - comprimento de 1 a 40.

       coletor -



BeanProdutor

       uid -

       nome - comprimento de 1 a 40.

       municipio – ver Tabela Valor – Município.



BeanColeta

       uid -

       volume – Volume coletado em litros
produtor -

      compartimento – Compartimento do caminhão, valores[1, 2, 3, 4]. Caso em um produtor
utilizar mais de um compartimento, então fazer a quantidade requerida de beanColeta com os
respectivos volumes e compartimentos para o produtor, ou apenas um beanColeta com o primeiro
compartimento utilizado e com a soma de volumes.

      temperatura - Opcional, valor em Grau Celsius.

      alizarol - Opcional, [-68,68,70,72,74,76,78,80,null].

      data - Horário da coleta.



BeanRota

      uid -

      inicio – Horário de inicio .

      descarga - Horário de descarga no laticínio.

      caminho -

      coletas - Lista de Coletas.




4    Web Service LacteWS



      O LacteWS é o ponto onde está exposto o serviço,        seu wsdl pode ser obtido em
http://lacte.ws.parprimo.com/lacte/LacteWS?wsdl (Testes http://200.135.239.104/lacte/LacteWS?
wsdl) aos desenvolvedores Java + eclipse segue um conjunto de passos:




No Eclipse: File → New Java Project
Depois    do     projeto    java    criado,   vou      usar   o     assistente   através      do
wsdl(http://lacte.ws.parprimo.com/lacte/LacteWS?wsdl                  ,                    Testes
http://200.135.239.104/lacte/LacteWS?wsdl) para gerar as classes e entidades.
Next… Finish.
4.1    Exemplo como consumir o serviço




public class Usando {


      public static void main(String[] args) throws RemoteException {
             LacteWSProxy servico = new LacteWSProxy();
             String toke = "um:toke:teste:parprimo10035";
             try {
                     int uid = 1;// este pode ser um sequencial para cada tipo, mas aqui é neste
teste é apenas um."Lazy work"
                     BeanProdutor[] produtores = new BeanProdutor[] {
                                     novoProdutor(uid++), novoProdutor(uid++) };
                     BeanTransportadora[] transportadores = new BeanTransportadora[] {
novaTransportadora(uid++) };
                     BeanColetor[] coletores = new BeanColetor[] { novoColetor(uid++,
                                     transportadores[0]) };
                     BeanCaminho[] caminhos = new BeanCaminho[] { novoCaminho(uid++,
                                     coletores[0]) };


                     BeanRota[] rotas = new BeanRota[] {
                                     novaRota(uid++, caminhos[0],
                                                        new BeanProdutor[] { produtores[0] },
                                                        new int[] { uid++ }),
                                     novaRota(uid++, caminhos[0], produtores, new int[] { uid++,
                                                        uid++ }) };


                     servico.criarProdutores(toke, produtores);
                     servico.criarTransportadores(toke, transportadores);
                     servico.criarColetores(toke, coletores);
                     servico.criarCaminhos(toke, caminhos);
                     servico.criarRotas(toke, rotas);
             } catch (ExceptionWS e) {
                     String[] erros = e.getErro();
                     for (String erro : erros) {
                             System.out.println(erro);
                     }
             }
}


private static BeanRota novaRota(int uidRota, BeanCaminho caminho,
               BeanProdutor[] produtores, int[] uidColeta) {
       BeanRota beanRota = new BeanRota();
       beanRota.setUid(uidRota);
       beanRota.setCaminho(caminho);
       Calendar data = Calendar.getInstance();
       data.setTime(new Date());
       beanRota.setInicio(data);
       beanRota.setDescarga(data);
       BeanColeta[] coletas = new BeanColeta[produtores.length];
       for (int i = 0; i < coletas.length; i++) {
               coletas[i] = novaColeta(uidColeta[i], produtores[i]);
       }
       beanRota.setColetas(coletas);
       return beanRota;
}


static BeanColeta novaColeta(int uid, BeanProdutor produtor) {
       BeanColeta coleta2 = new BeanColeta();
       coleta2.setUid(uid);
       Calendar data = Calendar.getInstance();
       data.setTime(new Date());
       coleta2.setData(data);
       coleta2.setVolume(157);
       coleta2.setProdutor(produtor);
       coleta2.setCompartimento(2);
       coleta2.setAlizarol(68);
       return coleta2;
}


private static BeanCaminho novoCaminho(int uid, BeanColetor beanColetor) {
       BeanCaminho caminho = new BeanCaminho();
       caminho.setColetor(beanColetor);
       caminho.setNome("Caminho");
       caminho.setUid(uid);
       return caminho;
}


      private static BeanColetor novoColetor(int uid,
                    BeanTransportadora transportadora) {
             BeanColetor coletor = new BeanColetor();
             coletor.setNome("Coletor");
             coletor.setUid(uid);
             coletor.setTransportadora(transportadora);
             return coletor;
      }


      private static BeanTransportadora novaTransportadora(int uid) {
             BeanTransportadora transportadora = new BeanTransportadora();
             transportadora.setUid(uid);
             transportadora.setCnpj(0000000011111111l);
             transportadora.setMunicipio(10001);
             transportadora.setNome("Teste");
             return transportadora;
      }


      private static BeanProdutor novoProdutor(Integer uid) {
             BeanProdutor produtor = new BeanProdutor();
             produtor.setMunicipio(10001);
             produtor.setNome("Teste");
             produtor.setUid(uid);
             return produtor;
      }


}



5   Sobre LacteWS



      A Classe LacteWS é o ponto de consumo do serviço, e possui os métodos:

      - criarTransportadores(toke,BeanTransportadora[] transportadores) throws ExceptionWS;

      - criarRotas(String toke, BeanRota[] rotas) throws ExceptionWS;
- criarCaminhos(String toke, BeanCaminho[] caminhos) throws ExceptionWS;


       - criarProdutores(String toke, BeanProdutor[] produtores) throws ExceptionWS;


       - criarColetores(String toke, BeanColetor[] coletores) throws ExceptionWS;




       Esses métodos estão disponíveis para publicar os dados inerente ao desenho Lácteo no
WS Parprimo. O argumento toke passado em cada um deles métodos é um identificador que a
Parprimo fornece aos consumidores do serviço.


       Todos os métodos recebem uma lista de Beans, caso todos forem validos, serão
armazenados. Para as relações BeanTransportadora e BeanColetor deve ser informado
antecipadamente a transportadora e posteriormente o coletor. Ainda, não há limite para a lista,
pois ainda não aconteceu sobrecarga em uso normal. Em caso de alguma entidade estiver com
dados inválidos, nenhuma delas é guardada pela Parprimo.


       Para casos de erros na validação é encapsulado e retornado dentro das exceção
mensagens que podem ser recuperadas usando o método getErro() da classe ExceptionWS.


       A Parprimo está desenvolvendo um WS mais promiscuo desrespeitando essa hierarquia de
relações, mas está ainda em testes.



5.1 Sobre XSD



       A     validação      pelo      XSD      (http://lacte.ws.parprimo.com/lacte/LacteWS?xsd=1
http://200.135.239.104/lacte/LacteWS?xsd=1) é desaconselhada, foi bem limitada, pois há
algumas divergências com outras tecnologia não java. Como o consumo deste web service é para
outros computadores, então recomenda-se seguir Descrições e Restrições, sessão acima.


6   Sobre o Toke


Um toke oficial associado a um laticínio é emitido após homologado o funcionamento no servidor
de testes e solicitação na Parprimo. O servidor de testes fica no endereço 200.135.239.104.
Através da página (http://200.135.239.104/index.par) é possível gerar um toke para testes.
7      Tabela Valor – Município



0=Sem Endereço
10000=Abdon Batista, Santa Catarina
10005=Abelardo Luz, Santa Catarina
10010=Agrolândia, Santa Catarina
10015=Agronômica, Santa Catarina
10020=Água Doce, Santa Catarina
10025=Águas de Chapecó, Santa Catarina
10030=Águas Frias, Santa Catarina
10035=Águas Mornas, Santa Catarina
10040=Alfredo Wagner, Santa Catarina
10045=Alto Bela Vista, Santa Catarina
10050=Anchieta, Santa Catarina
10055=Angelina, Santa Catarina
10060=Anita Garibaldi, Santa Catarina
10065=Anitápolis, Santa Catarina
10070=Antônio Carlos, Santa Catarina
10075=Apiúna, Santa Catarina
10080=Arabutã, Santa Catarina
10085=Araquari, Santa Catarina
10090=Araranguá, Santa Catarina
10095=Armazém, Santa Catarina
10100=Arroio Trinta, Santa Catarina
10105=Arvoredo, Santa Catarina
10110=Ascurra, Santa Catarina
10115=Atalanta, Santa Catarina
10120=Aurora, Santa Catarina
10125=Balneário Arroio do Silva, Santa Catarina
10130=Balneário Barra do Sul, Santa Catarina
10135=Balneário Camboriú, Santa Catarina
10140=Balneário de Piçarras, Santa Catarina
10145=Balneário Gaivota, Santa Catarina
10150=Bandeirante, Santa Catarina
10155=Barra Bonita, Santa Catarina
10160=Barra Velha, Santa Catarina
10165=Bela Vista do Toldo, Santa Catarina
10170=Belmonte, Santa Catarina
10175=Benedito Novo, Santa Catarina
10180=Biguaçu, Santa Catarina
10185=Blumenau, Santa Catarina
10190=Bocaina do Sul, Santa Catarina
10195=Bom Jardim da Serra, Santa Catarina
10200=Bom Jesus, Santa Catarina
10205=Bom Jesus do Oeste, Santa Catarina
10210=Bom Retiro, Santa Catarina
10215=Bombinhas, Santa Catarina
10220=Botuverá, Santa Catarina
10225=Braço do Norte, Santa Catarina
10230=Braço do Trombudo, Santa Catarina
10235=Brunópolis, Santa Catarina
10240=Brusque, Santa Catarina
10245=Caçador, Santa Catarina
10250=Caibi, Santa Catarina
10255=Calmon, Santa Catarina
10260=Camboriú, Santa Catarina
10265=Campo Alegre, Santa Catarina
10270=Campo Belo do Sul, Santa Catarina
10275=Campo Erê, Santa Catarina
10280=Campos Novos, Santa Catarina
10285=Canelinha, Santa Catarina
10290=Canoinhas, Santa Catarina
10295=Capão Alto, Santa Catarina
10300=Capinzal, Santa Catarina
10305=Capivari de Baixo, Santa Catarina
10310=Catanduvas, Santa Catarina
10315=Caxambu do Sul, Santa Catarina
10320=Celso Ramos, Santa Catarina
10325=Cerro Negro, Santa Catarina
10330=Chapadão do Lageado, Santa Catarina
10335=Chapecó, Santa Catarina
10340=Cocal do Sul, Santa Catarina
10345=Concórdia, Santa Catarina
10350=Cordilheira Alta, Santa Catarina
10355=Coronel Freitas, Santa Catarina
10360=Coronel Martins, Santa Catarina
10365=Correia Pinto, Santa Catarina
10370=Corupá, Santa Catarina
10375=Criciúma, Santa Catarina
10380=Cunha Porã, Santa Catarina
10385=Cunhataí, Santa Catarina
10390=Curitibanos, Santa Catarina
10395=Descanso, Santa Catarina
10400=Dionísio Cerqueira, Santa Catarina
10405=Dona Emma, Santa Catarina
10410=Doutor Pedrinho, Santa Catarina
10415=Entre Rios, Santa Catarina
10420=Ermo, Santa Catarina
10425=Erval Velho, Santa Catarina
10430=Faxinal dos Guedes, Santa Catarina
10435=Flor do Sertão, Santa Catarina
10440=Florianópolis, Santa Catarina
10445=Formosa do Sul, Santa Catarina
10450=Forquilhinha, Santa Catarina
10455=Fraiburgo, Santa Catarina
10460=Frei Rogério, Santa Catarina
10465=Galvão, Santa Catarina
10470=Garopaba, Santa Catarina
10475=Garuva, Santa Catarina
10480=Gaspar, Santa Catarina
10485=Governador Celso Ramos, Santa Catarina
10490=Grão-Pará, Santa Catarina
10495=Gravatal, Santa Catarina
10500=Guabiruba, Santa Catarina
10505=Guaraciaba, Santa Catarina
10510=Guaramirim, Santa Catarina
10515=Guarujá do Sul, Santa Catarina
10520=Guatambu, Santa Catarina
10525=Herval D´Oeste, Santa Catarina
10530=Ibiam, Santa Catarina
10535=Ibicaré, Santa Catarina
10540=Ibirama, Santa Catarina
10545=Içara, Santa Catarina
10550=Ilhota, Santa Catarina
10555=Imaruí, Santa Catarina
10560=Imbituba, Santa Catarina
10565=Imbuia, Santa Catarina
10570=Indaial, Santa Catarina
10575=Iomerê, Santa Catarina
10580=Ipira, Santa Catarina
10585=Iporã do Oeste, Santa Catarina
10590=Ipuaçu, Santa Catarina
10595=Ipumirim, Santa Catarina
10600=Iraceminha, Santa Catarina
10605=Irani, Santa Catarina
10610=Irati, Santa Catarina
10615=Irineópolis, Santa Catarina
10620=Itá, Santa Catarina
10625=Itaiópolis, Santa Catarina
10630=Itajaí, Santa Catarina
10635=Itapema, Santa Catarina
10640=Itapiranga, Santa Catarina
10645=Itapoá, Santa Catarina
10650=Ituporanga, Santa Catarina
10655=Jaborá, Santa Catarina
10660=Jacinto Machado, Santa Catarina
10665=Jaguaruna, Santa Catarina
10670=Jaraguá do Sul, Santa Catarina
10675=Jardinópolis, Santa Catarina
10680=Joaçaba, Santa Catarina
10685=Joinville, Santa Catarina
10690=José Boiteux, Santa Catarina
10695=Jupiá, Santa Catarina
10700=Lacerdópolis, Santa Catarina
10705=Lages, Santa Catarina
10710=Laguna, Santa Catarina
10715=Lajeado Grande, Santa Catarina
10720=Laurentino, Santa Catarina
10725=Lauro Müller, Santa Catarina
10730=Lebon Régis, Santa Catarina
10735=Leoberto Leal, Santa Catarina
10740=Lindóia do Sul, Santa Catarina
10745=Lontras, Santa Catarina
10750=Luiz Alves, Santa Catarina
10755=Luzerna, Santa Catarina
10760=Macieira, Santa Catarina
10765=Mafra, Santa Catarina
10770=Major Gercino, Santa Catarina
10775=Major Vieira, Santa Catarina
10780=Maracajá, Santa Catarina
10785=Maravilha, Santa Catarina
10790=Marema, Santa Catarina
10795=Massaranduba, Santa Catarina
10800=Matos Costa, Santa Catarina
10805=Meleiro, Santa Catarina
10810=Mirim Doce, Santa Catarina
10815=Modelo, Santa Catarina
10820=Mondaí, Santa Catarina
10825=Monte Carlo, Santa Catarina
10830=Monte Castelo, Santa Catarina
10835=Morro da Fumaça, Santa Catarina
10840=Morro Grande, Santa Catarina
10845=Navegantes, Santa Catarina
10850=Nova Erechim, Santa Catarina
10855=Nova Itaberaba, Santa Catarina
10860=Nova Trento, Santa Catarina
10865=Nova Veneza, Santa Catarina
10870=Novo Horizonte, Santa Catarina
10875=Orleans, Santa Catarina
10880=Otacílio Costa, Santa Catarina
10885=Ouro, Santa Catarina
10890=Ouro Verde, Santa Catarina
10895=Paial, Santa Catarina
10900=Painel, Santa Catarina
10905=Palhoça, Santa Catarina
10910=Palma Sola, Santa Catarina
10915=Palmeira, Santa Catarina
10920=Palmitos, Santa Catarina
10925=Papanduva, Santa Catarina
10930=Paraíso, Santa Catarina
10935=Passo de Torres, Santa Catarina
10940=Passos Maia, Santa Catarina
10945=Paulo Lopes, Santa Catarina
10950=Pedras Grandes, Santa Catarina
10955=Penha, Santa Catarina
10960=Peritiba, Santa Catarina
10965=Petrolândia, Santa Catarina
10970=Pinhalzinho, Santa Catarina
10975=Pinheiro Preto, Santa Catarina
10980=Piratuba, Santa Catarina
10985=Planalto Alegre, Santa Catarina
10990=Pomerode, Santa Catarina
10995=Ponte Alta, Santa Catarina
11000=Ponte Alta do Norte, Santa Catarina
11005=Ponte Serrada, Santa Catarina
11010=Porto Belo, Santa Catarina
11015=Porto União, Santa Catarina
11020=Pouso Redondo, Santa Catarina
11025=Praia Grande, Santa Catarina
11030=Presidente Castelo Branco, Santa Catarina
11035=Presidente Getúlio, Santa Catarina
11040=Presidente Nereu, Santa Catarina
11045=Princesa, Santa Catarina
11050=Quilombo, Santa Catarina
11055=Rancho Queimado, Santa Catarina
11060=Rio das Antas, Santa Catarina
11065=Rio do Campo, Santa Catarina
11070=Rio do Oeste, Santa Catarina
11075=Rio do Sul, Santa Catarina
11080=Rio dos Cedros, Santa Catarina
11085=Rio Fortuna, Santa Catarina
11090=Rio Negrinho, Santa Catarina
11095=Rio Rufino, Santa Catarina
11100=Riqueza, Santa Catarina
11105=Rodeio, Santa Catarina
11110=Romelândia, Santa Catarina
11115=Salete, Santa Catarina
11120=Saltinho, Santa Catarina
11125=Salto Veloso, Santa Catarina
11130=Sangão, Santa Catarina
11135=Santa Cecília, Santa Catarina
11140=Santa Helena, Santa Catarina
11145=Santa Rosa de Lima, Santa Catarina
11150=Santa Rosa do Sul, Santa Catarina
11155=Santa Terezinha, Santa Catarina
11160=Santa Terezinha do Progresso, Santa Catarina
11165=Santiago do Sul, Santa Catarina
11170=Santo Amaro da Imperatriz, Santa Catarina
11175=São Bento do Sul, Santa Catarina
11180=São Bernardino, Santa Catarina
11185=São Bonifácio, Santa Catarina
11190=São Carlos, Santa Catarina
11195=São Cristóvão do Sul, Santa Catarina
11200=São Domingos, Santa Catarina
11205=São Francisco do Sul, Santa Catarina
11210=São João Batista, Santa Catarina
11215=São João do Itaperiú, Santa Catarina
11220=São João do Oeste, Santa Catarina
11225=São João do Sul, Santa Catarina
11230=São Joaquim, Santa Catarina
11235=São José, Santa Catarina
11240=São José do Cedro, Santa Catarina
11245=São José do Cerrito, Santa Catarina
11250=São Lourenço do Oeste, Santa Catarina
11255=São Ludgero, Santa Catarina
11260=São Martinho, Santa Catarina
11265=São Miguel da Boa Vista, Santa Catarina
11270=São Miguel do Oeste, Santa Catarina
11275=São Pedro de Alcântara, Santa Catarina
11280=Saudades, Santa Catarina
11285=Schroeder, Santa Catarina
11290=Seara, Santa Catarina
11295=Serra Alta, Santa Catarina
11300=Siderópolis, Santa Catarina
11305=Sombrio, Santa Catarina
11310=Sul Brasil, Santa Catarina
11315=Taió, Santa Catarina
11320=Tangará, Santa Catarina
11325=Tigrinhos, Santa Catarina
11330=Tijucas, Santa Catarina
11335=Timbé do Sul, Santa Catarina
11340=Timbó, Santa Catarina
11345=Timbó Grande, Santa Catarina
11350=Três Barras, Santa Catarina
11355=Treviso, Santa Catarina
11360=Treze de Maio, Santa Catarina
11365=Treze Tílias, Santa Catarina
11370=Trombudo Central, Santa Catarina
11375=Tubarão, Santa Catarina
11380=Tunápolis, Santa Catarina
11385=Turvo, Santa Catarina
11390=União do Oeste, Santa Catarina
11395=Urubici, Santa Catarina
11400=Urupema, Santa Catarina
11405=Urussanga, Santa Catarina
11410=Vargeão, Santa Catarina
11415=Vargem, Santa Catarina
11420=Vargem Bonita, Santa Catarina
11425=Vidal Ramos, Santa Catarina
11430=Videira, Santa Catarina
11435=Vítor Meireles, Santa Catarina
11440=Witmarsum, Santa Catarina
11445=Xanxerê, Santa Catarina
11450=Xavantina, Santa Catarina
11455=Xaxim, Santa Catarina
11460=Zortéa, Santa Catarina

Más contenido relacionado

Destacado

Canteiro de obras
Canteiro de obrasCanteiro de obras
Canteiro de obrasanealves
 
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...Vis-UAB
 
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.Janaina Diogo
 
Correntes de Ergonomia
Correntes de ErgonomiaCorrentes de Ergonomia
Correntes de ErgonomiaGabriela Bruno
 
Montagem de alguns momentos
Montagem de alguns momentosMontagem de alguns momentos
Montagem de alguns momentosNúcia Sabóia
 
Cronograma das oficinas do projeto rondon em Itapiúna
Cronograma das oficinas do projeto rondon em ItapiúnaCronograma das oficinas do projeto rondon em Itapiúna
Cronograma das oficinas do projeto rondon em ItapiúnaA voz do Bem
 
AÇÕES DA SEC. MUL. DE EDUCAÇÃO
AÇÕES DA SEC. MUL. DE EDUCAÇÃOAÇÕES DA SEC. MUL. DE EDUCAÇÃO
AÇÕES DA SEC. MUL. DE EDUCAÇÃOlano pires
 
Plano de aula 229 de julho a 3 de agosto
Plano de aula 229 de julho a 3 de agostoPlano de aula 229 de julho a 3 de agosto
Plano de aula 229 de julho a 3 de agostoHenrique Bayer
 
Oficina de texto jornalístico
Oficina de texto jornalísticoOficina de texto jornalístico
Oficina de texto jornalísticoFausto Coimbra
 
OBJETIVOS DE DESENVOLVIMENTO SUSTENTÁVEL (ODS)
OBJETIVOS DE  DESENVOLVIMENTO  SUSTENTÁVEL  (ODS)OBJETIVOS DE  DESENVOLVIMENTO  SUSTENTÁVEL  (ODS)
OBJETIVOS DE DESENVOLVIMENTO SUSTENTÁVEL (ODS)ObsDrFurb
 
Projeto Jornal Na Escola
Projeto Jornal Na EscolaProjeto Jornal Na Escola
Projeto Jornal Na Escolaguest8a3c9df
 

Destacado (20)

Canteiro de obras
Canteiro de obrasCanteiro de obras
Canteiro de obras
 
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...
O ARTESANATO COMO MEIO DE RESSOCIALIZAÇÃO PARA OS REEDUCANDOS DA PENITENCIÁRI...
 
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.
Apresentação: A Educação Infantil como projeto da comunidade- Aldo Fortunati.
 
Gato e rato
Gato e ratoGato e rato
Gato e rato
 
Correntes de Ergonomia
Correntes de ErgonomiaCorrentes de Ergonomia
Correntes de Ergonomia
 
Campanha de bairro escola13mai2011
Campanha de bairro escola13mai2011Campanha de bairro escola13mai2011
Campanha de bairro escola13mai2011
 
Montagem de alguns momentos
Montagem de alguns momentosMontagem de alguns momentos
Montagem de alguns momentos
 
Oficinas livres explicação
Oficinas livres explicaçãoOficinas livres explicação
Oficinas livres explicação
 
Cronograma das oficinas do projeto rondon em Itapiúna
Cronograma das oficinas do projeto rondon em ItapiúnaCronograma das oficinas do projeto rondon em Itapiúna
Cronograma das oficinas do projeto rondon em Itapiúna
 
Fernanda Salles - Projeto de Urbanização da Comunidade Santa Marta
Fernanda Salles - Projeto de Urbanização da Comunidade Santa MartaFernanda Salles - Projeto de Urbanização da Comunidade Santa Marta
Fernanda Salles - Projeto de Urbanização da Comunidade Santa Marta
 
Oficinas livres
Oficinas livresOficinas livres
Oficinas livres
 
Mkt social
Mkt socialMkt social
Mkt social
 
AÇÕES DA SEC. MUL. DE EDUCAÇÃO
AÇÕES DA SEC. MUL. DE EDUCAÇÃOAÇÕES DA SEC. MUL. DE EDUCAÇÃO
AÇÕES DA SEC. MUL. DE EDUCAÇÃO
 
Oficina: Jornalismo cultural
Oficina: Jornalismo culturalOficina: Jornalismo cultural
Oficina: Jornalismo cultural
 
Plano de aula 229 de julho a 3 de agosto
Plano de aula 229 de julho a 3 de agostoPlano de aula 229 de julho a 3 de agosto
Plano de aula 229 de julho a 3 de agosto
 
Oficina de texto jornalístico
Oficina de texto jornalísticoOficina de texto jornalístico
Oficina de texto jornalístico
 
Diagnóstico social e indicadores
Diagnóstico social e indicadoresDiagnóstico social e indicadores
Diagnóstico social e indicadores
 
Odm ods 2015_odilon_faccio_meet_upflorian_2015
Odm ods 2015_odilon_faccio_meet_upflorian_2015Odm ods 2015_odilon_faccio_meet_upflorian_2015
Odm ods 2015_odilon_faccio_meet_upflorian_2015
 
OBJETIVOS DE DESENVOLVIMENTO SUSTENTÁVEL (ODS)
OBJETIVOS DE  DESENVOLVIMENTO  SUSTENTÁVEL  (ODS)OBJETIVOS DE  DESENVOLVIMENTO  SUSTENTÁVEL  (ODS)
OBJETIVOS DE DESENVOLVIMENTO SUSTENTÁVEL (ODS)
 
Projeto Jornal Na Escola
Projeto Jornal Na EscolaProjeto Jornal Na Escola
Projeto Jornal Na Escola
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (9)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Lacte ws

  • 1. LacteWS - WS PARPRIMO PARA COMPARTILHAMENTO DE DADOS LACTEOS Douglas Hiura Longo douglashiura@inf.ufsc.br Rogério Bagatini 1 Introdução A Parprimo disponibiliza infraestrutura de Web Service (LacteWS) para o compartilhamento dos dados dos laticínios ou cooperativas, ou seja, Através do LacteWS é possível publicar e resgatar as informações. Este tutorial está estruturado em duas partes principais, sendo, o Modelo de Dados e o Web Service LacteWS. A pretensão deste é ser sucinto sem definição de tecnologias ou métodos de tecnologia. 2 O Modelo de Dados O modelo de dados está descrito no wsdl(comentado mais a frente) e representado aqui com um diagrama. Todas as entidades que carregam os dados têm prefixo Bean, exemplo BeanProdutor. Em todas as entidades há um atributo chamado uid do tipo inteiro. O uid deve ser único para cada tipo de entidade, pode ser um valor sequencial inteiro, ainda, o uid é a chave de referências.
  • 2. BeanTransportadora uid Integer nome String municipio Integer (#1) cnpj Long 1 BeanColetor N uid Integer BeanCaminho nome String uid Integer 1 transportadora BeanTransportadora nome String N coletor BeanColetor BeanColeta 1 N uid Integer volume Integer BeanRota produtor BeanProdutor uid Integer compartimento Integer inicio Date temperatura Float * descarga Date N caminho BeanCaminho alizarol Integer * data Date coletas List<BeanColeta> 1 N 1 BeanProdutor uid Integer nome String municipio Integer (#1) Diagrama do modelo de dados - 1
  • 3. 3 Descrições e restrições Sobre o diagrama acima, segue, uma pequena descrição do modelo de dados e implicitamente cada nome e seu tipo se definem. Ademais, todos os atributos são requeridos, exceto marcados com *(temperatura e alizarol), para restrições e intervalos descreve-se: BeanTransportadora uid - nome - comprimento de 1 a 40. municipio –ver Tabela Valor – Município. cnpj – é o valor do cadastro de pessoa jurídica, não é feita validação. BeanColetor uid - nome - comprimento de 1 a 40. transportadora - BeanCaminho uid - nome - comprimento de 1 a 40. coletor - BeanProdutor uid - nome - comprimento de 1 a 40. municipio – ver Tabela Valor – Município. BeanColeta uid - volume – Volume coletado em litros
  • 4. produtor - compartimento – Compartimento do caminhão, valores[1, 2, 3, 4]. Caso em um produtor utilizar mais de um compartimento, então fazer a quantidade requerida de beanColeta com os respectivos volumes e compartimentos para o produtor, ou apenas um beanColeta com o primeiro compartimento utilizado e com a soma de volumes. temperatura - Opcional, valor em Grau Celsius. alizarol - Opcional, [-68,68,70,72,74,76,78,80,null]. data - Horário da coleta. BeanRota uid - inicio – Horário de inicio . descarga - Horário de descarga no laticínio. caminho - coletas - Lista de Coletas. 4 Web Service LacteWS O LacteWS é o ponto onde está exposto o serviço, seu wsdl pode ser obtido em http://lacte.ws.parprimo.com/lacte/LacteWS?wsdl (Testes http://200.135.239.104/lacte/LacteWS? wsdl) aos desenvolvedores Java + eclipse segue um conjunto de passos: No Eclipse: File → New Java Project
  • 5. Depois do projeto java criado, vou usar o assistente através do wsdl(http://lacte.ws.parprimo.com/lacte/LacteWS?wsdl , Testes http://200.135.239.104/lacte/LacteWS?wsdl) para gerar as classes e entidades.
  • 7. 4.1 Exemplo como consumir o serviço public class Usando { public static void main(String[] args) throws RemoteException { LacteWSProxy servico = new LacteWSProxy(); String toke = "um:toke:teste:parprimo10035"; try { int uid = 1;// este pode ser um sequencial para cada tipo, mas aqui é neste teste é apenas um."Lazy work" BeanProdutor[] produtores = new BeanProdutor[] { novoProdutor(uid++), novoProdutor(uid++) }; BeanTransportadora[] transportadores = new BeanTransportadora[] { novaTransportadora(uid++) }; BeanColetor[] coletores = new BeanColetor[] { novoColetor(uid++, transportadores[0]) }; BeanCaminho[] caminhos = new BeanCaminho[] { novoCaminho(uid++, coletores[0]) }; BeanRota[] rotas = new BeanRota[] { novaRota(uid++, caminhos[0], new BeanProdutor[] { produtores[0] }, new int[] { uid++ }), novaRota(uid++, caminhos[0], produtores, new int[] { uid++, uid++ }) }; servico.criarProdutores(toke, produtores); servico.criarTransportadores(toke, transportadores); servico.criarColetores(toke, coletores); servico.criarCaminhos(toke, caminhos); servico.criarRotas(toke, rotas); } catch (ExceptionWS e) { String[] erros = e.getErro(); for (String erro : erros) { System.out.println(erro); } }
  • 8. } private static BeanRota novaRota(int uidRota, BeanCaminho caminho, BeanProdutor[] produtores, int[] uidColeta) { BeanRota beanRota = new BeanRota(); beanRota.setUid(uidRota); beanRota.setCaminho(caminho); Calendar data = Calendar.getInstance(); data.setTime(new Date()); beanRota.setInicio(data); beanRota.setDescarga(data); BeanColeta[] coletas = new BeanColeta[produtores.length]; for (int i = 0; i < coletas.length; i++) { coletas[i] = novaColeta(uidColeta[i], produtores[i]); } beanRota.setColetas(coletas); return beanRota; } static BeanColeta novaColeta(int uid, BeanProdutor produtor) { BeanColeta coleta2 = new BeanColeta(); coleta2.setUid(uid); Calendar data = Calendar.getInstance(); data.setTime(new Date()); coleta2.setData(data); coleta2.setVolume(157); coleta2.setProdutor(produtor); coleta2.setCompartimento(2); coleta2.setAlizarol(68); return coleta2; } private static BeanCaminho novoCaminho(int uid, BeanColetor beanColetor) { BeanCaminho caminho = new BeanCaminho(); caminho.setColetor(beanColetor); caminho.setNome("Caminho"); caminho.setUid(uid); return caminho;
  • 9. } private static BeanColetor novoColetor(int uid, BeanTransportadora transportadora) { BeanColetor coletor = new BeanColetor(); coletor.setNome("Coletor"); coletor.setUid(uid); coletor.setTransportadora(transportadora); return coletor; } private static BeanTransportadora novaTransportadora(int uid) { BeanTransportadora transportadora = new BeanTransportadora(); transportadora.setUid(uid); transportadora.setCnpj(0000000011111111l); transportadora.setMunicipio(10001); transportadora.setNome("Teste"); return transportadora; } private static BeanProdutor novoProdutor(Integer uid) { BeanProdutor produtor = new BeanProdutor(); produtor.setMunicipio(10001); produtor.setNome("Teste"); produtor.setUid(uid); return produtor; } } 5 Sobre LacteWS A Classe LacteWS é o ponto de consumo do serviço, e possui os métodos: - criarTransportadores(toke,BeanTransportadora[] transportadores) throws ExceptionWS; - criarRotas(String toke, BeanRota[] rotas) throws ExceptionWS;
  • 10. - criarCaminhos(String toke, BeanCaminho[] caminhos) throws ExceptionWS; - criarProdutores(String toke, BeanProdutor[] produtores) throws ExceptionWS; - criarColetores(String toke, BeanColetor[] coletores) throws ExceptionWS; Esses métodos estão disponíveis para publicar os dados inerente ao desenho Lácteo no WS Parprimo. O argumento toke passado em cada um deles métodos é um identificador que a Parprimo fornece aos consumidores do serviço. Todos os métodos recebem uma lista de Beans, caso todos forem validos, serão armazenados. Para as relações BeanTransportadora e BeanColetor deve ser informado antecipadamente a transportadora e posteriormente o coletor. Ainda, não há limite para a lista, pois ainda não aconteceu sobrecarga em uso normal. Em caso de alguma entidade estiver com dados inválidos, nenhuma delas é guardada pela Parprimo. Para casos de erros na validação é encapsulado e retornado dentro das exceção mensagens que podem ser recuperadas usando o método getErro() da classe ExceptionWS. A Parprimo está desenvolvendo um WS mais promiscuo desrespeitando essa hierarquia de relações, mas está ainda em testes. 5.1 Sobre XSD A validação pelo XSD (http://lacte.ws.parprimo.com/lacte/LacteWS?xsd=1 http://200.135.239.104/lacte/LacteWS?xsd=1) é desaconselhada, foi bem limitada, pois há algumas divergências com outras tecnologia não java. Como o consumo deste web service é para outros computadores, então recomenda-se seguir Descrições e Restrições, sessão acima. 6 Sobre o Toke Um toke oficial associado a um laticínio é emitido após homologado o funcionamento no servidor de testes e solicitação na Parprimo. O servidor de testes fica no endereço 200.135.239.104. Através da página (http://200.135.239.104/index.par) é possível gerar um toke para testes.
  • 11. 7 Tabela Valor – Município 0=Sem Endereço 10000=Abdon Batista, Santa Catarina 10005=Abelardo Luz, Santa Catarina 10010=Agrolândia, Santa Catarina 10015=Agronômica, Santa Catarina 10020=Água Doce, Santa Catarina 10025=Águas de Chapecó, Santa Catarina 10030=Águas Frias, Santa Catarina 10035=Águas Mornas, Santa Catarina 10040=Alfredo Wagner, Santa Catarina 10045=Alto Bela Vista, Santa Catarina 10050=Anchieta, Santa Catarina 10055=Angelina, Santa Catarina 10060=Anita Garibaldi, Santa Catarina 10065=Anitápolis, Santa Catarina 10070=Antônio Carlos, Santa Catarina 10075=Apiúna, Santa Catarina 10080=Arabutã, Santa Catarina 10085=Araquari, Santa Catarina 10090=Araranguá, Santa Catarina 10095=Armazém, Santa Catarina 10100=Arroio Trinta, Santa Catarina 10105=Arvoredo, Santa Catarina 10110=Ascurra, Santa Catarina 10115=Atalanta, Santa Catarina 10120=Aurora, Santa Catarina 10125=Balneário Arroio do Silva, Santa Catarina 10130=Balneário Barra do Sul, Santa Catarina 10135=Balneário Camboriú, Santa Catarina 10140=Balneário de Piçarras, Santa Catarina 10145=Balneário Gaivota, Santa Catarina 10150=Bandeirante, Santa Catarina 10155=Barra Bonita, Santa Catarina 10160=Barra Velha, Santa Catarina 10165=Bela Vista do Toldo, Santa Catarina 10170=Belmonte, Santa Catarina
  • 12. 10175=Benedito Novo, Santa Catarina 10180=Biguaçu, Santa Catarina 10185=Blumenau, Santa Catarina 10190=Bocaina do Sul, Santa Catarina 10195=Bom Jardim da Serra, Santa Catarina 10200=Bom Jesus, Santa Catarina 10205=Bom Jesus do Oeste, Santa Catarina 10210=Bom Retiro, Santa Catarina 10215=Bombinhas, Santa Catarina 10220=Botuverá, Santa Catarina 10225=Braço do Norte, Santa Catarina 10230=Braço do Trombudo, Santa Catarina 10235=Brunópolis, Santa Catarina 10240=Brusque, Santa Catarina 10245=Caçador, Santa Catarina 10250=Caibi, Santa Catarina 10255=Calmon, Santa Catarina 10260=Camboriú, Santa Catarina 10265=Campo Alegre, Santa Catarina 10270=Campo Belo do Sul, Santa Catarina 10275=Campo Erê, Santa Catarina 10280=Campos Novos, Santa Catarina 10285=Canelinha, Santa Catarina 10290=Canoinhas, Santa Catarina 10295=Capão Alto, Santa Catarina 10300=Capinzal, Santa Catarina 10305=Capivari de Baixo, Santa Catarina 10310=Catanduvas, Santa Catarina 10315=Caxambu do Sul, Santa Catarina 10320=Celso Ramos, Santa Catarina 10325=Cerro Negro, Santa Catarina 10330=Chapadão do Lageado, Santa Catarina 10335=Chapecó, Santa Catarina 10340=Cocal do Sul, Santa Catarina 10345=Concórdia, Santa Catarina 10350=Cordilheira Alta, Santa Catarina 10355=Coronel Freitas, Santa Catarina 10360=Coronel Martins, Santa Catarina
  • 13. 10365=Correia Pinto, Santa Catarina 10370=Corupá, Santa Catarina 10375=Criciúma, Santa Catarina 10380=Cunha Porã, Santa Catarina 10385=Cunhataí, Santa Catarina 10390=Curitibanos, Santa Catarina 10395=Descanso, Santa Catarina 10400=Dionísio Cerqueira, Santa Catarina 10405=Dona Emma, Santa Catarina 10410=Doutor Pedrinho, Santa Catarina 10415=Entre Rios, Santa Catarina 10420=Ermo, Santa Catarina 10425=Erval Velho, Santa Catarina 10430=Faxinal dos Guedes, Santa Catarina 10435=Flor do Sertão, Santa Catarina 10440=Florianópolis, Santa Catarina 10445=Formosa do Sul, Santa Catarina 10450=Forquilhinha, Santa Catarina 10455=Fraiburgo, Santa Catarina 10460=Frei Rogério, Santa Catarina 10465=Galvão, Santa Catarina 10470=Garopaba, Santa Catarina 10475=Garuva, Santa Catarina 10480=Gaspar, Santa Catarina 10485=Governador Celso Ramos, Santa Catarina 10490=Grão-Pará, Santa Catarina 10495=Gravatal, Santa Catarina 10500=Guabiruba, Santa Catarina 10505=Guaraciaba, Santa Catarina 10510=Guaramirim, Santa Catarina 10515=Guarujá do Sul, Santa Catarina 10520=Guatambu, Santa Catarina 10525=Herval D´Oeste, Santa Catarina 10530=Ibiam, Santa Catarina 10535=Ibicaré, Santa Catarina 10540=Ibirama, Santa Catarina 10545=Içara, Santa Catarina 10550=Ilhota, Santa Catarina
  • 14. 10555=Imaruí, Santa Catarina 10560=Imbituba, Santa Catarina 10565=Imbuia, Santa Catarina 10570=Indaial, Santa Catarina 10575=Iomerê, Santa Catarina 10580=Ipira, Santa Catarina 10585=Iporã do Oeste, Santa Catarina 10590=Ipuaçu, Santa Catarina 10595=Ipumirim, Santa Catarina 10600=Iraceminha, Santa Catarina 10605=Irani, Santa Catarina 10610=Irati, Santa Catarina 10615=Irineópolis, Santa Catarina 10620=Itá, Santa Catarina 10625=Itaiópolis, Santa Catarina 10630=Itajaí, Santa Catarina 10635=Itapema, Santa Catarina 10640=Itapiranga, Santa Catarina 10645=Itapoá, Santa Catarina 10650=Ituporanga, Santa Catarina 10655=Jaborá, Santa Catarina 10660=Jacinto Machado, Santa Catarina 10665=Jaguaruna, Santa Catarina 10670=Jaraguá do Sul, Santa Catarina 10675=Jardinópolis, Santa Catarina 10680=Joaçaba, Santa Catarina 10685=Joinville, Santa Catarina 10690=José Boiteux, Santa Catarina 10695=Jupiá, Santa Catarina 10700=Lacerdópolis, Santa Catarina 10705=Lages, Santa Catarina 10710=Laguna, Santa Catarina 10715=Lajeado Grande, Santa Catarina 10720=Laurentino, Santa Catarina 10725=Lauro Müller, Santa Catarina 10730=Lebon Régis, Santa Catarina 10735=Leoberto Leal, Santa Catarina 10740=Lindóia do Sul, Santa Catarina
  • 15. 10745=Lontras, Santa Catarina 10750=Luiz Alves, Santa Catarina 10755=Luzerna, Santa Catarina 10760=Macieira, Santa Catarina 10765=Mafra, Santa Catarina 10770=Major Gercino, Santa Catarina 10775=Major Vieira, Santa Catarina 10780=Maracajá, Santa Catarina 10785=Maravilha, Santa Catarina 10790=Marema, Santa Catarina 10795=Massaranduba, Santa Catarina 10800=Matos Costa, Santa Catarina 10805=Meleiro, Santa Catarina 10810=Mirim Doce, Santa Catarina 10815=Modelo, Santa Catarina 10820=Mondaí, Santa Catarina 10825=Monte Carlo, Santa Catarina 10830=Monte Castelo, Santa Catarina 10835=Morro da Fumaça, Santa Catarina 10840=Morro Grande, Santa Catarina 10845=Navegantes, Santa Catarina 10850=Nova Erechim, Santa Catarina 10855=Nova Itaberaba, Santa Catarina 10860=Nova Trento, Santa Catarina 10865=Nova Veneza, Santa Catarina 10870=Novo Horizonte, Santa Catarina 10875=Orleans, Santa Catarina 10880=Otacílio Costa, Santa Catarina 10885=Ouro, Santa Catarina 10890=Ouro Verde, Santa Catarina 10895=Paial, Santa Catarina 10900=Painel, Santa Catarina 10905=Palhoça, Santa Catarina 10910=Palma Sola, Santa Catarina 10915=Palmeira, Santa Catarina 10920=Palmitos, Santa Catarina 10925=Papanduva, Santa Catarina 10930=Paraíso, Santa Catarina
  • 16. 10935=Passo de Torres, Santa Catarina 10940=Passos Maia, Santa Catarina 10945=Paulo Lopes, Santa Catarina 10950=Pedras Grandes, Santa Catarina 10955=Penha, Santa Catarina 10960=Peritiba, Santa Catarina 10965=Petrolândia, Santa Catarina 10970=Pinhalzinho, Santa Catarina 10975=Pinheiro Preto, Santa Catarina 10980=Piratuba, Santa Catarina 10985=Planalto Alegre, Santa Catarina 10990=Pomerode, Santa Catarina 10995=Ponte Alta, Santa Catarina 11000=Ponte Alta do Norte, Santa Catarina 11005=Ponte Serrada, Santa Catarina 11010=Porto Belo, Santa Catarina 11015=Porto União, Santa Catarina 11020=Pouso Redondo, Santa Catarina 11025=Praia Grande, Santa Catarina 11030=Presidente Castelo Branco, Santa Catarina 11035=Presidente Getúlio, Santa Catarina 11040=Presidente Nereu, Santa Catarina 11045=Princesa, Santa Catarina 11050=Quilombo, Santa Catarina 11055=Rancho Queimado, Santa Catarina 11060=Rio das Antas, Santa Catarina 11065=Rio do Campo, Santa Catarina 11070=Rio do Oeste, Santa Catarina 11075=Rio do Sul, Santa Catarina 11080=Rio dos Cedros, Santa Catarina 11085=Rio Fortuna, Santa Catarina 11090=Rio Negrinho, Santa Catarina 11095=Rio Rufino, Santa Catarina 11100=Riqueza, Santa Catarina 11105=Rodeio, Santa Catarina 11110=Romelândia, Santa Catarina 11115=Salete, Santa Catarina 11120=Saltinho, Santa Catarina
  • 17. 11125=Salto Veloso, Santa Catarina 11130=Sangão, Santa Catarina 11135=Santa Cecília, Santa Catarina 11140=Santa Helena, Santa Catarina 11145=Santa Rosa de Lima, Santa Catarina 11150=Santa Rosa do Sul, Santa Catarina 11155=Santa Terezinha, Santa Catarina 11160=Santa Terezinha do Progresso, Santa Catarina 11165=Santiago do Sul, Santa Catarina 11170=Santo Amaro da Imperatriz, Santa Catarina 11175=São Bento do Sul, Santa Catarina 11180=São Bernardino, Santa Catarina 11185=São Bonifácio, Santa Catarina 11190=São Carlos, Santa Catarina 11195=São Cristóvão do Sul, Santa Catarina 11200=São Domingos, Santa Catarina 11205=São Francisco do Sul, Santa Catarina 11210=São João Batista, Santa Catarina 11215=São João do Itaperiú, Santa Catarina 11220=São João do Oeste, Santa Catarina 11225=São João do Sul, Santa Catarina 11230=São Joaquim, Santa Catarina 11235=São José, Santa Catarina 11240=São José do Cedro, Santa Catarina 11245=São José do Cerrito, Santa Catarina 11250=São Lourenço do Oeste, Santa Catarina 11255=São Ludgero, Santa Catarina 11260=São Martinho, Santa Catarina 11265=São Miguel da Boa Vista, Santa Catarina 11270=São Miguel do Oeste, Santa Catarina 11275=São Pedro de Alcântara, Santa Catarina 11280=Saudades, Santa Catarina 11285=Schroeder, Santa Catarina 11290=Seara, Santa Catarina 11295=Serra Alta, Santa Catarina 11300=Siderópolis, Santa Catarina 11305=Sombrio, Santa Catarina 11310=Sul Brasil, Santa Catarina
  • 18. 11315=Taió, Santa Catarina 11320=Tangará, Santa Catarina 11325=Tigrinhos, Santa Catarina 11330=Tijucas, Santa Catarina 11335=Timbé do Sul, Santa Catarina 11340=Timbó, Santa Catarina 11345=Timbó Grande, Santa Catarina 11350=Três Barras, Santa Catarina 11355=Treviso, Santa Catarina 11360=Treze de Maio, Santa Catarina 11365=Treze Tílias, Santa Catarina 11370=Trombudo Central, Santa Catarina 11375=Tubarão, Santa Catarina 11380=Tunápolis, Santa Catarina 11385=Turvo, Santa Catarina 11390=União do Oeste, Santa Catarina 11395=Urubici, Santa Catarina 11400=Urupema, Santa Catarina 11405=Urussanga, Santa Catarina 11410=Vargeão, Santa Catarina 11415=Vargem, Santa Catarina 11420=Vargem Bonita, Santa Catarina 11425=Vidal Ramos, Santa Catarina 11430=Videira, Santa Catarina 11435=Vítor Meireles, Santa Catarina 11440=Witmarsum, Santa Catarina 11445=Xanxerê, Santa Catarina 11450=Xavantina, Santa Catarina 11455=Xaxim, Santa Catarina 11460=Zortéa, Santa Catarina