recover-aus_audit_aufko_geloescht.p 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. DEF VAR dvonDatum AS DATETIME-TZ NO-UNDO.
  2. DEF VAR dbisDatum AS DATETIME-TZ NO-UNDO.
  3. DEF VAR cKey AS CHAR NO-UNDO.
  4. DEF VAR cString AS CHAR NO-UNDO.
  5. DEF VAR cIndex AS CHAR NO-UNDO.
  6. DEF VAR cFeld AS CHAR NO-UNDO.
  7. DEF VAR iFeld AS INT NO-UNDO.
  8. DEF VAR cTyp AS CHAR NO-UNDO.
  9. DEF VAR cAlt AS CHAR NO-UNDO.
  10. DEF VAR cNeu AS CHAR NO-UNDO.
  11. DEF VAR iLang AS INT NO-UNDO.
  12. DEF VAR i1 AS INT NO-UNDO.
  13. DEF VAR i2 AS INT NO-UNDO.
  14. DEF VAR i3 AS INT NO-UNDO.
  15. DEF VAR cFirma AS CHAR NO-UNDO.
  16. DEF VAR D1Firma AS CHAR INIT '1000' NO-UNDO.
  17. DEF VAR iAufnr AS INT NO-UNDO.
  18. DEF VAR iPos AS INT NO-UNDO.
  19. DEF VAR cDateTime AS CHAR NO-UNDO.
  20. DEF VAR dDatum AS DATE NO-UNDO.
  21. DEF VAR dTime AS INT NO-UNDO.
  22. DEF VAR iMili AS INT NO-UNDO.
  23. DEF VAR iHH AS INT NO-UNDO.
  24. DEF VAR iMM AS INT NO-UNDO.
  25. DEF VAR iSS AS INT NO-UNDO.
  26. DEF VAR cExtent AS CHAR NO-UNDO.
  27. DEF VAR lNeu AS LOG NO-UNDO.
  28. DEF VAR cWert AS CHAR NO-UNDO.
  29. DEF VAR hAufko AS HANDLE NO-UNDO.
  30. DEF VAR hFeld AS HANDLE NO-UNDO.
  31. DEF VAR iExtent AS INT NO-UNDO.
  32. DEF TEMP-TABLE tAufnr
  33. FIELD Aufnr AS INT.
  34. DEF TEMP-TABLE tAufko LIKE Aufko
  35. FIELD lAktiv AS LOG
  36. FIELD aDate AS DATE
  37. FIELD aTime AS INT
  38. FIELD aMili AS INT
  39. INDEX tAufko-k1 IS PRIMARY
  40. Firma
  41. Aufnr
  42. .
  43. cKey = 'PUB.Aufko' + CHR(06) + '1000'.
  44. dVonDatum = DATETIME('12/07/2021 08:00:00.000+02:00').
  45. dBisDatum = DATETIME('12/07/2021 12:00:00.000+02:00').
  46. hAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  47. FOR EACH _aud-audit-data NO-LOCK USE-INDEX _Audit-time
  48. WHERE _aud-audit-data._Event-context BEGINS cKey
  49. AND _aud-audit-data._audit-date-time >= dVonDatum
  50. AND _aud-audit-data._audit-date-time <= dBisDatum
  51. AND _aud-audit-data._Event-id = 5102 /* Loeschen */
  52. /* AND _aud-audit-data._user-id = 'adminadp' */
  53. :
  54. cString = _aud-audit-data._Event-context.
  55. cString = ENTRY(2, cString, CHR(06)).
  56. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(07)):
  57. CASE i1:
  58. WHEN 1 THEN cFirma = ENTRY(i1, cString, CHR(07)).
  59. WHEN 2 THEN iAufnr = INTEGER(ENTRY(i1, cString, CHR(07))).
  60. END CASE.
  61. END.
  62. cDateTime = STRING(_aud-audit-data._Audit-date-time).
  63. dDatum = DATE (_aud-audit-data._Audit-date-time).
  64. iHH = INTEGER(SUBSTRING(cDateTime,12,02)).
  65. iMM = INTEGER(SUBSTRING(cDateTime,15,02)).
  66. iSS = INTEGER(SUBSTRING(cDateTime,18,02)).
  67. iMili = INTEGER(SUBSTRING(cDateTime,21,03)).
  68. dTime = (iHH * 3600) + (iMM * 60) + iSS.
  69. FIND FIRST tAufko
  70. WHERE tAufko.Firma = cFirma
  71. AND tAufko.Aufnr = iAufnr NO-ERROR.
  72. IF NOT AVAILABLE tAufko THEN DO:
  73. CREATE tAufko.
  74. ASSIGN tAufko.Firma = cFirma
  75. tAufko.Aufnr = iAufnr.
  76. END.
  77. ASSIGN tAufko.aDate = dDatum
  78. tAufko.aTime = dTime
  79. tAufko.aMili = iMili
  80. tAufko.lAktiv = TRUE.
  81. DO i1 = 1 TO NUM-ENTRIES(_aud-audit-data._Event-detail, CHR(07)):
  82. cString = ENTRY(i1, _aud-audit-data._Event-detail, CHR(07)).
  83. cFeld = ENTRY(1, cString, CHR(06)) NO-ERROR.
  84. cTyp = ENTRY(2, cString, CHR(06)) NO-ERROR.
  85. cAlt = ENTRY(3, cString, CHR(06)) NO-ERROR.
  86. cNeu = ENTRY(4, cString, CHR(06)) NO-ERROR.
  87. cWert = cAlt.
  88. CASE cFeld:
  89. WHEN 'Firma' THEN NEXT.
  90. WHEN 'Aufnr' THEN NEXT.
  91. END CASE.
  92. hFeld = hAufko:BUFFER-FIELD(cFeld).
  93. i3 = 0.
  94. IF cWert <> ? AND
  95. INDEX(cWert, ']:') > 0 THEN DO:
  96. cString = cWert.
  97. DO i2 = 1 TO NUM-ENTRIES(cString, CHR(08)):
  98. cWert = ENTRY(i2, cString, CHR(08)).
  99. cExtent = ENTRY(1 , cWert , ':').
  100. cWert = ENTRY(2 , cWert , ':').
  101. /*
  102. cNeu = ENTRY(2, cNeu, ':').
  103. */
  104. cExtent = REPLACE(cExtent, 'E', '').
  105. cExtent = REPLACE(cExtent, '[', '').
  106. cExtent = REPLACE(cExtent, ']', '').
  107. i3 = INTEGER(cExtent).
  108. CASE cTyp:
  109. WHEN '1' THEN hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
  110. WHEN '2' THEN DO:
  111. IF cWert = ? THEN hFeld:BUFFER-VALUE(i3) = ?.
  112. ELSE DO:
  113. dDatum = DATE(INTEGER(ENTRY(1, cWert, '/')),
  114. INTEGER(ENTRY(2, cWert, '/')),
  115. INTEGER(ENTRY(3, cWert, '/'))).
  116. hFeld:BUFFER-VALUE(i3) = dDatum NO-ERROR.
  117. END.
  118. END.
  119. WHEN '3' THEN hFeld:BUFFER-VALUE(i3) = (IF cWert = '1' THEN TRUE ELSE FALSE) NO-ERROR.
  120. WHEN '4' THEN hFeld:BUFFER-VALUE(i3) = INTEGER(cWert) NO-ERROR.
  121. WHEN '5' THEN hFeld:BUFFER-VALUE(i3) = DECIMAL(cWert) NO-ERROR.
  122. OTHERWISE hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
  123. END CASE.
  124. END.
  125. NEXT.
  126. END.
  127. CASE cTyp:
  128. WHEN '1' THEN hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
  129. WHEN '2' THEN DO:
  130. IF cWert = ? THEN hFeld:BUFFER-VALUE(i3) = ?.
  131. ELSE DO:
  132. dDatum = DATE(INTEGER(ENTRY(1, cWert, '/')),
  133. INTEGER(ENTRY(2, cWert, '/')),
  134. INTEGER(ENTRY(3, cWert, '/'))).
  135. hFeld:BUFFER-VALUE(i3) = dDatum NO-ERROR.
  136. END.
  137. END.
  138. WHEN '3' THEN hFeld:BUFFER-VALUE(i3) = (IF cWert = '1' THEN TRUE ELSE FALSE) NO-ERROR.
  139. WHEN '4' THEN hFeld:BUFFER-VALUE(i3) = INTEGER(cWert) NO-ERROR.
  140. WHEN '5' THEN hFeld:BUFFER-VALUE(i3) = DECIMAL(cWert) NO-ERROR.
  141. OTHERWISE hFeld:BUFFER-VALUE(i3) = cWert NO-ERROR.
  142. END CASE.
  143. END.
  144. END.
  145. /*
  146. DISABLE TRIGGERS FOR LOAD OF Aufko.
  147. FOR EACH tAufko:
  148. FIND Aufko OF tAufko NO-ERROR.
  149. IF AVAILABLE Aufko THEN NEXT.
  150. CREATE Aufko.
  151. BUFFER-COPY tAufko TO Aufko.
  152. END.
  153. */
  154. OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\Aufko_Recover.d' NO-MAP NO-CONVERT.
  155. FOR EACH tAufko:
  156. EXPORT tAufko.
  157. END.
  158. OUTPUT CLOSE.