ÍNDICE

  1. Visión general
  2. Ejemplo de utilización
  3. Ejemplo de punto de entrada M486CEXT
  4. Ejemplo de documento electrónico generado por TFHKA con campos extensibles
  5. Ejemplo de documento electrónico en PDF generado por TFHKA con campos extensibles

01. VISIÓN GENERAL

Con la finalidad de proporcionar al usuario un medio para agregar datos adicionales a la factura electrónica, se crea el punto de entrada M486CEXT para la incorporación de Campos Extensibles al documento electrónico XML/PDF (Resolución N° 000019 24-02-2016 DIAN) que genera el proveedor tecnológico The Factory HKA (TFHKA). Los datos adicionales pueden ser por ejemplo campos de los registros de clientes: Teléfono, Teléfono 2, Dirección, etc.

02. EJEMPLO DE UTILIZACIÓN

Creación del PE M486CEXT 

El usuario creará el código y compilará la función de usuario M486CEXT con las estructuras de los campos extensibles a integrar en el XML/PDF que genera TFHKA, el Punto de Entrada constará de:

Parámetros recibidos, el nombre ParamIXB y tipo (arreglo) son fijos:

    • ParamIXB[1,1] = Serie de documento
    • ParamIXB[1,2] = Número de documento
    • ParamIXB[1,3] = Código de cliente
    • ParamIXB[1,4] = Tienda de cliente
    • ParamIXB[1,5] = Fecha de emisión
    • ParamIXB[1,6] = Filial (SF2/SF1)
    • ParamIXB[2] = Tipo de documento: NF, NDC, NCC

Cada campo se debe definir en un arreglo de 6 elementos, donde:

    • 1 = Descripción del campo para título en el PDF (controlInterno1).
    • 2 = Consecutivo de campo (controlInterno2).
    • 3 = Clave de campo (nombre).
    • 4 = Incluir en PDF? 0=No, 1=Sí (pdf).
    • 5 = Contenido del campo (valor).
    • 6 = Incluir en XML? 1=Sí, siempre (xml).

      Los textos entre paréntesis hacen referencia a identificadores del Servicio Web de TFHKA. Las descripciones y características de cada identificador, así como los códigos de campos posibles de utilizar (3° elemento), están descritos en el documento “Manual de Integración Directa - Emisión - V7.5.pdf” de TFHKA, sección Uso de Campos Extensibles y en la Tabla 11 respectivamente.

      Importante:
    • Para los campos que no les corresponda alguno de los códigos considerados en la TABLA 11, denominados LIBRE, deberá informarse una clave única para cada campo, además, esas claves no deben estar asignadas en el catálogo indicado; se pueden utilizar por ejemplo “1”, "2", "3", etc.
    • El indicador XML siempre deberá ser "1", el establecer "0" no tendría utilidad ya que no incluirá el campo en el documento electrónico y por lo tanto tampoco podría imprimirse en la representación gráfica.


Retorno:

    • Matriz de arreglos de los campos extensibles.

Procedimiento de Implantación 

  • Registrar una factura de venta; SIGAFAT | Actualizaciones | Facturación | Facturaciones.
  • Transmitir la factura capturada; SIGAFAT | Actualizaciones | Facturación | Documentos Electrónicos.
  • Visualizar el archivo XML recibido del servicio web de TFHKA, si el campo extensible tiene un código que corresponda a la "Tabla de códigos para campos extensibles", ese campo estará incluido en el nodo que le corresponda (receptor, encabezado, detalle, etc). Por otra parte, si es un campo "libre", éste se incorpora en el nodo ExtensionContent en la raíz del archivo XML.

03. Ejemplo de Punto de Entrada M486CEXT

#Include "Protheus.ch"

#Include "rwmake.ch"


User Function M486CEXT()

 Local aArea := getArea()

Local aAreaSA1 := SA1->(GetArea())

Local aCampos := {}

Local cSerie := ParamIXB[1,1]

Local cFactura := ParamIXB[1,2]

Local cCliente := ParamIXB[1,3]

Local cLoja := ParamIXB[1,4]

Local cEspecie := ParamIXB[2]


dbSelectArea("SA1")

dbSetOrder(1) //A1_FILIAL+A1_COD+A1_LOJA

dbSeek(xFilial("SA1")+cCliente+cLoja)


If !Empty(SA1->A1_CONTATO)

aAdd( aCampos , {"Destinatario", "", "48", "1", Alltrim(SA1->A1_CONTATO), "1"} )

EndIf


If !Empty(SA1->A1_HPAGE)

aAdd( aCampos , {"Pagina web", "", "1", "1", Alltrim(SA1->A1_HPAGE), "1"} )

EndIf


SA1->(RestArea(aAreaSA1))

RestArea(aArea)

Return aCampos

04. Ejemplo de documento electrónico generado por TFHKA con campos extensibles

05. Ejemplo de documento electrónico en PDF generado por TFHKA con campos extensibles