Beispiel Java für die Übertragung von Lohnersatzleistungen

import de.felfri.faxml.Faxml;


public class TestLohnersatz
{
  private static final String datenteil = 
  "<DatenTeil>" +
    "<Nutzdatenblock>" +
      "<NutzdatenHeader version=\"10\">" +
        "<NutzdatenTicket>1a</NutzdatenTicket>" +
        "<Empfaenger id=\"L\">NW</Empfaenger>" +
        "<Hersteller>" +
          "<ProduktName>MyLohnersatzleistung-Testtool</ProduktName>" +
          "<ProduktVersion>1.0</ProduktVersion>" +
        "</Hersteller>" +
        "<DatenLieferant>Sozialleistungsträger XYZ ; Musterstr. 17 ; ; 40476; Düsseldorf; Deutschland; 0211-111-0 ; daten@sozialleistungstraeger.de</DatenLieferant>" +
      "</NutzdatenHeader>" +
      "<Nutzdaten>" +
        "<Lohnersatzleistung xmlns=\"http://www.elsterfachmethodik.de/Lohnersatz000001/XMLSchema\">" +
          "<Zuflussjahr>2010</Zuflussjahr>" +
          "<MitteilungsPflichtiger>" +
            "<KundennummerFV art=\"StNr\">5123012345678</KundennummerFV>" +
            "<Kundennummer>654321</Kundennummer>" +
          "</MitteilungsPflichtiger>" +
          "<LeistungsEmpfaenger>" +
            "<ETIN>DCKDDNLE55E02W</ETIN>" +
            "<Ordnungsmerkmal>11-12-13</Ordnungsmerkmal>" +
            "<Name geschlecht=\"m\">" +
             "<Familienname>Duck-Düsentrieb</Familienname>" +
              "<Vorname>Daniel</Vorname>" +
            "</Name>" +
            "<Geburtsdatum>1955-05-02</Geburtsdatum>" +
            "<Adresse hausNr=\"13\" ort=\"Entenhausen\" plz=\"12345\" str=\"Pechvogelweg\" />" +
          "</LeistungsEmpfaenger>" +
          "<Mitteilung>" +
            "<Leistung art=\"Krankengeld\" betrag=\"99.99\">" +
              "<Leistungspflichtiger>" +
                "<Name>Meine Krankenkasse</Name>" +
                "<Bearbeiter durchwahl=\"5555\" email=\"noreply@test.de\" tel=\"0211/111111\">Herr Wupper</Bearbeiter>" +
                "<Adresse hausNr=\"42\" ort=\"Wuppertal\" plz=\"42103\" str=\"Gesundbrunnenstr.\" />" +
                "<Aktenzeichen>4711-0815B</Aktenzeichen>" +
                "<Zeitraum beginn=\"2010-01-01\" ende=\"2010-06-30\" />" +
              "</Leistungspflichtiger>" +
            "</Leistung>" +
          "</Mitteilung>" +
        "</Lohnersatzleistung>" +
      "</Nutzdaten>" +
    "</Nutzdatenblock>" +
  "</DatenTeil>";

  private static String PFX = "TestOrg_Elster.pfx";
  private static String PIN = "123456";
  private static String HerstellerID = "74931";
  private static String Testmerker = "220002000";
  
  /**
   @param args
   */
  public static void main(String[] args
  {
    try
    {
      // Einkommentieren um Daten zu verschicken
      //send();
      
      // Einkommentieren um das Protokoll abzuholen, Transferticket einsetzen
      //receive("1234");
    catch (Exception e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  
  // Daten verschicken
  public static void send() throws Exception
  {
    // Instanz der FAXML
    Faxml faxml = new Faxml();
    
    // Trace einschalten
    faxml.set("TraceLevel""9");
    faxml.set("TraceFile""faxml.log");
    
    // Den Publik-Key aus der PFX-Datei lesen
    String transportkey = faxml.getPublicKey(PFX, PIN);
    
    // XML zusammenbauen
    String xml = faxml.makeElsterXml(datenteil, "ElsterLohn""Lohnersatzleistung""send-Auth-Offline", Testmerker, HerstellerID, "Tester;a@b.com", transportkey);
    
    // XML uebertragen
    xml = faxml.transfer(xml, Faxml.SIGART_PFX, "TestOrg_Elster.pfx""123456");
    
    // Transferticket auslesen
    int pos = xml.indexOf("<TransferTicket>");
    if (pos < 0)
      System.err.println("Kein Transferticket gefunden");
    else
    {
      pos += "<Transferticket>".length();
      int pos2 = xml.indexOf("</TransferTicket>", pos);
      if (pos2 < 0)
        System.err.println("Kein Ende des transfertickets gefunden");
      else
        System.out.println("Transferticket :" + xml.substring(pos, pos2":");
    }
  }
  
  // Protokoll mit dem Transferticket abholen
  public static void receive(String transferticketthrows Exception
  {
    Faxml faxml = new Faxml();

    // Den Publik-Key aus der PFX-Datei lesen
    String transportkey = faxml.getPublicKey(PFX, PIN);

    String protanf = "<DatenTeil>" +
                "<Nutzdatenblock>" +
                   "<NutzdatenHeader version=\"10\">" +
                     "<NutzdatenTicket>1a</NutzdatenTicket>" +
                     "<Empfaenger id=\"L\">CS</Empfaenger>" +
                     "<Hersteller>" +
                       "<ProduktName>MyLohnersatzleistung-Testtool</ProduktName>" +
                       "<ProduktVersion>1.0</ProduktVersion>" +
                     "</Hersteller>" +
                     "<DatenLieferant>Sozialleistungsträger XYZ ; Musterstr. 17 ; ; 40476; Düsseldorf; Deutschland; 0211-111-0 ; daten@sozialleistungstraeger.de</DatenLieferant>" +
                   "</NutzdatenHeader>" +
                "<Nutzdaten>" +
                  "<ProtokollAnforderung version=\"2\" protokollVersion=\"3\">" +
                   "<TransferTicket>" + transferticket + "</TransferTicket>" +
                   "<PublicKey>" + transportkey + "</PublicKey>" +
                  "</ProtokollAnforderung>" +
                 "</Nutzdaten>" +
                "</Nutzdatenblock>" +
                "</DatenTeil>";

    // XML zusammenbauen
    String xml = faxml.makeElsterXml(protanf, "ElsterLohn""ProtokollAnforderung""send-NoSig", Testmerker, HerstellerID, "Tester;a@b.com", transportkey);
    
    // Daten uebertragen
    xml = faxml.transfer(xml, Faxml.SIGART_NOSIG, """");
    
    // Decode beim Empfang von Protokollen:
    xml = faxml.decodePfx(xml, PFX, PIN);

    System.out.println(xml);
  }
}
Winston
Beschreibung
C Beispiel UStVA
C# Wrapper
VB Beispiel
Real Basic Beispiel
PHP Beispiel
Java Beispiel Lohnersatzleistungen
ELMA5 Datenübertragung
Kontakt