| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- 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 '1010' NO-UNDO.
- DEF VAR iBesnr AS INT NO-UNDO.
- DEF VAR iPos AS INT NO-UNDO.
- DEF VAR iSubPos 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 hBesEing AS HANDLE NO-UNDO.
- DEF VAR hFeld AS HANDLE NO-UNDO.
- DEF VAR iExtent AS INT NO-UNDO.
- DEF TEMP-TABLE tBesnr
- FIELD Besnr AS INT.
- DEF TEMP-TABLE tBesEing LIKE BesEing
- FIELD lAktiv AS LOG
- FIELD aDate AS DATE
- FIELD aTime AS INT
- FIELD aMili AS INT
- INDEX tBesEing-k1 IS PRIMARY
- Firma
- Besnr
- .
-
- cKey = 'PUB.BesEing' + CHR(06) + '1000'.
- dVonDatum = DATETIME('08/07/2021 10:00:00.000+02:00').
- dBisDatum = DATETIME('08/07/2021 11:00:00.000+02:00').
- hBesEing = TEMP-TABLE tBesEing: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 iBesnr = INTEGER(ENTRY(i1, cString, CHR(07))).
- WHEN 3 THEN iPos = INTEGER(ENTRY(i1, cString, CHR(07))).
- WHEN 4 THEN iSubPos = 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 tBesEing
- WHERE tBesEing.Firma = cFirma
- AND tBesEing.Besnr = iBesnr
- AND tBesEing.Pos = iPos
- AND tBesEing.SubPos = iSubPos NO-ERROR.
- IF NOT AVAILABLE tBesEing THEN DO:
- CREATE tBesEing.
- ASSIGN tBesEing.Firma = cFirma
- tBesEing.Besnr = iBesnr
- tBesEing.Pos = iPos
- tBesEing.SubPos = iSubPos.
- END.
- ASSIGN tBesEing.aDate = dDatum
- tBesEing.aTime = dTime
- tBesEing.aMili = iMili
- tBesEing.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 'Besnr' THEN NEXT.
- WHEN 'Pos' THEN NEXT.
- WHEN 'SubPos' THEN NEXT.
- END CASE.
- hFeld = hBesEing: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 BesEing.
- FOR EACH tBesEing:
- FIND BesEing OF tBesEing NO-ERROR.
- IF AVAILABLE BesEing THEN NEXT.
- CREATE BesEing.
- BUFFER-COPY tBesEing TO BesEing.
- END.
- */
- OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\BesEing_Recover.d' NO-MAP NO-CONVERT.
- FOR EACH tBesEing:
- EXPORT tBesEing.
- END.
- OUTPUT CLOSE.
|