Вы находитесь на странице: 1из 31

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 1 de 31

2014 © Todos os direitos reservados ITS Group


Sumário
ABAP Language News para o Release 7.40 ................................................................................................................. 4
Novas Features – ABAP Language 7.40 ....................................................................................................................... 5
Inline Declarations..................................................................................................................................................... 5
Exercícios ...................................................................................................................................................................... 7
Exercício 01 (Solução ZABAP740_SOLT01) ............................................................................................................... 7
Operador VALUE ........................................................................................................................................................ 7
Exercícios ...................................................................................................................................................................... 7
Exercício 01 (Solução ZABAP740_SOLT02) ............................................................................................................... 7
Operador NEW........................................................................................................................................................... 8
Exercícios ...................................................................................................................................................................... 8
Exercício 01 (Solução ZABAP740_SOLT03) ............................................................................................................... 8
Operador REF ............................................................................................................................................................. 9
Exercícios ...................................................................................................................................................................... 9
Exercício 01 (Solução ZABAP740_SOLT04) ............................................................................................................... 9
Operador CONV .......................................................................................................................................................10
Exercícios ....................................................................................................................................................................10
Exercício 01 (Solução ZABAP740_SOLT05) .............................................................................................................10
Operador CAST ........................................................................................................................................................11
Operador COND .......................................................................................................................................................11
Exercícios ....................................................................................................................................................................11
Exercício 01 (Solução ZABAP740_SOLT06) .............................................................................................................11
Operador SWITCH....................................................................................................................................................11
Exercícios ....................................................................................................................................................................12
Exercício 01 (Solução ZABAP740_SOLT07) .............................................................................................................12
ABAP Objects ...........................................................................................................................................................12
Tabelas Internas ......................................................................................................................................................13
Exercícios ....................................................................................................................................................................14
Exercício 01 (Solução ZABAP740_SOLT08) .............................................................................................................14
Exercício 02 (Solução ZABAP740_SOLT09) .............................................................................................................15
Novas Features – ABAP Language 7.40 – OPEN SQL .................................................................................................16
Boas Práticas............................................................................................................................................................17
Constantes ...............................................................................................................................................................17
Operadores Aritméticos ..........................................................................................................................................17

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 2 de 31


2014 © Todos os direitos reservados ITS Group
Exercícios ....................................................................................................................................................................18
Exercício 01 (Solução ZABAP740_SOLT10) .............................................................................................................18
Expressões Aritméticas ...........................................................................................................................................18
Exercícios ....................................................................................................................................................................19
Exercício 01 (Solução ZABAP740_SOLT11) .............................................................................................................19
Strings – Operador && ............................................................................................................................................19
Exercícios ....................................................................................................................................................................20
Exercício 01 (Solução ZABAP740_SOLT12) .............................................................................................................20
Colunas – Operador COALESCE ...............................................................................................................................20
Colunas – Operador CASE .......................................................................................................................................21
Exercícios ....................................................................................................................................................................22
Exercício 01 (Solução ZABAP740_SOLT13) .............................................................................................................22
Visões CDS – Seleção de Dados ...............................................................................................................................23
Exercícios ....................................................................................................................................................................25
Exercício 01 (Solução ZABAP740_SOLT14) .............................................................................................................25
IDA ALV – Seleção de Dados ...................................................................................................................................25
Exercícios ....................................................................................................................................................................27
Exercício 01 (Solução ZABAP740_SOLT15) .............................................................................................................27
SAP HELP – ABAP 7.40 .............................................................................................................................................27
Programas de Exemplo............................................................................................................................................28
Referências .................................................................................................................................................................30

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 3 de 31


2014 © Todos os direitos reservados ITS Group
ABAP Language News para o Release 7.40
Com o advento do Big Data e com a promoção de novos conceitos e adaptações ao que as linguagens de mercado
realizam, a SAP anunciou em 2013 o SAP Netweaver 7.40, juntamente ao upgrade base temos também o upgrade
técnico (Application Server ABAP 7.40)

Em linhas gerais, o que é o AS ABAP 740?

 AS ABAP 7.40 é o sucessor do AS ABAP 7.31 (AS ABAP 7.03), que é o sucessor do AS ABAP 7.02, que é
