반응형

안녕하세요.

이번에는 AppSheet 자동화의 핵심인 Actions(Behavior)와 Automation에 대해 자세히 알아보려고 합니다. 여기서 제가 말하는 자동화는, 사람이 해야 할 일을 최소화하기 위해 반복적으로 처리되는 작업을 미리 정의하는 것을 의미합니다.

AppSheet의 자동화는 무엇을 할 수 있으며, 어떻게 사용하는 것이 좋을까요? 저는 오늘 이 질문에 대한 대답을 가지고 왔습니다. 입문 글에서의 내용과 겹치는 부분도 있지만, 중급 수준에 맞게 조금 더 체계적이고 자세한 정보를 적어보도록 하겠습니다. 이번 글에서는 먼저 Actions에 대해서 다루어 보려고 합니다.

그럼 시작해볼까요?

 

 

● Actions 로 할 수 있는 것들

버튼을 클릭하는 등의 이벤트가 발생했을 때 발생하는 액션을 가리키는 Actions (이전 UI에서는 Behavior)에서는 크게 세 종류의 작업을 지정할 수 있는데요, 실행되는 액션이 앱에 대한 것이라면 App, 데이터에 대한 작업이라면 Data, 그 외 외부 솔루션과 관련된 작업에 대한 것이라면 External 이라고 분류할 수 있습니다.

이러한 Action 작업들은 보통 특정 행에 대해서 동작합니다. 예를 들어 1번 행의 디테일 페이지에서 정의된 버튼을 누르면 일반적으로 1번 행에 대해 작업이 실행됩니다.

하나씩 살펴보겠습니다. 먼저 App에 대해 정의할 수 있는 작업들입니다.

Action: App 설명
App: copy this row and edit the copy 행 데이터를 복사하고 복사한 행을 편집합니다.
App: edit this row 이 행을 편집합니다.
App: export this view to a CSV file (not a row-level action) 이 뷰의 데이터를 CSV 파일로 추출합니다. (행 단위 액션 아님)
App: go to another AppSheet app 다른 앱시트 앱으로 이동합니다.
App: go to another view within this app * 이 앱의 다른 뷰로 이동합니다.
App: import a CSV file for this view (not a row-level action) 이 뷰에 데이터를 CSV 파일로 입력합니다. (행 단위 액션 아님)
App: open a form to add a new row to this table (not a row-level action) ** 이 테이블에 새로운 행을 추가하기 위해 Form을 엽니다. (행 단위 액션 아님)
* 자주 쓰는 기능 중 하나로, 다른 뷰에 대한 바로가기를 만들 수 있습니다.                                                                                                                        ** 

* 자주 쓰는 기능입니다. 다른 뷰에 대한 바로가기를 만들 수 있습니다. 같이 쓰는 함수: LINKTOFILTEREDVIEW()

** 자주 쓰는 기능입니다. 연결된 테이블에 값을 추가하기 위한 Form을 열 때 선택된 행의 값을 추가할 행의 Initial 값으로 활용할 수 있습니다.

 

다음은 Data에 대해 정의할 수 있는 작업들입니다.

Action: Data 설명
Data: delete this row 이 행을 삭제합니다.
Data: execute an action on a set of rows 여러 행에 대해서 지정된 (다른) 액션을 수행합니다.
Data: set the value of some columns in this row* 이 행의 지정한 컬럼의 값을 설정한 값으로 변경합니다.
Data: add a new row to another table by using values from this row** 이 행의 값들을 이용하여 다른 테이블에 새 행을 만듭니다.

* 자주 쓰는 기능입니다. 데이터 수정에 대한 자동화 작업을 위해 활용할 수 있습니다.

** 자주 쓰는 기능입니다. Form이 열리지 않고 데이터가 바로 추가됩니다.

 

그리고 External에 대해 정의할 수 있는 작업들입니다.

Action: External 설명
External: go to a website* 웹사이트로 이동합니다.
External: open a file 외부 파일을 엽니다.
External: start an email (기본 메일 앱에서) 이메일을 작성합니다.
External: start a phone call (기본 전화 앱에서) 전화를 겁니다.
External: start a text message (기본 문자 앱에서) 문자를 보냅니다.

* 자주 쓰는 기능입니다. 홈페이지나 외부 사이트에 연결하고 싶을 때 사용합니다. 데이터에 파일 링크가 입력된 경우 open a file 대신 사용하기도 합니다.

 

그 외에, Grouped 라는 작업을 정의할 수 있습니다.

Action: Grouped 설명
Grouped: execute a sequence of actions* 여러 액션을 한번에 실행합니다.

* 자주 쓰는 기능입니다. 버튼을 한 번만 클릭해도 여러 개의 액션이 한번에 실행되어 보다 다양한 자동화 작업이 가능해집니다.

 

 

● Actions 를 사용하는 방법

Behavior 로 할 수 있는 것들이 뭔지 잘 파악하고 나면 본격적으로 Actions 를 사용해 보아야 할 것입니다. Actions 를 사용할 때 구체적으로 어떻게 설정해야 하는지 몇 가지 예시와 함께 설명해 보겠습니다.

  예시1. Actions 를 통해 데이터 변경하기

