| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
-
- /*------------------------------------------------------------------------
- File : adresse_dict
- Purpose :
- Syntax :
- Description :
- Author(s) : walter.riechsteiner
- Created : Thu Jun 26 13:56:20 CEST 2025
- Notes :
- ----------------------------------------------------------------------*/
-
- BLOCK-LEVEL ON ERROR UNDO, THROW.
- USING OpenEdge.Core.String FROM PROPATH.
- USING OpenEdge.Net.HTTP.IHttpResponse FROM PROPATH.
- USING OpenEdge.Net.HTTP.StatusCodeEnum FROM PROPATH.
- USING OpenEdge.Web.IWebRequest FROM PROPATH.
- USING OpenEdge.Web.WebHandler FROM PROPATH.
- USING OpenEdge.Web.WebResponseWriter FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
- USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
- USING src.ch.adprime.gemis.WebHandlerUtilities FROM PROPATH.
- USING src.ch.adprime.gemis.ErrorMessage FROM PROPATH.
- CLASS getTableFieldsImpl INHERITS WebHandler:
- DEFINE TEMP-TABLE tFileDict
- SERIALIZE-NAME 'fields'
- FIELD cName AS CHARACTER SERIALIZE-NAME 'fieldName'
- FIELD cLabel AS CHARACTER SERIALIZE-NAME 'label'
- FIELD cType AS CHARACTER SERIALIZE-NAME 'type'
- FIELD iMaxLength AS INTEGER SERIALIZE-NAME 'maxLength'
- FIELD cFormat AS CHARACTER SERIALIZE-NAME 'format'
- FIELD lReadOnly AS LOGICAL SERIALIZE-NAME 'editable'
- FIELD lhidden AS LOGICAL SERIALIZE-NAME 'hidden'
- .
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- METHOD OVERRIDE PROTECTED INTEGER HandleGet (INPUT poRequest AS IWebRequest ):
- DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
- DEFINE VARIABLE oWriter AS WebResponseWriter NO-UNDO.
- DEFINE VARIABLE oError AS ErrorMessage NO-UNDO.
- DEFINE VARIABLE oBody AS String NO-UNDO.
- DEFINE VARIABLE oJsonResponse AS JsonObject NO-UNDO.
- DEFINE VARIABLE oJsonArray AS JsonArray NO-UNDO.
- DEFINE VARIABLE lDebug AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cDefautlCharSet AS CHARACTER NO-UNDO INIT 'UTF-8'.
-
- DEFINE VARIABLE cCorralationID AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cContent-Type AS CHARACTER NO-UNDO.
- DEFINE VARIABLE htFileDict AS HANDLE NO-UNDO.
- DEFINE VARIABLE lcJsonInhalt AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
- DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFileNames AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFelder AS CHARACTER NO-UNDO.
-
- cFileNames = poRequest:URI:GetQueryValue("tables").
- MESSAGE 'File-Names = ' cFileNames.
-
- cFileNames = REPLACE(cFileNames, ',', ';').
- DO ii = 1 TO NUM-ENTRIES(cFileNames, ';'):
- cFileName = ENTRY(ii,cFileNames, ';').
- FIND FIRST AnaDat._File NO-LOCK
- WHERE AnaDat._File._File-Name = cFileName NO-ERROR.
-
- FOR EACH AnaDat._Field OF AnaDat._File:
- CREATE tFileDict.
- ASSIGN
- tFileDict.cName = AnaDat._File._File-Name + '.' + AnaDat._Field._Field-Name
- tFileDict.cType = AnaDat._Field._Data-Type
- tFileDict.cFormat = AnaDat._Field._Format
- tFileDict.lhidden = FALSE
- tFileDict.lReadOnly = FALSE
- tFileDict.iMaxLength = 10.
- FIND FIRST labeltexte NO-LOCK
- WHERE labeltexte.mandant = '1000'
- AND labeltexte.benutzer = ''
- AND labeltexte.program = ''
- AND labeltexte.feld = Anadat._Field._Field-Name
- AND labeltexte.sprcd = 1 NO-ERROR.
- IF AVAILABLE labeltexte THEN
- DO:
- tFileDict.cLabel = labeltexte.sidelabel.
- END.
- ELSE
- DO:
- tFileDict.cLabel = (IF AnaDat._Field._Label <> ? THEN AnaDat._Field._Label ELSE AnaDat._Field._Field-Name).
- END.
- IF INDEX(AnaDat._Field._Format, '(') = 0 THEN tFileDict.iMaxLength = LENGTH(AnaDat._Field._Format).
- ELSE
- DO:
- i1 = INDEX(AnaDat._Field._Format, '(') + 1.
- i2 = INDEX(AnaDat._Field._Format, ')').
- tFileDict.iMaxLength = INTEGER(SUBSTRING(_Field._Format, i1, i2 - i1)).
- END.
- END.
- END.
-
- htFileDict = TEMP-TABLE tFileDict:DEFAULT-BUFFER-HANDLE.
-
- cContent-Type = "application/json".
- cDefautlCharSet = 'utf-8'.
- oJsonArray = NEW JsonArray().
- oJsonResponse = NEW JsonObject().
- MESSAGE '1'.
- htFileDict:WRITE-JSON("JsonArray", oJsonArray).
- htFileDict:WRITE-JSON("JsonObject", oJsonResponse).
- MESSAGE "GetHandler" STRING(lcJsonInhalt).
-
- // oBody = NEW String(oJsonResponse:GetJsonText()).
- oBody = NEW String(oJsonResponse:GetJsonText()).
- WebHandlerUtilities:createHttpResponse(INPUT INTEGER(StatusCodeEnum:OK), INPUT oBody, INPUT cContent-Type, INPUT cDefautlCharSet, INPUT cCorralationID, OUTPUT oResponse).
- // oResponse:SetHeader(HttpHeaderBuilder:Build(cHeaderCorralationID):Value(cCorralationID):Header).
-
- oWriter = NEW WebResponseWriter(oResponse).
- oWriter:Open().
- oWriter:Close().
-
- RETURN 0.
-
- CATCH e AS Progress.Lang.Error:
- END CATCH.
- FINALLY:
- END FINALLY.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotAllowedMethod(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotAllowedMethod called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- METHOD OVERRIDE PROTECTED INTEGER HandleNotImplemented(INPUT poRequest AS IWebRequest):
- DEFINE VARIABLE result AS INTEGER NO-UNDO.
- MESSAGE "HandleNotImplemented called" VIEW-AS ALERT-BOX.
- RETURN result.
- END METHOD.
- END CLASS.
|