segunda-feira, 24 de fevereiro de 2014

Brincando com Android e SAP

Brincando com o Android......

 

Muito bakana esse mundo Android, principalmente a velocidade com o conhecimento sobre mobile vem acelerando as coisas..o mercado ...é a tecnologia sempre gerando demanda....

Dai....vem um desafio enviar mensagem (Push Notification via Android), aquelas mensagens que você recebe no seu celular na barra de notificação aquela onde te mostra o sinal do celular, o consumo da bateria, se chegou mensagem, ligação perdida, etc...etc...etc...

Bom, todas as plataformas, pelo que li, possuem esse tipo de serviço, mas aqui no caso só abordei a Android, porque para testar as outras teria que ter os devices próprios e também escrever uma aplicação para cada......Apesar de alguns frameworks como phonegap/cordova/aerogear dentre outros prometeram uma aplicação hibrida, ou seja, com javascript e html5, a aplicação funcione em todas as plataformas. (não acredito muito nessa mágica, mas também não desacredito)

Existem dezenas de server de terceiros que fornecem códigos exemplos dentre outros benefícios para que você (sua aplicação) use seu serviço e pague uma merreca por ele, neste caso o escolhido e o que funcionou foi o pushbots.com.

Para o envia das mensagens escolhemos a REST, comunicação simples e fácil via HTTP, para isso usamos uma app para o CHROME chamadaAdvanced REST Client, de uma conta no google e habilitação da API / serviço 
Google Cloud Messaging for Android, e claro de uma conta no server pushbots.com.

Não entrarei em detalhes aqui sobre a criação/habilitação do serviço no google, nem detalhes sobre o pushbots, a ideia é repassar o conhecimento sobre como funciona o mecanismo de envio de push notification.

Vamos aos passos:

1) Habilitar serviço/API no Google (a apple também possui a dela)




2) Criar uma conta no server pushbots.com

 


3)Baixar o modelo de projeto para android do site pushbots.com e realizar as respectivas alterações, salvar a aplicação no eclipse e mandar a app para seu device android.

 


ps: apaguei as referencia sobre projetos e outras chaves senão vira festa.....

Vamos ao funcionamento, até agora foi só o preparo para a coisa funcionar, longe de ser algo profissional, mas sim um curioso para matar a curiosidade de saber como as coisas funcionam.

1) Instalar a aplicação no seu android....tai um display da aplkicação no celular, o robo verde BugDroid  (pushbots). O que a aplicação faz, resgitra seu device no pushbots para recebimento de mensagens (Push Notifications)

 

 


 Depois do registro efetivado, não quer dizer que todo device android vai ser registrado, por algum motivo alguns não foram, porque?? nem procurei saber, talvez um antivirus no celular, ou problema de versão sei lá, isso agora não vem ao caso.

2) Envio das mensagens via REST, simplicidade em pessoa, assim eu defino o REST, sem complicação de XML, nem nada.....é o que o mundo de troca de informação precisava....alias ele já tinha só eu que ainda não conhecia....rsssss

 



3) só verificar a mensagem no device.......tai as imagens que não me deixam mentir...... Obrigado ao Leo Benedeti, pelo envio de tela.....e de me ajudar como cobaia das minhas experiencias.....valeu Leo!!!!1

 

detalhe dos dois robozinhos verdes no alto, na barra de notificação do android.....Abaixo a notificação........

 



Longe de ser algo profissional, não foi este o proposito, até que para isso devo percorrer ainda um longo trajeto para suportar uma aplicação robusta.]

Mas fica a ideia, de uma nova maneira de se comunicar com os empregados de uma empresa, com os diretores, CLIENTES.....etc...etc....o que a imaginação mandar....basta ter a ideia e implementar....

O que fala internet HTTP, fala REST, então o céu é o limite........


abs.

 

Cortesia do Ricardo BHZ

Componentes tabela interna em tempo de execução (How to get Internal Table Components at runtime)

Estava precisando para uma demanda, o nome dos campos de uma tabela interna em tempo de execução  e achei essa codificação a mais completa e simples para ser usada......com um resultado bem satisfatório.....

font: 
http://abap-explorer.blogspot.com.br/2010/01/how-to-get-internal-table-components-at.html

segue o código......


