That’s right. Forget the ENDOFSELECTION syntax. I see at nine of ten ABAP reports, the developer uses this statement incorrectly (and without need).

First: it’s obsolete!

/wp-content/uploads/2014/05/print3_463452.jpg

Second: the statement’s intended only for executable programs that are associated with a logical database (most HR reports, for example).

In this case, the event is triggered so the logical database finishes processing the data.

So if you’re just creating a report for reading tables and extracting data (without logical database), forget the ENDOFSELECTION.

Third: ENDOFSELECTION not “closes” the processing block STARTOFSELECTION.

/wp-content/uploads/2014/05/print4_463453.jpg

The STARTOFSELECTION is an event of the flow (block) default processing of an executable program. The event is called after any standard selection screens have been processed.

If you use the ENDOFSELECTION, as above, into an executable program without being associated with a logical database, it will be called immediately after the completion of processing the STARTOFSELECTION block, but there’s no need!

Just this works:

/wp-content/uploads/2014/05/print5_463466.jpg

Regards

Douglas Santos

Source:

http://help.sap.com/abapdocu_702/en/abenabap_submit_report.htm

Obsolete Language Elements (SAP ECC 6.0 Help – ABAP Keyword Documentation)

***[PT-BR]***

Esqueça o ENDOFSELECTION.

É isso mesmo. Esqueça a sintaxe o ENDOFSELECTION. Nove de cada Dez relatórios ABAP que vejo, o desenvolvedor usa essa declaração de forma incorreta (e sem necessidade).

Primeiro: é obsoleto!

/wp-content/uploads/2014/05/print3_463452.jpg

Segundo: a declaração destina-se apenas para programas executáveis ​​que estão associados a um banco de dados lógico (a maioria dos relatórios de RH, por exemplo).

Nesse caso, o evento é executado assim que o banco de dados lógico termina o processamento dos dados.

Então se você está apenas criando um relatório para leitura de tabelas e extração de dados (sem banco de dados lógico), esqueça o ENDOFSELECTION.

Terceiro: o ENDOFSELECTION não “termina” o bloco de processamento STARTOFSELECTION.

  /wp-content/uploads/2014/05/print4_463453.jpg

O STARTOFSELECTION é um evento do fluxo (bloco) de processamento padrão de um programa executável. O evento é chamado após o processamento da tela de seleção.

Se você utilizar o ENDOFSELECTION, como no exemplo acima, em um programa executável sem estar associado a um banco de dados lógico, ele será
chamado logo após o fim do processamento do bloco STARTOFSELECTION, mas não há necessidade!

Apenas isso funciona:

/wp-content/uploads/2014/05/print5_463466.jpg

Att.

Douglas Santos

Fonte:

http://help.sap.com/abapdocu_702/en/abenabap_submit_report.htm

Obsolete Language Elements (SAP ECC 6.0 Help – ABAP Keyword Documentation)

To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

  1. Fabio Pagoti

    Usually the ones who use END-OF-SELECTION are the ones who also don’t use SORTED and HASHED tables.

    I see this very often as well. It’s a big example of developers not interested in reading ABAP official documentation. #FAIL

    (0) 

Leave a Reply