Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Norma 19 34 Crear xml formato Sepa (https://www.clubdelphi.com/foros/showthread.php?t=87966)

Nasca 28-04-2015 20:40:22

Cita:

Empezado por Delphitest (Mensaje 491781)
Muchas gracias por el empujoncillo :)

Lo de convertir a mayúsculas no se si es necesario o no pero por si acaso...

Y luego me queda la duda de las vocales acentuadas, tipo á é ... he revisado la documentación y no dice que sean caracteres válidos pero tampoco los incluye como ç y ñ para que no lo sean.

He abierto algunos de los ficheros de recibos que suelo enviar al banco y veo que hay muchos nombres que incluyen acentos y se han procesado correctamente.

Las mayúsculas no son necesarias, y bajo mi punto de vista tampoco recomendables.
Lo de los acentos mejor quitarlo, en algún momento pueden convertirse y dar lugar a errores.
Tanto antes como ahora se aceptan por algún banco, pero no había garantía de que al destinatario no le llegasen convertidos.

Delphitest 28-04-2015 21:54:25

Adjudicado... quito lo de las mayúsculas. Es que ha dado la casualidad de que todos los ficheros que tengo vienen con ellas puestas y me quedaba la duda de si era por algo o no, pero cuanto menos haya que manipular el texto mejor.

Paso a la siguiente fase... En mi caso quiero empezar por los adeudos directos esquema básico (norma 19.15, o COR1)

He leído la documentación, en concreto el Anexo 1 que va de la página 18 a la 44, menuda parrafada que meten :o

Entiendo que debo crear 4 bloques y ahí detallan el contenido.

¿Todos esos campos y etiquetas son obligatorios? Supongo que solo algunos importantes lo son porque en ejemplos de ficheros que he revisado no aparecen tantos.

¿Existe una lista de campos obligatorios o se hace por lógica de datos imprescindibles?

Nasca 28-04-2015 22:17:36

La documentación española es prácticamente ilegible. Vete directamente al esquema xsd y completa datos con el pdf que has puesto.
Es mas sencillo entender el esquema que el manual de implantación, o al menos a mí me lo ha parecido así.

Delphitest 29-04-2015 08:48:41

He encontrado este link que parece detallarlo un poco mejor, al menos indica lo que es obligatorio y lo que no.

Al final pone incluso ejemplos prácticos.

A ver si saco algo en claro...

Delphitest 29-04-2015 20:14:32

He empezado a escribir el fichero xml. De momento intento entender lo que hay que hacer y si doy con ello lo completare con los campos de las tablas correspondientes, os voy poniendo el codigo de los bloques A y B (según las instrucciones y en base a los ficheros de ejemplo que mando al banco habitualmente).

Código:

// Estructura/Raíz del mensaje (Message Root) BLOQUE A
  Writeln(FicheroRecibos,'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>');
  Writeln(FicheroRecibos,'<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02">');
  Writeln(FicheroRecibos,' <CstmrCdtTrfInitn>');

// Cabecera (Group Header) BLOQUE B
  Writeln(FicheroRecibos,'  <GrpHdr>');
  Writeln(FicheroRecibos,'    <MsgId>');
  Writeln(FicheroRecibos, LimpiarCarNormaSEPAXML('Mensaje de Identificación',35));
  Writeln(FicheroRecibos,'    </MsgId>');
  Writeln(FicheroRecibos,'    <CreDtTm>');
  Writeln(FicheroRecibos,'Fecha y Hora de creación - Formato YYYY-MM-DDThh:mm:ss');
  Writeln(FicheroRecibos,'    </CreDtTm>');
  Writeln(FicheroRecibos,'    <NbOfTxs>');
  Writeln(FicheroRecibos, 'Número de Operaciones');
  Writeln(FicheroRecibos,'    </NbOfTxs>');
  Writeln(FicheroRecibos,'    <InitgPty>');
  Writeln(FicheroRecibos,'      <Nm>');
  Writeln(FicheroRecibos, LimpiarCarNormaSEPAXML('Nombre del Presentador',70));
  Writeln(FicheroRecibos,'      </Nm>');
  Writeln(FicheroRecibos,'      <Id>');
  Writeln(FicheroRecibos,'        <OrgId>');
  Writeln(FicheroRecibos,'          <Othr>');
  Writeln(FicheroRecibos,'            <Id>');
  Writeln(FicheroRecibos, LimpiarCarNormaSEPAXML('Identificador del Presentador',16));
  Writeln(FicheroRecibos,'            </Id>');
  Writeln(FicheroRecibos,'          </Othr>');
  Writeln(FicheroRecibos,'        </OrgId>');
  Writeln(FicheroRecibos,'      </Id>');
  Writeln(FicheroRecibos,'    </InitgPty>');
  Writeln(FicheroRecibos,'  </GrpHdr>');

Os consulto unas dudas que van surgiendo por si me podéis echar una mano:

He añadido en la primera línea Standalone="yes" porque lo he visto en mis ficheros pero no acabo de saber para qué sirve y si es o no obligatorio.

No me queda claro tampoco si el mensaje de identificación <MsgId> debo generarlo yo de tal manera que sea único para siempre o es el nombre que le quiera dar a la remesa.

Me llama la atención que en ningún fichero de los que mando aparezca la suma total de los importes, entiendo que no es obligatorio.

He comprobado que tengo ficheros en los que aparece la etiqueta <OrgId> y en otros <PrvId>, todos son aceptados por el banco y en teoría trabajamos como empresa ¿Tiene alguna importancia el uso de persona física o jurídica independientemente de que corresponda a la realidad?

A grandes rasgos estoy metiendo las etiquetas que veo en mis ejemplos ¿Es conveniente completar todos los datos (direccion, codigo postal...) o me limito a lo que es necesario?

