Personalizar y crear clases con creación de Service ManagerCustomize and author classes with Service Manager authoring

Se aplica a: System Center 2016 - Service ManagerApplies To: System Center 2016 - Service Manager

Una clase es el elemento principal que se usa para representar los objetos que se usan en Service Manager.A class is the main element that is used to represent objects that are used in Service Manager. Una clase puede representar un equipo, un usuario, un incidente o un formulario.A class can represent a computer, a user, an incident, or a form.

Definiciones de clases que representan un elemento mayor, por ejemplo, una característica de Service Manager, a menudo se agrupan.Class definitions that represent a larger element, such as a Service Manager feature, are often grouped together. Las definiciones de clases se almacenan en módulos de administración que se deben importar a Service Manager para habilitar la funcionalidad de Service Manager.Class definitions are stored in management packs that must be imported into Service Manager to enable Service Manager functionality.

Conceptos clave para las clasesKey concepts for classes

Objetos de Service Manager son instancias de una clase base concreta.Objects in Service Manager are instances of a particular base class. Todas las instancias de una clase base tienen un conjunto común de propiedades y un comportamiento común.All instances of a base class have a common set of properties and common behavior.

Al igual que todos los elementos del módulo de administración, las clases tienen propiedades de Id. y Nombre para mostrar .Like all management pack elements, classes have ID and Display Name properties. En esta documentación, "ID" hace referencia al nombre único de la clase que se ve únicamente en la herramienta de creación, mientras que "Name" y "Nombre para mostrar" hacen referencia al lenguaje-nombre específico que aparece en la consola de Service Manager.In this documentation, "ID" refers to the unique name of the class that is seen only in the Authoring Tool, while "Name" and "Display Name" refer to the language-specific name that appears in the Service Manager console.

Nota

A la hora de crear una clase, asegúrese siempre de que los nombres de clase son únicos entre los módulos de administración.When you are creating a class, always ensure that class names are unique among management packs. Si es posible, utilice nombres de clase que sean significativos en su entorno.If possible, use class names that are meaningful in your environment. Puede determinar si ya existe un nombre de clase mediante la característica de búsqueda en el Explorador de clases ventana de Service Manager Authoring Tool.You can determine whether a class name already exists by using the search feature in the Class Browser window of the Service Manager Authoring Tool.

Propiedadesproperties

Todas las instancias de una clase determinada comparten un conjunto común de propiedades.All instances of a particular class share a common set of properties. Los usuarios proporcionan mediante varios métodos los valores de estas propiedades, que pueden variar entre diferentes instancia.The values for these properties are provided in various methods by users and can vary among different instances. Las propiedades se utilizan para representar detalles del objeto real, como el nombre y la ubicación únicos y otros detalles que pueden ser de interés para el usuario o que se requieren para los escenarios de administración.Properties are used to represent details of the actual object, such as a unique name, location, and other details that may be interesting to the user or that are required for management scenarios.

Propiedades de claveKey properties

Una propiedad clave identifica de forma única cada instancia de una clase determinada.A key property uniquely identifies each instance of a particular class. Si una propiedad está marcada como propiedad clave, cada instancia de la clase debe tener un valor único para esa propiedad y el valor no puede ser nulo.If a property is marked as a key property, each instance of the class must have a unique value for that property, and the value cannot be null. Para clases hospedadas, el valor sólo debe ser único para todas las instancias de la clase que tengan el mismo hospedaje principal.For hosted classes, the value must only be unique for all instances of the class that have the same hosting parent. Para clases no hospedadas, debe ser único para todas las instancias de la clase en el grupo de administración.For unhosted classes, it must be unique for all instances of the class in the management group. Las relaciones de hospedaje se describen más adelante en esta sección.Hosting relationships are further described later in this section.

Las clases no siempre requieren una propiedad clave.Classes do not always require a key property. Una propiedad clave sólo es necesaria si se espera más de una instancia de una clase para un elemento principal único.A key property is only required if more than one instance of a class is expected for a single parent. Si solo se espera una instancia única, la propiedad clave no es necesaria, pero se puede definir.If only a single instance is expected, a key property is not required but may still be defined.

Por ejemplo, motor de base de datos de SQL tiene una propiedad clave de nombre de instancia porque un único equipo puede tener más de una instancia de Microsoft SQL Server instalado.For example, SQL Database Engine has a key property of Instance Name because a single computer can have more than one instance of Microsoft SQL Server installed. Cuando hay varias instancias del Motor de base de datos de SQL, cada instancia debe tener un valor diferente para Instance Name , con el fin de distinguir claramente los diferentes objetos.When there are multiple instances of SQL Database Engine, each instance must have a different value for Instance Name in order to clearly distinguish between the different objects. En cambio, la clase Servidor web de IIS , no define ninguna propiedad clave, ya que solo puede haber una instancia instalada en un equipo.The IIS Web Server class, by contrast, does not define a key property because there can be only one instance installed on any computer.

Todos los objetos tienen un nombre de ruta de acceso propiedad que se calcula a partir de la propiedad de clave del objeto o propiedades y los de su alojamiento principal o sus elementos primarios.All objects have a Path Name property that is calculated from the object's key property or properties and those of its hosting parent or parents. Para los objetos no alojados, Path Name será la propiedad clave de la propia clase.For unhosted objects, Path Name will be the key property of the class itself. Path Name puede usarse para identificar de manera única cualquier instancia de una clase en el grupo de administración.Path Name can be used to uniquely identify any instance of a class in the management group.

Herencia y clases baseBase classes and inheritance