construído sobre AS ABAP 7.0.
 Como o HANA implementou um novo paradigma para determinação de soluções, a maioria das
necessidades não eram cobertas pela sintaxe do AS 7.31, com isso foi necessária a criação de uma nova
estrutura de solução
 A partir da 7.40 em diante, o ABAP é desenvolvido em support packages que são empacotados com
versões do kernel. O primeiro support package que estava disponível para os clientes foi o SP02 com o
kernel 7.40. Dando sequência tivemos o SP05 com SPs do kernel 741 e atualmente temos o SP08. Além
disso incluído estão por vir, cada um com um kernel do próprio e, portanto, com novas funcionalidades
ABAP.

Figura 1 - Histórico Recente da Linguagem ABAP

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 4 de 31


2014 © Todos os direitos reservados ITS Group
Novas Features – ABAP Language 7.40
Inline Declarations
Temos abaixo um exemplo de como extrair informações do banco de dados e exibi-las para o usuário

Figura 2 - Leitura e Exibição de Dados

Figura 3 – Resultado

A partir da versão 7.20 temos a possibilidade de utilizar expressões nos códigos, expressões (assim como o nome
diz) são responsáveis por expressar algo, um resultado em formato String por exemplo, temos abaixo uma
segunda versão que gera o mesmo resultado:

Figura 4 - Leitura e Utilização de Expressões

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 5 de 31


2014 © Todos os direitos reservados ITS Group
Figura 5 – Resultado

Como podemos ver acima o inicializador | determinou o início de uma expressão, o as chaves {} são utilizadas
para a inserção de variáveis (Helper Variables), se pensarmos, em linhas gerais a expressão gerou internamente
uma variável que possui como valor “Carrier Name: American Airlines”.

A partir do Release 7.40 o conceito de Inline Declarations foi ampliado, temos agora a completa declaração de
objetos complexos de dados, desde variáveis, tabelas internas até como objetos.

Figura 6 - Inline Declarations

No exemplo acima, temos a declaração de uma tabela interna em tempo de execução (T_SCARR), assim como a
declaração de uma workarea (WA_SCARR) com o resultado implícito dos dados que a linha da tabela T_SCARR
possui.

Neste exemplo ainda ocupamos uma estrutura de dados que não será necessária em sua totalidade, que é a
workarea WA_SCARR, no ABAP 7.40 conseguimos usar table expressions que geram resultados em tempo de
execução:

Figura 7 - Table Expressions e Inline Declarations

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 6 de 31


2014 © Todos os direitos reservados ITS Group
Exercícios
Exercício 01 (Solução ZABAP740_SOLT01)
Desenvolva o programa ZABAP740_EXERC01XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare o seguinte tipo em seu programa


TYPES: BEGIN OF y_name_value,
name TYPE string,
value TYPE string,
END OF y_name_value,
y_tname TYPE STANDARD TABLE OF y_name_value WITH EMPTY KEY.

Declare também neste seu programa uma tabela T_NAME_VALUE do tipo Y_TNAME, insira ao menos duas linhas
nesta tabela.

Utilizando a abordagem exibida acima, faça a leitura de uma destas linhas pelo campo NAME e imprima o valor
do campo VALUE.

(Extra): O que acontece quando tentamos efetuar uma leitura de linha que não exista na tabela? Como podemos
tratar isso?

Operador VALUE
Em suma, declarações que são resultados de alguma expressão podem ser gerados em tempo de execução,
utilizando como base o resultado que a expressão gera, no exemplo abaixo temos a declaração de uma tabela
interna como resultado de uma expressão:

Figura 8 - Inline Declarations - Tabelas Internas

Exercícios
Exercício 01 (Solução ZABAP740_SOLT02)
Desenvolva o programa ZABAP740_EXERC02XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare o seguinte tipo em seu programa


TYPES: BEGIN OF y_name_value,
name TYPE string,
value TYPE string,
END OF y_name_value,
y_tname TYPE STANDARD TABLE OF y_name_value WITH EMPTY KEY.

