공통 빌딩 블록 > 데이터베이스 연결 빌딩 블록 > 사전 작업, 작업 중 및 사후 작업 이벤트 발송 및 유효성 검사
사전 작업, 작업 중 및 사후 작업 이벤트 발송 및 유효성 검사
생성, 업데이트 또는 삭제 작업이 시작될 때마다 데이터베이스가 업데이트되기 전에 사전 작업 유효성 검사기 사물(PTC.DBConnection.PreActionValidator)이 호출됩니다. 유효성 검사가 성공하면 데이터베이스가 업데이트되고 작업 중 프로세서 사물(PTC.DBConnection.OnActionProcessor)이 호출됩니다. 데이터베이스 업데이트가 성공적으로 완료된 후, 사후 작업 처리기 사물(PTC.DBConnection.PostActionHandler)이 다른 스레드로 호출되며 이는 작업 실행에 영향을 미치지 않습니다.
다음 다이어그램은 사전 작업 유효성 검사기, 작업 중 프로세서 및 사후 작업 처리기의 전반적인 설계를 나타냅니다.
사전 작업 유효성 검사기 및 사후 작업 처리기 전반적인 설계의 다이어그램.
다음 다이어그램은 사전 작업 유효성 검사가 성공적으로 완료된 경우 사전 작업 유효성 검사기, 작업 중 프로세서 및 사후 작업 처리기의 발송자 시퀀스를 보여줍니다.
사전 작업 유효성 검사가 성공적으로 완료된 경우 사전 작업 유효성 검사기와 사후 작업 처리기의 발송자 시퀀스를 보여주는 다이어그램.
검증이 실패하면 작업이 완료되지 않고 데이터베이스가 업데이트되지 않습니다. 다음 다이어그램은 사전 작업 유효성 검사에 실패한 경우 발송자 시퀀스를 보여줍니다.
사전 작업 유효성 검사에 실패한 경우 발송자 시퀀스를 보여주는 다이어그램.
사전 작업 유효성 검사기 사물(PTC.DBConnection.PreActionValidator)은 사전 작업 유효성 검사기 사물 템플릿(PTC.DBConnection.PreActionValidator_TT)을 상속합니다. 작업 중 프로세서 사물(PTC.DBConnection.OnActionProcessor)은 작업 중 프로세서 사물 템플릿(PTC.DBConnection.OnActionProcessor_TT)을 상속합니다. 마찬가지로, 사후 작업 처리기 사물(PTC.DBConnection.PostActionHandler)은 사후 작업 처리기 사물 템플릿(PTC.DBConnection.PostActionHandler_TT)을 상속합니다. 이러한 사물 템플릿은 사전 작업, 작업 중 및 사후 작업 이벤트 발송을 트리거하기 위해 필요한 사물 형태를 구현합니다.
생성, 업데이트 또는 삭제 작업이 시작되면 사전 작업 유효성 검사기의 적절한 사전 작업 서비스가 트리거됩니다(PreCreateAction, PreUpdateAction 또는 PreDeleteAction). 그 다음, 사전 작업 서비스는 CallServices 서비스를 수행하고 이 서비스는 사전 작업 유효성 검사기에서 데이터 변경을 검토하고 구성을 읽습니다. 해당 작업 및 데이터 셰이프에 대해 구성된 서비스가 있는 경우, CallServices는 적절한 유효성 검사 서비스를 발송합니다. 유효성 검사의 일부가 실패하면 전체 작업이 성공하지 않습니다.
사전 작업 유효성 검사가 성공하면 데이터베이스가 업데이트되고 작업 중 서비스가 트리거됩니다(OnCreateAction, OnDeleteAction, OnUpdateAction). 그런 다음 작업 중 서비스는 작업 중 프로세서의 구성을 읽는 CallServices 서비스를 실행합니다. 서비스가 해당 데이터 셰이프 및 작업에 대해 구성된 경우 해당 작업 중 서비스가 발송됩니다.
생성, 업데이트 또는 삭제 작업이 완료되면 사후 작업 처리기가 트리거됩니다(PostCreateAction, PostUpdateAction 또는 PostDeleteAction). 그 다음, 사후 작업 서비스가 CallServices 서비스를 실행하며 이 서비스는 기본 사후 작업 처리기에 대한 구성을 읽습니다. 해당 데이터 셰이프와 작업에 대해 서비스가 구성되어 있는 경우, 해당 사후 작업 서비스가 발송됩니다.
서비스는 사전 작업 유효성 검사기 및 사후 작업 처리기에 제공되며, 작업 정의, 교대 근무 또는 사이트가 생성되거나 업데이트될 때마다 실행됩니다. 이러한 구현은 고유한 사전 및 사후 작업 서비스 구현을 위한 모델로 사용할 수 있습니다.
사전 작업 서비스 예제
이 섹션에서는 작업 지시서 작업을 예로 사용하여 사전 작업 서비스가 작동하는 방식에 대해 설명합니다.
PTC.JobOrderImpl.Manager 사물에 있는 서비스는 JobOrderPreCreate, JobOrderPreUpdate, ValidateDispatchStatusValidateJobOrderSite입니다.
작업 지시서가 생성되거나 업데이트되고 실행 상태가 지정되면 작업 진행을 허용하기 전에 실행 상태의 유효성을 검사합니다. 수행되고 있는 작업에 따라 JobOrderPreCreate 또는 JobOrderPreUpdate서비스가 호출됩니다. 그런 다음 해당 작업은 ValidateDispatchStatusValidateJobOrderSite 서비스를 호출합니다. 단일 작업에서 여러 작업 지시서가 생성되거나 업데이트되는 중이고 해당 작업 정의 중 하나에 유효하지 않은 실행 상태가 지정되면 전체 작업이 완료되지 않습니다. 로그 수준디버그로 설정하면 모니터링 > ScriptLog에서 유효성 검사 서비스와 오류에 대한 세부 정보를 볼 수 있습니다. 유효성 검사에 실패한 경우 예외를 발생시키는 방법에 대한 예제는 ValidateJobOrderSite 서비스를 참조하십시오.
작업 중 서비스 예제
PTC.JobOrderImpl.Manager 사물에 있는 서비스는 OnCreateJobOrder, OnUpdateJobOrderUpdateJobOrderExecutionResponsesForJobOrders입니다.
작업 지시서가 생성되거나 업데이트된 후, 수행 중인 작업에 따라 OnCreateJobOrder 또는 OnUpdateJobOrder 서비스가 호출됩니다. 그런 다음 해당 작업은 UpdateJobOrderExecutionResponsesForJobOrders 서비스를 호출합니다.
사후 작업 서비스 예제
PTC.SCA.SCO.DefaultProductionOrderManager 사물에 있는 서비스는 WorkDefinitionPostCreate, WorkDefinitionPostUpdateLogWorkDefinitionExecutionStatusChange입니다.
작업 정의가 성공적으로 생성되거나 업데이트된 후, 수행 중인 작업에 따라 WorkDefinitionPostCreate 또는 WorkDefinitionPostUpdate 서비스가 호출됩니다. 그 다음, 해당 작업에서 LogWorkDefinitionExecutionStatusChange 서비스를 호출합니다. 이 서비스에서는 해당 작업을 담당하는 에이전트, 생성되거나 업데이트된 작업 정의의 UID 및 실행 상태 UID와 값 등 작업에 대한 세부 정보가 로그로 기록됩니다. 이 세부 정보는 > 로 설정한 후 모니터링ScriptLog에서 볼 수 있습니다.
사전 작업, 작업 중 및 사후 작업 서비스 추가
PTC.DBConnection.PreActionValidator 사물, PTC.DBConnection.OnActionProcessor 사물 및 PTC.DBConnection.PostActionHandler 사물은 편집할 수 없습니다.
추가로 사전 작업, 작업 중 또는 사후 작업 서비스를 추가하려면 다음을 수행하십시오.
1. 추가 사전 작업 서비스의 경우 PTC.DBConnection.PreActionValidator 사물을 복제합니다. 추가 작업 중 서비스의 경우 PTC.DBConnection.OnActionProcessor를 복제합니다. 추가 사후 작업 처리기 서비스의 경우 PTC.DBConnection.PostActionHandler 사물을 복제합니다. 이 절차에서는 이러한 복제 사물을 각각 PTC.DBConnection.PreActionValidator_Duplicate 사물, PTC.DBConnection.OnActionProcessor_Duplicate 사물 및 PTC.DBConnection.PostActionHandler_Duplicate 사물이라고 합니다. 자세한 내용은 빌딩 블록 엔티티 복제를 참조하십시오.
2. 데이터 셰이프가 속한 빌딩 블록에 대한 관리자 사물에 대한 사전 작업, 작업 중 및 사후 작업 서비스를 작성합니다. 예를 들어 PTC.JobOrderImpl.Manager 사물에서 작업 지시서에 대한 사전 작업, 작업 중 및 사후 작업 서비스를 작성합니다.
3. PTC.DBConnection.PreActionValidator_Duplicate 사물, PTC.DBConnection.OnActionProcessor_Duplicate 사물 또는 PTC.DBConnection.PostActionHandler_Duplicate 사물에 대한 구성 페이지의 ActionConfigurationSettings 구성 테이블에 새 엔트리를 필요에 따라 추가합니다.
DataShapeName - 이 사전 작업, 작업 중 또는 사후 작업 서비스가 적용되는 데이터 셰이프의 이름을 검색하고 선택합니다.
Action - Create, Update 또는 Delete 작업을 입력합니다. 값은 대소문자를 구분하며 여기 제시된 대로 정확히 입력해야 합니다.
ThingName - 서비스가 상주하는 관리자 사물의 사물 이름(예: PTC.JobOrderImpl.Manager)을 검색하고 선택합니다.
ServiceName - CallServices에서 발송할 서비스의 이름을 입력합니다. 구현이 여러 서비스로 구성된 경우, 다른 서비스를 호출하는 초기 서비스를 입력합니다. 값은 대소문자를 구분하며 서비스 이름과 정확히 일치해야 합니다.
* 
구현에는 일련의 서비스가 포함될 수 있으나, ActionConfigurationSettings 구성 테이블에 지정되고 CallServices에서 발송한 서비스에는 이름이 DataChanges인 입력 매개 변수가 포함되어야 합니다. 이 입력 매개 변수는 PTC.DBConnection.DataChange 데이터 셰이프의 인포테이블입니다.
4. 추가를 클릭한 다음 저장을 클릭하여 구성 변경 내용을 저장합니다.
5. 시스템에 대해 구성된 데이터베이스 사물(예: PTC.DBConnection.MSSQLDatabase)로 이동합니다.
* 
PTC.DBConnection.Manager구성 페이지에 있는 DefaultDatabaseConfiguration 구성 테이블에서 시스템에 대해 구성된 데이터베이스 사물을 찾을 수 있습니다.
6. 데이터베이스 사물에 대한 구성 페이지의 DatabaseValidationConfigurationTable에서 PreActionValidator, PostActionHandlerOnActionProcessor 필드를 업데이트하여 1단계에서 생성된 복제 사물을 가리키도록 합니다.
7. 저장을 클릭하여 데이터베이스 사물 구성 변경 사항을 저장합니다.
도움이 되셨나요?