Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Necesito leer ficheros de tipo X12 (https://www.clubdelphi.com/foros/showthread.php?t=96277)

Badillo 22-06-2023 19:04:05

Necesito leer ficheros de tipo X12
 
1 Archivos Adjunto(s)
Saludos, Necesito ayuda para leer el contenido de los ficheros de tipo X12 837 para guardarlo en Sql server.

Nota: El 837 tiene que ver con la salud.

Adjunto:
Fichero fuente: source.x12
Fichero basicmssql.dbs que utilizan para generar la tabla en la BD
Fichero qadbt2a.cfg que imagino que sea para hacer parser

Si conocen alguna función o biblioteca que al menos permita parsearlo, les agradecería

Como siempre muchas gracias de antemano.

Casimiro Notevi 23-06-2023 09:57:22

Parece un simple "csv" separados por asteriscos.
De todas formas se supone que debes tener por algún sitio la estructura de la cabecera y las líneas para saber a qué corresponde cada dato.

Badillo 23-06-2023 17:10:55

Saludos
 
Uno de los problemas es que no encuentro sitio que me explique o detalle como está conformada la estructura de este tipo de archivos, lo publiqué por si alguien del grupo había visto algo como esto antes.

Gracias

Casimiro Notevi 23-06-2023 17:51:04

Se supone que si te han pedido que hagas algo con eso entonces te deberían facilitar la estructura y demás, porque no puedes adivinarlo.
¿No sabes si pertenece a algún intercambio de datos, o es una máquina, o son de otro programa, o a qué pertenece?

Badillo 26-06-2023 16:30:39

Buenos días
 
Estoy en la busqueda de información sobre este tipo de fichero de intercambio, por el momento esto es lo que interpreto:

X12 es un estándar de formato de mensajes que se utiliza con documentos de intercambio electrónico de datos (EDI) para que los socios comerciales compartan documentos comerciales electrónicos en un formato estándar y acordado . Es el estándar EDI más común utilizado en los Estados Unidos.

Saludos

duilioisola 26-06-2023 18:32:53

Parece un mensaje EDI y luego el mapeo de campos EDI a campos de una base de datos.

Ten en cuenta que EDI tiene muchos tipos de mensaje (pedido, albaran, factura, reportes, etc.)
Las primeras dos o tres letras identifican al tipo de registro y luego están los datos.
Dependiendo del registro los campos representan un dato u otro.

Mira el ejemplo de factura:
http://smartcustomblocks.com/edi-edi...o-edifact.html

Esto se parece bastante a lo que envías como ejemplo:
https://x12.org/examples/005010x279/...er-eligibility

Cita:

Transmission Explanation
ST*270*1234*005010X279A1~
Transaction Set ID Code = 270 (Eligibility, Coverage or Benefit Inquiry)
Transaction Set Control Number = 1234
Implementation Convention Reference = 005010X279A1
BHT*0022*13*10001234*20060501*1319~
Hierarchical Structure Code = 0022 (Information Source, Information Receiver, Subscriber, Dependent)
Transaction Set Purpose Code = 13 (Request) Identification
Reference Identification = 10001234
Date = 20060501 (May 1, 2006)
Time = 1:19 PM
HL*1**20*1~
Hierarchical ID Number = 1
Hierarchical Parent ID Number = * not used
Hierarchical Level Code = 20 (Information Source)
Hierarchical Child Code = 1

duilioisola 26-06-2023 18:47:07

Mira esto de la página 13 en adelante:
https://www.cgsmedicare.com/pdf/edi/837p_compguide.pdf

Después de ver que se trataba de EDI he buscado
"EDI 837 standards" en Google.



De aquí me enteré que cada aplicación tiene su tipo de mensaje.
https://www.seeburger.com/info/what-is-ansi-x12/
Cita:

ANSI X12 Message Type

The following Figure 2 provides an overview of the main ANSI X12 messages.
Each Message type is identified by a 3 digits code number:
Figure 2: ANSI X12 Message TypesEDI 810 Invoice What is an ANSI X12 EDI 810 Message?
EDI 820 Payment order (EFT) What is an ANSI X12 EDI 820 Message?
EDI 830 Delivery forecast What is an ANSI X12 EDI 830 Message?
EDI 832 Price/sales catalogue What is an ANSI X12 EDI 832 Message?
EDI 846 Inventory Inquiry/Advice What is an ANSI X12 EDI 846 Message?
EDI 850 Purchase order What is an ANSI X12 EDI 850 Message?
EDI 855 Purchase order acknowledgement What is an ANSI X12 EDI 855 Message?
EDI 856 Ship Notice/manifest (ASN) What is an ANSI X12 EDI 856 Message?
EDI 860 Purchase order change What is an ANSI X12 EDI 860 Message?
EDI 862 Delivery Just-in-Time What is an ANSI X12 EDI 862 Message?
EDI 997 Functional Acknowledgement What is an ANSI X12 EDI 997 Message?

Badillo 27-06-2023 15:32:42

Muchísimas gracias
 
La información está muy buena, con esto puedo preparar un parseo e incluso profundizar un poco más y el resultado lo comparto acá.

Muchísimas gracias.

Badillo 25-09-2023 18:31:00

Les comparto los resultados del parse para ficheros X12 835 File
 
1 Archivos Adjunto(s)
Saludos,

Les adjuntaré lo que ya logré con el parser de los ficheros X12 para el tipo de archivo 835. Cualquier comentario o mejora que me recomienden será como siempre acaptada.

Ejemplo:

Código Delphi [-]
procedure TForm1.ProcessFile;
begin
  if FileExists(FFileName) then
  begin
    scMemoSource.Lines.LoadFromFile(FFileName);

    F835File := T835File.Create(FFileName);
    F835File.Parse;

    LabelLoop0000.Caption := IntToStr(F835File.Loop0000MaxId);
    LabelLoop1000.Caption := IntToStr(F835File.Loop1000MaxId);
    LabelLoop2000.Caption := IntToStr(F835File.Loop2000MaxId);
    LabelLoop2100.Caption := IntToStr(F835File.Loop2100MaxId);
    LabelLoop2105.Caption := IntToStr(F835File.Loop2105MaxId);
    LabelLoop2110.Caption := IntToStr(F835File.Loop2110MaxId);

    if F835File <> nil then
    begin
      scMemoSchema.Lines.AddStrings(F835File.getSqlSchema);
      scMemoDelete.Lines.AddStrings(F835File.getSqlDelete);
      scMemoInsert.Lines.AddStrings(F835File.SqlData);
      scMemoFileParser.Lines.AddStrings(F835File.ParsedFile);
      scMemoLogError.Lines.AddStrings(F835File.LogError);
    end;

  end;
end;

Gracias a todos.

Casimiro Notevi 25-09-2023 18:36:56

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


La franja horaria es GMT +2. Ahora son las 04:56:00.

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