LotusScript で UNID を扱う場合、プロパティで見るコロン (:) やハイフン (-) の入った形式ではなくて、32文字のつながった文字列である必要があります。
クラスプロパティからとる場合は問題ないでしょうが、文字列を整形して作った UNID の場合チェックしておいた方が無難です。ということで、そのためのファンクションを書いてみました。
引数として strUnid (String 型) を受け取り、その文字列の Validity をチェックします。True が返れば Valid、False が返れば Invalid ということになります。
Boolean 型は Notes 6 からの型なのでノーツ R5 では上のが使えません。なので、下の IsValidUNIDR5 を使います。Integer 型の戻り値なので 1 が Valid で 0 が Invalid です。
クラスプロパティからとる場合は問題ないでしょうが、文字列を整形して作った UNID の場合チェックしておいた方が無難です。ということで、そのためのファンクションを書いてみました。
引数として strUnid (String 型) を受け取り、その文字列の Validity をチェックします。True が返れば Valid、False が返れば Invalid ということになります。
Function IsValidUNID(strUnid As String) As Boolean
If Len(strUnid) <> 32 Then
IsValidUNID = False
Elseif strUnid Like "*[!0-9a-fA-F]*" Then
IsValidUNID = False
Else
IsValidUNID = True
End If
End Function
Boolean 型は Notes 6 からの型なのでノーツ R5 では上のが使えません。なので、下の IsValidUNIDR5 を使います。Integer 型の戻り値なので 1 が Valid で 0 が Invalid です。
Function IsValidUNIDR5(strUnid As String) As Integer
If Len(strUnid) <> 32 Then
IsValidUNIDR5 = 0
Elseif strUnid Like "*[!0-9a-fA-F]*" Then
IsValidUNIDR5 = 0
Else
IsValidUNIDR5 = 1
End If
End Function