terça-feira, 14 de agosto de 2018

Primeiros passos com o power BI

Veja este vídeo que ensina de forma prática e simples como montar um gráfico com mapa utilizando o power BI Desktop.


sexta-feira, 21 de agosto de 2015

Nota Fiscal Paulistana no celular


A prefeitura de São Paulo através da PRODAM, disponibilizou um aplicativo para Smartphones que possibilita a emissão e consulta de notas fiscais de serviço, uma ótima solução para profissionais de T.I. e demais prestadores de serviço em geral. O programa da Nota Fiscal Paulistana visa estimular os cidadãos a solicitar notas fiscais aos prestadores de serviço, utilizando como estímulo sorteios de prêmios em dinheiro e créditos em dinheiro que podem ser utilizados para abatimento no pagamento de IPTU ou transferência para conta bancária.


O aplicativo está disponível na loja do Google (Google Play) e também para sistemas Mac OS do iphone (App Store), e aparenta ser um software com uma interface gráfica bem amigável e intuitiva. Segundo o manual da Nota Fiscal de Serviço Eletrônica o aplicativo possui as seguintes funcionalidades:

Pessoa física - Tomador de serviços:
  • Localização de prestadores via GPS ou rede 3G;
  • Meu Placar: para visualização de créditos e prêmios de sorteio; 
  • Minhas Notas: para consulta de notas recebidas;
  • Sorteios: para consulta de bilhetes e acompanhamento dos sorteios da Nota Fiscal Paulistana;
  • Mensagens recebidas;
  • Lista de Prestadores: consulta de prestadores de serviço por localização ou nome. 
Pessoa física - Prestador de serviços:

  •  Emissão de NFS-e;
  • Consulta de notas emitidas;
  • Consulta de notas recebidas; 
  • Mensagens recebidas;
  • Acesso ao painel “Meus Créditos”.

Porém para usufruir do sistema, a pessoa física deverá efetuar o cadastro no sistema através do portal da prefeitura. O acesso pode ser feito por 3 maneiras diferentes:

  • Senha simplificada
  • Senha Web
  • Certificado Digital
Para obter maiores informações:


segunda-feira, 17 de agosto de 2015

Disponível SDK para Android 6.0 - Marshmallow

Em um post no Android Developers Blog o gerente de produtos do Android, Jamal Eason, anunciou a disponibilidade do mais novo SDK para Android 6.0, que recebeu o nome de Marshmallow.
Foi anunciado também a abertura do Google Play para publicação de aplicações com o novo nível de API 23 do Android Marshmallow.

Até então a nova versão era conhecida apenas como Android M, assim apresentada na Google I/O que ocorreu no final de Maio.

O SDK definitivo do Android 6.0 está agora disponível para download através do Gerenciador SDK no Android Studio. Com o Android 6.0 SDK, você tem acesso às APIs do Android finais e as mais recentes ferramentas de compilação.
Depois de ter baixado o SDK do Android 6.0 para o Android Studio, atualize seu projeto e  compile na versão 23 do sdk e você está pronto para testar seu aplicativo com a nova plataforma.


domingo, 16 de agosto de 2015

Android + Web Services + NetBeans



Android + Web Services, duas tecnologias que unidas geram grandes projetos e resultados incríveis!

O número de aplicativos desenvolvidos para dispositivos móveis com plataforma Android cresce a cada dia que passa, sejam eles jogos,  calculadoras de todos os tipos ou até mesmo simuladores de lanterna! Com esse crescimento, surgem também outras necessidades, como por exemplo armazenar informações localmente no dispositivo ou em bancos de dados remotos, acessar serviços remotamente, gerar conteúdo dinamicamente através da web, etc. Para suprir esta necessidade de consumir serviços remotamente, a plataforma Android possui bibliotecas java que possibilitam acessar web services e trafegar dados de forma segura através do protocolo SOAP.

