
비즈니스 객체의 목적은 응용프로그램과 통합하는 것
그러기 위해서 비즈니스 객체를 응용프로그램과 연결해야 한다.
Object Studio 에서 새로운 프로세스를 하나 생성한 후 Action1 Page 클릭 >
Application Modeller > Define a new application model >
Windows Application > My application is launched from an executable file >
Path설정(C:drive\BluePrism\Traning\Applications\Windows\CentrixDataSolutions) >
Next > 어플리케이션 모델러 창이 표시된다.
프로세스 -> 페이지
비즈니스 객체 -> 액션
애플리케이션 모델러 -> 요소
Launch버튼을 누르면 로그인 창이 나타난다.
요소 트리 목록에서 Element1 을 선택 > identify 버튼을 누르면 spymode로 진입한다.

spymode를 취소하려면 ctrl + 마우스 우클릭

Ctrl + 마우스 왼쪽 버튼 클릭

애플리케이션 모델러의 요소 세부사항 영역이 해당 요소에 특정한 정보와 속성으로 채워진다.

블루프리즘은 유일한 속성을 갖는 요소를 만들기 위해 필요한 상호작용하는 모든 응용프로그램의 구조를 정의하지는 못한다.
그러므로 정의를 확신하면 안되며 책임은 항상 사용자에게 있다고 한다.

Precondition(사전 조건)
작업을 실행하기 전의 애플리케이션의 상태를 설명해야 한다.
Postconditions(사후 조건)
작업이 실행된 후의 애플리케이션의 상태를 설명해야 한다.
애플리케이션 모델러의 요소 목록이 왼쪽에 표시되며 , 사용가능한 요소를 드래그하여 Elements로 가지고온다. > Action 열에서 액션 드롭다운 메뉴를 사용 가능.
이 메뉴의 액션 목록은 할당된 요소의 유형에 따라 다르게 나타난다.

Launch 선택하면 Inputs 요소가 생성된다. OK 후 실행

결과화면

대기 스테이지를 통해 비즈니스 객체가 일시 중지하고, 응용프로그램이 로드되거나 조건이 충족될 때까지 기다릴 수 있다.
대기 스테이지에는 흐름이 진행되도록 허용하기 전에 특정 애플리케이션 요소가 존재하는지 확인하는 기능이 있다.
이를 대기 조건이라고 한다.
대기 조건은 지정된 시간 내에 대기 조건이 충족되는지 여부에 따라 평가되고 플래그 값을 생성한다. 대기 스테이지에 다중 대기 조건을 적용할 수도 있다. 이는 응용 프로그램에서 여러 종류의 응답의 가능성이 있는 경우에 유용하다.
대기 스테이지는 비즈니스 객체 생성에 필수적이다. BluePrism이 응용 프로그램을 처리할 때 유연성을 제공하기 때문이다.
대기 스테이지에는 Wait와 Timeout이라는 두개의 구성요소가 존재.
두 요소는 항상 연결되어 있다.
Wait Stage의 구성요소
요소 목록에서 로그인 창 요소를 Actions 영역의 요소 열로 끌어오기.
Conditions 열의 드롭다운 메뉴에서 Check Exists를 선택 후 Comparision 및 Value 필드를
기본값인 Equals 및 True로 그대로 둔다. > OK

Wait 와 Timeout사이의 링크에 원형 노트가 나타나는 것을 확인
이것이 대기 스테이지에 표시되는 조건이며, 두개의 아웃바운드 링크가 있어야 한다.
조건이 설정되면 시간 초과 후에 예외 스테이지를 포함해야 한다.
그렇지 않으면 시간 초과에 도달했을 때 작업이 종료된다.

예외속성 스테이지 추가


