Schnittstelle.IDOC

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen

zurück

Import

  • technisch notwendige Importfelder, Import per "SAP_Info_#_#" in die Interninfo:
GeraeteplatzAlt
AnlageAlt
MaterialnummerZaehlerAlt
Sparte
Werk


  • Bei der Datenlieferung gibt es die Optionen A und B:

Option A: Variante "PowerPack": <TAB> Getrennte Textdatei

  • Kd. schickt Daten direkt Textdateien aus dem System. Diese haben keine Spaltenüberschriften, es sind keine .csv Dateien! Mapping muss in dem Adressordner vorhanden sein!
  • Mit Hilfe von Oc (und der Mapping.ini) lässt sich der Auftrag in eine .csv Datei verwandeln

Mapping.ini

6=Serialnummer;MaterialNo;bauform;sparte;herst;werk;lager;Stand;ZWrk
#
# 6=000000000020040766;000000000043000001;Qn 2,5;03;Spanner-Pollux;1000;I001
#                                                
38=mandt;werktxt;aekun_partner;aekun_nummer;aekun_name1;aekun_name2;aeadrdat_street;aeadrdat_house_num1;aeadrdat_house_num2;aeadrdat_post_code1;aeadrdat_city1;aeadrdat_country;aeadrdat2_name1;aeadrdat2_name2;aeadrdat2_street;aeadrdat2_house_num1;aeadrdat2_house_num2;aeadrdat2_post_code1;aeadrdat2_city1;aeadrdat2_country;aeger_geraet;aeger_matnr;aeger_sparte;aetyp_bauform;aeger_herst;aeger_baujj;aeger_bgljahr;aegpl_devloc;aeastl_anlage;aegpl_stortzus;aetdz_zwnummer;aetdz_zwart;aetdz_zwtyp;aetdz_stanzvor;aetdz_stanznac;aeabl;aeabldat;averberw;aableinh
#
# 38=612;1000;Stadtwerke  Backnang GmbH;1000000420;Bürgermeisteramt Aspach;;Rübengasse;22;;71546;Aspach;DE;;;;;;;;;000000000007351321;000000000042000000;02;G4;Elster;1999;1999;7000009552;4000022314;;001;;05;05;03;80.228,000;20070331;9.985,755;T1210999
#
#
0=26.03.2009         Dynamische Listenausgabe                                                 1


  • der Datei vom Kunden .tab hinzufügen und rechte Maustaste tab konvertieren mit OC
  • CSV wird erstellt die auch so importiert werden kann

Option B: Variante xls(x) Datei

  • muss nach .csv konvertiert werden, Schema entsprechend erstellen

Lagerdatei (zwingend!)

  • Eine Lagerdatei ist zwingend erforderlich und muss in eine .csv Form gebracht werden

Überschriften

  • die Überschriften lauten oft unterschiedlich, diese müssen "so" benannt sein
MaterialNo;Serialnummer;ZWrk;Lager;Stand
  • Wenn auf die richtige "Sparte" geprüft werden muss, bitte auch die Überschrift
Sparte

Datei "EFRE-Sparten.ini"

  • Durch die Umsetzer-Datei "EFRE-Sparten.ini" werden die unterschiedlich benannten Sparten (Versorger-System) und Art (OrgaMon) aneinander automatisch angepasst.
  • Dadurch ist eine Korrektur der Lagerdatei, insbesondere die Inhalte der Spalte "Sparte" nicht nötig.


WE=Strom
WE2=Strom
D=Strom
D2=Strom
E=Strom
E2=Strom
G=Gas
WA=Wasser

1=Strom
2=Gas
3=Wasser
4=Wärme

*=*

Ergebnis

Reiter Ergebnis

SpaltenReihenfolge=Zaehler_Nummer;MaterialnummerZaehlerAlt;GeraeteplatzAlt;AnlageAlt;Sparte;ZaehlerStandAlt!;WechselDatum;ZaehlerStandNeu!;ZaehlerNummerNeu!;MaterialnummerNeu!;ZaehlwerksnummerNeu;Werk;Lager
FreieZähler=~IhrBaustellenVerzeichnis~\LagerDateiName.csv
MaterialnummerNeu=MaterialnummerNeu
ZaehlwerksnummerNeu=ZaehlwerksnummerNeu
Zählwerk=ZaehlwerksnummerAlt
AuchAlsIDOC=JA