Utilizando a abordagem acima (VALUE), declare uma tabela T_NAME_VALUE do tipo Y_TNAME, inserindo ao
menos duas linhas nesta tabela.

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 7 de 31


2014 © Todos os direitos reservados ITS Group
A partir das possibilidades que o Inline Declarations permite, faça a leitura de uma destas linhas pelo campo
NAME e imprima o valor do campo VALUE.

Operador NEW
Temos agora no ABAP (Finalmente ) o operador NEW, este operador instancia objetos em memória, como por
exemplo classes:

Figura 9 - Inline Declarations - Operador NEW

O operador NEW cria objetos em memória, em um dos exemplos acima, utilizamos a expressão VALUE, que cria
referências por valor e faz atribuição no destino, o exemplo abaixo instancia em tempo de execução uma área de
memória e retorna para a variável a referência genérica deste objeto

Figura 10 - Inline Declarations - Objetos em Memória

Exercícios
Exercício 01 (Solução ZABAP740_SOLT03)
Desenvolva o programa ZABAP740_EXERC03XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare o seguinte tipo em seu programa


TYPES: BEGIN OF y_name_value,
name TYPE string,
value TYPE string,

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 8 de 31


2014 © Todos os direitos reservados ITS Group
END OF y_name_value,
y_tname TYPE STANDARD TABLE OF y_name_value WITH EMPTY KEY.

Utilizando a abordagem acima (NEW) uma referência a dados O_STRUCT do tipo Y_TNAME, inserindo ao menos
duas linhas nesta tabela.

Utilizando a abordagem exibida acima, faça a leitura de uma destas linhas pelo campo NAME e imprima o valor
do campo VALUE.

(Dica): Aqui temos uma referência de dados, neste caso O_STRUCT, nestes casos para fazer manipulações de
dados geralmente trabalhamos com um FIELD-SYMBOL, ou seja, fazemos o ASSIGN para um FIELD-SYMBOL a
partir dos dados que possuímos, e com este ponteiro fazemos a leitura desejada

(Extra): Vimos acima que podemos fazer leituras utilizando Inline Declarations, e também vimos na Dica acima
que podemos utilizar o comando ASSIGN O_STRUCT->* para trabalhar com a estrutura final, será que podemos
tratar os dados a serem exibidos utilizando somente o ASSIGN e adicionarmos a leitura via Inline Declaration
conseguimos ler a informação sem precisar trabalhar com um FIELD-SYMBOL.

Operador REF
Em determinados casos, estamos interessados em enviar uma referência de dados para uma outra referência,
neste caso duas referências apontarão para a mesma área, no caso abaixo temos a criação de uma variável e um
ponteiro da mesma para uma outra referência.

Figura 11 - Operador REF

Na imagem acima, o_output possui referência para a área de memória que vl_output determinou.

Exercícios
Exercício 01 (Solução ZABAP740_SOLT04)
Desenvolva o programa ZABAP740_EXERC04XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare o seguinte tipo em seu programa


TYPES: BEGIN OF y_name_value,
name TYPE string,
value TYPE string,
END OF y_name_value,
y_tname TYPE STANDARD TABLE OF y_name_value WITH EMPTY KEY.

Utilizando a abordagem acima (VALUE) uma tabela T_NAME_VALUE do tipo Y_TNAME, inserindo ao menos duas
linhas nesta tabela.

Crie uma referência a dados utilizando o comando REF, este comando deve receber como parâmetro a tabela
criada acima.

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 9 de 31


2014 © Todos os direitos reservados ITS Group
(Dica): Aqui temos uma referência de dados, nestes casos para fazer manipulações de dados geralmente
trabalhamos com um FIELD-SYMBOL, ou seja, fazemos o ASSIGN para um FIELD-SYMBOL a partir dos dados que
possuímos, e com este ponteiro fazemos a leitura desejada

(Extra): Vimos acima que podemos fazer leituras utilizando Inline Declarations, e também vimos na Dica acima
que podemos utilizar o comando ASSIGN O_STRUCT->* para trabalhar com a estrutura final, será que podemos
tratar os dados a serem exibidos utilizando somente o ASSIGN e adicionarmos a leitura via Inline Declaration
conseguimos ler a informação sem precisar trabalhar com um FIELD-SYMBOL.

