Beruflich Dokumente
Kultur Dokumente
REPORT ZKASIM00 .
DATA ECHTLAUF VALUE 'J'.
*parameters: kennz(3) default 'EGK',
* liste default 'J' ,
* jahr(4) default '2000' ,
* bumon(2) default '05',
* halt_auf like aufk-aufnr default '000000000000',
* abauftr like aufk-aufnr default '000000000000',
* jeder(3) default '000'.
DATA ABBRUCH.
***delete by borag
*DATA ZEILE(3).
***delete by borag.
***append by borag
DATA ZEILE(4).
***append by borag
DATA ANZAHL(4) TYPE P.
DATA: BEGIN OF AUS ,
GIEIG(6) TYPE P DECIMALS 2,
GIFRI LIKE AUS-GIEIG,
GIFRE LIKE AUS-GIEIG,
GIMAG LIKE AUS-GIEIG,
GIFRL LIKE AUS-GIEIG,
GISON LIKE AUS-GIEIG,
SIEIG LIKE AUS-GIEIG,
SIFRI LIKE AUS-GIEIG,
SIFRE LIKE AUS-GIEIG,
SIMAG LIKE AUS-GIEIG,
SIFRL LIKE AUS-GIEIG,
SISON LIKE AUS-GIEIG,
GOFRI LIKE AUS-GIEIG,
GOFRE LIKE AUS-GIEIG,
GOFRL LIKE AUS-GIEIG,
GOSON LIKE AUS-GIEIG,
SOFRI LIKE AUS-GIEIG,
SOFRE LIKE AUS-GIEIG,
SOFRL LIKE AUS-GIEIG,
SOSON LIKE AUS-GIEIG,
GSTDE LIKE AUS-GIEIG,
GSTDF LIKE AUS-GIEIG,
SSTDE LIKE AUS-GIEIG,
SSTDF LIKE AUS-GIEIG,
END OF AUS.
FIELD-SYMBOLS <F3>.
DATA P_ANZAHL(3) TYPE P.
DATA BEGIN OF T_NRIV OCCURS 1.
INCLUDE STRUCTURE NRIV.
DATA END OF T_NRIV.
FIELD-SYMBOLS <FX>.
DATA AUFART LIKE AUFK-AUART VALUE 'AV '.
DATA LNG_AUFART(2) TYPE P.
DATA: BEGIN OF SETF OCCURS 1,
KSTAR LIKE KSTAR-KSTAR,
AUFNR LIKE AUFK-AUFNR,
END OF SETF.
TABLES T950H.
DATA NOCH_FEHLER.
DATA UMBUCH_U(6) VALUE '999001'.
DATA UMBUCH_H(6) VALUE '999899'.
TABLES USR01.
DATA ST_EMPFAENGER LIKE USR01-BNAME VALUE 'PELSCHE '.
DATA NO-KOSTENART LIKE COSS-KSTAR VALUE '0000076805'.
DATA NEHME.
CONSTANTS: CONTROL_BLOCK LIKE SY-TABIX VALUE 1.
DATA: BEGIN OF HEADER.
INCLUDE STRUCTURE RGSMH.
DATA: END OF HEADER.
DATA: SETINDEX LIKE SY-TABIX.
DATA OBJNR LIKE COSS-OBJNR VALUE 'OR'.
DATA RF(8) type p decimals 0.
data rf_obligo like rf.
DATA TABELLE(4).
DATA RF_MENGE(8) type p decimals 0.
FIELD-SYMBOLS <F2>.
* definition set
DATA: P_SET LIKE RGSMH-SETNR VALUE 'EGK_SI_GES'.
INCLUDE FGSCLASS. "Routines for handling of set name prefix
data strich(100) value
'---------------------------------------------------------------------'.
include rcncon03.
data xdat(6).
data objekt like
aufk-objnr value 'OR '.
START-OF-SELECTION.
PERFORM READ_SET USING P_SET.
PERFORM INITIALISIERUNG.
PERFORM AUFTRAGS_INTERVALL.
IF NOT ABBRUCH IS INITIAL.
WRITE: / 'Es wurden fatale Fehler festgestellt. Programmabbbruch'.
EXIT.
ENDIF.
PERFORM STARTSATZ_OUT.
PERFORM SELECT_DATEN CHANGING SUBRC.
PERFORM ENDESATZ.
IF echtlauf ne 'J'.
CLEAR ANZAHL.
PERFORM LISTE_SI. "eventuell noch eine liste dazu
ENDIF.
PERFORM AUSGABE_DATEN. "zu guter letzt alles ausgeben
SORT SETF.
* daten
*----------------
SELECT SINGLE * FROM ZSI_DATEIEN WHERE
ZSI_AUFGB = 'AUM'
AND ZSI_DATNR = '2'. "
IF SY-SUBRC NE 0.
WRITE: / SY-DATUM,SY-UZEIT,'kein Eintrag Output(AUG/2)'.
ABBRUCH = 'J'.
EXIT.
ELSE.
O_FILE = ZSI_DATEIEN-ZSI_DATNAM.
ENDIF.
* Quittung
*----------------
SELECT SINGLE * FROM ZSI_DATEIEN WHERE
ZSI_AUFGB = 'RDIR'
AND ZSI_DATNR = '1'. "Quittung Output
IF SY-SUBRC NE 0.
WRITE: / SY-DATUM,SY-UZEIT,'kein Eintrag Protokoll Synchr(RDIR/1)'.
ABBRUCH = 'J'.
EXIT.
ELSE.
CONCATENATE
ZSI_DATEIEN-ZSI_DATNAM PITAB-ZPID '.erg' INTO PARA_OUT_FILE.
ENDIF.
PERFORM PARA_INPUT.
ENDFORM. "
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form SELECT_DATEN
*&---------------------------------------------------------------------*
FORM SELECT_DATEN CHANGING P_SUBRC.
LOOP AT T_NRIV.
NRIV = T_NRIV.
SELECT * FROM AUFK WHERE AUFNR BETWEEN NRIV-FROMNUMBER(12)
AND NRIV-TONUMBER.
*umbuchungauftr�ge �berlesen
CHECK AUFK-AUFNR+6(6) LT UMBUCH_U OR
AUFK-AUFNR+6(6) GT UMBUCH_H .
IF AUFK-AUART+2(2) = '57'.
CHECK AUFK-ASTKZ IS INITIAL.
ENDIF.
objekt+2(12) = aufk-aufnr.
objnr = objekt.
call function 'STATUS_CHECK'
EXPORTING
objnr = objekt
status = con_stat_abgs
EXCEPTIONS
object_not_found = 01
status_not_active = 02.
if sy-subrc ne '02'.
check xdat le aufk-idat3(6).
endif.
IF AUFK-AUFNR = HALT_AUF.
BREAK-POINT.
ENDIF.
REFRESH KSTAR.
CLEAR AUS.
CLEAR NEHME.
PERFORM SELECT_KOSTEN.
CHECK NEHME = 'J'.
SORT KSTAR.
LOOP AT KSTAR.
CLEAR ZEILE.
LOOP AT VALTAB.
IF KSTAR-KSTAR >= VALTAB-FROMVALUE AND
KSTAR-KSTAR <= VALTAB-TOVALUE.
*********delete by borag
* ZEILE = VALTAB-SETNAME+15(3).
*********delete by borag
*********append by borag
ZEILE = VALTAB-SETNAME+4(4).
condense zeile.
*********append by borag
* kstar-menge = kstar-menge / 10.
CASE ZEILE.
* WHEN '110'.
* ADD KSTAR-WERT TO AUS-SIEIG.
* ADD KSTAR-MENGE TO AUS-SSTDE.
* EXIT.
* WHEN '120'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-SIFRI.
* ADD KSTAR-MENGE TO AUS-SSTDF.
* ELSE.
* ADD KSTAR-WERT TO AUS-SOFRI.
* ENDIF.
****************************
* WHEN 'Z120'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-SIFRI.
* ADD KSTAR-MENGE TO AUS-SSTDF.
* ELSE.
* ADD KSTAR-WERT TO AUS-SOFRI.
* ENDIF.
*****************************
* WHEN '130'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-SIFRE.
* ELSE.
* ADD KSTAR-WERT TO AUS-SOFRE.
* ENDIF.
****************************
WHEN 'Z120'.
IF KSTAR-WRTTP = '11'.
ADD KSTAR-WERT TO AUS-SIFRE.
ELSE.
ADD KSTAR-WERT TO AUS-SOFRE.
ENDIF.
*****************************
* WHEN '140'.
* ADD KSTAR-WERT TO AUS-SIMAG.
* EXIT.
****************************
WHEN 'Z140'.
ADD KSTAR-WERT TO AUS-SIMAG.
EXIT.
***************************
* WHEN '150'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-SIFRL.
* ELSE.
* ADD KSTAR-WERT TO AUS-SOFRL.
* ENDIF.
******************************
WHEN 'Z150'.
IF KSTAR-WRTTP = '11'.
ADD KSTAR-WERT TO AUS-SIFRL.
ELSE.
ADD KSTAR-WERT TO AUS-SOFRL.
ENDIF.
****************************
* WHEN '160'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-SISON.
* ELSE.
* ADD KSTAR-WERT TO AUS-SOSON.
* ENDIF.
*******************************
WHEN 'Z160'.
IF KSTAR-WRTTP = '11'.
ADD KSTAR-WERT TO AUS-SISON.
ELSE.
ADD KSTAR-WERT TO AUS-SOSON.
ENDIF.
********************************
* WHEN '210'.
* ADD KSTAR-WERT TO AUS-GIEIG.
* ADD KSTAR-MENGE TO AUS-GSTDE.
* WHEN '220'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GIFRI.
* ADD KSTAR-MENGE TO AUS-GSTDF.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOFRI.
* ENDIF.
*****************************
* WHEN 'Z220'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GIFRI.
* ADD KSTAR-MENGE TO AUS-GSTDF.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOFRI.
* ENDIF.
*****************************
* WHEN '230'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GIFRE.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOFRE.
* ENDIF.
* WHEN '240'.
* ADD KSTAR-WERT TO AUS-GIMAG.
* EXIT.
*******************************
* WHEN 'Z240'.
* ADD KSTAR-WERT TO AUS-GIMAG.
* EXIT.
******************************
* WHEN '250'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GIFRL.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOFRL.
* ENDIF.
******************************
* WHEN 'Z250'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GIFRL.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOFRL.
* ENDIF.
********************************
* WHEN '260'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GISON.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOSON.
* ENDIF.
*******************************
* WHEN 'Z260'.
* IF KSTAR-WRTTP = '11'.
* ADD KSTAR-WERT TO AUS-GISON.
* ELSE.
* ADD KSTAR-WERT TO AUS-GOSON.
* ENDIF.
*******************************
WHEN OTHERS.
WRITE : / 'Auftrag:',AUFK-AUFNR,'ZEILE:', ZEILE,
'im Programm nicht abgedeckt'.
EXIT.
ENDCASE.
ENDIF.
ENDLOOP.
IF ZEILE IS INITIAL.
SETF-KSTAR = KSTAR-KSTAR.
SETF-AUFNR = AUFK-AUFNR.
APPEND SETF.
WRITE : / 'Auftrag:',AUFK-AUFNR,'Kostenart:', KSTAR-KSTAR,
'nicht durch SET: k_si_ges abgedeckt'.
ENDIF.
ENDLOOP.
PERFORM FILL_OUT_SI.
ENDSELECT.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM LISTEN *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM LISTEN. "tabelle kosten.
LOOP AT KOSTEN.
WRITE: / KOSTEN-AUFNR,KOSTEN-KSTAR,KOSTEN-WERT,KOSTEN-MENGE.
ADD KOSTEN-WERT TO RF.
ADD KOSTEN-MENGE TO RF_MENGE.
AT END OF AUFNR.
WRITE: / RF UNDER KOSTEN-WERT.
WRITE: RF_MENGE UNDER KOSTEN-MENGE.
CLEAR RF.
CLEAR RF_MENGE.
ENDAT.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM SELECT_KOSTEN *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SELECT_KOSTEN.
*sekund�r
SELECT * FROM COSS INTO CORRESPONDING FIELDS OF WERTE
WHERE OBJNR = OBJNR
AND GJAHR = PITAB-BUJAHR
AND WRTTP = '11'
AND KSTAR NE NO-KOSTENART "ohne definierte kstar
AND BEKNZ NE 'A'. "nicht aus abrechnung
PERFORM MANIPULIERE_MON12.
PERFORM ADD.
ENDSELECT.
*prim�r
SELECT * FROM COSP INTO CORRESPONDING FIELDS OF WERTE
WHERE OBJNR = OBJNR
AND KSTAR NE NO-KOSTENART "ohne definierte kstar
AND BEKNZ NE 'A'. "nicht aus abrechnung
PERFORM MANIPULIERE_MON12.
IF WERTE-GJAHR = PITAB-BUJAHR.
CHECK WERTE-WRTTP = '04' OR "istk
WERTE-WRTTP = '11' OR "statistisches ist
WERTE-WRTTP = '21' OR "obligo banf
WERTE-WRTTP = '22' OR "obligo best
WERTE-WRTTP = '23' OR "obligo reservierung
WERTE-WRTTP = '24' . "obligo manuell
PERFORM ADD.
ELSEIF WERTE-GJAHR LT PITAB-BUJAHR.
CHECK WERTE-WRTTP = '21' OR "obligo banf
WERTE-WRTTP = '22' OR "obligo best
WERTE-WRTTP = '23' OR "obligo reservierung
WERTE-WRTTP = '24' . "obligo manuell
PERFORM ADD.
ENDIF.
ENDSELECT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ADD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ADD .
NEHME = 'J'.
IF WERTE-WRTTP = '04' OR
WERTE-WRTTP = '11'.
ASSIGN WERTE-WOG001 TO <F1>.
ASSIGN WERTE-MEG001 TO <F2>.
DO 16 TIMES.
IF SY-INDEX = PITAB-BUMON.
KSTAR-WRTTP = WERTE-WRTTP.
KSTAR-KSTAR = WERTE-KSTAR.
<F1> = <F1> / 100.
<F2> = <F2> / 100.
KSTAR-WERT = <F1>.
KSTAR-MENGE = <F2>.
if kstar-wert ne 0 or
kstar-menge ne 0.
COLLECT KSTAR.
endif.
ENDIF.
IF SY-INDEX = '12' or
sy-index gt pitab-bumon.
EXIT.
ENDIF.
ASSIGN <F1>+8 TO <F1>.
ASSIGN <F2>+8 TO <F2>.
ENDDO.
ELSE.
ASSIGN WERTE-WOG001 TO <F1>.
ASSIGN WERTE-MEG001 TO <F2>.
DO 16 TIMES.
KSTAR-WRTTP = WERTE-WRTTP.
KSTAR-KSTAR = WERTE-KSTAR.
<F1> = <F1> / 100.
<F2> = <F2> / 100.
KSTAR-WERT = <F1>.
KSTAR-MENGE = <F2>.
if kstar-wert ne 0 or
kstar-menge ne 0.
coLLECT KSTAR.
endif.
IF SY-INDEX = '12'.
EXIT.
ENDIF.
ASSIGN <F1>+8 TO <F1>.
ASSIGN <F2>+8 TO <F2>.
ENDDO.
ENDIF.
ENDFORM. " ADD
*---------------------------------------------------------------------*
* FORM LISTE_SI *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM LISTE_SI.
DATA HELP LIKE rf.
LOOP AT OUT_SI.
if out_si-aufnr eq abauftr.
break-point.
endif.
CLEAR AUART.
CLEAR: RF,RF_MENGE,rf_obligo.
*werte-----------------------------------------------------
ASSIGN OUT_SI-GIEIG+1(9) TO <F1>.
ASSIGN OUT_SI-GIEIG(1) TO <F2>.
DO 12 TIMES.
PACK <F1> TO HELP.
IF <F2> = '-'.
SUBTRACT HELP FROM RF.
ELSE.
ADD HELP TO RF.
ENDIF.
ASSIGN <F1>+10 TO <F1>.
ASSIGN <F2>+10 TO <F2>.
ENDDO.
*obligos--------------------------------------------------
ASSIGN OUT_SI-gofri+1(9) TO <F1>.
ASSIGN OUT_SI-gofri(1) TO <F2>.
DO 08 TIMES.
PACK <F1> TO HELP.
IF <F2> = '-'.
SUBTRACT HELP FROM RF_obligo.
ELSE.
ADD HELP TO RF_obligo.
ENDIF.
ASSIGN <F1>+10 TO <F1>.
ASSIGN <F2>+10 TO <F2>.
ENDDO.
*stunden----------------------------------------------------
ASSIGN OUT_SI-GSTDE+1(9) TO <F1>.
ASSIGN OUT_SI-GSTDE(1) TO <F2>.
DO 04 TIMES.
PACK <F1> TO HELP.
IF <F2> = '-'.
SUBTRACT HELP FROM RF_MENGE.
ELSE.
ADD HELP TO RF_MENGE.
ENDIF.
ASSIGN <F1>+10 TO <F1>.
ASSIGN <F2>+10 TO <F2>.
ENDDO.
check rf NE 0 or
rf_menge ne 0 or
rf_obligo ne 0.
ADD 1 TO ANZAHL.
CHECK ANZAHL <= P_ANZAHL.
WRITE: /01 'Satz-Nummer', OUT_SI-RECNR.
WRITE: /01 'Wert gesamt:', RF,'Std.:',RF_MENGE,'Obligo:',
rf_obligo.
write: /01 'Auftrag....'
, OUT_SI-AUFNR,
25 'BUKRS.......', OUT_SI-BUKRS,
50 'Kostl.......', OUT_SI-KOSTL.
WRITE: /01 'LKOST......', OUT_SI-LKOST,
25 'BUKRS.......', OUT_SI-BUKRS,
50 'BUMON.......', OUT_SI-BUMON.
WRITE: /01 'GIEIG......', OUT_SI-GIEIG,
25 'GIFRI.......', OUT_SI-GIFRI,
50 'GIFRE.......', OUT_SI-GIFRE.
WRITE: /01 'GIFRL......', OUT_SI-GIFRL,
25 'GISON.......', OUT_SI-GISON.
WRITE: /01 'SIEIG......', OUT_SI-SIEIG,
25 'SIFRI.......', OUT_SI-SIFRI,
50 'SIFRE.......', OUT_SI-SIFRE.
WRITE: /01 'SIMAG......', OUT_SI-SIMAG,
25 'SIFRL.......', OUT_SI-SIFRL,
50 'SISON.......', OUT_SI-SISON.
WRITE: /01 'GOFRI......', OUT_SI-GOFRI,
25 'GOFRE.......', OUT_SI-GOFRE,
50 'GOFRL.......', OUT_SI-GOFRL.
WRITE: /01 'GOSON......', OUT_SI-GOSON,
25 'SOFRI.......', OUT_SI-SOFRI,
50 'SOFRE.......', OUT_SI-SOFRE.
WRITE: /01 'SOFRL......', OUT_SI-SOFRL,
25 'SOSON.......', OUT_SI-SOSON,
50 'GSTDE.......', OUT_SI-GSTDE.
WRITE: /01 'GSTDF.......', OUT_SI-GSTDF,
25 'SSTDE.......', OUT_SI-SSTDE,
50 'SSTDF.......', OUT_SI-SSTDF.
ULINE.
ENDLOOP.
ENDFORM. " SI-LISTE
*&---------------------------------------------------------------------*
*& Form BEARBEITEN_DATUM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_COAS-USER5 text *
*----------------------------------------------------------------------*
FORM BEARBEITEN_DATUM CHANGING DATUM.
DATA Z_DATUM LIKE COAS-ERDAT.
IF DATUM = '00000000'.
DATUM = SPACE.
EXIT.
ENDIF.
Z_DATUM = DATUM.
DATUM+4(4) = Z_DATUM(4).
DATUM+2(2) = Z_DATUM+4(2).
DATUM+0(2) = Z_DATUM+6(2).
* perform write_settab.
* perform write_valtab.
ENDFORM.
*---------------------------------------------------------------------*
* FORM INSERT_SET *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> VALUE(U_TABNAME) *
* --> VALUE(U_SETNAME) *
*---------------------------------------------------------------------*
FORM INSERT_SET USING U_SETID.
IF HEADER-TYPE CA 'BD'.
PERFORM INSERT_VALUES
USING HEADER-SETNR HEADER-SEQNR.
ELSE.
CALL FUNCTION 'G_SET_GET_NEXT'
EXPORTING
CONTROL_BLOCK = CONTROL_BLOCK
INDEX = SETINDEX
IMPORTING
HEADER = HEADER
EXCEPTIONS
END_OF_SETS = 1.
*---------------------------------------------------------------------*
* FORM INSERT_VALUES *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> VALUE(U_SETNAME) *
* --> VALUE(U_POINTER) *
*---------------------------------------------------------------------*
FORM INSERT_VALUES USING VALUE(U_SETNAME) LIKE RGSMH-SETNR
VALUE(U_POINTER) LIKE RGSMH-SEQNR.
*..... Transfer of the set pointer in a field with the right size .... *
SETINDEX = U_POINTER.
*..... Read all value intervals into the table VALTAB ................ *
ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM WRITE_SETTAB *
*---------------------------------------------------------------------*
* Output of table SETTAB. *
*---------------------------------------------------------------------*
FORM WRITE_SETTAB.
ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM WRITE_VALTAB *
*---------------------------------------------------------------------*
* Output of table VALTAB. *
*---------------------------------------------------------------------*
FORM WRITE_VALTAB.
ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM SEARCH_VALUE *
*---------------------------------------------------------------------*
* (This form routine is not called by other program parts. *
* It is an example for the single value search in the *
* sorted table VALTAB). *
* *
* Looks up the table VALTAB for a single value. *
* In case the value is found, the U_TABIX contains *
* the corresponding index on the table VALTAB. *
* If not, the U_TABIX contains the value 0. *
*---------------------------------------------------------------------*
* --> VALUE(U_VALUE) Value to search *
* <-- U_TABIX Corresponding index on the table VALTAB *
*---------------------------------------------------------------------*
FORM SEARCH_VALUE USING VALUE(U_VALUE) LIKE RGSMV-FROM
CHANGING U_TABIX LIKE SY-TABIX.
ENDFORM.
*---------------------------------------------------------------------*
* FORM AUFTRAGS_INTERVALL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM AUFTRAGS_INTERVALL.
SELECT SINGLE * FROM T950W WHERE
KENNZ = PITAB-KENNZ
AND KOKRS = KOKRS.
IF SY-SUBRC NE 0.
WRITE: 'Falscher Standort in Parameter oder T950W falsch'.
ABBRUCH = 'J'.
EXIT.
ENDIF.
REFRESH T_NRIV.
ASSIGN T950W-AUA01 TO <FX>.
DO 19 TIMES.
IF <FX> = SPACE.
EXIT.
ENDIF.
AUFART+0(2) = <FX>.
PERFORM BESORGEN_INTERVALL USING AUFART CHANGING NRIV.
APPEND NRIV TO T_NRIV.
ASSIGN <FX>+LNG_AUART TO <FX>.
ENDDO.
SORT T_NRIV.
DELETE ADJACENT DUPLICATES FROM T_NRIV.
SELECT COUNT(*) FROM AUFK WHERE AUFNR BETWEEN NRIV-FROMNUMBER(12)
AND NRIV-TONUMBER.
NRIV-NRLEVEL = SY-DBCNT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILL_OUT_SI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_OUT_SI.
ADD 1 TO ANZAHL.
UNPACK ANZAHL TO OUT_SI-RECNR.
OUT_SI-BUKRS = AUFK-BUKRS.
OUT_SI-WERKS = AUFK-WERKS.
OUT_SI-LKOST = AUFK-USER1+2(8).
OUT_SI-KOSTL = AUFK-KOSTV+2(8).
OUT_SI-AUFNR = AUFK-AUFNR+4(8).
OUT_SI-AUFPS = '01'.
OUT_SI-BUMON(4) = PITAB-BUJAHR.
OUT_SI-BUMON+4(2) = PITAB-BUMON.
ASSIGN AUS-GIEIG TO <F1>.
ASSIGN OUT_SI-GIEIG TO <F2>.
ASSIGN OUT_SI-GIEIG(1) TO <F3>.
DO 24 TIMES.
UNPACK <F1> TO <F2>.
IF <F1> < 0.
<F3> = '-'.
ELSE.
<F3> = '+'.
ENDIF.
ASSIGN <F1>+6 TO <F1>.
ASSIGN <F2>+10 TO <F2>.
ASSIGN <F3>+10 TO <F3>.
ENDDO.
* add: out_si-sieig to out_si-gieig,
* out_si-sifri to out_si-gifri,
* out_si-sifre to out_si-gifre,
* out_si-simag to out_si-gimag,
* out_si-sifrl to out_si-gifrl,
* out_si-sison to out_si-gison,
* out_si-sofri to out_si-gofri,
* out_si-sofre to out_si-gofre,
* out_si-sofrl to out_si-gofrl,
* out_si-soson to out_si-goson,
* out_si-sstde to out_si-gstde,
* out_si-sstdf to out_si-gstdf.
APPEND OUT_SI.
ENDFORM. " FILL_OUT_SI
*&---------------------------------------------------------------------*
*& Form BESORGEN_INTERVALL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<F1> text *
* <--P_NRIV text *
*----------------------------------------------------------------------*
FORM BESORGEN_INTERVALL USING P_F1
CHANGING P_NRIV.
CALL FUNCTION 'READ_T003O'
EXPORTING
I_AUART = P_F1
IMPORTING
E_T003O = T003O.
CALL FUNCTION 'NUMBER_GET_INFO'
EXPORTING
NR_RANGE_NR = T003O-NUMKR
OBJECT = 'AUFTRAG'
IMPORTING
INTERVAL = P_NRIV
EXCEPTIONS
INTERVAL_NOT_FOUND = 01
OBJECT_NOT_FOUND = 02.
IF SY-SUBRC NE 0.
write:
'Es konnte kein Intervall f�r NUMKR:',T003O-NUMKR,' ermittelt werden'.
ABBRUCH = 'J'.
EXIT.
ENDIF.
APPEND MAILDATEN.
CLEAR MAILDATEN-LINE.
MAILDATEN-LINE+3(5) = 'KoArt'.
MAILDATEN-LINE+15(5) = 'AUFNR'.
APPEND MAILDATEN.
CLEAR MAILDATEN-LINE.
MAILDATEN-LINE+3(5) = '-----'.
MAILDATEN-LINE+15(5) = '-----'.
APPEND MAILDATEN.
LOOP AT SETF.
CLEAR MAILDATEN-LINE.
MAILDATEN-LINE(10) = SETF-KSTAR.
MAILDATEN-LINE+12(12) = SETF-AUFNR.
APPEND MAILDATEN.
ENDLOOP.
CLEAR MAILDATEN-LINE.
*
***************************************************
** Aufruf des Funtionsbausteins **
***************************************************
*
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
EXTERN_ADDRESS = ' '
* folder_id = ms_folder_id
* forwarder = ms_obj_forwarder
* object_fl_change = ms_obj_fl_change
OBJECT_HD_CHANGE = KOPFDATEN
* object_id = ms_obj_id_new
OBJECT_TYPE = 'RAW'
OUTBOX_FLAG = 'S'
OWNER = ' '
STORE_FLAG = ' '
DELETE_FLAG = ' '
SENDER = ' '
CHECK_ALREADY_SENT = ' '
* importing
* object_id_new = ms_obj_id_new
* sent_to_all = ms_flg_send_to_all
TABLES
OBJCONT = MAILDATEN
* objhead = ms_obj_head
*" objpara = params
* objparb = ms_obj_params_b
RECEIVERS = EMPFAENGER
* packing_list = ms_pack_list
* att_cont = ms_attach_cont
* att_head = ms_att_head_cont
EXCEPTIONS
ACTIVE_USER_NOT_EXIST = 01
COMMUNICATION_FAILURE = 02
COMPONENT_NOT_AVAILABLE = 03
FOLDER_NOT_EXIST = 04
FOLDER_NO_AUTHORIZATION = 05
FORWARDER_NOT_EXIST = 06
NOTE_NOT_EXIST = 07
OBJECT_NOT_EXIST = 08
OBJECT_NOT_SENT = 09
OBJECT_NO_AUTHORIZATION = 10
OBJECT_TYPE_NOT_EXIST = 11
OPERATION_NO_AUTHORIZATION = 12
OWNER_NOT_EXIST = 13
PARAMETER_ERROR = 14
SUBSTITUTE_NOT_ACTIVE = 15
SUBSTITUTE_NOT_DEFINED = 16
SYSTEM_FAILURE = 17
TOO_MUCH_RECEIVERS = 18
USER_NOT_EXIST = 19
X_ERROR = 20.
* OTHERS = 21.
*
* write: sy-subrc.
*
ENDFORM.
*&---------------------------------------------------------------------*
*& Form MAIL_SENDEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM MAIL_SENDEN.