Neste artigo vamos entender de uma forma mais geral o funcionamento destas tecnologias, mas nos próximos posts iremos nos aprofundar em cada uma das tecnologias. Teremos exemplos de códigos  e tenho a pretensão de montar um projeto para um aplicativo de controle financeiro com acesso a  um web service.

Vamos começar entendendo o que são web services, eles nada mais são do que programas que ficam armazenados em um endereço na internet que ficam rodando e aguardando requisições. Como exemplo poderíamos desenvolver uma classe em java chamada Calculadora, e nesta classe teríamos 4 métodos: adicao, subtracao, multiplicacao e divisao.

Cada um destes métodos são operações do web service Calculadora e cada um deles recebem requisições com parâmetros que são processados e em seguida retornados através de uma resposta que o aplicativo cliente está aguardando. Estas operações seriam acessadas através de URLs específicas como por exemplo: http://www.portalmatematica.com/Calculadora/multiplicacao/ ou http://www.portalmatematica.com/Calculadora/adicao/.

Estes programas podem ser desenvolvidos em diversas linguagens como por exemplo C#, VB, JAVA e etc, estes programas são hospedados em servidores web que podem ser por exemplo o famoso IIS da Microsoft ou o TOMCAT do projeto Apache, este segundo foi desenvolvido para aplicações JAVA e portanto será o servidor escolhido para nossos exemplos.

Agora que entendemos um pouquinho sobre os web services (entraremos em maiores detalhes nos próximos posts) vamos agora para a outra ponta da aplicação, ou seja, a parte cliente, chamamos de cliente os programas que acessam recursos hospedados em servidores, no nosso caso os web services, mas poderíamos acessar um servidor de banco de dados por exemplo.

Seguindo nosso artigo, o programa  cliente será um aplicativo Android que terá uma interface simples de calculadora e que não realizará os cálculos localmente no aparelho móvel, mas enviará uma requisição para um web service hospedado na nuvem que processará os dados e retornará o resultado do cálculo.

Para conseguir efetuar conexão entre as duas pontas da aplicação, teremos que utilizar uma tecnologia que consiga trafegar os dados através da internet e que seja compreendida por ambas as partes cliente e servidor. Para esta tarefa utilizaremos o protocolo SOAP que além ser muito prático e confiável ele utiliza como base o XML que é uma linguagem de marcação amplamente utilizada por programadores na integração entre sistemas.

O SOAP irá basicamente criar um arquivo XML contendo alguns dados para serem recebidos pelo servidor, após criar o documento irá envelopar estes dados e criar uma conexão com a aplicação destino, informando o endereço e o nome do serviço que deseja acessar no servidor, após estabelecida a conexão os dados são enviados, então o cliente fica aguardando uma resposta do servidor. O servidor por sua vez irá receber o envelope SOAP, desempacotar o documento XML e separar os dados para então processá-los e depois devolver o resultado.

Depois de tanta teoria, acho que chegou a hora de começar a mostrar tudo isso na prática, portanto iremos começar a desenvolver a parte servidor de nossa aplicação, para isso vamos contar com a ajuda de uma IDE muito boa para isso chamada Netbeans. Muitos irão dizer que o eclipse é muito melhor, mas por questões pessoais vou de NetBeans com o qual já sou bem acostumado.

Para executar este exemplo iremos partir do princípio que você já tenha o servidor TomCat instalado, em caso de dúvidas, aconselho a instalação do XAMPP, que é um conjunto de de aplicações reunidos em um único pacote, segue o site: https://www.apachefriends.org/pt_br/index.html.

Para fazer o download do NetBeans na sua última versão (no momento desta publicação 8.0.2), acesse o seguinte link: https://netbeans.org/downloads/
Aconselho baixar a versão completa que já vem com o TOMCAT embutido, inclusive o GlassFish, além de já contar com o Java EE que utilizaremos para desenvolver a aplicação Servidor.





