예외유형 속성창
예외 유형 드롭다운은 새로운 BluePrism 환경에 대비해 비어있으며, 예외 유형이 예외 스테이지에 추가될 때 채워진다.
예외 스테이지는 예외 유형 정보를 BluePrism 데이터베이스에 기록하므로 나중에 사용가능.
System Exception을 Exception Type에 입력.
Exception detail에 "로그인 입력 창이 나타나지 않았습니다"를 입력.
Timeout
최대 대기시간을 설정하고, 대기 조건이 충족될 때까지 비즈니스 객체가 일시 중지하게 된다.
따라서 필요한 시간을 과대평가하는 것이 좋다.
5에서 0.1로 변경

실행 결과

실제로 여러 개의 글로벌 데이터 항목을 사용해서 시간 초과 값의 범위를 저장하여 다양한 어플리케이션 성능 요구 사항을 충족할 수 있다.
이는 비즈니스 객체의 Initaialise 페이지에 저장되고, 대기 스테이지 속성의 Timeout 필드에 적용된다.
응용프로그램과 상호 작용하는 모든 액션을 시작할 때, 조건부 대기 스테이지를 포함하는 것이 가장 좋다.
그러나 Launch 액션은 이 규칙에 대한 몇가지 예외 중 하나이다.
응용 프로그램이 아직 실행 상태가 아니므로 조건이 적용되지 않기 때문.
응용프로그램과 상호작용 한 후에도 대기 스테이지가 필요함.
응용프로그램의 상태가 변하기 때문이다.
대기 스테이지에 여러 조건을 설정하는 방법
대기 속성 창의 섹션 영역에 행을 추가해준다.

각각은 별개의 조건을 나타낸다. 대기 스테이지는 각 조건을 동시에 확인할 수 있다.

모든 조건을 충족하지 않아도, 조건 중 하나가 충족되면 해당 조건에 따라 결정된 경로를 따라 진행된다.
어떤 조건도 충족되지 않으면 작업이 시간 초과에 도달한다.

대기 스테이지는 조건없이도 사용할 수 있다.
다이어그램의 흐름에 시간 제한만 사용해서 일시 대기하는 용도로 사용할 수 있다.
조건 없는 대기에는 두가지 유형이 있다.
스로틀 , 무조건 대기
공통점은 응용 프로그램의 성능 속도에 약간의 추가 시간을 더 제공하도록 설계되었다.
응용프로그램과 상호작용하는 모든 액션페이지의 시작부분에 스로틀을 포함하는 것이 가장 좋다.
예측할 수 없는 시스템 활동을 위한 시간을 확보하기 위함.
전역 데이터 항목을 사용하여 비즈니스 객체 내의 모든 작업 페이지에 대한 Timeout 시간을 저장할 수 있다. 이를 통해 응용 프로그램의 성능에 호응해서 대기시간을 쉽게 재조정할 수 있다.
대상 응용 프로그램이 네트워크 문제로 인해 평소보다 느리게 실행되는 경우, 스로틀 값을 한번만 업데이트 하면 된다. 그러면 이 응용 프로그램을 사용하는 비즈니스 객채 내의 모든 액션 페이지가 업데이트 된다.
_무조건 대기는 일반적으로 피해야 한다_. 상태가 전혀 변경되지 않는 응용프로그램과 상호작용이 있는 경우에만 사용된다.
예를 들어, 안전 기능은 일반적으로 응용 프로그램의 상태 변경보다 먼저 발생하지 않는다. 따라서 조건 적용 불가. 초과 시간 기간은 특히 응용 프로그램이 계속 진행하기 전에 작업을 완료할 수 있도록 대기 속성에 설정된다.
가능하면 항상 조건부 대기를 사용하는 것이 좋다.
시작 부분에 대기 스테이지를 추가하고 Throttle 을 생성한다.
다른 응용프로그램과 상호작용하기위한 대기시간 설정

Timeout을 2로 설정 > 2초간의 대기시간을 가짐

스로틀에 대한 Global Throttle이름의 전역 데이터 항목 생성하여 비즈니스 객체 내의
모든 액션에 대해서 일시 중지 시간을 조절한다.

