abap web dynpro - pratica 2
TRANSCRIPT
-
ABAP Web Dynpro Prtica 2
Pgina | 1
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 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
-
ABAP Web Dynpro Prtica 2
Pgina | 3
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 4
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 5
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 6
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:
-
ABAP Web Dynpro Prtica 2
Pgina | 7
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 8
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 9
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 10
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.
-
ABAP Web Dynpro Prtica 2
Pgina | 11
Aps os objetos ativados, podemos testar a Application: