Para poder insertar un nuevo documento dentro de FerrumOP desde un sistema de terceros, se debe agregar un xml a la tabla monitor, desde ahí FerrumOP la leerá y agregará en la serie correspondiente.
Requisitos #
Tener acceso de escritura en mysql a la tabla DATOSx/MONITOR
Tener en FerrumOP el permiso R2265-IMPORTA DOCUMENTOS DESDE XML
Tener Procesos de Captura Automatica disponibles.
Procedimiento #
Se inserta en la tabla MONITOR los siguientes datos:
MTRESTADO=”N” mtrestado puede tener valores de N-Listo para importar, I-Documento importado exitosamente, E-Documento no importado por error.
MTRTIPO=”C” mtrestado determina el tipo de documento importado, puede ser C-Cotizacion, N-Remision, F-Factura
MTRMENSAJE = XML contiene el xml que se va a importar, abajo se define su estructura.
Dentro de FerrumOP deberá estar alguna maquina con el proceso de importacion de xml (Ventas->Importar XML)
Al terminar de importar, el registro tendra los siguientes valores
MTRESTADO = I Si el documento fue importado dentro de FerrumOP
o
MTRESTADO = E si el documento no pudo ser importado
MTRRESPUESTA = Motivo por el cual no pudo ser importado
Estructura de XML #
Cualquier atributo o nodo no especificado aqui será ignorado.
Cualquier valor no definido, se asignará de la misma forma que si se capturara dentro de FerrumOP
<?xml version=”1.0″ encoding=”utf-8″?>
<cfdi:Comprobante
Serie=”F” <!–Define la serie a donde se importara, si no existe se importa en la predeterminada –>
LugarExpedicion=”48740″ <!–Solo se usa en compras –>
Version=”3.3″ <!–Valor requerido para poder importarlo–>
Observacion=”Observacion del doc” <!–Se almacena como observacion del documento–>
Folio=”M2002319″ <!–Se almacena junto con la serie en el campo de documento origen –>
Descuento=”0″ <!–Determina el descuento financiero en compras –>
Fecha=”2020-01-01T08:00:00″> <!–Se almacena como fecha de captura –>
<cfdi:Emisor
Nombre=”Mi Proveedor”
Rfc=”MPR200203TS7″ /> <!–Solo se usa en la importacion de compras, si no existe se agrega a proveedores–>
<cfdi:Receptor
CliNumero=”100″ <!–Numero de cliente dentro de ferrum, si no existe se agrega a la lista de clientes–>
Nombre=”Sistemas Ferrum” <!–Si no existe, se agrega a la lista de clientes –>
CodigoPostal=”72410″ <!–código postal del cliente –>
Rfc=”CAVL710608GT4″> <!–Si no existe CliNumero, busca el cliente por RFC –>
Calle=”CIRCUITO INTERIOR”> <!– Busca en los domicilios del cliente, si no existe lo crea–>
NumeroExterior=”2116″> <!–Para la busqueda del domicilio considera la calle y el numero exterior –>
NumeroInterior=”E8″> <!–Numero Interior –>
Colonia=”LA NORIA”> <!–Colonia, descripcion o numero del catálogo del SAT –>
Localidad=”PUEBLA”> <!–Ciudad o Poblacion o numero del catálogo del SAT–>
Referencia=”Frente a la Burgalesa”> <!–Referencia del domicilio –>
Municipio=”PUEBLA”> <!–Municipio o Numero del municipio del catálogo del SAT –>
Estado=”PUE” /> <!–Estado de acuerdo al catálogo de estados del SAT –>
<cfdi:DomicilioEnvio <!- Domicilio a donde se enviara la mercancia, si no se especifica, se usa la dirección del cliente ->
Nombre=”Sistemas Ferrum” <!–Si no existe, se agrega a la lista de clientes –>
Rfc=”CAVL710608GT4″> <!–Si no existe CliNumero, busca el cliente por RFC –>
CodigoPostal=”72410″ <!–código postal del cliente –>
Calle=”CIRCUITO INTERIOR”> <!– Busca en los domicilios del cliente, si no existe lo crea–>
NumeroExterior=”2116″> <!–Para la busqueda del domicilio considera la calle y el numero exterior –>
NumeroInterior=”E8″> <!–Numero Interior –>
Colonia=”LA NORIA”> <!–Colonia, descripcion o numero del catálogo del SAT –>
Localidad=”PUEBLA”> <!–Ciudad o Poblacion o numero del catálogo del SAT–>
Referencia=”Frente a la Burgalesa”> <!–Referencia del domicilio –>
Municipio=”PUEBLA”> <!–Municipio o Numero del municipio del catálogo del SAT –>
Estado=”PUE” /> <!–Estado de acuerdo al catálogo de estados del SAT –>
<cfdi:Emisor
Nombre=”Mi Proveedor”
Rfc=”MPR200203TS7″ /> <!–Solo se usa en la importacion de compras, si no existe se agrega a proveedores–>
<cfdi:Conceptos>
<cfdi:Concepto
NoIdentificacion=”A1″ <!–Articulo de la partida, se busca en el siguiente orden Clave del Articulo, Clave del proveedor del articulo, Clave de Fabricante, Codigo de barras –>
Cantidad=”1″ <!–Cantidad del articulo, por defecto 1 –>
ClaveProdServ=”12345678″ <!–Solo se usa en compras para actualizar la clave SAT –>
ClaveUnidad=”H87″ <!–Identifica la unidad de venta –>
Unidad=”PZ” <!–Otra forma de identificar la unidada de venta –>
Descripcion=”Articulo Prueba” <!–Descripcion que se usa para el registro de errores –>
Descuento=”0″ <!–Descuento del articulo, se convierte a porcentaje de descuento –>
ValorUnitario=”447.41″> <!–Precio de venta con IEPS incluido antes de IVA –>
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado
Impuesto=”002″ <!–Determina si genera IVA o IEPS –>
TasaOCuota=”0.160000″ <!–Determina el monto del impuesto –>
TipoFactor=”Tasa” /> <!–Determina como se calcula el impuesto –>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
</cfdi:Comprobante>
Ejemplo de un XML mínimo #
<?xml version=”1.0″ encoding=”utf-8″?>
<cfdi:Comprobante Version=”3.3″
<cfdi:Receptor CliNumero=”100″ />
<cfdi:Conceptos>
<cfdi:Concepto NoIdentificacion=”A1″ />
</cfdi:Conceptos>
</cfdi:Comprobante>
Con este XML se creara un documento al cliente 100, con una partida de 1 articulo A1, en su unidad de venta con el precio predeterminado.
Con el siguiente código se inserta este documento en FerrumOP
INSERT INTO DATOSX.MONITOR SET MTRESTADO=”N”,MTRTIPO=”C”,MTRMENSAJE='<?xml version=”1.0″ encoding=”utf-8″?><cfdi:Comprobante Version=”3.3″<cfdi:Receptor CliNumero=”100″ /><cfdi:Conceptos><cfdi:Concepto NoIdentificacion=”A1″ /></cfdi:Conceptos></cfdi:Comprobante> ‘