반응형

안녕하세요.

저번 글에서는 Automation 의 정의와 Actions 와의 차이점, Process 의 구성에 대해 알아보았는데요, 혹시 관련 내용을 잘 모르시는 분께서는 먼저 아래 글을 확인해 주시기 바랍니다.

 

[앱시트 중급] 04. 앱시트 자동화의 두번째 핵심, Automation (1)

안녕하세요. 이번 시간에는 앱시트 자동화의 두번째 핵심 요소인 Automation 을 공부해 보도록 하겠습니다. Automation 이 Actions(Behavior) 와 어떤 차이점을 가지고 있는지, 언제 Automation 을 사용해야 하

appsheet.tistory.com

이번 글에서는 실제로 Automation 을 사용하는 방법을 여러 가지 예시와 함께 설명해 드리도록 하겠습니다.

그럼 시작해 볼까요?

 

 

● Automation 예시1 - 이메일 보내기

첫번째 예시로 새로운 과일이 추가됐을 때 추가된 과일의 kcal 값이 10이 넘으면 고칼로리 과일로 표시한 뒤, 관리자에게 알림 이메일을 보내 보겠습니다. 우선 저는 '10kcal 이상 과일 추가 시 고칼로리 표시' 이라는 봇을 생성해 주었습니다.

새로운 이벤트를 생성한 뒤 이벤트를 정의해 줍니다. 데이터가 추가됐을 때 Automation 이 실행되도록 하기 위해서는 Data Change 이벤트 중 Adds only를 선택해 줍니다.

그 다음으로는 Table을 지정해 줍니다. 과일 테이블을 지정하게 되면 다른 테이블이 아닌 과일 테이블에서 발생한 이벤트만 가져오게 됩니다.

마지막으로 Condition을 지정합니다. Condition은 필수로 지정해야 하는 값은 아니지만, 이벤트를 한 번 더 필터링해줄 수 있어 유용합니다. 저는 칼로리가 10 이상인 과일에 대해서만 작업이 필요하므로 아래와 같이 FORMULA 를 작성하였습니다.

이제 프로세스를 정의해 보겠습니다. 이 예시에서는 프로세스에서 총 두 개의 단계(step)가 수행되어야 합니다.

  1. 과일의 [고칼로리] 컬럼을 Yes로 변경합니다.

  2. 이메일을 전송합니다.

먼저 고칼로리 표시를 위한 단계입니다. 데이터 컬럼 값을 바꾸는 행위는 Run a data action 을 선택해야 합니다.

Data action 으로는 특정 행의 값을 변경하는 Set row values 작업을 선택해 줍니다. 변경할 컬럼은 [고칼로리] 컬럼이며, 이 컬럼의 값을 Yes(True)로 설정하면 됩니다.

다음으로는 추가된 데이터에 대해서 메일을 보내주도록 하겠습니다. 새로운 Run a task 단계를 생성해 줍니다. Task는 당연히 Send an email 로 선택해 주시면 됩니다. 다음은 Email Type인데요, Embedded app view와 Custom template이 있습니다.

Embedded app view 를 선택하면 템플릿과 함께 메일에 앱시트 화면 중 일부가 표시됩니다. 사용자는 메일 상에서 앱시트 데이터를 변경하거나 Action을 진행할 수 있습니다. 반면에 Custom template은 굳이 앱시트 화면을 메일에 표시하지 않고, 템플릿에 맞는 내용을 자동으로 작성하여 메일을 보내줍니다.

저는 Embedded app view로 선택하도록 하겠습니다. 이후 메일에서 표시할 뷰와 관련된 테이블을 선택한 후, 누구에게 메일을 보낼지 작성합니다. 직접 이메일 주소를 입력해도 되고, 수식으로 메일 주소를 가져와도 됩니다.

그 다음으로는 템플릿을 작성해 주어야 합니다. 저는 이와 같이 작성했습니다.

