| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- USING System.*.
- USING OpenEdge.Net.URI.
- { incl/properties.i }
- DEFINE INPUT PARAMETER ipIntern AS INT NO-UNDO.
- DEFINE INPUT PARAMETER ipPassword AS CHAR NO-UNDO.
- DEFINE INPUT PARAMETER ipTelNummer AS CHAR NO-UNDO.
- DEFINE OUTPUT PARAMETER opMeldung AS CHAR NO-UNDO.
- /* DEFINE VARIABLE ipIntern AS INT NO-UNDO INIT 12. */
- /* DEFINE VARIABLE ipPassword AS CHAR NO-UNDO INIT '12x8=T?m'. */
- /* DEFINE VARIABLE ipTelNummer AS CHAR NO-UNDO INIT '0+41792610510'. */
- DEFINE VARIABLE oURI AS URI NO-UNDO.
- DEFINE VARIABLE HttpClient AS CLASS System.Net.WebClient.
- DEFINE VARIABLE webResponse AS LONGCHAR NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE lok AS LOG NO-UNDO.
- DEFINE VARIABLE iZeile AS INTEGER NO-UNDO.
- DEFINE VARIABLE cipNummer AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cSession AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cNumber AS CHARACTER NO-UNDO.
- FIX-CODEPAGE (webResponse) = "UTF-8".
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR cName AS CHAR NO-UNDO.
- DEF TEMP-TABLE tElemente
- FIELD iZeile AS INT
- FIELD cName AS CHAR
- FIELD cValue AS CHAR
- FIELD cAttribute AS CHAR
-
- INDEX tElemente-k1 IS PRIMARY
- iZeile.
- .
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &IF DEFINED(EXCLUDE-createElemente) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createElemente Procedure
- FUNCTION createElemente RETURNS LOGICAL
- ( iphXmlNode AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAttributeValue) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAttributeValue Procedure
- FUNCTION getAttributeValue RETURNS CHARACTER
- ( ipcListe AS CHAR, ipcAttrib AS CHAR ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 15
- WIDTH = 60.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
- DEF VAR cErlaubt AS CHAR NO-UNDO
- INIT '+0123456789'.
- DEF VAR cZeichen AS CHAR NO-UNDO.
- DEF VAR cTemp AS CHAR NO-UNDO.
- cTemp = REPLACE(REPLACE(STRING(TODAY,'99.99.9999') + STRING(TIME,'HH:MM:SS'), '.', ''), ':', '').
- cDateiName = SUBSTITUTE('&1&2&3Entity.xml', SESSION:TEMP-DIRECTORY, ipIntern, cTemp).
- iZeile = 0.
- opMeldung = ''.
-
- cipNummer = '0'.
- DO ii = 1 TO LENGTH(ipTelNummer):
- cZeichen = SUBSTRING(ipTelNummer, ii, 01).
- IF INDEX(cErlaubt, cZeichen) = 0 THEN NEXT.
- cipNummer = cipNummer + cZeichen.
- END.
- ipTelNummer = cipNummer.
-
- RUN LOGON (OUTPUT cSession , OUTPUT opMeldung) NO-ERROR.
- IF opMeldung <> '' THEN RETURN.
-
- RUN GETDEVICESTATE ( OUTPUT opMeldung ).
- IF opMeldung <> '' THEN DO:
- /* RUN CLEAR_CONNECTION. */
- RETURN.
- END.
-
- RUN CALL_NUMBER (OUTPUT cNumber, OUTPUT opMeldung) NO-ERROR.
- IF cNumber = '' THEN RETURN.
- IF opMeldung <> '' THEN RETURN.
- /* PAUSE 1 NO-MESSAGE. */
- /* RUN GETDEVICESTATE ( OUTPUT opMeldung ). */
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &IF DEFINED(EXCLUDE-CALL_NUMBER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CALL_NUMBER Procedure
- PROCEDURE CALL_NUMBER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF OUTPUT PARAMETER opNumber AS CHAR NO-UNDO.
- DEF OUTPUT PARAMETER opMessage AS CHAR NO-UNDO.
- DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
- oURI = OpenEdge.Net.URI:Parse(cTelefonIP).
- oURI:Port = iTelefonPort.
- oURI:Path = cTelefonPfad.
- oURI:AddQuery("cmd" , "MakeCall").
- oURI:AddQuery("callingDevice" , STRING(ipIntern) ).
- oURI:AddQuery("calledDirectoryNumber", ipTelNummer ).
- oURI:AddQuery("gsSession" , cSession).
-
- System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
- HttpClient = NEW System.Net.WebClient().
- cString = oURI:ToString().
- webResponse = HttpClient:DownloadString(oURI:ToString()).
- CREATE X-DOCUMENT hXmlDoc .
- CREATE X-NODEREF hXmlNode.
- hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
- hXmlDoc:SAVE('file', cDateiName).
-
- EMPTY TEMP-TABLE tElemente.
- iZeile = 0.
-
- hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
-
- IF hXmlNode:SUBTYPE = "element" THEN DO:
- DYNAMIC-FUNCTION('createElemente':U, hXmlNode ) NO-ERROR.
- END.
-
- RUN GetChildren ( hXmlNode ).
-
- FOR EACH tElemente:
- CASE tElemente.cName:
- WHEN 'CallID' THEN opNumber = tElemente.cValue.
- WHEN 'ERROR' THEN opMessage = tElemente.cValue.
- END CASE.
- END.
-
- /* OUTPUT TO 'C:\Temp\CallNumber.csv'. */
- /* FOR EACH tElemente: */
- /* EXPORT DELIMITER ';' tElemente. */
- /* END. */
- /* OUTPUT CLOSE. */
-
- FINALLY:
- IF VALID-HANDLE (hXmlDoc) THEN DELETE OBJECT hXmlDoc.
- IF VALID-HANDLE (hXmlNode) THEN DELETE OBJECT hXmlNode .
-
- IF VALID-OBJECT (HttpClient) THEN
- DO:
- HttpClient:Dispose().
- DELETE OBJECT HttpClient.
- END.
- END FINALLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CLEAR_CONNECTION) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CLEAR_CONNECTION Procedure
- PROCEDURE CLEAR_CONNECTION :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
- oURI = OpenEdge.Net.URI:Parse(cTelefonIP).
- oURI:Port = iTelefonPort.
- oURI:Path = cTelefonPfad.
- oURI:AddQuery("cmd" , "ClearConnection").
- oURI:AddQuery("deviceId" , cNumber ).
- oURI:AddQuery("gsSession", cSession).
-
- System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
- HttpClient = NEW System.Net.WebClient().
- cString = oURI:ToString().
- webResponse = HttpClient:DownloadString(oURI:ToString()).
- CREATE X-DOCUMENT hXmlDoc .
- CREATE X-NODEREF hXmlNode.
- hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
- hXmlDoc:SAVE('file', cDateiName).
-
- EMPTY TEMP-TABLE tElemente.
- iZeile = 0.
-
- hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
-
- IF hXmlNode:SUBTYPE = "element" THEN DO:
- DYNAMIC-FUNCTION('createElemente':U, hXmlNode ) NO-ERROR.
- END.
-
- RUN GetChildren ( hXmlNode ).
-
- /* OUTPUT TO 'C:\Temp\ClearConnection.csv'. */
- /* FOR EACH tElemente: */
- /* EXPORT DELIMITER ';' tElemente. */
- /* END. */
- /* OUTPUT CLOSE. */
-
- FINALLY:
- IF VALID-HANDLE (hXmlDoc) THEN DELETE OBJECT hXmlDoc.
- IF VALID-HANDLE (hXmlNode) THEN DELETE OBJECT hXmlNode .
-
- IF VALID-OBJECT (HttpClient) THEN
- DO:
- HttpClient:Dispose().
- DELETE OBJECT HttpClient.
- END.
- END FINALLY.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GetChildren) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GetChildren Procedure
- PROCEDURE GetChildren :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER hParent AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
-
- CREATE X-NODEREF hXmlNode.
- REPEAT ii = 1 TO hParent:NUM-CHILDREN:
- lok = hParent:GET-CHILD(hXmlNode,ii) NO-ERROR.
- IF NOT lok THEN LEAVE.
- IF hXmlNode:SUBTYPE <> "element" THEN NEXT.
-
- DYNAMIC-FUNCTION('createElemente':U, hXmlNode ) NO-ERROR.
- RUN GetChildren ( hXmlNode ).
- END.
-
- DELETE OBJECT hXmlNode.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GETDEVICESTATE) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GETDEVICESTATE Procedure
- PROCEDURE GETDEVICESTATE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE OUTPUT PARAMETER opMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
- DEFINE VARIABLE lFrei AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cParam AS CHARACTER EXTENT 10 NO-UNDO.
-
- oURI = OpenEdge.Net.URI:Parse(cTelefonIP).
- oURI:Port = iTelefonPort.
- oURI:Path = cTelefonPfad.
- oURI:AddQuery("cmd" , "GetDeviceState").
- oURI:AddQuery("device" , STRING(ipIntern) ).
- oURI:AddQuery("gsSession" , cSession).
-
- System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
- HttpClient = NEW System.Net.WebClient().
- cString = oURI:ToString().
- webResponse = HttpClient:DownloadString(oURI:ToString()).
- CREATE X-DOCUMENT hXmlDoc .
- CREATE X-NODEREF hXmlNode.
- hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
- hXmlDoc:SAVE('file', cDateiName).
-
- EMPTY TEMP-TABLE tElemente.
- iZeile = 0.
-
- hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
-
- IF hXmlNode:SUBTYPE = "element" THEN DO:
- DYNAMIC-FUNCTION('createElemente':U, hXmlNode ) NO-ERROR.
- END.
-
- RUN GetChildren ( hXmlNode ).
-
- lFrei = TRUE.
- cParam = ''.
- FIND FIRST tElemente NO-LOCK
- WHERE tElemente.cName = 'Calling' NO-ERROR.
-
- DO WHILE TRUE:
- IF NOT AVAILABLE tElemente THEN LEAVE.
- lFrei = FALSE.
-
- IF tElemente.cValue = STRING(ipIntern) THEN DO:
- cParam[01] = DYNAMIC-FUNCTION('getAttributeValue':U, tElemente.cAttribute, 'Name') NO-ERROR.
- FIND FIRST tElemente NO-LOCK
- WHERE tElemente.cName = 'Called' NO-ERROR.
- IF AVAILABLE tElemente THEN cParam[02] = tElemente.cValue.
- LEAVE.
- END.
- cParam[02] = tElemente.cValue.
- FIND FIRST tElemente NO-LOCK
- WHERE tElemente.cName = 'Called' NO-ERROR.
- IF AVAILABLE tElemente THEN cParam[01] = DYNAMIC-FUNCTION('getAttributeValue':U, tElemente.cAttribute, 'Name') NO-ERROR.
- LEAVE.
- END.
-
-
- IF NOT lFrei THEN opMessage = SUBSTITUTE('Leitung besetzt durch &1 mit Nummer &2', cParam[01], cParam[02]).
- /* OUTPUT TO 'C:\Temp\GetDeviceStatus.csv'. */
- /* FOR EACH tElemente: */
- /* EXPORT DELIMITER ';' tElemente. */
- /* END. */
- /* OUTPUT CLOSE. */
-
- FINALLY:
- IF VALID-HANDLE (hXmlDoc) THEN DELETE OBJECT hXmlDoc.
- IF VALID-HANDLE (hXmlNode) THEN DELETE OBJECT hXmlNode .
-
- IF VALID-OBJECT (HttpClient) THEN
- DO:
- HttpClient:Dispose().
- DELETE OBJECT HttpClient.
- END.
- END FINALLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-LOGON) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOGON Procedure
- PROCEDURE LOGON :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF OUTPUT PARAMETER opSession AS CHAR NO-UNDO.
- DEF OUTPUT PARAMETER opMessage AS CHAR NO-UNDO.
- DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlNode AS HANDLE NO-UNDO.
- oURI = OpenEdge.Net.URI:Parse(cTelefonIP).
- oURI:Port = iTelefonPort.
- oURI:Path = cTelefonPfad.
- oURI:AddQuery("cmd" , "Login").
- oURI:AddQuery("gsUser", STRING(ipIntern) ).
- oURI:AddQuery("gsPass", ipPassword).
-
- System.Net.ServicePointManager:CertificatePolicy = NEW AllowCertificatePolicy().
- HttpClient = NEW System.Net.WebClient().
- cString = oURI:ToString().
- webResponse = HttpClient:DownloadString(oURI:ToString()).
- CREATE X-DOCUMENT hXmlDoc .
- CREATE X-NODEREF hXmlNode.
- hXmlDoc:LOAD("LONGCHAR",webResponse,FALSE).
- hXmlDoc:SAVE('file', cDateiName).
-
- EMPTY TEMP-TABLE tElemente.
- iZeile = 0.
-
- hXmlDoc:GET-DOCUMENT-ELEMENT(hXmlNode).
-
- IF hXmlNode:SUBTYPE = "element" THEN DO:
- DYNAMIC-FUNCTION('createElemente':U, hXmlNode ) NO-ERROR.
- END.
-
- RUN GetChildren ( hXmlNode ).
-
- FOR EACH tElemente:
- CASE tElemente.cName:
- WHEN 'ID' THEN opSession = tElemente.cValue.
- WHEN 'ERROR' THEN opMessage = tElemente.cValue.
- WHEN 'REASON' THEN opMessage = tElemente.cValue.
- END CASE.
- END.
- /* OUTPUT TO 'C:\Temp\Logon.csv'. */
- /* FOR EACH tElemente: */
- /* EXPORT DELIMITER ';' tElemente. */
- /* END. */
- /* OUTPUT CLOSE. */
-
- FINALLY:
- IF VALID-HANDLE (hXmlDoc) THEN DELETE OBJECT hXmlDoc.
- IF VALID-HANDLE (hXmlNode) THEN DELETE OBJECT hXmlNode .
-
- IF VALID-OBJECT (HttpClient) THEN
- DO:
- HttpClient:Dispose().
- DELETE OBJECT HttpClient.
- END.
- END FINALLY.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* ************************ Function Implementations ***************** */
- &IF DEFINED(EXCLUDE-createElemente) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createElemente Procedure
- FUNCTION createElemente RETURNS LOGICAL
- ( iphXmlNode AS HANDLE ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hXmlAttr AS HANDLE NO-UNDO.
- DEFINE VARIABLE hXmlChild AS HANDLE NO-UNDO.
- DEFINE VARIABLE cNames AS CHAR NO-UNDO.
- DEFINE VARIABLE cAttribute AS CHAR NO-UNDO.
- DEFINE VARIABLE i1 AS INT NO-UNDO.
- DEFINE VARIABLE cValue AS CHAR NO-UNDO.
- iZeile = iZeile + 1.
- CREATE tElemente.
- ASSIGN tElemente.iZeile = iZeile
- tElemente.cName = iphXmlNode:NAME
- tELemente.cValue = iphXmlNode:NODE-VALUE.
- IF iphXmlNode:NUM-CHILDREN > 0 THEN DO:
- cValue = ''.
- CREATE X-NODEREF hXmlAttr.
- iphXmlNode:GET-CHILD(hXmlAttr, 1).
- IF hXmlAttr:NUM-CHILDREN = 0 THEN DO:
- cValue = hXmlAttr:NODE-VALUE.
- cValue = REPLACE(REPLACE(cValue, CHR(13), ''), CHR(10), '').
- ASSIGN tElemente.cValue = cValue.
- /* MESSAGE 'Null ' iphXmlNode:NAME '/' hXmlAttr:NAME '->' cValue '-' hXmlAttr:SUBTYPE '-' hXmlAttr:ATTRIBUTE-NAMES view-as alert-box. */
- END.
- DELETE OBJECT hXmlAttr.
- END.
- cNames = iphXmlNode:ATTRIBUTE-NAMES.
- IF cNames <> '' THEN DO:
- DO i1 = 1 TO NUM-ENTRIES(cNames).
- cValue = ''.
- cAttribute = ENTRY(i1, cNames, ',').
- cValue = iphXmlNode:GET-ATTRIBUTE(cAttribute).
- cValue = REPLACE(REPLACE(cValue, CHR(13), ''), CHR(10), '').
- tElemente.cAttribute = tElemente.cAttribute
- + (IF tElemente.cAttribute = '' THEN '' ELSE CHR(01))
- + cAttribute
- + CHR(02)
- + cValue.
- END.
- END.
- /* message 'createElemente ' tElemente.cName '-' tElemente.cValue '-' tElemente.cattribute view-as alert-box. */
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAttributeValue) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAttributeValue Procedure
- FUNCTION getAttributeValue RETURNS CHARACTER
- ( ipcListe AS CHAR, ipcAttrib AS CHAR ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cAttribute AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE i1 AS INT NO-UNDO.
-
- DO i1 = 1 TO NUM-ENTRIES(ipcListe, CHR(01)):
- cAttribute = ENTRY(i1, ipcListe, CHR(01)).
- cName = ENTRY(1, cAttribute, CHR(02)).
- cValue = ENTRY(2, cAttribute, CHR(02)).
- CASE cName:
- WHEN ipcAttrib THEN LEAVE.
- END CASE.
- END.
-
- RETURN cValue.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
|