템플릿 병합 규칙

POST /templates/merge로 여러 소스를 병합할 때 적용되는 규칙입니다.

  1. 핵심 규칙
  2. 상세 규칙
  3. 주의사항
  4. 병합 제한

핵심 규칙

병합 결과는 다음 규칙에 따라 결정됩니다.

1. 앞 소스 우선 원칙

아래 항목들은 소스에 템플릿이 포함되어 있는지 여부에 따라 적용되는 값이 달라집니다.

항목소스에 템플릿이 있는 경우소스에 템플릿이 없는 경우 (파일만)
템플릿 제목가장 앞에 있는 템플릿의 제목임시_템플릿_{날짜}
문서 라벨가장 앞에 있는 템플릿의 라벨빈 배열
진본증명도장가장 앞에 있는 템플릿의 설정비활성화
외부 참조자가장 앞에 있는 템플릿의 값빈 배열
결재선모든 소스가 동일해야 병합 가능빈 값

2. 서명자 병합

서로 다른 소스의 서명자가 동일 인물인지 판단하여, 동일하면 병합, 아니면 별도 유지합니다.

서로 다른 소스의 서명자를 role → name → contact 순으로 비교하여, 3개의 속성이 모두 일치하면 병합합니다.
병합된 서명자의 설정은 앞 소스의 값을 따릅니다.

아래 속성 중 하나라도 불일치하면 분리합니다. 분리 시 앞 소스의 서명자는 원본 역할을 유지하고, 뒤 소스의 서명자부터
- 1, - 2 접미사가 추가됩니다.

📘

비교 항목이 양쪽 모두 미설정인 경우 일치로 취급합니다. 예를 들어, 두 소스의 서명자 모두 이름이 비어 있으면 이름은 일치한 것으로 봅니다.

병합된 서명자의 설정 규칙:

항목규칙
입력란(fields)양쪽 소스의 입력란이 합산
서명 방식(사인/도장)앞 소스의 설정으로 통일
한 번의 서명 옵션앞 소스의 설정으로 통일
서명자 크기 조절 여부앞 소스의 설정으로 통일
인증수단(verification)앞 소스의 설정만 적용
첨부파일 요청모든 소스의 첨부파일 요청을 유지

분리된 서명자의 역할명 중복 처리:

병합되지 않은 서명자들 간에 역할명이 동일한 경우, 첫 번째 서명자는 원본 역할을 유지하고, 이후 중복되는 서명자부터 순서대로 역할에 - {숫자}가 추가됩니다.

예: 근로자, 근로자 - 1, 근로자 - 2

서명자 순서 결정:

서명자를 가진 소스 중 가장 앞 소스가 순서 있는 서명(ordered signing)이면, 소스 순서대로 서명 순서가 부여됩니다.

예: 템플릿 A(갑, 을, 병) + 템플릿 B(을, 무, 기) → 병합 결과: 갑, 을, 병, 무, 기 ("을"은 동일 인물로 병합, 나머지는 소스 순서대로 배치)

가장 앞 소스가 순서 없는 서명(unordered signing)이면, 서명 순서는 모두 1로 설정됩니다.

📘

서명자가 1명인 템플릿은 순서 있는 서명으로 취급됩니다.

3. DataLabel 자동 변환

병합 전 템플릿의 데이터별 dataLabel을 시스템이 자동으로 변환하여 중복 가능성을 최소화합니다.

  • 모든 소스의 dataLabel이 변환 대상입니다.

  • 변환 형식: {기존_dataLabel}_{템플릿_제목}_{템플릿_ID_앞_8자리}

  • dataLabel 최대 길이: 100글자


각 구성 요소의 축약 규칙

구성 요소축약 규칙
기존 dataLabel45자 초과 시 앞 42자 + ... (총 45자)
템플릿 제목45자 초과 시 앞 20자 + ... + 뒤 22자 (총 45자)
템플릿 ID앞 8자 고정
⚠️

변환된 dataLabel이 소스 간에 여전히 중복되는 경우 병합이 실패합니다. 서로 다른 소스에서 동일한 dataLabel과 유사한 템플릿 제목을 사용하는 경우 주의하세요.

📘

체크박스 필드 그룹에 속하는 체크박스 필드의 dataLabel은 위 변환 규칙이 적용되지 않습니다.


상세 규칙

열람자 병합

열람자를 가진 소스 중 가장 앞에 있는 소스의 열람자를 사용합니다.

📘

열람용 템플릿끼리 병합하는 경우, 열람자를 가진 소스 중 가장 앞에 있는 소스의 열람자 1명만 유지됩니다.

필드(Field) 처리

각 소스의 필드 위치(position.page)는 병합된 PDF의 페이지 오프셋에 맞게 자동으로 재계산됩니다. x, y 좌표(상대값 0~1)는 변경되지 않습니다.

서명 필드 처리

서명자가 병합된 경우, 뒤 소스의 서명 필드는 다음과 같이 조정됩니다.

항목조정 규칙
서명 방식(사인/도장)앞 소스의 서명자 설정으로 통일
한 번의 서명 옵션앞 소스의 서명자 설정으로 통일
필드 위치·크기서명 방식 변경 여부에 따라 자동 조정

필드 그룹(Field Group) 처리

필드 그룹 타입병합 규칙
CHECKBOX_GROUP모든 소스의 체크박스 그룹을 그대로 유지합니다.

첨부파일(Attachment) 처리

첨부파일 유형병합 규칙
요청자 첨부파일소스 중 가장 앞에 있는 소스의 요청자 첨부파일을 사용합니다.
서명자 첨부파일모든 소스의 서명자 첨부파일을 유지합니다.

인증수단(Verification) 처리

참여자 유형

병합 규칙

서명자

서명자가 병합된 경우, 앞 소스 서명자의 인증수단을 사용합니다.
병합되지 않은 경우, 각 서명자에 설정된 인증수단을 유지합니다.

열람자

열람자를 가진 소스 중 가장 앞에 있는 소스의 인증수단을 사용합니다.


주의사항

  • 임시 템플릿 TTL: 2시간. 만료된 템플릿으로 서명 요청 시 404 Not Found가 발생할 수 있습니다.
  • 동일 임시 템플릿 ID로 유효기간 내 복수 서명 요청 가능합니다. (각각 별개 문서 생성)
  • PDF 페이지 순서는 sources 배열 순서를 따릅니다.

병합 제한

⚠️

병합 실패 조건

설정 관련

  • 설정 고정 템플릿을 병합하는 경우
  • 서명용 템플릿과 열람용 템플릿을 병합하는 경우
  • 모든 소스의 결재선이 동일하지 않은 경우

파일 크기

  • 병합된 문서 파일의 크기가 10MB를 초과하는 경우

필드 및 참여자 수

  • 서명자 수가 30명을 초과하는 경우
  • 전체 입력란이 2,000개를 초과하는 경우
  • 서명 필드가 100개를 초과하는 경우
  • 이미지 필드가 7개를 초과하는 경우
  • 드롭다운 필드가 100개를 초과하는 경우
  • 첨부파일이 30개를 초과하는 경우