Cada clase debe especificar una clase base que identifique una clase existente de la que se deriva como una nueva clase especializada.Every class must specify a base class that identifies an existing class that the new class will specialize. Las bibliotecas del módulo de administración que se incluyen con el administrador del servicio contienen varias clases que pueden utilizar como base para clases personalizadas en módulos de administración.The management pack libraries that are included with Service Manager contain several classes that can be used as the base for custom classes in management packs. Normalmente, un módulo de administración tiene al menos una clase que hereda de una clase de biblioteca y posiblemente otras clases que heredan de clases del mismo módulo de administración.A management pack will typically have at least one class inheriting from a library class and potentially other classes inheriting from classes in the same management pack.

El concepto de una clase base se puede ilustrar con las ventanas módulo de administración de sistema operativo del servidor.The concept of a base class can be illustrated with the Windows Server Operating System management pack. Este módulo de administración incluye clases que representan los discos lógicos instalados en el equipo.This management pack includes classes representing logical disks installed on the computer. En la siguiente ilustración se muestra las clases Windows Server disco lógico 2003 y Windows Server disco lógico 2008.The following illustration shows the classes Windows Server 2003 Logical Disk and Windows Server 2008 Logical Disk. Estas clases se basan en disco lógico (Server) que se define en el archivo del módulo de administración de Microsoft.Windows.Server.Library.These classes are both based on Logical Disk (Server) that is defined in the Microsoft.Windows.Server.Library management pack file. Disco lógico (Server) a su vez se basa en disco lógico, que a su vez se basa en dispositivo lógicoy así sucesivamente hasta Hardware lógico, entidad lógicay, finalmente, entidad.Logical Disk (Server) is in turn based on Logical Disk, which itself is based on Logical Device, and so on through Logical Hardware, Logical Entity, and finally Entity. Todas las clases pueden trazar una ruta de herencia similar y siempre terminan en Entidad, que es la raíz de la estructura de clases.All classes can trace a similar inheritance path and will always end up at Entity, which is the root of the class structure. Ésta es la única clase que no tiene una clase base y todas las demás clases heredan finalmente de ella.This is the only class that does not have a base class, and all other classes eventually inherit from it.

Herencia de propiedades entre clasesInheritance of properties between classes

Herencia de propiedades entre clases

Entidad tiene una propiedad única, denominada Display Name.Entity has a single property, named Display Name. Esta propiedad es heredada por todas las clases que heredan de Entidad.This property is inherited by all classes inheriting from Entity. Al final, todas las clases heredan de Entidad.All classes eventually inherit from Entity. Por ello, todas las clases tienen una propiedad Display Name .That is why all classes have a Display Name property. Ninguna otra clase de este ejemplo tiene propiedades hasta Dispositivo lógico, que define Name, Descriptiony DeviceID.No other classes in this example have properties until Logical Device, which defines Name, Description, and DeviceID. DeviceID se especifica como la propiedad clave.DeviceID is specified as the key property. Todas estas propiedades son heredadas por disco lógico y disco lógico (Server).These properties are all inherited by Logical Disk and Logical Disk (Server). Disco lógico (Server) , a continuación, agrega las propiedades adicionales tamaño, Drive Type, y sistema de archivos.Logical Disk (Server) then adds the additional properties Size, Drive Type, and File System. La parte inferior-clases de nivel que son específicas de la versión del sistema operativo heredan el conjunto completo de propiedades proporcionado por las clases superiores del árbol de herencia.The bottom-level classes that are specific to the version of the operating system inherit the entire set of properties provided by those classes above them in the inheritance tree.

Tipos de claseClass types

La mayoría de las clases tienen una o más instancias reales y se conocen como clases concretas.Most classes have one or more actual instances and are known as concrete classes. Lasclases abstractas y las clases Singleton are special kinds of classes that behave differently y las are used for particular scenarios.Abstract classes and singleton classes are special kinds of classes that behave differently and are used for particular scenarios.

Clases abstractasAbstract classes

Las clases abstractas no tienen instancias y solo existen para actuar como clase base de otras clases.Abstract classes have no instances and exist only to act as a base class for other classes. Todas las propiedades y relaciones que se definen en el nivel de la clase abstracta son heredadas por las clases secundarias y no tienen que definirse de nuevo.All properties and relationships that are defined at the abstract class level are inherited by child classes and do not have to be defined again. La mayoría de las clases definidas en las bibliotecas del módulo de administración son abstractas, ya que solo se proporcionan para actuar como clases base de las clases definidas en los módulos de administración personalizados.Most of the classes that are defined in management pack libraries are abstract, since they are only provided to act as base classes for classes that are defined in custom management packs.

Las clases abstractas se utilizan donde hay un conjunto común de propiedades, relaciones o agrupaciones que se puede definir en todas las especializaciones adicionales de una clase.Abstract classes are used where there is a common set of properties, relationships, or grouping that can be defined across all further specializations of a class. En el ejemplo anterior, todas las clases que se muestra arriba Windows Server disco lógico 2003 y Windows Server disco lógico 2008 son abstractas.In the previous example, all of the classes shown above Windows Server 2003 Logical Disk and Windows Server 2008 Logical Disk are abstract. Existen sólo para el menor-heredar de que las clases de nivel.They exist only for the lower-level classes to inherit from.

Clases singletonSingleton classes

Lasclases Singleton se utilizan cuando hay una y sólo una instancia de una clase.Singleton classes are used when there is one and only one instance of a class. La clase es la instancia y siempre está presente.The class is the instance, and it always exists. La instancia única se crea cuando se instala el módulo de administración.The single instance is being created when the management pack is installed. De forma similar, una clase Singleton no requiere ninguna propiedad clave, ya que siempre tendrá solo una instancia única.Similarly, a key property is not required for a singleton class, because it will only ever have a single instance. Un uso común de clases Singleton se da en la clase Grupos , ya que solo se requiere una instancia única de esta clase en todo el grupo de administración.A common use of singleton classes is for the Groups class, because there is only a single instance of this class required throughout the management group.

