- 인쇄
이 문서에서는 GxP 환경에서 앱 빌드에 접근하는 데 필요한 기본 지식을 제공합니다.
이 문서에서는 변수, 테이블, 완료 레코드와 같은 기본적인 Tulip 개념에 대한 사전 지식이 있다고 가정합니다.
언어
앱의 스타일과 언어는 사용 목적에 적합해야 합니다. 표준 운영 절차, 작업 지침 및 방법은 필수 필수 스타일로 작성해야 합니다.
버전 관리
앱을 게시할 때는 댓글 섹션에 이전에 게시한 앱과 비교하여 UI 새로 고침, 오류 수정 등 변경 사항의 특성을 설명하는 것이 좋습니다.
각 단계에 표시할 표준 정보
사용자에게 적절한 컨텍스트를 제공하기 위해 각 단계에 표시해야 하는 요소는 다음과 같습니다:
- 앱이 처리하는 데 사용되는 주요 항목의 이름 또는 고유 ID. '항목'(예: 사용 또는 처리 중인 배치, 주문, 장비 또는 도구). 경우에 따라 여러 항목이 있을 수 있습니다. 대부분의 경우 앱 시작 시 해당 정보가 포함된 테이블 레코드를 생성하거나 로드하여 이 작업을 수행해야 합니다.
- 로그인한 사용자
- 앱 버전
- 앱 단계 이름
또한 모든 단계에 '현재 사용자 로그오프' 동작을 트리거하는 로그오프 버튼이 있는 것이 좋습니다.
타임스탬프 및 날짜 형식
완료 레코드의 타임스탬프는 시간대 오프셋이 있는 UTC로 캡처됩니다. 날짜 및 시간 형식은 모든 앱의 인스턴스 수준에서 설정할 수 있습니다. 이 작업은 인스턴스의 '설정' 메뉴의 '날짜 및 시간' 섹션에서 수행되며 계정 소유자가 구성해야 합니다.
전자 서명 위젯으로 전자 서명 캡처하기
ER/ES(전자 기록/전자 서명) 규정을 준수하기 위해 서명은 서명자에게 컨텍스트를 제공해야 합니다:
- "무엇"
서명의 컨텍스트(예: 배치, 주문, 장비 등) - "왜"
서명의 이유(예: 프로세스 주문 해제)
서명에 권장되는 구조는 다음과 같습니다:
- 전자 서명이 필요한 단계를 그룹화하고 그룹의 마지막 단계에 전자 서명 위젯을 포함합니다.
- 해당하는 경우 모든 관련 데이터를 보여주는 위젯 앞에 요약 단계를 만들어 서명자에게 서명의 컨텍스트("내용")를 제공합니다.
- 양식 제목(예: "라벨 재인쇄를 위한 서명")과 사용자 이름 레이블(예: "감독자")을 사용하여 서명의 이유("이유")를 정의합니다.
서명이 제출되면 Tulip은 자동으로 추가 정보를 기록합니다:
- "양식에 서명한 '사람'
- 서명이 제출된 "시기"
- 추가 코멘트
현재 앱 데이터를 변경 불가능한 완료 레코드에 커밋하는 것은 필수입니다. 이는 두 가지 방법으로 달성할 수 있습니다:
- 서명 위젯의 제출 버튼에 있는 '사용자 지정 작업' 트리거에서 '모든 앱 데이터 저장' 작업을 사용합니다.
- 제출 버튼에 대한 표준 "앱 완료" 설정을 사용하거나 "사용자 지정 작업" 트리거에서 "앱 완료" 작업을 사용하여 앱을 완료합니다.
모든 앱 데이터 저장 액션
"모든 앱 데이터 저장" 액션은 모든 앱 변수의 현재 값과 로드된 모든 테이블 레코드의 현재 필드 값을 앱의 완료 레코드에 저장합니다. 완료 레코드는 변경할 수 없으며 삭제할 수 없습니다.
앱 완료
앱 완료는 "모든 앱 데이터 저장" 작업과 동일한 방식으로 데이터를 저장합니다. 또한 앱 완료는 모든 변수를 기본값으로 재설정하지만 "완료 시 지우기" 옵션이 비활성화되어 있는 변수는 재설정되지 않습니다. 또한 모든 테이블 레코드 플레이스홀더가 지워집니다. 앱 완료 후 동일한 앱을 처음부터 다시 시작하거나 동일한 앱 또는 다른 앱 내의 특정 단계로 진행할 수 있습니다. 이는 완료를 수행하는 데 사용되는 '전환'에서 구성할 수 있습니다.
앱 취소
앱 취소는 앱 완료와 동일하지만 모든 변수가 기본값으로 재설정됩니다.
자동 앱 초기화
실행 중에 여러 번 완료해야 하는 앱의 경우(예: 여러 서명으로 인해) 각 완료 전에 컨텍스트를 저장하는 것이 좋으므로 앱이 다시 시작된 후 컨텍스트를 자동으로 복원하도록 앱을 구성할 수 있습니다. 컨텍스트는 테이블 레코드의 ID(예: 현재 배치) 및/또는 변수(예: 카운터)일 수 있습니다. 앱 컨텍스트를 테이블에 저장하려면 "앱 정보: 스테이션 이름"을 레코드 ID로 사용하는 것이 좋습니다. 이 레코드는 "앱 시작" 트리거를 사용하여 앱 (재)시작 시 로드할 수 있습니다. 동일한 접근 방식을 사용하여 다른 앱으로 원활하게 전환할 수 있습니다.
자동 로그아웃 또는 플레이어 메뉴에서 '다시 시작'을 선택하는 등의 이유로 앱을 취소한 후 앱 실행을 재개할 때도 유사한 원칙을 적용할 수 있습니다. 이러한 사용 사례의 경우 앱 재시작 후 앱을 열기 위한 추가 컨텍스트 정보로 단계 이름을 저장하는 것이 좋습니다. 이 이름은 마지막으로 표시된 단계의 이름이나 복구를 위해 열어야 하는 특정 단계의 이름일 수 있습니다.
예외 및 예외별 검토 활성화
하나의 튤립 테이블을 사용하여 앱 실행 중에 발생하는 모든 예외를 대조하는 것이 좋습니다. 모든 예외(결함, 관찰 등)는 예외에 대한 모든 관련 정보(유형, 설명, 날짜/시간, 앱, 운영자 등)를 포함하여 해당 Tulip 테이블에 단일 레코드로 저장해야 합니다. 또한 이 기록은 "연결된 기록" 기능을 사용하여 예외와 관련된 모든 아티팩트(배치, 주문, 재료, 장비, 방 등)의 기록에 연결해야 합니다.
기록, 기록 수정, 기록 이력
GxP 관련 데이터는 관련 아티팩트(배치, 주문, 자재, 장비, 룸 등)를 참조하여 튤립 테이블에 기록으로 저장하는 것이 좋습니다.
변경 사항이 기록 내역에 반영되므로 원본 기록 내에서 GxP 관련 데이터를 수정하는 것이 좋습니다. 수정은 서명 양식으로 제출해야 합니다.
기록 검색을 용이하게 하려면 모든 항목에 대해 명확하고 체계적인 ID(예:-)를 할당하는 것이 좋습니다.
기록 이력
위에서 설명한 것처럼 변수 값은 앱을 완료하거나 취소할 때 완료 레코드에 저장됩니다. 이와 대조적으로 테이블의 데이터 조작은 실시간으로 이루어집니다. 테이블 레코드의 모든 필드에 대한 변경 사항은 컨텍스트 정보(사용자, 앱, 앱 버전, 스테이션, 타임스탬프)와 함께 자동으로 기록됩니다.
모든 Tulip 테이블 레코드에는 레코드 히스토리가 있습니다. 이 레코드 기록에는 컨텍스트 정보(사용자, 앱, 앱 버전, 스테이션, 타임스탬프)를 포함하여 기록된 모든 변경 사항이 표시됩니다.
또한, 기록 내역에는 해당 기록이 포함된 모든 앱 완료 또는 취소 데이터, 즉 완료/취소 시 로드된 데이터도 표시됩니다. 여기에는 해당 완료/취소에 기록된 모든 전자 서명이 포함됩니다. 서명은 서명이 수행된 타임스탬프에 따라 기록 기록 타임라인에 표시됩니다. 다른 모든 완료 데이터는 완료/취소 타임스탬프와 함께 표시됩니다.