Datei "IDOC.Mappings.ini"

  • Über diese Konfigurations-Datei lässt sich das Aussehen der erzeugten IDOC Dateien steuern
  • rechter Mausklick auf die Datei und SEHR vorsichtig Änderungen durchführen, da IDOC mit festen Feldlängen arbeitet also wenn man 3 Zeichen einfügt müssen hinten 3 Blanks raus
  • In der Regel wird man einfach einzelne Zeichn ersetzen

Parameter

  • MEA=
# 
# nimmt Einfluss auf den Ausgabedateinamen
#
# =JA             z1isu_meau_~TAN~-~IDOC-LAUFENDEN-NUMMER~
#
# =NEIN (default) .~IDOC-LAUFENDE-NUMMER~.idoc
#
#
MEA=JA
  • FileName=
# 
# bestimmt den Ausgabedateinamen
# 
# 2 Platzhalter können benutzt werden
#
# ~TAN~       die aktuelle Ergebnis-TAN
# ~SEQUENCE~  die aktuellen IDOC Durchnummerierung
#
FileName=~TAN~-~SEQUENCE~.idoc


Beispiel "Gas"

 #
 # IDOC-Mappings für GAS
 #

 NameSpace="E2"
 Sender="SAPP80"
 Receiver="P80_MDE"
 Mandant="112"

 TimeStamp.F= ;14
 Sequence.F=0;6
 Parent.F=0;6
 Sender.F= ;10
 Receiver.F= ;10
 Mandant.F=0;3

 ### aus Auftrag, durchs OrgaMon-System durchgetragen

 AnlageAlt.F=0;10
 GeraeteplatzAlt.F= ;30
 MaterialnummerZaehlerAlt.F=0;18

 ### aus JonDa

 Zaehler_Nummer.F=0;18
 ZaehlerNummerNeu.F=0;18
 ZaehlerStandAlt.F= ;36
 ZaehlerStandNeu.F= ;36

 ### aus EFRE

 Werk.F= ;4 
 Lager.F= ;4
 MaterialNummerNeu.F=0;18

 ### IDOC Nummerierung

 xTAN="~Mandant~00000000~TAN~~Document~"

 #
 # Grundsätzliche IDOC Header Definition
 #
          HEADER="EDI_DC40  ~xTAN~      2   ISU_DEVICE_CHANGE                                           ISU_DEVICE_CHANGE                                ~Sender~LS  ~Receiver~                                                                                                     LS  P80_MDE                                                                                              ~TimeStamp~                                                                                                                                    "

 # SEGMENT(PARENT)

 1=ISU_DCHANGE_HD(NIL)
 2=ISU_DCHANGE_METER(ISU_DCHANGE_HD)
 3=ISU_DCHANGE_REG(ISU_DCHANGE_METER)
 4=ISU_DCHANGE_REG_ZW(ISU_DCHANGE_REG)
 5=ISU_DCHANGE_REG_RATE(ISU_DCHANGE_REG)
 6=ISU_DCHANGE_REG_CTRL(ISU_DCHANGE_REG)
 7=ISU_DCHANGE_REG_GAS(ISU_DCHANGE_REG)
 8=ISU_DCHANGE_METER_CTRL(ISU_DCHANGE_METER)
 9=ISU_DCHANGE_METER_RATE(ISU_DCHANGE_METER)
 10=ISU_DCHANGE_TRANSFORMER(ISU_DCHANGE_METER)
 11=ISU_DCHANGE_METER_MOVE(ISU_DCHANGE_METER)

           ISU_DCHANGE_HD="~NameSpace~ISU_DCHANGE_HD000           ~xTAN~~Sequence~~Parent~01~WechselDatum~~AnlageAlt~~GeraeteplatzAlt~"
        ISU_DCHANGE_METER="~NameSpace~ISU_DCHANGE_METER000        ~xTAN~~Sequence~~Parent~0203                                          ~MaterialNummerNeu~~ZaehlerNummerNeu~~MaterialnummerZaehlerAlt~~Zaehler_Nummer~                       "
          ISU_DCHANGE_REG="~NameSpace~ISU_DCHANGE_REG000          ~xTAN~~Sequence~~Parent~03001001                                  "
       ISU_DCHANGE_REG_ZW="~NameSpace~ISU_DCHANGE_REG_ZW000       ~xTAN~~Sequence~~Parent~04~ZaehlerStandNeu~~ZaehlerStandAlt~~WechselMoment~"
     ISU_DCHANGE_REG_RATE="~NameSpace~ISU_DCHANGE_REG_RATE000     ~xTAN~~Sequence~~Parent~04                                                    "
     ISU_DCHANGE_REG_CTRL="~NameSpace~ISU_DCHANGE_REG_CTRL000     ~xTAN~~Sequence~~Parent~04                                                                                                                                                                                                                            "
      ISU_DCHANGE_REG_GAS="~NameSpace~ISU_DCHANGE_REG_GAS000      ~xTAN~~Sequence~~Parent~04                                                                                                    "
   ISU_DCHANGE_METER_CTRL="~NameSpace~ISU_DCHANGE_METER_CTRL000   ~xTAN~~Sequence~~Parent~03                                                                                                                                        "
   ISU_DCHANGE_METER_RATE="~NameSpace~ISU_DCHANGE_METER_RATE000   ~xTAN~~Sequence~~Parent~03                             "
  ISU_DCHANGE_TRANSFORMER="~NameSpace~ISU_DCHANGE_TRANSFORMER000  ~xTAN~~Sequence~~Parent~03        "
   ISU_DCHANGE_METER_MOVE="~NameSpace~ISU_DCHANGE_METER_MOVE000   ~xTAN~~Sequence~~Parent~03U61U62~Werk~1020INETI003                                                                                                                                                                         "

