Erstellen eines benutzerdefinierten Pakets in IntelliJ
Als PDF herunterladen
- Zuletzt aktualisiert2024/09/11
Erstellen eines benutzerdefinierten Pakets in IntelliJ
Erstellen und kompilieren Sie mit Java IntelliJ eine JAR-Datei, die Sie als Paket in Ihren Control Room in Automation 360 hochladen können.
Vorbereitungen
Ein grundlegendes Verständnis von JDK und Java IntelliJ ist erforderlich, um ein Aktionspaket zu erstellen. Vergewissern Sie sich, dass Sie die folgende Software und die folgenden Dateien installiert haben:
Prozedur
- Laden Sie die neueste Version des Automation Anywhere Paket-SDK herunter. Die neueste Version des Paket-SDK finden Sie unter Vorheriges Paket-SDK – Versionshinweise.
- Entpacken Sie den Inhalt des SDK-Pakets in ein beliebiges lokales Verzeichnis.
- Benennen Sie den Ordner von A360-package-sdk-<Versionsnummer> in MetricToImperial um.
-
Navigieren Sie in IntelliJ IDEA zu Datei > Öffnen und öffnen Sie das Projekt unter C:\<Speicherort>\MetricToImperial.
-
Öffnen Sie im Stammverzeichnis des Projekts die Datei settings.gradle. Legen Sie den
rootProject.name = 'MetricToImperial'
fest.
- Öffnen Sie die Datei package.template, die sich unter src > main > resources > package.template befindet.
-
Ändern Sie den Paketnamen von A360DemoPackage in MetricToImperial.
Klicken Sie in IntelliJ auf die Schaltfläche Sync, um das Projekt zu aktualisieren. -
Aktualisieren Sie den Paketnamen in locales json: Navigieren Sie zu src > main > resources > locales > en_US.json.
- Öffnen Sie die Datei en_US.json und aktualisieren Sie das Feld required label von A360DemoPackage auf MetricToImperial. Aktualisieren Sie unter description die optionale Beschreibung.
- Löschen Sie alle anderen in der Datei en_US.json verbleibenden Zeilen.
- Löschen Sie die Beispielpakete, navigieren Sie zu src > main > java > com.automationanyhwere.botcommand und löschen Sie die Pakete samples.commands und samples.
- Erstellen Sie ein neues Paket, klicken Sie mit der rechten Maustaste auf den Ordner „java“ und wählen Sie Neu > Paket aus. Geben Sie metrictoimperial.commands als neuen Paketnamen ein.
-
Erstellen Sie eine neue Java-Klasse, klicken Sie mit der rechten Maustaste auf das Paket metrictoimperial.commands und wählen Sie Neu > Java-Klasse aus. Geben Sie CMtoINCH: als Namen für die neue Klasse ein.
-
Öffnen Sie die Klasse CMtoINCH. Kopieren Sie den folgenden Code und fügen Sie ihn oberhalb der Klassendefinitionsanweisung ein:
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)
- Kopieren Sie innerhalb der Klasse CMtoINCH den folgenden Code und fügen Sie ihn ein:
//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); }
Wenn Sie die namespaces importieren möchten, klicken Sie auf die hervorgehobenen roten Notationen, drücken Sie ALT+ENTER und wählen Sie Importieren aus. Dadurch werden auf Grundlage der Anmerkungen und datatypes automatisch namespaces importiert.
-
Öffnen Sie die Klasse CMtoINCH. Kopieren Sie den folgenden Code und fügen Sie ihn oberhalb der Klassendefinitionsanweisung ein:
-
Konfigurieren Sie die Datei en_US.json, öffnen Sie src > main > resources > locales > en_US.json und fügen Sie nach den Werten für die Bezeichnung und Beschreibung die folgenden Felder hinzu:
"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"
-
Aktualisieren Sie die Anmerkung CommandPkg. Laden Sie die Symbole von Github herunter.
- Laden Sie ruler_icon.svg von github herunter, klicken Sie mit der rechten Maustaste auf das Bild, und speichern Sie das Bild als ruler_icon.svg.
- Laden Sie iconwhite.svg aus github herunter, klicken Sie mit der rechten Maustaste auf das Bild und speichern Sie das Bild als iconwhite.svg.
-
Kopieren Sie beide Dateien in den Ordner src > main > resources > icons.
-
Öffnen Sie im Stammverzeichnis des Projekts build.gradle. Kopieren Sie nach dem Abschnitt „dependencies“, aber vor dem letzten schließenden Tag, den folgenden Code und fügen Sie ihn ein:
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" }
-
Aktualisieren Sie die Versionsnummer und entfernen Sie Abhängigkeiten, die nicht für Ihr Projekt benötigt werden, aus build.gradle.
Anmerkung: Nutzerdefinierte Paketversionen müssen der Semantic Versioning-Spezifikation entsprechen. Eine gültige Version besteht aus drei Zahlen (
MAJOR.MINOR.PATCH
), durch Punkte getrennt (.
). Sie können optional eine Vorabversionskennung nach derPATCH
-Version, getrennt durch einen Bindestrich (-
) angeben. Unterstriche (_
) sind nicht zulässig.Beispiele für gültige Paketversionen:
-
2.0.2-20210701-202149
-
2.0.2
-
2.0.2-test-20210701-202149
-
-
Erstellen Sie ein neues Verzeichnis, klicken Sie mit der rechten Maustaste auf src und wählen Sie Neu > Verzeichnis aus.
- Geben Sie in das Feld Name test\java ein oder wählen Sie in den Gradle-Quellensets den Vorschlag test\java aus.
- Erstellen Sie ein neues Paket, klicken Sie mit der rechten Maustaste auf das Verzeichnis java und wählen Sie Neu > Paket aus.
- Geben Sie den Namen für das neu erstellte Paket ein: metrictoimperial.commands.
-
Erstellen Sie eine neue Java-Klasse, klicken Sie mit der rechten Maustaste, und wählen Sie Neu > Java-Klasse aus. Geben Sie CMtoINCHTest als Namen für die neue Klasse ein.
Kopieren Sie innerhalb der Klasse CMtoINCHTest den folgenden Code und fügen Sie ihn ein:
@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); }
- Speichern Sie das Projekt mit Datei > Alles speichern.
-
Erstellen Sie das Paket.
Sie können die IntelliJ-Nutzeroberfläche oder die Befehlszeile verwenden. Wenn Sie die Befehlszeile verwenden:
- Öffnen Sie ein Terminalfenster und navigieren Sie zu dem Verzeichnis MetricToImperial.
- Um das Projekt zu erstellen, geben Sie den folgenden Befehl ein: gradlew.bat clean build shadowJar
Die Meldung ERSTELLUNG ERFOLGREICH wird angezeigt.Manchmal kann die Erstellung fehlschlagen, weil vorhandene Dateien nicht automatisch gelöscht werden konnten und in einer Systemmeldung angegeben wird, dass die Ausführung der Aufgabe Bereinigen fehlgeschlagen ist. Schließen Sie in diesem Fall die Explorer-Fenster und führen Sie die Erstellung erneut aus.