여기에서 <<_APPNAME>>, <<[과일 아이디]>> 라는 부분이 보이실 겁니다. 이와 같이 <<겹화살괄호>>로 변수나 수식을 입력해 주게 되면 메일이 템플릿에 맞게 작성되어 발송됩니다. 템플릿에서 사용하는 수식에 대한 자세한 내용은 >> 이 문서 << 를 확인해 주시기 바랍니다.

그 다음으로는 메일 상에 어떤 뷰를 보여줄지를 선택하면 됩니다. 저는 시트1_Detail 뷰를 선택해 주겠습니다.

Preview email body 버튼을 누르면 아래와 같은 예시 작성 내용을 확인할 수 있습니다.

마지막으로 Advanced 버튼을 누르면 메일 발신자명을 바꾸거나 이메일 Footer를 추가해줄 수 있습니다.

이제 실제로 데이터를 추가해 보거나, Test 라는 버튼을 통해 기능이 잘 동작하는지 확인해 보시면 됩니다.

 

 

● Automation 예시2 - 파일 만들기

두번째 예시로, 매주마다 과일에 대한 보고서 파일을 작성해 보도록 하겠습니다. '매주 과일 보고서 작성' 봇 생성 후 아래와 같이 이벤트를 정의해 주었습니다.

이때 Time zone은 한국 표준 시간인 GMT+09:00 시간대로 바꾸어 주시는 것이 좋습니다. 하단에 조건부로 이벤트가 실행되게 할 수도 있지만, 저는 굳이 조건을 걸지는 않겠습니다.

다음은 프로세스입니다. 새 단계(Step)을 만들어 줍니다.

Custom task 의 Create a new file 을 통해 파일을 만들어줄 생각입니다.

과일 테이블을 선택해준 후, HTTP Content Type을 지정해 줍니다. 파일이 어떤 형식으로 저장될지를 지정하는 것으로, .pdf, .csv, .json 등으로 지정 가능합니다. 보통은 .pdf 파일로 지정해줍니다.

다음으로 가장 중요한 부분인 템플릿을 생성해 줍니다. 미리 작성한 템플릿을 넣어주어도 되고, Create 버튼을 눌러 새로운 템플릿 파일을 생성해줘도 됩니다. 일반적으로는 Create 버튼을 눌러 새로운 템플릿을 작성하게 됩니다. 다행인 점은, 이 때 빈 문서가 생성되는 것이 아니라, 앱시트에서 제공하는 기본 템플릿 문서가 생성됩니다.

이런 식으로 기본 생성된 파일을 원하는대로 가공하고 수정해 주시면 손쉽게 템플릿 파일을 완성할 수 있습니다. 위 내용에서도 언급했지만, <<겹화살괄호>> 안에 컬럼 이름이나 수식을 넣어주면 각 행의 데이터에 맞게 값이 들어가게 됩니다. 저는 이런 식으로 꾸며 주었습니다.

여기서 특이한 점을 하나 발견하셨을 텐데요, 바로 <<Start: 과일[과일 아이디]>>와 <<End>> 부분입니다. 한 개의 행에 대해서 출력하는 템플릿을 만드는 경우에는 이렇게 바꿔줄 필요가 없지만, 여러 개의 행을 한 번에 출력하려면 값들을 <<Start: 테이블명[참조 테이블의 ID]>>와 <<End>>로 묶어주어야 합니다. 이 템플릿으로 문서를 작성하면 아래와 같이 출력됩니다. 원본 테이블도 올려드리오니 값을 잘 비교해 보시기 바랍니다.

원본 테이블:

과일 아이디 갯수 칼로리 고칼로리
2 사과 394 11 TRUE
3 포도 3 5 FALSE
4 오렌지 7 3 FALSE

출력 결과:

마지막으로 파일의 경로 및 이름을 넣어주시면 됩니다.

File Folder Path를 통해 앱의 기본 경로로 시작해서 어떤 폴더에 파일을 저장할지 지정할 수 있습니다. 앱의 기본 경로는 설정 > Information > Default app folder에 적혀 있습니다. 저는 File Folder Path 경로를 '/과일 보고서' 라고 했으니, 종합해 보면 파일의 실제 경로는 '내드라이브/appsheet/data/testApp-3796008/과일 보고서'가 될 것입니다.