*&---------------------------------------------------------------------*
*& Report  ZTEST_INTERNAL_TAB_COMP
*&
*&---------------------------------------------------------------------*
*&***********DEMO Code for http://abap-explorer.blogspot.com/***********
*&
*&---------------------------------------------------------------------*
 report  ztest_internal_tab_comp line-size 100.type-pools: abap.
 *Declare the type of the internal table
types: begin of x_final,
 matnr type matnr,
 werks type werks_d,
 flag type c length 1,
 value type p length 10 decimals 2,end of x_final.
 data:*The Internal table whose components are to found
i_data type sorted table of x_final with unique key matnr,*Table to hold the components
tab_return type abap_compdescr_tab,*Work area for the component table
components like line of tab_return.
 *Call Perform to get the Int. Table Components
perform get_int_table_fields using    i_data
                            changing  tab_return.*Display Components
loop at tab_return into components.
  write: / components-namecomponents-type_kind,
           components-length,components-decimals.endloop.
 
 
 
 *&---------------------------------------------------------------------*
*&      Form  get_int_table_fields
*&---------------------------------------------------------------------*
*       Get the Components of an internal table
*----------------------------------------------------------------------*
*      -->T_DATA     text
*      -->T_RETURN   text
*----------------------------------------------------------------------*
form get_int_table_fields  using    t_data type any table
                           changing t_return type abap_compdescr_tab.
 
  data:
  oref_table type ref to cl_abap_tabledescr,
  oref_struc type ref to cl_abap_structdescr,
  oref_error type ref to cx_root,
  text type string.*Get the description of data object type
  try.
      oref_table ?=
      cl_abap_tabledescr=>describe_by_data( t_data ).
    catch cx_root into oref_error.
      text = oref_error->get_text( ).
      write: / text.
      exit.
  endtry.*Get the line type
  try.
      oref_struc ?= oref_table->get_table_line_type( ).
    catch cx_root into oref_error.
      text = oref_error->get_text( ).
      write: / text.
      exit.
  endtry.
 
  append lines of oref_struc->components to t_return.
 endform.                    " GET_INT_TABLE_FIELDS

 

Ricardo BHZ

sexta-feira, 21 de fevereiro de 2014

O SAP FALA COM VOCE!!!

*&---------------------------------------------------------------------*
*& Report  ZTESTEXXXX
*& O Sap fala com você!!!
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZTESTEXXXX.
INCLUDE ole2incl.
DATA ole   TYPE ole2_object,
       voice 
TYPE ole2_object.
PARAMETERS p_text type string DEFAULT 'I love you and Im crazy for you'.
CREATE OBJECT voice 'SAPI.SpVoice'.
CALL METHOD OF voice 'Speak' ole
  
EXPORTING #1 p_text.

quarta-feira, 19 de fevereiro de 2014

Desconto no Pedido de Compras não vai para a Nota Fiscal MM // COM CONVENIO 100

J1btax -  O desconto do pedido de Compras não aparece na redução da Nota Fiscal

 

 

Insira a condição

 

 

 

DO CONVENIO 100

 

DADOS

 

VT 83.907,22
Valor Prod 90.417,27
Base icms: 36.166,91
Valor icms: 4.340,04
Valor Total dos Descontos: 6.510,05

 

·         Aplicar a nota SAP 1562248 que muda a forma como o sistema efetua o calculo do ICMS quando o material é sujeito ao convenio 100 do ICMS;

·         Cadastrar material na tabela de exceção dinâmica do icms (J_1BTXIC3)  marcando o flag do convenio 100;

·         Criar condição de desconto para o esquema de calculo do pedido;

·         Na J1BTAX no caminho: Nota Fiscal > Revisão de faturas > Condições PO relevantes para NF inseri a condição de desconto e o campo valor NF = 1 redução.

 

 

 

 

 

PREÇO BRUTO E PREÇO LÍQUIDO

Entender o que é preço bruto e líquido na concepção da SAP e o que é preço bruto e líquido sobre o ponto de vista Brasileiro.

A SAP conceitua preço bruto o valor que entrada na condition PBXX e/ou PB00 (e suas cópias qdo necessário) sendo o preço sem nenhum desconto porém com possíveis sobretaxas.

Já o preço líquido é o preço que foi entrado na condição e pode mudar dependendo das condições de descontos entrados. 
Claro que é uma maneira simplista de ver...

Já o preço Bruto para nós no Brasil  é o preço com todos os impostos inclusos , e o líquido..seria aquele que nós entramos no pedido já descontado ICMS e IPI e dependendo do cenário sem PIS e COFINS...