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

hr abap

Former Member
0 Likes
643

Hi,

I am extracting the data from PA0006 as shown but in the varying condition i have to extract using PA0001-PERNR also.

Provide STRAS LOCAT ORT01 ORT02 LAND1 from P0006 between GV_BEGDA and GV_ENDDA where P0006-SUBTY = 1.

Do 6 times varying I_COMXX FROM COM01 NEXT COM02

VARYING I_NUMXX FROM NUM01 NEXT NUM02 where PA0001-PERNR.

IF I_COMXX = u2018WORKu2019

I_EXTN = I_NUMXX.

ENDIF.

ENDDO.

or it should be like this:

PA0001-PERNR also.

If PA0006-PERNR = PA0001-PERNR

Provide STRAS LOCAT ORT01 ORT02 LAND1 from P0006 between GV_BEGDA and GV_ENDDA where P0006-SUBTY = 1.

Do 6 times varying I_COMXX FROM COM01 NEXT COM02

VARYING I_NUMXX FROM NUM01 NEXT NUM02.

IF I_COMXX = u2018WORKu2019

I_EXTN = I_NUMXX.

ENDIF.

Please advise which is correct way of doing this.

ENDDO.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
609

Thanks for your reply.

since you have given the option of using RP-PROVIDE-FROM-LAST but this statement would fetch only one latest record (pls correct me if i am wrong) but i need to fetch all the records between begda and endda so please clear my doubt about it. and if RP-PROVIDE-FROM-LAST can also fetch all the records then what is the difference between rp-provide and provide * from statements.

3 REPLIES 3
Read only

Former Member
0 Likes
609

write the second way ...

If PA0006-PERNR = PA0001-PERNR.

Provide STRAS LOCAT ORT01 ORT02 LAND1 from P0006

between GV_BEGDA and GV_ENDDA

where P0006-SUBTY = 1.

Do 6 times varying I_COMXX FROM COM01 NEXT COM02

VARYING I_NUMXX FROM NUM01 NEXT NUM02.

IF I_COMXX = u2018WORKu2019

I_EXTN = I_NUMXX.

ENDIF.

ENDDO.

If UR using LDB's then write the coding as follows ...

rp-provide-from-last p0001 space GV_BEGDA GV_ENDDA.

if pnp-sw-found <> 1.

reject.

endif.

rp-provide-from-last p0006 1 GV_BEGDA GV_ENDDA.

if pnp-sw-found <> 1.

reject.

endif.

Do 6 times varying I_COMXX FROM p0006-COM01 NEXT p0006-COM02

VARYING I_NUMXX FROM p0006-NUM01 NEXT p0006-NUM02.

IF I_COMXX = u2018WORKu2019

I_EXTN = I_NUMXX.

exit.

ENDIF.

ENDDO.

Read only

Former Member
0 Likes
610

Thanks for your reply.

since you have given the option of using RP-PROVIDE-FROM-LAST but this statement would fetch only one latest record (pls correct me if i am wrong) but i need to fetch all the records between begda and endda so please clear my doubt about it. and if RP-PROVIDE-FROM-LAST can also fetch all the records then what is the difference between rp-provide and provide * from statements.

Read only

0 Likes
609

generally U'll find only one active record in PA0006 with subtype 1 in the given begin and enddates ..

so no need to loop thru P0006 or use provide.. endprovide

rp-provide-fom-last .. gives the latest record in the given begin and enddates.