'과일 보고서' 폴더에 지정한 이름으로 파일이 생성된 모습

또, File Name Prefix 옵션으로 저장될 파일의 이름을 수식으로 지정할 수 있습니다. 저는 아래 수식으로 작성하였습니다.

TEXT(NOW(), "yyyy년 mm월 dd일 ") & "과일 보고서"

Disable Timestamp 를 활성화시키지 않으면 지정한 파일 이름 앞에 긴 날짜/시간 문자열이 붙게 됩니다. 저는 웬만하면 Timestamp는 비활성화 되도록 설정하고 있습니다.

이제 마찬가지로 Test 라는 버튼을 통해 기능이 잘 동작하는지 확인해 보시면 됩니다.

 

 

● Automation Test하기 

Automation 기능은 Event에 의해 실행되기 때문에 직접 테스트해보기가 꽤나 번거롭습니다. 데이터를 추가하는 이벤트 정도는 쉽게 발생시킬 수 있지만, 일주일을 기다린다거나 그 외 조건에 맞는 다양한 이벤트를 발생시키는 것은 쉬운 일이 아니죠.

그럴 때 유용하게 사용되는 것이 'Test'라는 기능입니다. Test 버튼은 Automation 기준 오른쪽 위에 위치하고 있습니다.

Test 버튼을 누르면 아래와 같은 화면이 표시됩니다. 하나씩 설명해 보도록 하겠습니다.

우선 첫번째 열인 Event Condition 은 어떤 행에 의해서 이 Automation이 실행될 것인지를 알려줍니다. 화면에 보이는 것은 '10kcal 이상 과일 추가 시 고칼로리 표시' 봇인데요, 위에서 보셨듯이 제 테이블에서 10kcal이 넘어가는 과일은 사과 뿐이기 때문에 첫번째 행만 True로 표시되고, 나머지 행들은 False로 표시됩니다.

그 다음 컬럼부터는 {중괄호}로 묶여 있는 긴 값과, Open 과 Execute 버튼이 보입니다. {중괄호} 내의 값과 Open 버튼은 아직은 신경쓰지 않으셔도 됩니다.

컬럼 이름을 보시면 Process, Run task "b908e740-8bb4-406d-9724-42981ba28962-고칼로리 표시", Run task "Task for 메일 보내기" 라고 되어 있죠? Process는 전체 프로세스를 실행시킬 때, 다음 열들은 프로세스 내의 각 task를 별도로 실행해 보고 싶을 때 Execute 버튼을 눌러주시면 됩니다. 만약 에러가 있다면 빨간 글씨로 표시되며, 에러가 없이 잘 실행되고 나면 Success 라는 창이 나오게 됩니다.

 

 

● Automation Monitor 하기

마찬가지로 Automation 우측 상단에 Monitor 라는 버튼이 있습니다. 이 버튼은 실제 Automation의 실행 과정과 결과에 대해 알려줍니다.

아래 보이는 것이 Monitor 화면입니다. 앱시트 앱을 모니터링 할 수 있는 전용 앱이라고 보시면 됩니다.

가장 중요한 것은 Bots 부분에 있는 Status 항목입니다. 초록색으로 Complete 라고 표시되었다면 Automation이 정상적으로 실행된 것이고, 빨간색 Error 로 표시되었다면 정상적으로 실행되지 않은 것입니다. 또한, 주황색 Pending 으로 표시된다면 아직 Automation이 실행중인 상태입니다.

Monitor를 통해 앱의 Automation이 잘 실행되었는지 확인할 수 있고, 문제가 생겼다면 어떤 부분에서 어떤 에러가 발생했는지에 대해 확인할 수 있기 때문에 Automation 이슈 문제가 생기는 경우 이 부분을 꼭 확인해봐야 합니다.

