Création d'une nouvelle classe Java

Utilisez IntelliJ pour créer une nouvelle classe java et un nouveau répertoire, et configurer d'autres fichiers de construction.

Prérequis

Effectuez les étapes dans les tâches suivantes : Configuration des fichiers de construction.

Procédure

  1. Créez une nouvelle classe Java, cliquez avec le bouton droit sur le package com.automationanywhere.botcommand et sélectionnez Nouvelle > classe Java. Saisissez le nom de la nouvelle classe GetFileDetails.
    1. Copiez @BotCommand à partir de Concatenate. java et collez-la dans le nouveau fichier GetFileDetails.java.
      import static com.automationanywhere.commandsdk.model.DataType.STRING;
      //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 = "concatenate", label = "[[Concatenate.label]]", 
      		node_label = "[[Concatenate.node_label]]", description = "[[Concatenate.description]]", icon = "pkg.svg", 
      		
      		//Return type information. return_type ensures only the right kind of variable is provided on the UI. 
      		return_label = "[[Concatenate.return_label]]", return_type = STRING, return_required = true)
      public class Concatenate {
      	
      	//Messages read from full qualified property file name and provide i18n capability.
      	private static final Messages MESSAGES = MessagesFactory
      			.getMessages("com.automationanywhere.botcommand.samples.messages");
      
      	//Identify the entry point for the action. Returns a Value<String> because the return type is String. 
      	@Execute
      	public Value<String> action(
      			//Idx 1 would be displayed first, with a text box for entering the value.
      			@Idx(index = "1", type = TEXT) 
      			//UI labels.
      			@Pkg(label = "[[Concatenate.firstString.label]]") 
      			//Ensure that a validation error is thrown when the value is null.
      			@NotEmpty 
      			String firstString,
      			
      			@Idx(index = "2", type = TEXT) 
      			@Pkg(label = "[[Concatenate.secondString.label]]") 
      			@NotEmpty 
      			String secondString) {
      		
      		//Internal validation, to disallow empty strings. No null check needed as we have NotEmpty on firstString.
      		if ("".equals(firstString.trim()))
      			throw new BotCommandException(MESSAGES.getString("emptyInputString", "firstString"));
      
      		if ("".equals(secondString.trim()))
      			throw new BotCommandException(MESSAGES.getString("emptyInputString", "secondString"));
      
      		//Business logic
      		String result = firstString + secondString;
      		
      		//Return StringValue.
      		return new StringValue(result);
    2. Mettez à jour les paramètres @CommandPkg tels que : name, label, node_label, description et icon.
    3. Mettez à jour return_label et return_type.
    4. Ajoutez l'action NumberValue, la validation interne, la logique métier et la valeur de retour.
    5. Supprimez le fichier Concatenated. java et le répertoire samples.commands. basic et le répertoire sample.commands.
  2. Configurez le fichier en_US.json : allez dans src > main > resources > locales > en_US.json et ajoutez les champs suivants après les valeurs d'étiquette et de description, puis supprimez les autres paramètres du fichier.
    {
    	"label": "File Details",
    	"description": "Returns basic file details",
    	"GetFileDetails.label": "File Size",
    	"GetFileDetails.description": "Return the size of the selected file in bytes",
    	"GetFileDetails.node_label": "File Size in Bytes",
    	"GetFileDetails.return_label": "File Size",
    	"GetFileDetails.return_label_description": "Return in bytes",
    	"GetFileDetails.filePath.label": "Select a File for analysis"
    }
  3. Supprimez les packages : allez dans src > main > java > com.automationanyhwere.botcommand, puis supprimez les packages samples.commands et samples.
  4. Importez les nouvelles icônes de Github et mettez à jour l'annotation CommandPkg.
    1. Téléchargez toutes les icônes que vous souhaitez utiliser dans votre flux de robot et enregistrez-les au format .svg.
    2. Copiez vos fichiers image dans le dossier src > main > resources > icons.
  5. Créez un nouveau répertoire : allez dans src, cliquez avec le bouton droit de la souris et sélectionnez Nouveau > Répertoire.
    1. Dans le champ Nom, saisissez test\java. Vous pouvez également sélectionner test\java et saisir le nom TestFileSize.
    2. Configurez les annotations de test dans la classe java TestFileSize.
    3. Créez une classe publique @test, créez un objet GetFileDetails, puis appelez l'action.
    4. Facultatif : Exécuter TestGetFileDetails dans IntelliJ pour le tester.
  6. Configurez le fichier TestFileSize, puis ouvrez le fichier TestFileSize et copiez et collez le code suivant :
    {
        @Test
        public void TestGetFileDetails() {
            String filePath = "src\\main\\resources\\icons\\sample.svg";
            //Create GetFileDetails Object
            GetFileDetails getFileDetails = new GetFileDetails();
            //invoke action
            NumberValue output = getFileDetails.action(filePath);
            Assert.assertEquals(output.getAsDouble(), 5027.0);
        }
  7. Sauvegardez le projet : Fichier > Enregistrer tout.
  8. Cliquez sur Recharger tous les projets Gradle, puis cliquez sur Exécuter la tâche Gradle et vérifiez que le projet A2019FileDetails est sélectionné.
  9. Dans la fenêtre Exécuter tout, saisissez gradle clean build shadowJar.
    Après son exécution, le message suivant s'affiche : CONSTRUIT AVEC SUCCÈS en 8 s <nombre de secondes>

Étapes suivantes

Chargez un package personnalisé à votre Control Room