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 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 hAufko 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 tAufko LIKE Aufko FIELD lAktiv AS LOG FIELD aDate AS DATE FIELD aTime AS INT FIELD aMili AS INT INDEX tAufko-k1 IS PRIMARY Firma Aufnr . cKey = 'PUB.Aufko' + 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'). hAufko = TEMP-TABLE tAufko: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))). 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 tAufko WHERE tAufko.Firma = cFirma AND tAufko.Aufnr = iAufnr NO-ERROR. IF NOT AVAILABLE tAufko THEN DO: CREATE tAufko. ASSIGN tAufko.Firma = cFirma tAufko.Aufnr = iAufnr. END. ASSIGN tAufko.aDate = dDatum tAufko.aTime = dTime tAufko.aMili = iMili tAufko.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. END CASE. hFeld = hAufko: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 Aufko. FOR EACH tAufko: FIND Aufko OF tAufko NO-ERROR. IF AVAILABLE Aufko THEN NEXT. CREATE Aufko. BUFFER-COPY tAufko TO Aufko. END. */ OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\Aufko_Recover.d' NO-MAP NO-CONVERT. FOR EACH tAufko: EXPORT tAufko. END. OUTPUT CLOSE.