Was this page helpful?

Attribut-Inhalte vom Typ TEXT analysieren

    Inhaltsverzeichnis
    keine Gliederung

    Wenn die Inhalte von TEXT-Attributen per VBScript analysiert werden sollen, kommt es aufgrund von ím Text enthaltenen CRLF-Zeichen ggfs. zu Problemen.

    Beispiel:

    Es werden EventLogs in die entsprechenden Klassen des OM eingelesen. Die Objekte der Klasse EventLogEntry besitzen ein Attribut 'Messages', das vom Typ TEXT konfiguriert ist.
    Im 'Messages'-Attribut stehen die Texte des jeweiligen EventLog-Eintrags.
    Diese Texte enthalten CRLF- und TAB-Steuerzeichen, die ggfs. die Analyse des Attribut-Inhalts mit vbscript erschweren, da die CRLF-Zeichen mit in der HDB gespeichert werden und nicht maskiert/ersetzt werden.

    Um den Attribut-Inhalt per VBScript analysieren zu können, müssen die CRLF und ggfs. auch die TAP-Zeichen ersetzt werden, befor die VBScript-Analyse beginnt.

    Lösungsmöglichkeit (z. B. für Update-Scripts oder VBScript-Register):
    -) TEXT-Attributwert per SQL abfragen
    -) CRLF-Zeichen mittels SQL-Replace ersetzen (SQL-Replace kann nicht auf ntext-Felder angewendet werden, daher vorherige Konvertierung in nvarchar(max) notwendig)
    -) nach CRLF-Ersetzung kann Text-Attributwert in VBScript verarbeitet werden und z. B. die TAB-Zeichen mit VBScript-Methoden ersetzt werden.

    set oSQL = oHDB.GetSQLDB()
    sSQL = ""
    sSQL = sSQL & "DECLARE @NewLine char(2)" & vbcrlf
    sSQL = sSQL & "SET @NewLine = char(13) + char(10)" & vbcrlf
    sSQL = sSQL & "SELECT cast(replace(cast(Value AS nvarchar(max)), @NewLine, '|') AS ntext) "
    sSQL = sSQL & "FROM tblObjectText "
    sSQL = sSQL & "WHERE (Attribute_id = dbo.fn_GetHDBAttributeId('EventlogEntry', 'Messages')) "
    sSQL = sSQL & "AND object_id={ObjectId}"
     
    sMess = oSQL.SQLExecuteScalar(sSQL)
    sMess = replace(sMess, Chr(9), "")

    Was this page helpful?
    Tags (Schlagworte bearbeiten)
    • No tags
    Um einen Kommentar zu schreiben, müssen Sie sich anmelden.
    Unterstützt von MindTouch Core