| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- DEF VAR dvonDatum AS DATETIME-TZ NO-UNDO.
- DEF VAR dbisDatum AS DATETIME-TZ NO-UNDO.
- DEF VAR cKey AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR cIndex AS CHAR NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR iFeld AS INT NO-UNDO.
- DEF VAR cTyp AS CHAR NO-UNDO.
- DEF VAR cAlt AS CHAR NO-UNDO.
- DEF VAR cNeu AS CHAR NO-UNDO.
- DEF VAR iLang AS INT NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR i2 AS INT NO-UNDO.
- DEF VAR i3 AS INT NO-UNDO.
- DEF VAR cFirma AS CHAR NO-UNDO.
- DEF VAR D1Firma AS CHAR INIT '1000' NO-UNDO.
- DEF VAR iAufnr AS INT NO-UNDO.
- DEF VAR iPos AS INT NO-UNDO.
- DEF VAR cSort_Cd AS CHAR NO-UNDO.
- DEF VAR cGeb_Cd AS CHAR NO-UNDO.
- DEF VAR cDateTime AS CHAR NO-UNDO.
- DEF VAR dDatum AS DATE NO-UNDO.
- DEF VAR dTime AS INT NO-UNDO.
- DEF VAR iMili AS INT NO-UNDO.
- DEF VAR iHH AS INT NO-UNDO.
- DEF VAR iMM AS INT NO-UNDO.
- DEF VAR iSS AS INT NO-UNDO.
- DEF VAR cExtent AS CHAR NO-UNDO.
- DEF VAR lNeu AS LOG NO-UNDO.
- DEF VAR cWert AS CHAR NO-UNDO.
- DEF VAR hAufGebKo AS HANDLE NO-UNDO.
- DEF VAR hFeld AS HANDLE NO-UNDO.
- DEF VAR iExtent AS INT NO-UNDO.
- DEF TEMP-TABLE tAufnr
- FIELD Aufnr AS INT.
- DEF TEMP-TABLE tAufGebKo LIKE AufGebKo
- FIELD lAktiv AS LOG
- FIELD aDate AS DATE
- FIELD aTime AS INT
- FIELD aMili AS INT
- INDEX tAufGebKo-k1 IS PRIMARY
- Firma
- Aufnr
- .
-
- cKey = 'PUB.AufGebKo' + CHR(06) + '1000'.
- dVonDatum = DATETIME('12/07/2021 08:00:00.000+02:00').
- dBisDatum = DATETIME('12/07/2021 12:00:00.000+02:00').
- hAufGebKo = TEMP-TABLE tAufGebKo:DEFAULT-BUFFER-HANDLE.
- FOR EACH _aud-audit-data NO-LOCK USE-INDEX _Audit-time
- WHERE _aud-audit-data._Event-context BEGINS cKey
- AND _aud-audit-data._audit-date-time >= dVonDatum
- AND _aud-audit-data._audit-date-time <= dBisDatum
- AND _aud-audit-data._Event-id = 5102 /* Loeschen */
- /* AND _aud-audit-data._user-id = 'adminadp' */
- :
- cString = _aud-audit-data._Event-context.
- cString = ENTRY(2, cString, CHR(06)).
- DO i1 = 1 TO NUM-ENTRIES(cString, CHR(07)):
- CASE i1:
- WHEN 1 THEN cFirma = ENTRY(i1, cString, CHR(07)).
- WHEN 2 THEN iAufnr = INTEGER(ENTRY(i1, cString, CHR(07))).
- WHEN 3 THEN cSort_Cd = ENTRY(i1, cString, CHR(07)).
- WHEN 4 THEN cGeb_Cd = ENTRY(i1, cString, CHR(07)).
- END CASE.
- END.
- cDateTime = STRING(_aud-audit-data._Audit-date-time).
- dDatum = DATE (_aud-audit-data._Audit-date-time).
- iHH = INTEGER(SUBSTRING(cDateTime,12,02)).
- iMM = INTEGER(SUBSTRING(cDateTime,15,02)).
- iSS = INTEGER(SUBSTRING(cDateTime,18,02)).
- iMili = INTEGER(SUBSTRING(cDateTime,21,03)).
- dTime = (iHH * 3600) + (iMM * 60) + iSS.
- FIND FIRST tAufGebKo
- WHERE tAufGebKo.Firma = cFirma
- AND tAufGebKo.Aufnr = iAufnr
- AND tAufGebko.Sort_Cd = cSort_Cd
- AND tAufGebKo.Geb_Cd = cGeb_Cd NO-ERROR.
- IF NOT AVAILABLE tAufGebKo THEN DO:
- CREATE tAufGebKo.
- ASSIGN tAufGebKo.Firma = cFirma
- tAufGebKo.Aufnr = iAufnr
- tAufGebko.Sort_Cd = cSort_Cd
- tAufGebKo.Geb_Cd = cGeb_Cd NO-ERROR.
- END.
- ASSIGN tAufGebKo.aDate = dDatum
- tAufGebKo.aTime = dTime
- tAufGebKo.aMili = iMili
- tAufGebKo.lAktiv = TRUE.
- DO i1 = 1 TO NUM-ENTRIES(_aud-audit-data._Event-detail, CHR(07)):
- cString = ENTRY(i1, _aud-audit-data._Event-detail, CHR(07)).
- cFeld = ENTRY(1, cString, CHR(06)) NO-ERROR.
- cTyp = ENTRY(2, cString, CHR(06)) NO-ERROR.
- cAlt = ENTRY(3, cString, CHR(06)) NO-ERROR.
- cNeu = ENTRY(4, cString, CHR(06)) NO-ERROR.
- cWert = cAlt.
- CASE cFeld:
- WHEN 'Firma' THEN NEXT.
- WHEN 'Aufnr' THEN NEXT.
- WHEN 'Sort_Cd' THEN NEXT.
- WHEN 'Geb_Cd' THEN NEXT.
- END CASE.
- hFeld = hAufGebKo:BUFFER-FIELD(cFeld).
- i3 = 0.
- IF cWert <> ? AND
- INDEX(cWert, ']:') > 0 THEN DO:
- cString = cWert.
- DO i2 = 1 TO NUM-ENTRIES(cString, CHR(08)):
- cWert = ENTRY(i2, cString, CHR(08)).
- cExtent = ENTRY(1 , cWert , ':').
- cWert = ENTRY(2 , cWert , ':').
- /*
- cNeu = ENTRY(2, cNeu, ':').
- */
- cExtent = REPLACE(cExtent, 'E', '').
- cExtent = REPLACE(cExtent, '[', '').
- cExtent = REPLACE(cExtent, ']', '').
- i3 = INTEGER(cExtent).
- CASE cTyp:
- WHEN '1' THEN hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
- WHEN '2' THEN DO:
- IF cWert = ? THEN hFeld:BUFFER-VALUE(i3) = ?.
- ELSE DO:
- dDatum = DATE(INTEGER(ENTRY(1, cWert, '/')),
- INTEGER(ENTRY(2, cWert, '/')),
- INTEGER(ENTRY(3, cWert, '/'))).
- hFeld:BUFFER-VALUE(i3) = dDatum NO-ERROR.
- END.
- END.
- WHEN '3' THEN hFeld:BUFFER-VALUE(i3) = (IF cWert = '1' THEN TRUE ELSE FALSE) NO-ERROR.
- WHEN '4' THEN hFeld:BUFFER-VALUE(i3) = INTEGER(cWert) NO-ERROR.
- WHEN '5' THEN hFeld:BUFFER-VALUE(i3) = DECIMAL(cWert) NO-ERROR.
- OTHERWISE hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
- END CASE.
- END.
- NEXT.
- END.
- CASE cTyp:
- WHEN '1' THEN hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
- WHEN '2' THEN DO:
- IF cWert = ? THEN hFeld:BUFFER-VALUE(i3) = ?.
- ELSE DO:
- dDatum = DATE(INTEGER(ENTRY(1, cWert, '/')),
- INTEGER(ENTRY(2, cWert, '/')),
- INTEGER(ENTRY(3, cWert, '/'))).
- hFeld:BUFFER-VALUE(i3) = dDatum NO-ERROR.
- END.
- END.
- WHEN '3' THEN hFeld:BUFFER-VALUE(i3) = (IF cWert = '1' THEN TRUE ELSE FALSE) NO-ERROR.
- WHEN '4' THEN hFeld:BUFFER-VALUE(i3) = INTEGER(cWert) NO-ERROR.
- WHEN '5' THEN hFeld:BUFFER-VALUE(i3) = DECIMAL(cWert) NO-ERROR.
- OTHERWISE hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
- END CASE.
- END.
- END.
- /*
- DISABLE TRIGGERS FOR LOAD OF AufGebKo.
- FOR EACH tAufGebKo:
- FIND AufGebKo OF tAufGebKo NO-ERROR.
- IF AVAILABLE AufGebKo THEN NEXT.
- CREATE AufGebKo.
- BUFFER-COPY tAufGebKo TO AufGebKo.
- END.
- */
- OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\AufGebKo_Recover.d' NO-MAP NO-CONVERT.
- FOR EACH tAufGebKo:
- EXPORT tAufGebKo.
- END.
- OUTPUT CLOSE.
|