Creare e creare un pacchetto personalizzato utilizzando IntelliJ
Utilizza IntelliJ per compilare un file JAR che puoi caricare come pacchetto Control Room in in Automation 360.
Prerequisiti
È necessaria una conoscenza di base di JDK e Java IntelliJ per creare un pacchetto di operazioni. Sono necessari i seguenti software e file:
- Download del kit di sviluppo Java SE 11
- Edizione di IntelliJ per Java IDE Community
- Automation Anywhere A2019 SDK. Scarica ed estrai i file zip per il rilascio richiesto: Note di rilascio del kit di sviluppo pacchetti Enterprise A2019
Procedura
-
Decomprimere i contenuti del pacchetto SDK nella directory IdeaProjects e rinominare la cartella da A2019.10-package-sdk-1.0.0 a MetricToImperial.
Per impostazione predefinita, il pacchetto si trova in: C:\\Utenti\\<User>\\ProgettiIdea.
- In IntelliJ IDEA, andare su File > Apri e aprire il progetto in <User>C:\\Users\\\\IdeaProjects\\MetricToImperial.
-
Aprire il file settings.gradle nella root del progetto. Impostare il
rootProject.name = 'MetricToImperial'
- Aggiornare il file package.template che si trova in src > main > resources > package.template.
- Modifica il nome del pacchetto da A2019DemoPackage a MetricToImperial.
-
Aggiorna il nome del pacchetto nelle impostazioni internazionali json: vai a src > main > resources > locals > en_US.json.
-
Aprire il file en_US.json e aggiornare il campo etichetta richiesto. Aggiornare la descrizione facoltativa.
Originale it_US.json Aggiornato it_US.json { "label" : "A2019DemoPackage", "description" : "Provides actions for A2019DemoPackage operations." }
{ "label" : "Metric To Imperial", "description" : "Converts lengths and distances from Metric format to Imperial format" }
- Eliminare tutte le altre righe rimanenti nel file en_US.json.
-
Aprire il file en_US.json e aggiornare il campo etichetta richiesto. Aggiornare la descrizione facoltativa.
-
Creare una nuova classe Java, fare clic con il pulsante destro del mouse sul pacchetto metrictoimperial.commands e selezionare New > Java Class. Inserire il nome della nuova classe CMtoINCH:
-
Aprire la classe CMtoINCH. Copiare e incollare il codice seguente sopra l'istruzione di definizione della 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 = "CM to Inch", 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)
- All'interno della classe CMtoINCH, copiare e incollare il seguente codice:
//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);
Il codice importa automaticamente gli spazi dei nomi in base alle annotazioni e ai tipi di dati.Per importare manualmente gli spazi dei nomi, selezionare una riga evidenziata e premere contemporaneamente questi tasti alt e Invio.
-
Aprire la classe CMtoINCH. Copiare e incollare il codice seguente sopra l'istruzione di definizione della classe:
-
Vai a src > main > resources > localis > en_US.json e aggiungi i seguenti campi dopo i valori di etichetta e descrizione:
"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"
- Vai a src > main > java > com.automationanyhwere.botcommand ed elimina il pacchetto samples.commands. Inoltre, eliminare il pacchetto di campioni.
-
Aggiornare l'annotazione CommandPkg.
- Scaricare ruler_icon.svg da github e fare clic con il pulsante destro del mouse sull'immagine e salvarla come ruler_icon.svg.
- Scarica iconwhite.svg da github, fai clic con il pulsante destro del mouse sull'immagine e salva l'immagine iconwhite.svg.
- Copiare entrambi i file nella cartella src > > mainresources > icons.
-
Aprire il file build.gradle nella root del progetto. Dopo la sezione delle dipendenze, ma prima dell'ultimo tag di chiusura, copia e incolla il codice seguente:
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" }
-
Nell'explorer del progetto, fare clic con il pulsante destro del mouse su src e selezionare > NewDirectory.
- Nel campo Nome, immettere test\\java o selezionare il suggerimento test\\java dai set di origini Gradle.
- Fare clic con il pulsante destro del mouse sulla directory java e selezionare Nuovo > pacchetto.
- Immettere il nome del pacchetto appena creato: com.automationanywhere.botcommand.metrictoimperial.commands.
- Fare clic con il pulsante destro del mouse sul nuovo pacchetto e selezionare Nuova > classe Java. Immettere il nome per la nuova classe CMtoINCHTest.
-
All'interno della classe CMtoINCHTest, copiare e incollare il codice seguente:
@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); }
- Salva il progetto Salva > tutto.
-
Crea il pacchetto.
Puoi utilizzare l'interfaccia utente IntelliJ o la riga di comando. Se si utilizza la riga di comando:
- Aprire una finestra del terminale e accedere alla directory MetricToImperial e immettere: cd "%USERPROFILE%\\IdeaProjects\\MetricToImperial"
- Per compilare il progetto, immettere il comando seguente: gradlew.bat clean build shadowJar
Viene visualizzato il messaggio BUILD SUCCESSFUL.A volte una compilazione potrebbe non riuscire perché i file esistenti non possono essere eliminati automaticamente e viene visualizzato un messaggio di sistema che indica che l'esecuzione non è riuscita per l'attività: clean. In questo caso, chiudere le finestre di Explorer ed eseguire nuovamente la compilazione.