recover-aus_audit_artst_EPD.p 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. DEFINE VARIABLE F_vonDatum AS DATETIME-TZ NO-UNDO.
  2. DEFINE VARIABLE F_bisDatum AS DATETIME-TZ NO-UNDO.
  3. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO.
  4. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  5. DEFINE VARIABLE cIndex AS CHARACTER NO-UNDO.
  6. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  7. DEFINE VARIABLE iFeld AS INTEGER NO-UNDO.
  8. DEFINE VARIABLE cTyp AS CHARACTER NO-UNDO.
  9. DEFINE VARIABLE cAlt AS CHARACTER NO-UNDO.
  10. DEFINE VARIABLE cNeu AS CHARACTER NO-UNDO.
  11. DEFINE VARIABLE iLang AS INTEGER NO-UNDO.
  12. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  13. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  14. DEFINE VARIABLE i3 AS INTEGER NO-UNDO.
  15. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  16. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  17. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  18. DEFINE VARIABLE cDateTime AS CHARACTER NO-UNDO.
  19. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  20. DEFINE VARIABLE dTime AS INTEGER NO-UNDO.
  21. DEFINE VARIABLE iMili AS INTEGER NO-UNDO.
  22. DEFINE VARIABLE iHH AS INTEGER NO-UNDO.
  23. DEFINE VARIABLE iMM AS INTEGER NO-UNDO.
  24. DEFINE VARIABLE iSS AS INTEGER NO-UNDO.
  25. DEFINE VARIABLE cExtent AS CHARACTER NO-UNDO.
  26. DEFINE VARIABLE lNeu AS LOG NO-UNDO.
  27. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO.
  28. DEFINE VARIABLE lCreate AS LOG NO-UNDO.
  29. DEFINE VARIABLE hArtst AS HANDLE NO-UNDO.
  30. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  31. DEFINE VARIABLE iExtent AS INTEGER NO-UNDO.
  32. DEFINE VARIABLE D1Firma AS CHARACTER NO-UNDO INIT '1010'.
  33. DEFINE VARIABLE D2Firma AS CHARACTER NO-UNDO INIT '1010'.
  34. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO
  35. INIT '01,02,03,04,05,06,6500'.
  36. DEFINE VARIABLE cWg AS CHARACTER NO-UNDO.
  37. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  38. DEFINE VARIABLE cArtnr AS CHARACTER NO-UNDO.
  39. DEFINE TEMP-TABLE tArtst
  40. FIELD Firma AS CHARACTER
  41. FIELD Artnr AS INTEGER
  42. FIELD LEP_old AS DECIMAL DECIMALS 4
  43. FIELD LEP_new AS DECIMAL DECIMALS 4
  44. FIELD DEP_old AS DECIMAL DECIMALS 4
  45. FIELD DEP_new AS DECIMAL DECIMALS 4
  46. FIELD Listen_EP_old AS DECIMAL DECIMALS 4
  47. FIELD Listen_EP_new AS DECIMAL DECIMALS 4
  48. INDEX tArtst-k1
  49. Firma
  50. Artnr
  51. .
  52. F_vonDatum = DATETIME(03, 05, 2024, 19, 40, 00, 000).
  53. F_bisDatum = DATETIME(03, 25, 2024, 20, 15, 00, 000).
  54. cKey = 'PUB.Artst' + CHR(06) + '1000' + CHR(07).
  55. hArtst = TEMP-TABLE tArtst:DEFAULT-BUFFER-HANDLE.
  56. FOR EACH _aud-audit-data NO-LOCK USE-INDEX _Event-context
  57. WHERE _aud-audit-data._Event-context = cKey
  58. AND _aud-audit-data._Audit-date-time >= F_vonDatum
  59. AND _aud-audit-data._Audit-date-time <= F_bisDatum
  60. :
  61. cString = ENTRY(2, _aud-audit-data._Event-context, CHR(06)).
  62. MESSAGE cString SKIP
  63. _aud-audit-data._Event-context SKIP
  64. _aud-audit-data._Event-id SKIP
  65. _aud-audit-data._Event-detail
  66. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  67. /*
  68. DO i1 = 1 TO NUM-ENTRIES(cString, CHR(07)):
  69. CASE i1:
  70. WHEN 1 THEN
  71. cFirma = ENTRY(i1, cString, CHR(07)).
  72. WHEN 2 THEN
  73. iArtnr = INTEGER(ENTRY(i1, cString, CHR(07))).
  74. END CASE.
  75. END.
  76. IF iArtnr <> Artst.Artnr THEN NEXT.
  77. CASE _aud-audit-data._Event-id:
  78. WHEN 5100 THEN
  79. lNeu = TRUE.
  80. WHEN 5101 THEN
  81. lNeu = TRUE.
  82. WHEN 5102 THEN
  83. lNeu = FALSE.
  84. END CASE.
  85. IF NOT lNeu THEN NEXT.
  86. cDateTime = STRING(_aud-audit-data._Audit-date-time).
  87. dDatum = DATE (_aud-audit-data._Audit-date-time).
  88. IF dDatum = 04/14/2022 THEN NEXT.
  89. iHH = INTEGER(SUBSTRING(cDateTime,12,02)).
  90. iMM = INTEGER(SUBSTRING(cDateTime,15,02)).
  91. iSS = INTEGER(SUBSTRING(cDateTime,18,02)).
  92. iMili = INTEGER(SUBSTRING(cDateTime,21,03)).
  93. dTime = (iHH * 3600) + (iMM * 60) + iSS.
  94. DO i1 = 1 TO NUM-ENTRIES(_aud-audit-data._Event-detail, CHR(07)):
  95. cString = ENTRY(i1, _aud-audit-data._Event-detail, CHR(07)).
  96. cFeld = ENTRY( 1, cString, CHR(06)) NO-ERROR.
  97. cTyp = ENTRY( 2, cString, CHR(06)) NO-ERROR.
  98. cAlt = ENTRY( 3, cString, CHR(06)) NO-ERROR.
  99. cNeu = ENTRY( 4, cString, CHR(06)) NO-ERROR.
  100. CASE cFeld:
  101. WHEN 'Firma' THEN
  102. NEXT.
  103. WHEN 'Artnr' THEN
  104. NEXT.
  105. END CASE.
  106. IF cFeld <> 'EP-L' AND
  107. cFeld <> 'EP-D' THEN NEXT.
  108. IF cAlt = ? OR
  109. cNeu = ? THEN NEXT.
  110. FIND FIRST tArtst
  111. WHERE tArtst.Firma = D2Firma
  112. AND tArtst.Artnr = iArtnr
  113. AND tArtst.Datum = dDatum NO-ERROR.
  114. IF NOT AVAILABLE tArtst THEN
  115. DO:
  116. CREATE tArtst.
  117. ASSIGN
  118. tArtst.Firma = D2Firma
  119. tArtst.Artnr = iArtnr
  120. tArtst.Datum = dDatum
  121. tArtst.Wg = cWg
  122. tArtst.Benutzer = _aud-audit-data._User-id
  123. i3 = i3 + 1.
  124. END.
  125. CASE cFeld:
  126. WHEN 'EP-L' THEN
  127. DO:
  128. ASSIGN
  129. hArtst:BUFFER-FIELD('LEP_old'):BUFFER-VALUE = DECIMAL(cAlt)
  130. hArtst:BUFFER-FIELD('LEP_new'):BUFFER-VALUE = DECIMAL(cNeu).
  131. END.
  132. WHEN 'EP-D' THEN
  133. DO:
  134. ASSIGN
  135. hArtst:BUFFER-FIELD('DEP_old'):BUFFER-VALUE = DECIMAL(cAlt)
  136. hArtst:BUFFER-FIELD('DEP_new'):BUFFER-VALUE = DECIMAL(cNeu).
  137. END.
  138. END CASE.
  139. END.
  140. END.
  141. */
  142. END.
  143. /*
  144. OUTPUT TO 'C:\Temp\Recover_Artst_DEP.csv' NO-MAP NO-CONVERT.
  145. FOR EACH tArtst
  146. BREAK BY tArtst.Firma
  147. BY tArtst.Artnr
  148. BY tArtst.Datum
  149. :
  150. EXPORT DELIMITER ';' tArtst.
  151. END.
  152. OUTPUT CLOSE.
  153. */