초기 값은 5로 설정하고 가시성 상자를 선택 취소 한 후 이름 입력.
대기 스테이지 속성 창에서 Timeout 값을 전역 스로틀 데이터 항목으로 바꿔준다.

글로벌 스로틀 데이터 항목의 값은 객체 다이어그램 내에서 일시 중지 시간을 결정하고,
비즈니스 객체의 모든 페이지에서 전부 사용가능 하다.
Orainal
두 요소의 고유 속성을 구별한다.

체크해준뒤 OK
객체 스튜디오에 있는 특별한 스테이지로 Write Stage가 있다.
Write Stage 는 응용 프로그램으로 값을 전달하는데 사용된다.
계산의 결과나, 데이터 항목 내에 저장된 값을 전달해야한다.
Applocation Modeller 에 정의된 요소에 값을 채우면 된다.
Write Stage는 Blue Prism에서 값을 전송하고, 외부 응용 프로그램의 필드에 전달한다.
Login페이지 생성
스로틀 추가.
Wait Stage 로 만들기
두개의 데이터 아이템 추가.
첫번째 이름은 Staff Number이고 ,텍스트 데이터 유형이며 , 초기 값은 bp
두번째 이름은 Password이고, 암호 데이터 유형이며 초기값은 password이다.
대기 스테이지에 조건을 추가하고 로그인 페이지가 열려있고 화면에 표시되는지 확인.
예외 스테이지 속성을 업데이트 .
예외의 유형으로는 System Exception , 예외 세부 정보로는 "로그안 창이 열리지 않았습니다".
액션 다이어그램에 쓰기 단계 추가
데이터 항목의 값을 응용 프로그램의 직원 번호 필드에 입력
Staff Number 데이터 항목을 Actions 영역의 Value 열로 끌어온다.
Staff Number 요소를 Element 열로 끌어온다.

최종 실행화면

어플리케이션 모델러에 정의된 어플리케이션 요소의 상태는 때때로 변경될 수 있다.
ex) 응용프로그램 창의 필드에 값을 추가 또는 응용 프로그램 창의 크기가 변경, 사용자의 레이아웃을 변경하는 소프트웨어 업데이트 등
이와 같은 상태 변경은 작업을 수행하는 데 필요한 요소를 액션이 식별하지 못하게 하여 오류를 발생시킬 수 있다.
따라서 요소의 지문을 생성할 때, 변경될 가능성이 있는 특정 값을 포함하는 속성은 제거 해야한다.
Log in 페이지 > Application Modler > Window Text 체크 해제 > Highlight 클릭
Window Text에 연결된 값이 비어있음 : 응용 프로그램 모델러가 필드에 텍스트가 없기 때문에 창 텍스트가 비어있는 조건에서만 이 요소를 인식할 수 았음을 의미한다.
이제 Application Modeler는 요소에 값이 포함되어 있는지 여부와 관계없이 직원 번호 요소를 인식 할 수 있다.
또 다른 액션을 쓰기 스테이지 속성에 추가.
응용 프로그램의 로그인 창의 비밀번호 필드에 비밀번호 데이터 항목의 값을 입력

실행화면

응용 프로그램 창 내에서 요소를 식별할 때 응용프로그램에서 BluePrism으로 전달되는 속성은
일반적으로 애플리케이션 모델러에게 요소와 상호 작용하는데 필요한 작업 유형을 알려준다.
요소: 값을 입력받는 텍스트 상자, 값을 읽어야하는 화면의 텍스트값, 누를 수 있는 버튼
step 1.) 응용 프로그램의 로그인 창에서 로그인 버튼 식별
요소 트리의 Log In Window 분기에 새 요소를 만들기

step 2.) 로그인 버튼을 누르기 위한 탐색 스테이지 추가

재설정 > 실행 > 결과 창

애플리케이션 모델러를 사용하여 홈페이지 창을 새 요소로 식별

step 3.) 응용프로그램이 열릴 수 있도록 대기 단계를 추가 후 결과 확인


Blue Prism이 이미 열려 있거나 화면에서 실행 중인 응용 프로그램 창에 접속 해야할 때
탐색 스테이지(Navigate Stage)를 통해 달성할 수 있다.
실행 중인 응용프로그램과 분리하는 데에도 사용할 수 있다.
step 1.) 이미 열려서 실행중인 응용 프로그램에서 비즈니스 객체를 분리
Launch를 눌러서 응용 프로그램을 실행 > 재설정 > Detach 버튼을 통해 비즈니스 객체를 분리할 수 있다.

Log In 액션 실행 하면 아래와 같은 오류메시지 창을 보여준다.
오류내용은 BluePrism이 응용 프로그램에 연결되지 않아서 작업을 수행할 수 없다고 알려준다.

step 2.) 새 액션 페이지를 생성 후 탐색 스테이지를 만들어서 열려 있는 응용 프로그램 창에 접속 > 창 제목 속성을 사용하여 응용 프로그램의 로그인 창에 접속
Navigate Stage의 속성
Window Title에서 어느 데스크탑 창이 Centrix Data Soultions 응용 프로그램에 속하는 지 알려준다.

빨간 동그라미 표시에서 Attach와 관련 입력에 대한 정보를 볼 수 있다.
Attach Page 재설정 후 액션 실행 > Login Page 액션 실행

step 3.) 윈도우 작업 관리자에서 보이는 창의 프로세스 이름을 사용하여 실행 중인 응용 프로그램에 접속
작업관리자를 이용하여 접속하는 경우: 접속해야 할 응용 프로그램 창의 이름이 확실하지 않을 때
상태 변경으로 인한 오류에 덜 취약하다. 소프트웨어 업데이트로 창 제목이 변경되는 가능성보다
프로세스 이름이 변경될 가능성이 매우 낮기 떄문.
응용프로그램 닫기 > Login Page 재설정 > Launch > 윈도우 작업관리자 열기> 응용 프로그램의
세부정보 확인으로 정확한 이름값 찾기 > Navigate Stage의 속성의 Window Title값 제거 >
Process Name에 응용프로그램 이름 입력 > Detach > 재설정 > 실행
정상적으로 작동하는지 확인.
Read Stage는 응용 프로그램의 정보를 읽는 데 사용
데이터를 가져온 후 데이터 항목에 저장
step 1.) Read Stage 와 Decision Stage를 사용하여 접속액션에서 응용 프로그램이 이미 접속되어 있는지 여부와 접속이 필요한지 여부를 결정
액션 다이어그램에 데이터 항목 추가

Read Stage 추가

데이터 항목의 값을 확인 할 Decision Stage 추가

Detach 후 실행

응용프로그램을 시작, 로그인, 접속, 닫기등의 기능은
비즈니스 객체가 프로세스와 상호 작용하도록 설정된 후에만 사용 할 수 있다.
프로세스 다이어그램에 액션 스테이지가 그 역할을 해준다.
새 비즈니스 객체의 액션을 테스트하는 프로세스 만들기
step 1.) 비즈니스 객체 내에서 액션 페이지 게시
Process Studio에서 new Process 추가 > Action Stage 추가
비즈니스 객체의 액션이 채워져 있지 않은 이유는 액션페이지가 표시되려면 먼저 게시되어야 하기 때문이다. 프로세스 게시와 같은 개념

비즈니스 객체에 액션 게시하기
페이지 이름에 마우스 우클릭 > Publish

아래와 같이 아이콘이 생긴다.

step 2.) 새 프로세스에 액션 스테이지를 추가하여 애플리케이션을 시작, 로그인, 닫기
Action 들이 생긴것을 볼 수 있다.

작업을 편집하기 위해 돌아갈 경우 마우스 우클릭 View action In Object Studio 선택

프로세스 저장 후 실행

