Kofax 转换 - 在验证时更新表单上的字段
Posted
技术标签:
【中文标题】Kofax 转换 - 在验证时更新表单上的字段【英文标题】:Kofax transformation - Update fields on form on validation 【发布时间】:2020-01-17 12:11:39 【问题描述】:我使用 Kofax Transform 从 OCR 中提取数据。 为此,我有一个带有多个输入的表单。基本上:姓名,姓氏,电子邮件。 我的问题涉及验证步骤。
我想更新特定事件的输入字段(选择电子邮件字段时单击输入并更新数据库中的值)。在这个数据库表上,我有 4 个字段:id、name、surname 和 email
这是我第一次接触 VBA,我必须创建一个脚本:
Private Sub FillFormOneEmailValidated(ByVal pXDoc As CASCADELib.CscXDocument)
'define required properties
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim sqlRequest As String
Dim email As String
Dim dbHostServer As String
Dim dbUsername As String
Dim dbPassword As String
Dim dbName As String
Dim dbConnString As String
'Prapare the db connection
Set rs = New ADODB.Recordset : Set cn = New ADODB.Connection
dbHostServer = "127.0.0.1"
dbUsername = "root"
dbPassword = "root"
dbName = "dbtest"
'build the connection string and open connection to database
dbConnString = "Provider=MSDASQL;Driver=mysql ODBC 5.3 Unicode Driver;
dbConnString = dbConnString & "Server=" & dbHostServer & ";"
dbConnString = dbConnString & "UID=" & dbUsername & ";"
dbConnString = dbConnString & "PWD=" & dbPassword & ";"
dbConnString = dbConnString & "database=" & dbName
'Create recordset and set conncetion
Set rs = New ADODB.Recordset : : Set cn = New ADODB.Connection
cn.ConnectionString = dbConnString
cn.Open
'build query
sqlRequest = "SELECT name, surname, email FROM users WHERE email = " & email
Set rs = cn.Execute(sqlRequest)
'iterate the values of the sql request
On Error Resume Next
rs.MoveFirst
pXDoc.Fields.ItemByName("name") = CStr(sqlRequest("name"))
rs.Close : Set rs = Nothing
cn.Close : Set cn = Nothing
End Sub
这是我的问题:
此代码似乎不正确。 如何在 KTA 转换中“观察”电子邮件输入(表单)上的事件?【问题讨论】:
【参考方案1】:-
避免像这样构建 sql 查询,因为它存在潜在的注入风险。研究使用参数。 (或者希望没有人的孩子被命名为 bobby drop table,或者受到恶意用户的攻击)
也不建议在脚本中使用密码。
我会研究数据库定位器的内置功能。您可以将数据库对话框添加到您的验证掩码中。
如果脚本是唯一可能的事情
您可以为此使用多个事件。正如您所说的一种方法是在确认该字段时 ValidationForm_AfterTableCellChanged。
您可以通过下拉选项在项目构建器/脚本编辑器中查看可用的事件 enter image description here
不确定 KTA,但在普通 KT 中,您可以通过在同步选项中启用脚本调试来调试和观察其他方法的执行情况。
-
脚本中的错误看起来很明显
sqlRequest 是您作为字符串变量的查询。您必须从记录集中获取行数据。 (我还没有检查脚本的其余部分)
【讨论】:
以上是关于Kofax 转换 - 在验证时更新表单上的字段的主要内容,如果未能解决你的问题,请参考以下文章