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 转换 - 在验证时更新表单上的字段的主要内容,如果未能解决你的问题,请参考以下文章

html 关闭时清除模态上的表单字段中的数据并清除验证消息

在内容页面上验证母版页登录表单时,内容页面字段也得到验证

使用密码字段验证多个表单

如何使用 JavaScript 验证此表单上的邮政编码?

Laravel 在商店和更新上的表单请求验证使用相同的验证

如何使用流转换和块重置表单中的字段