Beispiel "Wasser"

 #
 #  IDOC-Mappings für Wasser
 #

 NameSpace="E2"
 Sender="SAPP80"
 Receiver="P80_MDE"
 Mandant="612"

 TimeStamp.F= ;14
 Sequence.F=0;6
 Parent.F=0;6
 Sender.F= ;10
 Receiver.F= ;10
 Mandant.F=0;3

 ### aus Auftrag, durchs OrgaMon-System durchgetragen

 AnlageAlt.F=0;10
 GeraeteplatzAlt.F= ;30
 MaterialnummerZaehlerAlt.F=0;18

 ### aus JonDa

 Zaehler_Nummer.F=0;18
 ZaehlerNummerNeu.F=0;18
 ZaehlerStandAlt.F= ;36
 ZaehlerStandNeu.F= ;36

 ### aus EFRE

 Werk.F= ;4 
 Lager.F= ;4
 MaterialNummerNeu.F=0;18

 ### IDOC Nummerierung

 xTAN="~Mandant~00000000~TAN~~Document~"

 #
 # Grundsätzliche IDOC Header Definition
 #
                  HEADER="EDI_DC40  ~xTAN~      2   ISU_DEVICE_CHANGE                                           ISU_DEVICE_CHANGE                                ~Sender~LS  ~Receiver~                                                                                                     LS  P80_MDE                                                                                              ~TimeStamp~                                                                                                                                    "

 # SEGMENT(PARENT)

 1=ISU_DCHANGE_HD(NIL)
 2=ISU_DCHANGE_METER(ISU_DCHANGE_HD)
 3=ISU_DCHANGE_REG(ISU_DCHANGE_METER)
 4=ISU_DCHANGE_REG_ZW(ISU_DCHANGE_REG)
 5=ISU_DCHANGE_REG_RATE(ISU_DCHANGE_REG)
 6=ISU_DCHANGE_REG_CTRL(ISU_DCHANGE_REG)
 7=ISU_DCHANGE_REG_GAS(ISU_DCHANGE_REG)
 8=ISU_DCHANGE_METER_CTRL(ISU_DCHANGE_METER)
 9=ISU_DCHANGE_METER_RATE(ISU_DCHANGE_METER)
 10=ISU_DCHANGE_TRANSFORMER(ISU_DCHANGE_METER)
 11=ISU_DCHANGE_METER_MOVE(ISU_DCHANGE_METER)

          ISU_DCHANGE_HD="~NameSpace~ISU_DCHANGE_HD000           ~xTAN~~Sequence~~Parent~01~WechselDatum~~AnlageAlt~~GeraeteplatzAlt~"
       ISU_DCHANGE_METER="~NameSpace~ISU_DCHANGE_METER000        ~xTAN~~Sequence~~Parent~0203                                          ~MaterialNummerNeu~~ZaehlerNummerNeu~~MaterialnummerZaehlerAlt~~Zaehler_Nummer~                       "
         ISU_DCHANGE_REG="~NameSpace~ISU_DCHANGE_REG000          ~xTAN~~Sequence~~Parent~03001001                                  "
      ISU_DCHANGE_REG_ZW="~NameSpace~ISU_DCHANGE_REG_ZW000       ~xTAN~~Sequence~~Parent~04~ZaehlerStandNeu~~ZaehlerStandAlt~~WechselMoment~"
    ISU_DCHANGE_REG_RATE="~NameSpace~ISU_DCHANGE_REG_RATE000     ~xTAN~~Sequence~~Parent~04                                                    "
    ISU_DCHANGE_REG_CTRL="~NameSpace~ISU_DCHANGE_REG_CTRL000     ~xTAN~~Sequence~~Parent~04                                                                                                                                                                                                                            "
     ISU_DCHANGE_REG_GAS="~NameSpace~ISU_DCHANGE_REG_GAS000      ~xTAN~~Sequence~~Parent~04                                                                                                    "
  ISU_DCHANGE_METER_CTRL="~NameSpace~ISU_DCHANGE_METER_CTRL000   ~xTAN~~Sequence~~Parent~03                                                                                                                                        "
  ISU_DCHANGE_METER_RATE="~NameSpace~ISU_DCHANGE_METER_RATE000   ~xTAN~~Sequence~~Parent~03                             "
 ISU_DCHANGE_TRANSFORMER="~NameSpace~ISU_DCHANGE_TRANSFORMER000  ~xTAN~~Sequence~~Parent~03        "
  ISU_DCHANGE_METER_MOVE="~NameSpace~ISU_DCHANGE_METER_MOVE000   ~xTAN~~Sequence~~Parent~03U61U62~Werk~1000INETI003                                                                                                                                                                         "

