ue eu >uero >ue a%are(a- na -in7a lista eu %reciso es%eciKcar a%s a cláusula @!JP BF. CarridO -a,i-u- e -ini-u- s;o ca-%os au,iliares. Se o no-e do database n;o M con7ecido atM runti-e n;o se %ode es%eciKcar a cláusula @!JP BF:. Peruencial na tabela:. •
SE0EC "OM ta%leb B+!SSI B,""E. 9Jsado %ara ler direta-ente da tabela originalO e n;o do buer:. •
!BS.= Select single [ se-%re co- c7ave co-%leta es%eciKcada. Particularidade do Aba%34. Select [ ? %rocurar evitar. Inue ser;o necessáriasO a%enas.
14
ABAP Training 4.. -
-
-
-
-
Dicas para oti!i.aç/o do c@di(o
Jse o co-ando D++ %ara liberar es%a(o e- internal tables Se-%re usar os co-andos Clear 3 euenas. R interessante >ue a tabela interna conten7a os ca-%os na se>uQncia e- >ue ser;o -ovi-entados Ao utili8ar o co-ando CAS+O codiKcar se-%re a cláusula V+ !TV+S Se-%re identiK>ue se u- S!T M ascending ou descending e es%eciK>ue a cláusula BF Keldsh. Caso contrárioO todos os ca-%os ser;o classiKcados. +vitar lgicas do ti%o ID not CP!A CP!B. R -ais claro codiKcar ID CP!A ne CP!B. +vitar constru()es do ti%o= S!T tabela1O S!T tabela2O S!T tabela. H!!P tabela1O H!!P tabela2O H!!P tabela Para cada S!T ue %ossa- restringir a %es>uisa S+H+CT 9%ara Cluster Tables:= s os ca-%os c7aves deve- ser es%eciKcados na cláusula V++. !s de-ais deve- ser c7ecados atravMs do co-ando CV+CU ! con7eci-ento do conteNdo dos dados de u-a tabela %ode au,iliar no -o-ento da codiKca(;o do co-ando select. ! ca-%o >ue ocorrer e- nN-ero -enor de ve8es deverá constar na cláusula 7ere antes da>uele >ue ocorre unN-ero -aior de ve8esO caso se"a necessário satis ue o %rocessa-ento se"a -ais ágil. anuseio de tabelas= +studar a %ossibilidade de -anuseio e- tabelas internas %ara agili8ar o %rocesso. Analisar ta-bM- o uso de co-ando selectO sendo o >ue -el7or se ada%te a situa(;o e- >uest;o.
144
ABAP Training 4..
>erra!entas para a%liar os desenvolvedores
+,iste- algu-asue au,ilia- os desenvolvedores a descobrir erros 9errorsO arningsO etc:O be- co-o avaliar a %er or*enc+ < ;est - R)ntime Analsis
+,iste u- %us7button c7a-ado i)s an( ric$s E Clicando?se nele %oderá serue o %us7button AAHFS+O >ue so-ente a%arecerá de%ois >ue ue %ode ser utili8ada %ara tril7ar a lgica de sua a%lica(;o e veriKcar %ossveis %ontos de corre(;o. WocQ %oderá visuali8ar os co-andos de acesso a banco de dados utili8adosO obter in ue est;o sendo utili8ados 9ver t%ico 5. sobre co-o utili8ar o &?@ ;race:. ! Etended Pro(ra! C+ec5 M outra ue deve ser e-%regada visando -anter o seu cdigo o -ais correto %ossvel. esta o%(;o vocQ %oderá selecionar os tens >ue vocQ dese"a >ue se"a- c7ecados e o siste-a a%ontará o seu %arecer. Para tanto basta clicar os tens e o %us7button P+D! CV+CU Selecionando u-a lin7a vocQ %oderá ver os detal7esO be- co-o %osicionando o cursor e- u-a lin7a e clicando o %us7button $ISPHAF AHH CVA@+S.
145
ABAP Training 4.1/.
Inter:aces #atc+ o% Conversões&
Segundo a docu-enta(;o da SAPO e,iste- trQs -Mtodos %ara convers;o= $irect in%utO Call transaction e o Batc7 In%ut. •
•
•
$irect In%ut= M u- dos -Mtodos %ara transuivo se>uencial co- dados M gerado co-o u- ar>uivo te,to %ara %rocessa-ento %or alguns uais uivo se>uencial e c7a-a a transa(;o dese"ada usando u- co-ando Aba%. $ados de u- ar>uivo se>uencial s;o %rocessados via telas de a%lica(;o %ara u-a Nnica transa(;o. A lgica de a%lica(;o e,ecuta todos os c7ec6s e a valida(;o dos dados. +ste M u- %rocessa-ento sncrono. ]uando o %rocessa-ento do dialog M reali8ado co- sucessoO o %rocessa-ento do u%date M c7a-ado %ela a%lica(;o corres%ondente %ara e,ecutar todas as solicita()es do banco de dados. A escol7a %ode ser ue n;o e,iste u- %rogra-a $irect In%ut. So-ente e- situa()es de lidar co- erros ns reco-enda-os >ue o batc7? in%ut tradicional se"a reali8ado %ara %osterior %rocessa-ento. esu-o= econtraste co- o Batc7?In%utO o Call Transaction %er-ite >ue se"a- %assados dados direta-ente ao dialog inter ual te- a -es-a estrutura da>uela utili8ada no batc7?in%ut:. Antes de entrar dados na B$C table M necessário ue este -Mtodo tra8 sobre o Call Transaction M >ue o batc7?in%ut 14'
ABAP Training te- u- utilitário res%onsável %ela ad-inistra(;o e gerencia-ento dasuivo se>uencial s;o %rocessados via telas de a%lica(;o e ar-a8enados nu-a sess;o batc7?in%ut. Por deKni(;oO u-a sess;o M u-a cole(;o de dados de transa(;o %ara u-a ou -ais transa()es. As sess)es batc7?in%ut s;o Ksica-ente ar-a8enadas %elo siste-a nu- banco de dados co-o u-a Kla. +stas sess)es %ode- conter tanto registros de dados corretos >uanto incorretos. ! batc7?in%ut trata tanto o u%date sncrono co-o o assncrono. ! -Mtodo batc7?in%utO e- contraste co- o -Mtodo Call TransactionO %ode trans ue a transa(;o anterior ten7a sido gravada no corres%ondente banco de dados durante o %rocessa-ento das sess)es de batc7?in%ut. Ta-bM-O sess)es de batc7?in%ut n;o %ode- ser geradas e%aralelo. +le %ode ser %rocessado de trQs -odos= ue erros de integridade se"a- co-etidos. F0I@AO Se-%re e,ecute alguns testes dentro do %rocesso de trans ual M o -Mtodo -ais a%ro%riado %ara usoO dado o volu-e de dadosO ta-an7oO recursos e %er ue tais
14*
ABAP Training Est%do de Caso Cliente X 4.11. 9Parte do relatrio de ]ualit0 Assurance da Dase III: $entro do esco%o do XFG seria necessário o desenvolvi-ento dos seguintes ti%os de %rogra-a= . Convers)es . e%orts . Dor-ulários 9Sa%Scri%t: . Interual>uer ti%o de valida(;o. $o total de inter ue necessita- de u- te-%o de res%osta eKcienteO %ela necessidade de sere- %seudo?online e seu %rocessa-ento ocorrer a cada #,& -inutos . %rogra-as >ue -ani%ula- >uantidades elevadas de dados diaria-ente . grandes tabelas do 3 9>uantidade de registros versus colunas e,istentes: . ue n;o a%resenta- boa %er uando utili8adas co- Knalidades es%ecKcas . áreas de a%lica(;o di ue encontra-?se e-
14/
ABAP Training ]uanto con
R de e,tre-a i-%ortância >ueO alM- dos testes individuaisO se"a- reali8ados testes co- -assa de dados real de %rodu(;oO visando re%rodu8ir ua-biente real durante aue-a de #stress?test& 9co- grande volu-e de dados:. A -assa de dados n;o deve ser gerado %elos desenvolvedores ]uanto uni ue o -anual de Padr)es n;o ue a>uela anterior-ente deKnida. Aconsel7a?se alterar o -anual de Padr)esO citando a nova uisadas via S5 na data de nossa visita. +stes %ontos n;o te- i-%lica()es graves sobre os %rogra-asO todavia so-ente vale a %ena a cria(;o de u-a -etodologia caso ela se"aO de ue esta visa uisa3leitura3-anuten(;o de %rogra-as Ainda dentro do t%ico -etodologia alguns %ontos deveria- estar sendo seguidos= s;o os no-es de variáveis. e- todos os %rogra-as obedeceeste t%ico de ue ui%e tMcnica do XFG Jso de -ensagens K,as ao invMs de te,t?ele-entsO u-a ve8 >ue o 3 aceita várias linguagens e isto M deKnido e- -o-ento de logon no siste-a.
14
ABAP Training ]uanto a %erue se re%etia-. S;o eles= a: in7os de select b: Select [ ao invMs de select co- suas res%ectivas colunas c: Dalta de condi()es na cláusula 7ere %ara li-itar o nN-eros de registros retornados atravMs do co-ando Select d: Tabelas co-o BUPDO BS+@O +UU!O +UP!O WBAUO WBABO UPDO S+@O \Y1BD$!CO \Y1BDHI deve- %ossuirO tantos ca-%os >uanto %ossvel %ara restringir a %es>uisa e busca de dados. e: Jso da ue a co-unica(;o entre o servidor de a%lica(;o e o servidor de banco de dados ue atendesse- a u-a Nnica condi(;o 9%or e,e-%loO cdigo da transa(;o:. R de e,tre-a i-%ortância >ueO e- casos de tabelas grandes 9tanto e- ter-os de volu-e >uanto e- ter-os de >uantidade de colunas: se"arecu%eradas a%enas as in ueO co- o %assar do te-%oO a >uantidade de dados %resentes nestas tabelas estará crescendo e- contra%artidaO 7averá u-a redu(;o da %er uadas. J-a ue este"a- %resentes n;o so-ente na tabela acessada -as ta-bM- na %r,i-a >ue se dese"a acessar. $entro do e,e-%lo aci-aO e- ue resulta nu- caos eter-os de %er ue te-os a base de dados sendo acrescida. AlM- das %recau()es anterioresO as >uais deve- ser a%licadas se-%re >ue %ossvelO vale a %ena -encionar >ue o uso de tabelas internas agili8a -uito o %rocessa-ento. Selects >ueO n)m nico coman#oO se"a- res%onsáveis %or acessar a tabelaO
ABAP Training +ndselect.
g"a7r b6%
+ndselect. [ ! %ri-eiro co-ando seleciona as * colunas da tabela b6%< atravMs do ca-%o TC!$+ >ueO alM- de n;o %ertencer c7ave %ri-ária desta tabelaO ta-bM- M u- critMrio -uito a-%lo %ara %es>uisa e- tabelas deste %orte. Ca-%os co-o co-%an0 codeO dataO ano KscalO entre outrosO %ode- seruisa. [ ! segundo co-ando seleciona as 2'' colunas da tabela bsegO onde os ca-%os bu6rsO belnr e g"a7r se"a- iguais tabela anterior. Co-o na tabela anterior n;o uadoO -uitos registros ser;o retornados da b6%< eO conse>uente-enteO %ara cada u- destes registrosO ser;o retornados #n& registros da BS+@. [A-bos os selects corres%onder;o a tantos acessos no banco de dados >uantos registros e,istire-. Wisando garantir -el7or %er ue n;o M %ossvel ue deve- ser evitados= Vard Code Alguns %rogra-as
151
ABAP Training e,e-%loO c7ecagens de centros 9ca-%o er6s:O conta contábilO etc.O o >ue invalida os %rogra-as caso se"a alterada a conKgura(;o. •
Tabela de contadores ideali8ada %ara controle de %rocessa-entos e re%rocessa-entos n;o M total-ente conKável
Doi criada u-a tabela %ara controle do %rocessa-entoO visando controlar >uais registrosue as transa()es est;o sendo c7a-adas via Call transactionO tMcnica esta >ue %ossui u- co--it %r%rioO e >ue a atuali8a(;o da tabela de controle está nu- outro co--itO %oderá ocorrer situa()es onde a tabela de controle n;o re%resenta e,ata-ente o >ue aconteceu. ecessidades= • •
Stress?test Testes integrados
Comentários-ecomen(a5es ! %onto -ais crtico está associado ao t%ico de %erua()es necessárias. !utro %onto de ue %ossa- ocorrer. estri5es Caso ocorra a entrada e- %rodu(;o se- a altera()es nos %rogra-asO a %er ue as bases de dados ue todas as inter
$e u-aue o desenvovi-ento está bo-O %orMcaso os %rogra-as n;o se"a- revisados e ade>uadosO certa-ente ocorrer;o %roble-as de %er