여기까지 두 가지 Automation 예시와, Automation Test 및 Monitor 기능에 대해서 알아보았습니다. Automation 을 어떻게 설정해야 할지 잘 모르셨다면 많은 도움이 될 겁니다. 그 외에도 많은 Task 및 활용법이 있지만 이 글에 다 담을 수는 없기에 제가 가장 자주 쓰고 중요하다고 생각하는 것들만 모아 두었습니다. 혹시 추가적인 설정 방법에 대한 질문이 있으시다면 댓글로 남겨주세요. 다음 시간에는 앱시트와 구글 Chat 을 연동하는 방법을 알아보도록 하겠습니다. 같이 열심히 공부해 보아요~

 

반응형
반응형

안녕하세요.

이번 시간에는 앱시트 자동화의 두번째 핵심 요소인 Automation 을 공부해 보도록 하겠습니다. Automation 이 Actions(Behavior) 와 어떤 차이점을 가지고 있는지, 언제 Automation 을 사용해야 하는지, Automation 에는 어떤 기능들이 있는지 확인해 보도록 하겠습니다.

꽤나 내용이 길어질 것 같아서 Automation 을 실제로 사용하는 방법과 예시 등에 대해서는 다음 글에서 따로 다루어야 할 것 같습니다.

그럼 시작해볼까요?

 

 

● Automation 이란?

Automation 은 'Event 에 따라 Process 를 진행하는 Bot' 을 의미합니다.

여기에서 Event 는 Process 를 진행시키기 위한 조건을 의미하며 크게 두 가지로 나눌 수 있습니다. 첫번째는 Data Change Event 로, 데이터가 생성, 수정 또는 삭제되는 것을 의미합니다. 두번째는 Schedule Event 로, 데이터와 관계 없이 특정 시간이 되었을 때 프로세스를 진행시킵니다.

또한 Process 는 Bot 이 Event 에 따라 수행하는 작업을 의미합니다. Process 에는 메일 보내기, 알림 보내기, 문자 보내기, 웹훅 요청 보내기, 파일 생성하기, 스크립트 실행하기, Action 실행하기 등이 있습니다.

종합해보면 Automation 을 사용한다면 '매주 자동으로 요약 보고서 생성하기', '새로운 데이터가 추가될 때마다 메일 보내기' 등을 설정할 수 있습니다.

 

 

● Automation 과 Actions 의 차이점

저번 글에서 설명드린 Actions 와 지금 설명드리는 Automation 에는 대표적으로 두 가지 차이점이 있습니다.

첫째, 실행 조건입니다. Actions 는 사용자가 직접 버튼을 눌러야 실행되지만, Automation 은 특정 Event 가 발생해야 실행이 됩니다. 물론 Automation 을 통해 Action 이 실행되는 경우나, Automation 의 Test 버튼을 눌러 실행시키는 경우는 논외입니다.

둘째, 할 수 있는 작업의 차이입니다. Actions 와 Automation 은 둘 다 Data action 을 실행할 수 있습니다. 다만 Actions 는 앱 내부에서 사용자가 버튼을 눌렀을 때를 기본적인 실행 조건으로 잡고 있기 때문에 특정 페이지로 이동하거나, 외부 페이지를 여는 등의 내부 작업에 조금 더 특화되어 있습니다. 그리고 Automation 은 앱 외부와 소통하거나 API 요청을 주고 받는 외부 작업에 더 특화되어 있습니다.

따라서 용도와 목적에 맞게 Actions 와 Automation 을 적절히 섞어가며 사용해야 합니다. 특히 Actions 를 통해 변경되는 데이터를 Automation 의 이벤트 조건으로 삼아 Automation 도 같이 실행되게 하는 등의 응용 작업도 가능합니다.

 

 

● Process 의 구성

Automation 의 Process 를 어떻게 정의하는지 조금 더 세부적으로 알아보도록 하겠습니다.

Automation 은 아래와 같이 구성되어 있습니다.

