DataHistoryManager.GetVersionDiff

DataHistoryManager

GetVersionDiff

Disponible desde la versión 8.3.10.

Sintaxis:

GetVersionDiff(<Datos>, <NúmeroVersiónDespuésCambio>, <NúmeroVersiónAntesCambio>)

Parámetros:

<Datos> (obligatorio)

Tipo: CatalogRef., DocumentRef., InformationRegisterRecordKey., BusinessProcessRef., TaskRef., ChartOfCharacteristicTypesRef., ChartOfAccountsRef., ExchangePlanRef., ChartOfCalculationTypesRef., ConstantValueKey..
Una referencia a un objeto o una clave de registro de un registro de registro de información.

<NúmeroVersiónDespuésCambio> (obligatorio)

Tipo: Número.
El número de la versión posterior al cambio.

<NúmeroVersiónAntesCambio> (opcional)

Tipo: Número, Indefinido.
El número de la versión anterior al cambio. Si este parámetro se establece en Indefinido, el método compara la versión posterior con la anterior.
Valor predeterminado: Indefinido.

Valor devuelto:

Tipo: Estructura, Indefinido.
Indefinido si el tipo de cambio de la versión posterior es eliminación de datos.
Estructura si el tipo de cambio de la versión posterior es creación o actualización de datos. La estructura contiene una lista de campos cambiados. Las claves de la estructura son los nombres de los atributos. Los valores de la estructura son estructuras, cada una de las cuales contiene los valores de los campos de las versiones anterior y posterior. La estructura no incluye separadores independientes ni sus valores. Si un objeto contiene secciones tabulares, las claves son los nombres de las secciones tabulares y los valores son matrices donde cada elemento es una estructura fija que describe un registro de sección tabular cambiado.
Las estructuras que almacenan cambios de campo incluyen:

  • AfterChangeValue – Número, Cadena, Fecha, Booleano, UUID o Referencia a objeto de tipo base de información. El valor de la versión posterior. Las referencias se almacenan como estructuras.
  • BeforeChangeValue – Número, Cadena, Fecha, Booleano, UUID o Referencia a objeto de tipo base de información. El valor de la versión anterior. Este valor no se completa si la versión anterior no existe (el número de versión posterior es 1) o la versión no estaba disponible para este campo en la versión anterior. Las referencias se almacenan como estructuras.

Las estructuras que almacenan cambios de sección tabular incluyen:

  • RowNumberInAfterChangeVersion – Tipo Número. El número de línea en la versión posterior.
  • Los números de línea pueden cambiar entre versiones. Si necesita generar un informe que describa las diferencias con la versión posterior, es posible que desee establecer números de línea para las líneas eliminadas de la versión posterior porque esto simplifica el cálculo de las posiciones de línea en la versión posterior.
  • RowNumberInBeforeChangeVersion – Tipo Número. El número de línea en la versión anterior.
  • Los números de línea pueden cambiar entre versiones. Si necesita generar un informe que describa las diferencias con la versión anterior, es posible que desee establecer números de línea para las líneas eliminadas de la versión anterior porque esto simplifica el cálculo de las posiciones de línea en la versión anterior.
  • ChangedRowCount – Tipo Número. El número de líneas cambiadas para crear el registro #1.
  • DataRowChangeType – Tipo DataLineChangeType. El tipo de cambio de datos de un registro de sección tabular.
  • Uno de los siguientes, dependiendo del tipo de cambio de línea:
    • Create – para cada atributo de la sección tabular, agregar un elemento donde la clave es el nombre del atributo y el valor es el valor del atributo en la versión posterior.
    • Change – para cada atributo de la sección tabular, agregar un elemento donde la clave es el nombre del atributo y el valor es una estructura que describe el cambio del atributo. Esta estructura es idéntica a la estructura que almacena cambios de atributos de objeto.
    • Delete – para cada atributo de la sección tabular, agregar un elemento donde la clave es el nombre del atributo y el valor es el valor del atributo en la versión posterior.
    • Move – la propiedad no tiene un valor.
  • Las estructuras que almacenan referencias tienen el siguiente formato:
    • Ref – Referencia a objeto de tipo base de información. Una referencia a un objeto.
    • Presentation – Tipo Cadena. Una presentación de referencia.

Descripción:

Obtiene la lista de cambios entre dos versiones de datos.

Disponibilidad:

Servidor, cliente grueso, conexión externa.

Ejemplo:

// Mostrar los cambios en un pedido de venta:

// productos agregados, productos eliminados y productos con precios cambiados.    

    
SalesOrderDiff = DataHistory.GetVersionDiff(    
    Documents.Order.FindByNumber(“0000001”), 2, 1);    
For 
Each Item In SalesOrderDiff.OrderItems Do    
     If 
Item.DataRowChangeType    
         = DataRowChangeType.Create Then    
        Message(“Agregado: “ + Item.ItemName);    
     Else 
If Item.DataRowChangeType     
        = DataRowChangeType.Delete Then    
        Message(“Eliminado: “ + Item.ItemName);    
     Else 
If Item.DataRowChangeType     
        = DataRowChangeType.Update Then    
        Message(“Cambiado:”    
            +  ” Precio anterior = “ + Item.Price.OldValue     
            +  ” Precio nuevo = “ + Item.Price.NewValue);    
     EndIf
;    
EndDo
;

Disponible desde:

Disponible desde la versión 8.3.10.