Установите значение переменной в Kofax Total Agility от JAVA - PullRequest
0 голосов
/ 24 января 2020

I Kofax Total Agility Я создал скрипт C# basi c, который вызывает внешнее приложение java, создавая процесс и передавая строковый параметр.

При возбуждении этой указанной c части процесса я хочу установить значение для выходной переменной, например: 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();
            }
  }
 }
}

1 Ответ

0 голосов
/ 24 января 2020

Я думаю, что узнал ... Я собираюсь протестировать следующий код. Я создал шаблон для форматирования ответа и использую выходные переменные для определения значений ответа.

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];
          }
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...