abap oberdan

Upload: oberdan-oliveira-fonseca

Post on 01-Mar-2018

272 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 ABAP Oberdan

    1/145

    ABAP 101Sua porta de entrada para o mundo ABAP.

    Pular para o contedo

    INCIO

    SOBRE O ABAP 101

    SOBRE O AUTOR

    Criando o Programa ABAP Hello World

    Criando um Programa Calculadora Verso Report

    Criando Uma Transao de ReportPublicado emsetembro 7 !""7#$ coment%rio

    PROBLEMACriar uma transa&o e associar o programa 'H())*+

    SOLUO

    V% at, o Object Navigator-.(/"0+ 1a %rea de na2ega&o escol3a o tipo deob4eto Program+ 5igite o nome do programa 'H())* e tecle enter+ * programa

    'H())* aparacer% logo abai6o da %rea de na2ega&o+

    Cliue com o boto direito e acesse Create 89 :ransaction;

    https://abap101.wordpress.com/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/#contenthttps://abap101.wordpress.com/https://abap101.wordpress.com/about/https://abap101.wordpress.com/sobre-o-autor/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/09/08/criando-um-programa-calculadora-versao-report/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/#commentshttps://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/#contenthttps://abap101.wordpress.com/https://abap101.wordpress.com/about/https://abap101.wordpress.com/sobre-o-autor/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/09/08/criando-um-programa-calculadora-versao-report/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/https://abap101.wordpress.com/2007/09/07/criando-uma-transacao-de-report/#commentshttps://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/
  • 7/25/2019 ABAP Oberdan

    2/145

    (scol3a um nome para a transa&o; ':H())* e escol3a o tipo de

    transa&oProgram and .election .creen -Report :ransaction0;

    (ntre com o nome do programa marcar todas as op&? .upport e

    sal2e;

  • 7/25/2019 ABAP Oberdan

    3/145

    1ota; Para @naliar a gra2a&o , necess%rio associar um pacote-$0 e

    uma c3ange reuest+ -!0

    EXECUO E TESTEPara testar abra uma no2a sesso -enu; .Dstem 89 Create .ession0 e na %rea

    de comando entre com o nome da no2a transa&o e tecle (nter;

    https://abap101.wordpress.com/2007/08/29/criando-packages/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/29/criando-packages/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/
  • 7/25/2019 ABAP Oberdan

    4/145

    DISCUSSO(6istem di2ersos tipos de programas em ABAP o programa ue criamos , um

    relatErio+ 5e2emos escol3er o tipo correcto de programa caso contr%rio a

    transa&o no Funcionar%+

    * nmero da screen do relatErio , $""" 2alor padro para programas do tipo

    report+

    G poss2el associar uma 2ariante padro ou se4a uando a transa&o Foi

    c3amada o programa ser% e6ecutado usando a 2ariante especi@cada+

    As op&? .upport ati2a o suporte da transa&o aos I tipos de .AP =>?

    para H:)Ja2ae WindoKs+

    Criando o Programa ABAP Hello World

    Publicado emagosto I" !""7# L Coment%rios

    https://abap101.wordpress.com/2007/08/21/instalando-e-configurando-o-sapgui-para-linux/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/#commentshttps://abap101.wordpress.com/2007/08/21/instalando-e-configurando-o-sapgui-para-linux/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/https://abap101.wordpress.com/2007/08/30/criando-o-programa-abap-hello-world/#comments
  • 7/25/2019 ABAP Oberdan

    5/145

    PR*B)(A

    Criar um programa ABAP e imprimir na tela MHello WorldNO+

    .*)>Q*

    V% at, o Object Navigator-.(/"0+ 1a %rea de na2ega&o escol3a o tipo de

    ob4eto Program+ 5igite o nome do programa 'H())* e tecle enter+

    .e no e6istir nen3um programa com o nome escol3ido ser% aberto uma no2a

    4anela perguntando se dese4a criar+

    .e 2oc escol3er a op&o Ses para criar um no2o programa outra 4anela ,

    aberta+ :ire o Tag MW3it :*P8?ncludeO e con@rme+ .er% aberto mais outr 4anela

    para escol3er os atributos do no2o programa+

  • 7/25/2019 ABAP Oberdan

    6/145

    (ntre com uma descri&o e escol3a o tipo de programa e6ecut%2el+ .al2e oprograma em uma reuest e inclua o o seguinte cEdigo no programa;

    Write 'Hello World!'.

  • 7/25/2019 ABAP Oberdan

    7/145

    .al2e -Ctrl8.0 ati2e -.3iFt8U/0 e se no 3ou2er nen3um erro e6ecute o

    programa -U/0+

  • 7/25/2019 ABAP Oberdan

    8/145

    5?.C>..Q*

    (sse , o programa mais simples em ABAP+ :odos os ob4etos criados pelo usu%rio

    come&am com ' ou S -comumente usado para programas de sistema0+

    * comando Krite , respons%2el por imprimir na sada do programa+ Para 2er

    maiores detal3es do comando posicione o cursor sobre o comando e pressione

    MU$O+

    Voc tamb,m pode usar a transa&o .(I/ para criar e modi@car seusprogramas+

    $

    Criando PackagesPublicado emagosto ! !""7# $ coment%rio

    PROBLEMACriar um pacage -pacote0 'PXABAP$"$ para organiar os programas

    desen2ol2idos do ABAP $"$+

    SOLUOV% at, o *b4ect 1a2igator -.(/"0+ 1a %rea de na2ega&o escol3a o tipo de

    ob4eto Pacage+ 5igite o nome do pacage 'PXABAP$"$ e tecle enter+

    https://abap101.wordpress.com/2007/08/29/criando-packages/https://abap101.wordpress.com/2007/08/29/criando-packages/https://abap101.wordpress.com/2007/08/29/criando-packages/#commentshttps://abap101.wordpress.com/2007/08/29/criando-packages/https://abap101.wordpress.com/2007/08/29/criando-packages/#comments
  • 7/25/2019 ABAP Oberdan

    9/145

    .e no e6istir nen3um pacote com o nome escol3ido ser% aberto uma no2a

    4anela perguntando se dese4a criar+

    .e 2oc escol3er a op&o de criar um no2o pacote outra 4anela , aberta para

    escol3er os atributos do no2o pacote+

    (scol3a os atributos e sal2e o pacote em uma reuest+

    DISCUSSO*s ob4etos .AP so organiados em pacages ou pacotes+ =eralmente os

    pro4etos possuem um pacote por mEdulo -U? .5 etc+0+ :amb,m podemos

    ter 2%rios pacotes para o mesmo mEdulo ou ualuer outro crit,rio decidido

    pelo gerente ou lider do pro4eto+

    Por e6emplo na cria&o de um no2o ambiente pode8se escol3er uais pacotes

    Faro parte do no2o ambiente+

    *u se4a os pacages so uma subdi2iso lEgica dos ob4etos dentro do

    repositErio de ob4etos no sistema+ * pacage o ual um ob4eto pertence no

    tem a menor inTuncia em seu Funcionamento sendo assim um programa do

    mEdulo de U? pode ser gra2ado em um pacote do mEdulo de por engano

    sem ue isso aFete o Funcionamento do programa+

  • 7/25/2019 ABAP Oberdan

    10/145

    *s atributos de um pacage podem ser;

    Application Component 5etermina ual application component dentro da

    3ieraruia de componentes do repositEri o pacote Far% parte+

    Software Component Para desen2ol2imentos customiados -ue comecem

    com a letra '0 de2e ser sempre MH*(O+

    Transport Layer 5etermina se o pacage pode ser transportado para outro

    ambiente e de@ne ual , esse ambiente+

    Package Type Voc pode escol3er entre;

    .tandard Pacage; pode conter ob4etos do repositErio e outros pacagesY

    ain Pacage; cont,m apenas outros pacagesY

    .tructure Pacage; cont,m apenas outros pacages to tipo ain

    Pacage+VEJA TAMBM

    Criando C3ange Reuests de Worbenc3

    ***2 Criando Change Requests de WorkbenchPublicado emagosto !/ !""7# I Coment%rios

    PROBLEMA

    Criar uma c3ange reuest para ser usada por no2os programas+

    SOLUOAcessar o :ransport *rganier -.(" ou .($"0;

    https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/#commentshttps://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/https://abap101.wordpress.com/2007/08/28/criando-change-requests-de-workbench/#comments
  • 7/25/2019 ABAP Oberdan

    11/145

    Clicar no boto Create ou UZ e escol3er Worbenc3 reuest;

    Atributos da c3ange reuest;

    C3ange reuest criada;

  • 7/25/2019 ABAP Oberdan

    12/145

    DISCUSSO

    *s sistemas .AP so geralmente separados em um ambiente dedesen2ol2imento outro de [ualidade e outro de Produ&o+ (sses ambientes so

    totalmente independentes na maior parte dos casos instalados em m%uinas

    diFerentes+

    Para se transportar um ob4eto do repositErio de um ambiente para o outro usa8

    se as c3amadas c3ange reuests+ 1o dia8a8dia do desen2ol2edor ABAP as

    c3ange reuests mais usadas podem ser do tipo MCustomaingO ou

    MWorbenc3O+

    As c3ange reuests do tipo Customaing so reser2adas para transportar

    contedo de tabelas do tipo customaing+ (ssas tabelas cont,m inForma&

  • 7/25/2019 ABAP Oberdan

    13/145

    Criando um Programa Calculadora erso ReportPublicado emsetembro / !""7#! Coment%rios

    PROBLEMACriar um programa ABAP ue receba dois 2alores digitados pelo usu%rio e

    e6ecute as uatro opera&

  • 7/25/2019 ABAP Oberdan

    14/145

    A listagem completa do programa 2oc encontra na se&o Ane6os+

    EXECUO E TESTE(6ecute o programa -U/0 e entre os seguintes na tela de sele&o;

    (6ecute o rel%torio -U/0 e 2oc de2er% obter uma sada parecida com a descrita

    abai6o;

  • 7/25/2019 ABAP Oberdan

    15/145

    1o esue&a de testar tamb,m o caso de uma opera&o in2%lida e um caso de

    di2iso por ero+

    DISCUSSO1esse simples programa 4% 2emos uma s,ria de elementos comuns em

    programa ABAP+

    A primeira tela do programa , c3amada de :ela de .ele&o -.election .creen0

    onde o usu%rio entra com os par\metros ue sero utiliados no relatErio+

    >m dos comandos usados para desen3ar a tela de sele&o , a instru&o

    PARA(:(R.+ >samos a Forma mais simples ainda 3% muitas outras

    possibilidades ue discutiremos mais a Frente+

    5eclaramos 2ari%2eis com o comando 5A:A indicando o nome da 2ari%2el e o

    tipo+ 1o nosso programa usamos somente tipos primiti2os mas as

    possibilidades so ilimitadas 4% ue o ABAP *b4ects , Fortemente tipado+

    *s tipos padro usados no ABAP *b4ect so;

    :ipos completos sem necessidade de complemento;

    5 5ata no Formato AAAA55 com taman3o @6o de /Y

    : :empo no Formato HH.. com taman3o @6o de /Y

    ? ?nteiro taman3o @6o de ]Y

    U 1mero de ponto Tutuante taman3o @6o de /Y

    .:R?1= Cadeia de caracteres sem taman3o @6oY

    ^.:R?1= Cadeia de caracteres -He6adecimal0 sem taman3o @6oY

    :ipos incompletos;

    C Caracter string podendo ter um complemento por e6emplo a

    intru&o MDATA vl_var(4) TYPE C.MY

    1 Caracter num,rico com caractersticas de caracter e nmeroY

    ^ .e_ncia de bDtes -He6adecimal0Y

    P Pacage+

    Para imprimir o 2alor na tela usamos a instru&o WR?:(+

  • 7/25/2019 ABAP Oberdan

    16/145

    >samos duas estruturas de deciso a ?U`().(?U`().(`(15?U para 2eri@car a

    opera&o escol3ia e se 3% di2iso por ero e CA.( para escol3er a opera&o+

    (ssa 2eri@ca&o de di2iso por ero , necess%ria para e2itar um poss2el erro

    em tempo de e6ecu&o no caso de uma di2iso por ero+ Poderamos tamb,m

    usar (6ceptions mas discutiremos no Futuro+

    1o caso de uma opera&o in2%lida tamb,m poderamos usar a seguinte

    constru&o no lugar o ?U;

    CASE p_op.

    WEN OTE!S.

    W!"TE# $No vali% operatio&'(iop).

    ENDCASE.

    A op&o *:H(R. signi@ca ue se nen3uma das alternati2as do WH(1 Foi

    satisFeita o op&o *:H(R. , e6ecutada+ (nto se a opera&o escol3ida no Foi

    2%lida o WH(1 *:H(R. , e6ecutado e a mensagem de erro , impressa na

    sada do programa+

    A segunda tela , onde , apresentado a sada do programa comandos WR?:(+

    Modelo de Dados do SAP Flight Model

    Publicado emsetembro !$ !""7# Coment%rios desati2adosem odelo de 5ados do .APUlig3t odel

    * .AP Ulig3t odel , o modelo de dados usado em um sistema muito

    simpli@cado de controle de reser2as de 2os+

    (sse modelo , utiliado em uase todos os e6erccios e demonstra&

  • 7/25/2019 ABAP Oberdan

    17/145

    * .U , composto por ] tabelas transparentes .CARR .PU)? .U)?=H: e

    .B** com o seguinte relacionamento;

    SCA!! Cont,m as inForma&

  • 7/25/2019 ABAP Oberdan

    18/145

    Para criar algum ob4eto de dado no ABAP 2oc utilia o comando 5A:A;

    DATA v_te-to(/) TYPE c 0A1E $Objeto %e Da%o23.

    1essa declara&o , criado um ob4eto de dado -uma 2ari%2el0 2Xte6to decomprimento !" caracteres com 2alor inicial M*b4eto de 5adosO+

    5a mesma maneira para criar 2ari%2eis para opera&

  • 7/25/2019 ABAP Oberdan

    19/145

    .U)?=H: e tamb,m um o campo 5?UU uem cont,m a diFern&a+ 5epois de

    todas as diFern&as calculadas imprimimos o resultado na sada do programa;

    1a listagem ! temos o uso da intru&o :SP(. ue , usada para criar tipos

    locais+ (sses tipos somente podem ser utiliados no program no ual ele Foi

    declarado nesse caso ':SP($+

    Como tipos locais temos tDXsXsTig3tXdiF descre2e uma estrutura de dados

    etDXtXsTig3tXdiF uma tabela interna com a estrutura de tDXsXsTig3tXdiF+ Paradeclararmos um tipo estruturado local usando B(=?1 *U ` (15 *U+

    J% os tipos globais podem ser pro2enientes do dicion%rio de dados do .AP+ 1o

    programa ':SP($ usamos alguns tipos globais como a tabela .U)?=H e alguns

    de seus campos como sTig3t8carrid sTig3t8connid etc+ *s tipos globais podem

    ser usados -5A:A :SP(+0 em ualuer programa o sistema no 3%

    necessidade de nen3uma declara&o no programa+

  • 7/25/2019 ABAP Oberdan

    20/145

    [uando usamos o :SP( com uma tabela transparente -tabela de banco de

    dados0 o ob4eto de dado declarado ser% uma Korarea com a estrutura da

    tabela transparente+ Por outro lado uando usamos :SP( :AB)( *U estamos

    declarando uma tabela interna com estrutura da tabela transparente+

    Ve4a essa parte do programa ':SP($+

    DATA# _25ig6t TYPE 25ig6t78a2

    t_25ig6t TYPE TA+E O 25ig6t7

    :emos uma Korarea KXsTig3t e uma internal table tXsTig3t com estrutura databela transparente .U)?=H:+

    Por ltimo temos a seguinte declara&o de 2ari%2el;

    DATA# v_%i9 ",E _25ig6t_%i:;%i9.

    * )?( indica ue o ob4eto de dado declarado possui o mesmo tipo de outro

    ob4eto de dado 4% declarado podendo este ser local ou global+

    1o caso acima a 2ari%2el 2Xdi possui o mesmo tipo do campo da

    KorareaKXsTig3tXdiF8di ou se4a sTig3t8seatsma6+

    Agora 4% sabemos uando usar :SP( )?( e B(=?1 *U+

    &o'( tem medo de ensinar%

    Publicado em4aneiro $$ !""/# ! Coment%rios

    :rabal3o com pro4etos .AP especi@camente ABAP 3% cerca de 7 anos+ >ma

    pr%tica muito comum , a @gura do MsombraO+ * sombra , auele consultor

    4nior -geramente no seu primeiro pro4eto0 ue , alocado a um pro4eto sem

    cobrar as suas 3oras do cliente+

    Com isso a sua consultoria consegue treinar um no2o consultor em situa&

  • 7/25/2019 ABAP Oberdan

    21/145

  • 7/25/2019 ABAP Oberdan

    22/145

    de desen2ol2imento sou intrutor ABAP+ A 2ontade de ensinar abriu8me no2as

    portas al,m da consultoria+

    Cuidado se 2oc pensa como meu amigo pro2a2elmente logo ser%

    ultrapassado por esse consultor 4nior ue est% do seu lado a@nal de contaspara o meu amigo a sua nica preocupa&o ,;

    2e 8e

  • 7/25/2019 ABAP Oberdan

    23/145

    1o 3% uma e6plica&o @nal para os conceitos de orienta&o a ob4eto+ Voc ter%

    ue estudar 2%rias Fontes para c3egar as duas prEprias conclus

  • 7/25/2019 ABAP Oberdan

    24/145

    todo pro@ssional .AP de2e con3ecerM escritos pelo meuamigo :3iago *uri2es ue agora nos l diretamente do Futuro+

    1o , preciso muita 2iso para notar ue tal lista de

    e6igncias sE cresce+ G Fato ue algumas e6ignciasestrapolam para coisas no8relacionadas a %rea de atua&onormal de um ABAP como 4% citado no polmico postMVerdade .e4a 5ita M*portunidades ABAP A))O+ A ideia destepost , abordar a import\ncia do Uiori ue na min3a 3umildeopinio se encai6aSIM na lista de sills ue um ABAP de2eter+

    Mas o *+, - o .&o/&=oogle it+ .C1 it+

    J+s&%a&asAgora ue 2oc 4% sabe o ue , o Uiori gostaria de dar

    algumas 4usti@cati2as para embasar a ideia de ue isso ,problema do ABAP+

    1o Fundo , Uront (nd

    Uiori , Famoso pela sua simplicidade -para o usu%rio0 nae6perincia -de no2o para o usu%rio0 e no Foco do trabal3o-para uemf Para o usu%rio0+ Para ue o dito cu4o ten3a isso

    tudo alguns tem ue pagar algum pre&o+ Para Faer umaaplica&o responsi2a de bom gosto ue apliue as mel3orespr%ticas de acordo com o Uiori 5esign =uidelines, precisoalgum con3ecimento de desen2ol2imento Front endob2iamente incluindo >?L+

    ( uem 2oc ac3a ue est% mais perto em con3ecerdesen2ol2imento na esFera .AP do ue o desen2ol2edor

    ABAPf 1o 2ou entrar no m,rito de Mpessoas no2asO pore6emplo desen2ol2edores Front end de outras tecnologias

    http://abap101.com/2015/06/03/brfplus-a-ferramenta-que-todo-profissional-sap-deve-conhecer/http://abap101.com/2015/09/10/verdade-seja-dita-oportunidades-abap-all/https://experience.sap.com/fiori-design/http://abap101.com/2015/06/03/brfplus-a-ferramenta-que-todo-profissional-sap-deve-conhecer/http://abap101.com/2015/09/10/verdade-seja-dita-oportunidades-abap-all/https://experience.sap.com/fiori-design/
  • 7/25/2019 ABAP Oberdan

    25/145

    entrarem no mundo .AP este tipo de discusso al,m de noser o Foco , simpli@car demais o assunto+ Uiori no , Feitoapenas de um Front end Feito em >?L+ as isso passa sim porsaber desen2ol2er aplica&

  • 7/25/2019 ABAP Oberdan

    26/145

    ; A$inal.. se hou/esse mesmo este per$il pro$issional no/o entitulado

    ate?ay.. e 'onhe'er >ate?ay passa por

    'onhe'er ABAP 0e 65ST diga@se de passagem2. !ogo 1 mais $'il serum ABAP ue /ai l e aprende.

    as uantos ABAPers sabem =ateKaDf

    [uantos ABAPers 3o4e con3ecem >?Lf

    [ual a propor&o de ABAPers ue sabem o ue ,

    R(.:`o5ataf

    [uantos con3ecem os I itens acima 4untosf0Ahh; /amos ignorar o $ato de mais da metade das apli'a+es Fiori

    reuerem 'onhe'imentos em HAA neste item2

    Ho-e a minha sensa+,o 1 ue a minoria dos pro$issionais tem tal

    per$il. 5 n,o estou *us'ando 'ulpados. 5stou apenas diendo o ue

    sinto lendo o ue /e-o e ou/indo o ue es'uto.

    5 ual a solu+,o%

    6esumo tomando emprestada parte do 'omentrio $antsti'o do

    CustEdio es'rito re'entemente no ABAPom*ieG

    () Pra i22o a 2ol

  • 7/25/2019 ABAP Oberdan

    27/145

    ate?ay tam*1m tendem a

    ser simpli$i'adas; mas estas mudan+as s,o ainda ne*ulosas para

    mim.5 pensar ue tem 'onsultoria *us'ando gente para implantar 0e n,o

    implementar2 L ou R apps 'omo parte de um pro-eto de meses

    6e$er(n'ias *i*liogr$i'a

    Apesar de ainda n,o ter lido o li/ro do Maur'io

  • 7/25/2019 ABAP Oberdan

    28/145

  • 7/25/2019 ABAP Oberdan

    29/145

    B3 UhB?* PA=*:?4 F5B6UA63 7I 789:

    Compartil3eN

    Passou o carna2alN Ueli ano no2oN* ABAP$"$ , um site ue mesmo uando um pouco paradome surpreende+ * site 2ai completar / anos em !"$L+ ?ssomesmo / anos+ >ma das coisas ue mais me impressiona ,como at, os posts mais antigos do site escritos pelo Uurlanainda tem uma uantidade imensa de acessos+ Como osensinamentos de como procurar e implementar

    BAd?eentendendo o Uor All (ntriesainda so to atuais no ,mesmof .em Falar no 2deo de instala&o do inisapue Facom ue praticamente a ualuer 3ora do dia algu,m este4a2endo o ABAP$"$ mundo aFora+

    Ho4e notei ue uma das p%ginas ue mais me deu trabal3o esatisFa&o em escre2er -a Famosa MA:R?' 5(C*1H(C?(1:* ABAP J1?*R P)(1* ( .j1?*RM0 igualou8se

    em nmeros de acessos de uma das p%ginas mais simplesmas ue o pessoal mais d% bola -uma pesuisa salarial0+[uem sabe isso se4a um indcio ue algumas pessoas esto seimportando mais com o con3ecimento do ue o sal%rio+ *uue pelo menos entendam ue o sal%rio , uma conseunciado con3ecimento+

    Apesar de tantos posts serem teis at, 3o4e a cada dia uepassa os pro@ssionais ABAP de2eriam estar mais interessados-ou pelo menos mais preocupados0 em aprender algorealmente no2o e ue cedo ou tarde pode 2ir a Faer parte doseu dia a dia+ * tpico contedo ue o ABAP$"$ ainda noe6plora e ue o pouco dispon2el est% perdido em blogs na.C1 ou repositErios peuenos do =itHub+ Por e6emplo; >?L+Atualmente na nossa matri de con3ecimento >?L , marcadoainda como um con3ecimento e6tra ue nem um snior

    de2eria obrigatoriamente ter+ Ainda+

    http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F02%2F26%2Fporque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja%2F&title=Porque%20todo%20ABAPer%20deveria%20come%C3%A7ar%20a%20aprender%20UI5%20(SAPUI5%2FOpenUI5)%20j%C3%A1&description=Saiba%20porque%20desenvolvedores%20ABAP%20deveriam%20come%C3%A7ar%20a%20aprender%20UI5%20a%20partir%20de%20j%C3%A1.%20Voc%C3%AA%20gostaria%20de%20saber%20mais%20sobre%20esta%20biblioteca%3F%20Leia%20este%20artigo%20j%C3%A1!http://abap101.com/2009/01/05/descobrindo-e-implementando-badis/http://abap101.com/2009/01/05/descobrindo-e-implementando-badis/http://abap101.com/2011/02/25/entendendo-o-for-all-entries/http://abap101.com/minisap/http://abap101.com/abap-junior-pleno-e-senior-matriz-de-conhecimento/http://abap101.com/abap-junior-pleno-e-senior-matriz-de-conhecimento/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F02%2F26%2Fporque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja%2F&title=Porque%20todo%20ABAPer%20deveria%20come%C3%A7ar%20a%20aprender%20UI5%20(SAPUI5%2FOpenUI5)%20j%C3%A1&description=Saiba%20porque%20desenvolvedores%20ABAP%20deveriam%20come%C3%A7ar%20a%20aprender%20UI5%20a%20partir%20de%20j%C3%A1.%20Voc%C3%AA%20gostaria%20de%20saber%20mais%20sobre%20esta%20biblioteca%3F%20Leia%20este%20artigo%20j%C3%A1!http://abap101.com/2009/01/05/descobrindo-e-implementando-badis/http://abap101.com/2009/01/05/descobrindo-e-implementando-badis/http://abap101.com/2011/02/25/entendendo-o-for-all-entries/http://abap101.com/minisap/http://abap101.com/abap-junior-pleno-e-senior-matriz-de-conhecimento/http://abap101.com/abap-junior-pleno-e-senior-matriz-de-conhecimento/
  • 7/25/2019 ABAP Oberdan

    30/145

    HatriI %e Co&6eci8e&to J KL/L/M

    UI!.e 2oc atua com desen2ol2imento ABAP 3o4e2oc certamente no precisa saber como criar aplica&?L+ :oda2ia certamente 2oc 4% de2eria saber o ue o>?L ,+ Caso 2oc no saiba ainda o ue , >?L -um nome maisgen,rico para .AP>?L ou *pen>?L0 , sinal ue 2oc no abrea 3ome page da .C13% mais de $ ano+

    >?L , uma biblioteca 4a2ascript para cria&o de aplica&?L estamosFalando de desen2ol2imento Front end+ =rosseiramenteFalando >?L , um concorrente do Bacbone+4s AngularJ.(mberJ. 5o4o ou ualuer outra biblioteca elencadana Wiipediaou no:odoVC+com+ =rande parte dos no2osprodutos da .AP no so mais Feitos em reports modulepools B.Ps ou Web 5Dnpros -apesar do ltimo ainda ser

    usado pela .AP em no2os desen2ol2imentos0+ Boa parte doue a .AP desen2ol2e 3o4e em dia , Feito em >?L na parte do

    http://abap101.com/2011/01/07/faca-parte-da-sdn/http://en.wikipedia.org/wiki/List_of_JavaScript_librarieshttp://todomvc.com/http://abap101.com/2011/01/07/faca-parte-da-sdn/http://en.wikipedia.org/wiki/List_of_JavaScript_librarieshttp://todomvc.com/
  • 7/25/2019 ABAP Oberdan

    31/145

    Front end+ .e 2oc 4% ou2iu Falar em alguns nomes como=ateKaD .>P Hana Uiori ou HCP saiba ue o >?L est%totalmente inserido nestes conte6tos+

    Voc est% a2istando ainda mesmo ue de longe umaoportunidade para ser desen2ol2edor Hanaf (nto aprenda>?L pois Fa parte do ue 2oc 2ai precisar na sua cai6a deFerramentas+

    .AP>?L 2s *pen>?L

    Como dito anteriormente >?L , um termo gen,rico ue uer

    dier ou .AP>?L ou *pen>?L+ [uando a .AP introduiu abiblioteca ela no tin3a o cEdigo aberto e uma licen&a de usomais restriti2a -.AP>?L0+ 5epois de muita presso e discussoda comunidade de desen2ol2edores a .AP resol2eu abrir oFonte da biblioteca e mudar a licen&a+ Uoi necess%rio entocriar um outro nome -*pen>?L0+ * .AP>?L ainda e6iste etecnicamente , diFerente do *pen>?L+ A principal diFeren&at,cnica entre ambos 3o4e , o Fato do .AP>?L incluir umabiblioteca gr%@ca enuanto o *pen>?L no+ Ve4a e6emplos deconstru&o de gr%@cos no .AP>?L no Hana Brasil+ Uelimentepara uem con3ece Ja2ascript @ca F%cil aprender a usarbibliotecas gr%@cas e6ternas como 5Iou Rap3ael+

    Web 5Dnpro 2s >?L

    >m argumento para '4oaprender >?L , o seguinte;

    O Web D&pro :eI M/ a&o2 rece&te8e&te7 e< ai&%a &>o

    apre&%i7 &

  • 7/25/2019 ABAP Oberdan

    32/145

    para usabilidade e6perincia do usu%rio e ergonomia dasduas aplica&?L0+

    * argumento do Web 5Dnpro , embasado mas eu noapostaria ue o mesmo 2ai acontecer+ (m outras pala2ras o>?L 2ai 2ingar+ :al2e nunca 2ire a mel3or biblioteca de

    Ja2ascript para VC mas com certea 2ai 2ingar muito maisue o Web 5Dnpro pois para desen2ol2er muitas aplica&?L+ ( , para este camin3o ue o ABAPer daprE6ima gera&o de2e seguir+

    1o li2ro M1e6t generation ABAP de2elopment ` Ric3 Heilman

    :3omas Jung+ k !nd ed+M ue Foi escrito em !"$$ -antes do>?L0 dos !" captulos do li2ro / so de alguma Formarelacionados a desen2ol2imento Web -VC Keb ser2icesWeb 5Dnpro B.P0+ 5esde !"$I a .AP Press est% pensando naterceira edi&o do li2ro ue sinceramente no sei oandamento atual+ Por,m aposto ue ter% algo de >?L al,m deFalar da integra&o ABAP`Hana+ Pelo menos o li2ro MABAP tot3e Uuture ` Paul HardDO 4% aborda >?L+ ( se ainda no est%

    con2encido4% 3% um li2ro o@cial da .AP Press e6clusi2ode >?L+

    https://open.sap.com/courses/uxn1https://www.sap-press.com/next-generation-abap-development_2406/https://www.sap-press.com/next-generation-abap-development_2406/https://www.sap-press.com/abap-to-the-future_3680/https://www.sap-press.com/abap-to-the-future_3680/https://www.sap-press.com/getting-started-with-sapui5_3565/https://www.sap-press.com/getting-started-with-sapui5_3565/https://open.sap.com/courses/uxn1https://www.sap-press.com/next-generation-abap-development_2406/https://www.sap-press.com/next-generation-abap-development_2406/https://www.sap-press.com/abap-to-the-future_3680/https://www.sap-press.com/abap-to-the-future_3680/https://www.sap-press.com/getting-started-with-sapui5_3565/https://www.sap-press.com/getting-started-with-sapui5_3565/
  • 7/25/2019 ABAP Oberdan

    33/145

  • 7/25/2019 ABAP Oberdan

    34/145

    Consultorias precisam de pessoas ue al,m de outras coisasentendam da aruitetura dos sistemas ue atuam econstruam solu&?L signi@car% no ser um consultor8desen2ol2edor .APcompleto+ Assim como ignorar o Hana ter% a mesmaconseuncia+

    Po/ o'5, %o8,o a a$/,'5,/UI!Al,m da .C1 li2ros na .AP Press ditos anteriormente e o site

    o@cial do*pen>?L+org eu recomendo assistir apresenta&oue @ no .AP ?nside :rac .o Paulo no @nal de !"$]+ (laensina como 2oc 3ospedar sua aplica&o >?L no =itHub etorn%8la pblica+

    3ttp;``abap$"$+com`!"$L`"!`!Z`porue8todo8abaper8de2eria8comecar8aprender8uiL8sapuiLopenuiL84a`

    Claro /o'( pre'isar de um am*iente de desen/ol/imento.

    Felimente para montar ele no mundo de desen/ol/imento We* 1

    ne'essrio ter uma )D5 ualuer 0re'omendo o Su*lime TeKt ou

    5'lipse2 e um ser/idor We* 0Tom'at MAMP ode>runt et'2. #u

    apenas /o'( pode usar sites 'omo oJ.BinouJ.Uiddlepara 'ome+ar

    a *rin'ar 'om U):.

    Bons estudos ,o deiKe de 'omentar

    Porue todo ABAP de/eria estudarHAAB3 UhB?* PA=*:?4 MA3 79 789:

    Compartil3eN

    http://openui5.org/http://abap101.com/2015/02/26/porque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja/http://abap101.com/2015/02/26/porque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja/http://jsbin.com/?html,outputhttp://jsfiddle.net/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F05%2F21%2Fporque-todo-abap-deveria-estudar-hana%2F&title=Porque%20todo%20ABAP%20deveria%20estudar%20HANA&description=O%20ABAP%20vai%20mudar%3F%20Thiago%20Ourives%20conta%20porque%20todo%20ABAP%20deveria%20estudar%20HANA...%20porque%20que%20o%20ABAP%20j%C3%A1%20mudou!http://openui5.org/http://abap101.com/2015/02/26/porque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja/http://abap101.com/2015/02/26/porque-todo-abaper-deveria-comecar-aprender-ui5-sapui5openui5-ja/http://jsbin.com/?html,outputhttp://jsfiddle.net/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F05%2F21%2Fporque-todo-abap-deveria-estudar-hana%2F&title=Porque%20todo%20ABAP%20deveria%20estudar%20HANA&description=O%20ABAP%20vai%20mudar%3F%20Thiago%20Ourives%20conta%20porque%20todo%20ABAP%20deveria%20estudar%20HANA...%20porque%20que%20o%20ABAP%20j%C3%A1%20mudou!
  • 7/25/2019 ABAP Oberdan

    35/145

    1o ltimo @nal de semana conclu um curso deA+AP o&ANA. Atualmente trabal3o com HA1A -e >?L0 no meu dia adia mas no de maneira integrada com o 1etWea2er+ (moutras pala2ras trabal3o com desen2ol2imento nati2o emHA1A e no como ABAP numa empresa ue tem o HA1A+

    * curso Foi Etimo e uero em bre2e criar alguns posts aui noABAP$"$ compartil3ando esta e6perincia+ as por 3ora nadamel3or de con2idar o meu instrutor do curso :3iago *uri2esue al,m de ter se pro2ado um pro@ssional Fora da cai6aescre2eu em poucos par%graFospor?

  • 7/25/2019 ABAP Oberdan

    36/145

    A seuncia de auisi&ma das perguntas ue mais ou&o em rela&o ao HA1A , seele , um Banco de 5ados+A resposta , a@rmati2a+ mas ao mesmo tempo usar essade@ni&o para o HA1A em alguns crculos pode ser uma

    oFensa gra2eNG como dier a um Aruiteto JAVA ue ele trabal3a comMauela linguagem de Faer sitesO ou a um consultor P? ueele sE o trabal3o dele , sE arrastar uadradin3os+

    JAVA , mais ue internet P? , mais ue os uadradin3os eHA1A , muito mais ue um Banco de 5ados+

    * HA1A , um con4unto de Ferramentas da .AP ue en2ol2edesde a sele&o dos Fabricantes dos c3ips a parceira com atamb,m alem .>.( o seu HA1A .tudio e suas Ferramentasde de modelarem e e6tra&o de dados -.AP B* .): 56Cetc+0 o suporte a suas no2as op&?L e o HA1A ^. e por ltimo e no menos importante , aconstru&o de de seus no2os 5ata Center e a no2a parceriacom a ?B ue possibilitam a 2enda do HA1A como um

    ser2i&o de PlataForma -Paa.0+

    SAP 7 =ANAA .AP est% apostando alto no HA1A+ uito Alto+

    :o alto ue no est% satisFeita apenas em ter sua plataFormaser2indo de base para seu principal produto o (CC+(la est% apostando o prEprio (CC e sua sElida lideran&a no

    mercado de (RP ao escol3er re8escre2er sua solu&o

  • 7/25/2019 ABAP Oberdan

    37/145

    utiliando o HA1A como alicerce e 2isando o mercado denu2em+

    * Futuro da .AP , o HA1A e depende do sucesso dessa

    Ferramenta+Por conseuncia o Futuro de todo o ecossistema .AP e deseus pro@ssionais depende de sua agilidade na adapta&o aessa no2a tecnologia+

    Co8o %o's+(o/ ABAP> $o/ *+,5,o 8, $/,o%+$a/Porue o .AP no 2ai mudar ele 4% mudou+( o ABAP assim como seu papel de atua&o tamb,m+

    A linguagem do ABAP est% em constante e2olu&o e temcamin3ado para se tornar um meio8campo ideal entre o HA1A-como bacend0 e o >?L-como Frontend0 se4a ser2indo comocamada protetora ou como meio de sele&o e organia&o do

    repositErio HA1A+

    * ABAP de no2a gera&o no apenas sabe >?L ele precisa terconceitos de modelagem em HA1A programa&o orientada acon4untos e Pus385oKn de cEdigo+ Assim como con3ecer asFerramentas de seguran&a e gera&o de ser2i&os do .tacABAP+

    Claro ue o .tac ABAP segue e6istindo e durante muitotempo ainda teremos nossa base instalada ue ainda usa o]+ZC mas se Formos pensar no m,dio prao a 3ora de sepreparar , agoraN

  • 7/25/2019 ABAP Oberdan

    38/145

    Co8o s, $/,$a/a/ , ao'5,,s4o os /,%+/sosBom esse , um assunto para outra postagem+Por 3ora uero agradecer a pacincia de todos na leitura edier ue estou a disposi&o para con2ersar e aprender sobre.AP e HA1A com todos 2ocs+

    =rande Abra&oN

    :3iago *uri2es+

    B6FplusG a $erramenta ue todopro$issional SAP de/e 'onhe'er

    B3 UhB?* PA=*:?4 U5 L 789:

    Compartil3eN

    5ias atr%s publicamos o artigo Porue todo ABAP de2eriaestudar HA1A por :3iago *uri2es ue despertou acuriosidade de muitos principalmente no Uaceboo e)ined?n+ Para uem no leu o ltimo te6to o :3iago trabal3acom ABAP 3% um tempo e , um dos pioneiros a trabal3ar

    com ABAP e HA1A no Brasil+

    (le escre2eu mais um post agora relacionado a BRU -aaBRU Plus0 tEpico in,dito aui no blog+ .e 2oc nunca ou2iuFalar no BRU e ac3a ue user e6it , algo mega atual re2e4aseus conceitos lendo este post+

    -Por :3iago *uri2es0

    http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F06%2F03%2Fbrfplus-a-ferramenta-que-todo-profissional-sap-deve-conhecer%2F&title=BRFplus%3A%20a%20ferramenta%20que%20todo%20profissional%20SAP%20deve%20conhecer&description=Este%20artigo%20descreve%20a%20proposta%20do%20BRFplus%20exemplificando%20um%20cen%C3%A1rio%20no%20qual%20ele%20se%20aplica.%20Artigo%20escrito%20por%20Thiago%20Ouriveshttp://abap101.com/2015/05/21/porque-todo-abap-deveria-estudar-hana/http://abap101.com/2015/05/21/porque-todo-abap-deveria-estudar-hana/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2015%2F06%2F03%2Fbrfplus-a-ferramenta-que-todo-profissional-sap-deve-conhecer%2F&title=BRFplus%3A%20a%20ferramenta%20que%20todo%20profissional%20SAP%20deve%20conhecer&description=Este%20artigo%20descreve%20a%20proposta%20do%20BRFplus%20exemplificando%20um%20cen%C3%A1rio%20no%20qual%20ele%20se%20aplica.%20Artigo%20escrito%20por%20Thiago%20Ouriveshttp://abap101.com/2015/05/21/porque-todo-abap-deveria-estudar-hana/http://abap101.com/2015/05/21/porque-todo-abap-deveria-estudar-hana/
  • 7/25/2019 ABAP Oberdan

    39/145

    Antes de e6plicar o ue , o BRUplus uero Falar sobreposs2eis solu&

  • 7/25/2019 ABAP Oberdan

    40/145

    * BR.$(+s ue 3o4e Fa parte da licen&a 1etWea2erconsegue 4untar o a praticidade de uma condition 1AV. an2el de aten&o de um cEdigo ABAP e a Te6ibilidade de umatabela ' somando a isso uma interFace amig%2el e sem anecessidade de 2alida&o e transporte associado a reuests+

    Como ele Fa issof G simplesN O BR.$(+s - o 8oo/ 5,/,9/as 5o SAP N,?,a,/+ :em como Fun&o ser2ir derepositErio de Ferramenta de constru&o e de motor dee6ecu&o de todas as regras standard da .AP e desde !"$"a .AP tem trabal3ado para tornar ele tamb,m a FerramentapreFerencial para manuten&o de regras do cliente+

    1essa Ferramenta podemos criar aplica&

  • 7/25/2019 ABAP Oberdan

    41/145

    Ainda me surpreendendo com a conFuso ue o campomandante -A15: ou client0 gera em grande parte depessoas ue trabal3am com .AP+ * conceito , simples maspelo Fato de poder ser aplicado em diFerentes circunst\nciascreio ue muita gente no este4a $"" segura do ue de2eriasaber sobre ele+ .e uiser entender tudo sobre o A15:continue lendo este post+ .e 2oc no Fa ideia o ue , estecampo tamb,m leia pois ele est% presente na grande maioriadas tabelas do .AP+

    O'5, ,s@ o MANDT 'o SAP

    A15: na tela de login

    * primeiro contato ue temos com o campo A15: -ouclient0 , logo na tela de login do sistema+ Como ele 2empreenc3ido para nEs pouco nos preocupamos com ele+

    (m cada um dos ambientes -5(V [A. PR*5 etc0 podemoster $ ou mais8a&%a&te2.Cada um dos mandantes possui umnmero nico ue pode ser usado ao Faer login no ambienteem uesto+

    A15: em tabelas do .AP

    Caso 2oc abra praticamente ualuer tabela de dados

    mestre ou transacional pela .($$ no .AP notar% a presen&ado campo A15: como parte da c3a2e da tabela+ Ainda esta

  • 7/25/2019 ABAP Oberdan

    42/145

    coluna ser% a primeira coluna da tabela antes mesmo do MidOda tabela em si+ ?sso 2ale para as tabelas ARA ARC BPUB.(= VBA VBAP (* (P* e tantas outras no sistema+

    Ainda caso 2oc tente 2isualiar os dados desta tabela pelatransa&o .e$$ .e$Z ou .($Z notar% ue no ter% comode@nir um @ltro pela coluna A15:+ )ogo tiramos nossaprimeira concluso sobre clients; eles so independentesentre si+

    Como o A15: Fa parte da c3a2e podemos ter mais de ummaterial com o mesmo nmero no A:1R+ *b2iamente para

  • 7/25/2019 ABAP Oberdan

    43/145

    isso o mesmo nmero do A15: -outra parte da c3a2e0de2eria ser diFerente+

    MANDT #8a'5a',) MATNR #&5 5o 8a,/&a() MATX #5,s%/&4o)

    /"" 8$!I Arro

    /"" 8$!] .,&4o

    /$" 8$!I Arro

    /$" 8$!] M&(m ambiente de desen2ol2imento pode ter ! ou maismandantes para separar os dados usados pordesen2ol2edores ABAP dos dados usados por Funcionais .AP+

    1o ambiente de desen2ol2imento os ABAPers codi@camenuanto Funcionais con@guram o sistema+ A con@gura&o

  • 7/25/2019 ABAP Oberdan

    44/145

    Feita por Funcionais nada mais en2ol2e ue a inser&oaltera&o e e6cluso de registros em uma por&o de tabelasue '4oso de dados mestre+ (stas modi@ca&

  • 7/25/2019 ABAP Oberdan

    45/145

    con4unto de dados de teste este4am 4% prontos para ue oteste possa ser e6ecutado+ Caso 3a4a apenas um mandanteno ambiente de ualidade em ue 3% testes manuais eautom%ticos um Funcional pode deletar ou alterar ummaterial ue , usado por uma s,rie de testes autom%ticos;ue conseuentemente iro Fal3ar no por Fracasso do testeem si mas por conta de dados de teste errados+

    A15: em produ&o

    Como mandantes determinam dados totalmenteindependente uns dos outros pode 3a2er um mandantesegregado para cada @lial de uma empresa+ 1ote ue 3%empresas com di2ersas @liais ue usam o mesmo mandante+?sso porue o conceito de @liais e6iste no .AP e a pri2acidadedos dados entre @liais pode ser realiado de outras Formas+

    C(&,'I'5,$,'5,' s C(&,'

    D,$,'5,':al2e 2oc ten3a ou2ido os temos client8independent -ouindependente de client `mandante0 e client8dependent -oudependente de client `mandante0+ Caso no ten3a ou2idosaiba ue no 3elp do ABAP estas de@ni&

  • 7/25/2019 ABAP Oberdan

    46/145

    maioria das tabelas no sistema possuem o campo A15: etabelas independentes de client geralmente so decustomia&o+

    MANDT 'o SELECTComo o mandante est% atrelado a sesso do usu%rio no 3%necessidade de especi@car esta parte da c3a2e uando se Faum .()(C: -conceito con3ecido como Client Handling0+Por,m caso 2oc de2e selecionar dados de todos osmandantes do sistema de2er% usar a adi&o MC)?(1:

    .P(C?U?(5O do comando .()(C: UR* o ueparticularmente nunca 2i algu,m usar em cEdigo '+

    ;+a'os 8a'5a',s ,7&s,8'o 8,+ a8&,',A tabela :""" guarda os mandantes do sistema+ .e 2oc

    notar todas as tabelas ue possuem a coluna A15: temuma c3a2e estrangeira para esta tabela+ *u pelo menosde2eriam ter+

    C(&,' 000* mandante """ , reser2ado pela .AP+ A empresa no podeusar o client """ pelo simples Fato de ele ser MintocadoO+ *u

    se4a ele tem a con@gura&o $"" standard e6istente logoapEs a instala&o do .AP+ (mpresas ue tem o costume dealterar a con@gura&o standard ao in2,s de criar uma cEpiada mesma podem ter ue recorrer a este mandante uandose perguntam M* ue eu @`* ue mudei mesmofO+

    http://help.sap.com/abapdocu_731/en/abenclient_handling_guidl.htmhttp://help.sap.com/abapdocu_731/en/abenclient_handling_guidl.htm
  • 7/25/2019 ABAP Oberdan

    47/145

    R,so+ 5F&5as Co8,',GUalei tudo ue sei sobre o campo A15:+ .e 2oc ainda tem

    alguma d2ida uanto ao assunto comente a bai6o+ (ste postde2eria encerrar poss2eis d2idas sobre o conceito+

    * mandante , um conceito ue de2e ser entendido se 2ocesti2er procurando 2agas de ABAP+ Apro2eitando 2oc4% secadastrou no ABAP$"$f

    Criando templates de 'Edigo noSAP !ogon e no 5'lipseB3 UhB?* PA=*:?4 AUA63 O 789R

    Compartil3eN

    H% sempre auele padro de cEdigo ue 2i2emos escre2endomas ele no , e6atamente reutili%2el+ >m )**P com alguns?Us internos de controle um U*R com com algunspar\metros alguma mensagem de erro Famosa ou auelaclasse b%sica com um construtor+ Por pura pregui&a de digitartudo no2amente -ue 4% est% implicitamente decorado0

    samos a procura de um programa ue 4% possui um cEdigoue podemos usar como modelo+ A3++ o C:R)C C:R)V ,to praeroso no , 2erdadef 1o no ,+ Aui 2ai umae6celente dica ue l3e a4udar% a gan3ar tempo enuantodesen2ol2e se4a na .(/" usando o .AP )ogon ou o ABAP no(clipse+ [uer saberf )eia o resto deste post+

    http://abap101.com/vagas-abap101/vagas/http://abap101.com/vagas-abap101/vagas/http://abap101.com/2014/01/01/cadastre-se-abap101/http://abap101.com/2014/01/01/cadastre-se-abap101/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2014%2F01%2F07%2Fcriando-templates-de-codigo-no-sap-logon-e-no-eclipse%2F&title=Criando%20templates%20de%20c%C3%B3digo%20no%20SAP%20Logon%20e%20no%20Eclipse&description=Aprenda%20a%20criar%20templates%20de%20c%C3%B3digo%20ABAP%20na%20SE80%20e%20Eclipse%20para%20economizar%20tempo%20durante%20o%20desenvolvimento%20de%20programas.%20Veja%20ainda%20exemplos%20prontos!http://abap101.com/vagas-abap101/vagas/http://abap101.com/vagas-abap101/vagas/http://abap101.com/2014/01/01/cadastre-se-abap101/http://abap101.com/2014/01/01/cadastre-se-abap101/http://abap101.com/author/fabiopagoti/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2014%2F01%2F07%2Fcriando-templates-de-codigo-no-sap-logon-e-no-eclipse%2F&title=Criando%20templates%20de%20c%C3%B3digo%20no%20SAP%20Logon%20e%20no%20Eclipse&description=Aprenda%20a%20criar%20templates%20de%20c%C3%B3digo%20ABAP%20na%20SE80%20e%20Eclipse%20para%20economizar%20tempo%20durante%20o%20desenvolvimento%20de%20programas.%20Veja%20ainda%20exemplos%20prontos!
  • 7/25/2019 ABAP Oberdan

    48/145

    T,8$(a,s 5, %65&9oAlguns comandos em ABAP at, em 2ers

  • 7/25/2019 ABAP Oberdan

    49/145

    :AB com um certo atraso para completar o cEdigo com umtemplate+

    (m seuncia 2% na op&o MCode :emplatesO+ G aui ue sede@ne os templates de cEdigo+ 5 uma ol3ada nos e6istentes+

    Como e6emplo 2oc pode criar um template para uando2oc 4% sabe ue precisar% Faer um .()(C: e 4ogar oresultado em uma tabela interna ue ainda no Foi criada+

    omentaneamente Fec3e o popup e escre2a o template ue2oc dese4a em um editor aberto ualuer como o abai6o+1ote ue o cEdigo no precisa ser Mcompil%2elO+ Basta ue eleFacilite sua 2ida na 3ora de us%8lo+

  • 7/25/2019 ABAP Oberdan

    50/145

    >ma 2e ue o seu template se4a escrito copie8o no clipboarde 2olte na tela de con@gura&

  • 7/25/2019 ABAP Oberdan

    51/145

    .al2e e prontoN Voc tem um template de cEdigoN

    Para us%8lo basta digitar o nome do template no editor -nocaso XselectXintoXtable0+ >ma 2e ue o nome completo dotemplate se4a digitado a descri&o de@nida ser% e6ibida em

    Forma de tooltip+ 1o2amente basta apertar :AB para ue ocEdigo se4a inserido de acordo com o template+

    :ags

    G poss2el tamb,m usar tags no seu template+ ?sso , tiluando seu template necessita de inForma&

  • 7/25/2019 ABAP Oberdan

    52/145

    O c3anged source code

    O (15 *U :?C(:8$!I]L 5ate; dd`mm`aaaa+

    Como o nmero do c3amado e a data atual so din\micasbasta incluir tags no seu template+ 1o dropdoKn e6ibido noboto M?nsert :agO 3% algumas tags pr,8de@nidas como5ate:ime+ Pelo Fato de 5ate:ime estar entre s o editorir% interpretar a inForma&o como uma 2ari%2el+ ConFormeabai6o+

    [uando 2oc de@ne uma 2ari%2el ue o editor no , capa deinterpretar como :icet ?5 um input bo6 , e6ibido toda

    2e ue o template For c3amado+

  • 7/25/2019 ABAP Oberdan

    53/145

    1o 3% uma 2ari%2el pr,8de@nida para somente a data mas@ca mais F%cil remo2er sE o 3or%rio ou dei6ar no Fontemesmo+ 1a min3a opinio , mel3or no usar estescoment%rios ue poluem o cEdigo e usar o 2ersionadoruando preciso mas tais coment%rios so normas emmuitas empresas+

  • 7/25/2019 ABAP Oberdan

    54/145

    as , claro ue o ABAP$"$ no 2ai dar uma dica comoesta sem nada mais a acrescentar no , mesmof Vamos 2ercomo o mesmo conceito se aplica no ABAP no (clipse parauem 4% est% usando+

    C/&a'5o ,8$(a,s 5, %65&9o'o ABAP 'o E%(&$s,* (clipse , mais inteligente ue a .(/" por isso a ualuermomento 2oc pode apertar CR:).PAC( para acionar aFun&o de autocompletar+ Para criar templates 2% no menu

    MWindoKO 99 MPreFerencesO+ 1o menu a esuerda 2% emMABAP 5e2elopmentO 99 M.ource Code (ditorO 99M:emplatesO+

    :ags

    :ags -2ari%2eis0 no template de cEdigo do (clipse sodenotadas com q2ari%2el+ (6istem mais possibilidades de

    2ari%2eis para uem usa o (clipse -data 3ora ano usu%rioetc0+ Ao usar um template com uma 2ari%2el descon3ecida2oc preenc3er% seu contedo apEs o template ser inseridosem a presen&a de popups portanto+

    http://help.sap.com/saphelp_banking70/helpdata/ru/42/fc1d33a2253ee4e10000000a1553f7/content.htmhttp://help.sap.com/saphelp_banking70/helpdata/ru/42/fc1d33a2253ee4e10000000a1553f7/content.htmhttp://help.sap.com/saphelp_banking70/helpdata/ru/42/fc1d33a2253ee4e10000000a1553f7/content.htmhttp://help.sap.com/saphelp_banking70/helpdata/ru/42/fc1d33a2253ee4e10000000a1553f7/content.htm
  • 7/25/2019 ABAP Oberdan

    55/145

    E7,8$(os 5, T,8$(a,sAui 2o alguns e6emplos de templates para 2oc adicionarno seu editor predileto -adeuados ao eclipse0+

    $ class qclassXname de@nition+

  • 7/25/2019 ABAP Oberdan

    56/145

    !

    I

    ]

    L

    Z

    7

    /

    $"

    $

    $$!

    $I

    $]

    $L

    $Z

    $7

    $/

    public section+

    met3ods constructor+

    protected section+

    pri2ate section+

    endclass+

    class qclassXname implementation+

    met3od constructor+

    endmet3od+

    endclass+

    $

    !

    I

    ]

    888888888888888888888888888888888888888888888888888888888888888888888

    Report qprogram

    888888888888888888888888888888888888888888888888888888888888888888888

  • 7/25/2019 ABAP Oberdan

    57/145

    L

    Z

    7

    /

    Autor;

    :ransa&o;

    Edulo;

    5ecri&o;

    888888888888888888888888888888888888888888888888888888888888888888888

    $

    !

    I

    ]

    L

    Z

    7

    /

    $"

    $$

    $!

    $I

    $]

    $L

    $Z

    $7

    $/

    $

    !"

    !$

    !!

    class qclXclassXnameXtest de@nition deFerred+

    class clXtestedXglobalXclass de@nition local Friends qclXclassXnameXtest+

    C)A.. qclXclassXnameXtest 5(U?1?:?*1 U*R :(.:?1=

    U?1A)

    CR(A:( P>B)?C

    5>RA:?*1 .H*R:

    R?. )(V() HAR)(..

    +

    P>B)?C .(C:?*1+

    (:H*5. mut$ U*R :(.:?1= +

    (:H*5. mut! U*R :(.:?1= +

    (:H*5. mutI U*R :(.:?1= +

    PR*:(C:(5 .(C:?*1+

    =?V(1

    (:H*5. gi2enXreusable

    ?P*R:?1=

    NimX :SP( +

    (:H*5. gi2enX$+

    (:H*5. gi2enX!+

  • 7/25/2019 ABAP Oberdan

    58/145

    !I

    !]

    !L

    !Z

    !7

    !/

    !

    I"

    I$

    I!

    II

    I]

    IL

    IZ

    I7

    I/

    I

    ]"

    ]$

    ]!

    ]I

    ]]

    ]L

    ]Z

    ]7

    ]/

    ]

    L"

    L$

    L!

    LI

    L]

    LL

    (:H*5. gi2enXI+

    WH(1

    (:H*5. K3enXmut$+

    :H(1

    (:H*5. t3enXreusable

    ?P*R:?1=

    NimX :SP( +

    (:H*5. t3enX$+

    (:H*5. t3enX!+

    (:H*5. t3enXI+

    PR?VA:( .(C:?*1+

    (:H*5. setup+

    (:H*5. teardoKn+

    5A:A oXreFXtoXtestedXclass :SP( R(U :* clX+

    5A:A oXe6ception :SP( R(U :* c6X +

    (15C)A..+

    C)A.. qclXclassXnameXtest ?P)((1:A:?*1+

    (:H*5 setup+

    C)(AR me89oXreFXtoXtestedXclass+

    C)(AR me89oXe6ception+

    (15(:H*5+ setup

    (:H*5 teardoKn+

    (15(:H*5+ teardoKn

  • 7/25/2019 ABAP Oberdan

    59/145

    LZ

    L7

    L/

    L

    Z"

    Z$

    Z!

    ZI

    Z]

    ZL

    ZZ

    Z7

    Z/

    Z

    7"

    7$

    7!

    7I

    7]

    7L

    7Z

    77

    7/

    7

    /"

    /$

    /!

    /I

    /]

    /L

    /Z

    /7

    //

    et3ods >nder :est

    (:H*5 mut$+

    (15(:H*5+ mut$

    (:H*5 mut!+

    (15(:H*5+ mut!

    (:H*5 mutI+

    (15(:H*5+ mutI

    =?V(1

    (:H*5 gi2enX$+

    (15(:H*5+ gi2enX$

    (:H*5 gi2enX!+

    (15(:H*5+ gi2enX!

    (:H*5 gi2enXI+

    (15(:H*5+ gi2enXI

    WH(1

  • 7/25/2019 ABAP Oberdan

    60/145

    /

    "

    $

    !

    I

    ]

    L

    Z

    7

    /

    $""

    $"$

    $"!

    $"I

    $"]

    $"L

    $"Z

    $"7

    $"/

    $"

    $$"

    $$$

    $$

    !$$

    (:H*5 K3enXmut$+

    (15(:H*5+ K3enXmut$

    :H(1

    (:H*5 t3enXreusable+

    (15(:H*5+ t3enXreusable

    (:H*5 t3enX$+

    clXaunitXassert9assertXeuals-

    (^P*R:?1=

    e6p 5ata *b4ect Kit3 (6pected :Dpe

    act 5ata *b4ect Kit3 Current Value

    msg essage in Case oF (rror

    le2el CR?:?CA) (rror .e2eritD

    tol :olerance Range For Uloating Point 1umbers

    uit (:H*5 UloK Control in Case oF (rror

    ignoreX3as3Xseuence ABAPXUA).( ?gnore c3ange seuence in3as3 tables

    R(C(?V?1=

    assertionXFailed Condition not met

    0+

    (15(:H*5+ t3enX$

    (:H*5 t3enX!+

    clXaunitXassert9assertXbound-

  • 7/25/2019 ABAP Oberdan

    61/145

    I

    $$]

    $$

    L$$Z

    $$7

    $$/

    $$

    $!"

    $!$

    $!!

    $!I

    $!]

    $!L

    $!Z

    $!7

    $!

    /$!

    $I"

    $I$

    $I!

    $I

    (^P*R:?1=

    act ReFerence Variable to Be C3eced

    msg (rror essage

    le2el CR?:?CA) (rror .e2eritD

    uit (:H*5 UloK Control in Case oF (rror

    R(C(?V?1=

    assertionXFailed Condition not met

    0+

    (15(:H*5+ t3enX!

    (:H*5 t3enXI+

    clXaunitXassert9assertXnotXbound-

    (^P*R:?1=

    act ReFerence Variable to Be C3eced

    msg (rror essage

    le2el CR?:?CA) (rror .e2eritD

    uit (:H*5 UloK Control in Case oF (rror

    R(C(?V?1=

    assertionXFailed Condition not met

    0+

    (15(:H*5+ t3enXI

    (15C)A..+

  • 7/25/2019 ABAP Oberdan

    62/145

    I

    $I]

    $I

    L$IZ

    $I7

    $I/

    $I

    $]"

    $]$

    $]!

    $]I

    $]]

    $]L

    E'&, s,+s ,8$(a,sGCaso 2oc use templates de cEdigo cole seus preFeridos nocampo de coment%rio+ Assim todos podem economiar tempotamb,mN

    3ttp;``abap$"$+com`!"$]`"$`"7`criando8templates8de8codigo8no8sap8logon8e8no8eclipse`

    http://abap101.com/2014/01/07/criando-templates-de-codigo-no-sap-logon-e-no-eclipse/http://abap101.com/2014/01/07/criando-templates-de-codigo-no-sap-logon-e-no-eclipse/http://abap101.com/2014/01/07/criando-templates-de-codigo-no-sap-logon-e-no-eclipse/http://abap101.com/2014/01/07/criando-templates-de-codigo-no-sap-logon-e-no-eclipse/
  • 7/25/2019 ABAP Oberdan

    63/145

    ,o tenho demanda em ABAP #ue $aer%B3 UhB?* PA=*:?4 D5C5MB56 I 789L

    Compartil3eN

    Por estes dias nEs do ABAP$"$ recebemos um email muito

    semel3ante a M[uase uma crise e6istencialO de um leitor uedeu seu primeiro passo em sua carreira ABAP mas anda comalguns problemas entre eles a Falta de demanda+ Apesar de3a2er muitos do ue as consultorias entitulam como MJniorsOnas empresas muitas das demandas acabam simplesmenteno caindo nas mos deles+ (ngana8se os Jniors ue issoacontece somente pela Falta de e6perincia e 3abilidade no.AP+ .e 2oc est% na mesma situa&o -ou uer apro2eitar as

    dicas dadas ao nosso leitor em Forma de post0 no dei6e deler este post e come&ar a ter demandas mais desa@adoras+

    Antes de responder ao nosso leitor dei6o o email dele nantegra;

    +o8 %ia

    +o87 8e< &o8e 7 8e :or8ei e8 Si2te8a2 %e

    "&:or8a>o &o B8 %e /M.

    F

  • 7/25/2019 ABAP Oberdan

    64/145

    e2t

  • 7/25/2019 ABAP Oberdan

    65/145

  • 7/25/2019 ABAP Oberdan

    66/145

    e6ercendo seu trabal3o+ Como diria aggie -personagem de:3e Waling 5ead0; MWe all got 4obs to doO+

    A 5&s/&+&4o 5, /aa(

  • 7/25/2019 ABAP Oberdan

    67/145

    T/,&'o - /,&'o> Jo9o - o9o

    (6erccios so Etimos mas eles tem um elemento crucialmuitas 2ees no encontrados em especi@ca&m e6erccio de2e ser claro para entenderonde pretende8se c3egar+ A solu&o do e6erccio de2e ser

    detal3ada e clara para entender8se como o ob4eti2o Foialcan&ado+ A metodologia de desen2ol2imento de uemtrabal3a com .AP , 2ia de regra WaterFall inFelimente -ainda em pleno s,culo !$0+ [uando uma especi@ca&o Funcionalc3ega nas mos de um ABAP nestas condi&

  • 7/25/2019 ABAP Oberdan

    68/145

    So(&%&, 5,8a'5aN&'9+-8 %

  • 7/25/2019 ABAP Oberdan

    69/145

    Pa/&%&$, 5, $/o,os O$,'

    So+/%,Como 2oc acompan3a o ABAP$"$ com certea 2oc sabeue a .AP publicou uma no2a licen&a de desen2ol2imento+?sso signi@ca ue 2oc agora pode ter um cEdigo ABAPpublicado no =itHub sem correr o risco de ser preso-a0+ >mpro4eto seu ou Feito 4untamente com outras pessoas as uaisusam o tempo li2re delas para criar algo til como

    o WordPresspor e6emplo , uma grande oportunidade de tere6erccios mais bem elaborados al,m de ser um grande Feito+

    ;+a&s s+as 5&%as ao 'ossoa8&9o (,&o/Caso 2oc ten3a c3egado at, aui certamente , porue est%ou 4% este2e nesta situa&o+ [uais os consel3os ue 2ocdaria ao nosso colega de pro@ssof 1o dei6e de comentar aem bai6oN :em algum problema relacionadof Comentetamb,mN

    >m grande abra&o a todos e ao nosso leitor ue aceitou a

    ideia de ter seu pedido respondido em Forma de post+

    Di'as para uem n,o 'onsegueentre/istas no mundo SAPB3 UhB?* PA=*:?4 S5PT5MB56 97 789L

    http://abap101.com/2013/11/29/nova-licenca-de-desenvolvimento-da-sap-publicada/http://abap101.com/2013/11/23/wordcamp-2013-open-source-sap/http://abap101.com/author/fabiopagoti/http://abap101.com/2013/11/29/nova-licenca-de-desenvolvimento-da-sap-publicada/http://abap101.com/2013/11/23/wordcamp-2013-open-source-sap/http://abap101.com/author/fabiopagoti/
  • 7/25/2019 ABAP Oberdan

    70/145

    Compartil3eN

    *utro dia destes recebi uma mensagem de uma pessoa-tal2e leitor do blog ou no0 a respeito da di@culdade ueele-a0 tem em come&ar a atuar na %rea de .AP mais

    especi@camente com ABAP+

    Como a pessoa se reser2ou o direito de en2iar esta pergunta2ia uma rede social eu estou me reser2ando o direito depublicar min3a resposta tamb,m em rede 4% ue sei ue esteproblema , de muitos+ Apenas editei e remo2i o ue no cabeneste post mas uanto ao assunto principal ue , se colocarno mercado .AP o te6to est% na integra+

    P,/9+'a-todas edi&

  • 7/25/2019 ABAP Oberdan

    71/145

    Ui recentemente academia na v^^^^^^^^^we desde entono estou conseguindo nem seuer entre2ista seria meucurriculo mal elaboradof

    Por Fa2or me a4uda+

    Abra&o+

    R,s$osa

    -todas edi&

  • 7/25/2019 ABAP Oberdan

    72/145

    I0 Voc ainda no tem o ue precisa para atuar na %rea epara agra2ar a situa&o ainda demonstra isso mal no seu CV

    :en3a certea ue na ocorrncia da uarta possibilidade ue

    seria ter o ue precisa para atuar na %rea e demonstrar issono CV 2oc 4% estaria no mnimo conseguindo entre2istas emuito pro2a2elmente empregado na %rea econseuentemente no me en2iando uma mensagem+

    [uanto ao seu CV eu no posso analisar poru -02oc nome disponibiliou+

    1o sei se este , o seu caso mas mudar de %rea reuer ummnimo de plane4amento+ H% muitos e muitos anos umaacademia .AP se4a o@cial ou no est% bem longe de ser umagarantia de emprego na %rea+ Ainda 3% muitos e muitos anosum emprego inicial em .AP est% bem longe de remunerar oue as pessoas ue Faem academia ac3am ue se paga+

    Para @naliar se 2oc puder me Falar ual o seu usu%rio na

    .51 uando Foi a ltima 2e ue apareceu por l% e uantotempo 2oc se dedica em se aprimorar em ABAP Frente aotempo ue 2oc manda currculos tal2e isso me a4ude aentender poru 2oc no consegue entre2istas+

    Boa sorte

    Pos%as so/, R=Particularmente eu abomino muitas pr%ticas atuais derecursos 3umanos+ Contudo elas Faem parte do 4ogo+Uelimente 3% um e6celente podcast do a6 =e3ringernaCB1 sobre empregabilidade+ Vale muito a pena conFeririndependente se 2oc trabal3a com .AP ou no+

    http://cbn.globoradio.globo.com/comentaristas/max-gehringer/MAX-GEHRINGER.htmhttp://cbn.globoradio.globo.com/comentaristas/max-gehringer/MAX-GEHRINGER.htm
  • 7/25/2019 ABAP Oberdan

    73/145

    9: ind'ios musi'ais ue o seu

    programa ABAP pode melhorar3ttp;``abap$"$+com`!"$I`"7`$7`indicios8musicais8seu8programa8abap8pode8mel3orar`

    3ttp;``abap$"$+com`!"$!`$"`!/`e2olucao8do8editor8abap`

    Criando #*-etos ChamandoM1todos Dinami'amenteB3 C)A>5?A A15R(..A4 U!3 78 7897

    Compartil3eN

    1a busca pela solu&o de um problema debugandodebugando e debugando no2amente me deparei com acria&o din\mica de ob4etos+

    (studando mais a Fundo eis ue surge assunto para mais umpostN A@nal uanto mais din\micos Forem os programas e AP?xs mel3or ser% sua perFormance e re8usabilidade+

    * ue Fa com ue consigamos criar o ob4eto ` c3amar o

    m,todo dinamicamente , a utilia&o de uma tabela na ualinFormamos todos os par\metros necess%rios -se4ade i8porti&g e-porti&g c6a&gi&g etc0 ou se4a podemospopular esta tabela de acordo com nossa necessidade emdeterminado ponto do programa+

    >tiliei como e6emplo a cria&o de um ob4eto com reFerncia classe yCLKUIKALVKRID o ual c3amei der_grid.

    http://abap101.com/2013/07/17/indicios-musicais-seu-programa-abap-pode-melhorar/http://abap101.com/2013/07/17/indicios-musicais-seu-programa-abap-pode-melhorar/http://abap101.com/2012/10/28/evolucao-do-editor-abap/http://abap101.com/author/clauandressa/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F07%2F20%2Fcriando-objetos-chamando-metodos-dinamicamente%2F&title=Criando%20Objetos%20%2F%20Chamando%20M%C3%A9todos%20Dinamicamente&description=http://abap101.com/2013/07/17/indicios-musicais-seu-programa-abap-pode-melhorar/http://abap101.com/2013/07/17/indicios-musicais-seu-programa-abap-pode-melhorar/http://abap101.com/2012/10/28/evolucao-do-editor-abap/http://abap101.com/author/clauandressa/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F07%2F20%2Fcriando-objetos-chamando-metodos-dinamicamente%2F&title=Criando%20Objetos%20%2F%20Chamando%20M%C3%A9todos%20Dinamicamente&description=
  • 7/25/2019 ABAP Oberdan

    74/145

    Para Facilitar o entendimento segue abai6o o Pattern-modelo0 da cria&o est%tica deste ob4eto;

    $

    !

    I

    ]

    L

    Z

    7

    /

    $

    "$$

    $!

    $I

    $]

    $L

    $Z

    $7

    CR(A:( *BJ(C: rXgrid (^P*R:?1=

    iXs3ellstDle "

    iXliFetime

    iXparent rXcontainer

    iXapplXe2ents space

    iXparentdbg

    iXapplogparent iXgrap3icsparent

    iXname

    iXFcatXcomplete space

    (^C(P:?*1.

    errorXcntlXcreate $

    errorXcntlXinit !

    errorXcntlXlin I errorXdpXcreate ]

    ot3ers L+

    *B.; o ob4eto r_container, do

    ripo CLKUIKCUSTOMKCONTAINER criado estaticamenteno cEdigo abai6o+

  • 7/25/2019 ABAP Oberdan

    75/145

    Vamos criar o ob4eto apenas inFormando o par\metroobrigatErio y?XPAR(1: e para isso utiliaremosuma or@areado tipo abapKparmbind e uma tabelatipo abap_parmbind_tabdenominadas lwa_parame lt_paramrespecti2amente+

    1a propriedade y1ame sempre inFormaremos o par\metroneste caso y?XPAR(1:+

    1a propriedade yind o tipo -(6porting conForme modeloest%tico0+

    Para inFormar o tipo precisamos utiliar os atributos da classeyC)XABAPX*BJ(C:5(.CR com isso teremos;

    $ lKaXparam8ind clXabapXob4ectdescr9e6porting+

    Por @m necessitamos inFormar o 2alor atribudo a estepar\metro e conForme podemos 2eri@car no cEdigo abai6o o2alor , o ob4eto rXcontainer -ob4eto de reFerncia a classeC)X=>?XC>.:*XC*1:A?1(R0+

    5esta Forma necessitamos incluir a reFerncia do ob4eto natabela;

    $ =(: R(U(R(1C( *U rXcontainer ?1:* lKaXparam82alue+

    Agora , sE inserirmos nossa or@areana tabela e criarmos o

    ob4eto ` c3amarmos o m,todo -no se esue&a de utiliar otrD8catc3 de Forma a tratar poss2eis e6ce&

  • 7/25/2019 ABAP Oberdan

    76/145

    *bs; Veri@ue a sinta6 de c3amada do m,todo ` cria&o doob4eto+ *bser2e ue cria8se o ob4eto do tipo de uma classe-inFormada na 2ari%2el l2XtDpe0 com os par\metros inseridosna tabela+

    $

    !

    I

    ]

    L

    Z

    7

    /

    $

    "

    $$

    $!

    $I

    $]

    $L

    $Z

    $7

    $/

    $

    R(P*R: XcreateXdinnam+

    :SP(8P**).; abap+

    5A:A; ltXparam :SP( abapXparmbindXtab

    lKaXparam :SP( abapXparmbind+

    5A:A; l2XtDpe :SP( string

    l2Xe6cXt6t :SP( string+

    5A:A; rXe6cept :SP( R(U :* c6Xroot

    rXgrid :SP( R(U :* clXguiXal2Xgrid

    rXcontainer :SP( R(U :* clXguiXcustomXcontainer+

    C)(AR; ltXparam lKaXparam l2XtDpe l2Xe6cXt6t+

    R(UR(.H; ltXparam+

    88888888888888888888888888888888888888888888888888888888888888888888

    .:AR:8*U8.()(C:?*1+

    CR(A:( *BJ(C: rXcontainer

    (^P*R:?1=

    containerXname zC*1:A?1(RX$z

    (^C(P:?*1.

    cntlXerror $

  • 7/25/2019 ABAP Oberdan

    77/145

    !"

    !

    $!!

    !I

    !]

    !L

    !Z

    !7

    !/

    !

    I"

    I$

    I!

    II

    I

    ]IL

    IZ

    I7

    I/

    I

    cntlXsDstemXerror !

    createXerror I

    liFetimeXerror ]

    liFetimeXdDnproXdDnproXlin L

    *:H(R. Z+

    ?U sD8subrc 1( "+

    (..A=( ?5 sD8msgid :SP( sD8msgtD 1>B(R sD8msgno

    W?:H sD8msg2$ sD8msg2! sD8msg2I sD8msg2]+

    (15?U+

    88888888888888888888888888888888888888888888888888888888888888888888

    C)A.. clXabapXob4ectdescr 5(U?1?:?*1 )*A5+

    l2XtDpe zC)X=>?XA)VX=R?5z+

    lKaXparam8name z?XPAR(1:z+

    lKaXparam8ind clXabapXob4ectdescrgtYe6porting+

    =(: R(U(R(1C( *U rXcontainer ?1:* lKaXparam82alue+

    ?1.(R: lKaXparam ?1:* :AB)( ltXparam+

    88888888888888888888888888888888888888888888888888888888888888888888

    :RS +

    CR(A:( *BJ(C: rXgrid

    :SP(

    -l2XtDpe0

    PARA(:(R8:AB)(

    ltXparam+

    CA:CH c6XsDXcreateXob4ectXerror ?1:* rXe6cept+

    l2Xe6cXt6t rXe6cept8gtYgetXte6t- 0+

    (..A=( l2Xe6cXt6t :SP( z?z+

  • 7/25/2019 ABAP Oberdan

    78/145

  • 7/25/2019 ABAP Oberdan

    79/145

    Uica o desa@o; ue tal c3amar um m,todo dinamicamente eutiliar uma tabela de e6cessof (la Funciona da mesmamaneira para recuperar as e6ce&

  • 7/25/2019 ABAP Oberdan

    80/145

    A FErmula da e6ponencia&o , simples e por isso consideroum e6emplo legal para mostrar a recursi2idade em pr%tica+

    (6ponencia&o >sando Recursi2idade

    1o ABAP 2oc pode usar o operador para Faer ae6ponencia&o e resol2er todo o problema em uma lin3a -2e4ano programa abai6o0 mas esse post no , sobree6ponencia&o mas recursi2idade+

    1o2amente da Wiip,dia;

    A reco o proce22o pelo ?

  • 7/25/2019 ABAP Oberdan

    81/145

    888888888888888888888888888888888888888888888888888888888888888888888

    888888888888888888888888888888888888888888888888888888888888888888888

    R(P*R: abap$"$Xrecursion+

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXmat3 5(U?1?:?*1

    8888888888888888888888888888888888888888888888888888888888888888888888

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXmat3 5(U?1?:?*1+

    P>B)?C .(C:?*1+

    (:H*5. e6ecuteXe6ponentiation

    ?P*R:?1=

    base :SP( i

    e6poent :SP( i

    R(:>R1?1= 2alue-reXpoKer0 :SP( i+

    PR?VA:( .(C:?*1+

    5A:A; interaction :SP( i

    poKer :SP( i VA)>( $+

    (15C)A..+ lclXmat3 5(U?1?:?*1

  • 7/25/2019 ABAP Oberdan

    82/145

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXmat3 ?P)((1:A:?*1

    8888888888888888888888888888888888888888888888888888888888888888888888

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXmat3 ?P)((1:A:?*1+

    (:H*5 e6ecuteXe6ponentiation+

    A55 $ :* interaction+

    ?U interaction { e6poent+

    poKer me89e6ecuteXe6ponentiation- base base

    e6poent e6poent 0+

    >):?P)S poKer BS base+

    (15?U+

    reXpoKer poKer+

    (15(:H*5+ e6ecuteXe6ponentiation

    (15C)A..+ lclXmat3 ?P)((1:A:?*1

    5A:A; rXe6p :SP( R(U :* lclXmat3

    2XpoKer :SP( i+

    PARA(:(R.; pXbase :SP( i 5(UA>): !

    pXe6p :SP( i 5(UA>): I

    pXrec A. CH(CB*^+

  • 7/25/2019 ABAP Oberdan

    83/145

    ?1?:?A)?'A:?*1+

    CR(A:( *BJ(C: rXe6p+

    .:AR:8*U8.()(C:?*1+

    ?U pXrec z^z+

    2XpoKer rXe6p89e6ecuteXe6ponentiation- base pXbase

    e6poent pXe6p 0+

    ().(+

    2XpoKer pXbase pXe6p+

    (15?U+

    WR?:(; ` zPoKer; z 2XpoKer+

    &, /a9&s(,17hosted with by&=+

    (6ecute esse programa no modo debug e 2e4a a pil3a dec3amada+ Ve4a ue o m,todo se repete 2%rias 2ees indicandoue ele Fora c3amado de dentro dele mesmo caracteriandouma recursi2idade;

    https://gist.github.com/furlan/2983347/raw/a8f85a30aa1b3b10dced1d9793a8681394b8d7d1/gistfile1.txthttps://gist.github.com/furlan/2983347#file-gistfile1-txthttps://gist.github.com/furlan/2983347#file-gistfile1-txthttps://github.com/https://github.com/https://gist.github.com/furlan/2983347/raw/a8f85a30aa1b3b10dced1d9793a8681394b8d7d1/gistfile1.txthttps://gist.github.com/furlan/2983347#file-gistfile1-txthttps://github.com/
  • 7/25/2019 ABAP Oberdan

    84/145

    Pil6a %e c6a8a%a2 %o 8to%o EEC1TE_EPONENT"AT"ON( ) J !ec

  • 7/25/2019 ABAP Oberdan

    85/145

    Parte2 %e &oteboo@ J :o&te i8age8

    >m noteboo pode ser um materia Formado por tecladodisplaD )C5 H5 placa8me memErias carca&a etc+

    http://www.laptoppartsexpert.com/c-91554-gateway-laptop-parts-gateway-nv-parts-gateway-nv52.htmlhttp://www.laptoppartsexpert.com/c-91554-gateway-laptop-parts-gateway-nv-parts-gateway-nv52.html
  • 7/25/2019 ABAP Oberdan

    86/145

    * teclado , Formado por uma base uma tecla [ outra Woutra ( outra R outra : etc+

    >m H5 , Formado por um con4undo de discos magn,ticos

    placa de controle e sistema de leitura

    >m sistema de leitura , Formado por um bra&o de leituracabe&ote de leitura e placa de leitura+

    ( assim por diante+

    .e eu ti2esse uma rotina ue dado um material ele me

    retornasse uma lista de materais ue Formam esse materialeu precisaria c3amar essa rotina n 2ees conForme eu FosseMdesmontandoO ou Me6plodindoO meu material+

    5essa maneira a 3a2eria a recursi2idade como e6empli@cadono e6emplo do noteboo resol2endo o problema muitorapidamente+

    Claro ue nem tudo so Tores+ 5epurar um programa ue usarecursi2idade , muito trabal3oso bem como entender arecursi2idade ue outra pessoa desen2ol2eu+ ?sso Fa com uea recurso se4a e2itada mas em alguns casos , a mel3orForma de resol2er um problema+

    Apli'a+,o do Design PatternGFa'toryB3 U)hV?* U>R)A14 U5 I 7897

    Compartil3eN

    5epois de Falarmos do.ingleton est% na 3ora de Falarmos deoutropadro de pro4eto o UactorD+ * UactorD , mais diFcil de

    http://abap101.com/author/furlan/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F06%2F06%2Faplicacao-design-pattern-factory%2F&title=Aplica%C3%A7%C3%A3o%20do%20Design%20Pattern%3A%20Factory&description=http://abap101.com/2012/03/26/design-patern-singleton/http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_softwarehttp://abap101.com/author/furlan/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F06%2F06%2Faplicacao-design-pattern-factory%2F&title=Aplica%C3%A7%C3%A3o%20do%20Design%20Pattern%3A%20Factory&description=http://abap101.com/2012/03/26/design-patern-singleton/http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software
  • 7/25/2019 ABAP Oberdan

    87/145

    entender do ue o .ingleton+ ais do ue isso mais diFcil demostrar alguma aplica&o pr%tica+

    1esse post eu mostrarei as duas coisas e6plicar o

    Funcionamento do UactorD bem como sua aplica&o+

    R%pida (6plica&o

    5e uma maneira bem simples o UactorD , um padro uenada mais , do ue uma classe geradora de ob4etos onde adeciso de ual classe o ob4eto ser% , Feita pela classeMgeradoraO+

    *nde eu apliuei o UactorD em ABAPf

    Pro4eto Code Coac3ing

    (stamos trabal3ando num pro4eto open source c3amadoCodeCoac3ingue est% sendo desen2ol2ido sob a iniciati2a doABAP$"$ *pen .ource+

    * ob4eti2o do pro4eto , construir uma aplica&o ABAP onde oProgramador e Coordenador possam se comunicar peloprEprio programa ABAP+

    Ve4a esse e6emplo+ (sse trec3o de cEdigo Fa parte de outropro4eto em ue est%2amos en2ol2idos+ (u ueria passarinstru&

  • 7/25/2019 ABAP Oberdan

    88/145

    (6istem algumas lin3as de coment%rios ue so iniciadasporZ[+ (ssas lin3as contm uma esp,cie de cEdigo ue d%um signi@cado especial s lin3as comentadas logo naseuncia+ Continuando na lin3a doZ[encontramos aseguinte instru&o; M4ac;tasO+ ?sso signi@ca ue oscoment%rios logo abai6o dessa lin3a trata8se de uma tareFadesignada para o programador c3amado Jac+

    .endo assim o programador pode Facilmente Faer umabusca no programa pelo seu nome e descobrir todos ospontos ue possuam algum coment%rio para ele+ Para Facilitareu automatiei essa busca em um programa ue l oprograma e e6trai todos os pontos onde a lin3a come&acomZ[e gera um relatErio como o mostrado abai6o+

    Prottipo %o relatrio para o Co%e Coac6i&g

    (sse programa , apenas um protEtipo e como tal ser2eapenas para apresentar e testar a ideia central do pro4eto+ *pro4eto @nal contemplar% muitas outras Funcionalidades bemcomo outros comandos muito al,m dota2@+ G nesse pontoue o FactorD ser% usado+

    * ue o UactorD .igni@ca para o CodeCoac3ingf

  • 7/25/2019 ABAP Oberdan

    89/145

    1o protEtipo do programa Code Coac3ing ele consegueinterpretar apenas o comandota2@ mas 4% no primeirorelease estamos plane4ando e6pandir para pelo menos trsoutros comandos al,m dota2@ ?

  • 7/25/2019 ABAP Oberdan

    90/145

    Tela %e 2ele>o ; Co8a&%o TAS,

    E-plica>o para o co8a&%o TAS, ; Cla22e C_TAS,

    Co8a&%o V1HP &>o e-i2te

    !e2

  • 7/25/2019 ABAP Oberdan

    91/145

    programa+ *u se4a para esse caso a classe do comandoprecisa seguir a seguinte nomenclatura; )C)X{comando9caso contr%rio 3a2er% um erro na cria&o do ob4eto dauelaclasse pois a classe no e6istir%+

    *s ob4etos dos comandos so criados no m,todo UAC:*RS- 0com o seguinte comando;

    C!EATE O+VECT re_i&2ta&ce TYPE (lv_co88a&%).

    * tipo do ob4eto , de@nido em tempo de e6ecu&o de acordocom o 2alor da 2ari%2ellv_co88a&%+ Colocando a 2ari%2el

    entre parnteses o interpretador ABAP entende ue o tipo doob4eto a ser criado no ,lv_co88a&% mas sim o ue est% nocontedo da 2ari%2el entre os parnteses+

    [ual a Vantagemf

    Por ue criei uma classe para cada comandof Porue dessaForma pode8se adicionar um no2o comando de maneira

    >?:* F%cil apenas criando uma no2a classe para o no2ocomando e 3erdando da classe )C)XC*A15+

    :odo o resto no ser% aFetado+

    -sim isso c3eira polimor@smo0+

    -sim isso , genialNNN0

    * padro de pro4eto UactorD pode ser implementado de 2%riasmaneiras essa Foi apenas uma delas+ Ac3o sim interessanteestud%8lo para ter mais essa Ferramenta em sua Korbenc3+

    )mportanto e 5Kportanto Uma

    Ta*ela )nterna MEdulo de Fun+,o

  • 7/25/2019 ABAP Oberdan

    92/145

    B3 U)hV?* U>R)A14 MA3 L9 7897

    Compartil3eN

    (sta2a procurando algum assunto para escre2er e umalu doc,ue8mail c3egou com uma d2ida e ue em todas as turmas

    da Academia ABAP tem como importar ou e6portar umatabela interna para um mEdulo de Fun&o ou m,todo+

    A solu&o pode ser respondida com uma simples Frase; M>seum :able :Dpe -Categoria de :ipos0O+ .E com isso 4% seriasu@ciente para 2oc sair do outro lado mas Faendo 4us ao

    M$"$O do nome do site 2ou e6plicar passo a passo como Faerem um mEdulo de Fun&o+ 1o prE6imo post eu e6plicareicomo Faer em um m,todo+

    Problema

    Precisamos criar um mEdulo de Fun&o para retornar dadosdos 2os -tabela .PU)?0 dado uma empresa a,rea+

    .olu&oA primeira coisa a Faer , criar um tipo tabela -table tDpe0 nodicion%rio ue de@ne uma tabela interna do tipo standard+ V%na transa&o .($$ e escol3a 5ata :Dpe;

    http://abap101.com/author/furlan/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F05%2F31%2Fimportanto-exportanto-uma-tabela-interna-modulo-funcao%2F&title=Importanto%20e%20Exportanto%20Uma%20Tabela%20Interna%20%E2%80%93%20M%C3%B3dulo%20de%20Fun%C3%A7%C3%A3o&description=http://abap101.com/author/furlan/https://www.addtoany.com/share#url=http%3A%2F%2Fabap101.com%2F2012%2F05%2F31%2Fimportanto-exportanto-uma-tabela-interna-modulo-funcao%2F&title=Importanto%20e%20Exportanto%20Uma%20Tabela%20Interna%20%E2%80%93%20M%C3%B3dulo%20de%20Fun%C3%A7%C3%A3o&description=
  • 7/25/2019 ABAP Oberdan

    93/145

    Cliue em MCreateO e escol3a :able :Dpe;

    (ntre com uma bre2e descri&o e o )ine :Dpe ue de@ne a ascolunas na tabela interna+ 1esse caso ueremos todas ascolunas da tabela .PU)?+

  • 7/25/2019 ABAP Oberdan

    94/145

    Certi@ue8se o tipo de tabela se4a .tandard :able+

    Com o tipo global criado e ati2o 2amos a cria&o ao mEdulode Fun&o+ Primeiro , necess%rio criar uma =rupo de Uun&ona transa&o .(/"+ (scol3a MUunction =roupO e de@na umnome+ Pressione (1:(R e con@rme a cria&o do no2o ob4eto+

  • 7/25/2019 ABAP Oberdan

    95/145

    5epois de criar o grupo crie o mEdulo de Fun&o+ Pressione oboto direito do mouse sobre o grupo de Fun&o escol3aCreate 89 Uunction odule+

    5e@na o nome a descri&o para o mEdulo de Fun&o+ * nomeprecisa necessariamente M'XO+

    Agora 2amos de@nir o par\metro de ?mport ?XCARR?5 como mesmo tipo do campos CARR?5 da tabela .PU)?+

  • 7/25/2019 ABAP Oberdan

    96/145

    Para o par\metro de (^P*R: use o :able :Dpe de@nidoanteriormente+

    1o 2amos nos esuecer de de@nir as e6ce&

  • 7/25/2019 ABAP Oberdan

    97/145

  • 7/25/2019 ABAP Oberdan

    98/145

    Agora usando eFeti2amente o mEdulo de Fun&o crie umprograma ue c3ama a Fun&o e imprima o resultado natela+'ABAP$"$XR(P*R:XC*11(C:?*1.

    888888888888888888888888888888888888888888888888888888888888888888888

    Report 'ABAP$"$XR(P*R:XC*11(C:?*1.

    888888888888888888888888888888888888888888888888888888888888888888888

    :3is code Kas publis3ed originallD on ABAP$"$+com

    3ttp;``abap$"$+com`!"$!`"L`I"` 9

    importanto8e6portanto8uma8tabela8interna8modulo8Funcao

    Aut3or; Ul%2io Uurlan

    (8mail; Furlanabap$"$+com

    888888888888888888888888888888888888888888888888888888888888888888888

    R(P*R: abap$"$XreportXconnections+

    5A:A; itXspTi :SP( ttXspTi+

    U?()58.SB*).; {FsXspTi9 :SP( )?1( *U ttXspTi+

    PARA(:(R.; pXcar :SP( spTi8carrid+

    .:AR:8*U8.()(C:?*1+

    https://gist.github.com/2840290https://gist.github.com/2840290
  • 7/25/2019 ABAP Oberdan

    99/145

    CA)) U>1C:?*1 z'XUX=(:XC*11(C:?*1.z

    (^P*R:?1=

    imXcarrid pXcar

    ?P*R:?1=

    e6XspTiXt itXspTi

    (^C(P:?*1.

    noXdataXFound $

    *:H(R. !+

    ?U sD8subrc {9 "+

    (..A=( z1o records Found+z :SP( z(z+

    (15?U+

    )**P A: itXspTi A..?=1?1= {FsXspTi9+

    WR?:(; ` {FsXspTi98carrid

    {FsXspTi98connid

    {FsXspTi98countrDFr

    {FsXspTi98citDFrom

    {FsXspTi98airpFrom {FsXspTi98countrDto

    {FsXspTi98citDto

    {FsXspTi98airpto+

    (15)**P+

    &, /a9&s(,17hosted with by&=+

    5iscusso

    * principal ponto a destacar aui , o tipo criado na .($$'::X.PU)?+ Antigamente usa2a a pasta :ables do mEdulo deFun&o onde era somente preciso especi@car a estrutura ueo prEprio sistema entendia ue de2eria ser criado uma tabelainterna em tempo de e6ecu&o+ 1o usamos essa t,cnica pois

    4% est% obsoleto e por regra no de2emos criar no2os

    https://gist.github.com/furlan/2840290/raw/4c86ceb5f46c5f35b967ce8fe24a45bee0e5c6a1/gistfile1.txthttps://gist.github.com/furlan/2840290#file-gistfile1-txthttps://gist.github.com/furlan/2840290#file-gistfile1-txthttps://github.com/https://github.com/https://gist.github.com/furlan/2840290/raw/4c86ceb5f46c5f35b967ce8fe24a45bee0e5c6a1/gistfile1.txthttps://gist.github.com/furlan/2840290#file-gistfile1-txthttps://github.com/
  • 7/25/2019 ABAP Oberdan

    100/145

    programas com instru&

  • 7/25/2019 ABAP Oberdan

    101/145

    as classes de e6ce&o de2emos usar a estrutura decomandos :RS8CA:CH8C)(A1>P+

    >sarei a classe )C)X(^C(P:?*1X5(* ue est% no include

    'ABAP$"$X(^C(P:?*1XC)A..(. nos programas de e6emplo+

    888888888888888888888888888888888888888888888888888888888888888888888

    ?nclude 'ABAP$"$X( C(P:?*1XC)A..(.

    888888888888888888888888888888888888888888888888888888888888888888888

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXe6ceptionXdemo 5(U?1?:?*1

    8888888888888888888888888888888888888888888888888888888888888888888888

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXe6ceptionXdemo 5(U?1?:?*1+

    P>B)?C .(C:?*1+ (:H*5.; dumpXFactorD

    simpleXcatc3

    cleanupXli2e RA?.?1= c6XsDXerodi2ide

    cleanupXdead RA?.?1= c6XsDXerodi2ide

    propagating RA?.?1= c6XsDXerodi2ide+

    PR?VA:( .(C:?*1+

    5A:A; result :SP( i+

    (15C)A..+ lclXe6ceptionXdemo 5(U?1?:?*1

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXe6ceptionXdemo ?P)((1:A:?*1

  • 7/25/2019 ABAP Oberdan

    102/145

    8888888888888888888888888888888888888888888888888888888888888888888888

    8888888888888888888888888888888888888888888888888888888888888888888888

    C)A.. lclXe6ceptionXdemo ?P)((1:A:?*1+

    (:H*5 dumpXFactorD+

    result $ ` "+

    (15(:H*5+ dumpXFactorD

    (:H*5 simpleXcatc3+

    :RS +

    result $ ` "+

    CA:CH c6XsDXerodi2ide+

    WR?:(; ` z(6ecutou o CA:CH do m,todo .?P)(XCA:CH+z+

    (15:RS+

    (15(:H*5+ simpleXcatc3

    (:H*5 cleanupXli2e+

    :RS +

    result $ ` "+

    C)(A1>P+

    WR?:(; ` z(6ecutou o Cleanup do m,todo C)(A1>PX)?V(+z+

    (15:RS+

    (15(:H*5+ cleanupXli2e

    (:H*5 cleanupXdead+

    :RS +

    result $ ` "+

    CA:CH c6XsDXerodi2ide+

    WR?:(; ` z(6ecutou o CA:CH do m,todo C)(A1>PX5(A5z+

    C)(A1>P+

    o programa nunca e6ecutar% o C)(A1>P+

  • 7/25/2019 ABAP Oberdan

    103/145

    WR?:(; ` z(6ecutou o Cleanup do m,todo C)(A1>PX5(A5+z+

    (15:RS+

    (15(:H*5+ cleanupXdead

    (:H*5 propagating+

    result $ ` "+

    (15(:H*5+ propagating

    (15C)A..+ lclXe6ceptionXdemo ?P)((1:A:?*1

    &, /aABAP101KEXCEPTIONKCLASSEShosted with by&=+

    * primeiro programa ue mostrarei , um programa cu4a sada, um 5>PNf .im uando o sistema c3ega a algumasitua&o onde ele no consegue seguir com o programacomo por e6emplo uma di2iso por ero+

    888888888888888888888888888888888888888888888888888888888888888888888

    Report 'ABAP$"$X(^C(P:?*1X5>P

    888888888888888888888888888888888888888888888888888888888888888888888

    888888888888888888888888888888888888888888888888888888888888888888888

    R(P*R: abap$"$Xe6ceptionXdump+

    ?1C)>5( abap$"$Xe6ceptionXclasses+

    5A:A; rXdemo :SP( R(U :* lclXe6ceptionXdemo+

    https://gist.github.com/furlan/2580773/raw/80732b64ddff44d35d1fdcc3b2c33eaadfe22d06/ZABAP101_EXCEPTION_CLASSEShttps://gist.github.com/furlan/2580773#file-zabap101_exception_classeshttps://gist.github.com/furlan/2580773#file-zabap101_exception_classeshttps://github.com/https://gist.github.com/furlan/2580773/raw/80732b64ddff44d35d1fdcc3b2c33eaadfe22d06/ZABAP101_EXCEPTION_CLASSEShttps://gist.github.com/furlan/2580773#file-zabap101_exception_classeshttps://github.com/
  • 7/25/2019 ABAP Oberdan

    104/145

    .:AR:8*U8.()(C:?*1+

    CR(A:( *BJ(C: rXdemo+

    :RS +

    rXdemo89dumpXFactorD- 0+

    CA:CH c6XsDXerodi2ide+

    WR?:(; ` z(6ecutou o CA:CH do programa principal+z+ (15:RS+

    &, /aABAP101KEXCEPTIONKDUMPhosted with by&=+

    [uando o programa tenta Faer uma di2iso por ero aseguinte tela , mostrada+ :oda a pil3a de e6ecu&o ,

    eliminada e toda a memEria usada pelo programa , apagada+

    https://gist.github.com/furlan/2291819/raw/07bd237a50a3c2adea81d13750e5b6a4ac371afc/ZABAP101_EXCEPTION_DUMPhttps://gist.github.com/furlan/2291819#file-zabap101_exception_dumphttps://gist.github.com/furlan/2291819#file-zabap101_exception_dumphttps://github.com/https://gist.github.com/furlan/2291819/raw/07bd237a50a3c2adea81d13750e5b6a4ac371afc/ZABAP101_EXCEPTION_DUMPhttps://gist.github.com/furlan/2291819#file-zabap101_exception_dumphttps://github.com/
  • 7/25/2019 ABAP Oberdan

    105/145

    as gra&as ao tratamento de e6ce&o por classes 2oc podedier para o sistema Mtente e6ecutar essa opera&o e se casoaconte&a di2iso por ero e6ecute issoO+

    1esse primeiro programa onde o 5>P , e2itado o m,todo.?P)(XCA:CH- 0 , c3amado+ 1a implementa&o do m,todoele tenta -:RS0 e6ecutar uma di2iso por ero ue , tratada-CA:CH0 dentro do prEprio m,todo+

    888888888888888888888888888888888888888888888888888888888888888888888

    Report 'ABAP$"$X(^C(P:?*1XBA.?C

  • 7/25/2019 ABAP Oberdan

    106/145

    888888888888888888888888888888888888888888888888888888888888888888888

    888888888888888888888888888888888888888888888888888888888888888888888

    R(P*R: abap$"$Xe6ceptionXbasic+

    ?1C)>5( abap$"$Xe6ceptionXclasses+

    5A:A; rXdemo :SP( R(U :* lclXe6ceptionXdemo+

    .:AR:8*U8.()(C:?*1+

    CR(A:( *BJ(C: rXdemo+

    :RS +

    rXdemo89simpleXcatc3- 0+

    CA:CH c6XsDXerodi2ide+

    WR?:(; ` z(6ecutou o CA:CH do programa principal+z+

    (15:RS+

    &, /aABAP101KEXCEPTIONKBASIChosted with by&=+

    Repare ue a a e6ce&o , tratada dentro do prEprio m,todoportanto a mensagem M(6ecutou o CA:CH do m,todo.?P)(XCA:CH+O , impressa no lugar do 5>P+ A sada do

    https://gist.github.com/furlan/2291831/raw/51e0c4ae146b0231d4601a42945b7b33677608f7/ZABAP101_EXCEPTION_BASIChttps://gist.github.com/furlan/2291831#file-zabap101_exception_basichttps://github.com/https://gist.github.com/furlan/2291831/raw/51e0c4ae146b0231d4601a42945b7b33677608f7/ZABAP101_EXCEPTION_BASIChttps://gist.github.com/furlan/2291831#file-zabap101_exception_basichttps://github.com/
  • 7/25/2019 ABAP Oberdan

    107/145

    programa acima , mostrada abai6o;

    Propaga&o de (6ce&o

    Con3e&o muitas euipes onde esse conceito , muito bem

    diFundido ou se4a uma pessoa decide no ser respons%2elpelo erro ue cometeu e decide passar o erro para outrapessoa corrigir+ Pois , no ABAP temos algo parecido+ Ve4aesse programa;

    888888888888888888888888888888888888888888888888888888888888888888888

    Report 'ABAP$"$X(^C(P:?*1XPR*P

    888888888888888888888888888888888888888888888888888888888888888888888

    888888888888888888888888888888888888888888888888888888888888888888888

    R(P*R: 'ABAP$"$X(^C(P:?*1XPR*P+

    ?1C)>5( abap$"$Xe6ceptionXclasses+

    5A:A; rXdemo :SP( R(U :* lclXe6ceptionXdemo+

    .:AR:8*U8.()(C:?*1+

  • 7/25/2019 ABAP Oberdan

    108/145

    CR(A:( *BJ(C: rXdemo+

    :RS +

    rXdemo89propagating- 0+

    CA:CH c6XsDXerodi2ide+

    WR?:(; ` z(6ecutou o CA:CH do programa principal+z+

    (15:RS+

    &, /aABAP101KEXCEPTIONKPROPhosted with by&=+

    [uando o m,todo PR*PA=A:?1=- 0 , c3amado uma di2isopor ero , e6ecutada+ *bser2e ue esta di2iso no est%sendo tratada com o :RS8CA:CH e 2e4a a sada do programa;

    * segredo est% na declara&o do m,todo; M(:H*5.propagating RA?.?1= c6XsDXerodi2ide+O (6iste uma instru&oRA?.?1= ue di e6atamente o ue algumas pessoas ue

    con3e&o Faem Mol3a pode ser ue uma di2iso por eroaconte&a e se isso acontecer 2oc vuem est% c3amando om,todow de2er% tratar essa e6ce&oO+

    .endo assim a e6ce&o precisou ser tratada na c3amada dom,todo e no mais dentro do m,todo+

    [ual Forma usar a do primeiro programa ou essaf 5epende+

    .e 2oc uer passar a responsabilidade do tratamento parauem c3ama o m,todo ento o segundo programa de2e ser

    https://gist.github.com/furlan/2350991/raw/f4d8705488a39c09e463a94fc8180af82592611a/ZABAP101_EXCEPTION_PROPhttps://gist.github.com/furlan/2350991#file-zabap101_exception_prophttps://github.com/https://github.com/https://gist.github.com/furlan/2350991/raw/f4d8705488a39c09e463a94fc8180af82592611a/ZABAP101_EXCEPTION_PROPhttps://gist.github.com/furlan/2350991#file-zabap101_exception_prophttps://github.com/
  • 7/25/2019 ABAP Oberdan

    109/145

    usado+ as se o erro , algo interno do m,todo e precisa sertratado de maneira transparente do usu%rio ento 2ocde2er% tratar a e6ce&o dentro do prEprio m,todo assimcomo Fora Feito no primeiro programa+

    * ue acontece se no tratarmos a e6ce&o na c3amada dom,todof (6perimente

    C)(A1>P no , WH(1 *:H(R. do:ratamento de (6ce&P no , uma esp,cie de WH(1 *:H(R. do :RS8CA:CH+ Para ilustrar o uso do C)(A1>P 2e4a o programaabai6o;

    888888888888888888888888888888888888888888888888888888888888888888888

    Report 'ABAP$"$X( C(P:?*1XC)(A1

    888888888888888888888888888888888888888888888888888888888888888888888

    888888888888888888888888888888888888888888888888888888888888888888888

  • 7/25/2019 ABAP Oberdan

    110/145

    R(P*R: 'ABAP$"$X(^C(P:?*1XC)(A1+

    ?1C)>5( abap$"$Xe6ceptionXclasses+

    5A:A; rXdemo :SP( R(U :* lclXe6ceptionXdemo+

    .:AR:8*U8.()(C:?*1+

    CR(A:( *BJ(C: rXdemo+

    :RS +

    rXdemo89cleanupXli2e- 0+

    CA:CH c6XsDXerodi2ide+ WR?:(; ` z(6ecutou o CA:CH do programa principal+z+

    (15:RS+

    &, /aABAP101KEXCEPTIONKCLEANhosted with by&=+