Quiz

Exame de ABAP

1. Das opções abaixo quais são exemplos de tipos primitivos?

 
 
 
 
 
 

2. Em quais das opções abaixo está sendo usado um tipo primitivo incompleto?

 
 
 
 

3. Qual dos itens abaixo não armazena espaço em memória?

 
 
 
 

4. Qual das declarações abaixo é inválida?

 

Opção 1

TYPES moeda TYPE wears.
DATA v_moeda TYPE moeda.

Opção 2

TYPES moeda TYPE wears.
DATA v_moeda LIKE moeda.

Opção 3

TYPES moeda TYPE wears.
DATA v_moeda TYPE wears.

Opção 4

DATA moeda TYPE wears.
DATA v_moeda LIKE moeda.

 

 
 
 
 

5. Qual dos objetos de dados abaixo não pode ter seu valor manipulado usando o depurador?

 
 
 
 
 

6. Considere o programa abaixo.

REPORT zprog.

PARAMETERS p_carrid TYPE spfli-carrid.

START-OF-SELECTION.

PERFORM write_input.

FORM write_input.
WRITE p_carrid.
ENDFORM.

 

Quais das afirmações abaixo é verdadeira?

 

 
 
 
 

7. Considere o programa abaixo:

REPORT zprog.

PARAMETERS p_carrid TYPE spfli-carrid.

START-OF-SELECTION.

PERFORM write_input USING p_carrid.

FORM write_input USING carrid TYPE s_carrid.
WRITE carrid.
ENDFORM.

 

 

 
 
 

8. Para usar um módulo de função em uma aplicação é necessário antes importar o grupo de função que o pertence. Esta afirmação é:

 
 

9. Considerando que existe o módulo de função chamado Z_SELECT_BKPF_BY_BUKRS exista no grupo de função SAPLZSELECT_BKPF, é possível haver um outro módulo com mesmo nome num outro grupo de funções?

 
 
 
 

10. Você chama uma função que pode disparar 3 diferentes exceções “clássicas” (disparadas via o comando RAISE nome_da_exceção).  O que acontece caso a segunda exceção seja disparada?

 
 
 
 

11. Você altera um módulo de função criado em 2001 para lançar uma nova exceção de acordo com alguma lógica desenvolvida por você. Quais aplicações são impactadas?

 
 
 
 
 

12. Você precisa passar uma tabela interna como parâmetro de importação para um grupo de função. Qual a melhor maneira para fazer isso?

 
 
 
 

13. Quais são os tipos de tabela interna disponíveis?

 

 
 
 
 

14. Dos objetos do repositório criados no dicionário (SE11), quais são aqueles que não podem ser usados para definição de tipos de variáveis?

 
 
 
 
 
 
 
 
 

15. Você pressiona F1 para obter ajuda de um Parameter. Supondo que a documentação aberta foi definida no dicionário, em qual tipo de objeto do repositório esta documentação foi criada?

 
 
 
 

16. Você alterou um módulo de função que importava um parâmetro até então opcional mas que agora deve ser passado por quem chama a função. Quais ferramentas podem o auxiliar descobrir os programas impactados?

 
 
 
 

17. Considere a tabela interna sorted abaixo:

DATA t_spfli TYPE SORTED TABLE OF ty_spfli WITH UNIQUE KEY CARRID CONNID.

CARRID CONNID

AA   0017

AA  0064

LH 0400

LH 0600

Você quer inserir o registro JP 0500 na posição de número 3 da tabela, qual instrução abaixo deveria utilizar?

 
 
 
 

18. Considere o programa abaixo.

 

REPORT zprog.

DATA v_carrid TYPE s_carrid.
DATA t_scarr TYPE TABLE OF scarr.
SELECT-OPTIONS s_carrid FOR v_carrid.

SELECT *
FROM scarr
INTO TABLE t_scarr
WHERE
carrid = s_carrid.

BREAK-POINT.

 

Supondo que o usuário não preencha o select-options. Ao cair na instrução BREAK-POINT, qual das instruções abaixo é/são verdadeiras?

 
 
 
 

19. Você tem um report o qual o campo empresa é declarado usando um Parameter. É pedido para que ao invés de permitir a entrada de somente um valor para este campo seja permitida a entrada de um conjunto de dados.