Beispiel "Elektro"

  • Das melden von Doppeltarif-Zählern ist möglich, aber nicht gemischt mit Eintarif-Zählern (andere IDOC-Mapping)
  • Im Misch-Fall müssen 2 Meldebaustellen angelegt werden, M1 Eintarif, M2 Doppeltarif


#
# IDOC-Mappings für Elektro
#
 
# Konstanten ([Art.]Name)

NameSpace="E2"
Sender="SAPP80"
Receiver="P80_MDE"
Mandant="107"

# Formatierungen (Name.F)

TimeStamp.F= ;14
Sequence.F=0;6
Parent.F=0;6
Sender.F= ;10
Receiver.F= ;10
Mandant.F=0;3 

### aus Auftrag, durchs OrgaMon-System durchgetragen

AnlageAlt.F=0;10
GeraeteplatzAlt.F= ;30
MaterialnummerZaehlerAlt.F=0;18 


### aus JonDa

Zaehler_Nummer.F=0;18
ZaehlerNummerNeu.F=0;18
ZaehlerStandAlt.F= ;36
ZaehlerStandNeu.F= ;36
NA.F= ;36
NN.F= ;36
MaterialNummerAlt.F=0;18


### aus EFRE

Werk.F= ;4 
Lager.F= ;4
MaterialNummerNeu.F=0;18

### IDOC Nummerierung

xTAN="~Mandant~00000000~TAN~~Document~"


#
# Grundsätzliche IDOC Header Definition
#
                 HEADER="EDI_DC40  ~xTAN~      2   ISU_DEVICE_CHANGE                                           ISU_DEVICE_CHANGE                                ~Sender~LS  ~Receiver~                                                                                                     LS  P80_MDE                                                                                              ~TimeStamp~                                                                                                                                    "


# SEGMENT(PARENT)