Operador CONV
O operador realiza a conversão de dados, este operador recebe os dados de um determinado tipo e os
encapsulam com a tipagem enviada, um caso em que este operador é extremamente útil é quando temos um
determinado tipo de dados e precisamos passar o mesmo para uma chamada de um método, por exemplo.

Figura 12 - Operador CONV

A sintaxe deste operador é CONV <tipo destino>( valor )

Exercícios
Exercício 01 (Solução ZABAP740_SOLT05)
Desenvolva o programa ZABAP740_EXERC05XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare uma variável do tipo I, esta variável deverá receber o número de linhas existentes na tabela SFLIGHT
(COUNT *)

Através do comando MESSAGE, faça a exibição da informação obtida acima, porém como a variável declarada é
do tipo I, uma conversão para um tipo CHAR ou STRING será necessária.

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 10 de 31


2014 © Todos os direitos reservados ITS Group
Operador CAST
O operador CAST realiza o Up-Cast ou o Down-Cast com base no parâmetro enviado

Figura 13 - Operador CAST

Operador COND
O operador COND realiza o retorno (com a criação de um envelope do retorno) baseado em uma série de
condições, este item é extremamente útil para casting em situações cotidianas,

Figura 14 - Operador COND

Exercícios
Exercício 01 (Solução ZABAP740_SOLT06)
Desenvolva o programa ZABAP740_EXERC06XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Declare um parâmetro em tela do tipo I.

Através do comando COND, faça a criação de um retorno do tipo string e faça a avaliação do parâmetro inserido:

 Quando o valor for menor que 10, faça o retorno “Menor que 10”
 Quando o valor estiver entre 10 e 20, faça o retorno “Entre 10 e 20”
 Caso contrário, faça o retorno “Maior que 20”

Através do comando MESSAGE, faça a exibição da informação obtida acima

Operador SWITCH
O operador SWITCH é a forma contraída do CASE, este operador realiza o retorno (também com a criação de um
envelope do retorno) baseado em condições simples

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 11 de 31


2014 © Todos os direitos reservados ITS Group
Figura 15 - Operador SWITCH

Exercícios
Exercício 01 (Solução ZABAP740_SOLT07)
Desenvolva o programa ZABAP740_EXERC07XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Através do comando SWITCH, faça a criação de um retorno do tipo string e faça a avaliação do idioma inserido:

 Quando o valor for ‘D’, faça o retorno ‘DE’


 Quando o valor for ‘E’, faça o retorno ‘EN’
 Quando o valor for ‘P’, faça o retorno ‘PT’

Através do comando MESSAGE, faça a exibição da informação obtida acima

ABAP Objects
Um dos tipos (conceituais) de métodos ABAP são os métodos funcionais, métodos funcionais são métodos que
possuem um parâmetro de retorno (RETURNING), até o release 740 estes métodos só permitiam além do próprio
parâmetro de retorno (RETURNING), parâmetros de importação (IMPORTING).

Neste novo release, este tipo de método consegue utilizar todos os parâmetros possíveis (IMPORTING,
EXPORTING, CHANGING)

Figura 16 - ABAP Objects

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 12 de 31


2014 © Todos os direitos reservados ITS Group
Tabelas Internas
Além do demonstrado acima, temos também novas maneiras de obter dados de uma tabela interna

No item abaixo, temos a leitura da primeira linha de T_FLIGHTS onde CARRID = ‘AA’

Figura 17 - Acesso à Linha de Tabela Interna

No item abaixo, temos a leitura da primeira linha de T_FLIGHTS, esta leitura é feita pelo índice

Figura 18 - Acesso à Linha da Tabela Interna por Índice

No item abaixo, temos a leitura da primeira linha de T_FLIGHTS, esta leitura com o novo comando FOR, este novo
comando realiza uma iteração pelos registros de uma tabela e realiza determinada ação, no caso abaixo a criação
de linhas em outra tabela

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 13 de 31


2014 © Todos os direitos reservados ITS Group
Figura 19 - Acesso à Registro de Tabelas – FOR

