Ejemplo de regla XML avanzada: Traducir un valor XML a otro que Kofax ReadSoft Invoices entienda

Este ejemplo está tomado de las reglas avanzadas estándar que se proporcionan con los estándares de factura XML Svenfaktura.

Los distintos estándares de factura XML pueden contener distintos valores para indicar si la factura es de débito/abono o de crédito (por ejemplo, E2B, OIOUBL y Svefaktura incluyen todos el valor "380" relacionado con el campo Tipo de factura para indicar que la factura en cuestión es una factura de abono). Si se encuentra cualquier otro valor en la ubicación esperada, se trata de una factura de crédito. Por otro lado, Kofax ReadSoft Invoices busca 0 en relación a facturas de débito y 1 para facturas de crédito.

Para crear una regla avanzada que traduzca un valor XML a otro valor que Kofax ReadSoft Invoices entienda:

  1. Seleccione el campo InvoiceType en la categoría Campos de la ficha Campos del Asignador XML (en la parte derecha de la ventana).
    • Haga clic en el botón a la derecha del valor:

      si no se ha definido ninguna regla, o

      si ya existe una regla para el campo.

  2. Haga clic en el botón Seleccionar a la derecha de la sección de selección de nodo XML de las Reglas avanzadas, hacia la parte superior de la ficha Reglas de asignación de campos que se muestra en la parte izquierda de la ventana.
  3. En el recuadro Nodo XML seleccionado con el que trabajar a la derecha del botón, expanda x:Invoice.
  4. Acceda y seleccione el subnodo que contiene el valor que describe el tipo de factura. En este caso, sería x:Invoice\x:InvoiceTypeCode.
  5. En la sección Parámetros de la nueva condición del diálogo, seleccione Basado en valor.
  6. Seleccione Igual a en la lista desplegable bajo Comparación de valores.
  7. Seleccione el atributo correcto en la lista desplegable bajo Valor con el que comparar (380 en este caso).
  8. Haga clic en Añadir. La condición correspondiente se añade al recuadro Condiciones con las que trabajar:

    Value(Node[Invoice/InvoiceTypeCode])=="380"

  9. Haga clic en la condición que acaba de añadir.
  10. En los parámetros Parámetros para definir cómo se establece el valor del campo de factura, seleccionar si la condición es Verdadera y Utilizar los siguientes valores.
  11. Escriba 0 en el recuadro de edición.
  12. Haga clic en Añadir. El código equivalente se añade a Reglas aplicadas para asignar este campo.
    if((Value(Node[/Invoice/InvoiceTypeCode])=="380")==true)
    {
         Field.FieldValue = "0":
         return:
    }
  13. Seleccione Si la condición no se cumple y Utilizar los siguientes valores.
  14. Escriba 1 en el recuadro de edición.
  15. Haga clic en Añadir. El código equivalente se añade a Reglas aplicadas para asignar este campo.
    if((Value(Node[/Invoice/InvoiceTypeCode])=="380")==false)
    {

    Field.FieldValue = "1":

    return:
    }
  16. Seleccione Utilizar reglas avanzadas.

Haga clic en Extraer y revise la imagen para comprobar el resultado. Si necesita modificar la regla, debe hacer clic en ella en el recuadro Reglas aplicadas para asignar este campo, haga clic en Supr para eliminarla, realice los cambios necesarios para arreglar la regla y haga clic otra vez en Añadir para añadir la regla modificada. Si necesita modificar una condición, el proceso es el mismo (y si hay una regla basada en ella, la regla también se elimina al eliminar la condición).

Tenga en cuenta si los cambios se deben aplicar a todas las facturas o sólo a aquellas que tengan la definición de facturas de XML actual. Haga clic en Guardar definición XML para guardar el cambio solo para la definición actual de factura XML (esto es, el proveedor actual). Haga clic en Guardar el perfil XML si quiere que las reglas se apliquen a todas las facturas XML que coinciden con el perfil de factura de XML independientemente de la definición de factura XML.

Otros ejemplos de reglas XML avanzadas:

Corregir un nombre de campo mal escrito en relación a los datos principales

Aplicar formato a un valor XML extraído con XSL

Modificar un valor de campo XML extraído con XSL

Eliminar guiones (-) de un valor extraído

Seleccionar el nodo X según el nodo Y (o según el atributo a)

Seleccionar un nodo específico cuando más de un nodo coinciden después de utilizar una regla estándar

Seleccionar el nodo X si existe, y el nodo Y si no existe

Especificar un valor constante para un campo

Resume los datos de las líneas de artículos en forma de una nota en facturas de resumen