Application Development 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: 

Repititive structure HR

Former Member
0 Kudos

Hi ,

I am trying to read the infotype ( 0041) .

 
TABLES : pernr, t548t.

infotypes : 0041,
           0001.



DATA : BEGIN OF datyp,
       dar LIKE p0041-dar01,
       dat LIKE p0041-dat01,
       END OF datyp.


GET pernr.

  rp_provide_from_last p0001 space pn-begda pn-endda.
  rp_provide_from_last p0041 space pn-begda pn-endda.

  IF pnp-sw-found EQ 0.
    REJECT.

  ELSE.

    DO 12 TIMES VARYING datyp FROM p0041-dar01
                              NEXT p0041-dar02.

      IF dtype-dar IS INITIAL.
        EXIT.
      ELSE.
        ...............
      ENDIF.

    ENDDO.

 ENDIF.

I get the following error when I try to compile the Program

P0041-DAR01 and DATYP are type-incompatible.

Can any one tell me where I am going wrong. I have already declared the DATYP

Any help in this regard is appreciated.

Thanks,

Bluesh

Edited by: Bluesh on Apr 17, 2009 1:48 PM

1 ACCEPTED SOLUTION

Former Member
0 Kudos

HI,

Try like this..

DO 12 TIMES VARYING datyp-dar FROM p0041-dar01 NEXT p0041-dar02.
           VARYING datyp-dat FROM p0041-dat01 NEXT p0041-dat02.

ENDDO.

6 REPLIES 6

Former Member
0 Kudos

DO VARYING is obsolete. Check the help file.

Rob

Former Member
0 Kudos

write the coding as :

data: wf_dar like ps0041-dar01,

wf_dat like ps0041-dat01.

read table it_0041 with key pernr = it_0000-pernr

binary search.

if sy-subrc = 0.

do 12 times

varying wf_dar from it_0041-dar01 next it_0041-dar02

varying wf_dat from it_0041-dat01 next it_0041-dat02.

if wf_dar is initial.

exit.

endif.

case wf_dar.

when 'Z1'.

write wf_dat to it_new-datz1.

endcase.

enddo.

endif.

Changes in your coding ....

TABLES : pernr, t548t.

infotypes : 0041,

0001.

DATA : BEGIN OF datyp,

dar LIKE p0041-dar01,

dat LIKE p0041-dat01,

END OF datyp.

GET pernr.

rp_provide_from_last p0001 space pn-begda pn-endda.

rp_provide_from_last p0041 space pn-begda pn-endda.

IF pnp-sw-found EQ 0.

REJECT.

ELSE.

DO 12 TIMES VARYING datyp-dar FROM p0041-dar01

NEXT p0041-dar02.

IF dtype-dar IS INITIAL.

EXIT.

ELSE.

...............

ENDIF.

ENDDO.

ENDIF.

Former Member
0 Kudos

HI,

Try like this..

DO 12 TIMES VARYING datyp-dar FROM p0041-dar01 NEXT p0041-dar02.
           VARYING datyp-dat FROM p0041-dat01 NEXT p0041-dat02.

ENDDO.

0 Kudos

Thanks everyone who has replied ... problem is solved

Former Member
0 Kudos

Hi,

Try this

INFOTYPES: 0041. DATA: BEGIN OF datespec, dar LIKE p0041-dar01, dat LIKE p0041-dat01, END OF datespec. rp-read-infotype perno 0041 p0041 begin end. DO 12 TIMES VARYING datespec-dar FROM p0041-dar01 NEXT p0041-dar02 VARYING datespec-dat FROM p0041-dat01 NEXT p0041-dat02. IF datespec-dar = type. MOVE datespec-dat TO date. EXIT. ENDIF. ENDDO. IF date IS INITIAL. RAISE no_entry. ENDIF.

Regards

Krishna

Former Member
0 Kudos

Hi,

Since the unicode checks are actives you have to code like below:

DO 12 TIMES VARYING datyp-dar FROM p0041-dar01

NEXT p0041-dar02.

IF datyp-dar IS INITIAL.

EXIT.

ELSE.

ENDIF.

ENDDO.

Regards,

Krishnakumar