Ao iniciar o NetBeans pela primeira vez, você verá uma tela parecida com a imagem acima. Então você deve clicar no menu Arquivo >>Novo Projeto ou se preferir utilizar o atalho de teclado Ctrl + Shift + N. Será apresentada uma tela parecida com a imagem abaixo:




Então você deve selecionar a opção Java Web na lista esquerda e em seguida no quadro da direita selecione Aplicação Web, clique no botão Próximo.


Na próxima tela você terá que colocar o nome do projeto e clicar no botão próximo, conforme mostrado na imagem acima.

Depois você deverá selecionar o servidor Web, neste ponto se você seguiu a indicação do download da versão do Netbeans, então nesta próxima tela você verá que o NetBeans trouxe como padrão op Servidor Glassfish, porém conforme explicado no começo, nós utilizaremos o TOMCAT, portanto vamos clicar no botão adicionar, conforme imagem abaixo.


Então será apresentada uma tela para selecionar o tipo de servidor, localize o Apache TomCat e clique no botão próximo.


Em seguida será apresentada uma tela para informar o diretório de instalação do Tomcat, no meu caso apontei para o diretório do xampp onde existe o apache, veja a imagem abaixo:


Não esqueça de marcar a opção "Usar pasta de configuração privada" e copiar o mesmo diretório do tomcat informado na localização do servidor. Informe um nome de usuário e senha e marque a opção "Criar usuário caso não exista". Clique no botão Finalizar.

Então o Netbeans adicionará o TomCat como servidor, e na tela de configuração seguinte não esqueça de marcar a opção "Ativar injeção de contextos e dependências", então clique em Finalizar.


Agora o Netbeans irá criar toda a estrutura do projeto e o abrirá para você. Por padrão o Netbeans criará no seu projeto uma página JSP chamada index.jsp, que no nosso caso pode ser ignorada e fechada. Neste ponto a estrutura do seu projeto deve estar bem parecida com a imagem abaixo:


Agora vamos criar um web Service em nosso projeto, para isso clique com o botão direito no nome do seu projeto no topo da estrutura do mesmo e selecione a opção Novo > Web Service. Na tela que será apresentada, informe um nome para o web service e o pacote onde o mesmo será armazenado e clique no botão finalizar:


Ao finalizar, o Netbeans irá apresentar uma tela informando que o servidor informado não oferece suporte a Web Services e perguntando se você deseja utilizar uma configuração para web services chamada METRO, então você deve clicar no SIM.



Agora seu projeto já possui tudo o que precisa para rodar, inclusive um web service de exemplo pronto para ser executado, abaixo o código do web service, que nada mais é do que uma classe java com um método:

package br.com.oprofissional.calculadora.ws;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;


@WebService(serviceName = "CalculadoraWS")
public class CalculadoraWS {

    /**
     * This is a sample web service operation
     */
    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        return "Hello " + txt + " !";
    }
}

Para verificarmos se está tudo certo, vamos clicar com o botão direito sobre o nome do seu projeto que é o primeiro nó da estrutura do projeto e selecionar a opção Executar:


O Netbeans irá compilar o seu projeto e implantar o mesmo no Tomcat, em seguida executará o projeto no seu browser padrão, o resultado deve ser parecido com a imagem abaixo:


O que está sendo apresentado na tela é o arquivo index.jsp que foi criado automaticamente junto com o projeto, ele foi definido como padrão, mas se quisermos ver se o web service foi implantado com sucesso podemos digitar na URL atual o seguinte: http://localhost:8080/Calculadora/CalculadoraWS.
Adicionamos o nome do web service no final da URL para podermos acessá-lo, então teremos o seguinte resultado:


Esta tela mostra os web services disponíveis, e ao clicar no link apontado como WSDL você terá acesso ao XML do web service que contem informações sobre o serviço, inclusive os métodos da classe que aqui são chamados de operations:



