executer du code java depuis un formulaire

1
0
-1

Bonjour,

Je débute sous bonita et je souhaiterai intégrer un code java qui s'exécute sur validation d'un formulaire.

J'ai essayé un connecteur sans succès. Pourriez vous mindiquer comme ce serait possible ?

Merci d'avance.

Comments

Submitted by delphine.coille on Thu, 01/23/2020 - 16:24

Bonjour,

Pour bien comprendre le cas et mieux vous répondre, j'aurais besoin de savoir ce que doit faire ce code Java?

En attendant et si cela peut vous aider, voici quelques indications.

De façon générale, lors de la soumission du formulaire, vous renvoyez de la data au sein d'une variable, qui peut prendre différentes formes : JSON, API, Business Data ou encore expression Javascript.

D'autre part, à la fin de l'éxécution d'une tâche (donc après soumission du formulaire), on définit dans la section "Operations" la mise à jour des données. Parmi les types d'opérations, en retrouve concernant les objets Java (https://documentation.bonitasoft.com/bonita/7.10/operations#toc1)

Submitted by dylan.nakong-ng... on Thu, 01/30/2020 - 14:46

Bonjour, et merci pour votre réponse

Le but de la fonction est de lancer un appel système qui lui va exécuter du code en python. Cette fonction en java ne prend pas d'argument ( je vous ai joint le code ci-après) et j'aimerai qu'elle se lance une fois cliqué sur le button submit.

import java.util.*;
import java.io.*;
import org.yaml.snakeyaml.*;
import java.net.URL;
import java.net.URLClassLoader;

public class test {
public static void main(String[] args){

Map> data = new HashMap<>();
Map name = new HashMap<>();
name.put("first","Jean");
name.put("last", "Nassar");
name.put("abbrev","jnassar");
data.put("name", name);
Map contact = new HashMap<>();
contact.put("adress","super");
contact.put("tel","01112323");
data.put("contact",contact);

Yaml yaml = new Yaml();
String output = yaml.dump(data);
System.out.println(output);
FileWriter writer = null;
try {
writer = new FileWriter("test.yaml");
}
catch(IOException e){}
yaml.dump(data, writer);

String s = null;
try{
Process p = Runtime.getRuntime().exec("python generate.py -l");
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));

BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));

// read the output from the command
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}

// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}

System.exit(0);

}
catch(Exception e){System.out.println(e);}
}
}

1 answer

1
0
-1
Notifications