기본적으로 AppSheet 사용자가 데이터를 변경하기 위해서는 시스템에서 생성된 Edit 이라는 버튼을 눌러 편집을 진행한 뒤, 저장 버튼을 눌러 변경사항을 저장해 주어야 합니다. 다만 이는 사용자 입장에서는 꽤 번거롭게 느껴질 수 있습니다. 따라서 자주 이루어지는 편집 작업에 대해서는 Actions 로 지정하여 작업 소요를 줄여 주시는 것이 좋습니다.

또한 이 방법을 사용하게 되면 사용자가 무엇을 할 수 있으며 무엇을 해야 하는지 조금 더 직관적으로 확인할 수 있고, 데이터를 실수로 잘못 입력하지 못하게 됩니다.

다만 주의할 점은 Behavior 작업을 추가할 때 여러 사용자가 함께 작업을 진행했을 때를 고려해 주어야 한다는 것입니다. 예를 들어 아래와 같이 사과의 갯수에 1을 더해주는 Actions 와 사과의 갯수에 2를 곱해주는 Actions 가 있다고 가정해 봅시다.

한 사용자만 이 앱을 사용한다면 상관없지만, 만약 동시에 여러 사용자가 이 앱에 접속하여 한번에 +1과 *2 버튼을 누른다면 어떻게 될까요? 정답은 먼저 버튼을 누른 사용자의 작업만 반영이 됩니다. 나중에 버튼을 누른 사용자가 동기화를 하면 사과의 갯수가 먼저 버튼을 누른 사람의 값으로 변경됩니다. 만약 이러한 작업이 필요하다면 다른 방식으로 Actions 를 사용해 주어야 합니다.

그 방식은 사과 갯수라는 신규 테이블을 만든 후, +1 또는 *2 버튼을 눌렀을 때 바로 갯수가 바뀌는 것이 아니라, +1 또는 *2 버튼을 눌렀을 때 사과 갯수 테이블에 어떤 버튼을 눌렀는지에 대한 로그를 기록하게 하고, 사과의 갯수는 FORMULA를 통해 계산하는 방식입니다. 이렇게 하면 모든 Actions 작업이 누락되지 않고 진행될 것입니다.

  예시2. Actions 의 아이콘, 표시 방법과 표시 조건 정하기

Actions 는 최초 생성 시, 액션 작업이 지정된 테이블의 데이터를 사용하는 뷰 최상단에 종이비행기 모양의 아이콘 밑에 액션의 이름을 표시해주는 동그란 버튼 모양으로 보이게 됩니다.

Appearance 탭

앱의 아이콘과 표시 방법은 Behavior 메뉴에서 수정이 가능합니다. 먼저 Appearance 탭에서 Display name 을 변경하여 버튼의 이름을 바꿔줄 수 있고, Action icon 을 변경하여 버튼의 아이콘을 바꿔줄 수 있습니다. Prominence 또한 중요한데요, 어떤 옵션을 선택하는지에 따라 아래 이미지와 같이 표시가 됩니다.

Display as primary 옵션 선택 시
Display prominently 옵션 선택 시
Display inline 선택 후 Attach to column 옵션을 '갯수'로 지정할 시

또한 Do not display 옵션 선택 시 아이콘이 화면에서 사라집니다.

Behavior 탭

그 다음으로, 해당 Action의 Behavior 탭에서 앱이 표시되는 조건과, 버튼을 눌렀을 때 컨펌 메시지를 띄워서 한 번 더 확인할지를 결정할 수 있습니다.

Needs confirmation? 을 활성화 시키고 컨펌 메시지를 설정한 뒤 버튼을 누르면 아래와 같이 표시됩니다.

그 다음으로 Only if this condition is true 란에 적절한 FORMULA를 입력하여 앱에 버튼이 보이게 할지 말지를 선택할 수 있습니다. 예를 들어 [과일 아이디] = "사과" 와 같이 FORMULA 작성 후, 앱을 둘러보면 아래와 같이 [과일 아이디]가 "사과"일 때만 *2가 표시되는 것을 볼 수 있습니다.

그 외에도 CONTEXT("VIEWTYPE")="Detail" 과 같이 조건을 설정하면 Detail 뷰에서만 해당 버튼이 보이게 됩니다. 또한, 뷰마다 데이터 슬라이스를 만들어 버튼 표시를 제한하는 방법도 있습니다. 데이터 슬라이스를 만들 때 아래와 같이 해당 슬라이스에서 사용할 수 있는 버튼을 제한할 수 있습니다.

이후 해당 데이터 슬라이스를 뷰에 적용하면 그 뷰에서는 *2 버튼만 보이게 됩니다. 이 때 따로 지정하지 않으면 시스템에서 생성한 Actions 인 Add, Delete, Edit 버튼도 보이지 않게 됩니다. 참고하여 설정해 주시면 됩니다.

지금까지 Actions 로 할 수 있는 것들과 Actions 를 활용하는 방법에 대해 알아보았습니다. 이정도만 알고 사용해도 Actions 의 거의 모든 것을 알고 있다고 해도 과언이 아닙니다. 다음 시간에는 AppSheet 자동화의 두번째 핵심 기능인 Automation 기능에 대해 알아보도록 하겠습니다. 읽어주셔서 감사합니다. 같이 열심히 공부해 보아요~

반응형

+ Recent posts