만들어진 봇(Bot) 은 이벤트(Event) 에 의해 프로세스(Process) 를 실행하며, 각 프로세스(Process) 는 여러 개의 단계(Step) 로 이루어져 있습니다. 단계(Step) 는 Task 와 Action 등의 작업을 진행하거나, 작업 진행을 위한 조건을 걸어주는 역할을 하게 됩니다.

Process 내에 Step을 생성하게 되면 아래 이미지와 같은 작업을 지정할 수 있습니다.

각 작업에 대해 설명해 보겠습니다.

작업 이름 설명
Run a task 메일을 보내거나 파일을 생성하는 등 Task 를 실행합니다. (자세한 내용은 아래에)
Run a data action 지정한 Actions 를 실행합니다.
Branch on a condition 조건 수식(Formula)에 따라 각 step 을 실행할지 말지를 결정합니다.
Wait 특정 조건이 만족되거나 지정한 기간이 될 때까지 기다립니다.
Call a process 다른 Bot 에서 지정한 Process 작업을 가져옵니다.
Return values 값을 return 합니다. return 된 값은 나중에 사용 가능합니다.

다음으로는 각 Task 에 대해 설명해 보겠습니다.

Task 이름 설명
Send an email 지정한 사용자에게 이메일을 보냅니다. 단, 외부로 이메일을 보내려면 앱이 배포되어 있어야 합니다. 이메일은
  1. 이메일 내에 앱시트 화면의 일부가 삽입되는 Embedded app view 와,
  2. 원하는 내용으로 메일을 구성할 수 있는 Custom template 이 있습니다.
Send a notification 지정한 사용자에게 앱 알림을 보냅니다.
Send an SMS 지정한 번호로 문자를 보냅니다.
Call a webhook 앱시트 내의 데이터를 활용하여 웹훅 요청을 보냅니다. Custom url, Slack Hook, AppSheet API 요청이 있습니다.
Create a new file 지정한 템플릿을 기반으로 작성된 새로운 파일을 생성합니다.
Call a script Apps Script 코드를 실행합니다.

앱을 처음 만드실 때는 Task 의 모든 부분을 마스터할 필요는 없습니다. 간단한 템플릿 작성법 정도야 일반인 개발자 수준에서도 커버 가능하지만, 웹훅을 보내거나 스크립트 코드를 작성하는 부분은 고급 과정에서 다루어야 할 어려운 작업들 중 하나이기 때문입니다. 또, 문자를 보내는 것도 외부 솔루션과의 연동이 필요하기 때문에 잘 사용하지 않습니다.

따라서 앱시트 중급 개발자 입장에서는 이메일을 보내는 것과, 앱 알림을 보내는 것, 그리고 파일을 생성하는 세 가지 정도만 공부해 두시면 됩니다. 나머지는 앱시트가 API 작업도 할 수 있구나, Apps Script 코드와 연동해서 조금 더 복잡한 작업도 처리할 수 있구나 정도로만 이해해 주시면 되겠습니다.

지금까지 Automation 의 정의와 Actions 와의 차이점, Process 의 구성에 대해 알아보았습니다. Actions 와 Automation 의 기능들을 활용하여 정말 다양한 기능들을 만들 수 있을 것 같지 않나요? 다음 시간에는 실제로 Automation 을 사용하는 방법을 여러 가지 예시와 함께 설명해 드리도록 하겠습니다. 같이 열심히 공부해 보아요~!!

반응형
반응형

안녕하세요.

이번에는 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 기능에 대해 알아보도록 하겠습니다. 읽어주셔서 감사합니다. 같이 열심히 공부해 보아요~

반응형
반응형

안녕하세요.

약 일주일 전, 앱시트 전용 데이터베이스인 AppSheet Database가 출시하였습니다. 아래 구글이 발표한 내용을 살펴보도록 하겠습니다.