O que melhor resolve a necessidade acima?

 
 
 
 
 

20. É pedido para que se crie uma tela de seleção na qual os usuários da fábrica não possam preencher o intervalo “unidade” mas que possam ver seus valores antes de executarem o report. Ainda, é pedido que os gerentes gerais possam executar o mesmo programa preenchendo tal intervalo. O que deveria ser feito a respeito sabendo que a aplicação foi comprada por um parceiro da SAP que é responsável pela manutenção desta aplicação?

 
 
 
 

21. Você precisa criar um ativo fixo no sistema via código ABAP. O que você faz?

 
 
 
 

22. Você cria uma tabela Z de customizing independente de mandante na qual é selecionada numa aplicação Z.

Logo, você nota que é preciso fazer um INNER JOIN da sua tabela com uma outra tabela, criada pela SAP, que contém dados mestre, dependentes de mandante.

Isso significa que:

 

 
 
 
 

23. Seu cliente possui uma tabela Z na qual é alimentada em 30 aplicações diferentes. Você notou que existe um objeto de bloqueio para esta tabela no dicionário.

Logo, é possível afirmar que não existe a possibilidade de duas aplicações sendo executadas concorrentemente atualizarem o mesmo registro na tabela.

A afirmação abaixo é:

 
 

24. Considere o programa abaixo.

REPORT zprog.

DATA wa_spfli TYPE spfli.
SELECT *
FROM spfli
INTO wa_spfli
WHERE
carrid = ‘AA’.

WRITE: / wa_spfli-connid.

ENDSELECT.

 

Você executa este programa em desenvolvimento e nota que ele imprimiu apenas um registro. Quais das afirmações abaixo são verdadeiras?

 
 
 
 
 

25. Você está desenvolvendo uma validação no PAI de uma aplicação do tipo module pool. Caso os campos entrados pelo usuário estejam inválidos de acordo com uma regra de negócio, uma mensagem de erro deve ser disparada e apenas os campos validados devem permitir a entrada de dados para corrigir o preenchimento.

Seu colega diz que você deve usar a adição DISPLAY LIKE do comando MESSAGE para não abortar a aplicação e utilizar uma mensagem de sucesso para manter os campos em aberto.

Você deveria seguir a sugestão do seu colega?

 
 

26. Você usou uma estrutura do dicionário para desenhar campos de uma tela. Ao tentar preencher os campos com valores inicias no PAI da tela anterior que chama a sua tela, você nota que seu programa não está ativando. O que deveria ser feito para corrigir este problema?

 
 
 

27. Você precisa definir um botão numa nova tela que desenvolveu que deve ignorar validações automáticas do sistema na tela em que ele é exibido.

O que precisa ser feito?

 
 
 
 

28. Você está dando manutenção em uma user exit dentro de um module pool. A rotina em questão está sendo de uma outra que utiliza a instrução LOOP AT SCREEN.

Pode-se afirmar que a user exit é chamada num módulo do tipo:

 
 

29. Qual a melhor maneira para usar textos e documentações traduzidas em campos de entrada uma aplicação module pool?

 
 
 

30. Veja o código abaixo:

REPORT zprog.

CLASS lcl_a DEFINITION.

ENDCLASS.

CLASS lcl_b DEFINITION.

ENDCLASS.

CLASS lcl_c DEFINITION.

ENDCLASS.

DATA a TYPE REF TO lcl_a.
DATA b TYPE REF TO lcl_b.

DO 5 TIMES.

CREATE OBJECT a.

ENDDO.


 

Quantos objetos existem em memória?

 
 
 
 
 
 

31. REPORT zprog.

INTERFACE lif_i.
DATA p_1 TYPE i.
ENDINTERFACE.

CLASS lcl_a DEFINITION.
PUBLIC SECTION.
CLASS-DATA count TYPE string.
ENDCLASS.

CLASS lcl_b DEFINITION.
PUBLIC SECTION.
INTERFACES lif_i.
ENDCLASS.

CLASS lcl_c DEFINITION.
PUBLIC SECTION.
INTERFACES lif_i.
ENDCLASS.

DATA a1 TYPE REF TO lcl_a.
DATA a2 TYPE REF TO lcl_a.
DATA b1 TYPE REF TO lcl_b.
DATA b2 TYPE REF TO lcl_b.

CREATE OBJECT a1.

CREATE OBJECT b1.

CREATE OBJECT a2.

CREATE OBJECT b2.


Quantas variáveis primitivas existem em memória?

 
 
 
 
 
 

32. Um método funcional pode ser usado no meio de uma expressão, como na linha de comando abaixo.

v_total = v_total + r_obj->get_valor( ).

Assinale as opções corretas abaixo.

 
 
 
 
 
 

33. Você tenta criar uma subclasse de uma classe Z mas a verificação de sintaxe te impede de realizar tal procedimento.

Seu colega A diz que tal procedimento não vai funcionar pois a classe sendo herdada é abstrata.

Seu colega B diz que tal procedimento não vai funcionar pois a classe sendo herdada é final.

Seu colega C diz que tal procedimento não vai funcionar enquanto você não definir um método com o nome “constructor” na sua subclasse.

 

Você consegue resolver este problema e nota que o atributo BUKRS da classe herdada não está presente na sua nova classe e convence seus colegas que deveria estar.

Seu colega A diz que você deveria alterar  a definição do atributo na classe mãe.

Seu colega B diz que tal procedimento não vai funcionar pois o atributo BUKRS na classe sendo herdada é final.

Seu colega C diz que basta incluir este atributo na sua subclasse.

 

Você consegue resolver este problema e antes de finalizar sua classe, precisa impedir que outras classes criem objetos desta primeira.

Seu colega A diz que basta definir o constructor na sessão privada.

Seu colega B diz que basta definir o constructor como final.

Seu colega C diz que basta definir o constructor como estático.

 

Quantas vezes cada um de seus colegas te ajudou?

 
 
 
 
 
 
 
 
 

34. Uma interface possui 3 métodos e é usada em 3 classes diretamente. Quantas implementações de métodos desta interface há sabendo que:

  • Há apenas um objeto da A primeira classe criado na aplicação.
  • A segunda classe que implementa a interface não foi usada para declarar objetos
  • A terceira classe foi instanciada três vezes na aplicação.
 
 
 
 

35. Você gostaria de usar a classe CL_SALV_TABLE para criar dois ALVs na mesma tela. É possível?

 
 
 

36. Você deseja traduzir uma coluna de um ALV para vários idiomas. Considerando que haverá outros ALVs com esta coluna em outras aplicações, o mais recomendado seria:

 
 

37. Você está usando eventos de orientação a objetos e precisa que a classe que trata o evento “ouça” apenas uma instância da classe que dispara o evento.

Isso deve ser feito em qual comando?

 
 
 
 

38. Qual comando pode ser usado dentro de uma user exit sem causar impacto na aplicação como um todo? Considere que desempenho não é um problema possível neste cenário e que haverá manutenções nesta mesma user exit no futuro.

 
 
 
 

39. Supondo que você esteja implementando 2 user exits da mesma aplicação para resolver o mesmo requisito. Você precisa transferir dados de uma para a outra.

Quais as possíveis formas de se fazer isso?

 
 
 
 

40. Ao implementar uma customer exit, deve-se ativar sua implementação. É possível fazer isso através de duas transações: SMOD (onde as ampliações são criadas pela SAP) e CMOD (onde projetos são definidos pelo cliente).

Supondo que você precise desativar uma implementação de desenvolvimento para conferir se ela é a causa de um Dump em produção. Você não quer que esta alteração gere um transporte visto que você ainda não está 100% seguro que a causa raiz é a implementação da customer exit.

Qual transação você usa para desativar a implementação para fins de teste?

 
 

41. Em quais das técnicas de enhancement abaixo você pode usar variáveis declaradas no TOP include da aplicação sem o uso de ponteiros (FIELD-SYMBOLS)?

 

 
 
 
 

42. Um enhancement (ampliação) na SMOD sempre pode conter vários projetos na CMOD

Um enhancement (ampliação) na SMOD pode conter vários projetos na CMOD

 

Um enhancement (ampliação) na SMOD sempre pode conter vários projetos ativos na CMOD

Um enhancement (ampliação) na SMOD pode conter vários projetos ativos na CMOD

 

Uma BAdI na SE18 sempre pode conter várias implementações de BAdI na SE19

Uma BAdI na SE18 pode conter várias implementações de BAdI na SE19

 

Uma BAdI na SE18 sempre pode conter várias implementações ativas de BAdI na SE19

Uma BAdI na SE18 pode conter várias implementações ativas de BAdI na SE19

 

Quantas das afirmações acima são verdadeiras?

 

 
 
 
 
 
 
 
 
 

43. Voce precisa verificar se um determinado registro está numa tabela interna. Qual comando deve ser utilizado?

 
 
 
 

44. Você implementa um SELECT dentro de um método proveniente de uma BAdI. A chamada a BadI sempre acontece e está localizada num módulo PBO de uma aplicação com 6 telas. Quantas chamadas são feitas no banco de dados ao executar a aplicação passando por todas as telas somente uma vez?

 
 
 
 

45. Uma aplicação Web Dynpro pode ser aberta em dispositivos móveis.

 
 

46. Como e onde é feita a navegação entre visões num componente web dynpro?

 
 
 
 
 

47. Você precisa compartilhar dados em várias visões de um componente web dynpro. Onde estes dados devem estar definidos?

 
 
 
 

48. Você quer criar uma tabela numa visão de um web dynpro. Os dados que alimentarão esta tabela (que pode estar vazia) devem estar num nó com cardinalidade:

 
 
 
 

49. Um componente Web Dynpro segue o paradigma MVC quando:

 
 
 
 

50. Como é feito data binding em aplicações web dynpro?

 
 
 
 

10 Responses

  1. abap says:

    17 nao tem resposta correta.

    • Fábio Pagoti says:

      Por que nao?

      • abap says:

        APPEND wa TO t_spfli. – impossivel, pois é sorted;

        APPEND wa TO t_spfli INDEX 3. – nao existe complemento INDEX no comando APPEND;

        READ TABLE t_spfli INDEX 3 INTO wa. – … ;

        INSERT wa INTO TABLE t_spfli. – idem a. mas nesse caso só é possivel com o complemento INDEX 3;

        • Fábio Pagoti says:

          Você está errado quanto ao item D.

          Retirado do help do comando INSERT:

          INSERT itab

          Syntax

          INSERT line_spec INTO itab_position [result].

          Effect

          This statement adds one or more rows line_spec to a position itab_position in an internal table. The position can be specified using the primary table key or a table index. Use result when appending a single row to set a reference to the appended row in the form of a field symbol or a data reference.

          (…)

          Alternative 1

          … TABLE itab

          For sorted tables, each new row is inserted into the sort order of the internal table in accordance with its key values with respect to the primary key. The row numbers in the primary table index of the following rows are increased by one. If the internal table has a non-unique key, duplicate entries are inserted before the existing row.

          Prova:

          TYPES tt_spfli TYPE SORTED TABLE OF spfli WITH UNIQUE KEY carrid connid.

          DATA(t_spfli) = VALUE tt_spfli(
          ( carrid = ‘AA’ connid = ‘0010’ )
          ( carrid = ‘AA’ connid = ‘0064’ )
          ( carrid = ‘LH’ connid = ‘0400’ )
          ( carrid = ‘LH’ connid = ‘0600’ )
          ).

          DATA(wa) = VALUE spfli( carrid = ‘JP’ connid = ‘0500’ ).

          INSERT wa INTO TABLE t_spfli.

          LOOP AT t_spfli ASSIGNING FIELD-SYMBOL().

          WRITE: / -carrid, -connid.

          ENDLOOP.

  2. Miguel says:

    O QUIZ não está mais no ar?

    • Fábio Pagoti says:

      Olá Miguel..

      O link ficou quebrado por conta de uma atualização que fizemos no site… mas já está de volta.

      Boa sorte!

  3. Fernando Silva says:

    Tentei fazer o quiz , mas parece que nao esta mais no ar… Tentei me cadastrar no blog e nao consegui.

    • Fábio Pagoti says:

      Olá Fernando.

      Olá Miguel..

      O link ficou quebrado por conta de uma atualização que fizemos no site… mas já está de volta.

      Não é preciso fazer o cadastro para realizar o quiz.

      Boa sorte!

  4. Jorge ABAP says:

    Sou burro,errei quase tdo kkkkk n sei como ganho $ com isso rs

  1. August 11, 2015

    […] Quiz de ABAP […]

Comente e aprenda mais!