Extensiones de claseClass extensions

Para personalizar una clase, se puede ampliar agregando nuevas propiedades a la definición de clase existente.To customize a class, you can extend it by adding new properties to the existing class definition. Así, las nuevas propiedades se incluirán en todas las instancias de esta clase ya existente y en cualquier nueva instancia que se cree.The new properties will now be included in all instances of that class that already exist, and in any new instances that will be created. Una clase abstracta no se puede ampliar.An abstract class cannot be extended.

RelacionesRelationships

Lasrelaciones se definen entre las clases para indicar una asociación entre una instancia concreta de una clase y la instancia concreta de otra.Relationships are defined between classes to indicate an association between a particular instance of one class and the particular instance of another. Hay tres tipos de relaciones, que se explican con detalle en las secciones siguientes:There are three types of relationships, and they are detailed in the following sections:

  • Relación de hospedajeHosting relationship

  • Relación de contenciónContainment relationship

  • Relación de referenciaReference relationship

    Las relaciones de clase afectan a los objetos de las siguientes maneras.Class relationships affect objects in the following ways.

Tipo de relaciónRelationship type Propiedad clave y existenciaKey property and existence Propiedades disponiblesAvailable properties
HospedajeHosting El valor de la propiedad clave debe ser único para todas las instancias de la clase en el grupo de administración.The value of the key property must be unique for all instances of the class in the management group. Sin embargo, para las clases hospedadas, el valor de la propiedad clave debe ser único sólo para todos los objetos que tienen el mismo hospedaje principal.For hosted classes however, the key property value must be unique only for all objects that have the same hosting parent.

Para identificar de forma exclusiva un objeto hospedado, la propiedad clave del objeto y el elemento primario del objeto son necesarios y la clave de la clase hospedada será la combinación de la propiedad de clave de clase hospedaje y la propiedad de clave de clase hospedada.To uniquely identify a hosted object, the key property of both the object and the object's parent are required and the key of the hosted class will be the combination of both the hosting class key property, and the hosted class key property.

La existencia de una clase hospedada depende de la existencia de la clase de hospedaje.The existence of a hosted class depends on the existence of the hosting class.
Cualquier flujo de trabajo dirigido a una clase tiene acceso a propiedades de esa clase, además de las propiedades de cualquiera de sus elementos primarios de hospedaje(s).Any workflow that is targeted at a class have access to that class's properties in addition to the properties of any of its hosting parent(s).

Por ejemplo, una secuencia de comandos en un flujo de trabajo mediante el SQL motor de base de datos de 2008 clase como su destino podría requerir el nombre del equipo en el que está instalada la instancia de SQL Server 2008.For example, a script in a workflow using the SQL 2008 DB Engine class as its target might require the name of the computer on which the instance of SQL Server 2008 is installed. Dado que un objeto puede tener solo un hospedaje principal, conocemos el equipo que hospeda cualquier instancia concreta de la SQL motor de base de datos de 2008 clase.Because an object can have only one hosting parent, we know the computer that hosts any particular instance of the SQL 2008 DB Engine class. La secuencia de comandos de flujo de trabajo puede tener acceso a las propiedades del objeto de destino y las propiedades del hospedaje principal de ese destino.The workflow script can access the properties of the targeted object and the properties of that target's hosting parent.
ContenciónContainment La propiedad clave y la existencia no dependen del objeto contenedor.Key property and existence are not dependent on container object. Cualquier flujo de trabajo que está dirigido a una clase tiene acceso a propiedades de esa clase, además de las propiedades de cualquiera de su elemento primario de contenedor(s).Any workflow that is targeted at a class have access to that class's properties in addition to the properties of any of its container parent(s).

Por ejemplo, una secuencia de comandos en un flujo de trabajo dirigido a una clase de incidente, puede tener acceso a las propiedades de clase de la cola del contenedor.For example, a script in a workflow targeting an incident class, can access the properties of the container queue's class.
ReferenciaReference La propiedad clave y la existencia no dependen del objeto al que hacen referencia.Key property and existence are not dependent on referenced object. Cualquier flujo de trabajo que está dirigido a una clase sólo tiene acceso a propiedades de dicha clase.Any workflow that is targeted at a class have access only to that class's properties.

Relación de referenciaReference relationship

La relación de referencia es el tipo de relación más general.The reference relationship is the most general relationship type. Una relación de referencia se utiliza cuando las clases principal y secundaria no son dependientes entre sí; por ejemplo, una base de datos puede hacer referencia a otra base de datos que está replicando.A reference relationship is used when the parent and child classes are not dependent on one another; for example, a database could reference another database that it is replicating. Una base de datos no depende de la otra, y los objetos existen por separado.One database is not dependent on the other, and the objects exist separately.

Relación de contenciónContainment relationship

El tipo de relación de contención es menos restrictivo que el de relación de hospedaje.The containment relationship type is less restrictive than the hosting relationship. Declara que una clase está relacionada con otra clase, aunque una no sea necesaria para la otra.It declares that one class is related to another class, although one is not required for the other. A diferencia de una relación de hospedaje, una relación de contención es de varios-a-muchos.Unlike a hosting relationship, a containment relationship is many-to-many. Esto significa que un objeto puede contener varios objetos, y un solo objeto puede estar contenido en varios objetos.This means that one object can contain multiple objects, and a single object can be contained by multiple other objects. Por ejemplo, un grupo puede contener varios objetos, y un solo objeto puede ser miembro de varios grupos.For example, one group can contain multiple objects, and a single object can be a member of multiple groups.