지난 몇 년간, 앱시트 팀은 앱 개발 경험에 대한 이해를 위해 여러 앱시트 앱 개발자와 사용자들을 대상으로 리서치를 진행해 왔습니다. 저희는 이 리서치를 통해 앱 개발 시 데이터 원본과 앱시트 상에서의 데이터가 가지는 여러 가지 차이점으로 인해서 생기는 어려움이 있다는 것을 알게 되었습니다. 보통 앱시트 앱을 만들기 위해서 구글의 스프레드시트를 많이 사용하는데요, 관련해서 아래와 같은 어려움들이 있었습니다.

  • 앱 생성을 위해 매번 새 스프레드시트를 만들고 포맷을 맞추는 것이 번거로움
  • 데이터 구조의 변동이 있을 때마다 앱에 오류가 발생함
  • 개발자가 철저히 신경쓰지 않으면 사용자 입력 데이터에 오류가 발생할 여지가 있음
  • 스프레드 시트의 크기가 커질수록 확장성 및 동기화 속도가 줄어든다

이러한 문제점을 해결하기 위해, 저희는 앱시트 전용 데이터베이스를 만들어서 시민 개발자 분들이 더 쉽고 안전하게 데이터를 관리할 수 있도록 하기 위해 작업을 진행했습니다.

이제 앱시트 전용 데이터베이스인 AppSheet Database가 베타 기능으로 출시되었습니다! 베타 기간 동안, 모든 사용자들은 AppSheet Database 사용이 가능하며, 이 기능은 직접 앱시트 데이터베이스를 추가하지 않는 한 기존 앱에 영향을 주지 않습니다. 이 기능은 모든 사용자가 무료로 사용 가능하지만 데이터의 양은 테이블당 1만 행, 총 20 테이블까지로 제한됩니다. 이 기능을 정식 출시하게 되면 이 제한사항들은 변경될 예정입니다.

이 기능을 사용하려면 My Apps 페이지에서 새 데이터베이스를 생성해 주어야 합니다. 앱을 스크래치로부터 작성하는 'Blank app'이라는 옵션도 있습니다. 이 'Blank app'을 선택하게 되면 앱시트 데이터베이스를 데이터 소스로 하는 신규 앱이 생성됩니다.

데이터베이스 편집기에서는 앱시트의 '데이터' 메뉴에서와 같이 각 컬럼의 타입을 지정할 수 있습니다.

데이터 설정 이후, 데이터베이스에서 곧바로 앱을 생성할 수 있습니다. 이 버튼은 실행중인 테이블에 해당하는 앱을 제작해 주며, 참조 기능을 쓰거나 다른 테이블을 추가해야 할 경우 앱시트 편집기에서 데이터 테이블을 추가해 주어야 합니다. 이 부분에 대해서는 기능 개선을 위해 노력하고 있습니다.

앱시트 데이터베이스는 현재 베타 기능으로 출시되어 있기 때문에 이 기능을 사용해 보시다가 이슈가 발생한다면 언제든지 말씀해 주시기 바랍니다. 이후에 추가될 기능으로는 좀더 자연스러운 데이터 가져오기/내보내기 기능, 데이터베이스 복구 기능, 데이터베이스 공유 후 이메일 알림 등이 있습니다.

앱시트 공식 문서에도 곧 이런 내용들이 업데이트 될 예정입니다. 만약 이 기능을 사용하지 않으시려면 아래의 링크를 참고해 주시기 바랍니다.

 

Disable AppSheet databases - AppSheet Help

This is a preview release of AppSheet databases. See product launch stages. Preview offerings are intended for use in test environments only. This feature is not recommended for use in production apps. Disable AppSheet databases to prevent use by your team

support.google.com

감사합니다. 즐거운 개발 되십시오.

 

※ 이 글은 앱시트 커뮤니티의 글을 번역한 내용입니다.

 

Introducing new AppSheet database feature in public preview

Hi everyone!  Over the past year, we’ve been conducting user research with app creators, end users and some of you to better understand the app creation experience. Through this research we’ve uncovered challenges with the existing external data sourc

www.googlecloudcommunity.com

 

반응형

+ Recent posts