Ejemplo de regla XML avanzada: selección del nodo X basado en el nodo Y (o en el atributo a)

Este tipo de regla podría ser necesaria si la ruta XPath al nodo esperando no es única en el XML para las facturas (esto es, hay varios nodos con la misma ruta XPath en el archivo XML).

En este ejemplo se utiliza una factura Svefaktura. Queremos encontrar el valor correcto del campo PaymentReferenceNumber de Kofax ReadSoft Invoices. La ruta esperada de este campo en el estándar de factura XML Svefaktura es /Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:PaymentInstructionID. En nuestras facturas de ejemplo, hay varias instancias de este XPath en el archivo. La correcta es la que tiene el atributo GGSISESS. Haga clic en la miniatura para ver un ejemplo:

Para crear una regla avanzada que busque en un modo distinto para encontrar el valor correcto

  1. Seleccione el campo PaymentReferenceNumber en la categoría Campos de la ficha Campos del Asignador XML (en la parte derecha de la ventana).
  2. 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.

  3. En la sección de selección de nodo XML de 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, despliegue el nodo Invoice.
  4. Acceda y seleccione el nodo que están más cerca del nodo PaymentinstructionID pero es común a todas las instancias. (En este caso, el nodo común más cercano es Invoice/cac:PaymentMeans en el ejemplo.)


  5. Haga clic en Seleccionar.
  6. En el nodo XML seleccionado para trabajar con recuadro, despliegue cac:PaymentMeans y acceda y seleccione el nodo que contiene el elemento que distingue unas secciones PaymentMeans de otras. En este caso, sería:

    cac:PaymentMeans/cac:PayeeFinancialAccount(cac:FinancialInstitutionBranch/cac:Financialnstitution/cac:ID

  7. En los parámetros de la nueva sección de condición del cuadro de diálogo, seleccione Basado en valor.
  8. Seleccione el atributo correcto en la lista desplegable bajo Valor, con el que comparar (GGSISSESS en este caso).
  9. Haga clic en Añadir. La condición correspondiente se añade al recuadro Condiciones con las que trabajar:

    Value(Node[PaymentMeans/PayeeFinancialAccount/FinancialInstitutionBranch/FinancialInstitution/ID])=="GGSISESS"

  10. 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).
  11. 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.