Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

CampoF2_UUIDREL
OrdenZZ
TipoMemo
Tamaño10
Decimal0
Formato@!
TítuloDocs Relacs
DescripciónDocumentos relacionados
Nivel1
UtilizadoSi
ObligatorioNo
BrowseNo
CondiciónM486VLDDR(M->F2_UUIDREL,.T.)
HelpIndica el Documento Relacionado, separar cada documento a relacionar con un salto de línea, y cada uno de los documentos informados deberá tener la nomenclatura: Código de Referencia a otros documentos definido por la DIAN + diagonal("/") + Número de folio del documento, por ejemplo AIJ/CTG16, para ordenes de compra utilizar el código ORDC.



2.2 PUNTO DE ENTRADA MATA486 ADICIÓN DE CAMPOS A XML


2.2.1 

...

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 entrada M486CEXT para  para la incorporación de de Campos Extensibles al  al documento electrónico XML/PDF (Resolución N° 000019 24-02-2016 DIAN) que genera el proveedor tecnológico 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.

2.2.2 

...

Ejemplo de utilización 

Creación del PE M486CEXT 

El usuario creará el código y compilará la función de usuario usuario M486CEXT con  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 nombre ParamIXB y  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 de TFHKA, sección sección Uso de Campos Extensibles y  y en la la Tabla 11 respectivamente respectivamente.
      Importante:
    • Para los campos que no les corresponda alguno de los códigos considerados en la la TABLA 11, denominados 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.

a) Ejemplo de Punto de Entrada M486CEXT

#Include "Protheus.ch"

#Include "rwmake.ch"


User Function M486CEXT()

 Local aArea 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

b) Ejemplo de documento electrónico generado por TFHKA con campos extensibles

...