abap web dynpro - pratica 2

12
ABAP Web Dynpro – Prática 2 Navegação entre Views Neste próximo exemplo, vamos estender a funcionalidade de nosso componente Pesquisa de Vôos, adicionando uma View que irá exibir uma mensagem ao usuário, caso a pesquisa não tenha encontrado nenhum vôo para o filtro selecionado. Página | 1

Upload: walissonrenata-tomaz

Post on 05-Dec-2014

222 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Navegação entre Views

Neste próximo exemplo, vamos estender a funcionalidade de nosso componente Pesquisa de Vôos, adicionando uma View que irá exibir uma mensagem ao usuário, caso a pesquisa não tenha encontrado nenhum vôo para o filtro selecionado.

Página | 1

Page 2: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Passo 1 – Criando uma nova ViewPara exibir uma mensagem, vamos criar uma nova View, adicionar um elemento TextView e um elemento Button.

Preencha os dados para a nova View.

Adicione os elementos TextView e Button

Página | 2

Page 3: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Passo 2 – Mapeando dados no Context

Criaremos agora os dados que desejamos estar disponíveis em nossa View.

Na aba Context da nova View NO_RESULT, arraste para o Context da View os nós DESTINATION_FROM e DESTINATION_TO do Context do Controller do Componente.

Página | 3

Page 4: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Também criaremos um novo atributo no Context da View NO_RESULT. Este atributo não será poderá ser mapeado, pois tem origem em um View Controller.

Entre com os dados para o atributo.

Página | 4

Page 5: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Utilizaremos o Data Binding para ligar o novo atributo criado ao TextView adicionado em nossa View NO_RESULT.

Selecione o atributo a ser ligado.

Página | 5

Page 6: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Passo 3 – Adicionado os Plugs de navegaçãoSalve a View NO_RESULT e volte para a View MAIN.

Na View MAIN, vá para a aba Outbound Plug e crie um novo Outbound Plug chamado NO_RESULT_FOUND.

Na View NO_RESULT, crie agora um Inbound Plug chamado DISPLAY_NO_RESULT.

Salve a View NO_RESULT.

Passo 4 – Disparando o evento de navegaçãoPara o próximo passo, voltamos a View MAIN. Na aba Actions, vamos modificar a implementação da Action SEARCH.

Página | 6

Page 7: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Posicione o cursor abaixo da chamada ao método da BAPI e clique no botão Code Wizard . Selecione Read Context e selecione o nó FLIGHT_LIST:

Todo o código necessário para ler o nó do Context é automaticamente montado. Note também que alguns pontos são deixados para o desenvolvedor injetar código customizado. Estes pontos são identificados com comentários @TODO.

Página | 7

Page 8: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Após a leitura do nó no Context, executada pela método GET_CHILD_NODE do objeto WD_CONTEXT, é feita uma verificação para apurar se foram encontrados resultados para a pesquisa.

Dentro deste trecho, iremos incluir a chamada ao evento de navegação que ira levar o usuário até a View NO_RESULT. Isto é feito através do Outbound Plug NO_RESULT_FOUND.

Posicione o cursor na linha entre o segundo IF .. IS INITIAL e o ENDIF correspondente e clique no botão Code Wizard novamente. Lembre-se de apagar o código gerado após este IF.

Selecione a opção Start navigation e selecione o Outbound Plug NO_RESULT_FOUND.

Novamente, o código necessário é gerado.

Página | 8

Page 9: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Crie um novo Outbound Plug para voltar a View MAIN.

Salve e vá para a View NO_RESULT. Na aba layout, selecione o botão Nova pesquisa.

Vamos criar uma Action para o evento OnAction deste botão:

Para facilitar, ao criar uma Action, é possível indicar um Outbound Plug a ser disparado no método que irá implementar esta Action. Selecione o Outbound Plug criado.

A Action é criada e o método automaticamente implementado, disparando o evento de navegação.

Página | 9

Page 10: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Ainda na View NO_RESULT, vá para a aba Methods. Note que foi criado um novo método chamado HANDLEDISPLAY_NO_RESULT, o qual foi gerado automaticamente ao criarmos o Inbound Plug DISPLAY_NO_RESULT.

Neste método, podemos montar o texto a ser mostrado no TextView desta View. Inicialmente, devemos recuperar os valores da pesquisa. Isso é feito através dos dados já disponíveis no Context desta View.

Novamente usaremos o Code Wizard para ler os dados do Context. Lembre-se de posicionar o cursor na posição correta no editor.

Página | 10

Page 11: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Agora temos os dados necessários para montar a mensagem.

* Monta a mensagem --------------------------------------------------*  DATA: l_msg_text TYPE string.  CONCATENATE 'Nenhum vôo encontrado partindo de'              ls_destination_from-city              'para'              ls_destination_to-city              INTO l_msg_text SEPARATED BY space.  wd_context->set_attribute( name = 'MSG_TEXT' value = l_msg_text ).

Passo 5 – Incluindo a View na WindowPara que possamos testar nossa aplicação, uma última tarefa é embutir a View NO_RESULT a Window principal de nosso Componente. Vá para a Window e abra o menu de contexto na aba Window. Acione o comando Embed View.

Indique a View a ser adicionada. NO_RESULT.

Salve e ative os objetos.

Página | 11

Page 12: ABAP Web Dynpro - Pratica 2

ABAP Web Dynpro – Prática 2

Após os objetos ativados, podemos testar a Application:

Página | 12