Close 에서 오류가 나는 이유는 Exit 버튼을 따로 캡쳐 해야하는 것 같다.
프로세스의 액션 스테이지와 비즈니스 객체의 액션 페이지 간의 이동을 제어하는 역할
비즈니스 객체의 디자인은 가능한 한 일반적이어야 하며, 애플리케이션의 사용자 인터페이스와의 상호 작용에 중점을 두어야 한다.
비즈니스 객체에는 어떤 값도 저장해서는 안된다. 대신 응용 프로그램 요소에 입력하는데 필요한 모든 값은, 사용자 이름이나 계정 세부 정보와 같은 값은 프로세스로부터 전달해야 한다.
상호작용을 완료하는데 걸리는 시간동아만 전달된 정보를 보유해야 한다.
비즈니스 객체가 재사용이 가능하게 되므로 사용하는 정보와 상관없이 비즈니스 객체가 상호작요이 가능
step 1.) 시작 스테이지를 통해, 로그인 값을 액션 페이지로 전송
1.1 Object Studio에서 프로세스에서 비즈니스 객체로 전송할 값을 설정

1.2 데이터 항목에서 값 제거

1.3 변경사항 저장 > 프로세스 Studio 열기
step 2.) 입력 매개변수를 설정하여, 이들 값을 비즈니스 객체로 전달
2.1 데이터 항목 추가 Staff Number: bp , Password: password
2.2 Login Action Stage 속성에 Input 값 추가

2.3 저장 후 실행

응용 프로그램과 상호 작용하는 데 필요한 모든 액션을 하나의 큰 비즈니스 객체로 모으는 것이 논리적으로 보일 수 있지만, 실제로 단일 비즈니스 객체 접근 방식은 교육, POC 수행, 솔루션 시험 목적으로만 사용된다.
블루 프리즘 솔루션을 운영할 때는 절대 지양한다.
비즈니스 객체는 작고 단순하게 기능별로 컴포넌트화 하거나 작은 규모의 유사한 기능을 수행하도록 설계되어야 한다. 따라서 응용 프로그램의 창 각각에 대해 별도의 비즈니스 객체를 만드는 것이 가장 좋다.
이러한 접근 방식을 다중 비즈니스 객체 방식이라고 한다.
다중 비즈니스 객체 방식의 장점
실습
step 1.) 주문 처리를 위한 추가 비즈니스 객체 생성
객체 생성 > 애플리케이션 모델러 생성 > 기존방식대로 진행하되 아래사진을 참고해서 두번째 체크박스 선택

제목에 * 가 붙은 이유는 와일드 카드 기호로 사용되었기 때문이다.
애플리케이션 모델러가 Window Title을 열려 있는 응용 프로그램 창의 제목과 일치시키는 데 필요하다.
와일드 카드는 뒤에 올 수 있는 임의의 텍스트를 나타냄

Attach 액션 만들기

Detach 액션 만들기

step 2.) 주문 메뉴 창에 접속하고 분리하는 액션 페이지 생성
아이디와 비밀번호 입력 후 Order 창 접속하기

Application Modeller에서 menu, box, button 설정

step 3.) 주문 메뉴 창에서 메뉴 옵션을 선택하고, 새 주문 창으로 이동하는 액션생성.
Navigate Order Menu라는 새 액션생성
스로틀(Wait Stage) 생성 > 주문 메뉴가 표시되는지 확인하기 위한 Wait Stage 생성 > 유효한 메뉴 옵션 중 하나를 입력하기 위한 Write Stage 생성 > Go 버튼을 클릭하기 위한 Navigate Stage 생성 > 새 창을 확인하기 위한 두번째 Wait Stage 생성 (새 주문 창 감시) > 데이터 항목은 Write Stage 옵션 메뉴 값을 제공 실제로는 이값을 호출 프로세스에서 제공해야한다. > 올바르게 작동한다면 데이터 항목을 제거하고 액션 페이지에 대한 입력 매개변수를 설정해야 한다.

결과화면
