Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

액션 기반 인라인 편집

인라인 편집(Inline edit)은 표의 셀이나 객체 속성 값을 직접 바꾸는 입력 방식입니다. 액션 기반 인라인 편집에서는 모든 매개변수가 선택 사항이며, 지정하지 않은 입력은 객체의 현재 값으로 채워집니다. 사용자는 한 속성씩 바꿀 수 있습니다.

여러 편집을 검증하고 제출하는 방식은 일반 액션을 하나씩 실행하는 경우와 다릅니다. 사용하려는 앱의 구성 요건과 한 번에 제출할 편집 간의 관계를 확인해야 합니다.

Object Explorer와 Object Views 구성

Object Explorer 결과 화면과 Object Views의 기본 속성 위젯 또는 지표 카드 위젯에서 인라인 편집을 사용할 수 있습니다.

  1. Ontology Manager에서 객체 유형의 Properties를 엽니다.
  2. Interaction 탭에서 속성을 선택합니다.
  3. 옆 패널의 Inline edit에서 기존 액션 유형을 고르거나 새 액션 유형을 생성합니다.

이 설정에서 속성 하나에는 인라인 편집 액션 유형 하나만 지정할 수 있습니다. 여러 속성이 같은 액션을 사용하거나, 각 속성이 다른 액션을 사용할 수 있습니다.

Object Explorer와 Object Views용 액션은 다음 조건을 충족해야 합니다.

  • 한 객체 유형의 객체 하나만 수정합니다.
  • 기본값을 활성화합니다.
  • 기본값은 인라인 액션을 정의한 객체 참조 매개변수에서 가져옵니다. 변경 속성을 정적 값이나 Current User, Current Time 같은 특수 값에 매핑할 수 없습니다.
  • 표시 상태와 덮어쓰기를 설정하더라도 두 앱의 인라인 편집에서는 해당 설정을 무시합니다. 일반 액션 폼의 표시 동작을 그대로 기대하지 않아야 합니다.
  • 후단 웹훅(Side effect webhook)과 부수 효과 알림을 활성화할 수 없습니다.

Workshop에서의 사용

Workshop에서 인라인 편집으로 사용하기 위해 액션 유형에 추가 설정을 할 필요는 없습니다. Object Table 위젯에서 셀 편집을 구성합니다. 다만 편집할 수 있는 셀을 보여 주는 것과 여러 셀의 변경을 안전하게 제출할 수 있는 것은 별개의 조건입니다.

일반적인 인라인 편집은 편집별 검증을 거친 뒤 변경을 일괄 제출합니다. 같은 표에 구성한 액션들은 서로 충돌하지 않는 편집을 만들어야 합니다. 다음 관계가 있으면 셀 편집에 적합하지 않습니다.

  • 한 액션이 다른 액션에서 바뀔 수 있는 데이터를 읽습니다.
  • 여러 액션이 같은 객체에 쓰려고 합니다.
  • 여러 액션이 같은 링크를 생성합니다.
  • 여러 편집에 걸친 합계 등의 집계값을 일관되게 유지하려고 합니다.

인라인 편집 결과가 같은 객체를 두 번 수정하려 하면 오류가 발생합니다. 조인 테이블을 사용하는 링크의 추가나 삭제도 지원하지 않으며 사용자에게 오류가 표시됩니다.

제출 조건이 검사하는 상태

매개변수와 전역 제출 조건은 편집할 객체별로 평가합니다. 그러나 각 검사는 다른 편집을 아직 적용하지 않은 상태를 기준으로 합니다. 여러 액션이 공유하는 객체나 연결된 객체의 값에 의존하는 제출 조건은 인라인 편집에 적합하지 않습니다.

가상의 Delay Flight 액션이 다음 조건을 가진다고 가정합니다.

  • 항공편 하나의 지연은 최대 20분입니다.
  • 한 공항에 속한 모든 항공편의 지연 합계는 최대 50분입니다.

셀을 수정할 때마다 두 조건을 모두 검사하더라도, 공항 합계 조건은 그 셀의 새 지연 값과 아직 편집하지 않은 기존 열의 값을 비교합니다. 다른 셀에서 입력한 새 지연 값까지 누적하여 검사하지 않습니다. 따라서 개별 편집은 모두 통과해도 일괄 제출 후의 합계가 50분을 넘을 수 있습니다. 이 액션을 표 편집에 그대로 연결하면 하나씩 실행할 때와 다른 결과가 생깁니다.

시나리오에서의 실행 차이

시나리오(Scenario)에 인라인 편집을 적용할 때는 액션들을 순차적으로 적용하지만 실행 순서는 결정적이지 않습니다. 일반 인라인 편집에서 같은 객체에 대한 중복 쓰기로 실패하던 구성이 시나리오에서는 성공할 수 있습니다. 실행 순서나 이 차이에 의존하도록 앱을 설계하지 않아야 합니다.