새 Java 클래스 생성

IntelliJ를 사용하여 새 Java 클래스와 새 디렉터리를 생성하고 다른 빌드 파일을 구성합니다.

전제 조건

다음 태스크에 나열된 단계를 완료합니다. 빌드 파일 구성.

프로시저

  1. Java 클래스를 만들고 com.automationanywhere.botcommand 패키지를 마우스 오른쪽 버튼으로 클릭한 다음 새로 만들기 > Java 클래스를 선택합니다. 새 클래스 GetFileDetails의 이름을 입력합니다.
    1. Concatenate. java에서 @BotCommand를 복사하고 새 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. 다음과 같은 @CommandPkg 매개변수를 업데이트합니다. name, label, node_label, descriptionicon.
    3. return_labelreturn_type을 업데이트합니다.
    4. NumberValue 작업, 내부 유효성 검사, 비즈니스 로직 및 반환 값을 추가합니다.
    5. Concatenated. java 파일과 samples.commands. basic 디렉터리, sample.commands 디렉터리를 삭제합니다.
  2. en_US.json 파일 구성: go to src > main > resources > locales > en_US.json으로 이동하고 라벨 및 설명 값 뒤에 다음 필드를 추가하고, 파일에서 다른 매개변수를 삭제합니다.
    {
    	"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. 패키지 삭제: src > main > java > com.automationanyhwere.botcommand로 이동하고, samples.commands를 삭제하고 samples 패키지를 삭제합니다.
  4. Github에서 새 아이콘을 가져오고 CommandPkg 주석을 업데이트합니다.
    1. Bot 흐름에서 사용하려는 아이콘을 다운로드하고 .svg 파일로 저장합니다.
    2. 이미지 파일을 src > main > resources > icons 폴더로 복사합니다.
  5. 새 디렉터리 생성: src로 이동하고, 마우스 오른쪽 버튼을 클릭하고 새로 만들기 > 디렉터리를 선택합니다.
    1. 이름 필드에 test\java을 입력합니다. 또는 test\java를 선택하고, 이름을 TestFileSize로 입력합니다.
    2. TestFileSize java 클래스에서 테스트 주석을 구성합니다.
    3. @test 퍼블릭 클래스를 생성하고, GetFileDetails 객체를 생성하고, 작업을 호출합니다.
    4. 옵션: IntelliJ에서 TestGetFileDetails를 실행하여 테스트합니다.
  6. TestFileSize 파일을 구성하고, TestFileSize를 열고 다음 코드를 복사한 다음 붙여넣습니다.
    {
        @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. 프로젝트 저장: 파일 > 모두 저장.
  8. 모든 Gradle 프로젝트 다시 로드를 클릭하고, Gradle 태스크 실행을 클릭한 다음 A2019FileDetails 프로젝트가 선택되어 있는지 확인합니다.
  9. 무엇이든 실행 창에서 gradle clean build shadowJar를 입력합니다.
    실행 후 다음 메시지가 표시됩니다. BUILD SUCCESSFUL in 8s <number of seconds>

다음 단계

Control Room에 사용자 지정 패키지 업로드