Toda la información de producto en wiki.bizagi.com aplica para Bizagi BPM Suite 9.1.X.
Para las nuevas versiones de Bizagi BPM Suite (10.X y superior) visite la Guía de Usuario.
 

SaveEntity

De

<keywords content="keywords">saveEntity, saveEntityAsString, save Entity,Capa SOA, EntityManagerSOA, Entity Manager SOA</keywords> 

Contenido

saveEntity

Con este método, incluído en el web service EntityManagerSOA, es posible almacenar información en una Entidad Bizagi. Este artículo aplica también para el método saveEntityAsString.

Descripción

Este método tiene dos usos;puede utilizarse para insertar o actualizar información de entidades paramétricas en Bizagi y también para actualizar información de casos. saveEntity recibe y retorna un XmlDocument, mientras que el método saveEntityAsString recibe y retorna un XML, pero en formato string.

Parámetros de Entrada 

El esquema del XML esperado es similar al de la imagen que se aprecia a continuación:


Parámetro 1 (XmlDocument o Tipo String)

BizAgiWSParam: Es el nodo raíz del XML.

Entities: Dependiendo de lo que se pretenda hacer, puede contener las entidades que se van a actualizar en el caso de entidades paramétricas; o puede contener la jerarquía del modelo entidad relación, comenzando por la entidad del procesos requerido, para actualizar la información del caso. El resto del XML se basa en la estructura del modelo entidad relación. A continuación se presentan dos ejemplos, en el primero de ellos se actualiza información en entidades paramétricas y en el segundo se muestra como actualizar información en el caso.

Se puede ver fácilmente la diferencia entre una actualización y una inserción ya que la actualización requiere una especificación explícita de la llave primaria (oo llaves primarias) de los registros que se van a actualizar, e.g. key="valor" (o businessKey="Attributo=valor"); las inserciones no requieren esta especificación.

Ejemplo 1

En el siguiente XML de ejemplo, se ejecutan tres operaciones sobre los valores de la entidad paramétrica "Ciudad" (City).

Alerta: Tenga en cuenta que para poder realizar lo descrito (la inserción o edición de valores de la entidad de parametrización), dicha entidad debe haberse definido como administrable únicamente para ese ambiente específico (sobre el cual se está invocando el método saveEntity). Vea más información sobre las recomendaciones para la administración de las entidades de parametrización.


 


La primera operación es la inserción de un nuevo registro. Nótese que es posible que la entidad tenga un atributo relacionado con otra entidad paramétrica(en este ejemplo la entidad Country), entonces para establecer la relación con un registro existente de la otra entidad, es mas fácil a través del atributo XML llamado businessKey. El valor de este atributo debe ser similar al que se muestra en el ejemplo, donde el atributo Code en la entidad Country tiene un valor único para cada registro.

Sin embargo, si la entidad relacionada a través de la llave de negocio también tiene definida su propia llave de negocio, entonces el xml debe ser diferente también. El xml para insertar un nuevo registro en caso que ambas entidades tengan llaves de negocio definidas debería ser como se muestra a continuación:



La siguiente operación es la modificación del valor en Name para el registro con llave primaria igual a 2. Aquí se utiliza el atributo key del XML. Cada entidad en Bizagi es creada con un atributo que se setea como llave primaria; este atributo es nombrado idEntityName (e.g. el atributo idCountry en la entidad Country). Si se conoce el valor en este atributo para el registro que se va a actualizar, utilice este como el valor para el atributo key del XML. De otra forma, es posible usar el businessKey; esta llave de negocio o businessKey debe ser utilizada de la misma forma que se usó en la primera operación. Esta puede ser una llave compuesta, es decir, una llave de negocio businessKey que utiliza dos atributos, por ejemplo: businessKey="DocumentNumber = '123456' and DocumentType='Passport'" utilizado en la entidad Person.

En la última operación se deshabilita un registro en la entidad City. Cada entidad paramétrica en Bizagi se crea con un atributo Booleano que se utiliza para deshabilitar un registro; este atributo se llama dsblEntityName (e.g. el atributo dsblCity en la entidad City). Entonces, usando la llave del registro o llave de negocio (businessKey), se deshabilitará  el registro si el atributo correspondiente se setea en verdadero (true). El registro existirá en la base de datos (de tal forma que los casos antiguos que utilizan este registro no se verán afectados), pero no se mostrará en la aplicación web (en los render tipo combo).

Ejemplo 2

Este ejemplo muestra como actualizar la informacíón de un caso específico con el método saveEntity:



El número del caso (idCase en la Entidad de Aplicación, no el número de creación) se indica añadiendo el atributo XML llamado idCase dentro del elemento Entities. Dentro de este elemento, incluya la estructura del modelo de datos, comenzando con el atributo en la entidad de relacionado con la Entidad de Proceso deseada, y continuando a través de las relaciones hasta llegar a la información que se actualizará.

Parámetros de Salida 

Cuando se utiliza el método saveEntity para actualizar entidades paramétricas, la respuesta es un XML con los ids (keys) de los registros modificados. A continuación encontrará un ejemplo del XML de respuesta para la invocación del Ejemplo 1:



Por otro lado, si el método se utiliza para modifcar información en un caso, entonces, el XML de respuesta tendrá una un único nodo vacío (Entities). Esta es la única indicación que la operación se ejecuto sin errores.


<comments />