getPrimaryIndexFieldsImpl.cls 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*------------------------------------------------------------------------
  2. File : getPrimaryIndexFieldsImpl
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed May 29 21:02:53 CEST 2024
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. BLOCK-LEVEL ON ERROR UNDO, THROW.
  11. USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
  12. USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
  13. USING OpenEdge.Web.IWebRequest FROM PROPATH.
  14. USING OpenEdge.Web.WebHandler FROM PROPATH.
  15. USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
  16. USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
  17. USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
  18. USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
  19. USING utilities.utilitiesHandler FROM PROPATH.
  20. CLASS getPrimaryIndexFieldsImpl INHERITS WebHandler:
  21. DEFINE VARIABLE outilitiesHandler AS utilitiesHandler NO-UNDO.
  22. { ttInput.i }
  23. METHOD OVERRIDE PROTECTED INTEGER HandlePost(INPUT poRequest AS IWebRequest):
  24. DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
  25. DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
  26. DEFINE VARIABLE oJsonData AS JsonObject NO-UNDO.
  27. DEFINE VARIABLE lcJsonString AS LONGCHAR NO-UNDO.
  28. DEFINE VARIABLE oInput AS JsonObject NO-UNDO.
  29. DEFINE VARIABLE hbttDBTabelle AS HANDLE NO-UNDO.
  30. DEFINE VARIABLE httDBTabelle AS HANDLE NO-UNDO.
  31. DEFINE VARIABLE hqDBTabelle AS HANDLE NO-UNDO.
  32. DEFINE VARIABLE hbDBTabelle AS HANDLE NO-UNDO.
  33. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  34. DEFINE VARIABLE iSprcd AS INTEGER NO-UNDO.
  35. DEFINE VARIABLE cAktion AS CHARACTER NO-UNDO.
  36. DEFINE VARIABLE cIndexFields AS CHARACTER NO-UNDO.
  37. EMPTY TEMP-TABLE ttInput .
  38. lRetVal = WebHandlerUtilities:getJsonFromRequest(INPUT poRequest, OUTPUT oJsonData) NO-ERROR.
  39. MESSAGE 'getJsonFromRequest = ' lRetVal.
  40. oJsonData:WRITE(lcJsonString, FALSE).
  41. MESSAGE 'ganzer eingangsstring = ' STRING(lcJsonString).
  42. //
  43. // Input-Daten (Steuersatz) aus JsonObject lesen und in ttInput füllen
  44. //
  45. EMPTY TEMP-TABLE ttInput .
  46. hbttInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE.
  47. oInput = NEW JsonObject().
  48. oInput = oJsonData:GetJsonObject('ttInput').
  49. lRetVal = hbttInput:READ-JSON ('JsonObject', oInput).
  50. FIND FIRST ttInput.
  51. cAktion = ttInput.action.
  52. outilitiesHandler = NEW utilitiesHandler ().
  53. DO WHILE lRetVal:
  54. FIND FIRST ttInput.
  55. cIndexFields = outilitiesHandler:getPrimaryIndexFields(
  56. INPUT ttInput.tabelle
  57. ).
  58. MESSAGE 'Rückgabe: ' + cIndexFields.
  59. oResponse = NEW OpenEdge.Web.WebResponse().
  60. oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
  61. oResponse:ContentType = "text/plain".
  62. oWriter = NEW WebResponseWriter(oResponse).
  63. oWriter:Open().
  64. oWriter:Write(cIndexFields).
  65. oWriter:Close().
  66. LEAVE.
  67. END.
  68. DO WHILE NOT lRetVal:
  69. oResponse = NEW OpenEdge.Web.WebResponse().
  70. oResponse:StatusCode = INTEGER(StatusCodeEnum:OK).
  71. oResponse:ContentType = "application/json;charset=utf-8".
  72. oWriter = NEW WebResponseWriter(oResponse).
  73. oWriter:Open().
  74. MESSAGE 'lcString Rückgabe: ' + STRING(lcJsonString) VIEW-AS ALERT-BOX.
  75. oWriter:Write(lcJsonString).
  76. oWriter:Close().
  77. LEAVE.
  78. END.
  79. MESSAGE "Exiting HandlePost" VIEW-AS ALERT-BOX.
  80. CATCH e AS Progress.Lang.Error:
  81. MESSAGE "Exception occurred: " + e:GetMessage(1) VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  82. RETURN -1.
  83. END CATCH.
  84. END METHOD.
  85. METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
  86. DEFINE VARIABLE result AS INTEGER NO-UNDO.
  87. MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
  88. RETURN result.
  89. END METHOD.
  90. METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
  91. DEFINE VARIABLE result AS INTEGER NO-UNDO.
  92. MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
  93. RETURN result.
  94. END METHOD.
  95. END CLASS.