No item abaixo, temos a leitura de registros com base no comando FILTER, este comando realiza o filtro de
registros com base em um SET de chaves

Figura 20 - Acesso à Registro de Tabelas – FILTER

Exercícios
Exercício 01 (Solução ZABAP740_SOLT08)
Desenvolva o programa ZABAP740_EXERC08XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Neste programa, faça a inclusão do Include ZABAP740_BASE01.

Crie um SELECT-OPTIONS em tela do tipo SFLIGHT-CARRID

A partir do retorno do método GET_FLIGHTS da classe LCL_FLIGHTS (Classe e métodos incluídos via
ZABAP740_BASE01, faça o filtro dos dados utilizando o comando FOR e exiba em tela com o método estático
DISPLAY da classe CL_DEMO_OUTPUT todas as entradas em que CARRID IN SELECT-OPTIONS criado em tela

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 14 de 31


2014 © Todos os direitos reservados ITS Group
Exercício 02 (Solução ZABAP740_SOLT09)
Desenvolva o programa ZABAP740_EXERC09XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Neste programa, faça a inclusão do Include ZABAP740_BASE02.

Crie um PARAMETER em tela do tipo SFLIGHT-CARRID

A partir do retorno do método GET_FLIGHTS da classe LCL_FLIGHTS (Classe e métodos incluídos via
ZABAP740_BASE02, faça o filtro dos dados utilizando o comando FILTER e exiba em tela com o método estático
DISPLAY da classe CL_DEMO_OUTPUT todas as entradas em que a CHAVE CARRID_KEY ONDE CARRID EQ
PARAMETER criado em tela

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 15 de 31


2014 © Todos os direitos reservados ITS Group
Novas Features – ABAP Language 7.40 – OPEN SQL
Como a própria imagem da página 3 diz, o release 7.40 é conhecido como ABAP for HANA, isso significa que a
maioria das ampliações foram feitas para otimizar o acesso aos dados deste banco em memória.

A partir do SP5 foram adicionadas extensões ao OPEN SQL, permitindo que o desenvolvedor possa realizar o
denominado Code PushDown.

Figura 21 - Code PushDown

Code PushDown significa delegar cálculos intensos que envolvam os dados extraídos para a camada de banco de
dados, se discutirmos isso levando somente em conta os bancos de dados relacionais de mercado, cometeríamos
um crime contra as boas práticas, pois estes não possuem plenas capacidades computacionais para realizar estes
cálculos ou até mesmo não possuem o hardware necessário.

Devemos utilizar este paradigma para realizar cálculo de valores que envolvam diretamente os dados
selecionados, isso acelera o resultado a ser obtido, isso significa que nem todos os cálculos será portados para a
camada de banco de dados.

Com o Hana tal característica é possível, o seu modelo de banco, assim como o hardware envolvido são
poderosos o suficiente para adotarmos este paradigma.

Figura 22 - Code PushDown

As novas features podem ser utilizadas em tabelas já existentes (BKPF/BSEG), assim como visões que foram
criadas no Hana, abaixo temos as principais novidades.

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 16 de 31


2014 © Todos os direitos reservados ITS Group
Boas Práticas
Recomenda-se a utilização da vírgula para a separação das colunas a serem lidas, mais abaixo veremos que a
complexidade de leitura de um SELECT feito aumentou consideravelmente, a vírgula melhora a leitura do que foi
escrito, além de ser obrigatória para certos casos (como quando utilizamos as host variables com o @)

São conhecidas como host variables o conjunto de objetos que residem na camada de aplicação, como por
exemplo uma tabela interna, uma variável, etc.

Em determinados casos, como quando utilizamos a criação dinâmicas de variáveis com o construtor DATA, a
utilização da @ se faz obrigatória.

Constantes
A partir do release 740 podemos utilizar constantes como retorno de informações em seleções de dados, o
exemplo abaixo demonstra a utilização de constantes

Figura 23 – Constantes

Figura 24 - Resultado

No caso acima, definimos uma coluna flight_exists com o valor de uma constante, neste caso com o valor
ABAP_TRUE

Operadores Aritméticos
Conseguimos agora criar expressões aritméticas a partir de valores que estão relacionados a seleção em questão

Figura 25 - Seleção de Dados

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 17 de 31


2014 © Todos os direitos reservados ITS Group
Figura 26 – Resultado

No item acima, estamos interessados em saber o valor total (FLIGHT_TOTAL) com base no preço (PRICE)
multiplicado pelos assentos ocupados de cada classe (SEATSOCC, SEATSOCC_B, SEATSOCC_F), o resultado é a
soma destes valores, a sintaxe deste comando é:
[-] operand1 +|-|*|/ [-]operand2 [+|-|*|/ [-] operand3 ... ] ...

Exercícios
Exercício 01 (Solução ZABAP740_SOLT10)
Desenvolva o programa ZABAP740_EXERC10XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Exibir as colunas CARRID, CONNID, FLDATE e a somatória de assentos ocupados (SEATSOCC, SEATSOCC_B e
SEATSOCC_F como uma nova coluna chamada OCCUPIED_SEATS ) do vôo (SFLIGHT) onde CARRID = ‘AA’

Expressões Aritméticas
Conseguimos utilizar operações aritméticas para obter determinados resultados, estas expressões são uteis
quando devemos realizar conversões de dados a partir de informações já obtidas no banco de dados, as seguintes
expressões estão disponíveis:

Figura 27 - Expressões Possíveis

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 18 de 31


2014 © Todos os direitos reservados ITS Group
Figura 28 - Expressões Aritméticas

Figura 29 – Resultado

Neste caso arredondamos o resultado para obter o preço mais baixo (FLOOR).

Exercícios
Exercício 01 (Solução ZABAP740_SOLT11)
Desenvolva o programa ZABAP740_EXERC11XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Exibir as colunas CARRID, CONNID, FLDATE e o valor do preço sem centavos (PRICE) dos vôos (SFLIGHT)

Strings – Operador &&


Podemos concatenar resultados da seleção de dados que envolvam caracteres afim de gerar um outro resultado

Figura 30 - Operador &&

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 19 de 31


2014 © Todos os direitos reservados ITS Group
Figura 31 – Resultado

Neste caso, estamos interessados em concatenar o primeiro e o segundo nome do cliente para gerar uma nova
coluna (FULL_NAME)

Exercícios
Exercício 01 (Solução ZABAP740_SOLT12)
Desenvolva o programa ZABAP740_EXERC12XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Exibir as colunas ID, ( FORM, NAME, STREET, POSTBOX e POSTCODE – separados por espaço ) como uma única
coluna FULL_CUSTOMER da tabela SCUSTOM

Colunas – Operador COALESCE


O operador COALESCE recebe como argumento dois valores e retorna o primeiro caso o mesmo não seja NULO,
caso contrário retornará o segundo

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 20 de 31


2014 © Todos os direitos reservados ITS Group
Figura 32 – COALESCE

Figura 33 - Resultado

Neste caso as correspondências não localizadas na tabela DEMO_JOIN2 são preenchidas com ‘—‘ no resultado

Colunas – Operador CASE


O operador CASE é muito interessante para retorno de resultados baseados em características

Figura 34 - Validação de Segundo Nome

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 21 de 31


2014 © Todos os direitos reservados ITS Group
Figura 35 – Resultado

Exercícios
Exercício 01 (Solução ZABAP740_SOLT13)
Desenvolva o programa ZABAP740_EXERC13XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Exibir a tabela SCARR, colunas CARRID, CARRNAME e com o operador CASE validar (Retornar uma coluna de nome
CURRENCY:

 Se SCARR~CURR = ‘USD’ -> Retornar ‘Dólar’


 Senão -> Retornar ‘Outra Moeda’

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 22 de 31


2014 © Todos os direitos reservados ITS Group
Visões CDS – Seleção de Dados
As visões CDS (Core Data Services) são visões criadas utilizando o ADT (ABAP Development Tools), estas visões,
quando criadas espelham a sua definição na camada ABAP, isso significa que uma vez criada visão CDS, esta é
criada no ABAP como uma definição e também é criada no Hana.

O seguinte exemplo demonstra esta definição:

Figura 36 - Definição de Visão

Na imagem acima, estamos criando no Hana a visão DEMO_CDS_PARAMETERS, esta visão seleciona dados da
tabela SPFLI, esta visão expõe 03 parâmetros de restrição:

 P_DISTANCE_L e P_DISTANCE_O para o campo DISTANCE


 P_UNIT para o campo DISTID

A seleção abaixo realiza a seleção e exibição dos dados:

Figura 37 - Seleção de Visões Hana

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 23 de 31


2014 © Todos os direitos reservados ITS Group
Figura 38 - Resultado

A Annotation feita na criação da visão (@AbapCatalog.sqlViewName) define a criação do objeto no ABAP


Dictionary, neste caso teremos a definição DEMO_CDS_PARA

Figura 39 - Visão Criada

Figura 40 - Visão Criada

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 24 de 31


2014 © Todos os direitos reservados ITS Group
Exercícios
Exercício 01 (Solução ZABAP740_SOLT14)
Desenvolva o programa ZABAP740_EXERC14XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Crie um parâmetro para que o usuário informe a unidade (SPFLI-DISTID)

Crie dois parâmetros para que o usuário informe a distância mínima e máxima a ser localizada

Exibir a view Hana DEMO_CDS_PARA todas as colunas onde

 P_DISTANCE_L = Distância Mínima de Tela


 P_DISTANCE_O = Distância Máxima de Tela
 P_UNIT = Unidade da Tela

IDA ALV – Seleção de Dados


A maioria dos relatórios que são exibidos no SAP envolvem a utilização do ALV clássico, seja ele o invocado via MF
REUSE_ALV_GRID_DISPLAY ou pela classe CL_GUI_ALV_GRID, todos estes processos seguem as mesmas
premissas, ou seja, consumimos os dados de uma base de dados, realizamos algumas tratativas e fazemos a
exibição do mesmo para o usuário.

Afim de promover o code pushdown também de seus produtos, a SAP desenvolveu o ALV com acesso integrado
de dados (Em inglês seria ALV with Integrated Data Access – ALV with IDA), neste ALV, temos todas as operações
feitas diretamente na camada de banco de dados, além da seleção de dados, as operações de paginação,
ordenação, agrupamento são todas feitas no layer do banco de dados também.

Em bancos como o Hana, isso traz um ganho considerável em performance, pois não dependemos da máquina do
usuário e a sua capacidade de processamento para realizar este tipo de tarefa.

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 25 de 31


2014 © Todos os direitos reservados ITS Group
O item abaixo demonstra a simples exibição de uma tabela utilizando IDA

Figura 41 - ALV IDA

Podemos enviar parâmetros de tela para composição da seleção a ser feita

Figura 42 - ALV IDA

Podemos habilitar também a utilização de buscas de textos (Fuzzy Search) para colunas do ALV

Figura 43 - ALV IDA

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 26 de 31


2014 © Todos os direitos reservados ITS Group
Exercícios
Exercício 01 (Solução ZABAP740_SOLT15)
Desenvolva o programa ZABAP740_EXERC15XX (XX = Número do Aluno), este programa deverá possuir o
seguinte:

Crie um SELECT-OPTIONS para que o usuário informe a Companhia Aérea (SBOOK-CARRID)

Crie uma instância ALV IDA invocando o método estático CREATE da classe CL_SALV_GUI_TABLE_IDA, enviando
como parâmetro ‘SBOOK’

Adicione o SELECT-OPTIONS definido acima como restrição dos dados

Habilite a busca textual para os campos: ‘CONNID ‘, ‘BOOKID’ e ‘PASSNAME’

Exiba o relatório

SAP HELP – ABAP 7.40


No endereço http://help.sap.com/abapdocu_740/en/index.htm temos a maioria dos itens mencionados, com
exemplos de cada novidade, as sessões que sofreram mais alterações foram “Processing Internal Data” e
“Processing External Data”

Figura 44 - Internal Data

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 27 de 31


2014 © Todos os direitos reservados ITS Group
Figura 45 - External Data

Os links abaixo possuem dicas úteis das novidades:

http://scn.sap.com/community/abap/blog/2013/07/22/abap-news-for-release-740

http://scn.sap.com/community/abap/blog/2014/02/06/abap-news-for-release-740-sp05

http://scn.sap.com/community/abap/blog/2014/10/13/abap-language-news-for-release-740-sp08

Programas de Exemplo
Programa: ZABAP740_DEMO01 - Inline Declaration - Jeito Antigo

Programa: ZABAP740_DEMO02 - Inline Declaration - Jeito Antigo - 702

Programa: ZABAP740_DEMO03 - Inline Declaration - Novo Jeito

Programa: ZABAP740_DEMO04 - Inline Declaration - Novo Jeito + Table Expressions

Programa: ZABAP740_SOLT01 - Solução do Exercício 01

Programa: ZABAP740_DEMO05 - Inline Declaration - Novo Jeito + Table Expressions + Criação em Tempo de
Execução

Programa: ZABAP740_SOLT02 - Solução do Exercício 02

Programa: ZABAP740_DEMO06 - Inline Declaration - Novo Jeito + Table Expressions + Operador NEW para Classes

Programa: ZABAP740_DEMO07 - Inline Declaration - Novo Jeito + Table Expressions + Operador NEW para
Objetos em Memória

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 28 de 31


2014 © Todos os direitos reservados ITS Group
Programa: ZABAP740_SOLT03 - Solução do Exercício 03

Programa: ZABAP740_DEMO08 - Operador REF

Programa: ZABAP740_SOLT04 - Solução do Exercício 04

Programa: ZABAP740_DEMO25 - Operador CONV

Programa: ZABAP740_SOLT05 - Solução do Exercício 05

Programa: ZABAP740_DEMO09 - Operador CAST

Programa: ZABAP740_DEMO10 - Operador COND

Programa: ZABAP740_SOLT06 - Solução do Exercício 06

Programa: ZABAP740_DEMO11 - Operador SWITCH

Programa: ZABAP740_SOLT07 - Solução do Exercício 07

Programa: ZABAP740_DEMO12 - ABAP Objects

Programa: ZABAP740_DEMO13 - Tabelas Internas - Acesso por Critério

Programa: ZABAP740_DEMO14 - Tabelas Internas - Acesso por Índice

Programa: ZABAP740_DEMO15 - Tabelas Internas - Iteração de Registros

Programa: ZABAP740_DEMO16 - Tabelas Internas - Filtros

Programa: ZABAP740_SOLT08 - Solução do Exercício 08

Programa: ZABAP740_SOLT09 - Solução do Exercício 09

Programa: ZABAP740_DEMO17 - Seleção de Dados - Constantes

Programa: ZABAP740_DEMO18 - Seleção de Dados - Operadores Aritméticos

Programa: ZABAP740_SOLT10 - Solução do Exercício 10

Programa: ZABAP740_DEMO19 - Seleção de Dados - Funções Aritméticas

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 29 de 31


2014 © Todos os direitos reservados ITS Group
Programa: ZABAP740_SOLT11 - Solução do Exercício 11

Programa: ZABAP740_DEMO20 - Seleção de Dados - Strings

Programa: ZABAP740_SOLT12 - Solução do Exercício 12

Programa: ZABAP740_DEMO21 - Seleção de Dados - COALESCE

Programa: ZABAP740_DEMO22 - Seleção de Dados - CASE

Programa: ZABAP740_SOLT12 - Solução do Exercício 13

Programa: ZABAP740_DEMO23 - Seleção de Dados - Hana View com Parâmetros

Programa: ZABAP740_DEMO24 - ALV IDA

Programa: ZABAP740_DEMO26 - ALV IDA com Parâmetros

Programa: ZABAP740_DEMO27 - ALV IDA com Parâmetros - Fuzzy Search

Referências
Alguns livros que são muito bons e trazem as novidades da linguagem e sobre o Hana:

ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 30 de 31


2014 © Todos os direitos reservados ITS Group
ITS GROUP – INSPIRANDO EMPRESAS A CRESCER Página 31 de 31
2014 © Todos os direitos reservados ITS Group

Вам также может понравиться