Anda di halaman 1dari 11

ABAP Web Dynpro Prtica 2

Navegao entre Views


Neste prximo exemplo, vamos estender a funcionalidade de nosso componente Pesquisa de Vos, adicionando uma View que ir exibir uma mensagem ao usurio, caso a pesquisa no tenha encontrado nenhum vo para o filtro selecionado.

Pgina | 1

ABAP Web Dynpro Prtica 2

Passo 1 Criando uma nova View


Para 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

Pgina | 2

ABAP Web Dynpro Prtica 2


Passo 2 Mapeando dados no Context Criaremos agora os dados que desejamos estar disponveis em nossa View. Na aba Context da nova View NO_RESULT, arraste para o Context da View os ns DESTINATION_FROM e DESTINATION_TO do Context do Controller do Componente.

Tambm criaremos um novo atributo no Context da View NO_RESULT. Este atributo no ser poder ser mapeado, pois tem origem em um View Controller.

Pgina | 3

ABAP Web Dynpro Prtica 2

Entre com os dados para o atributo.

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

Pgina | 4

ABAP Web Dynpro Prtica 2

Selecione o atributo a ser ligado.

Passo 3 Adicionado os Plugs de navegao


Salve 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.

Pgina | 5

ABAP Web Dynpro Prtica 2

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

Salve a View NO_RESULT.

Passo 4 Disparando o evento de navegao


Para o prximo passo, voltamos a View MAIN. Na aba Actions, vamos modificar a implementao da Action SEARCH.

Posicione o cursor abaixo da chamada ao mtodo da BAPI e clique no boto Code Wizard Selecione Read Context e selecione o n FLIGHT_LIST:

Pgina | 6

ABAP Web Dynpro Prtica 2


Todo o cdigo necessrio para ler o n do Context automaticamente montado. Note tambm que alguns pontos so deixados para o desenvolvedor injetar cdigo customizado. Estes pontos so identificados com comentrios @TODO.

Aps a leitura do n no Context, executada pela mtodo GET_CHILD_NODE do objeto WD_CONTEXT, feita uma verificao para apurar se foram encontrados resultados para a pesquisa. Dentro deste trecho, iremos incluir a chamada ao evento de navegao que ira levar o usurio at a View NO_RESULT. Isto feito atravs do Outbound Plug NO_RESULT_FOUND. Posicione o cursor na linha entre o segundo IF .. IS INITIAL e o ENDIF correspondente e clique no boto Code Wizard novamente. Lembre-se de apagar o cdigo gerado aps este IF.

Selecione a opo Start navigation e selecione o Outbound Plug NO_RESULT_FOUND.

Pgina | 7

ABAP Web Dynpro Prtica 2


Novamente, o cdigo necessrio gerado.

Crie um novo Outbound Plug para voltar a View MAIN.

Salve e v para a View NO_RESULT. Na aba layout, selecione o boto Nova pesquisa. Vamos criar uma Action para o evento OnAction deste boto:

Para facilitar, ao criar uma Action, possvel indicar um Outbound Plug a ser disparado no mtodo que ir implementar esta Action. Selecione o Outbound Plug criado.

A Action criada e o mtodo automaticamente implementado, disparando o evento de navegao.

Pgina | 8

ABAP Web Dynpro Prtica 2

Ainda na View NO_RESULT, v para a aba Methods. Note que foi criado um novo mtodo chamado HANDLEDISPLAY_NO_RESULT, o qual foi gerado automaticamente ao criarmos o Inbound Plug DISPLAY_NO_RESULT. Neste mtodo, podemos montar o texto a ser mostrado no TextView desta View. Inicialmente, devemos recuperar os valores da pesquisa. Isso feito atravs dos dados j disponveis no Context desta View. Novamente usaremos o Code Wizard para ler os dados do Context. Lembre-se de posicionar o cursor na posio correta no editor.

Pgina | 9

ABAP Web Dynpro Prtica 2

Agora temos os dados necessrios para montar a mensagem.


* Monta a mensagem --------------------------------------------------* DATA: l_msg_text TYPE string. CONCATENATE 'Nenhum vo 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 Window


Para que possamos testar nossa aplicao, 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. Pgina | 10

ABAP Web Dynpro Prtica 2


Aps os objetos ativados, podemos testar a Application:

Pgina | 11