' Version Date: 05.01.2021 Function SerialNumberMatches(ArticleNumber, SerialNumber) HasError = False SQL = "" SQL = SQL & "(C002 = '" & ArticleNumber & "')" ' Nach Mandant und Wirtschaftsjahr filtern SQL = SQL & SQLQuery_BasicWhere Set ResultMainArticle = CWLStart.CurrentCompany.SearchRecord(TABLE_21, SQL) If ResultMainArticle.RowCount > 0 Then SerialNumberPattern = ResultMainArticle.Value("C222") End If If DEBUG_ON = True Then AddDebugLine "Preparing Regex Check. " & vbNewline AddDebugLine "SerialNumber: " & SerialNumber AddDebugLine "SerialNumberPattern: " & SerialNumberPattern AddDebugLine "ArticleNumber: " & ArticleNumber ShowDebugBox "SerialNumberMatches" End If If Len(SerialNumberPattern) > 0 And Len(SerialNumber) > 0 Then Set SerialNumberRegex = New Regexp SerialNumberRegex.Pattern = SerialNumberPattern SerialNumberRegex.IgnoreCase = False SerialNumberRegex.Global = False Set RegexMatch = SerialNumberRegex.Execute(SerialNumber) If RegexMatch.Count > 0 Then Set FirstMatch = RegexMatch.Item(0) If DEBUG_ON = True Then AddDebugLine "Checked Serialnumber against Regex. (1/2)" & vbNewline AddDebugLine "FirstMatch.Length: " & FirstMatch.Length AddDebugLine "Len(SerialNumber): " & Len(SerialNumber) AddDebugLine "FirstMatch.FirstIndex: " & FirstMatch.FirstIndex ShowDebugBox "SerialNumberMatches" End If If FirstMatch.Length = Len(SerialNumber) And FirstMatch.FirstIndex = 0 Then HasError = False Else HasError = True End If If DEBUG_ON = True Then AddDebugLine "Checked Serialnumber against Regex. (2/2)" & vbNewline AddDebugLine "Result: " & SerialNumberRegex.Test(SerialNumber) AddDebugLine "Serialnumber: " & SerialNumber AddDebugLine "Regex: " & SerialNumberPattern ShowDebugBox "SerialNumberMatches" End If Else HasError = True End If Else HasError = True End If If HasError = True Then SerialNumberMatches = False Else SerialNumberMatches = True End If End Function