빌딩 블록 사용자 정의 > 서비스 사용자 정의
서비스 사용자 정의
PTC 빌딩 블록에서 제공되는 서비스를 사용자 정의하여 사용자 고유의 논리를 구현할 수 있습니다. 여기에는 PTC 빌딩 블록에서 확장되고 새 빌딩 블록의 관리자 사물에 대한 서비스를 재정의하는 새 빌딩 블록을 작성하는 작업이 포함됩니다. 빌딩 블록의 서비스는 빌딩 블록에 대한 관리자 사물의 서비스 페이지에서 볼 수 있습니다.
서비스를 사용자 정의할 때 다음 사항에 유의하십시오.
서비스 코드를 변경하면 서비스가 장시간 실행 중이거나 집중적인 컴퓨팅이 필요하여 성능이 저하될 수 있습니다.
사용자 인터페이스 관련 서비스 대신 백 엔드 서비스를 사용자 정의하는 것이 가장 좋은 방법입니다.
서비스 사용자 정의
서비스를 사용자 정의하려면 다음 단계를 완료하십시오.
1. 사용자 정의하려는 서비스가 포함된 빌드 블록을 결정합니다. 이는 서비스가 발견된 관리자 사물의 이름에서 쉽게 결정할 수 있습니다. 예를 들어, 서비스가 PTC.StatusImpl.Manager 사물에 있는 경우 이 서비스는 PTC.StatusImpl 빌딩 블록의 일부입니다.
2. 사용자 정의하려는 서비스가 포함된 PTC 빌딩 블록에서 확장되는 새 빌딩 블록을 만듭니다.
새 빌딩 블록을 만들려면 다음 단계를 완료하십시오.
a. 새 프로젝트를 작성합니다. 회사 이름 등 프로젝트에 고유한 접두사를 사용합니다. PTC 접두사는 PTC에서 제공하는 엔티티를 위해 예약되어 있습니다. 이 예에서는 이름이 MyCompany.StatusImpl인 프로젝트를 작성합니다. 이 빌딩 블록에 대해 작성하는 새 사물 템플릿, 사물 또는 기타 엔티티에 대해 새 프로젝트를 엔티티의 일반 정보 페이지에 있는 프로젝트 값으로 추가합니다.
b. PTC 빌딩 블록의 진입점 사물 템플릿을 기본 사물 템플릿으로 사용하는 진입점 사물 템플릿을 프로젝트에서 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.StatusImpl.EntryPoint_TT로 지정하고 PTC.StatusImpl.EntryPoint_TT기본 사물 템플릿으로 사용합니다.
c. 2.b단계에서 작성한 사물 템플릿을 기본 사물 템플릿으로 사용하는 프로젝트에서 사물을 작성합니다. 이 예에서는 새 사물의 이름을 MyCompany.StatusImpl.EntryPoint로 지정합니다.
d. 사용자의 프로젝트에 확장 중인 PTC 빌딩 블록의 관리자 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 사물 템플릿을 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.StatusImpl.Manager_TT로 지정하고 PTC.StatusImpl.Manager_TT를 새 사물 템플릿의 기본 사물 템플릿으로 사용합니다.
e. 2.d단계에서 만든 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 사물을 프로젝트에서 작성합니다. 이 예에서는 새 사물의 이름을 MyCompany.StatusImpl.Manager로 지정하고 MyCompany.StatusImpl.Manager_TT를 새 사물의 기본 사물 템플릿으로 사용합니다.
3. 원래 UI 빌딩 블록의 관리자 사물에서 구성을 새 빌딩 블록의 관리자 사물에 추가합니다.
a. 2.e단계에서 작성한 관리자 사물로 이동합니다. 이 예에서는 MyCompany.StatusImpl.Manager입니다.
b. 구성에서 원래 빌딩 블록의 관리자 사물에 대한 구성 페이지에 있는 것과 동일한 구성을 추가합니다. 이 예에서는 PTC.StatusImpl.Manager입니다.
4. 새 빌딩 블록의 관리자 사물을 빌딩 블록이 확장되는 PTC 빌딩 블록의 관리자 대신 사용할 관리자로 등록합니다.
a. PTC.Base.Manager 사물로 이동합니다.
b. 구성에서 DefaultGlobalManagerConfiguration 구성 테이블을 찾습니다.
c. 빌딩 블록이 확장되는 PTC 빌딩 블록의 관리자와 일치하는 managerThingName 값이 있는 행에 대해 편집 아이콘을 클릭합니다.
이 예에서는 managerThingName 값이 PTC.StatusImpl.Manager인 행에 대해 편집 아이콘을 클릭합니다.
d. 편집 창에서 manageThingName 필드를 2.e단계에서 작성한 빌딩 블록에 대한 관리자 사물의 이름으로 설정합니다.
e. 설정을 클릭하여 새 값을 설정합니다.
f. 저장을 클릭하여 변경 내용을 PTC.Base.Manager 사물에 저장합니다.
5. 서비스를 재정의하여 사용자 정의 로직을 구현합니다.
a. 빌딩 블록에 대한 관리자 사물 템플릿으로 이동합니다. 이 예에서는 MyCompany.StatusImpl.Manager_TT 사물 템플릿으로 이동합니다.
b. 서비스에서 사용자 정의하려는 서비스를 찾은 다음 재정의 아이콘을 클릭하여 서비스를 재정의합니다.
c. 스크립트 편집기에서 사용자 정의 로직을 구현하는 데 필요한 코드 변경을 수행합니다.
d. 완료를 클릭하여 변경 사항을 서비스에 저장합니다.
e. 저장을 클릭하여 변경 내용을 관리자 사물에 저장합니다.
UI 빌딩 블록에서 서비스 사용자 정의
재정의하는 서비스가 UI 빌딩 블록의 서비스일 경우 다음 단계를 완료하십시오.
1. PTC 빌딩 블록에서 확장되는 새 빌딩 블록을 작성합니다. 이 예에서는 PTC.ProductionDashboard 빌딩 블록입니다.
새 빌딩 블록을 만들려면 다음 단계를 완료하십시오.
a. 새 프로젝트를 작성합니다. 회사 이름 등 프로젝트에 고유한 접두사를 사용합니다. PTC 접두사는 PTC에서 제공하는 엔티티를 위해 예약되어 있습니다. 이 예에서는 이름이 MyCompany.ProductionDashboard인 프로젝트를 작성합니다. 이 빌딩 블록에 대해 작성하는 새 사물 템플릿, 사물 또는 기타 엔티티에 대해 새 프로젝트를 엔티티의 일반 정보 페이지에 있는 프로젝트 값으로 추가합니다.
b. PTC 빌딩 블록의 진입점 사물 템플릿을 기본 사물 템플릿으로 사용하는 진입점 사물 템플릿을 프로젝트에서 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.ProductionDashboard.EntryPoint_TT로 지정하고 PTC.ProductionDashboard.EntryPoint_TT기본 사물 템플릿으로 사용합니다.
c. 1.b단계에서 작성한 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 진입점 사물을 프로젝트에서 작성합니다.
d. 사용자의 프로젝트에 확장 중인 PTC 빌딩 블록의 관리자 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 관리자 사물 템플릿을 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.ProductionDashboard.Manager_TT로 지정하고 PTC.ProductionDashboard.Manager_TT를 새 사물 템플릿의 기본 사물 템플릿으로 사용합니다.
e. 1.d단계에서 작성한 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 관리자 사물을 프로젝트에서 작성합니다. 이 예에서는 새 사물의 이름을 MyCompany.ProductionDashboard.Manager로 지정하고 MyCompany.ProductionDashboard.Manager_TT를 새 사물의 기본 사물 템플릿으로 사용합니다.
2. 서비스를 재정의하여 사용자 정의 로직을 구현합니다.
a. 빌딩 블록에 대한 관리자 사물 템플릿으로 이동합니다. 이 예에서는 MyCompany.ProductionDashboard.Manager_TT 사물 템플릿으로 이동합니다.
b. 서비스에서 사용자 정의하려는 서비스를 찾은 다음 재정의 아이콘을 클릭하여 서비스를 재정의합니다.
c. 스크립트 편집기에서 사용자 정의 로직을 구현하는 데 필요한 코드 변경을 수행합니다.
d. 완료를 클릭하여 변경 사항을 서비스에 저장합니다.
e. 저장을 클릭하여 변경 내용을 관리자 사물에 저장합니다.
3. 해당 UI에 대한 기본 매쉬업의 manager 속성을 업데이트하여 새 빌딩 블록의 관리자 사물을 가리키도록 합니다. 이렇게 하면 기본 매쉬업에서 호출된 매쉬업이 원래 빌딩 블록의 관리자가 아니라 새 관리자의 서비스를 실행합니다.
기본 매쉬업은 솔루션 탐색 메뉴에서 빌딩 블록에 대한 메뉴 항목을 선택할 때 로드되는 매쉬업입니다. 기본 매쉬업 이름은 빌딩 블록의 관리자 사물의 구성 페이지에 있는 MenuConfiguration 테이블에서 찾을 수 있습니다. 이는 menuName 값이 MasterMenuNavigation인 행의 menuItemMashupName입니다. 예를 들어, 생산 대시보드 빌딩 블록에 대한 기본 매쉬업은 PTC.ProductionDashboard.MainFrame_MU입니다.
a. UI 빌딩 블록에 대한 기본 매쉬업으로 이동합니다.
b. 매쉬업을 복제합니다. 예를 들어, 생산 대시보드 빌딩 블록에 대한 기본 매쉬업을 복제하는 경우 이름을 MyCompany.ProductionDashboard.MainFrame_MU로 지정합니다. 매쉬업의 일반 정보 페이지에 있는 프로젝트 값을 1.a단계에서 작성한 프로젝트로 변경합니다.
c. 설계를 클릭하여 매쉬업 작성기에서 매쉬업을 봅니다.
d. 탐색기에서 최상위 수준의 매쉬업을 선택합니다.
e. 속성에서 manager 속성을 변경하여 1.e단계에서 작성한 새 빌딩 블록의 관리자를 가리키도록 합니다.
f. 저장을 클릭하여 매쉬업을 저장합니다.
4. 원래 UI 빌딩 블록의 관리자 사물에서 구성을 새 빌딩 블록의 관리자 사물에 추가합니다.
a. 1.e단계에서 작성한 관리자 사물로 이동합니다. 이 예에서는 MyCompany.ProductionDashboard.Manager입니다.
b. 구성에서 원래 빌딩 블록의 관리자 사물에 대한 구성 페이지에 있는 것과 동일한 구성을 추가합니다. 이 예에서는 PTC.ProductionDashboard.Manager입니다. 특히 MashupConfigurationDefaultConfiguration 테이블의 구성을 추가합니다.
5. 솔루션 탐색 메뉴에서 메뉴 항목을 편집하여 복제 기본 매쉬업을 시작합니다. 자세한 내용은 솔루션 메뉴 사용자 정의를 참조하십시오.
6. 원래 매쉬업, 또는 원래 매쉬업을 직접 호출하는 모든 서비스나 기타 매쉬업에 대한 책갈피는 3.b단계에서 만든 중복 매쉬업을 사용하도록 업데이트되어야 합니다.
모델 로직 사물 형태에서 서비스 사용자 정의
다양한 빌딩 블록의 PTC 모델 로직 사물 형태는 장비 모델 엔티티(엔터프라이즈, 지역, 사이트, 영역, 작업 센터 및 작업 단위)에 대한 PTC.MfgModel 빌딩 블록의 사물 템플릿을 통해 구현됩니다. 개별 장비 사물의 PTC 모델 로직 사물 형태에서 상속된 서비스를 재정의하거나 장비 모델 유형의 사물 템플릿에서 서비스를 재정의하여 해당 장비 모델 유형의 모든 사물에 대해 해당 서비스를 변경할 수 있습니다.
서비스가 모델 로직 사물 형태에서 상속되었는지 확인하려면 서비스를 찾은 장비 유형에 대한 PTC 제공 사물 템플릿의 서비스 페이지를 확인하십시오. 서비스 페이지에서는 서비스가 상속되는 엔티티를 식별합니다.
모델 로직 사물 형태에서 상속되고 장비 유형에 대한 사물 템플릿에 사용되는 서비스를 재정의하려면 다음 단계를 완료하십시오.
1. PTC 빌딩 블록에서 확장되는 새 빌딩 블록을 작성합니다. 이 예에서는 PTC.MfgModel 빌딩 블록입니다.
새 빌딩 블록을 만들려면 다음 단계를 완료하십시오.
a. 새 프로젝트를 작성합니다. 회사 이름 등 프로젝트에 고유한 접두사를 사용합니다. PTC 접두사는 PTC에서 제공하는 엔티티를 위해 예약되어 있습니다. 이 예에서는 이름이 MyCompany.MfgModel인 프로젝트를 작성합니다. 이 빌딩 블록에 대해 작성하는 새 사물 템플릿, 사물 또는 기타 엔티티에 대해 새 프로젝트를 엔티티의 일반 정보 페이지에 있는 프로젝트 값으로 추가합니다.
b. PTC 빌딩 블록의 진입점 사물 템플릿을 기본 사물 템플릿으로 사용하는 진입점 사물 템플릿을 프로젝트에서 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.MfgModel.EntryPoint_TT로 지정하고 PTC.MfgModel.EntryPoint_TT기본 사물 템플릿으로 사용합니다.
c. 1.b단계에서 만든 사물 템플릿을 기본 사물 템플릿으로 사용하는 새 사물을 프로젝트에서 작성합니다.
* 
PTC 빌딩 블록의 관리자 사물에 있는 서비스도 사용자 정의하는 경우, 새 빌딩 블록에 대한 관리자 사물 템플릿 및 관리자 사물 작성을 포함하여 이전 섹션에서 찾은 서비스를 사용자 정의하는 지침을 따르십시오.
2. 서비스를 재정의하려는 사물 템플릿의 복사본을 생성합니다.
a. 원본 장비 모델 사물 템플릿으로 이동합니다. 이 예에서는 PTC.MfgModelDefaultWorkunit_TT입니다.
b. 사물 템플릿을 복제합니다. 이 예에서는 중복된 사물 템플릿의 이름을 MyCompany.MfgModelDefaultWorkunit_TT로 지정합니다. 매쉬업의 일반 정보 페이지에 있는 프로젝트 값을 1.a단계에서 작성한 프로젝트로 변경합니다.
c. 저장을 클릭하여 복제된 사물 템플릿을 저장합니다.
3. 서비스를 재정의하여 사용자 정의 로직을 구현합니다.
* 
복제된 사물 템플릿에 대한 서비스만 재정의합니다. PTC.MfgModel 빌딩 블록에 있는 사물 템플릿의 서비스를 재정의하거나 추가하지 마십시오.
a. 2.c단계에서 작성한 복제된 사물 템플릿의 서비스 아래에서 사용자 정의하려는 서비스를 찾은 다음 재정의 아이콘을 클릭하여 서비스를 재정의합니다. 해당 서비스에 대한 아이콘이 없으면 서비스를 재정의할 수 없습니다.
b. 스크립트 편집기에서 사용자 정의 로직을 구현하는 데 필요한 코드 변경을 수행합니다.
c. 완료를 클릭하여 변경 사항을 서비스에 저장합니다.
d. 저장을 클릭하여 변경 내용을 사물 템플릿에 저장합니다.
4. 모델 유형 구성을 업데이트하여 새 사물 템플릿을 사용합니다.
a. PTC.MfgModel.Manager 사물로 이동합니다.
b. 구성 아래의 ModelTypeConfiguration 구성 테이블에서 3단계에서 복제한 사물 템플릿을 가진 장비 모델 유형에 대한 행을 찾은 다음 재정의 아이콘을 클릭하여 행을 편집합니다.
c. thingTemplate 값을 3단계에서 작성한 중복된 사물 템플릿으로 변경합니다. 이 예에서는 MyCompany.MfgModelDefaultWorkunit_TT입니다.
d. 저장을 클릭하여 변경 내용을 관리자 사물에 저장합니다.
* 
이전 절차는 특정 장비 모델 유형의 사물에 사용되는 사물 템플릿을 변경합니다. 변경 사항을 적용하려면 새 모델 유형 사물 템플릿을 사용하여 해당 모델 유형의 기존 장비 사물을 다시 작성하거나 해당 서비스도 개별 장비 사물에 대해 사용자 정의해야 합니다.
이와 같은 코드 변경은 개별 사물 대신 사물 템플릿 수준에서 수행하는 것이 좋습니다.
개별 장비 사물에 대해 모델 로직 사물 형태에서 상속된 서비스를 재정의하려면 다음 단계를 완료하십시오.
1. 장비 사물로 이동합니다.
2. 서비스에서 사용자 정의하려는 서비스를 찾은 다음 재정의 아이콘을 클릭하여 서비스를 재정의합니다.
3. 스크립트 편집기에서 사용자 정의 로직을 구현하는 데 필요한 코드 변경을 수행합니다.
4. 완료를 클릭하여 변경 사항을 서비스에 저장합니다.
5. 저장을 클릭하여 변경 내용을 장비 사물에 저장합니다.
도움이 되셨나요?