| « | 九月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | |||||
FUNCTION zhrrfc004_lx.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(S_BEGDA) LIKE SY-DATUM DEFAULT SY-DATUM
*" VALUE(S_ENDDA) LIKE SY-DATUM DEFAULT SY-DATUM
*" VALUE(S_SPRSL) LIKE SY-LANGU DEFAULT SY-LANGU
*" VALUE(S_PERNR) LIKE PERNR-PERNR
*" EXPORTING
*" VALUE(RETURN_A) TYPE CHAR200
*" VALUE(E_BEGDA) LIKE SY-DATUM
*" VALUE(E_ENDDA) LIKE SY-DATUM
*" VALUE(E_SPRSL) LIKE SY-LANGU
*" TABLES
*" ITABA STRUCTURE ZHRS003
*"----------------------------------------------------------------------
* INCLUDE rpc2b200.
* DATA: time_results TYPE STANDARD TABLE OF ptm_time_results.
* DATA: time_results_wa LIKE LINE OF time_results.
DATA: BEGIN OF itab_pernr OCCURS 0,
pernr LIKE pa0003-pernr,
END OF itab_pernr.
DATA: BEGIN OF itab_t555f OCCURS 0,
errty LIKE t555f-errty,
error LIKE t555f-error,
etext LIKE t555f-etext,
END OF itab_t555f.
DATA: BEGIN OF fehler_uebergabe OCCURS 10.
INCLUDE STRUCTURE pc2b8.
DATA: END OF fehler_uebergabe.
data flach_fausg like table of t555f with header line.
e_begda = s_begda.
e_endda = s_endda.
e_sprsl = s_sprsl.
CALL FUNCTION 'BKK_GET_MONTH_LASTDAY'
EXPORTING
i_date = s_endda
IMPORTING
e_date = s_endda.
*取工资发放期间(主要是根据时间范围获取所在的年月)
SELECT * INTO CORRESPONDING FIELDS OF TABLE error_periods
FROM t549q WHERE
permo = '01'
AND
begda GE s_begda
AND endda LE s_endda
.
IF s_pernr IS INITIAL .
SELECT DISTINCT pa0003~pernr
INTO CORRESPONDING FIELDS OF TABLE itab_pernr
FROM pa0003
WHERE pa0003~mandt EQ sy-mandt.
ELSE.
APPEND s_pernr TO itab_pernr.
ENDIF.
rp-init-buffer.
rp-def-time-period.
* 获取错误的长文本
select * from t555f
into corresponding fields of table flach_fausg
where mobde = 1
and sprsl = sy-langu.
* and errty = fehler-errty
* and error = fehler-error.
*
FREE itaba.
LOOP AT itab_pernr.
PERFORM fehlertabelle_bauen TABLES fehler_uebergabe
error_periods
* using '00902075'.
USING itab_pernr-pernr.
*
fehler[] = fehler_uebergabe[].
* APPEND LINES OF fehler TO itaba.
LOOP AT fehler.
itaba-pernr = itab_pernr .
itaba-ldate = fehler-ldate.
itaba-ltime = fehler-ltime.
itaba-errty = fehler-errty.
itaba-error = fehler-error.
read table flach_fausg with key errty = itaba-errty error = itaba-error BINARY SEARCH.
itaba-etext = flach_fausg-etext.
itaba-aedtm = fehler-aedtm.
itaba-uname = fehler-uname.
APPEND ITABA TO ITABA.
ENDLOOP.
ENDLOOP.
ENDFUNCTION.
*&---------------------------------------------------------------------*
*& Form fehlertabelle_bauen
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->HAJW_FEHLER text
* -->ERROR_PERIODS text
* -->PERSON text
*----------------------------------------------------------------------*
FORM fehlertabelle_bauen
TABLES hajw_fehler STRUCTURE pc2b8
error_periods STRUCTURE ep_str
USING person TYPE p_pernr.
DATA: BEGIN OF a_error_periods OCCURS 0,
srtfd LIKE pcl2-srtfd,
END OF a_error_periods.
DATA: BEGIN OF b_error_periods OCCURS 0,
relid LIKE pcl2-relid,
srtfd LIKE pcl2-srtfd,
srtf2 LIKE pcl2-srtf2,
END OF b_error_periods.
CLEAR a_error_periods[].
LOOP AT error_periods.
CONCATENATE person
error_periods-pabrj
error_periods-pabrp
'1'
INTO a_error_periods-srtfd.
APPEND a_error_periods.
ENDLOOP.
SELECT * INTO CORRESPONDING FIELDS OF TABLE b_error_periods
FROM pcl2 FOR ALL ENTRIES IN a_error_periods
WHERE srtfd = a_error_periods-srtfd
AND relid = 'B2'
AND srtf2 = 0.
CLEAR hajw_fehler[].
LOOP AT b_error_periods.
b2-key = b_error_periods-srtfd.
rp-imp-c2-b2.
APPEND LINES OF fehler TO hajw_fehler.
ENDLOOP.
fehler[] = hajw_fehler[].
ENDFORM. "fehlertabelle_bauen
SAP实施顾问宝典
,学习资料下载:www.sap99.com
SAP实施顾问宝典 :http://www.sap99.com/Soft/VIP/200803/182.html