Construire un package personnalisé dans IntelliJ
Télécharger au format PDF
- Dernière mise à jour2024/09/11
Construire un package personnalisé dans IntelliJ
Utilisez Java IntelliJ pour créer et compiler un fichier JAR que vous pouvez charger en tant que package dans votre Control Room dans Automation 360.
Prérequis
Une connaissance de base de JDK et Java IntelliJ est nécessaire pour créer un package d'actions. Assurez-vous que vous avez installé les logiciels et fichiers suivants :
Procédure
- Téléchargez la dernière version du Automation Anywhere Package SDK. Pour la dernière version du Package SDK, voir Notes de publication du SDK du package précédent.
- Dézippez le contenu du package SDK dans n'importe quel répertoire local.
- Renommez le dossier de A360-package-sdk-<numéro de version> en MetricToImperial.
-
Dans IntelliJ IDEA, accédez à Fichier > Ouvrir et ouvrez le projet à C:\<SavedLocation>\MetricToImperial.
-
À partir de la racine de projet, ouvrez le fichier settings.gradle. Définissez
rootProject.name = 'MetricToImperial'
- Ouvrez le fichier package.template situé dans src > main > resources > package.template.
-
Remplacez le nom du package A360DemoPackage par MetricToImperial.
Cliquez sur le bouton Sync dans IntelliJ pour mettre à jour le projet. -
Mettez à jour le nom du package dans locales json : accédez à src > main > resources > locales > en_US.json.
- Ouvrez le fichier en_US.json et mettez à jour le champ required label de A360DemoPackage en MetricToImperial. Mettez à jour la description facultative.
- Supprimez toutes les autres lignes du fichier en_US.json.
- Supprimez les packages d'exemple, accédez à src > main > java > com.automationanyhwere.botcommand, puis supprimez les packages samples.commands et samples.
- Créez un nouveau package, cliquez avec le bouton droit sur le dossier java et sélectionnez Nouveau > Package. Saisissez metrictoimperial.commands comme nouveau nom du package.
-
Créez une nouvelle Classe Java, cliquez avec le bouton droit sur le package metrictoimperial.commands, puis sélectionnez Nouveau > Classe Java. Saisissez le nom de la nouvelle classe CMtoINCH:.
-
Ouvrez la classe CMtoINCH. Copiez et collez le code suivant au-dessus de l'instruction de définition de classe :
import static com.automationanywhere.commandsdk.model.DataType.NUMBER; //BotCommand makes a class eligible for being considered as an action. @BotCommand //CommandPks adds required information to be dispalable on GUI. @CommandPkg( //Unique name inside a package and label to display. name = "CMtoInch", label = "[[CMtoINCH.label]]", node_label = "[[CMtoINCH.node_label]]", description = "[[CMtoINCH.description]]", icon = "ruler_icon.svg", //Return type information. return_type ensures only the right kind of variable is provided on the UI. return_label = "[[CMtoINCH.return_label]]", return_type = NUMBER, return_required = true)
- Dans la classe CMtoINCH, copiez et collez le code suivant :
//Identify the entry point for the action. Returns a Value<String> because the return type is String. @Execute public NumberValue action( //Idx 1 would be displayed first, with a text box for entering the value. @Idx(index = "1", type = AttributeType.NUMBER) //UI labels. @Pkg(label = "[[CMtoINCH.CMInput.label]]") //Ensure that a validation error is thrown when the value is null. @NotEmpty Double CMInput) { //Internal validation, to disallow empty inputs. No null check needed as we have NotEmpty on CMInput. if ("".equals(CMInput.toString().trim())) throw new BotCommandException("Input of CM is required"); Number result; try { //Conversion logic result = CMInput * 0.393701; } catch (Exception e) { //Throw custom error message throw new BotCommandException("Unable to convert " + CMInput.toString() + "cm to inches"); } //Return NumberValue. return new NumberValue(result); }
Pour importer les namespaces, cliquez sur les notations rouges en surbrillance, puis appuyez sur les touches ALT+ENTRÉE et sélectionnez Importer pour importer automatiquement les namespaces en fonction des annotations et des datatypes.
-
Ouvrez la classe CMtoINCH. Copiez et collez le code suivant au-dessus de l'instruction de définition de classe :
-
Pour configurer le fichier en_US.json, accédez à src > main > ressources > locales > en_US.json et ajoutez les champs suivants après les valeurs d'étiquette et de description :
"CMtoINCH.label" : "cm to inches", "CMtoINCH.node_label": "cm to inches", "CMtoINCH.description" : "Convert centimeters to inches", "CMtoINCH.return_label" : "Assign the Output in Inches to a Number Variable", "CMtoINCH.CMInput.label" : "Centimeters to Convert to Inches"
-
Mettez à jour l'annotation CommandPkg. Téléchargez les icônes depuis Github.
- Téléchargez ruler_icon.svg à partir de github et cliquez avec le bouton droit sur l'image et enregistrez l'image sous ruler_icon.svg.
- Téléchargez iconwhite.svg à partir de github, cliquez avec le bouton droit sur l'image et enregistrez l'image iconwhite.svg.
-
Copiez les deux fichiers dans le dossier src > main > resources > icons.
-
Ouvrez build.gradle dans la racine du projet. Après la section des dépendances, mais avant la dernière balise de fermeture, copiez et collez le code suivant :
test { testLogging { exceptionFormat = 'full' } useTestNG() {} afterSuite { desc, result -> if (!desc.parent) println("${result.resultType} " + "(${result.testCount} tests, " + "${result.successfulTestCount} successes, " + "${result.failedTestCount} failures, " + "${result.skippedTestCount} skipped)") } maxHeapSize "3g" }
-
Mettez à jour le numéro de version et supprimez les dépendances qui ne sont pas obligatoires à votre projet de build.gradle.
Remarque : Les versions de packages personnalisés doivent respecter la spécification Gestion des versions sémantique. Une version valide se compose de trois chiffres (
MAJOR.MINOR.PATCH
) séparés par des points (.
). Vous pouvez, si vous le souhaitez, inclure un identifiant de pré-version après la versionPATCH
, en les séparant par un trait d'union (-
). Les traits de soulignement (_
) ne sont pas autorisés.Exemples de versions de packages valides :
-
2.0.2-20210701-202149
-
2.0.2
-
2.0.2-test-20210701-202149
-
-
Créez un nouveau répertoire, cliquez avec le bouton droit sur src et sélectionnez Nouveau > Répertoire.
- Dans le champ Nom, saisissez test\java ou sélectionnez la suggestion test\java dans Gradle Source Sets.
- Créez un nouveau package, cliquez avec le bouton droit sur le répertoire java et sélectionnez Nouveau > Package.
- Saisissez le nom du package nouvellement créé : metrictoimperial.commands.
-
Créez une nouvelle classe Java, cliquez avec le bouton droit et sélectionnez Nouveau > Classe Java. Saisissez le nom de la nouvelle classe CMtoINCHTest.
Dans la classe CMtoINCHTest, copiez et collez le code suivant :
@Test public void testCMtoINCH(){ Double validInput = 10.00; Double expectedOutput = 0.393701 * validInput; CMtoINCH testCM = new CMtoINCH(); Value<Double> result = testCM.action(validInput); Assert.assertEquals(result.get(), expectedOutput); }
- Enregistrer le projet Fichier > Enregistrer tout.
-
Construisez le package.
Vous pouvez utiliser l'interface utilisateur IntelliJ ou la ligne de commande. Si vous utilisez la ligne de commande :
- Ouvrez une fenêtre de terminal et accédez au répertoire MetricToImperial
- Pour créer le projet, saisissez la commande suivante : gradlew.bat clean build shadowJar
Un message CONSTRUIT AVEC SUCCÈS s'affiche.Une création peut parfois échouer parce que les fichiers existants n'ont pas pu être supprimés automatiquement et un message système s'affiche indiquant que l'exécution a échoué pour la tâche : nettoyer. Dans ce cas, fermez les fenêtres de l'explorateur et exécutez à nouveau la construction.