1=ISU_DCHANGE_HD(NIL)
2=ISU_DCHANGE_METER(ISU_DCHANGE_HD)
3=ISU_DCHANGE_REG_1(ISU_DCHANGE_METER)
4=ISU_DCHANGE_REG_ZW_1(ISU_DCHANGE_REG_1)
5=ISU_DCHANGE_REG_RATE(ISU_DCHANGE_REG_1)
6=ISU_DCHANGE_REG_CTRL(ISU_DCHANGE_REG_1)
7=ISU_DCHANGE_REG_GAS(ISU_DCHANGE_REG_1)
8=ISU_DCHANGE_REG_2(ISU_DCHANGE_METER)
9=ISU_DCHANGE_REG_ZW_2(ISU_DCHANGE_REG_2)
10=ISU_DCHANGE_REG_RATE(ISU_DCHANGE_REG_2)
11=ISU_DCHANGE_REG_CTRL(ISU_DCHANGE_REG_2)
12=ISU_DCHANGE_REG_GAS(ISU_DCHANGE_REG_2)
13=ISU_DCHANGE_METER_CTRL(ISU_DCHANGE_METER)
14=ISU_DCHANGE_METER_RATE(ISU_DCHANGE_METER)
15=ISU_DCHANGE_TRANSFORMER(ISU_DCHANGE_METER)
16=ISU_DCHANGE_METER_MOVE(ISU_DCHANGE_METER)

         ISU_DCHANGE_HD="~NameSpace~ISU_DCHANGE_HD000           ~xTAN~~Sequence~~Parent~01~WechselDatum~~AnlageAlt~~GeraeteplatzAlt~"
      ISU_DCHANGE_METER="~NameSpace~ISU_DCHANGE_METER000        ~xTAN~~Sequence~~Parent~0203                                          ~MaterialNummerNeu~~ZaehlerNummerNeu~~MaterialnummerZaehlerAlt~~Zaehler_Nummer~                       "
      ISU_DCHANGE_REG_1="~NameSpace~ISU_DCHANGE_REG000          ~xTAN~~Sequence~~Parent~03001001                                  "
   ISU_DCHANGE_REG_ZW_1="~NameSpace~ISU_DCHANGE_REG_ZW000       ~xTAN~~Sequence~~Parent~04~ZaehlerStandNeu~~ZaehlerStandAlt~~WechselMoment~"
      ISU_DCHANGE_REG_2="~NameSpace~ISU_DCHANGE_REG000          ~xTAN~~Sequence~~Parent~03002002                                  "
   ISU_DCHANGE_REG_ZW_2="~NameSpace~ISU_DCHANGE_REG_ZW000       ~xTAN~~Sequence~~Parent~04~NN~~NA~~WechselMoment~"
   ISU_DCHANGE_REG_RATE="~NameSpace~ISU_DCHANGE_REG_RATE000     ~xTAN~~Sequence~~Parent~04                                                    "
   ISU_DCHANGE_REG_CTRL="~NameSpace~ISU_DCHANGE_REG_CTRL000     ~xTAN~~Sequence~~Parent~04                                                                                                                                                                                                                            "
    ISU_DCHANGE_REG_GAS="~NameSpace~ISU_DCHANGE_REG_GAS000      ~xTAN~~Sequence~~Parent~04                                                                                                    "
 ISU_DCHANGE_METER_CTRL="~NameSpace~ISU_DCHANGE_METER_CTRL000   ~xTAN~~Sequence~~Parent~03                                                                                                                                        "
 ISU_DCHANGE_METER_RATE="~NameSpace~ISU_DCHANGE_METER_RATE000   ~xTAN~~Sequence~~Parent~03                             "
ISU_DCHANGE_TRANSFORMER="~NameSpace~ISU_DCHANGE_TRANSFORMER000  ~xTAN~~Sequence~~Parent~03        "
 ISU_DCHANGE_METER_MOVE="~NameSpace~ISU_DCHANGE_METER_MOVE000   ~xTAN~~Sequence~~Parent~03   U62    ~Werk~    I003                                                                                                                                                                     "

Besonderheiten

Ableseeinheiten

In den Adressdateien gibt es die Spalte mit der Überschrift 'ableinh'. Hier die Entschlüsselung:

Beispiel T0211650

T02 = Monat Februar die Zahl danach in diesem Falle 1 = in der 1. Woche im Februar wird abgelesen.

-> Dies bedeutet für uns Sperre ist 4 Wochen vor der 1. Februarwoche und 4 Wochen nach der ersten Februar Woche.
Dies habe ich in der Datei händisch eingetragen 'Sperre von' und 'Sperre bis' und dies dann mitimportiert.

Trennung der Datenmeldungen

Obwohl Aufträge zusammen in einer Baustelle verwaltet werden kann selbstverständlich z.B. sparten-abhängig getrennt (z.B. "Gas" getrennt von "Wasser") und auch mit unterschiedlicher IDOC.Mappings.ini gemeldet werden. Der Kunde gibt dabei vor wo die Unterschiede in den IDOCs liegen muss (Lager, Mandant).


  • Bei der Hauptbaustelle wird die Datenmeldung deaktiviert:
    • Wochentage=NEIN
    • SQL_Filter=(ART is NULL) and
  • Bei allen Meldebaustelle wird auf die Hauptbaustelle, als Datenquelle verwiesen
    • Datenquelle=~KürzelDerHauptBaustelle~
  • Bei den Meldebaustellen wird im Reiter Ergebnis eigentlich alles identisch gehandhabt, aber die folgenden 3 Einstellungen unterscheiden sich immer:
    • SQL_Filter=(ART ='~GoderWAoderE~') and
    • ZipPräfix=~KürzelDerMeldeBaustelle~
    • Verzeichnis=~VerzeichnisDerHauptBaustelle~\~Sparte~\