Normalmente, las relaciones de contención se utilizan para la pertenencia al grupo, donde los objetos están incluidos en un grupo a través de una relación de contención entre el grupo y el objeto miembro.Containment relationships are typically used for group membership where objects are included in a group through a containment relationship between the group and the member object.

Relación de hospedajeHosting relationship

La relación más restrictiva entre clases es la relación de hospedaje .The most restrictive relationship between classes is the hosting relationship. Una clase hospedada por otra clase se denomina clase hospedada, y una instancia de la clase se denomina objeto hospedado.A class hosted by another class is called a hosted class, and an instance of the class is called a hosted object. Si una clase no está hospedada por otra, se denomina clase no hospedada, y una instancia de la clase se denomina objeto no hospedado.If a class is not hosted by another, it is called an unhosted class, and an instance of the class is called an unhosted object.

Cuando un objeto está hospedado por otro, ese objeto se basa en su hospedaje principal para su existencia.When one object is hosted by another, that object relies on its hosting parent for its very existence. Si se quita el hospedaje principal, también se quitará el elemento secundario hospedado.If the hosting parent is removed, the hosted child will also be removed. Por ejemplo, un disco lógico no puede existir sin el equipo en el que está instalado.For example, a logical disk cannot exist without the computer that it is installed on.

Un objeto hospedado solo puede tener un hospedaje principal, pero un elemento principal puede hospedar a varios elementos secundarios.A hosted object can have only one hosting parent, but one parent can host multiple children. Por ejemplo, es posible que un disco concreto solo se pueda instalar en un único equipo, pero un equipo puede tener varios discos instalados.For example, a particular disk can be installed on only a single computer, but one computer can have several disks installed.

El módulo de administración de SQL Server proporciona otro ejemplo de relaciones de hospedaje.The SQL Server management pack provides another example of hosting relationships. En este ejemplo se muestra la relación de hospedaje entre la clase Equipo de Windows , la clase Motor de base de datos de SQL 2008 y la clase Base de datos de SQL 2008 .The hosting relationship between the Windows Computer class, the SQL 2008 DB Engine class, and the SQL 2008 DB class is shown here.

Relaciones de hospedaje de SQL Server clases de 2008Hosting relationships for SQL Server 2008 classes

Relación de hospedaje para clases de SQL Server 2008

El SQL motor de base de datos de 2008 clase representa una instancia de SQL Server 2008 instalada en un equipo determinado.The SQL 2008 DB Engine class represents an instance of SQL Server 2008 installed on a particular computer. Dado que una base de datos se puede instalar en un motor de base de datos única, la SQL motor de base de datos de 2008 clase hosts el SQL 2008 DB clase.Because a database can be installed on only a single database engine, the SQL 2008 DB Engine class hosts the SQL 2008 DB class. En un grupo de administración puede haber varias bases de datos con el mismo nombre, pero las bases de datos instaladas en una instancia concreta de la clase SQL Server deben tener un nombre único.There can be several databases with the same name in a management group, but any databases installed on a particular instance of the SQL Server class must have a unique name. A su vez, el motor de la base de datos está hospedado por la clase Equipo de Windows .The database engine, in turn, is hosted by the Windows Computer class. En un grupo de administración puede haber varias instancias de SQL Server con el mismo nombre.There can be several SQL Server instances with the same name in a management group. Cada una de ellas en un equipo determinado debe tener un nombre único.Each one on a particular computer must have a unique name.

Dado que hay dos relaciones de hospedaje, el nombre de ruta de acceso de cada base de datos será el nombre del equipo seguido del nombre de la instancia, seguido del nombre de la base de datos.Because there are two hosting relationships, the path name for each database will be the computer name followed by the instance name followed by the database name. En el diagrama siguiente se muestra un ejemplo.An example is shown in the following diagram.

Relaciones de hospedaje de base de datos de ejemploSample database hosting relationships

Relación de hospedaje de base de datos de ejemplo

Directrices generales y procedimientos recomendados para clasesGeneral guidelines and best practices for classes

Utilice las siguientes directrices y procedimientos recomendados al personalizar clases en Service Manager Authoring Tool.Use the following guidelines and best practices when you are customizing classes in the Service Manager Authoring Tool.

Convenciones de nomenclatura para definiciones de tipoNaming conventions for type definitions

El modelo de esquema de Service Manager convención de nomenclatura se basa en la convención de nomenclatura de espacios de nombres. NET.The Service Manager schema model naming convention is based on the .NET namespaces naming convention.

Convenciones de nomenclatura básicasBasic naming conventions

La convención de nomenclatura básica es NombreDeCompañía.ÁreaTecnológica.NombreDeProducto.ÁreaFuncional.Nombre, donde:The basic naming convention is CompanyName.TechnologyArea.ProductName.FunctionalityArea.Name, where:

  • NombreDeProducto es opcional; utilícela si la definición es independiente de cualquier producto específico.ProductName is optional; use it if the definition is independent of any specific product.

  • ÁreaFuncional es opcional; utilícela si la definición se puede aplicar a diferentes áreas.FunctionalityArea is optional; use it if the definition can apply to different areas.

  • Nombre refleja el significado de la clase, no la jerarquía de herencia.Name reflects the meaning of the class, not the inheritance hierarchy.

    Ejemplos: Microsoft.AD.Printer, Microsoft.Windows.Computer, System.Knowledge.Article, System.WorkItem.Incident, y System.StarRating.Average.Examples: Microsoft.AD.Printer, Microsoft.Windows.Computer, System.Knowledge.Article, System.WorkItem.Incident, and System.StarRating.Average.

El espacio de nombres del sistemaThe System namespace

El espacio de nombres System hace referencia a las definiciones que son independientes de Microsoft y Windows.The System namespace refers to definitions that are independent of Microsoft and Windows. Normalmente, esto se aplica a las definiciones base de las que dependen las aplicaciones Windows o las aplicaciones Unix.This usually applies to the base definitions that either Windows applications or Unix applications depend on. Estas definiciones base no deben ser dependientes de la empresa.These base definitions should be company independent.

Utilice las siguientes instrucciones para el prefijo System:Use the following guidelines for the System prefix:

  • System.Computer representa cualquier tipo de equipo y no es específico del proveedor.System.Computer represents any type of computer, and it is not vendor specific.

  • Utilice el prefijo System si espera que otros usuarios definan esquemas encima de ese espacio de nombres.Use the System prefix if you expect others to define schemas on top of that namespace.

  • Tenga en cuenta que Microsoft.Windows.Computer no empieza por System, si bien la mayoría de las aplicaciones de Windows (independientemente del proveedor que lo define) se basan en esta definición.Note that Microsoft.Windows.Computer does not start with System, although most Windows applications (regardless of the vendor that defines it) rely on this definition.

Prácticas recomendadas para la nomenclatura de clasesBest practices for naming classes

Utilice los siguientes procedimientos recomendados para la nomenclatura de clases:Use the following best practices when you are naming classes:

  • No cree dos clases independientes (incluso si están en dos módulos de administración diferentes) que obtendría valores claves idénticos almacenados para objetos diferentes de las dos clases.Do not create two separate classes (even if they are in two different management packs) that would result in identical key values being stored for different objects of the two classes.

  • A la hora de extender una clase, asegúrese siempre de que los nombres de extensión de clase son únicos en los módulos de administración.When you are extending a class, always ensure that the class extension names are unique across management packs. Si es posible, utilice nombres significativos de extensión de clase.If possible, use meaningful class extension names.

  • Cuando extienda una clase, no defina una propiedad con un identificador que ya se esté usando en esa clase.When you are extending a class, do not define a property with an ID that is already in use in that class.

  • No utilice puntos en los nombres de las propiedades de una clase personalizada.Do not use periods in names of properties of a custom class.

  • Si agrega un cálculo con nombre al crear un cubo de personalizado, escriba el nombre del cálculo con nombre con NC_.If you add a custom named calculation when you author a cube, preface the name of the named calculation with NC_. Así se reducirán las posibilidades de utilizar un nombre de una propiedad que ya existe.This will reduce the possibility of using a name of a property that already exists.

No cree demasiadas clasesDo not create too many classes

El resultado de crear demasiadas clases es una complejidad innecesaria con un valor mínimo.Creating too many classes can result in needless complexity with minimal value. Una regla útil consiste en usar el menor número de clases para lograr los resultados deseados.A good rule is to use the least number of classes to achieve the desired results. A excepción de las clases abstractas, si una clase no va a ser el destino de ningún flujo de trabajo ni se va a utilizar para almacenar datos, probablemente no se debería crear.Other than abstract classes, if a class is not going to be the target of any workflow or be used to store data, it probably should not be created. Además, si dos clases son similares, considere la posibilidad de utilizar una sola clase para ambos, posiblemente mediante el uso de una propiedad que pueda contener los valores de las diferencias.Also, if two classes are similar, consider using a single class for both of them, possibly by using a property that can hold the values for any differences.

No utilice propiedades que se actualizan con frecuenciaDo not use properties that update frequently

Una vez rellenados, los valores de las propiedades no deberían cambiar casi nunca.Property values should change rarely after they are first populated. Una posible causa de los cambios de valores de propiedad frecuente es un conector personalizado o cualquier otra personalización que se actualice mediante programación la base de datos de Service Manager.A possible cause for frequent property value changes is a custom connector or any other customization that programmatically updates the Service Manager database. Posiblemente, estos escenarios pueden producir actualizaciones demasiado frecuentes de los valores de las propiedades, como cada 10 o 15 minutos o menos, para un gran número de objetos.These scenarios can potentially cause property values to update too frequently, such as every 10 to 15 minutes or less for a large number of objects.

Tales cambios frecuentes en los valores de las propiedades podrían afectar ligeramente al rendimiento de los flujos de trabajo, además de producir otros impactos en el rendimiento.Such frequent changes to property values might slightly impact the performance of the workflows, and they might have other performance impacts. Esto se debe a que el sistema realiza un seguimiento de los cambios en el historial.This is because the system keeps track of those changes in history. Además, en función de la propiedad que se cambie, estos cambios pueden agregar una cantidad significativa de datos que el almacenamiento de datos procesa y almacena.Also, depending on the property being changed, these changes can add a significant amount of data to be processed and stored by the data warehouse.

No extienda una clase abstractaDo not extend an abstract class

En el Administrador de servicio, no se puede extender una clase abstracta.In Service Manager, you cannot extend an abstract class. Si necesita extender una clase abstracta, puede llevar a cabo cualquiera de las siguientes acciones:If you need to extend an abstract class, you can do either of the following:

  • Cree una nueva clase con las propiedades que desee agregar y, a continuación, cree una relación entre la nueva clase y la clase abstracta.Create a new class with the properties you want to add, and then create a relationship between the new class and the abstract class.

  • Extienda cada una de las clases concretas pertinentes que se derivan de la clase abstracta.Extend each of the relevant concrete classes that derive from the abstract class.

Mejore la búsqueda sencilla para las clases de elemento de trabajoImprove simple search for work item classes

