<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>ABAP 101</title>
	<atom:link href="http://abap101.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://abap101.com</link>
	<description>ABAP &#124; Ruby on Rails &#124; Programação</description>
	<pubDate>Thu, 25 Feb 2010 21:55:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>ALV com Evento - Usando a classe CL_SALV_TABLE</title>
		<link>http://abap101.com/2010/02/18/alv-com-evento-usando-a-classe-cl_salv_table/</link>
		<comments>http://abap101.com/2010/02/18/alv-com-evento-usando-a-classe-cl_salv_table/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 11:28:00 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[ALV]]></category>

		<category><![CDATA[Receita ABAP]]></category>

		<category><![CDATA[event]]></category>

		<category><![CDATA[handler]]></category>

		<category><![CDATA[salv]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=249</guid>
		<description><![CDATA[Problema
Criar uma cópia do relatório ZSALV_ALV_FIELDCAT implementado nesse post, para que seja monstrado uma mensagem quando o usuário der um duplo clique. Nessa mensagem, deve ser apresentado &#8220;Você deu duplo clique na coluna &#38; e linha &#38;.&#8221;, onde &#38; deverá ser substituído pelo nome da coluna e linha onde ocorreu o duplo clique.

Solução

Passo 1: Criar [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="color: #0000ff;">Problema</span></h3>
<p>Criar uma cópia do relatório ZSALV_ALV_FIELDCAT implementado nesse <a href="http://abap101.com/2010/02/16/alv-com-field-catalog-usando-a-classe-cl_salv_table/">post</a>, para que seja monstrado uma mensagem quando o usuário der um duplo clique. Nessa mensagem, deve ser apresentado &#8220;Você deu duplo clique na coluna &amp; e linha &amp;.&#8221;, onde &amp; deverá ser substituído pelo nome da coluna e linha onde ocorreu o duplo clique.</p>
<h3><span style="color: #0000ff;"><span id="more-249"></span></p>
<p>Solução</p>
<p></span></h3>
<p><strong>Passo 1:</strong> Criar um novo include no programa principal. Para isso, colocar a instrução INCLUDE na seguinte posição:</p>
<blockquote><p><span style="font-family: Courier New;">&#8230;<br />
DATA: it_sflight TYPE TABLE OF ty_flight,<br />
wa_sflight LIKE LINE OF it_sflight.</span></p>
<p><span style="font-family: Courier New;"><strong>INCLUDE zsalv_alv_event_incl.</strong></span></p>
<p><span style="font-family: Courier New;">DATA: r_event_handler TYPE REF TO lcl_event_handler.<br />
START-OF-SELECTION.<br />
&#8230;</span></p></blockquote>
<p>Dar um duplo clique no nome do include e confirmar a criação do novo objeto. Garanta que o novo objeto seja do tipo include:</p>
<div><a href="http://abap101.com/wp-content/uploads/2010/02/event1.jpg"><img class="aligncenter size-full wp-image-251" title="SALV Event include" src="http://abap101.com/wp-content/uploads/2010/02/event1.jpg" alt="" width="500" height="331" /></a></div>
<p><strong>Passo 2:</strong> Criar uma classe local para receber e manipular o evento double_click do ALV:</p>
<blockquote>
<pre>*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS: on_user_command FOR EVENT double_click
             OF cl_salv_events_table
              IMPORTING row column.
ENDCLASS.                    "lcl_event_handler DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
  METHOD on_user_command.
    MESSAGE i001(00) WITH
                'Você deu duplo clique na coluna' column 'e linha ' row.
  ENDMETHOD.                    "on_user_command
ENDCLASS.                    "lcl_event_handler IMPLEMENTATION&lt;/font&gt;</pre>
</blockquote>
<p><strong>Passo 3:</strong> Criar um objeto e registrar o evento:</p>
<blockquote><p><span style="font-family: Courier New;">&#8230;<br />
*  Set event handling<br />
</span><span style="font-family: Courier New;"> r_events = r_table-&gt;get_event( ).<br />
</span><span style="font-family: Courier New;"> CREATE OBJECT r_event_handler.<br />
</span><span style="font-family: Courier New;"> SET HANDLER</span><span style="font-family: Courier New;"> r_event_handler-&gt;on_user_command FOR r_events.<br />
&#8230;</span></p></blockquote>
<p>Agora você pode ativar o seu programa e testar.</p>
<h3><span style="color: #0000ff;">Execução e Teste</span></h3>
<p>Para executar e testar o programa, apenas pressione F8 ou <img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/08/alv2.jpg" alt="" width="25" height="27" />:</p>
<div><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/08/alv6.jpg" alt="" width="699" height="362" /></p>
<div>Dar um duplo clique em qualque linha e aí uma mensagem deverá ser apresentada:</p>
<div><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/08/alv8.jpg" alt="" width="432" height="130" /></div>
</div>
</div>
<h3><span style="color: #0000ff;"><strong>Discussão</strong></span></h3>
<p><strong><strong></strong><strong></strong></strong>Os eventos para a CL_SALV_TABLE são um puco diferentes da CL_GUI_ALV_GRID. Já comentei que a classe CL_SALV_TABLE encapsula as funcionalidades do CL_GUI_ALV_GRID, incluindo os eventos.</p>
<p>Quando trabalhamos com <a href="http://abap101.com/2009/08/26/alv-com-evento-usando-a-tecnica-pura/">eventos com a técnica &#8220;pura&#8221;</a>, temos que registrar os eventos e implementar os métodos para tratar esses eventos diretamente da CL_GUI_ALV_GRID. Com as classes &#8220;salv&#8221; temos uma classe que encapsula os eventos do grid, chamada CL_SALV_EVENTS_TABLE.</p>
<p>O evento que uso nesse problema é o DOUBLE_CLICK que é disparado da classe CL_SALV_EVENTS_TABLE. Veja que no evento DOUBLE_CLICK temos os parâmetros COLUMN, nome da coluna onde ocorreu o evento e ROW, que é o número da linha onde ocorreu o evento evento. Com esses dois parêmetros conseguimos identificar a coluna e a linha em que o usuário deu o duplo clique (usando o READ TABLE &#8230; index ROW na tabela de dados do ALV).</p>
<h3><span style="color: #0000ff;">Anexos</span></h3>
<p><a href="http://abap101.furlanserver.com/files/ZSALV_ALV_EVENT.txt">ZSALV_ALV_EVENT.txt</a><br />
<a href="http://abap101.furlanserver.com/files/ZSALV_ALV_EVENT_INCL.txt">ZSALV_ALV_EVENT_INCL.txt</a></p>
<h3><span style="color: #0000ff;">Veja Também</span></h3>
<p><span><a href="http://abap101.com/2008/10/20/exemplos-alvexemplos-alv">ABAP Control Exemples</a></span><br />
<a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/bf/3bd1369f2d280ee10000009b38f889/frameset.htm">ALV at SAP Help</a><br />
<a href="http://abap101.com/2009/08/19/introducao-a-alv-serie-especial/">Introdução ao ALV - Série Especial</a><br />
<a href="http://abap101.com/2009/08/26/alv-com-evento-usando-a-tecnica-pura/">ALV com Evento - Usando a Técnica “Pura”</a><br />
<a href="http://abap101.com/2009/08/21/alv-simples-usando-a-tecnica-pura/"></a></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=28f57b61-fe33-8f61-8fdb-d7ecc09d244b" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2010/02/18/alv-com-evento-usando-a-classe-cl_salv_table/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ALV com Field Catalog - Usando a classe CL_SALV_TABLE</title>
		<link>http://abap101.com/2010/02/16/alv-com-field-catalog-usando-a-classe-cl_salv_table/</link>
		<comments>http://abap101.com/2010/02/16/alv-com-field-catalog-usando-a-classe-cl_salv_table/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 10:00:53 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[ALV]]></category>

		<category><![CDATA[Receita ABAP]]></category>

		<category><![CDATA[ABAP]]></category>

		<category><![CDATA[catalog]]></category>

		<category><![CDATA[field]]></category>

		<category><![CDATA[salv]]></category>

		<category><![CDATA[sap]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=246</guid>
		<description><![CDATA[Problema
Implementar um relatório ALV, para mostrar todos os dados e todos os campos da tabela SFLIGHT. Também é requerido um novo campo chamado Taxa de Ocupação, onde é mostrado a relação entre capacidade máxima de  passageiros e ocupação atual do vôo.

Solução

Passo 1: Criar um programa executável, sem TOP include, ZSALV_ALV_FIELDCAT.
Passo 2: Criar as referências para [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="color: #0000ff;">Problema</span></h3>
<p>Implementar um relatório ALV, para mostrar todos os dados e todos os campos da tabela SFLIGHT. Também é requerido um novo campo chamado Taxa de Ocupação, onde é mostrado a relação entre capacidade máxima de  passageiros e ocupação atual do vôo.</p>
<h3><span style="color: #0000ff;"><span id="more-246"></span></p>
<p>Solução</p>
<p></span></h3>
<p><strong>Passo 1:</strong> Criar um programa executável, sem TOP include, ZSALV_ALV_FIELDCAT.</p>
<p><strong>Passo 2:</strong> Criar as referências para os objetos do grid:</p>
<blockquote><p><span style="font-family: 'Courier New';">DATA: r_table     TYPE REF TO cl_salv_table,</span><br />
<span style="font-family: 'Courier New';"> r_columns   TYPE REF TO cl_salv_columns_table,</span><br />
<span style="font-family: 'Courier New';"> r_column    TYPE REF TO cl_salv_column,</span><br />
<span style="font-family: 'Courier New';"> r_functions    TYPE REF TO cl_salv_functions.</span></p></blockquote>
<p><strong>Passo 3:</strong> Criar uma tabela interna sem header line, fazer a seleção de todos os dados da tablea SFLIGHT e fazer o cálculo da taxa de ocupação.</p>
<blockquote><p><span style="font-family: 'Courier New';">TYPES: BEGIN OF ty_flight.</span><br />
<span style="font-family: 'Courier New';"> INCLUDE TYPE sflight.</span><br />
<span style="font-family: 'Courier New';">TYPES: txocc TYPE p DECIMALS 2,</span><br />
<span style="font-family: 'Courier New';"> END OF ty_flight.</span></p>
<p><span style="font-family: 'Courier New';">DATA: r_table     TYPE REF TO cl_salv_table,</span><br />
<span style="font-family: 'Courier New';"> r_columns   TYPE REF TO cl_salv_columns_table,</span><br />
<span style="font-family: 'Courier New';"> r_column    TYPE REF TO cl_salv_column,</span><br />
<span style="font-family: 'Courier New';"> r_functions TYPE REF TO cl_salv_functions.</span></p>
<p><span style="font-family: 'Courier New';">DATA: it_sflight TYPE TABLE OF ty_flight,</span><br />
<span style="font-family: 'Courier New';"> wa_sflight LIKE LINE OF it_sflight.</span></p>
<p>&#8230;.</p>
<p><span style="font-family: 'Courier New';"> SELECT * FROM sflight INTO TABLE it_sflight.</span></p>
<p><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';"> LOOP AT it_sflight INTO wa_sflight.<br />
wa_sflight-txocc =<br />
( wa_sflight-seatsocc / wa_sflight-seatsmax ) * 100.<br />
MODIFY it_sflight FROM wa_sflight.<br />
ENDLOOP.</span></p></blockquote>
<p><strong>Passo 4:</strong> Criar a referência com o método FACTORY para o objeto ALV:</p>
<blockquote><p><span style="font-family: 'Courier New';">TRY.</span><br />
<span style="font-family: 'Courier New';"> cl_salv_table=&gt;factory(</span><br />
<span style="font-family: 'Courier New';"> IMPORTING</span><br />
<span style="font-family: 'Courier New';"> r_salv_table = r_table</span><br />
<span style="font-family: 'Courier New';"> CHANGING</span><br />
<span style="font-family: 'Courier New';"> t_table      = it_sflight ).</span><br />
<span style="font-family: 'Courier New';">CATCH cx_salv_msg .</span><br />
<span style="font-family: 'Courier New';">ENDTRY.</span></p></blockquote>
<p><strong>Passo 5:</strong> Ajustar os dados para a nova coluna:</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_columns = r_table-&gt;get_columns( ).<br />
r_columns-&gt;set_optimize( abap_true ).</span></p>
<p><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';"> r_column = r_columns-&gt;get_column( &#8216;TXOCC&#8217; ).<br />
r_column-&gt;set_short_text( &#8216;Tx. Occ.&#8217; ).<br />
r_columns-&gt;set_column_position( columnname = &#8216;TXOCC&#8217; position = 10 ).</span></p></blockquote>
<p><strong><br />
Passo 5:</strong> Chamar o método DISPLAY para mostrar os grid:</p>
<blockquote><p><span style="font-family: 'Courier New';">r_table-&gt;display( ).</span></p></blockquote>
<p>Agora você pode ativar o seu programa e testar.</p>
<h3><span style="color: #0000ff;">Execução e Teste</span></h3>
<p>Para executar e testar o programa, apenas pressione F8 ou <img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/08/alv2.jpg" alt="" />:</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2010/02/zsalv-alv-fieldcat.jpg" alt="" width="699" height="476" /></p>
<h3><span style="color: #0000ff;"><strong>Discussão</strong></span></h3>
<p>Na versão Netweaver 04, a SAP introduziu a família de classes CL_SALV*, que basicamente encapsula as operações que fizemos no post <a href="http://abap101.com/2009/08/21/alv-simples-usando-a-tecnica-pura/">ALV Simples - Usando a Técnica “Pura”</a>. Podemos dizer que essa família de classes veio para substituir as técnicas baseadas nas Function Modules da família REUSE*.</p>
<p>As classes SALV tornam a manipulação do ALV extremamente simples. No exemplo de ALV simples não fica tão claro, mas nesse exemplo vemos claramente que o ALV com as classes SALV ficam muito mais &#8220;orientado a objetos&#8221;.</p>
<p>Quando estiver trabalhando com elas, você deve pensar o ALV como um objeto, mas composto por diversos outros objetos, como por exemplo, colunas.</p>
<div><a href="http://abap101.com/wp-content/uploads/2010/02/cl_salv_table.jpg"><img class="aligncenter size-full wp-image-250" title="cl_salv_table" src="http://abap101.com/wp-content/uploads/2010/02/cl_salv_table.jpg" alt="" width="500" height="290" /></a></div>
<p>Ou seja, após criar o objeto CL_SALV_TABLE com o método FACTORY, você só precisa usar métodos GET&#8230; para obter as referências aos objetos agregados, como colunas, coluna individual e funções do grid.</p>
<p><strong>Adicionando Nova Coluna ao Grid</strong></p>
<p>Diferentemente do método &#8220;puro&#8221;, você não precisa criar uma tabela interna para ajustar o field catalog, mas apenas trabalhar com os atributos do objeto CL_SALV_COLUMN. Muito mais simples e intuitivo.</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_columns = r_table-&gt;get_columns( ).</span></p></blockquote>
<p>Com o método get_columns( ), você obtém a referência para o objeto CL_SALV_COLUMNS_TABLE, que são as colunas do grid. Lembre-se que ela não contém os valores das colunas, apenas metadados (informações das colunas em si).</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_columns-&gt;set_optimize( abap_true ).</span></p></blockquote>
<p>O método set_optimize( ) você pode definir que a largura das colunas serão otimizadas de acordo com o contéudo da coluna.</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_column = r_columns-&gt;get_column( &#8216;TXOCC&#8217; ).</span></p></blockquote>
<p>Com o método get_column( ) você retorna a referência a uma data coluna, de acordo com o nome técnico do campo que você passou no parâmetro. No caso acima, o nome do nosso campo que queremos alterar as características é o TXOCC.</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_column-&gt;set_short_text( &#8216;Tx. Occ.&#8217; ).</span></p></blockquote>
<p>Esse método, set_short_text( ) define o texto curto para a coluna.</p>
<blockquote><p><span style="font-family: 'Courier New';"> r_columns-&gt;set_column_position( columnname = &#8216;TXOCC&#8217; position = 10 ).</span></p></blockquote>
<p>Finalmente, com o método set_column_position( ), você define a posição de uma coluna.</p>
<h3><span style="color: #0000ff;">Anexos</span></h3>
<p><a href="http://abap101.furlanserver.com/files/ZSALV_ALV_FIELDCAT.txt">ZSALV_ALV_FIELDCAT.txt</a></p>
<h3><span style="color: #0000ff;">Veja Também</span></h3>
<p><a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/bf/3bd1369f2d280ee10000009b38f889/frameset.htm">ALV Output Display</a><a href="http://help.sap.com/saphelp_nw04/helpdata/EN/8d/e994374c9cd355e10000009b38f8cf/frameset.htm"></a><br />
<a href="http://abap101.com/2009/08/19/introducao-a-alv-serie-especial/">Introdução ao ALV - Série Especial</a><br />
<a href="http://abap101.com/2009/08/23/alv-com-field-catalog-usando-a-tecnica-pura-2/">ALV com Field Catalog - Usando a Técnica “Pura”</a></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=8458ac7a-81e7-8cdc-beb7-e66e7cb20844" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2010/02/16/alv-com-field-catalog-usando-a-classe-cl_salv_table/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ALV Simples - Usando a classe CL_SALV_TABLE</title>
		<link>http://abap101.com/2010/02/12/alv-simples-usando-a-classe-cl_salv_table/</link>
		<comments>http://abap101.com/2010/02/12/alv-simples-usando-a-classe-cl_salv_table/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 11:13:32 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[ABAP]]></category>

		<category><![CDATA[ABAP OBjects]]></category>

		<category><![CDATA[ALV]]></category>

		<category><![CDATA[Receita ABAP]]></category>

		<category><![CDATA[salv]]></category>

		<category><![CDATA[sap]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=232</guid>
		<description><![CDATA[Problema
Implementar um relatório ALV, para mostrar todos os dados e todos os campos da tabela SFLIGHT.

Solução

Passo 1: Criar um programa executável, sem TOP include, ZSALV_ALV_SIMPLE.
Passo 2: Criar as referências para os objetos do grid:
DATA: r_table &#160; &#160; TYPE REF TO cl_salv_table, r_functions    TYPE REF TO cl_salv_functions.
Passo 3: Criar uma tabela interna sem [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="color: rgb(0, 0, 255);">Problema</span></h3>
<p>Implementar um relatório ALV, para mostrar todos os dados e todos os campos da tabela SFLIGHT.<br />
<h3><span style="color: rgb(0, 0, 255);"><span id="more-232"></span></p>
<p>Solução</p>
<p></span></h3>
<p><strong>Passo 1:</strong> Criar um programa executável, sem TOP include, ZSALV_ALV_SIMPLE.</p>
<p><strong>Passo 2:</strong> Criar as referências para os objetos do grid:<br />
<blockquote><span style="font-family: 'Courier New';">DATA: r_table &nbsp; &nbsp; TYPE REF TO cl_salv_table,</span><br /><span style="font-family: 'Courier New';"> r_functions    TYPE REF TO cl_salv_functions.</span></p></blockquote>
<p><strong>Passo 3:</strong> Criar uma tabela interna sem header line e fazer a seleção de todos os dados da tablea SFLIGHT.<br />
<blockquote>DATA: it_sflight TYPE TABLE OF sflight.</p>
<p>START-OF-SELECTION.</p>
<p>&nbsp; SELECT * FROM sflight INTO TABLE it_sflight.</p></blockquote>
<p><strong>Passo 4:</strong> Criar a referência com o método FACTORY para o objeto ALV:<br />
<blockquote><span style="font-family: 'Courier New';">CALL METHOD cl_salv_table=&gt;factory<br />IMPORTING<br />r_salv_table = r_table<br />CHANGING<br />t_table      = it_sflight.</span></p></blockquote>
<p><strong>Passo 5:</strong> Chamar o método DISPLAY para mostrar os grid:<br />
<blockquote><span style="font-family: 'Courier New';">CALL METHOD r_table-&gt;display.</span></p></blockquote>
<p>Agora você pode ativar o seu programa e testar.<br />
<h3><span style="color: rgb(0, 0, 255);">Execução e Teste</span></h3>
<p>Para executar e testar o programa, apenas pressione F8 ou <img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/08/alv2.jpg" alt="" />:</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2010/02/zsalv-alv-simple.jpg" alt="" height="350" width="699" /><br />
<h3><span style="color: rgb(0, 0, 255);"><strong>Discussão</strong></span></h3>
<p>Na versão Netweaver 04, a SAP introduziu a família de classes CL_SALV*, que basicamente encapsula as operações que fizemos no post <a href="http://abap101.com/2009/08/21/alv-simples-usando-a-tecnica-pura/">ALV Simples - Usando a Técnica “Pura”</a>. Podemos dizer que essa família de classes veio para substituir as técnicas baseadas nas Function Modules da família REUSE*.</p>
<p>Esse exemplo que usei é muito simples. Apenas criei a referência do grida (classe CL_SALV_TABLE) e chamei o método DISPLAY para mostrar o grid. Hoje, é a maneira mais fácil de se criar um ALV Grid.<br />
<h3><span style="color: rgb(0, 0, 255);">Anexos</span></h3>
<p><a href="http://abap101.furlanserver.com/files/ZSALV_ALV_SIMPLE.txt">ZSALV_ALV_SIMPLE</a><br />
<h3><span style="color: rgb(0, 0, 255);">Veja Também</span></h3>
<p><a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/bf/3bd1369f2d280ee10000009b38f889/frameset.htm">ALV Output Display</a><a href="http://help.sap.com/saphelp_nw04/helpdata/EN/8d/e994374c9cd355e10000009b38f8cf/frameset.htm"></a><br /><a href="http://abap101.com/2009/08/19/introducao-a-alv-serie-especial/">Introdução ao ALV - Série Especial</a></p>
<p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=4a61ed66-e924-8ebc-b744-948e420043ea" /></div>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2010/02/12/alv-simples-usando-a-classe-cl_salv_table/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Balanço de 2009 e planos para 2010</title>
		<link>http://abap101.com/2010/01/08/balanco-de-2009-e-planos-para-2010/</link>
		<comments>http://abap101.com/2010/01/08/balanco-de-2009-e-planos-para-2010/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 04:39:30 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Offtopic]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=242</guid>
		<description><![CDATA[No dia 7 de Janeiro de 2009, eu publiquei aqui um post falando dos novos rumos que o ABAP101 estaria tomando. Disse que que publicaria posts relacionados a Ruby on Rails e outras tecnologias.
No entanto, 2009 foi o primeiro ano de vida do meu segundo filho e só quem tem dois ou mais filhos sabe [...]]]></description>
			<content:encoded><![CDATA[<p>No dia 7 de Janeiro de 2009, eu publiquei aqui um <a href="http://abap101.com/2009/01/07/novos-rumos-do-abap-101/">post</a> falando dos novos rumos que o ABAP101 estaria tomando. Disse que que publicaria posts relacionados a Ruby on Rails e outras tecnologias.<br /><span id="more-242"></span></p>
<p>No entanto, 2009 foi o primeiro ano de vida do meu segundo filho e só quem tem dois ou mais filhos sabe o que isso significa. Para mim significou muito estudo e para o ABAP101 significou poucos posts. Até comecei animado, mas não fui muito além de 3 ou 4 posts sobre Rails.</p>
<p>Consegui tocar alguns programas para iPhone também, mas não rolou nenhum post.</p>
<p><a href="http://www.kasolution.com.br/ka/sap/abap.asp?mscssid="><strong></strong></a><strong>Planos Futuros</p>
<p></strong>2008 e 2009 foram dois anos de muito aprendizado técnico. Estou planejando 2010 um ano de publicações de muito conteúdo técnico.</p>
<p>No final de 2009 começamos a publicar o <a href="http://podcafe.abap101.com/">Podcafé</a>, o que me trouxe muita diversão e de uma brincadeira passou a ser uma coisa mais séria. No Podcafé você pode esperar ouvir minhas opiniões sobre tecnologia móvel, GPS, Apple, Microsoft, Games etc. Não espere ouvir nada de ABAP ou SAP lá.</p>
<p>Também está nos meus planos publicar uma série de screencasts (webcasts, video aula ou qualquer outra coisa que decida chamar) sobre ABAP. O objetivo não é ser um curso completo de ABAP, mas um complemento para uma academia ABAP (por favor, façam na <a href="http://www.kasolution.com.br/ka/sap/abap.asp?mscssid=">KA Solution</a>).</p>
<p>No futuro, quero fazer screencasts para outras linguagens e frameworks como Rails, Java, XI/PI etc.</p>
<p>Fora os meus planos na Nestlé que também não são nada acomodados e as aulas ABAP na KA Solution.</p>
<p>O ano de 2010 promete muito, mas também promete muito trabalho.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=b01977a7-be49-88d3-9a88-8cd55213fb66" /></div>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2010/01/08/balanco-de-2009-e-planos-para-2010/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Qualidade em Processos</title>
		<link>http://abap101.com/2009/12/03/qualidade-em-processos/</link>
		<comments>http://abap101.com/2009/12/03/qualidade-em-processos/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 00:04:46 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Offtopic]]></category>

		<category><![CDATA[Processo de Negócio]]></category>

		<category><![CDATA[processo qualidade]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=241</guid>
		<description><![CDATA[Nessas duas últimas semanas que passou ministramos um treinamento de XI lá na empresa que eu trabalho. O resultado foi excelente e por isso quero compartilhar com vocês alguns conceitos que discutimos e que podem ser aplicados imediatamente na vida profissional de um programador.


Histórico do Treinamento
Quando a Nestlé decidiu migrar a sua ferramenta de Middleware [...]]]></description>
			<content:encoded><![CDATA[<p>Nessas duas últimas semanas que passou ministramos um treinamento de XI lá na empresa que eu trabalho. O resultado foi excelente e por isso quero compartilhar com vocês alguns conceitos que discutimos e que podem ser aplicados imediatamente na vida profissional de um programador.</p>
<p><strong><!-- more --></strong></p>
<p><span id="more-241"></span><br />
<strong><big>Histórico do Treinamento</big></strong></p>
<p>Quando a Nestlé decidiu migrar a sua ferramenta de Middleware para a solução da SAP, começamos a imaginar a quantidade de trabalho que geraria para a nossa área. Hoje temos cerca de 5000 interfaces. Isso mesmo: mais de 5000 interfaces. Sendo que cada interface pode ser extendida para vários países, com suas particularidades e times de TI locais para gerenciá-las.</p>
<p>Começado a migração o primeiro problema que enfrentamos foi a falta de conhecimento na nova ferramenta. As pessoas conheciam os conceitos envolvidos em uma interface, mas não os conceitos do SAP-XI. Desde então, venho batendo na tecla de um treinamento técnico, pois seria a única forma de podemos garantir a qualidade em nossos desenvolvimentos.</p>
<p>Digo isso por que toda a parte técnica é enviada para nossos centros offshore na Índia e por isso, aprender uma ferramenta técnica não era tão bem recebida na nossa equipe, pois todos já são abapeiros muito experiêntes e já cansados da área técnica.</p>
<p>Mesmo assim, ficamos o ano todo batendo nessa tecla, mas sem grande aceitação.</p>
<p><big><strong>Mudança de Rumo</strong></big></p>
<p>2009 foi o ano da qualidade e 2010 termos maior foco ainda em qualidade. Foi aí que mudamos o nosso treinamento de foco técnico para foco em qualidade. Detalhe: isso foi apenas no nome, o conteúdo sempre foi o originalmente proposto, desde o começo do ano.</p>
<p>Mas essa mudança foi interessante, pois chamamos a atenção para a importância do trabalho que cada um tem e o impacto da qualidade deles na qualidade final do produto entregue para o cliente.</p>
<p>Então, contruímos o treinamento com o objetivo de melhorar a qualidade dos produtos entregues para nossos cliente.</p>
<p><big><strong>O que é Processo?</strong></big></p>
<p>Começamos o treinamento explicando o que é processo. Chegamos a seguinte definição: Processo é a seqüência de atividades para atingir um determinado objetivo.</p>
<p>E como tal seqüência de atividades, o produto de uma atividade é a entrada da próxima. Se o produto dela não for bom, muito dificilmente a próxima atividade conseguirá &#8220;recuperar&#8221; a qualidade perdida, fazendo com a qualidade do produto final só decresça.</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/12/abap1011.jpg" alt="" width="699" height="594" /></p>
<p>Resultado disso será rework, gastando assim tempo e recursos que poderiam ser reutilizados em outras tarefas.</p>
<p>Não ficou somente nisso&#8230;</p>
<p>Não mesmo, resolvemos fazer com que as pessoas sentissem na pele a experiência dos outros times que se relacionam conosco. O nosso objetivo foi passar a mensagem da figura acima:</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/12/abap1012.jpg" alt="" width="699" height="308" /></p>
<p><big><strong>Conclusão</strong></big></p>
<p>Devemos sempre nos preocupar com a qualidade. Mesmo que o que você faça no seu dia-a-dia não seja visto pelo cliente. Mas com certeza a boa qualidade do seu trabalho impactará a qualidade final entregue para o cliente.</p>
<p>No nosso caso, já conseguimos sentir a melhora na qualidade. O pessoal da nossa equipe já conseguem dar um melhor suporte aos times que trabalhamos e com isso melhorar o que é entregue para nossos clientes.<br />
<strong><br />
Lembrem-se: Quality os free!</strong></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=5dc166f5-eaf4-8de5-944c-9bc39af714ba" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/12/03/qualidade-em-processos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O que é a cláusula NESTING LEVEL no comando SELECTION-SCREEN?</title>
		<link>http://abap101.com/2009/10/26/o-que-e-a-clausula-nesting-level-no-comando-selection-screen/</link>
		<comments>http://abap101.com/2009/10/26/o-que-e-a-clausula-nesting-level-no-comando-selection-screen/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 02:49:34 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Dúvidas de Aula]]></category>

		<category><![CDATA[ABAP]]></category>

		<category><![CDATA[dúvida]]></category>

		<category><![CDATA[nested]]></category>

		<category><![CDATA[selection-screen]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=236</guid>
		<description><![CDATA[No caso de programas executáveis (ou do tipo relatório ou report), temos muitos recursos para contruir uma tela de seleção de maneira programática, ou seja, usando código ABAP e não o Screen Painter.
Para fazer telas com tabs é necessário contruí-las com subcreens, usando o comando SELECTION-SCREEN BEGIN OF SCREEN.
Uma das cláusulas muito específicas é a [...]]]></description>
			<content:encoded><![CDATA[<p>No caso de programas executáveis (ou do tipo relatório ou report), temos muitos recursos para contruir uma tela de seleção de maneira programática, ou seja, usando código ABAP e não o Screen Painter.</p>
<p>Para fazer telas com tabs é necessário contruí-las com subcreens, usando o comando SELECTION-SCREEN BEGIN OF SCREEN.</p>
<p>Uma das cláusulas muito específicas é a chamada <strong>NESTED LEVEL</strong>, usada para redimensionar frames dentro de uma tab.</p>
<p><span id="more-236"></span></p>
<p>Veja esse exemplo, <strong>sem</strong> o uso da cláusula NESTED LEVEL:</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/10/nesting01.jpg" alt="" width="697" height="203" /><br />
<em><small>Figura 1 - Selection screen sem NESTED LEVEL.</small></em></p>
<p>Essa tela de seleção é resultado do código abaixo:</p>
<pre lang="ABAP">*&amp;---------------------------------------------------------------------*
*&amp; Report  ZFURLAN04
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*

REPORT  zfurlan04.

DATA: wa_spfli TYPE spfli.

SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN.

SELECTION-SCREEN BEGIN OF BLOCK limit WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK limit1 WITH FRAME TITLE text-002.
PARAMETERS: pa_car TYPE spfli-carrid,
            pa_car3 TYPE spfli-carrid,
            pa_car4 TYPE spfli-carrid,
            pa_car5 TYPE spfli-carrid,
            pa_car6 TYPE spfli-carrid,
            pa_car7 TYPE spfli-carrid,
            pa_car8 TYPE spfli-carrid,
            pa_car9 TYPE spfli-carrid,
            pa_car10 TYPE spfli-carrid,
            pa_car11 TYPE spfli-carrid.
SELECTION-SCREEN END OF BLOCK limit1.
SELECTION-SCREEN END OF BLOCK limit.
SELECTION-SCREEN END OF SCREEN 101.

SELECTION-SCREEN BEGIN OF SCREEN 102 AS SUBSCREEN NESTING LEVEL 0.
PARAMETERS: pa_car1 TYPE spfli-carrid.

SELECTION-SCREEN END OF SCREEN 102.

SELECTION-SCREEN BEGIN OF SCREEN 103 AS SUBSCREEN NESTING LEVEL 0.
PARAMETERS: pa_car2 TYPE spfli-carrid.

SELECTION-SCREEN END OF SCREEN 103.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tab_block FOR 5 LINES.
SELECTION-SCREEN TAB (10) tab1 USER-COMMAND comm1 DEFAULT SCREEN 101.
SELECTION-SCREEN TAB (10) tab2 USER-COMMAND comm2 DEFAULT SCREEN 102.
SELECTION-SCREEN TAB (10) tab3 USER-COMMAND comm3 DEFAULT SCREEN 103.
SELECTION-SCREEN END OF BLOCK tab_block.

INITIALIZATION.

  tab1  = 'Tab1'.
  tab2  = 'Tab2'.
  tab3  = 'Tab3'.

START-OF-SELECTION.</pre>
<p>Agora, usando NESTED LEVEL, a tela de seleção fica assim:</p>
<p><img style="max-width: 800px;" src="http://abap101.com/wp-content/uploads/2009/10/nesting02.jpg" alt="" width="694" height="202" /></p>
<p><small><em>Figura 2 - Selection screen com NESTED LEVEL.</em></small></p>
<p>Isso é resultado do código abaixo:</p>
<pre lang="ABAP">*&amp;---------------------------------------------------------------------*
*&amp; Report  ZFURLAN04
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*

REPORT  zfurlan04.

DATA: wa_spfli TYPE spfli.

SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN NESTING LEVEL 1.

SELECTION-SCREEN BEGIN OF BLOCK limit WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF BLOCK limit1 WITH FRAME TITLE text-002.
PARAMETERS: pa_car TYPE spfli-carrid,
            pa_car3 TYPE spfli-carrid,
            pa_car4 TYPE spfli-carrid,
            pa_car5 TYPE spfli-carrid,
            pa_car6 TYPE spfli-carrid,
            pa_car7 TYPE spfli-carrid,
            pa_car8 TYPE spfli-carrid,
            pa_car9 TYPE spfli-carrid,
            pa_car10 TYPE spfli-carrid,
            pa_car11 TYPE spfli-carrid.
SELECTION-SCREEN END OF BLOCK limit1.
SELECTION-SCREEN END OF BLOCK limit.
SELECTION-SCREEN END OF SCREEN 101.

SELECTION-SCREEN BEGIN OF SCREEN 102 AS SUBSCREEN NESTING LEVEL 0.
PARAMETERS: pa_car1 TYPE spfli-carrid.

SELECTION-SCREEN END OF SCREEN 102.

SELECTION-SCREEN BEGIN OF SCREEN 103 AS SUBSCREEN NESTING LEVEL 0.
PARAMETERS: pa_car2 TYPE spfli-carrid.

SELECTION-SCREEN END OF SCREEN 103.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tab_block FOR 5 LINES.
SELECTION-SCREEN TAB (10) tab1 USER-COMMAND comm1 DEFAULT SCREEN 101.
SELECTION-SCREEN TAB (10) tab2 USER-COMMAND comm2 DEFAULT SCREEN 102.
SELECTION-SCREEN TAB (10) tab3 USER-COMMAND comm3 DEFAULT SCREEN 103.
SELECTION-SCREEN END OF BLOCK tab_block.

INITIALIZATION.

  tab1  = 'Tab1'.
  tab2  = 'Tab2'.
  tab3  = 'Tab3'.

START-OF-SELECTION.</pre>
<p><strong>Conclusão</strong></p>
<p>Quando usamos o comando NESTED LEVEL, o screen processor redesenha a os frames para evitar a barra de rolagem horizontal.</p>
<p>O número que vem após o NESTED LEVEL é o nível de ajuste do frame e vai até 4.</p>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/10/26/o-que-e-a-clausula-nesting-level-no-comando-selection-screen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Respondendo dúvidas de sala de aula - Uma nova categoria</title>
		<link>http://abap101.com/2009/10/26/respondendo-duvidas-de-sala-de-aula-uma-nova-categoria/</link>
		<comments>http://abap101.com/2009/10/26/respondendo-duvidas-de-sala-de-aula-uma-nova-categoria/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 02:13:54 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Anotação de Aula]]></category>

		<category><![CDATA[Dúvidas de Aula]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=233</guid>
		<description><![CDATA[Mais um dia de aula na KA Solutions na turma de ABAP Netweaver e mais uma vez surpreendido por um aluno.
Quando cheguei em sala um dos meus alunos veio me abordou com umas 10 perguntas. A princípio poderia parecer que ele seria um chato, mas não é o que eu penso. Penso justamente o contrário.
10 [...]]]></description>
			<content:encoded><![CDATA[<p>Mais um dia de aula na KA Solutions na turma de ABAP Netweaver e mais uma vez surpreendido por um aluno.</p>
<p>Quando cheguei em sala um dos meus alunos veio me abordou com umas 10 perguntas. A princípio poderia parecer que ele seria um chato, mas não é o que eu penso. Penso justamente o contrário.</p>
<p>10 perguntas, logo após o final de semana?! Isso só quer dizer uma coisa, ele estudou e muito!</p>
<p>No final da aula, vamos às perguntas e novamente fiquei surpreso com o nível das perguntas, quero dizer, muito detalhadas, mostrando que ele não somente leu como realmente estudou e questionou aquilo que não estava claro.</p>
<p>Após responder às questões, fiquei tão contente com o resultado que resolvi publicar aqui as dúvidas que respondo em aula, até com um pouco mais de detalhes, numa nova categoria &#8220;Dúvida de Aula&#8221;.</p>
<p>Bom, graças a esse meu aluno aplicado, vou tem assunto para uns 10 posts <img src='http://abap101.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/10/26/respondendo-duvidas-de-sala-de-aula-uma-nova-categoria/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Novo Livro: Official ABAP Programming Guidelines</title>
		<link>http://abap101.com/2009/10/21/novo-livro-official-abap-programming-guidelines/</link>
		<comments>http://abap101.com/2009/10/21/novo-livro-official-abap-programming-guidelines/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 16:37:28 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[ABAP OBjects]]></category>

		<category><![CDATA[Livro]]></category>

		<guid isPermaLink="false">http://abap101.com/2009/10/21/novo-livro-official-abap-programming-guidelines/</guid>
		<description><![CDATA[No evento TechEd 2009 ocorrido na semana passada em Phoenix, foi lançado um novo livro de autoria de Horst Keller. 
Mr. Keller é autor de outros livros de ABAP e ele faz parte da equipe de arquitetura do core do ABAP. Já trabalhou na equipe de documentação da linguagem e considero uma das principais autoridades [...]]]></description>
			<content:encoded><![CDATA[<p>No evento TechEd 2009 ocorrido na semana passada em Phoenix, foi lançado um novo livro de autoria de Horst Keller. </p>
<p>Mr. Keller é autor de outros livros de ABAP e ele faz parte da equipe de arquitetura do core do ABAP. Já trabalhou na equipe de documentação da linguagem e considero uma das principais autoridades em ABAP do mundo.</p>
<p>O livro chama-se <a href="http://www.sap-press.com/product.cfm?account=&amp;product=H3072">Official ABAP Programming Guidelines</a>, onde lista uma série de boa práticas de programação ABAP, indo desde de declarações de data objects até arquitetura de software orientado a objeto.</p>
<p>Se você pensa em ser um bom programador ABAP, você de considerar seriamente em desenbolsar US$ 69,00 e investir nesse livro.</p>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/10/21/novo-livro-official-abap-programming-guidelines/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Aprendendo Inglês com PodCasts</title>
		<link>http://abap101.com/2009/08/30/aprendendo-ingles-com-podcasts/</link>
		<comments>http://abap101.com/2009/08/30/aprendendo-ingles-com-podcasts/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 21:19:38 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Mercado]]></category>

		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=228</guid>
		<description><![CDATA[Em todas as turmas sempre discutimos assuntos relacionados ao mercado, como tendências dentro do SAP, devo ou não devo fazer uma academia funcional, qual o próximo assunto quente que devemos estudar etc. SOA? Java? WebDynpro? Adobe Forms?
Mas uma coisa que todos concordam é que saber inglês é fundamental. E não estou falando de &#8220;sei ler [...]]]></description>
			<content:encoded><![CDATA[<p>Em todas as turmas sempre discutimos assuntos relacionados ao mercado, como tendências dentro do SAP, devo ou não devo fazer uma academia funcional, qual o próximo assunto quente que devemos estudar etc. SOA? Java? WebDynpro? Adobe Forms?</p>
<p>Mas uma coisa que todos concordam é que saber inglês é fundamental. E não estou falando de &#8220;sei ler artigos técnicos&#8221;, saber se comunicar profissionalmente (também não estou falando de pedir um número um no McDonalds nos EUA). Quando digo se comunicar estou incluindo falar, entender e escrever em inglês.<br /><span id="more-228"></span><br /><b>Como eu aprendi Inglês</b></p>
<p>Hoje eu posso me considerar fluente em inglês, pois trabalho com falando com americanos, escrevo manuais e especificações e consigo ter o meu trabalho pronto, sem problema nenhum. Consegui isso com muito suor e esforço. Posso até ter uma certa facilidade em aprender outro idioma, mas como ainda não aprendi nenhum outro (estou com preguiça de aprender espanhol, até porque não preciso), não posso afirmar que tenho facilidade. Então só me sobrou esforço e dedicação.</p>
<p>Fiz aulas de inglês no colegial, mas isso não conta. Fiz 1 ano e meio de CCAA, num curso regular de duas aulas por semana. Nada de intensivão em Cellep ou Cultura Inglesa. Até gostaria, mas não cria que seria o melhor método para mim (tá bom, não tinha dinheiro&#8230;). Mas nesse 1 ano e meio de CCAA consegui perder o medo de falar. Por isso, esse tempo de método papagaio foi de muito proveito.</p>
<p>O resto foi por conta de uma imersão total no inglês. Onde eu tinha opção de falar e ouvir em inglês era o escolhido. Site em português e inglês, sempre escolhia em inglês. Software sempre em inglês (estou falando de Windows, Office etc.). Até o idioma do meu celular era inglês. Livros e apostilas TODOS em inglês.</p>
<p>Confesso que foi muito trabalhoso, mas hoje eu posso afirmar que valeu muito a pena. Tanto que até hoje tenho mais facilidade em trabalhar com inglês do que em português.</p>
<p><b>Minha sugestão de aprendizado</b></p>
<p>&#8220;Ah! Furlan, quer dizer que devo fazer igual a você?&#8221;. Minha resposta é categórica: NÃO. O que deu certo para mim, pode não dar certo para você. Mas vale a inspiração e o exemplo que é possível aprender com muito esforço e dedicação. Mas as recompensas são muito boas.</p>
<p>Na minha época de aprendizado (nota: isso é sinal da idade, não liguem), não tinha a oferta de possibilidades que temos hoje. A Internet é PERFEITA para isso. Com milhares de oções pagas e outras milhares gratuitas.</p>
<p>Minha sugestão são os <a href="http://en.wikipedia.org/wiki/Podcast">podcasts</a>. Procure no Google e você encontrará muitos. Mas a minha sugestão é i iTunes. Geralmente, temos produções muito bem feitas, sobre muitos assuntos.</p>
<p>Eles são uma ótima maneira de ver o idioma em funcionamento e como os americanos se comunicam. </p>
<blockquote><p>Entender como os americanos se comunicam e fundamental para aprender o inglês. Você pode aprender todas as palavras do dicionário e fazer um zilhão de exercícios de gramática, mas se não entender a cultura norte america e sua forma de se expressar, você estará indo para o caminho errado.</p></blockquote>
<p>É lógico que no começo você ficará perdido e frustrado. Não vou te enganar, isso durará um bom tempo. Mas isso passará e será muito bom você conseguir superar isso. Conseguir entender uma conversa pelo contexto e com apenas alguma palavras é <b>perigoso mas ao mesmo tempo útil</b>. Considero isso como um estágio intermediário até você ter um <i>listening</i> de 99%. </p>
<blockquote><p>Perigoso porque você corre o risco de entender alguma coisa errada e isso pode ter consequências muito danosas. Mas nesse estágio de entendimento incompleto você adquire uma habilidade de entender pelo contexto. E isso pode ser muito útil em situações onde o entendimento é prejudicado pelas circunstâncias do local, como sotaque, ligação telefônica ruim etc.</p></blockquote>
<p>Mas passado esse estágio, você conseguirá entender não porque você consegue entender e processar cada palavra, mas você entende as frases. Tem uma diferênça muito grande nisso. É fácil verificar isso naquela experiência obge soendte o ibiro e ftm dws parabrss são nevexsaras para se entender o texto <img src='http://abap101.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p><b>Aprenda como as crianças</b></p>
<p>O meu filho está aprendendo a falar agora e não passei os últimos 4 anos ensinando a gramática para ele. Mas ele já consegue se comunicar perfeitamente, com algúns erros, mas já consigo entendê-lo.</p>
<p>Vendo Discovery Kids com ele, fiz uma descoberta. A tecla SAP (não é a empresa, ok?) poderia ser muito útil para aprender inglês, pois o inglês para esses programas é muito simples e falado com muita clareza. Acho que seria perfeito para treinar o entendimento.</p>
<p>Eu não pude comprovar isso, pois quando observei isso eu já estava muito bem treinado, mas acredito que seja um ótimo treino. Tenha apenas paciência com os programas, afinal são para crianças, ok?</p>
<p><b>Sugestões</b></p>
<p>Instale o <a href="http://www.apple.com/itunes/download/">iTunes</a> (em inglês, claro) e passeie pelos podcasts e você verá que há uma oferta muito grande. Baixe para o seu tocador de MP3 e ouça sempre que puder. Enquando você trabalha, ao invés de ficar ouvindo Inimigos da HP ou Calipso, deixe esses podcasts falando na sua orelha para você se acostumar com o idioma.</p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=210895970">English Grammar HELP</a></p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=264537349">Sesame Street Podcast</a></p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=160892972">TEDTalks</a></p>
<p>Essas são apenas sugestões iniciais. Procure podcasts de seu interesse. Isso ajuda a não desistir.</p>
<p><i>Nota: No McDonalds nos EUA não peça pelo número, lá eles chamam de combo.</i></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/08/30/aprendendo-ingles-com-podcasts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tipos de Consultores ABAP</title>
		<link>http://abap101.com/2009/08/30/tipos-de-consultores-abap/</link>
		<comments>http://abap101.com/2009/08/30/tipos-de-consultores-abap/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 17:05:21 +0000</pubDate>
		<dc:creator>furlan</dc:creator>
		
		<category><![CDATA[Mercado]]></category>

		<guid isPermaLink="false">http://abap101.com/?p=226</guid>
		<description><![CDATA[Essa semana recebi uma dúvida de um ex-aluno sobre tipos de Consultores ABAP. O meu companheiro de docência, Vagner Silas enviou uma resposta que achei muito boa e a transcrevo para cá:
Cara&#8230; esse lance de tipos de abapers é um pouco confuso.
Eu diria que existem especialidades diferentes. Alguns exemplos:

CCS - Customer Care Service - abapeiro [...]]]></description>
			<content:encoded><![CDATA[<p>Essa semana recebi uma dúvida de um ex-aluno sobre tipos de Consultores ABAP. O meu companheiro de docência, Vagner Silas enviou uma resposta que achei muito boa e a transcrevo para cá:</p>
<blockquote><p>Cara&#8230; esse lance de tipos de abapers é um pouco confuso.</p>
<p>Eu diria que existem especialidades diferentes. Alguns exemplos:</p>
<ul>
<li>CCS - Customer Care Service - abapeiro que trabalha em utilities, que tem alguns módulos diferentes como WM (Work Management), FICA (Financial - Contract Account), EDM (Energy Data Management) e outros. Eu sou um Abaper CCS. Já trabalhei com Energy (TXU Texas e Comgas)</li>
<li>Webdynpro - abapeiro que trabalha com componentes Web em application server Abap - lembra de module pool? WebDynpro faz o mesmo, só que o browser não é o SapGui. E MVC está implementado decentemente.</li>
<li>BSP - business server pages - pegue html, misture código abap e pronto! Tem um site prontinho, como se fosse feito usando JSP ou ASP. O que vc não conseguir fazer com os padrões de WebDynpro, faça diretamente com BSP.</li>
<li>Workflow - isso aí vc já tá vendo</li>
<li>ALE/Idoc - abapeiro especialista em integração de sistemas</li>
<li>XI/PI - abapeiro mais especialista ainda em integração de sistemas</li>
</ul>
<p>&#8230; e por aí vai.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://abap101.com/2009/08/30/tipos-de-consultores-abap/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
