【发布时间】: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 与您的问题有什么关系 :)
-
当然是非常规的,但我有技术和技术限制。制作使用不同语言的通信应用程序总是很痛苦。我想我找到了创建输出变量的解决方案......我要试试这个。谢谢