Al definir una clase personalizada que se deriva de la "System.WorkItem" (clase), le recomendamos que almacene la DisplayName propiedad de dicha clase en el formato siguiente: WorkItem.ID<espacio>WorkItem.Title.When you define a custom class that is derived from the "System.WorkItem" class, we recommend that you store the DisplayName property of that class in the following format: WorkItem.ID<SPACE>WorkItem.Title.

Esto mejora la búsqueda sencilla.This improves simple search. Mediante la búsqueda sencilla solo se busca la propiedad DisplayName ; sin embargo, si se incluyen explícitamente el valor de la propiedad Title y el valor de la propiedad ID en el valor de la propiedad DisplayName , los resultados de la búsqueda sencilla mejoran.Simple search searches only the DisplayName property, and by explicitly including the Title property value and the ID property value in the DisplayName property value, the results of simple search are improved. Esto se debe a que el usuario puede buscar por una palabra en el título o por el identificador.This is because the user can search either by a word in the title or by ID.

Examinar una clase en Authoring toolBrowse a class in the Authoring tool

Puede usar el Explorador de clases panel en Service Manager Authoring Tool para examinar las clases y sus propiedades.You can use the Class Browser pane in the Service Manager Authoring Tool to browse classes and their properties. Mientras examina las clases, puede agregar un control a un formulario, arrastre propiedades desde el Explorador de clases panel a un formulario que se esté creando en el panel de creación.While you are browsing classes, you can add a control to a form by dragging properties from the Class Browser pane to a form that is being authored in the authoring pane.

El Explorador de clases panel puede mostrar clases desde cualquier módulo de administración que se encuentra en la carpeta Library y desde cualquier módulo de administración que se haya abierto en la herramienta de creación.The Class Browser pane can display classes from any management pack that is in the Library folder and from any management pack that has been opened in the Authoring Tool. Al seleccionar una clase, el Explorador de clases panel muestra las propiedades que se han definido específicamente para esa clase y las propiedades internas generadas por el sistema.When you select a class, the Class Browser pane displays the properties that are specifically defined for that class and the internal properties that are generated by the system. De forma predeterminada, la carpeta Library está en la ubicación siguiente: C:\archivos de programa (x86)\Microsoft System Center\creación de Service Manager 2016\biblioteca.By default, the Library folder is in the following location: C:\Program Files (x86)\Microsoft System Center\Service Manager 2016 Authoring\Library.

Cuando se selecciona un módulo de administración en el Explorador de clases panel, se muestran todas las clases del módulo de administración seleccionado y puede expandir la clase para el que desea ver las propiedades.When you select a management pack in the Class Browser pane, all the classes from the selected management pack are displayed, and you can expand the class for which you want to view properties. Cuando se selecciona todos los módulos de administración, se muestran todas las clases de todos los módulos de administración en la carpeta Library.When you select All Management Packs, all the classes from all the management packs in the Library folder are displayed. Cada vez que cambie la selección del módulo de administración, debe actualizar el Explorador de clases panel.Whenever you change the selection of the management pack, you must refresh the Class Browser pane.

Para examinar una claseTo browse a class

  1. Si el Explorador de clases panel no está visible en la herramienta de creación, haga clic en vistay, a continuación, haga clic en Explorador de clases.If the Class Browser pane is not visible in the Authoring Tool, click View, and then click Class Browser.

  2. En el Explorador de clases panel, en la lista de módulos de administración, seleccione el módulo de administración que contiene la clase que desea examinar.In the Class Browser pane, in the management pack list, select the management pack that contains the class that you want to browse. Por ejemplo, seleccione la biblioteca del sistema módulo de administración.For example, select the System Library management pack.

  3. Busque la clase que desea ver, como el equipo clase y, a continuación, haga lo siguiente:Locate the class that you want to view, such as the Computer class, and then do the following:

    • Para ver los detalles de la clase, como descripción y nombre interno, derecho-haga clic en la clase y, a continuación, haga clic en detalles.To view the details of the class, such as Description and Internal Name, right-click the class, and then click Details.

    • Para ver la lista de propiedades de clase, como nombre para mostrar y estado de activo, expanda la clase en el Explorador de clases panel.To view the list of class properties, such as Display Name and Asset Status, expand the class in the Class Browser pane. Para ver más detalles de una propiedad, haga-haga clic en la propiedad y, a continuación, haga clic en detalles.To further view details of a property, right-click the property, and then click Details.

    • Para abrir el módulo de administración que contiene la definición de la clase, haga-haga clic en la clase y, a continuación, haga clic en vista.To open the management pack that contains the definition of the class, right-click the class, and then click View.

Editar los detalles de una clase en Authoring toolEdit details of a class in the Authoring tool

Puede usar la herramienta de creación de Service Manager para ver las propiedades de una clase y editar los detalles, como el nombre o la descripción de una clase.You can use the Service Manager Authoring Tool to view the properties of a class and to edit the details, such as the name or description, of a class.

En el Explorador de módulos de administración, puede seleccionar una clase y ver sus detalles en el detalles panel.In the Management Pack Explorer, you can select a class and view its details in the Details pane. Si selecciona una clase que se define en un módulo de administración no sellado, puede cambiar el nombre y la descripción de esa clase.If you select a class that is defined in an unsealed management pack, you can change the name and description of that class.

Para cambiar el nombre o la descripción de una claseTo change the name or description of a class

  1. En el escritorio, haga clic en iniciar.On your desktop, click Start.

  2. Haga clic en Service Manager Authoring Tooly espere a que la herramienta de creación abrir.Click Service Manager Authoring Tool, and wait for the Authoring Tool to open.

  3. Asegúrese de que tanto el Explorador de módulos de administración y detalles paneles están abiertos.Ensure that both the Management Pack Explorer and the Details panes are open.

  4. Haga clic en archivoy, a continuación, haga clic en abiertos.Click File, and then click Open.

  5. En el archivos abiertos cuadro de diálogo, seleccione el módulo de administración no sellado que contiene la clase que desea cambiar y, a continuación, haga clic en abiertos.In the Open File dialog box, select an unsealed management pack that contains the class that you want to change, and then click Open. Por ejemplo, abra el carpeta de instalación de Authoring Tool \ejemplos\módulo de administración de ejemplo Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml.For example, open the Authoring Tool installation folder \Samples\Woodgrove.AutomatedActivity.AddComputerToGroupMP.xml sample management pack.

  6. En el Explorador de módulos de administración, expanda el módulo de administración que contiene la clase que desea cambiar.In the Management Pack Explorer, expand the management pack that contains the class that you want to change.

  7. Expanda clasesy, a continuación, busque y seleccione la clase que desea cambiar.Expand Classes, and then locate and select the class that you want to change.

  8. Seleccione el valor de la nombre o descripción propiedad y, a continuación, escriba el nuevo valor.Select the value of the Name or Description property, and then enter the new value. Valores que no se puede cambiar no están disponibles.Values that cannot be changed are unavailable.

  9. En el Explorador de módulos de administración, derecho-haga clic en el módulo de administración que contiene la clase modificada y, a continuación, haga clic en guardar.In the Management Pack Explorer, right-click the management pack that contains the changed class, and then click Save.

Crear una clase mediante herencia en Authoring toolCreate a class using inheritance in the Authoring tool

En Service Manager Authoring Tool, puede crear una clase que hereda las propiedades y relaciones de una clase base existente.In the Service Manager Authoring Tool, you can create a class that inherits properties and relationships from an existing base class. A continuación, puede modificar o agregar propiedades y relaciones a la nueva clase.You can then modify or add properties and relationships to the new class.

El primer paso para definir la herencia de clase, elija la clase base desde la que se va a heredar las propiedades y relaciones.As the first step of defining class inheritance, choose the base class from which to inherit properties and relationships. En la herramienta de creación, puede elegir la clase base mediante uno de los métodos siguientes:In the Authoring Tool, you can choose the base class by using one of the following methods:

  • Utilice un método abreviado para heredar propiedades y relaciones de la clase de elemento de configuración base.Use a shortcut to inherit properties and relationships from the base configuration item class.

  • Utilice un método abreviado para heredar propiedades y relaciones de la clase de elemento de trabajo base.Use a shortcut to inherit properties and relationships from the base work item class.

  • Seleccione primero la clase base y, a continuación, empiece a definir la herencia.First select the base class, and then start defining the inheritance.

  • Empiece a definir la herencia sin una selección de la clase base específica.Start defining inheritance without a specific base class selection.

    Los procedimientos siguientes describen todos los métodos para definir la herencia de clases en la herramienta de creación.The following procedures describe all the methods for defining class inheritance in the Authoring Tool.

Para comenzar con la clase de elemento de configuración o de la clase de elemento de trabajo como una clase baseTo start with the configuration item class or the work item class as a base class

  1. Si el Explorador de módulos de administración no está visible en la herramienta de creación, haga clic en vistay, a continuación, haga clic en Explorador de módulos de administración.If the Management Pack Explorer is not visible in the Authoring Tool, click View, and then click Management Pack Explorer.

  2. En el Explorador de módulos de administración, seleccione y, a continuación, expanda cualquier módulo de administración.In the Management Pack Explorer, select and then expand any management pack.

  3. Derecha-haga clic en clasesy, a continuación, haga clic en crear clase de elemento de configuración o crear clase de elemento de trabajo.Right-click Classes, and then click Create Configuration Item Class or Create Work Item Class.

  4. Si está creando una clase a partir de un módulo de administración sellado, en la módulo de administración de destino cuadro de diálogo, seleccione una administración sin sellar módulo para almacenar la personalización de clase y, a continuación, haga clic en Aceptar.If you are creating a class from a sealed management pack, in the Target Management Pack dialog box, select an unsealed management pack to store the class customization, and then click OK.

    Nota

    Si está creando una clase desde un módulo de administración no sellado, esta personalización de clase se guardará en ese módulo de administración.If you are creating a class from an unsealed management pack, this class customization is saved in that selected management pack.

  5. En el crear clase cuadro de diálogo, especifique el nombre interno para la nueva clase y, a continuación, haga clic en crear.In the Create Class dialog box, specify the internal name for the new class, and then click Create.

    En el panel de creación, ahora puede ver la lista de propiedades de la nueva clase.In the authoring pane, you can now view the list of properties of the new class. Si está creando una clase de elemento de configuración, se muestran todas las propiedades de la clase de elemento de configuración.If you are creating a configuration item class, all properties of the configuration item class are listed. Si está creando una clase de elemento de trabajo, se muestran todas las propiedades de la clase de elemento de trabajo.If you are creating a work item class, all properties of the work item class are displayed.

  6. Haga clic en crear propiedad o Crear relación para definir nuevas propiedades y nuevas relaciones para la clase.Click Create property or Create relationship to define new properties and new relationships for the class.

Para iniciar con una clase base seleccionadaTo start with a selected base class

  1. Si el Explorador de módulos de administración no está visible en la herramienta de creación, haga clic en vistay, a continuación, haga clic en Explorador de módulos de administración.If the Management Pack Explorer is not visible in the Authoring Tool, click View, and then click Management Pack Explorer.

  2. En el Explorador de módulos de administración, busque y, a continuación, haga-haga clic en la clase base desde la que la nueva clase heredará propiedades y relaciones.In the Management Pack Explorer, locate and then right-click the base class from which the new class will inherit properties and relationships. Seleccione heredar de esta clase.Select Inherit from this class.

  3. En el heredar clase nueva diálogo cuadro, escriba un nombre interno para la clase.In the Inherit New Class dialog box, enter an internal name for the class.

    En el panel de creación, el propiedades y relaciones de clase lista muestra las propiedades de la clase base.In the authoring pane, the Class properties and relationship list displays the properties of the base class.

  4. Ahora puede hacer clic en crear propiedad o Crear relación para agregar propiedades o una relación a la nueva clase.You can now click Create property or Create relationship to add properties or a relationship to the new class.

Para iniciar sin una clase base seleccionadaTo start without a selected base class

  1. Si el Explorador de módulos de administración no está visible en la herramienta de creación, haga clic en vistay, a continuación, haga clic en Explorador de módulos de administración.If the Management Pack Explorer is not visible in the Authoring Tool, click View, and then click Management Pack Explorer.

  2. En el Explorador de módulos de administración, seleccione y, a continuación, expanda cualquier módulo de administración.In the Management Pack Explorer, select and then expand any management pack.

  3. Derecha-haga clic en clasesy, a continuación, haga clic en crear otra clase.Right-click Classes, and then click Create other class.

  4. En el clase Base cuadro de diálogo, seleccione la clase base para la herencia de propiedades y relaciones.In the Base class dialog box, select the base class to inherit properties and relationships from.

    Si lo desea, si sabe que en el que se define el módulo de administración de la clase base que se va a utilizar, puede filtrar por el módulo de administración correspondiente y, a continuación, seleccione la clase base para esta personalización.Optionally, if you know in which management pack the base class that you want to use is defined, you can filter on the respective management pack, and then select the base class for this customization.

    Haga clic en Aceptar.Click OK.

  5. Si la clase base seleccionada para la herencia de propiedades y relaciones está en un módulo de administración sellado, en la módulo de administración de destino cuadro de diálogo, seleccione una administración sin sellar módulo para almacenar la personalización de clase y, a continuación, haga clic en Aceptar.If the base class that you selected to inherit properties and relationships from is in a sealed management pack, in the Target Management Pack dialog box, select an unsealed management pack to store the class customization, and then click OK.

    Si la clase base seleccionada para la herencia de propiedades y relaciones está en un módulo de administración no sellado, esta personalización de clase se guardará en ese módulo de administración.If the base class that you selected to inherit properties and relationships from is in an unsealed management pack, this class customization will be saved in that selected management pack.

  6. En el crear clase cuadro de diálogo, especifique el nombre interno para esta clase y, a continuación, haga clic en crear.In the Create class dialog box, specify the internal name for this class, and then click Create.

    En el panel de creación, ahora puede ver la lista de propiedades de la nueva clase.In the authoring pane, you can now view the list of properties of the new class. Esta lista incluye todas las propiedades de la clase base que seleccionó.This list includes all the properties of the base class that you selected.

Extender una clase en Authoring toolExtend a class in the Authoring tool

Puede extender una clase en Service Manager Authoring Tool agregando propiedades y relaciones a la definición de la clase.You can extend a class in the Service Manager Authoring Tool by adding properties and relationships to the definition of the class. Extender una clase afecta a todas las instancias existentes de dicha clase: todas las instancias de esa clase se actualizarán para incluir las nuevas propiedades y relaciones.Extending a class affects all existing instances of that class: all instances of that class will be updated to include the new properties and relationships.

Para extender una claseTo extend a class

  1. Si el Explorador de módulos de administración panel no está visible en la herramienta de creación, haga clic en vistay, a continuación, haga clic en Explorador de módulos de administración.If the Management Pack Explorer pane is not visible in the Authoring Tool, click View, and then click Management Pack Explorer.

  2. En el Explorador de módulos de administración panel, busque y haga-haga clic en la clase que desea extender y, a continuación, haga clic en extender clase.In the Management Pack Explorer pane, locate and right-click the class that you want to extend, and then click Extend class.

  3. En el módulo de administración de destino cuadro de diálogo, seleccione una administración sin sellar módulo para almacenar la extensión de clase y, a continuación, haga clic en Aceptar.In the Target Management Pack dialog box, select an unsealed management pack to store the class extension, and then click OK.

  4. El clase propiedades y relaciones lista el extensión de clase ficha en el panel de creación muestra las propiedades y las relaciones de la clase.The Class properties and relationship list on the Extension of class tab in the authoring pane displays the properties and the relationships of the class. Cree nuevas propiedades y relaciones como sigue:Create new properties and relationships as follows:

    1. Haga clic en crear propiedad; en el crear propiedad cuadro de diálogo, escriba un nombre en nombre interno para la nueva propiedad y, a continuación, haga clic en crear.Click Create property; in the Create property dialog box, type a name in Internal name for the new property; and then click Create.

    2. Haga clic en Crear relación; en el Crear relación cuadro de diálogo, escriba un nombre en nombre interno para la nueva relación y, a continuación, haga clic en crear.Click Create relationship; in the Create relationship dialog box, type a name in Internal name for the new relationship; and then click Create.

    Nota

    Cuando extienda una clase, no defina una propiedad con un identificador que ya se esté usando en esa clase.When you are extending a class, do not define a property with an ID that is already in use in that class.

  5. Busque y seleccione la nueva propiedad o relación en el clase propiedades y relaciones enumerar y modificar sus propiedades en el detalles panel según sea necesario.Locate and select the new property or relationship in the Class properties and relationship list, and modify its properties in the Details pane as needed.

Pasos siguientesNext steps