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

internal table

Former Member
0 Likes
396

HI All.

I M TRYING TO GETabsent data in in internal table IT_ATTEN e.g field REST_HOLIDAY , LWP,AL ETC .

BUT NOT ABLE TO GET .PLZ HELP ME IN EXTRACTING DATA INTO internal table IT_ATTEN .

THANKS .

FORM GET_WORK_SCHEDULE1 .

G_BEGDA = BEG_DATE .

G_ENDDA = END_DATE .

LOOP AT IT_PA0001 INTO WA_PA0001.

  • initailize leave type variable

CLEAR IT_PERNR.

SR_NO = SR_NO + 1.

REST_HOLIDAY = 0.

ACT_WORK_DAY = 0.

LWP = 0.

AEL = 0.

CL = 0.

XL = 0.

EL = 0.

AL = 0.

CO = 0.

EML = 0.

RL = 0.

ML = 0.

POD = 0.

SL = 0.

SPL = 0.

POW = 0.

A = 0.

NA = 0.

END********************

WA_PERNR-PERNR = WA_pa0001-PERNR.

WA_PERNR-ERROR = ' '.

APPEND WA_PERNR TO IT_PERNR.

  • Get work schedule for each employee.

CALL FUNCTION 'HR_PERSON_READ_WORK_SCHEDULE'

EXPORTING

BEGIN_DATE = G_BEGDA

END_DATE = G_ENDDA

  • GROUPING_DWS =

  • GROUPING_ATTENDENCE =

  • GROUPING_SUBSTITUTE =

  • READ_FROM_DATABASE = ' '

  • IM_READ_NO_LOCKED_RECORDS =

TABLES

PERNR_TAB = IT_PERNR

PSP = IT_OUT

DAY_PSP = IT_DUMMY

EXCEPTIONS

ERROR_IN_BUILD_PSP = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Display work schedule date wise

LOOP AT IT_OUT INTO WA_OUT.

*****To Mark the Dates "N/A" Before Joining Date of Employee*****

IF WA_OUT-ACTIV = 'X'.

  • Week off's

IF WA_OUT-TPKLA = 1.

DISP1 = 'W/O'.

DISP2 = 'W/O'.

REST_HOLIDAY = REST_HOLIDAY + 1.

CASE WA_OUT-AWART.

WHEN 'ALWP'.

DISP1 = 'LWP'.

DISP2 = 'LWP'.

LWP = LWP + 1.

REST_HOLIDAY = REST_HOLIDAY - 1.

WHEN 'UABS'.

DISP1 = 'A'.

DISP2 = 'A'.

A = A + 1.

REST_HOLIDAY = REST_HOLIDAY - 1.

ENDCASE.

IF DISP1 = 'W/O' AND DISP2 = 'W/O'.

PERFORM CHECK_POW.

ENDIF.

ELSEIF WA_OUT-FTKLA = 1.

  • public holiday

DISP1 = 'PH'.

DISP2 = 'PH'.

REST_HOLIDAY = REST_HOLIDAY + 1.

CASE WA_OUT-AWART.

WHEN 'ALWP'.

DISP1 = 'LWP'.

DISP2 = 'LWP'.

LWP = LWP + 1.

REST_HOLIDAY = REST_HOLIDAY - 1.

WHEN 'UABS'.

DISP1 = 'A'.

DISP2 = 'A'.

A = A + 1.

REST_HOLIDAY = REST_HOLIDAY - 1.

ENDCASE.

ELSE.

  • other absense.

CASE WA_OUT-AWART.

WHEN 'ALWP'.

DISP1 = 'LWP'.

DISP2 = 'LWP'.

LWP = LWP + 1.

WHEN 'HAEL'.

DISP1 = 'AEL'.

DISP2 = 'AEL'.

AEL = AEL + 1.

WHEN 'HCSL'.

DISP1 = 'CL'.

DISP2 = 'CL'.

CL = CL + 1.

WHEN 'HEOL'.

DISP1 = 'XL'.

DISP2 = 'XL'.

XL = XL + 1.

WHEN 'HERL'.

DISP1 = 'EL'.

DISP2 = 'EL'.

EL = EL + 1.

WHEN 'HMAL'.

DISP1 = 'AL'.

DISP2 = 'AL'.

AL = AL + 1.

WHEN 'HMCO'.

DISP1 = 'CO'.

DISP2 = 'CO'.

CO = CO + 1.

WHEN 'HMLE'.

DISP1 = 'EML'.

DISP2 = 'EML'.

EML = EML + 1.

WHEN 'HMRL'.

DISP1 = 'RL'.

DISP2 = 'RL'.

RL = RL + 1.

WHEN 'HMTL'.

DISP1 = 'ML'.

DISP2 = 'ML'.

ML = ML + 1.

WHEN 'HPOD'.

DISP1 = 'POD'.

DISP2 = 'POD'.

POD = POD + 1.

WHEN 'HSKL'.

DISP1 = 'SL'.

DISP2 = 'SL'.

SL = SL + 1.

WHEN 'HSPL'.

DISP1 = 'SPL'.

DISP2 = 'SPL'.

SPL = SPL + 1.

WHEN 'UABS'.

DISP1 = 'A'.

DISP2 = 'A'.

A = A + 1.

WHEN 'ODDT'.

DISP1 = 'ODD'.

DISP2 = 'ODD'.

ACT_WORK_DAY = ACT_WORK_DAY + 1.

WHEN 'ODFT'.

DISP1 = 'ODF'.

DISP2 = 'ODF'.

ACT_WORK_DAY = ACT_WORK_DAY + 1.

WHEN 'ODLT'.

DISP1 = 'ODL'.

DISP2 = 'ODL'.

ACT_WORK_DAY = ACT_WORK_DAY + 1.

WHEN OTHERS.

DISP1 = 'P'.

DISP2 = 'P'.

ACT_WORK_DAY = ACT_WORK_DAY + 1.

ENDCASE.

ENDIF.

IF WA_OUT-TPKLA = 0 .

DISP1 = 'OFF' .

DISP2 = 'OFF'.

OFF = OFF + 1 .

ENDIF .

  • if working hours is less than 8 hrs

IF WA_OUT-DAUER NE 8 OR WA_OUT-DAUER NE 0.

LOOP AT IT_DUMMY INTO WA_DUMMY WHERE DATUM EQ WA_OUT-DATUM.

IF WA_DUMMY-BEGZT = WA_OUT-BEGZT.

CASE WA_DUMMY-AWART.

WHEN 'ALWP'.

DISP1 = 'LWP'.

LWP = LWP + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HAEL'.

DISP1 = 'AEL'.

AEL = AEL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HCSL'.

DISP1 = 'CL'.

CL = CL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HEOL'.

DISP1 = 'XL'.

XL = XL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HERL'.

DISP1 = 'EL'.

EL = EL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMAL'.

DISP1 = 'AL'.

AL = AL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMCO'.

DISP1 = 'CO'.

CO = CO + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMLE'.

DISP1 = 'EML'.

EML = EML + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMRL'.

DISP1 = 'RL'.

RL = RL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMTL'.

DISP1 = 'ML'.

ML = ML + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HPOD'.

DISP1 = 'POD'.

POD = POD + '0.25' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.25'.

WHEN 'HSKL'.

DISP1 = 'SL'.

SL = SL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HSPL'.

DISP1 = 'SPL'.

SPL = SPL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'UABS'.

DISP1 = 'A'.

A = A + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'ODDT'.

DISP1 = 'ODD'.

WHEN 'ODFT'.

DISP1 = 'ODF'.

WHEN 'ODLT'.

DISP1 = 'ODL'.

ENDCASE.

ELSEIF WA_DUMMY-ENDZT = WA_OUT-ENDZT.

CASE WA_DUMMY-AWART.

WHEN 'ALWP'.

DISP2 = 'LWP'.

LWP = LWP + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HAEL'.

DISP2 = 'AEL'.

AEL = AEL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HCSL'.

DISP2 = 'CL'.

CL = CL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HEOL'.

DISP2 = 'XL'.

XL = XL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HERL'.

DISP2 = 'EL'.

EL = EL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMAL'.

DISP2 = 'AL'.

AL = AL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMCO'.

DISP2 = 'CO'.

CO = CO + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMLE'.

DISP2 = 'EML'.

EML = EML + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMRL'.

DISP2 = 'RL'.

RL = RL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HMTL'.

DISP2 = 'ML'.

ML = ML + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HPOD'.

DISP2 = 'POD'.

POD = POD + '0.25' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.25'.

WHEN 'HSKL'.

DISP2 = 'SL'.

SL = SL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'HSPL'.

DISP2 = 'SPL'.

SPL = SPL + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'UABS'.

DISP2 = 'A'.

A = A + '0.5' .

ACT_WORK_DAY = ACT_WORK_DAY - '0.5'.

WHEN 'ODDT'.

DISP2 = 'ODD'.

WHEN 'ODFT'.

DISP2 = 'ODF'.

WHEN 'ODLT'.

DISP2 = 'ODL'.

ENDCASE.

ENDIF.

************************Changes By Vinay To Comment condition 25.05.2007 Start*****************

ENDLOOP.

ENDIF.

*****To Mark the Dates "N/A" Before Joining Date of Employee*****

ELSE.

DISP1 = 'N/A'.

DISP2 = 'N/A'.

NA = NA + 1.

ENDIF.

ENDLOOP.

""" I M NOT ABLE 2 GET REST_HOLIDAY,LWP HERE"

loop at it_atten into wa_atten .

WA_ATTEN-PERNR = WA_PERNR .

WA_ATTEN-REST_HOLIDAY = REST_HOLIDAY.

WA_ATTEN-ACT_WORK_DAY = ACT_WORK_DAY .

WA_ATTEN-LWP = LWP .

WA_ATTEN-AEL = AEL .

WA_ATTEN-CL = CL .

WA_ATTEN-XL = XL .

WA_ATTEN-EL = EL.

WA_ATTEN-AL = AL.

WA_ATTEN-CO = CO.

WA_ATTEN-EML = EML .

WA_ATTEN-RL = RL.

WA_ATTEN-ML = ML.

WA_ATTEN-POD = POD.

WA_ATTEN-SL = SL.

WA_ATTEN-SPL = SPL.

WA_ATTEN-POW = POW.

WA_ATTEN-A = A.

WA_ATTEN-WPD = WPD .

WA_ATTEN-NA = NA .

WA_ATTEN-OFF = OFF .

WA_ATTEN-SH = SH .

WA_ATTEN-NUM_DAY1 = NUM_DAY1 .

APPEND WA_ATTEN TO IT_ATTEN .

endloop .

CLEAR WA_ATTEN .

CLEAR: IT_OUT,

WA_OUT,

IT_DUMMY,

WA_DUMMY.

*****perform total1 .

endloop .

CLEAR : WA_ATTEN , WA_ATTEN. .

2 REPLIES 2
Read only

Former Member
0 Likes
351

sorry, for me too little information and too much coding ...

Read only

0 Likes
351

include the required field in the select query

narendra