A System Center közös sémájának változásai
Közzétéve: 2016. július
Hatókör: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager
A System Center 2012 – Service Manager alkalmazás a System Center felügyeleti csomagjainak frissített sémaverzióját tartalmazza. A séma elnevezése System Center közös séma, és ez számos olyan javítást és bővítést tartalmaz, amely tökéletesíti a meglévő funkciókat, és lehetővé teszi a Service Manager szolgáltatásainak használatát. Ez a szakasz a System Center közös sémájának változásait ismerteti.
További tudnivalók a Service Manager felügyeleti csomagjairól, valamint a további XML-példákat lásd: Közvetlen szerzői műveletek végrehajtása a felügyeleticsomag-fájlon kivetítők kezeléséhez.
Tulajdonságok és tulajdonságkorlátozások
A közös séma számos új tulajdonságtípus bevezetésével kiterjeszti az osztályokat. Új tulajdonságtípus a binary, az enumerator és az autoincrement.
Emellett bizonyos tulajdonságértékekhez korlátozásokat definiálhat. Például reguláris kifejezéssel korlátozást adhat meg egy string típusú tulajdonságértékhez. A következő példában a BuildingName tulajdonsághoz reguláris kifejezéssel megadott korlátozás tartozik, amely szerint csak azok az értékek számítanak érvényesnek, amelyek a „Building” szót követően egy szóközt és egy számot tartalmaznak.
<ClassType ID="Lobby" Accessibility="Public" Base="System!System.Entity">
<Property ID="Id" Type="int" Key="true" />
<Property ID="BuildingName" Type="string" RegEx="Building [0-9]+" />
</ClassType>
Képek
A képeket nem felügyeleti csomagban tárolja a rendszer. Ezért a felügyeleti csomag <PresentationTypes> szakasza már nem tartalmazza az <Images>, <Image> és az <ImageData> címkét. Ezek helyett használjon képerőforrásokat.
<Resources>
<Image ID="TestLibrary.Resources.Image1" Accessibility="Public" FileName="image.png"/>
</Resources>
Enumerálások
A közös séma támogatja az enumerálásokat. Az enumerálások olyan értékek fája, amelyek tulajdonságok vagy attribútumok értékének korlátozására használhatók.
Minden enumerálás előírt egyedi ID attribútummal és választható módon Parent attribútummal rendelkezik.
A következő példában a XBoxState enumerálás három lehetséges értékkel van definiálva: Running, Stopped és Error.
<EnumerationTypes>
<EnumerationValue ID="XBoxState" Accessibility="Public"/>
<EnumerationValue ID="XBoxState.Running" Parent="XBoxState" Accessibility="Public"/>
<EnumerationValue ID="XBoxState.Stopped" Parent="XBoxState" Accessibility="Public"/>
<EnumerationValue ID="XBoxState.Error" Parent="XBoxState" Accessibility="Public" />
<EnumerationValue ID="XBoxState.Error.RROD" Parent="XBoxState.Error" Accessibility="Public" />
</EnumerationTypes>
A következő példában az Xbox osztály egy enum tulajdonságot definiál, amelynek típusa XBoxState.
<ClassType ID="XBox" Accessibility="Public" Base="System!System.ConfigItem" Hosted="true">
<Property ID="Id" Type="int" Key="true" />
<Property ID="Name" Type="string" />
<Property ID=“State" Type="enum" EnumType=“XBoxState" />
</ClassType>
Kapcsolatok
A kapcsolatdefiníciók funkciója tovább lett fejlesztve a közös sémában. A RelationshipType típus immár a Source és a Target részelemmel rendelkezik ID tulajdonsággal, amelyek megjelenítendő névként használhatók. Emellett minimális és maximális kardinalitást is definiálhat a forráshoz és a célhoz (például egy-az-egyhez vagy nulla-a-többhöz kapcsolat).
A kardinalitást nem kényszeríti a felügyeleti csomag érvényesítési folyamata, de segítséget nyújt felhasználói felületek definiálásánál a felügyeleti csomaghoz. Például a kardinalitás ellenőrzésével meghatározható, hogy egy mező beviteli mezőként vagy listaként jelenjen-e meg.
Fontos! |
---|
|
Ha új kapcsolattípust vesz fel saját felügyeleti csomagjából, a felhasználóknak megfelelő jogosultságokkal kell rendelkezniük a kapcsolattípus forrás és cél osztálypéldányai tulajdonságainak módosításához, hogy létrehozhassák az új kapcsolattípus példányát.
A következő példában birtokosi kapcsolat (elnevezése HasXboxes) van definiálva a Lobby típus és az Xbox típus között. Ebben a kapcsolatdefinícióban minden Lobby típus több Xbox típussal rendelkezhet.
<RelationshipType ID="HasXBboxes" Accessibility="Public" Base="System!System.Hosting">
<Source ID="Source" Type="Lobby" />
<Target ID="Target" Type="Xbox" MinCardinality="0" MaxCardinality="9999" />
</RelationshipType>
Kombinált osztályok
A kombinált osztályok több kapcsolódó típus összesítését képviselik a felügyeleti csomagban, ezek a Microsoft SQL Server adatbázisában definiált nézetekre hasonlítanak, amelyek több táblából adhatnak vissza adatokat. A kombinált osztályok az összes összesített adatot tárolják és lekérik egy adatbázis-műveletben, és ezek megkönnyíthetik felhasználói felületek definiálását a felügyeleti csomaghoz.
A következő példában leképezés van definiálva egy incidenskezelési nézethez. Ez a leképezés egy incidensre vonatkozó több különböző összetevőt egyesít egy egységbe, amely könnyebben használható űrlapoknál és adatbázis-műveleteknél.
<TypeProjections>
<TypeProjection ID="System.WorkItem.Incident.View.ProjectionType"
Accessibility="Public" Type="Incident!System.WorkItem.Incident">
<Component Alias="AffectedUser"
Path="$Target/Path[Relationship='SMCore!System.WorkItemCreatedForUser']$"/>
<Component Alias="AssignedUser" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
</TypeProjection>
<TypeProjection ID="System.WorkItem.Incident.View.DCMProjectionType" Accessibility="Public" Type="Incident!System.WorkItem.Incident.DCMIncident">
<Component Alias="AffectedUser" Path="$Target/Path[Relationship='SMCore!System.WorkItemCreatedForUser']$"/>
<Component Alias="AssignedUser" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
<!--Baseline and Configuration Item Information-->
<Component Alias="AffectedComputer" Path="$Target/Path[Relationship='Incident!System.WorkItem.Incident.DCMIncident.Refers.NonComplianceComputer']$"/>
</TypeProjection>
<TypeProjection ID="System.WorkItem.ChangeRequestViewProjection" Accessibility="Public" Type="System.WorkItem.ChangeRequest">
<Component Alias="AssignedTo" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
</TypeProjection>
<TypeProjection ID="System.WorkItem.ChangeRequestProjection" Accessibility="Public" Type="System.WorkItem.ChangeRequest">
<Component Alias="Activity" Path="$Target/Path[Relationship='SMActivity!System.WorkItemContainsActivity']$">
<Component Alias="ActivityAssignedTo" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
<Component Alias="ActivityRelatedWorkItem" Path="$Target/Path[Relationship='SMCore!System.WorkItemRelatesToWorkItem']$">
<Component Alias="ActivityRelatedWorkItemAssignedTo" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
</Component>
<Component Alias="ActivityRelatedConfigItem" Path="$Target/Path[Relationship='SMCore!System.WorkItemRelatesToConfigItem']$"/>
<Component Alias="ActivityAboutConfigItem" Path="$Target/Path[Relationship='System!System.WorkItemAboutConfigItem']$"/>
<Component Alias="ActivityFileAttachment" Path="$Target/Path[Relationship='System!System.WorkItemHasFileAttachment']$">
<Component Alias="ActivityFileAttachmentAddedBy" Path="$Target/Path[Relationship='System!System.FileAttachmentAddedByUser']$"/>
</Component>
<Component Alias="Reviewer" Path="$Target/Path[Relationship='SMActivity!System.ReviewActivityHasReviewer']$">
<Component Alias="User" Path="$Target/Path[Relationship='SMActivity!System.ReviewerIsUser']$"/>
<Component Alias="VotedBy" Path="$Target/Path[Relationship='SMActivity!System.ReviewerVotedByUser']$"/>
</Component>
</Component>
<Component Alias="CreatedBy" Path="$Target/Path[Relationship='SMCore!System.WorkItemCreatedByUser']$"/>
<Component Alias="AssignedTo" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
<Component Alias="CreatedFor" Path="$Target/Path[Relationship='SMCore!System.WorkItemCreatedForUser']$"/>
<Component Alias="RelatedWorkItem" Path="$Target/Path[Relationship='SMCore!System.WorkItemRelatesToWorkItem']$">
<Component Alias="RelatedWorkItemAssignedTo" Path="$Target/Path[Relationship='SMCore!System.WorkItemAssignedToUser']$"/>
</Component>
<Component Alias="RelatedConfigItem" Path="$Target/Path[Relationship='SMCore!System.WorkItemRelatesToConfigItem']$"/>
<Component Alias="AboutConfigItem" Path="$Target/Path[Relationship='System!System.WorkItemAboutConfigItem']$"/>
<Component Alias="FileAttachment" Path="$Target/Path[Relationship='System!System.WorkItemHasFileAttachment']$">
<Component Alias="FileAttachmentAddedBy" Path="$Target/Path[Relationship='System!System.FileAttachmentAddedByUser']$"/>
</Component>
</TypeProjection>
<TypeProjection ID="System.FileAttachmentProjection" Accessibility="Public" Type="System!System.FileAttachment">
<Component Alias="FileAttachmentAddedBy" Path="$Target/Path[Relationship='System!System.FileAttachmentAddedByUser']$"/>
</TypeProjection>
</TypeProjections>
Konzolfeladatok
A konzolfeladatok bővítve lettek a közös sémában. Korábban a konzolfeladatok egyszerű mutatók voltak egy alkalmazástárra és egy végrehajtható fájl nevére. A konzolfeladatok most kezelőkódként vannak megvalósítva a Microsoft .NET-keretrendszer szerelvényében. A kezelőkód arra a szerelvényre mutat, amely a kódot, a kezelő nevét és olyan nevesített értékek listáját tartalmazza, amelyek argumentumként átadhatók a kezelőnek.
A következő példában a Some.Handler.Name kezelő van definiálva a MyLibrary.Resources.Assembly szerelvényben. A kezelő paramétereinek és a paraméterek értékeinek listája is definiálva van.
<ConsoleTask ID="MyLibrary.ConsoleTasks.T1"
Accessibility="Public"
Target="System!System.Entity"
Enabled="true"
RequireOutput="true">
<Assembly>MyLibrary.Resources.Assembly1</Assembly>
<Handler>Some.Handler.Name</Handler>
<Parameters>
<Argument Name="Application">cmd.exe</Argument>
<Argument Name="WorkingDirectory">%TEMP%</Argument>
<Argument>test1</Argument>
<Argument>test2</Argument>
</Parameters>
</ConsoleTask>
Erőforrások
A bináris adatokat nem közvetlenül a felügyeleti csomagban tárolja a rendszer. Ehelyett a bináris erőforrásra vonatkozó metaadatok tárolódnak a felügyeleti csomagban, míg a tényleges bináris adatok külső erőforrásfájlban találhatók. A metaadatok közé tartozik egy egyedi azonosító, a fájlnév, a létrehozás dátuma, a módosítás dátuma és a hozzáférési információ.
A bináris adatok tartalmazhatnak általános erőforrásokat, képeket, szerelvényeket, jelentésdefiníciókat és űrlapokat. A következő példában általános XML-erőforrás, szerelvény-erőforrás és jelentés-erőforrás található.
<Resources>
<Resource ID="TestLibrary.Resources.Test1" Accessibility="Public" FileName="res1.xml"/>
<Resource ID="TestLibrary.Resources.Test2" Accessibility="Public" FileName="res2.xml"/>
<Assembly ID="TestLibrary.Resources.Assembly1" Accessibility="Public" QualifiedName="Baz, Version=1.0.0.0" FileName="baz.dll"/>
<Assembly ID="TestLibrary.Resources.Assembly2" Accessibility="Public" QualifiedName="Yoyo, Version=1.0.0.0" FileName="yoyo.dll">
<Dependency ID="TestLibrary.Resources.Assembly1"/>
</Assembly>
<ReportResource ID="TestLibrary.Resources.Report1" Accessibility="Public" MIMEType="text/xml" FileName="res1.xml"/>
<Image ID="TestLibrary.Resources.Image1" Accessibility="Public" FileName="image.png"/>
</Resources>
Űrlapok
Az űrlapokat felügyeleti csomagokban definiálják. Az űrlapok segítségével egy típus vagy kombinált osztály egyetlen példánya tekinthető meg és módosítható.
Az űrlapok a Windows Presentation Framework (WPF) keretrendszeren alapulnak, és szerelvényekben vannak definiálva. Adott felügyeleti csomagnál az űrlap megvalósításait tartalmazó szerelvény és osztály a felügyeleti csomag erőforrások szakaszában található. Az új közös sémát használó felügyeleti csomagok más bináris erőforrásaihoz hasonlóan maga a felügyeleti csomag nem tartalmazza az űrlap bináris adatait. A felügyeleti csomagban csak az erőforrásjegyzék van megadva.
A felügyeleti csomagban saját konfigurálási adatokat adhat meg az űrlaphoz. A következő példában a konfigurálási szakasz egy ShowXboxes tulajdonságot tartalmaz. A konfigurálási adatokat nem értékeli ki a felügyeleti csomag érvényesítési folyamata, ezeket csak az űrlap megvalósítása értelmezi.
<Forms>
<Form ID="LobbyForm" Target="Projection" Assembly="FormAssembly“ TypeName="MyFormClass">
<Configuration>
<ShowXboxes>yes</ShowXboxes>
</Configuration>
</Form>
</Forms>
Lásd még
Közvetlen szerzői műveletek végrehajtása a felügyeleticsomag-fájlon kivetítők kezeléséhez
Űrlapok: Általános irányelvek és bevált gyakorlatok