Beruflich Dokumente
Kultur Dokumente
START-OF-SELECTION.
PERFORM INITIALISIERUNG.
CHECK ABBRUCH IS INITIAL.
PERFORM OPEN_DATASET CHANGING SUBRC.
IF SUBRC NE 0.
PITAB-PSTATUS = 'N'.
EXIT. "abbruch
ENDIF.
PERFORM CHECK_PARAMETER CHANGING SUBRC.
IF SUBRC NE 0.
EXIT. "abbruch
ENDIF.
PERFORM LESEN_EINGABE CHANGING SUBRC.
PERFORM CHECK_WEITERVERARBEITUNG CHANGING SUBRC.
IF SUBRC NE 0.
PERFORM FEHLERPROTOKOLL.
EXIT. "nicht weiter
ENDIF.
EXIT.
ENDIF.
PERFORM CHECK_SENDER .
PERFORM CHECK_KOSTENSTELLEN .
* perform check_projekt_auftrag_kostl.
PERFORM CHECK_SACHKONTO .
ENDFORM. " CHECK_NEUER_AUFTRAG
*&---------------------------------------------------------------------*
*& Form CHECK_TECHNISCH_FERTIG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_SUBRC text *
*----------------------------------------------------------------------*
FORM CHECK_TECHNISCH_FERTIG.
CLEAR:FEHLER_MERK.
EXIT.
PERFORM CHECK_AUFTRAG1.
IF SUBRC NE 0.
EXIT.
ENDIF.
PERFORM CHECK_STATUS .
PERFORM CHECK_SENDER .
PERFORM CHECK_KOSTENSTELLEN .
* perform check_projekt_auftrag_kostl.
PERFORM CHECK_SACHKONTO .
ENDFORM. " CHECK_TECHNISCH_FERTIG
*&---------------------------------------------------------------------*
*& Form CHECK_KAUFMAENN_FERTIG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_SUBRC text *
*----------------------------------------------------------------------*
FORM CHECK_KAUFMAENN_FERTIG.
CLEAR:FEHLER_MERK.
PERFORM CHECK_AUFTRAG1.
IF SUBRC NE 0.
EXIT.
ENDIF.
PERFORM CHECK_STATUS .
PERFORM CHECK_SENDER .
PERFORM CHECK_KOSTENSTELLEN .
* perform check_projekt_auftrag_kostl.
PERFORM CHECK_SACHKONTO .
PERFORM CHECK-OBLIGO.
ENDFORM. " CHECK_KAUFMAENN_FERTIG
*&---------------------------------------------------------------------*
*& Form VERARBEITUNG_INTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_SUBRC text *
*----------------------------------------------------------------------*
FORM VERARBEITUNG_INTAB USING ART CHANGING P_SUBRC.
LOOP AT INTAB.
CHECK INTAB-SATZ-BEARB_KZ EQ ART.
IF ART NE NEU.
PERFORM READ_AUFTRAG USING INTAB-AUFTRAG.
IF SUBRC NE 0.
PERFORM APPEND_FEHLTAB USING
'Auftrag nicht vorhanden'
EIN.
ENDIF.
ENDIF.
CHECK SUBRC = 0. "fehlerhaft ueberlesen
AUFTRAG = INTAB-AUFTRAG.
KOSTL_AG = INTAB-KOSTL_AG.
KOSTL_AN = INTAB-KOSTL_AN.
KOSTL_ZAN = INTAB-KOSTL_ZAN.
KOSTL_ZAG = INTAB-KOSTL_ZAG.
INVESTNR = INTAB-INVESTNR.
KKS = INTAB-KKS .
BMS = INTAB-BMS .
PGS = INTAB-PGS .
MASSN = INTAB-MASSN .
SAKNR = INTAB-SAKNR .
CASE INTAB-SATZ-BEARB_KZ.
WHEN NEU.
REFRESH BDCDATA.
PERFORM GRUNDDATEN.
PERFORM CALL_TRANSACTION USING TRANSACTION_HINZ.
IF NOT PLANKOSTEN IS INITIAL.
REFRESH BDCDATA.
PERFORM PLANUNG.
PERFORM CALL_TRANSACTION USING TRANSACTION_PLAN.
ENDIF.
WHEN UPD.
REFRESH BDCDATA.
PERFORM GENERIERE_AENDERUNGEN.
PERFORM CALL_TRANSACTION USING TRANSACTION_AEND .
WHEN PLAN.
REFRESH BDCDATA.
CLEAR UPDT.
PERFORM ERMITTELN_PLANKOSTEN.
PERFORM PLANUNG.
PERFORM CALL_TRANSACTION USING TRANSACTION_PLAN.
WHEN KF.
PERFORM KAUFMAENN_ABSCHLIESSEN .
PERFORM CALL_TRANSACTION USING TRANSACTION_AEND .
****append by borag begin 1
* WHEN TF.
* PERFORM KAUFMAENN_ABSCHLIESSEN .
* PERFORM CALL_TRANSACTION USING TRANSACTION_AEND .
****append by borag end 1
****append by borag begin 2
* when tf.
* perform technisch_abschliessen.
* perform call_transaction using transaction_aend .
when tf.
perform technisch_abschliessen.
perform call_transaction using transaction_aend .
****append by borag end 2
WHEN OTHERS.
PERFORM APPEND_FEHLTAB USING
'Bearbeitungskenziffer nicht vorgesehen'
EIN.
ENDCASE.
ENDLOOP.
P_SUBRC = 0.
ENDFORM. " VERARBEITUNG_INTAB
*&---------------------------------------------------------------------*
*& Form READ_AUFTRAG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_AUFTRAG text *
* <--P_SUBRC text *
*----------------------------------------------------------------------*
FORM READ_AUFTRAG USING P_AUFTRAG.
SELECT SINGLE * FROM COAS
WHERE AUFNR = P_AUFTRAG.
ENDIF.
ENDFORM. " ANPASSEN_SI
*&---------------------------------------------------------------------*
*& Form INITIALISIERUNG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM INITIALISIERUNG.
SET PARAMETER ID 'CAC' FIELD KOKRS.
DESCRIBE FIELD EIN-PLANLEIST LENGTH LNG_PLANLEIST.
DESCRIBE FIELD EIN-PLANLIEF LENGTH LNG_PLANLIEF.
DESCRIBE FIELD EIN-PLANSONST LENGTH LNG_PLANSON .
DESCRIBE FIELD EIN-AV LENGTH LNG_AUART .
DESCRIBE FIELD AUFK-KOSTL LENGTH LNG_KOSTL .
DESCRIBE FIELD COSP-MEG001 LENGTH LNG_MEG001N .
ANF-UZEIT = SY-UZEIT.
IF ECHTLAUF = 'J'.
PERFORM EVENT.
CHECK ABBRUCH IS INITIAL.
ENDIF.
ENDFORM. " INITIALISIERUNG
*&---------------------------------------------------------------------*
*& Form SONDERLOCKEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SONDERLOCKEN.
IF EIN-KKS+14(2) EQ SPACE AND
EIN-ART GE NULL2 AND
EIN-ART LE NULL7.
EIN-KKS+14(1) = STERN.
ENDIF.
IF EIN-KKS+14(2) EQ SPACE AND
EIN-ART EQ '17' AND
EIN-KKS+14(1) = STERN.
ENDIF.
CLEAR: KKS,BMS,PGS.
PGS(1) = '!'.
IF EIN-ART = NULL8.
PGS = EIN-KKS(2).
ENDIF.
KKS = EIN-KKS+3(2).
BMS = EIN-KKS+14(2).
MASSN = EIN-PROJEKTNR.
IF MASSN LE NULL(3).
MASSN = NULL(3).
ENDIF.
* if ein-bearb_kz = kf. "si darf keine KF'S senden
* ein-bearb_kz = tf. "sie werden in TF umgetauft
* endif.
ENDIF.
ENDFORM. " CHECK_SENDER
*&---------------------------------------------------------------------*
*& Form CHECK_KOSTENSTELLEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_SUBRC text *
*----------------------------------------------------------------------*
FORM CHECK_KOSTENSTELLEN.
IF ZBUKRS_AG = '0099' OR
EIN-ART = '14'.
ELSE.
CALL FUNCTION 'RK_KOSTL_READ'
EXPORTING
DATUM = SY-DATLO
KOKRS = KOKRS
KOSTL = KOSTL_AG
EXCEPTIONS
KOSTL_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
PERFORM APPEND_FEHLTAB USING
'ung�ltige KOSTL Auftraggeber'
EIN.
SUBRC = 04.
ENDIF.
ENDIF.
IF SY-SUBRC <> 0.
T100-TEXT(2) = MESSTAB-MSGID.
T100-TEXT+3(3) = MESSTAB-MSGNR.
T100-TEXT+7(50) = 'unbekannter Fehler'.
ENDIF.
CONCATENATE
MESSTAB-MSGV1(20)
T100-TEXT(50) INTO
SY-WINSL
SEPARATED BY ' '.
PERFORM APPEND_FEHLTAB USING SY-WINSL
INTAB-SATZ.
Z_EINGABE_OK = Z_EINGABE_OK - 1.
MOVE SPACE TO SY-WINSL.
ENDLOOP.
ENDFORM. " CHECK_MESSTAB
*&---------------------------------------------------------------------*
*& Form CHECK_AENDERUNGEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_UPDT text *
*----------------------------------------------------------------------*
FORM CHECK_AENDERUNGEN CHANGING P_UPDT P_SUBRC.
PERFORM BEARBEITEN_DATUM CHANGING INTAB-SATZ-DATUMAUTO.
PERFORM BEARBEITEN_DATUM CHANGING INTAB-SATZ-BEGINN.
PERFORM BEARBEITEN_DATUM CHANGING INTAB-SATZ-ENDE.
P_UPDT = 'X'.
CASE INTAB-SATZ-BEARB_KZ.
WHEN UPD.
COAS-AKSTL = KOSTL_AG.
COAS-KTEXT = INTAB-SATZ-TXT01.
COAS-USER0 = INTAB-SATZ-NAMEAUTOR.
COAS-USER6 = INTAB-SATZ-STAUTOR.
COAS-USER5 = INTAB-SATZ-DATUMAUTO.
COAS-USER2 = INTAB-SATZ-NAMEAUTOR.
COAS-USER7 = INTAB-SATZ-BEGINN.
COAS-USER8 = INTAB-SATZ-ENDE.
OBJNR = COAS-OBJNR.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
CLASSTYPE = '013'
OBJECT = OBJNR
TABLES
T_CLASS = KLASSE
T_OBJECTDATA = KLADAT
EXCEPTIONS
OTHERS = 02.
IF SY-SUBRC NE 0.
PERFORM APPEND_FEHLTAB USING
'Klassifizierung fehlt'
EIN.
P_SUBRC = 04.
ELSE.
LOOP AT KLADAT.
CHECK KLADAT-AUSP1(1) NE '?'.
IF TXT_KKS = KLADAT-SMBEZ.
IF KKS NE KLADAT-AUSP1(2).
KKS = KLADAT-AUSP1(2).
P_UPDT = 'X'.
ENDIF.
ENDIF.
IF TXT_PGS = KLADAT-SMBEZ.
IF PGS NE KLADAT-AUSP1(2).
PGS = KLADAT-AUSP1(2).
P_UPDT = 'X'.
ENDIF.
IF TXT_BMS = KLADAT-SMBEZ.
IF BMS NE KLADAT-AUSP1(2).
BMS = KLADAT-AUSP1(2).
P_UPDT = 'X'.
ENDIF.
ENDIF.
ENDIF.
IF TXT_MASSN = KLADAT-SMBEZ.
IF MASSN NE KLADAT-AUSP1(3).
MASSN = KLADAT-AUSP1(3).
P_UPDT = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
WHEN PLAN.
COAS-USER4 = INTAB-SATZ-PLANLEIST.
ENDCASE.
ENDFORM. " CHECK_AENDERUNGEN
*&---------------------------------------------------------------------*
*& Form CHECK_AENDERUNGEN_PLAN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_UPDT text *
*----------------------------------------------------------------------*
FORM CHECK_AENDERUNGEN_PLAN CHANGING P_UPDT.
IF INTAB-SATZ-PLANLEIST NE COAS-USER4.
COAS-USER4 = INTAB-SATZ-PLANLEIST.
P_UPDT = 'X'.
ENDIF.
* Auftraege input
*----------------
SELECT SINGLE * FROM ZSI_DATEIEN WHERE
ZSI_AUFGB = 'AUF'
AND ZSI_DATNR = '1'. "auftraege input
IF SY-SUBRC NE 0.
WRITE: / SY-DATUM,SY-UZEIT,'kein Eintrag Auftraege input (AUF/1)'.
ABBRUCH = 'J'.
ELSE.
P_FILE = ZSI_DATEIEN-ZSI_DATNAM.
ENDIF.
* Protokoll output
*----------------
SELECT SINGLE * FROM ZSI_DATEIEN WHERE
ZSI_AUFGB = 'AUF'
AND ZSI_DATNR = '2'. "Protokoll Output
IF SY-SUBRC NE 0.
WRITE: / SY-DATUM,SY-UZEIT,'kein Eintrag Protokoll Output(AUF/2)'.
ABBRUCH = 'J'.
ELSE.
O_FILE = ZSI_DATEIEN-ZSI_DATNAM.
ENDIF.
* Synchronisation
*----------------
SELECT SINGLE * FROM ZSI_DATEIEN WHERE
ZSI_AUFGB = 'RDIR'
AND ZSI_DATNR = '1'. "Protokoll Output
IF SY-SUBRC NE 0.
WRITE: / SY-DATUM,SY-UZEIT,'kein Eintrag Protokoll Synchr(RDIR/1)'.
ABBRUCH = 'J'.
ELSE.
CONCATENATE
ZSI_DATEIEN-ZSI_DATNAM PITAB-ZPID '.erg' INTO PARA_OUT_FILE.
ENDIF.
*-----------------------------------------------------------------------
ENDFORM. " EVENT
*&---------------------------------------------------------------------*
*& Form AUSGABE_RETOUREN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM AUSGABE_RETOUREN.
OPEN DATASET O_FILE FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC NE 0.
WRITE: / 'Fehler beim open Dataset',O_FILE.
EXIT.
ENDIF.
AUSGABE(80) = STARTSATZ.
TRANSFER AUSGABE TO O_FILE.
LOOP AT TABF.
CLEAR AUSGABE.
AUSGABE(80) = TABF-FEHLER.
TRANSFER AUSGABE TO O_FILE.
ENDLOOP.
REFRESH TABF.
LOOP AT FEHLTAB.
CLEAR AUSGABE.
AUSGABE-SATZ = FEHLTAB-SATZ.
AUSGABE-FEHLER = FEHLTAB-FEHLER.
TRANSFER AUSGABE TO O_FILE.
IF NOT FEHLTAB-BEARBKZ IS INITIAL.
PERFORM FEHLER_PELSCHER USING FEHLTAB-FEHLER FEHLTAB-AUFTRAG
FEHLTAB-BEARBKZ.
ENDIF.
ENDLOOP.
REFRESH FEHLTAB.
CLEAR AUSGABE.
AUSGABE(80) = ENDESATZ.
break-point.
TRANSFER AUSGABE TO O_FILE.
CLEAR AUSGABE.
* AUSGABE(30) = 'Anzahl Startsatz............:'.
AUSGABE(30) = 'Number of start lines.........:'.
UNPACK Z_STARTSATZ TO AUSGABE+30(6).
TRANSFER AUSGABE TO O_FILE.
* AUSGABE(30) = 'Anzahl Endsatz..............:'.
AUSGABE(30) = 'Number of end lines...........:'.
UNPACK Z_ENDESATZ TO AUSGABE+30(6).
TRANSFER AUSGABE TO O_FILE.
* AUSGABE(30) = 'Anzahl Datens�tze insgesamt.:'.
AUSGABE(30) = 'Number of lines total.........:'.
UNPACK Z_EINGABE TO AUSGABE+30(6).
TRANSFER AUSGABE TO O_FILE.
* AUSGABE(30) = '--davon fehlerfrei..........:'.
AUSGABE(30) = '--without errors..............:'.
UNPACK Z_EINGABE_OK TO AUSGABE+30(6).
TRANSFER AUSGABE TO O_FILE.
* AUSGABE(30) = '--davon fehlerhaft..........:'.
AUSGABE(30) = '--with errors.................:'.
UNPACK Z_EINGABE_FEHL TO AUSGABE+30(6).
TRANSFER AUSGABE TO O_FILE.
CLEAR AUSGABE.
SUBRC = 04.
ENDIF.
REFRESH PLANLOESCH.
OBJNR = 'OR'.
OBJNR+2(12) = AUFTRAG.
PERFORM SELECT_PLANUNG USING KSTAR_PLAN1.
PERFORM SELECT_PLANUNG USING KSTAR_PLAN2.
PERFORM SELECT_PLANUNG USING KSTAR_PLAN3.
EXIT.
ENDIF.
ENDDO.
*&---------------------------------------------------------------------*
*& Form check_bestellung
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHECK_BESTELLUNG.
CLEAR FOBLIGO.
SELECT * FROM EKKN
WHERE AUFNR EQ AUFTRAG.
SELECT * FROM EKPO
WHERE EBELN EQ EKKN-EBELN
AND EBELP EQ EKKN-EBELP.
IF EKPO-EREKZ IS INITIAL.
FOBLIGO = 'X'.
EXIT.
ENDIF.
ENDSELECT.
ENDSELECT.