2007 Oct 22 3:09 PM
hi friends, flowing codes like rpteup10 program. but we changed it. (december 2005) . but now there is problem not working . it is writing done but infotype 2011 from pa20 there is no change. maybe problem is fm HR_CC1_TIMEEVENT_INSERT. please help me.
note sorry for my english.
report rpteup10 no standard page heading.
* Die Struktur der eingelesenen Saetze ist in der Feldleiste EXTREC
* beschrieben.
* Die Umsetzung der Saetze in die Struktur TIMEEVENT erfolgt in FORM
* SET_EXTREC_TO_TIMEEVENT. Die Zuweisung erfolgt an die Feldleiste
* timeevent.
*
* The structure of the imported records is described in the internal
* structure EXTREC.
* The transport of the imported records into the structure TIMEEVENT
* is done in FORM SET_EXTREC_TO_TIMEEVENT.
tables: teven.
data: begin of extrec occurs 0.
include structure z1hrkk1teup.
data: end of extrec.
data: timeevent like cc1_timeevent occurs 0 with header line.
data: last_timeevent like cc1_timeevent.
data: skipped_timeevent like cc1_timeevent occurs 0 with header line.
data: begin of stat occurs 1,
ldate like teven-ldate,
anzhl(4) type p value 1,
end of stat.
data: l_posted_timeevents like sy-dbcnt,
l_faulty_timeevents like sy-dbcnt,
l_locked_timeevents like sy-dbcnt,
l_total_timeevents like sy-dbcnt,
l_uploaded_timeevents like sy-dbcnt,
l_skipped_timeevents like sy-dbcnt. "P40K025970
data: msg(100).
* Syntax von MASKE siehe Doku FB WS_FILENAME_GET
data: begin of maske,
',',
f01(30),
',',
'*.txt',
',',
f02(30),
',',
'*.*',
'.',
end of maske.
selection-screen begin of block quelle with frame title text-src.
* Pushbuttons for selection of source
selection-screen begin of line.
parameters:
dataset like rptxxxxx-kr_feld1
radiobutton group g001 default 'X'.
selection-screen comment 03(30) text-010.
parameters:
file like rptaxxxx-rfile default '/usr/sap/up.tmp'.
selection-screen end of line.
selection-screen begin of line.
parameters:
workstn like rptxxxxx-kr_feld1
radiobutton group g001.
selection-screen comment 03(30) text-011.
parameters:
name like rlgrap-filename default 'A:UPLOAD.TXT'.
selection-screen end of line.
selection-screen end of block quelle.
selection-screen begin of block frm1 with frame title text-par.
parameters:
upload like rptxxxxx-kr_feld1 default 'X',
update like cc1par-x_verb default 'X',
protokol like rptxxxxx-kr_feld2 default 'X'.
selection-screen end of block frm1.
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN *
*---------------------------------------------------------------------*
at selection-screen.
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST FOR ... *
*---------------------------------------------------------------------*
at selection-screen on value-request for name.
call function 'WS_FILENAME_GET'
exporting
* DEF_FILENAME = 'hallo'
def_path = 'C:'
mask = maske
* MODE = 'O'
* TITLE = ' '
importing
filename = name
* RC =
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
* end of -------------------------------------------------- "P30K108491
initialization.
start-of-selection.
perform check_parameters.
if not workstn is initial.
call function 'WS_UPLOAD'
exporting
filename = name
filetype = 'ASC'
tables
data_tab = extrec
exceptions
conversion_error = 1
* FILE_OPEN_ERROR = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
others = 8.
if sy-subrc eq 2.
write: / 'Fehlerhafter Pfadname'(013).
endif.
elseif not dataset is initial.
open dataset file for input message msg.
if sy-subrc ne 0.
write: / msg.
stop.
endif.
do.
read dataset file into extrec.
if sy-subrc ne 0. exit. endif.
append extrec.
enddo.
else.
* Nur zum Testen
extrec-zausw = '10005301'.
extrec-satza = 'P10'.
extrec-ldate = sy-datum.
extrec-ltime = '120000'.
* extrec-otype = 'S '.
* extrec-plans = '12345678'.
* extrec-usrup = 'VIELZWECKFELD'.
append extrec.
extrec-ltime = '140000'.
extrec-satza = 'Z10'.
append extrec.
endif.
loop at extrec.
check not extrec is initial.
perform set_extrec_to_timeevent.
perform append_timeevent.
perform fill_stat.
endloop.
*for double entry
CLEAR SKIPPED_TIMEEVENT. REFRESH SKIPPED_TIMEEVENT.
LOOP AT TIMEEVENT.
SELECT SINGLE * FROM TEVEN WHERE PERNR = TIMEEVENT-PERNR AND
LDATE = TIMEEVENT-LDATE AND
LTIME = TIMEEVENT-LTIME AND
SATZA = TIMEEVENT-SATZA AND
STOKZ = ''.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING TIMEEVENT TO SKIPPED_TIMEEVENT.
APPEND SKIPPED_TIMEEVENT.
DELETE TIMEEVENT.
ENDIF.
ENDLOOP.
if protokol eq 'X'.
perform show_timeevent.
perform show_skipped_timeevent.
endif.
if upload eq 'X'.
describe table timeevent lines sy-tfill.
if not timeevent[] is initial.
perform get_numbers.
call function 'HR_CC1_TIMEEVENT_INSERT'
tables
timeevent = timeevent
exceptions
others = 1.
commit work.
describe table timeevent lines l_uploaded_timeevents.
endif.
endif.
if update eq 'X'.
call function 'HR_CC1_TIMEEVENT_POST'
importing
posted_timeevents = l_posted_timeevents
faulty_timeevents = l_faulty_timeevents
locked_timeevents = l_locked_timeevents
skipped_timeevents = l_skipped_timeevents "P40K026655
exceptions
others = 0.
* Zeitpunkt zur Steuerung der Batchverarbeitung setzen
* GET TIME.
* start_datum = sy-datum.
* start_uzeit = sy-uzeit + 10.
* Übergabe Steuerungsparameter an Task-handler -> BATCH !
* CALL FUNCTION 'START_OF_BACKGROUNDTASK'
* EXPORTING
* startdate = start_datum
* starttime = start_uzeit
* EXCEPTIONS
* others = 1.
commit work.
endif.
* PERFORM show_stat.
perform show_verarbeitung.
*=====================================================================*
*---------------------------------------------------------------------*
* FORM SET_EXTREC_TO_TIMEEVENT *
*---------------------------------------------------------------------*
* Hier ist gegebenenfalls Sondercoding erforderlich. *
*---------------------------------------------------------------------*
form set_extrec_to_timeevent.
* Nutzdaten
move-corresponding extrec to timeevent.
* move: extrec-otype to timeevent-pdc_otype,
* extrec-plans to timeevent-pdc_plans,
* extrec-usrup to timeevent-pdc_usrup.
* technische Felder
timeevent-indeu = 'I'.
endform.
*---------------------------------------------------------------------*
* FORM APPEND_timeevent.
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form append_timeevent.
* IF sorted EQ 'X'.
** Die Sätze sind nach Ausweisnummer gruppiert,
** performant: nur den letzten Satz vergleichen.
* IF timeevent-zausw EQ last_timeevent-zausw AND
* timeevent-ldate EQ last_timeevent-ldate AND
* timeevent-ltime EQ last_timeevent-ltime AND
* timeevent-erdat EQ last_timeevent-erdat AND
* timeevent-ertim EQ last_timeevent-ertim .
* DESCRIBE TABLE timeevent LINES sy-tfill.
* MODIFY timeevent INDEX sy-tfill.
* skipped_timeevent = last_timeevent.
* APPEND skipped_timeevent.
* ELSE.
* APPEND timeevent.
* ENDIF.
* last_timeevent = timeevent.
* ELSE.
* Die Sätze sind nicht sortiert,
* immer mit allen vorhandenen Sätzen vergleichen.
read table timeevent into last_timeevent
with key zausw = timeevent-zausw
ldate = timeevent-ldate
ltime = timeevent-ltime
erdat = timeevent-erdat
ertim = timeevent-ertim
binary search.
if sy-subrc eq 0.
* Früherer Eintrag wird protokolliert und überschrieben.
modify timeevent index sy-tabix.
skipped_timeevent = last_timeevent.
append skipped_timeevent.
else.
insert timeevent index sy-tabix.
endif.
* ENDIF.
endform.
*---------------------------------------------------------------------*
* FORM CHECK_PARAMETERS *
*---------------------------------------------------------------------*
form check_parameters.
if file eq space.
write: / 'Bitte Namen für seq. Datenbestand angeben'(e01).
stop.
endif.
endform.
*---------------------------------------------------------------------*
* FORM FILL_STAT *
*---------------------------------------------------------------------*
form fill_stat.
read table stat with key timeevent-ldate binary search.
if sy-subrc eq 0.
add 1 to stat-anzhl.
modify stat index sy-tabix.
else.
move timeevent-ldate to stat-ldate.
move 1 to stat-anzhl.
insert stat index sy-tabix.
endif.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_STAT *
*---------------------------------------------------------------------*
form show_stat.
skip 1.
summary.
format color col_background intensified.
write: 'Statistik '(s06)
color col_background intensified off.
write: /(23) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'Datum '(s07) no-gap.
write: sy-vline no-gap.
write: (10) 'Sätze '(s10) no-gap.
write: sy-vline.
write: /(23) sy-uline.
loop at stat.
write: / sy-vline no-gap.
format color col_key.
write: stat-ldate no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) stat-anzhl no-gap.
write: sy-vline no-gap.
endloop.
write: /(23) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_VERARBEITUNG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_verarbeitung.
l_total_timeevents = l_posted_timeevents +
l_faulty_timeevents +
l_locked_timeevents.
skip 1.
summary.
format color col_background intensified.
write: 'Verarbeitung '(par)
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (65) ' ' no-gap.
write: sy-vline no-gap.
write: (10) 'Sätze '(s10) no-gap.
write: sy-vline.
write: /(78) sy-uline.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Schnittstelle gestellt'(v01) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_uploaded_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'aus Schnittstelle gelesen'(v02) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_total_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Zeitwirtschaft verbucht'(v03) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_posted_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Fehlervorrat gestellt'(v04) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_faulty_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65)
'in Schnittstelle belassen, da Personalnummer gesperrt'(v05)
no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_locked_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap. "P40K026655
format color col_key. "P40K026655
write: (65) 'durch Zeitwirtschaft verworfen'(v06) no-gap. "P40K026655
write: sy-vline no-gap. "P40K026655
format color col_normal. "P40K026655
write: (10) l_skipped_timeevents no-gap. "P40K026655
write: sy-vline no-gap. "P40K026655
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_timeevent *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_timeevent.
summary.
format color col_background intensified.
write: 'Protokoll '(s08)
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'PersNr. '(001) no-gap.
write: sy-vline no-gap.
write: (10) 'Zeitausw. '(002) no-gap.
write: sy-vline no-gap.
write: (10) 'Datum '(003) no-gap.
write: sy-vline no-gap.
write: (10) 'Uhrzeit '(004) no-gap.
write: sy-vline no-gap.
write: (10) 'Satzart '(005) no-gap.
write: sy-vline no-gap.
write: (10) 'Terminal '(006) no-gap.
write: sy-vline no-gap.
write: (10) 'An/Abw '(007) no-gap.
write: sy-vline no-gap.
write: /(78) sy-uline.
format color col_normal.
loop at timeevent.
write: / sy-vline no-gap.
write: (10) timeevent-pernr no-zero no-gap,
sy-vline no-gap,
(10) timeevent-zausw no-zero no-gap,
sy-vline no-gap,
(10) timeevent-ldate no-gap,
sy-vline no-gap,
(10) timeevent-ltime no-gap,
sy-vline no-gap,
(10) timeevent-satza no-gap,
sy-vline no-gap,
(10) timeevent-terid no-gap,
sy-vline no-gap,
(10) timeevent-abwgr no-gap,
sy-vline no-gap.
endloop.
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_SKIPPED_timeevent *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_skipped_timeevent.
check not skipped_timeevent[] is initial.
skip 1.
summary.
format color col_background intensified.
* WRITE: 'Überschriebene Sätze'(s09) "P40K026655
write: 'Überlesene doppelte Sätze'(s09) "P40K026655
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'PersNr. '(001) no-gap.
write: sy-vline no-gap.
write: (10) 'Zeitausw. '(002) no-gap.
write: sy-vline no-gap.
write: (10) 'Datum '(003) no-gap.
write: sy-vline no-gap.
write: (10) 'Uhrzeit '(004) no-gap.
write: sy-vline no-gap.
write: (10) 'Satzart '(005) no-gap.
write: sy-vline no-gap.
write: (10) 'Terminal '(006) no-gap.
write: sy-vline no-gap.
write: (10) 'An/Abw '(007) no-gap.
write: sy-vline no-gap.
write: /(78) sy-uline.
format color col_normal.
loop at skipped_timeevent into timeevent.
write: / sy-vline no-gap.
write: (10) timeevent-pernr no-zero no-gap,
sy-vline no-gap,
(10) timeevent-zausw no-zero no-gap,
sy-vline no-gap,
(10) timeevent-ldate no-gap,
sy-vline no-gap,
(10) timeevent-ltime no-gap,
sy-vline no-gap,
(10) timeevent-satza no-gap,
sy-vline no-gap,
(10) timeevent-terid no-gap,
sy-vline no-gap,
(10) timeevent-abwgr no-gap,
sy-vline no-gap.
endloop.
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM GET_NUMBERS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form get_numbers.
data: retcd like inri-returncode,
quantity_wanted like inri-quantity,
number like pdsnr-pdsnr,
object like inri-object value 'PD_SEQ_NR',
range like inri-nrrangenr value '01',
quantity_get like inri-quantity .
describe table timeevent lines quantity_wanted.
check quantity_wanted gt 0.
call function 'NUMBER_GET_NEXT'
exporting
object = object
nr_range_nr = range
quantity = quantity_wanted
importing
returncode = retcd
number = number
quantity = quantity_get
exceptions
object_not_found = 1
interval_not_found = 2
number_range_not_intern = 3.
case sy-subrc.
when 0.
case retcd.
when 1. "kritischer Bereich
message w093(53) with object number.
when 2. "erschöpft
message e094(53) with object number.
when 3. "erschöpft
message e094(53) with object number.
endcase.
when 1. "Objekt nicht angelegt
message a090(53) with object.
when 2. "Intervall nicht angelegt
message a091(53) with object number.
when 3. "Intervall nicht intern
message a092(53) with object number.
endcase.
loop at timeevent.
timeevent-pdsnr = number - quantity_wanted + sy-tabix.
modify timeevent.
endloop.
commit work.
endform.
Message was edited by:
Fatih AYDIN
2007 Oct 22 3:20 PM
Hi Faith,
there has been lot many changes in the time programs during SAP upgrades. Can you just revisit and see if you still require your changes.
Regards,
Atish
hi friends, flowing codes like rpteup10 program. but we changed it. (december 2005) . but now there is problem not working . it is writing done but infotype 2011 from pa20 there is no change. maybe problem is fm HR_CC1_TIMEEVENT_INSERT. please help me.
note sorry for my english.
report rpteup10 no standard page heading.
* Die Struktur der eingelesenen Saetze ist in der Feldleiste EXTREC
* beschrieben.
* Die Umsetzung der Saetze in die Struktur TIMEEVENT erfolgt in FORM
* SET_EXTREC_TO_TIMEEVENT. Die Zuweisung erfolgt an die Feldleiste
* timeevent.
*
* The structure of the imported records is described in the internal
* structure EXTREC.
* The transport of the imported records into the structure TIMEEVENT
* is done in FORM SET_EXTREC_TO_TIMEEVENT.
tables: teven.
data: begin of extrec occurs 0.
include structure z1hrkk1teup.
data: end of extrec.
data: timeevent like cc1_timeevent occurs 0 with header line.
data: last_timeevent like cc1_timeevent.
data: skipped_timeevent like cc1_timeevent occurs 0 with header line.
data: begin of stat occurs 1,
ldate like teven-ldate,
anzhl(4) type p value 1,
end of stat.
data: l_posted_timeevents like sy-dbcnt,
l_faulty_timeevents like sy-dbcnt,
l_locked_timeevents like sy-dbcnt,
l_total_timeevents like sy-dbcnt,
l_uploaded_timeevents like sy-dbcnt,
l_skipped_timeevents like sy-dbcnt. "P40K025970
data: msg(100).
* Syntax von MASKE siehe Doku FB WS_FILENAME_GET
data: begin of maske,
',',
f01(30),
',',
'*.txt',
',',
f02(30),
',',
'*.*',
'.',
end of maske.
selection-screen begin of block quelle with frame title text-src.
* Pushbuttons for selection of source
selection-screen begin of line.
parameters:
dataset like rptxxxxx-kr_feld1
radiobutton group g001 default 'X'.
selection-screen comment 03(30) text-010.
parameters:
file like rptaxxxx-rfile default '/usr/sap/up.tmp'.
selection-screen end of line.
selection-screen begin of line.
parameters:
workstn like rptxxxxx-kr_feld1
radiobutton group g001.
selection-screen comment 03(30) text-011.
parameters:
name like rlgrap-filename default 'A:UPLOAD.TXT'.
selection-screen end of line.
selection-screen end of block quelle.
selection-screen begin of block frm1 with frame title text-par.
parameters:
upload like rptxxxxx-kr_feld1 default 'X',
update like cc1par-x_verb default 'X',
protokol like rptxxxxx-kr_feld2 default 'X'.
selection-screen end of block frm1.
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN *
*---------------------------------------------------------------------*
at selection-screen.
*---------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST FOR ... *
*---------------------------------------------------------------------*
at selection-screen on value-request for name.
call function 'WS_FILENAME_GET'
exporting
* DEF_FILENAME = 'hallo'
def_path = 'C:'
mask = maske
* MODE = 'O'
* TITLE = ' '
importing
filename = name
* RC =
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
* end of -------------------------------------------------- "P30K108491
initialization.
start-of-selection.
perform check_parameters.
if not workstn is initial.
call function 'WS_UPLOAD'
exporting
filename = name
filetype = 'ASC'
tables
data_tab = extrec
exceptions
conversion_error = 1
* FILE_OPEN_ERROR = 2
file_read_error = 3
invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
others = 8.
if sy-subrc eq 2.
write: / 'Fehlerhafter Pfadname'(013).
endif.
elseif not dataset is initial.
open dataset file for input message msg.
if sy-subrc ne 0.
write: / msg.
stop.
endif.
do.
read dataset file into extrec.
if sy-subrc ne 0. exit. endif.
append extrec.
enddo.
else.
* Nur zum Testen
extrec-zausw = '10005301'.
extrec-satza = 'P10'.
extrec-ldate = sy-datum.
extrec-ltime = '120000'.
* extrec-otype = 'S '.
* extrec-plans = '12345678'.
* extrec-usrup = 'VIELZWECKFELD'.
append extrec.
extrec-ltime = '140000'.
extrec-satza = 'Z10'.
append extrec.
endif.
loop at extrec.
check not extrec is initial.
perform set_extrec_to_timeevent.
perform append_timeevent.
perform fill_stat.
endloop.
*for double entry
CLEAR SKIPPED_TIMEEVENT. REFRESH SKIPPED_TIMEEVENT.
LOOP AT TIMEEVENT.
SELECT SINGLE * FROM TEVEN WHERE PERNR = TIMEEVENT-PERNR AND
LDATE = TIMEEVENT-LDATE AND
LTIME = TIMEEVENT-LTIME AND
SATZA = TIMEEVENT-SATZA AND
STOKZ = ''.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING TIMEEVENT TO SKIPPED_TIMEEVENT.
APPEND SKIPPED_TIMEEVENT.
DELETE TIMEEVENT.
ENDIF.
ENDLOOP.
if protokol eq 'X'.
perform show_timeevent.
perform show_skipped_timeevent.
endif.
if upload eq 'X'.
describe table timeevent lines sy-tfill.
if not timeevent[] is initial.
perform get_numbers.
call function 'HR_CC1_TIMEEVENT_INSERT'
tables
timeevent = timeevent
exceptions
others = 1.
commit work.
describe table timeevent lines l_uploaded_timeevents.
endif.
endif.
if update eq 'X'.
call function 'HR_CC1_TIMEEVENT_POST'
importing
posted_timeevents = l_posted_timeevents
faulty_timeevents = l_faulty_timeevents
locked_timeevents = l_locked_timeevents
skipped_timeevents = l_skipped_timeevents "P40K026655
exceptions
others = 0.
* Zeitpunkt zur Steuerung der Batchverarbeitung setzen
* GET TIME.
* start_datum = sy-datum.
* start_uzeit = sy-uzeit + 10.
* Übergabe Steuerungsparameter an Task-handler -> BATCH !
* CALL FUNCTION 'START_OF_BACKGROUNDTASK'
* EXPORTING
* startdate = start_datum
* starttime = start_uzeit
* EXCEPTIONS
* others = 1.
commit work.
endif.
* PERFORM show_stat.
perform show_verarbeitung.
*=====================================================================*
*---------------------------------------------------------------------*
* FORM SET_EXTREC_TO_TIMEEVENT *
*---------------------------------------------------------------------*
* Hier ist gegebenenfalls Sondercoding erforderlich. *
*---------------------------------------------------------------------*
form set_extrec_to_timeevent.
* Nutzdaten
move-corresponding extrec to timeevent.
* move: extrec-otype to timeevent-pdc_otype,
* extrec-plans to timeevent-pdc_plans,
* extrec-usrup to timeevent-pdc_usrup.
* technische Felder
timeevent-indeu = 'I'.
endform.
*---------------------------------------------------------------------*
* FORM APPEND_timeevent.
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form append_timeevent.
* IF sorted EQ 'X'.
** Die Sätze sind nach Ausweisnummer gruppiert,
** performant: nur den letzten Satz vergleichen.
* IF timeevent-zausw EQ last_timeevent-zausw AND
* timeevent-ldate EQ last_timeevent-ldate AND
* timeevent-ltime EQ last_timeevent-ltime AND
* timeevent-erdat EQ last_timeevent-erdat AND
* timeevent-ertim EQ last_timeevent-ertim .
* DESCRIBE TABLE timeevent LINES sy-tfill.
* MODIFY timeevent INDEX sy-tfill.
* skipped_timeevent = last_timeevent.
* APPEND skipped_timeevent.
* ELSE.
* APPEND timeevent.
* ENDIF.
* last_timeevent = timeevent.
* ELSE.
* Die Sätze sind nicht sortiert,
* immer mit allen vorhandenen Sätzen vergleichen.
read table timeevent into last_timeevent
with key zausw = timeevent-zausw
ldate = timeevent-ldate
ltime = timeevent-ltime
erdat = timeevent-erdat
ertim = timeevent-ertim
binary search.
if sy-subrc eq 0.
* Früherer Eintrag wird protokolliert und überschrieben.
modify timeevent index sy-tabix.
skipped_timeevent = last_timeevent.
append skipped_timeevent.
else.
insert timeevent index sy-tabix.
endif.
* ENDIF.
endform.
*---------------------------------------------------------------------*
* FORM CHECK_PARAMETERS *
*---------------------------------------------------------------------*
form check_parameters.
if file eq space.
write: / 'Bitte Namen für seq. Datenbestand angeben'(e01).
stop.
endif.
endform.
*---------------------------------------------------------------------*
* FORM FILL_STAT *
*---------------------------------------------------------------------*
form fill_stat.
read table stat with key timeevent-ldate binary search.
if sy-subrc eq 0.
add 1 to stat-anzhl.
modify stat index sy-tabix.
else.
move timeevent-ldate to stat-ldate.
move 1 to stat-anzhl.
insert stat index sy-tabix.
endif.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_STAT *
*---------------------------------------------------------------------*
form show_stat.
skip 1.
summary.
format color col_background intensified.
write: 'Statistik '(s06)
color col_background intensified off.
write: /(23) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'Datum '(s07) no-gap.
write: sy-vline no-gap.
write: (10) 'Sätze '(s10) no-gap.
write: sy-vline.
write: /(23) sy-uline.
loop at stat.
write: / sy-vline no-gap.
format color col_key.
write: stat-ldate no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) stat-anzhl no-gap.
write: sy-vline no-gap.
endloop.
write: /(23) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_VERARBEITUNG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_verarbeitung.
l_total_timeevents = l_posted_timeevents +
l_faulty_timeevents +
l_locked_timeevents.
skip 1.
summary.
format color col_background intensified.
write: 'Verarbeitung '(par)
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (65) ' ' no-gap.
write: sy-vline no-gap.
write: (10) 'Sätze '(s10) no-gap.
write: sy-vline.
write: /(78) sy-uline.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Schnittstelle gestellt'(v01) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_uploaded_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'aus Schnittstelle gelesen'(v02) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_total_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Zeitwirtschaft verbucht'(v03) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_posted_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65) 'in Fehlervorrat gestellt'(v04) no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_faulty_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap.
format color col_key.
write: (65)
'in Schnittstelle belassen, da Personalnummer gesperrt'(v05)
no-gap.
write: sy-vline no-gap.
format color col_normal.
write: (10) l_locked_timeevents no-gap.
write: sy-vline no-gap.
write: / sy-vline no-gap. "P40K026655
format color col_key. "P40K026655
write: (65) 'durch Zeitwirtschaft verworfen'(v06) no-gap. "P40K026655
write: sy-vline no-gap. "P40K026655
format color col_normal. "P40K026655
write: (10) l_skipped_timeevents no-gap. "P40K026655
write: sy-vline no-gap. "P40K026655
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_timeevent *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_timeevent.
summary.
format color col_background intensified.
write: 'Protokoll '(s08)
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'PersNr. '(001) no-gap.
write: sy-vline no-gap.
write: (10) 'Zeitausw. '(002) no-gap.
write: sy-vline no-gap.
write: (10) 'Datum '(003) no-gap.
write: sy-vline no-gap.
write: (10) 'Uhrzeit '(004) no-gap.
write: sy-vline no-gap.
write: (10) 'Satzart '(005) no-gap.
write: sy-vline no-gap.
write: (10) 'Terminal '(006) no-gap.
write: sy-vline no-gap.
write: (10) 'An/Abw '(007) no-gap.
write: sy-vline no-gap.
write: /(78) sy-uline.
format color col_normal.
loop at timeevent.
write: / sy-vline no-gap.
write: (10) timeevent-pernr no-zero no-gap,
sy-vline no-gap,
(10) timeevent-zausw no-zero no-gap,
sy-vline no-gap,
(10) timeevent-ldate no-gap,
sy-vline no-gap,
(10) timeevent-ltime no-gap,
sy-vline no-gap,
(10) timeevent-satza no-gap,
sy-vline no-gap,
(10) timeevent-terid no-gap,
sy-vline no-gap,
(10) timeevent-abwgr no-gap,
sy-vline no-gap.
endloop.
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM SHOW_SKIPPED_timeevent *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form show_skipped_timeevent.
check not skipped_timeevent[] is initial.
skip 1.
summary.
format color col_background intensified.
* WRITE: 'Überschriebene Sätze'(s09) "P40K026655
write: 'Überlesene doppelte Sätze'(s09) "P40K026655
color col_background intensified off.
write: /(78) sy-uline.
format color col_heading.
write: / sy-vline no-gap.
write: (10) 'PersNr. '(001) no-gap.
write: sy-vline no-gap.
write: (10) 'Zeitausw. '(002) no-gap.
write: sy-vline no-gap.
write: (10) 'Datum '(003) no-gap.
write: sy-vline no-gap.
write: (10) 'Uhrzeit '(004) no-gap.
write: sy-vline no-gap.
write: (10) 'Satzart '(005) no-gap.
write: sy-vline no-gap.
write: (10) 'Terminal '(006) no-gap.
write: sy-vline no-gap.
write: (10) 'An/Abw '(007) no-gap.
write: sy-vline no-gap.
write: /(78) sy-uline.
format color col_normal.
loop at skipped_timeevent into timeevent.
write: / sy-vline no-gap.
write: (10) timeevent-pernr no-zero no-gap,
sy-vline no-gap,
(10) timeevent-zausw no-zero no-gap,
sy-vline no-gap,
(10) timeevent-ldate no-gap,
sy-vline no-gap,
(10) timeevent-ltime no-gap,
sy-vline no-gap,
(10) timeevent-satza no-gap,
sy-vline no-gap,
(10) timeevent-terid no-gap,
sy-vline no-gap,
(10) timeevent-abwgr no-gap,
sy-vline no-gap.
endloop.
write: /(78) sy-uline.
endform.
*---------------------------------------------------------------------*
* FORM GET_NUMBERS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
form get_numbers.
data: retcd like inri-returncode,
quantity_wanted like inri-quantity,
number like pdsnr-pdsnr,
object like inri-object value 'PD_SEQ_NR',
range like inri-nrrangenr value '01',
quantity_get like inri-quantity .
describe table timeevent lines quantity_wanted.
check quantity_wanted gt 0.
call function 'NUMBER_GET_NEXT'
exporting
object = object
nr_range_nr = range
quantity = quantity_wanted
importing
returncode = retcd
number = number
quantity = quantity_get
exceptions
object_not_found = 1
interval_not_found = 2
number_range_not_intern = 3.
case sy-subrc.
when 0.
case retcd.
when 1. "kritischer Bereich
message w093(53) with object number.
when 2. "erschöpft
message e094(53) with object number.
when 3. "erschöpft
message e094(53) with object number.
endcase.
when 1. "Objekt nicht angelegt
message a090(53) with object.
when 2. "Intervall nicht angelegt
message a091(53) with object number.
when 3. "Intervall nicht intern
message a092(53) with object number.
endcase.
loop at timeevent.
timeevent-pdsnr = number - quantity_wanted + sy-tabix.
modify timeevent.
endloop.
commit work.
endform.
Message was edited by:
Fatih AYDIN
2007 Oct 22 3:20 PM
Hi Faith,
there has been lot many changes in the time programs during SAP upgrades. Can you just revisit and see if you still require your changes.
Regards,
Atish
2007 Oct 22 3:44 PM
sorry for forgetting. programs is working 3 months ago. and there is no upgrade (deleted from question). but i saw cc1tev table is getting our records but not same record in teven table. maybe it will help for you.
following is example of my upload text.
800119599001175920071002075100P10
2007 Oct 22 3:51 PM
Hi Faith,
I am not in front of system so can't actually check it.
Regards,
Atish
2007 Oct 23 9:45 AM
Hi Atish,
ok you are right. I add new function to solve problem. its HR_TMW_DB_UPDATE_TEVENT.
i am directly insert to teven with that fm. but I want to solve why it is not working. it was working before and now its working now just some personel. i will become insane. what is problem?
note my name is Fatih, not Faith.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |