4.4. SERVIÇO M-CREATE

A primitiva M-CREATE é usada para criar uma nova instância de uma classe de objeto. Os pacotes condicionais e valores de atributos que o objeto gerenciado tem pode ser especificado como parte do request, ou uma instância existente pode ser referenciada como um modelo.

O serviço M-CREATE é sempre um serviço de confirmação. A tabela 1, parte (e), lista os parâmetros usados nas primitivas M-CREATE.

Como antes, o parâmetro invoke-identifier na primitiva M-CREATE.request é um único valor determinado para esta requisição. O parâmetro managed-object-class indica a classe do objeto da nova instância do objeto a ser criado. Criando um novo objeto, o objetivo do usuário CMIS determinando um identificador object-instance e determinando valores para os atributos deles. O identificador object-instance pode ser selecionado em um dos três caminhos:

1. Se o parâmetro superior-object-instance está presente, ele identifica a existência da instância managed-object na MIB do usuário CMIS alvo que está sendo o superior da nova instância do managed-object. Isto é informação suficiente para especificar o identificador object-instance da nova instância do objeto.

2. Se o parâmetro superior-object-instance não está presente, então o identificador managed- object-instance pode estar presente. O valor deste parâmetro é o identificador object- instance que é determinado para o novo objeto.

3. Se nenhum dos dois parâmetros agora listados estão presentes, então o usuário CMIS alvo determina um valor para o identificador da instância.

Os valores para os atributos da nova instância do objeto pode ser determinada por um dos três caminhos a seguir:

1. Se o parâmetro attribute-list está presente, ele contém uma lista de atributos identificados e valores. O atributo correspondente ao novo objeto são determinados estes valores.

2. Se o parâmetro reference-object-instance está presente, ele especifica uma instância existente de um objeto de mesma classe como o objeto a ser criado e na MIB do usuário CMIS alvo. Para esses atributos Nào são incluídos no parâmetro attribute-list, o valor do atributo do objeto referenciado são determinados para o atributo correspondente no novo objeto.

3. Se o parâmetro reference-object-instance não está presente, esses atributos não incluem no parâmetro attribute-list, e para o qual os valores default são especificados na definição da classe do objeto, são nomeados os valores default.

Se o objeto requisitado é criado satisfatoriamente, o usuário CMIS alvo emite um M-CREATE.response sem um campo de erro. O parâmetro managed-object-class pode ser incluído. O parâmetro managed-object-instance deve ser incluído se o identificador da instância é nomeado pelo usuário alvo; por outro lado, sua presença é opcional. O parâmetro attribute-list também é opcional; onde incluído, ele contém uma completa lista de todos os novos atributos dos objetos e seus valores.

O parâmetro de erro está incluído numa notificação de falha. Os seguintes erros podem ser reportados:

  • Access denied
  • Class-instance conflict
  • Duplicate invocation
  • Duplicate managed-object instance
  • Invalid attribute value
  • Invalid object instance
  • Missing attribute value
  • Mistyped argument
  • No such attribute
  • No such object class
  • No such object instance
  • No such reference object
  • Processing failure
  • Resource limitation
  • Unrecognized operation