【问题标题】:Set a variable value in Kofax Total Agility from JAVA在 JAVA 的 Kofax Total Agility 中设置变量值
【发布时间】:2020-01-24 21:43:18
【问题描述】:

I Kofax Total Agility 我创建了一个 C# 基本脚本,该脚本通过创建一个进程并传递一个字符串参数来调用外部 Java 应用程序。

当激发过程的这个特定部分时,我想为输出变量设置一个值,例如:sp.InputVariables["[Document.Status]"]。

如何根据流程设置条件值或使用 Java 发送回值?

这是我的 C# 代码:

using System;
using System.Diagnostics;
using System.IO;

using Agility.Server.Scripting.ScriptAssembly;

namespace MyNamespace
{

 public class Class1
 {
  public Class1() 
  {
  }

  [StartMethodAttribute()] 
  public void Method1(ScriptParameters sp) 
  {
string parameter =sp.InputVariables["[Facture.InstanceID]"].ToString();
Console.WriteLine("Parameter " + parameter);
            using (Process process = new Process())
            {
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.FileName = "java";
                process.StartInfo.Arguments = @"-jar C:\\jars\\application.jar " + parameter;
                process.Start();
                StreamReader reader = process.StandardOutput;
                string output = reader.ReadToEnd();
                process.WaitForExit();
            }
  }
 }
}

【问题讨论】:

  • 这是一种非常规的做事方式,您可能需要深入研究 Windows 消息,更改您的 Java 程序以使用它,以及您的 C# 程序来检索消息...这是一个很多工作,虽然你可以用你的 Java 程序写入一个文本文件,然后在删除文件之前用 C# 读取它。此外,尽管提到 Kofax 软件让我很怀念,但我几乎看不出 Total Agility 与您的问题有什么关系 :)
  • 当然是非常规的,但我有技术和技术限制。制作使用不同语言的通信应用程序总是很痛苦。我想我找到了创建输出变量的解决方案......我要试试这个。谢谢

标签: java c# kofax


【解决方案1】:

我想我发现了……我要测试下面的代码。我创建了一个用于格式化响应的模式,并使用输出变量来定义响应的值。

using System;
using System.Diagnostics;
using System.IO;

using Agility.Server.Scripting.ScriptAssembly;

namespace MyNamespace
{

    public class Class1
    {
      public Class1() 
      {
      }

      [StartMethodAttribute()] 
      public void Method1(ScriptParameters sp) 
      {
          string pattern = @"\|";
          string parameter =sp.InputVariables["[Facture.InstanceID]"].ToString();
          using (Process process = new Process())
          {
              process.StartInfo.UseShellExecute = false;
              process.StartInfo.RedirectStandardOutput = true;
              process.StartInfo.FileName = "java";
              process.StartInfo.Arguments = @"-jar C:\\jars\\application.jar " + parameter;
              process.Start();
              StreamReader reader = process.StandardOutput;
              string output = reader.ReadToEnd();
              process.WaitForExit();

              string[] results = Regex.Split(output, pattern, RegexOptions.IgnoreCase);

              sp.OutputVariables["responseCode"] = results[0];
              sp.OutputVariables["statusCode"] = results[1];
          }
      }
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2019-01-17
    • 2019-01-22
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多