Muchas gracias por vuestro tiempo

Un saludo

PD: LO siento pero si pongo las etiquetas de código Delphi se borra parte del texto, no se como ponerlo de otra manera.

GuillerMac 02-02-2016 12:03:03

Esto ya está solucionado, copiar y pegar
 
https://github.com/aspettl/delphi-sepa-xml

Casimiro Notevi 02-02-2016 17:18:35

Cita:

Empezado por GuillerMac (Mensaje 501776)

^\||/^\||/^\||/

hycox 12-02-2016 21:01:36

La versión de esta librería alemana es 008.002.02 en España piden creo 008.001.02.

conocéis las diferencias , o también sirve en España la 002????

guillotmarc 01-03-2016 11:08:08

Cita:

Empezado por hycox (Mensaje 502041)
La versión de esta librería alemana es 008.002.02 en España piden creo 008.001.02.

conocéis las diferencias , o también sirve en España la 002????

Aquí tienes las diferencias :

http://fr.viadeo.com/fr/groups/detai...0222ec4ipmempw

Y no, la versión alemana no debería servir automáticamente para España.

Básicamente son tres pequeñas diferencias:

Las cláusulas de encabezado hay que cambiarlas para especificar la versión 008.001.02.

De :

Código:

<?xml version="1.0" encoding="UTF-8"?>
<Document  xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02  pain.008.002.02.xsd">

A:

Código:

<?xml version="1.0" encoding="UTF-8" sstandalone="no"?>
<Document  xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02  pain.008.001.02.xsd">

Segundo, las cláusulas:

Código:

<CdtrSchmeId>
  <Id>
        <PrvtId>
            <Othr>
                <Id>Identificador de Ordenante</Id>
                <SchmeNm>
                        <Prtry>SEPA</Prtry>
                </SchmeNm>
            </Othr>
        </PrvtId>
  </Id>
</CdtrSchmeId>

Se deben mover, quitándolas de cada transacción en el interior de un lote y moviéndolas a nivel de lote, entre las cláusulas </ChrgBr> y <DrctDbtTxInf>.

Y finalmente se deben borrar las cláusulas <Ccy> </Ccy> que están dentro de la sección <CdtrAcct>.

hycox 07-03-2016 14:19:16

Bueno, os cuento tan solo he modificado el encabezado 008.001.02 , y solo eso del componente aleman y el banco se lo ha "tragado" sin problema algunos, comprobado con 2 bancos distintos...

Gracias "ALEMAN"...,te quiero!!!!!

glopez 22-03-2016 12:48:48

Hola He estado haciendo pruebas con la demo que indicáis cambiando el encabezado a 008.001.02 pero el banco me rechaza el fichero me da el siguiente error:

El registro -2- no cumple la norma.

En la demo, ¿debo utilizar la pestaña de Direct debit verdad?

Gracias.

guillotmarc 07-04-2016 14:10:44

Cita:

Empezado por glopez (Mensaje 503602)
Hola He estado haciendo pruebas con la demo que indicáis cambiando el encabezado a 008.001.02 pero el banco me rechaza el fichero me da el siguiente error:

El registro -2- no cumple la norma.

En la demo, ¿debo utilizar la pestaña de Direct debit verdad?

Gracias.

¿ Has probado a modificar las otras cláusulas que supuestamente difieren en ese módelo ?.

Cita:

Aquí tienes las diferencias :

http://fr.viadeo.com/fr/groups/detai...0222ec4ipmempw

Y no, la versión alemana no debería servir automáticamente para España.

Básicamente son tres pequeñas diferencias:

Las cláusulas de encabezado hay que cambiarlas para especificar la versión 008.001.02.

De :

Código:

<?xml version="1.0" encoding="UTF-8"?>
<Document  xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02  pain.008.002.02.xsd">

A:

Código:

<?xml version="1.0" encoding="UTF-8" sstandalone="no"?>
<Document  xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02  pain.008.001.02.xsd">

Segundo, las cláusulas:

Código:

<CdtrSchmeId>
  <Id>
        <PrvtId>
            <Othr>
                <Id>Identificador de Ordenante</Id>
                <SchmeNm>
                        <Prtry>SEPA</Prtry>
                </SchmeNm>
            </Othr>
        </PrvtId>
  </Id>
</CdtrSchmeId>

Se deben mover, quitándolas de cada transacción en el interior de un lote y moviéndolas a nivel de lote, entre las cláusulas </ChrgBr> y <DrctDbtTxInf>.

Y finalmente se deben borrar las cláusulas <Ccy> </Ccy> que están dentro de la sección <CdtrAcct>.

glopez 07-04-2016 17:26:35

Cita:

Empezado por guillotmarc (Mensaje 504126)
¿ Has probado a modificar las otras cláusulas que supuestamente difieren en ese módelo ?.

Hola guillotmarc, ante todo muchas gracias por ayudarme, ya he conseguido que el banco me lo acepte.
De momento he hecho un ejemplo con un recibo. con un verificador que facilita el banco. He visto que me daba dos errores. El primero en el encabezado. He quitado ( sstandalone="no") de la 1ª linea. Que la verdad no se para que sirve.

Y el segundo es que parece que no la demo no rellena bien la parte <InitgPty> le faltaba la información del identificador.
<InitgPty><Nm>NI NOMBRE</Nm><Id><PrvtId><Othr><Id>IDENTIFICADOR</Id><SchmeNm><Cd>CORE</Cd></SchmeNm></Othr></PrvtId></Id></InitgPty>

Bueno, ahora me queda generar una remesa con más de un recibo.


La franja horaria es GMT +2. Ahora son las 12:11:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi