빌딩 블록 > 데이터 모델 확장 > 사용자 정의 관리자 만들기
사용자 정의 관리자 만들기
데이터 모델은 관리자 사물을 사용하여 특정 기능을 제어합니다. 관리자 사물은 데이터베이스 테이블 작성 및 업데이트처럼 데이터베이스 조작에 필요한 기능을 포함합니다. 또한 관리자 사물은 연관된 객체 모델과 관련된 서비스를 관리하는 모든 사물 형태를 구현합니다.
이러한 관리자 사물은 PTC.Base.Manager 사물의 구성 페이지에 있는 DefaultGlobalManagerConfiguration 테이블에 등록되어 있습니다.
사용자 정의 관리자를 만들어 고유한 데이터베이스 테이블을 관리(작성 및 업데이트)할 수 있습니다. 관리자 사물을 모델로 사용합니다.
다음 단계에서는 두 개의 열로 UID(기본 키, 자동 생성됨)와 CustomProperty1(문자열 데이터 유형)이 있는 customdata라는 데이터베이스 테이블을 관리하는 관리자 작성 방법을 설명합니다. customdata 테이블은 두 개의 행으로 초기화됩니다.
1. 새 빌딩 블록을 작성합니다.
새 빌딩 블록을 만들려면 다음 단계를 완료하십시오.
a. 새 프로젝트를 작성합니다. 회사 이름 등 프로젝트에 고유한 접두사를 사용합니다. PTC 접두사는 PTC에서 제공하는 엔티티를 위해 예약되어 있습니다. 이 예에서는 이름이 MyCompany.MyBuildingBlock인 프로젝트를 작성합니다. 이 빌딩 블록에 대해 작성하는 새 사물 템플릿, 사물 또는 기타 엔티티에 대해 새 프로젝트를 엔티티의 일반 정보 페이지에 있는 프로젝트 값으로 추가합니다.
b. 사용자의 프로젝트에 PTC.Base.ComponentEntryPoint_TT기본 사물 템플릿으로 사용하는 새 사물 템플릿을 작성합니다. 이 예에서는 새 사물 템플릿의 이름을 MyCompany.MyBuildingBlock.EntryPoint_TT로 지정합니다. 새 빌딩 블록이 PTC 빌딩 블록에서 확장되는 경우 PTC 빌딩 블록의 진입점 사물 템플릿을 새 빌딩 블록의 기본 사물 템플릿으로 사용합니다.
c. 1.b단계에서 만든 사물 템플릿을 기본 사물 템플릿으로 사용하는 프로젝트에서 새 사물을 작성합니다.
2. ThingWorx Composer에서 새 데이터 셰이프를 만듭니다.
a. 이름MyCompany.MyBuildingBlock.CustomData_DS를 입력합니다.
b. 프로젝트의 경우 빌딩 블록에 대한 프로젝트를 선택합니다. 이 예에서는 MyCompany.MyBuildingBlock입니다.
c. 필드 정의에서 추가를 클릭합니다.
d. 다음 필드를 정의합니다.
이름 - UID를 입력합니다.
기본 유형 - LONG을 선택합니다.
기본 키임 - 이 확인란을 선택합니다.
e. 현재 필드를 추가하고 다른 필드를 즉시 추가하는 아이콘.을 클릭하여 첫 번째 필드를 추가하고 다른 필드를 정의합니다.
이름 - CustomProperty1을 입력합니다.
기본 유형 - STRING을 선택합니다.
f. 추가 아이콘.을 클릭하여 두 번째 필드를 추가합니다.
g. 저장을 클릭하여 새 데이터 셰이프를 저장합니다.
3. ThingWorx Composer에서 새 사물 템플릿을 만듭니다.
a. 이름MyCompany.MyBuildingBlock.Manager_TT를 입력합니다.
b. 기본 사물 템플릿의 경우 PTC.Base.CommonManager_TT 사물 템플릿을 선택합니다. 새 빌딩 블록이 PTC 빌딩 블록에서 확장되는 경우 기본 사물 템플릿으로 PTC 빌딩 블록의 관리자 사물 템플릿을 사용합니다.
c. 구현된 형태에서 PTC.DBConnection.DBManagement_TS를 검색하여 추가합니다. 관리자가 작성 서비스를 호출하기 위해 사용되는 경우 PTC.DBConnection.ServiceConfiguration_TS도 검색하여 추가합니다.
d. 저장을 클릭하여 사물 템플릿을 저장합니다.
4. ThingWorx Composer에서 새 사물을 만듭니다.
a. 이름MyCompany.MyBuildingBlock.Manager를 입력합니다.
b. 기본 사물 템플릿에서 MyCompany.MyBuildingBlock.Manager_TT(3단계에서 만든 사물 템플릿)를 검색하여 선택합니다.
c. 서비스에서 GetDBInfo 서비스를 재정의하고 다음 코드를 추가한 뒤 완료를 클릭합니다.
var result = {
dbInfo: [{dataShapeName: "CustomData"}]
};
d. 서비스에서 InitData 서비스를 재정의하고 다음 코드를 추가한 뒤 완료를 클릭합니다.
var infoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
infoTableName : "InfoTable",
dataShapeName : "CustomData"
});
infoTable.AddRow({"CustomProperty1":"TestValue1"});
infoTable.AddRow({"CustomProperty1":"TestValue2"});
Things[me.GetDatabaseThingName()].Insert({
infoTable: infoTable,
dataShapeName: "CustomData"
});
e. 저장을 클릭하여 사물을 저장합니다.
5. 새 빌딩 블록이 PTC 빌딩 블록에서 확장되는 경우 원래 빌딩 블록의 관리자 사물에 있는 구성을 새 빌딩 블록의 관리자 사물에 추가합니다.
a. 4단계에서 작성한 관리자 사물로 이동합니다. 이 예에서는 MyCompany.MyBuildingBlock.Manager입니다.
b. 구성에서 원래 빌딩 블록의 관리자 사물에 대한 구성 페이지에 있는 것과 동일한 구성을 추가합니다.
6. 사용자 정의 관리자를 등록합니다.
a. PTC.Base.Manager 사물로 이동합니다.
b. 구성 아래에서 DefaultGlobalManagerConfiguration 구성 테이블에 대해 추가를 클릭합니다.
이름MyCompany.MyBuildingBlock.Manager 등 사용자 정의 관리자의 이름을 입력합니다.
에 대해서는 4단계에서 생성된 사용자 정의 관리자 사물을 검색하여 선택합니다.
c. 추가를 클릭하여 사용자 정의 관리자를 구성 테이블에 추가합니다.
d. 저장을 클릭하여 관리자 사물에 업데이트를 저장합니다.
7. 4단계에서 만든 MyCompany.MyBuildingBlock.Manager 사물의 서비스에서 CreateTables 서비스를 실행합니다. 두 개의 행이 포함된 customdata라는 데이터베이스 테이블이 작성됩니다.
8. 외래 키를 정의하려면 외래 키 추가 또는 제거를 참조하십시오.
9. String 데이터베이스 열의 길이를 변경하려면 STRING 데이터베이스 열의 길이 설정을 참조하십시오.
10. 사전 또는 사후 작업 이벤트 발송 및 유효성 검사를 구성하려면 사전 작업, 작업 중 및 사후 작업 이벤트 발송 및 유효성 검사를 참조하십시오.
도움이 되셨나요?