Kofax-Parse One OCR Result into Multiple Fields
Applies to
Kofax Capture 10.x and 11.0
Summary
How to use a Validation Script to parse one OCR result into multiple fields?
Answer/Solution
Below is an example of a Validation Script that parses one OCR field result into multiple Index Fields. This code needs to be placed in the script's KfxDocPreProcess function after the On Error GoTo statement.
Four variables have been created, whose names will have to be changed to match your own field names.
They are:
EnteredValue — This value holds the value that was OCR'ed as one zone with all names.
Kfx1 — Used for the First Name field.
Kfx2 — Used for the Middle Name field, if one existed.
Kfx3 — Used for the Last Name field.
Below are the assumptions the code makes:
If there are no spaces, place the whole value in the first name field, (Kfx1).
If there is 1 space, then there are 2 names place the value before the space in the first name field (Kfx1) and place the value after the space in the last name Field, (Kfx3).
If there are 2 spaces, then there are 3 names. Place each name in their respective fields: first (Kfx1), middle (Kfx2) and last name Field, (Kfx3).
If there are more that 3 spaces, there are more than 3 names. Set the document to error.
Remember to replace these variables with your field names, remembering that the Validation Script prepends Kfx to each field name.
****************************************************************************
Dim strTemp As String
Dim nStartPos As Integer
Dim nSpcPos as Integer
Dim nSpcCnt as Integer
Dim x As Integer
Dim nStrLen As Integer
EnteredValue = Trim(EnteredValue)
If ( Len(EnteredValue) > MaxLength ) Then GoTo Failure
nSpcPos = 1
nStrLen = Len(EnteredValue)
nSpcPos = InStr(nSpcPos, EnteredValue, Chr(32))
Do While nSpcPos <> 0
If nSpcPos <= nStrLen Then
nSpcCnt = nSpcCnt + 1
End If
nSpcPos = InStr(nSpcPos +1, EnteredValue, Chr(32))
Loop
If nSpcCnt > 2 Then GoTo Failure
Select Case nSpcCnt
Case 0
Kfx1 = EnteredValue
Case 1
nSpcPos = 1
nStartPos = 1
nSpcPos = InStr(nStartPos, EnteredValue, Chr(32))
strTemp = Mid(EnteredValue, nStartPos, nSpcPos-1)
Kfx1 = strTemp
nStartPos = nSpcPos + 1
strTemp = Mid(EnteredValue, nStartPos, nStrLen - nSpcPos)
Kfx3 = strTemp
Case 2
nSpcPos = 1
nStartPos = 1
nSpcPos = InStr(nStartPos, EnteredValue, Chr(32))
For x = 1 to 2
strTemp = Mid(EnteredValue, nStartPos, nSpcPos - nStartPos)
If x = 1 Then
Kfx1 = strTemp
ElseIf x = 2 Then
Kfx2 = strTemp
End If
nStartPos = nSpcPos + 1
nSpcPos = InStr(nStartPos, EnteredValue, Chr(32))
Next x
strTemp = Mid(EnteredValue, nStartPos, nSpcPos - nStartPos)
Kfx3 = strTemp
End Select
CASO Knowledge Base