Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Servicios

Módulo:SIGAFAT - Facturación
Función:
RutinaNombre TécnicoFecha Actualización
M486PDFCOLImpresión/Envío de factura electrónica. 
 
Ticket:9091035
Requisito/Story/Issue (informe el requisito vinculado):DMINA-9454


02. SITUACIÓN/REQUISITO

Se requiere que al realizar la transmisión electrónica de documentos de tipo Factura de Venta, Nota de Débito y Nota de Crédito se realice en automático el envío de archivos a varias cuentas de correo electrónico personalizadas del cliente utilizando las clases del servicio DFACTURA del proveedor tecnológico The Factory HKA.


03. SOLUCIÓN

La indicación al servicio web de TFHKA para realizar el envío de correo se puede hacer a a través del Punto de Entrada M486OWSCOL, para lo cual dentro de la clase Cliente se debe informar el elemento Indicar con valor "SI" e informar el elemento destinatario utilizando la clase Destinatario que permite especifica el medio y los datos de la entrega electrónica del documento.

NOTA: Se realiza ajuste a la rutina de impresión y envío de documentos electrónicos de Protheus (M486PDFCOL) para homologar la descarga del XML Attacheddocument, haciendo uso de la clase GenerarContenedor disponibilizada por The Factory HKA.







1. Crear y compilar el Punto de Entrada M486OWSCOL.

2. Si se considera necesario, desde el configurador de Protheus (SIGACFG | Base de Datos | Base de Datos | Diccionario de Datos), el usuario puede crear un campo personalizado en las tabla de clientes (SA1) o Complementos de Cliente (AI0) para funcionalidad de envío de los documentos electrónicos a varias cuentas correo electrónico (Actualmenten el cliente solo cuenta con el campo Email - A1_EMAIL para informar el correo electrónico del cliente pero con capacidad para un solo registro).

3. Registrar las cuentas de correo necesarias en el campo destinado para este propósito en la tabla de clientes (SIGAFAT | Actualizaciones | Archivos | Clientes).

4. Registrar una Factura de Venta (SIGAFAT | Actualizaciones | Facturación | Facturaciones) para el cliente para el que se configuró el correo electrónico.

1. Realizar la transmisión del documento electrónico desde el menú SIGAFAT | Actualizaciones | Facturación | Factura Electrónica.

2. Verifique que la transmisión se realice correctamente, y validar la recepción del documento a través del correo electrónico.


04. INFORMACIÓN ADICIONAL

Registro de cuentas de correo, en el cliente seleccionado, para envío de la factura electrónica:


Resultado de transmisión de factura de venta al servicio web de The Factory HKA:


Correo recibido en la cuenta 1:


Correo recibido en la cuenta 2:


Ejemplo del Punto de Entrada para el envío de correo a diferentes destinatarios:

M486OWSCOL
#include "protheus.ch"

User Function M486OWSCOL()

	Local cSerieDoc := PARAMIXB[1] //Serie
	Local cNumDoc := PARAMIXB[2] //Numero de Documento
	Local cCodCli := PARAMIXB[3] //Codigo de Cliente
	Local cCodLoj := PARAMIXB[4] //Codigo de la Tienda
	Local oXML := PARAMIXB[5] //Objeto del XML
	Local nOpc := PARAMIXB[6] //Nivel: 1-Encabezado, 2=detalle
	Local oWS := PARAMIXB[7] //Objeto de web services
	Local aEmail := {}
	Local oWSDest := Nil
	Local oWSCta := Nil
	Local nX := 0

	If nOpc == 1 //Encabezado

		// Posicionar cliente
		SA1->(dbSetOrder(1))

		If SA1->(msSeek(xFilial("SA1")+cCodCli+cCodLoj))

			// Como ejemplo se usa el campo A1_PRF_OBS (Comentarios de perfil)
			If !Empty(SA1->A1_PRF_OBS)

				// Las cuentas de correo están separadas por coma
				aEmail := StrTokArr(SA1->A1_PRF_OBS, ",")

				// Indicar Sí notificar
				oWS:oWSCliente:cnotificar := "SI"

				// Crea objeto destinatario, el medio de entrega es 0=email
				oWSDest := Service_Destinatario():NEW()
				oWSDest:ccanalDeEntrega := "0"

				// Crea arreglo de las cuentas de correo
				oWSDest:oWSemail := Service_ArrayOfstring():NEW()

				For nX := 1 to Len(aEmail)

					aAdd(oWSDest:oWSEmail:cstring, aEmail[nX])

				Next nX

				// Agrega destinatario al objeto principal
				aAdd(oWS:oWSCliente:oWSDestinatario:oWSDestinatario, oWSDest)

			EndIf

		EndIf

	EndIf

Return Nil



¡IMPORTANTE!

La Factura Electrónica es enviada a las cuentas de correo especificadas siempre y cuando la transmisión haya sido exitosa y el elemento Indicar de la clase Cliente se haya informado como "SI" (Funcionalidad válida para versión 12.1.17 o superiores). Cualquier detalle relacionado con fallas en las clases de The Factory HKA, deberán ser tratados directamente con el proveedor.


05. ASUNTOS RELACIONADOS

Para más información sobre el proceso de Factura Electrónica, consulte el documento de referencia: 

DT_Facturacion_Electronica_Validacion_Previa_COL