Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

provide endprovide usage

Former Member
0 Likes
397

can we use <b>for all entries in statement</b> along with <b>provide endprovide</b> ?

<u>requirement is as :</u>

Retrieval of Relevent Fields from PA0001 Table.

Retrieve Personnel number (PERNR)

Personnel Area (WERKS)

From Table PA0001

on the basis of Personnel number in the selection screen

and Start Date (BEGDA) less than sy-datum

and End Date (ENDA) greater than sy-datum.

Retrieval of Relevent Fields from PA0002 Table.

Retrieve Personnel number (PERNR)

Last name (NACHN)

First name (VORNA)

from table PA0002 on the basis of all entries in IT_PA0001 comparing personnel number (PERNR)

and Start Date (BEGDA) less than sy-datum

and End Date (ENDA) greater than sy-datum.

Put the retrieved value in an internal table

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
363

Hi Rippy,

No, you cann't use FOR ALL ENTRIES with PROVIDE END PROVIDE, coz PROVIDE ENDPROVIDE is looping process, just like SELECT ENDSELECT.

And I don't suggest you to use PROVIDE ENDPROVIDE.

You can use FOR ALL ENTRIES, like here:


*get data from PA0001
SELECT PERNR WERKS
INTO TABLE IT_PA0001
FROM PA0001
WHERE PERNR EQ P_PERNR
      AND BEGDA < SY-DATUM
      AND ENDDA > SY-DATUM.

*get data from PA0002
IF IT_PA0001[] IS NOT INITIAL.
   SELECT PERNR NACHN VORNA
   INTO TABLE IT_PA0002
   FROM PA0002
   FOR ALL ENTRIES IN IT_PA0001
   WHERE PERNR = IT_PA0001-PERNR
        AND BEGDA < SY-DATUM
        AND ENDDA > SY-DATUM.  
ENDIF.

Regards,

2 REPLIES 2
Read only

Former Member
0 Likes
364

Hi Rippy,

No, you cann't use FOR ALL ENTRIES with PROVIDE END PROVIDE, coz PROVIDE ENDPROVIDE is looping process, just like SELECT ENDSELECT.

And I don't suggest you to use PROVIDE ENDPROVIDE.

You can use FOR ALL ENTRIES, like here:


*get data from PA0001
SELECT PERNR WERKS
INTO TABLE IT_PA0001
FROM PA0001
WHERE PERNR EQ P_PERNR
      AND BEGDA < SY-DATUM
      AND ENDDA > SY-DATUM.

*get data from PA0002
IF IT_PA0001[] IS NOT INITIAL.
   SELECT PERNR NACHN VORNA
   INTO TABLE IT_PA0002
   FROM PA0002
   FOR ALL ENTRIES IN IT_PA0001
   WHERE PERNR = IT_PA0001-PERNR
        AND BEGDA < SY-DATUM
        AND ENDDA > SY-DATUM.  
ENDIF.

Regards,

Read only

Former Member
0 Likes
363

thanx Jatra...