재사용 가능한 bots 작성
설계 및 생성부터 재사용까지 재사용 가능한 bots 또는 하위 태스크 개발에 관한 이해를 높이기 위한 지침을 검토합니다.
- 선행 조건, 입력, 출력 및 변수 정의
- 재사용을 위한 bots을 작성할 때는 다음 사항이 정의되어 있어야 합니다.
- bot 단독으로 또는 하위 태스크로 이용하는 방법에 관해 필요한 모든 선행 조건을 문서화합니다.
- bots을 작성할 때는 값을 입력, 출력 또는 로컬로 정의합니다. 입력 및 출력 변수는 bot이 하위 태스크로 이용되도록 설계되어 다른 호출 bot으로부터 값을 수신하고 되돌려 보낼 수 있게 되어 있습니다.
- 입력 및 출력 변수를 정의할 때 의미 있는 변수 설명을 제공하여 다른 개발자가 귀하의 하위 태스크와 상호작용하는 방법을 알 수 있게 해야 합니다.
- 변수 이름 지정 지침에 대해 확립된 기준을 준수합니다. 변수 이름 지정 지침에 대한 Automation Anywhere 사용자 정의 변수를 검토합니다. 변수(사용자 정의)
- 단일 책임 원칙 준수
- 재사용성을 위해 개발된 Bots은 단일 책임 원칙을 따라야 하는데, 이 원칙은 각 하위 태스크 또는 구성요소가 전체 bot의 기능의 단일 부분에 대한 책임을 가져야 하고, 그 책임은 해당 하위 태스크 또는 구성요소가 전적으로 담당해야 한다는 것으로 설명하고 있습니다.
단일 책임의 다른 예:
- 단일 트랜잭션을 처리하지만, 목록의 각 트랜잭션에 대해 여러 번 호출될 수 있는 하위 태스크.
- 웹 사이트의 한 페이지에 화면 표시 데이터를 수집하지만, bot이 페이지 매김을 진행하는 동안 여러 번 호출될 수 있는 하위 태스크.
- 애플리케이션 열기 및 닫기
- bot 또는 하위 태스크가 여는 모든 애플리케이션, 파일 또는 창은 동일한 bot 또는 하위 태스크에 의해 닫혀야 합니다.
- 예를 들어, bot에서 Microsoft Excel을 열어 스프레드시트 작업을 수행할 때는 bot 처리를 마치면 스프레드시트 및 Excel이 닫혔는지 확인합니다.
- bot 실행이 성공하거나 실패하면 애플리케이션을 닫습니다.
- Try/Catch/Finally 작업의 Finally 블록을 이용하여 태스크 처리의 성공 여부에 관계없이 애플리케이션이 닫혔는지 확인합니다.
- 애플리케이션이 테스트 중에 응답하지 않는 경우, 명령 프롬프트를 이용하여 애플리케이션을 강제로 닫는(종료) 것이 좋습니다. 예를 들어, 파워 포인트를 강제로 닫고자 할 때 명령줄 작업은 다음과 같습니다.
Taskkill /IM powerpnt.exe /F
- 오류 처리
- 태스크를 완료한 후, bot이 모든 실패 또는 예외를 성공적으로 처리하는지 확인합니다.
- 각 태스크 또는 하위 태스크는 자체 오류를 처리해야 합니다.
- 하위 태스크에서 처리되지 않은 예외는 상위 태스크에서 문제를 일으킬 수 있습니다.
- 모든 bot의 루트 레벨에서 Try/Catch/Finally 블록을 이용합니다.
- 실패를 보고하기 전에 작업을 여러 번 시도하려면, 루프 내부에서 Try/Catch 블록을 이용하십시오.
- 다른 컴퓨터에서의 bots 실행
- bot을 설계할 때는 그 bot이 생성된 컴퓨터가 아닌 다른 컴퓨터에서도 실행되도록 해야 합니다.
- 다른 컴퓨터에서도 bot이 공적으로 실행할 수 있도록 로컬 파일 경로, 네트워크 공유 또는 창 제목에 대한 변수를 이용합니다.
- 다수의 bots이 액세스해야 하는 환경 마커 또는 네트워크 공유에 대해서는 전역 값을 이용하는 것을 고려하십시오.
- bots이 특정 환경 또는 대상 애플리케이션의 버전에 관계없이 실행되도록 하려면, 적절한 경우 창 제목에 와일드카드 문자를 이용합니다. 예를 들어, 이용하는 대신
use the following:Salesforce - Professional Edition - Internet Explorer
Salesforce - * - Internet Explorer
- 프롬프트, 메시지 상자 및 무한 루프 이용
- 프롬프트 및 메시지 상자 작업에서 사용자 입력을 기다릴 때는 bots실행이 중지됩니다. 사용자 입력이 필요하지 않다면, 프롬프트 문을 이용하지 않도록 bots을 설계합니다.
- 루프를 이용할 때는 반복 횟수를 명확히 정해주거나 브레이크 루프 작업이 필요한 위치를 지정하여 모든 루프에 확실한 종료점이 있도록 해야 합니다.
- bot을 무인 bot으로 실행하려는 경우, 프롬프트 또는 메시지 상자 작업을 제거하거나 비활성화합니다.
- 유인 자동화 시나리오를 위해 bots을 작성하는 경우, bots이 예상대로 실행되게 하려면 메시지 상자와 프롬프트가 합당하거나 요구되는 경우가 많습니다. 메시지 상자를 이용하여 응답, 출력 또는 값과 같은 다양한 변수를 표시합니다.
- 민감한 데이터를 Credential Vault에 저장하기
- Control Room에는 사용자 이름, 비밀번호, API 키 및 토큰과 같은 민감한 정보를 저장하는 데 이용할 수 있는 Credential Vault가 포함되어 있습니다.
- bot을 작성할 때는 자격증명을 저장하고 필요 시 자격증명 또는 속성을 참조하면서 검색할 수 있도록 Control Room에서 Credential Vault을 이용하여 로커를 만듭니다. 이렇게 하면 사용자가 bots 개발자가 bot 내에서 필요한 자격증명을 직접 하드코딩할 필요 없이 API를 이용하거나 로그인을 수행하는 bot을 만들 수 있습니다.
- bot 내의 하드 코딩된 스토리지는 보안 위험을 초래하므로 민감한 자격증명을 bot, 또는 하위 태스크에 하드 코딩하지 마십시오.
- bot에서 Credential Vault 값을 이용해야 하는 경우, 모든 locker 이름과 자격증명이 봇 문서에 명확하게 정의되어 있는지 확인하십시오. 필요하다면, 자격증명(예: API 키 또는 토큰)을 획득하는 방법에 대한 세부정보를 포함합니다.
- 독립 태스크 테스트
- 재사용이 가능하도록 bots을 만들 때는 다른 하위 태스크와는 독립적으로 테스트할 수 있도록 설계하십시오.
- 테스트 중심 개발(TDD) 접근법을 실천해보십시오. 애플리케이션에서 새 bot 또는 새 기능을 추가할 때는 해당 테스트 예시를 작성합니다.
- 테스트 예시에서, 해당 기능을 검증하는 특정 기능을 정의해둡니다.
- 단일 책임 원칙 및 재사용 가능성을 위해 독립적으로 테스트할 수 있는 많은 소규모 태스크를 생성합니다.
- 주석 및 단계 사용
- 주석을 통해 개발자는 자신의 bots 내에서 설명을 제공할 수 있으므로 bot 다른 bot 개발자들이 각 섹션, 코드 블록 또는 하위 태스크의 설계 용도를 더 잘 이해할 수 있습니다. 개발자가 주어진 코드 블록의 기능의 목적을 이해할 수 있도록 명확한 설명을 포함시킵니다.
- bots이 Bot Store에 제출되면, 이 주석은 bot을 사용자 정의하는 방법을 보여줍니다.
- 주석을 이용하면 섹션 설명을 통해 개발자가 더 빠른 문제 해결을 위해 필요한 변경 사항을 파악할 수 있으므로 코드 유지 관리가 더 쉬워집니다.
- bots에 대한 주석은 ‘진행중인 작업’으로서 향후 작업을 위한 플레이스 홀더를 만들 때 도움이 될 수 있습니다. 여기서 TODO 명령은 bot에 로직을 추가하도록 상기시키는 차원에서 고려해보되, 작업이 완료되면 주석을 업데이트해야 합니다.
- Automation 360에는 가독성과 흐름을 개선하기 위해 코드를 논리적 그룹으로 구성하는 기능을 제공하는 Step작업이 포함되어 있습니다.
- 공백 상태로 라벨이 부착된 단계(step) 조치를 이용하여 bot의 주요 목테이블에 대한 개요를 작성합니다. 이 작업이 완료되면, 각 단계로 돌아가서 해당 단계의 로직을 완료합니다.
- 로깅 파일 만들기
- bots이 Bot Runners의 수에 관계없이 무인으로 실행될 때는 로그 없이 문제를 식별하는 것이 어려울 수 있습니다. 소프트웨어 개발자, 지원 팀 및 bot 소유자는 로그에 의존하여 자동화에 문제가 있는 위치와 문제 진단 방법을 파악합니다. Bots은 오류를 기록하여 오류 세부정보를 갖고 있어야 합니다.
- 오류 처리 및 화면 캡처를 이용하여 bot 또는 하위 태스크에서 오류가 언제 발생하는지를 더 잘 이해할 수 있습니다.
- 과거 로그 파일을 유지관리하기 위해 사용자 정의 가능한 루트 로깅 위치와 함께 기본 오류 처리, 로깅, 및 스냅샷 기능이 포함된 A2019 Bot Store 템플릿을 이용합니다.
- 필요하다면, 추가 로깅 파일을 생성하고 bot 또는 하위 태스크에서 수행한 모든 작업에 대한 전체 감사 기록을 포함합니다. 추가 로그 파일에는 에 대한 감사, 디버그 및 bot에 대한 성능 정보와 함께 다음 정보를 포함할 수 있습니다.
- 메인 bot 시작 및 종료 시간.
- 하위 태스크 시작 및 종료 시간.
- bot 내에 정의된 특정 이정테이블의 완료 시간.
- 입력 파일에 수신된 트랜잭션 수.
- 성공적으로 처리되었거나 실패한 트랜잭션 수.