E com isso finalizo este post que ficou bastante grande e um pouco cansativo de acompanhar, mas que para quem está começando é uma boa fonte de conhecimento e mostra como desenvolver rapidamente um simples web service.
No próximo post pretendo dar um foco maior nas classes java e seus métodos, desenvolvendo as operações que serão acessadas no web service.

Obrigado!



terça-feira, 26 de agosto de 2014

Internal Error occured executing stored procedure when creating session for the AOS

Continuando minha saga para colocar o serviço da AOS no ar depois de uma atualização do ambiente de homologação, me deparei com um outro erro que também me deu um trabalhinho para resolver: Object Server 01: Internal Error occured executing stored procedure when creating session for the AOS.
Este erro ocorreu quando tentava iniciar o serviço, ao ler a mensagem logo percebi que o problema estava na base de dados ou no acesso a mesma, pois o AX estava tentando executar uma SP e não conseguia, então comecei a rever os acessos do usuário bcproxy, as permissões no banco de dados, até que resolvi dar uma pesquisada no site da microsoft sobre o tal problema e acabei tropeçando neste artigo: http://support.microsoft.com/kb/937756 e então dei uma olhada nas duas stored procedures que são descritas no artigo: CreateServerSessions e CreateUserSessions. Elas estavam lá, mas ao verificar as permissões das ditas cujas percebi que o usuário do servidor atual não tinha permissão de execução, bastou adicionar a permissão que tudo voltou ao normal!
Segue abaixo uma imagem para ajudar a entender o problema:












Fica a dica!

Não é possível editar um registro de Tabela de Mensagens de Fluxo de Trabalho

Hoje estava atualizando o ambiente de homologação do Dynamics AX 2009, tudo funcionou certinho depois da atualização com exceção do WorkFlow!
Ao checar o log do trabalho em lote do fluxo de trabalho me deparei com o seguinte erro:
Não é possível editar um registro de Tabela de Mensagens de Fluxo de Trabalho (WorkflowMessageTable). Identificação de mensagem de fluxo de trabalho:{00000000-0000-0000-0000-000000000000}, {00000000-0000-0000-0000-000000000000}. Bloqueio.
Eu chequei todas as configurações do workflow e tudo estava correto, até que resolvi alterar o tempo de recorrência do trabalho em lote que estava sendo executado a cada 1 minuto, mudei para 3. Problema resolvido, acredito que o trabalho em lote não estava conseguindo concluir a tarefa e causando um bloqueio na tabela.

Fica a dica!

segunda-feira, 25 de agosto de 2014

Publicar conteúdo com código fonte destacado com SyntaxHighlighter

Muitas vezes que navego entre blogs de tecnologia encontro muito código fonte no meio da publicação, mas nunca dei muita atenção no que havia por de trás da formatação do trecho de código que sempre é destacado do conteúdo do post e muito bem identado, com a numeração das linhas e muito mais.
Foi então que precisei utilizar este tipo de formatação aqui no blog e corri atrás de informações sobre tal tecnologia. Logo de cara já percebi que teria que mecher com CSS, mas procurei algum plugin para instalar no Blogger, mas só achei para o WordPress. Continuando a pesquisa encontrei um conteúdo muito interessante no site da google: https://code.google.com/p/syntaxhighlighter/, mas na página tinha uma informação dizendo que o conteúdo era antigo e indicando o site do projeto SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/.

Trata-se de uma biblioteca muito completa e funcional, você pode apenas referenciar os arquivos .js e .css direto do site do projeto ou se preferir fazer o download da biblioteca toda, jogar em seu servidor e apontar para os arquivos.

A biblioteca conta com sintaxe para diversas linguagens, inclusive você pode facilmente incluir novas linguagens à biblioteca

Visite o site do projeto e veja alguns exemplos!

http://alexgorbatchev.com/SyntaxHighlighter/manual/installation.html
http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/