kintone 수식 플러그인에서 테이블의 항목 값별로 번호 부여

2483 단어 금과
계산식 플러그인으로 테이블내 항목의 값별로 번호 부여를 할 수 없는가와 상담을 받았으므로, 해 보았습니다.
테이블내의 계산으로 실행 속도에 문제가 있었으므로, 계산식 플러그인을 변경해 대응했습니다.

테이블 행 추가 / 삭제 조작 예



문자열 T1에 드롭다운 T1 값별로 숫자를 추가합니다.



환경



  • 금과 소리

  • 수식 플러그인 표준 기능에 없는, 다양한 계산식을 지정 가능한 플러그인 Ver.29 이후

  • 앱 설정


  • 테이블에 숫자 항목으로 행 번호, 문자열 및 드롭다운을 배치합니다.
  • 값별 번호 부여를 위한 작업용 항목으로서, 문자열 항목 「연결」을 추가.



  • 수식 플러그인 설정


  • 순환 참조 허용을 선택합니다.



  • 계산식


  • 「행 번호」:ROWNO(행 번호)+1※ROWNO 함수는, 지정된 테이블 항목의 0으로부터 시작되는 행 위치를 돌려줍니다.
  • "연결": TARRAY(드롭다운 T1) ※ 문자열 항목에 TARRAY 함수를 지정하면 처리 결과의 배열을 쉼표 ","로 구분된 문자열로 변환합니다.
    테이블의 행마다 행 전체의 캐릭터 라인 연결을 실시하면(자), 행수가 증가하면 처리 시간이 증대하므로, 일단 전체의 캐릭터 라인을 작성해 둡니다.
    ※랭크:1 테이블내의 계산보다 먼저 처리시키기 위해, 1을 지정합니다.

  • 문자열 T1: IF(드롭다운 T1,
    드롭 다운 T1 & (
    ARRAY_COUNT(SPLIT(JOIN(SLICE(SPLIT(연결,","),0,ROWNO(Table)+1),
    ",")&",",드롭다운T1&","))-1))
  • SPLIT(연결,","): 연결을 드롭다운 T1의 배열로 변환
  • SLICE(SPLIT(연결,","),0,ROWNO(Table)+1): 선두행으로부터 처리중의 테이블행까지의 값을 취득


  • 수식 플러그인 Ver.29 변경점의 영향



    이번 프로토타입에서는 SLICE 함수와 테이블내 항목의 계산 처리의 퍼포먼스 개선이 필요했습니다.
    Ver.28 이전에 실장했을 경우, 50행 정도의 행수가 있으면 테이블의 추가·변경 등으로 계산 처리에 10초 정도 걸리고 있었습니다. ※계산 처리 내용은 다릅니다.
    Ver.29에서는 같은 조건에서 약 1초 정도의 계산처리로 개선되었습니다.

    · MATCH 함수 추가
    · SLICE 인수로 계산식을 지정 가능으로 변경
    · ROWNO에 테이블 지정시의 문제 대응
    테이블 행 추가/삭제로 ROWNO 계산식이 실행되지 않음
    · 테이블 내 항목의 계산 처리 성능 향상
    순환 참조 및 편집 불가의 테이블내 항목의 값 변경 이벤트 처리 억제

    후기



    아직 계산식 플러그인으로 구현하기 어려운 문제가 있습니다.
    이번과 같은 개선으로 조금씩이라도 실현할 수 있는 범위를 넓혀가고 싶습니다.

    좋은 웹페이지 즐겨찾기