Laden...
M
magog96 myCSharp.de - Member
Softwareentwickler Deutschland Dabei seit 22.11.2004 8 Beiträge
Benutzerbeschreibung

Forenbeiträge von magog96 Ingesamt 8 Beiträge

21.05.2006 - 18:14 Uhr

Hallo!

Ich habe im letzten Jahr auch mal wieder was mit EDIFACT zu tun gehabt und zur Abwechslung mal einen eigenen Konverter gebaut.
Das ganze war auf Basis von Visual Foxpro 9 und wurde an ein bestehendes ERP-System das ebenfalls Visual Foxpro nutzt angedockt.

Das was ich da verbrochen habe war im Grunde der Parser, der die EDIFACT Nachrichten eingelesen hat und die Daten in einem (oder auch mehrere) FoxPro Cursor (Datenbanktabellen im Speicher) ablegt und das Gegenstück zum Export von EDIFACT Nachrichten. Da es als Komponente angelegt war, hat die Warenwirtschaft direkten Zugriff auf diese Tabellen und auch die grundlegenden Funktionen werden von außen gesteuert. Somit wurde zu bestimmten Zeitpunkten am Tag der Import/Export der Daten angestossen.

Die EDIFACT Basiskomponente verwendet verschiedene Klassen die ein den eigentlichen Import/Export der EDIFACT Daten vornehmen.
Der Name der zu ladenden Klasse wird dabei über Parameter gesteuert (Nachrichtentyp [ORDERS;INVOIC;...], Version [D96A], Kunde [Karstadt;Globus;...]).
Damit ist man sehr flexibel.

Die meiste Zeit ist mit der Basiskomponente und der ersten EDIFACT Nachrichtenklasse drauf gegangen. Danach ging es sehr sehr schnell voran, da die verschiedenen Kunden alle relativ ähnliche EDIFACT Nachrichten verschicken.

Interessant war es aber wieder zu sehen das auch die großen Firmen einige Klopper in Ihren Daten haben (z.B. Artikelbezeichnungen die EDIFACT Steuerzeichen enthalten die nicht escaped wurden).

28.11.2004 - 18:54 Uhr

Original von Xqgene

>

Ok, damit ist das was MS ein Add-In nennt für mich ein PlugIn was ich eben nicht benutzen wollte.
Ich habe mir das aber trotzdem angetan und bin mit der VS 2005beta1 zu dem Schluß gekommen das es derzeit nicht benutzbar ist, da MS gerade die DTE komplett neu strukturiert und bisher keine funktionierenden Beispiele liefert. Die MSDN Bibliothek ist scheinbar ebenfalls nicht auf dem aktuellen Stand.

Nach einigem hin und her (Stunden) war ich zwar in der Lage den Code zu kompilieren (es soll ein neues andockbares Fenster erstellt werden - vielleicht 10 Zeilen Code).
Ausführen ließ es sich aber nicht, weil mir nicht wirklich klar ist, was nun bei dem 2. und 3. Parameter von CreateToolWindow2() konkret rein muß (das bisher eingetragene kommt aus einem Bespiel das ich im Internet gefunden habe, Mit dem 2. Parameter gibt es offenbar schon das erste Problem).

Teil der onConnection Methode



//Add the control:
commandBarControl = (CommandBarControl)command.AddControl(toolsPopup.CommandBar, 1);
object obj = null;
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
Windows2 windows = (Windows2)applicationObject.Windows;
toolWindows2 = (Windows2)windows.CreateToolWindow2(addInInstance, asm.Location, "VSCmdShell.CmdTextBox", "Ride.NET Tool", Guid.NewGuid().ToString("B"), ref obj);


Am Ende noch die folgenden Definitionen die oben verwendet werden:


private DTE2 applicationObject;
private AddIn addInInstance;
private EnvDTE.Windows toolWindows2; // added new

25.11.2004 - 21:31 Uhr

Original von Xqgene
Hast du schon was von Add-In's gehört? Damit kannst du so ziemlich alles mit VS machen.

Ich kenne nur Plugins. 🙂
Ihrgendwelche Beispiele und/oder Links wo weiteres zu finden ist?

25.11.2004 - 01:33 Uhr

Hallo!

Original von Geraldo23
Also es dreht sich dabei um Statusmeldungen von Containern(Autoteiletransport).
Es wird IFTSTA verwendet, Version D.

Ich hatte bisher mehr mit EANCOM (96) und den darin verankerten Nachrichten zu tun (ORDERS, INVOIC, DESADV, PRICAT,...).
Zu IFTSTA kann ich leider nichts sagen.

Kennst du vielleicht ein paar gute Links welche mir mehr Einblick in die Materie geben?

Links und EDI? Also das sieht ziemlich schlecht aus.
Informationsmaterial wird ziemlich unter Verschluß gehalten.
Bei der EANCOM kann man eine CD bestellen, aber ich denke die wirst Du schon haben.

http://www.eancom.de/
http://www.google.com/custom?q=IFTSTA&sa=Google+Suche&cof=GIMP%3Ablue%3BT%3Ablack%3BLW%3A142%3BBIMG%3Awhite%3BALC%3A%23144b8b%3BL%3Ahttp%3A%2F%2Fwww.ccg.de%2Fcommon%2FLogos%2Flogo.gif%3BGFNT%3Ared%3BLC%3A%23144b8b%3BLH%3A43%3BBGC%3Awhite%3BAH%3Acenter%3BVLC%3A%23660000%3BS%3Ahttp%3A%2F%2Fwww.ccg.de%3BGALT%3Agreen%3BAWFID%3A88a9a8b51387d77c%3B&domains=www.ccg.de%3Bwww.ean.de%3Bwww.ecr.de%3Bwww.epcglobal.de%3Bwww.sinfos.de%3B&sitesearch=www.ean.de

Du kannst auch mal schauen, ob Seeburger was bietet.
Mit denen habe ich hauptsächlich zu tun gehabt. Seeburger ist Anbieter von Konvertern für verschiedene EDI Formate, aber eben auch nicht ganz preisgünstig.
http://www.seeburger.de/

Ich suche noch den Namen der anderen Firma mit den Konvertern raus...kann aber etwas dauern.

25.11.2004 - 01:17 Uhr

Original von x-sharp
Hallo

Wäre der Gedanke direkt mit dem Code zu arbeiten den so verwerflich?
Warum gehst du den Umweg über VS?

Kann vor mir aus auch ein anderer Editor sein. Prinzipiell soll es dem Entwickler aber möglichst einfach gemacht werden. Das ist der Grund wieso auch das direkte Anspringen der Methode im Quellcode schön wäre.

Mir ist keine Möglichkeit bekannt VS in der Tiefe (Codezeilen anspringen) mit commandlines anzusprechen.

Prinzipell muß es gehen, zur Not direkt über die API.
Vielleicht ist WinBatch ja einem bekannt. Damit kann man GUI Programme per Skript steuern. Die API Befehle werden dabei an ein bestimmtes Programm gesendet.

Ansonsten klinkt das was du vorhast auf alle Fällen Interessant. 👍

Ich bin das zum Glück nicht alleine, denn das ist schon ein wenig schwieriger.

22.11.2004 - 19:28 Uhr

Hallo!

Erst einmal Danke für die Antwort.

Ok, es geht um Folgendes:
Es soll, so die Planung, ein eigenes Programm erstellt werden, mit dem CS-Sourcecode und auch CS-Bytecode (bzw. die Vorstufe dessen) analysiert wird.
Hintergrund: Es sollen Komponenten graphisch dargestellt werden.

Wenn nun eine Komponente in der eigenen GUI (also der graphischen Notation der Komponente) angeklickt wird, besteht die Möglichkeit den Sourcecode, der zu dieser Komponente gehört, im Editor (erst einmal nur VS) zu öffnen und dort zu bearbeiten.

Wenn man noch einen Schritt weiter geht, möchte man vielleicht nur eine Methode die man in der Komponente gewählt hat editieren.
Hier muß man nun nicht nur die Quelle öffnen, sondern auch noch an eine bestimmt Stelle im Quellcode springen (verbesserte Usability).
Genau das ist im Prinzip der erste Fall wo die Fernsteuerung greifen muß.
Mir ist der Methodenname bekannt (inkl. Parameter) und wie lasse ich VS an die richtige Stelle im Quellcode springen.

Die Frage ist nun, kann man es und wenn ja wie?

Vielen Dank!

22.11.2004 - 00:33 Uhr

Es gibt ja die tollsten Beispiele um Office (Word, Excel,...) fernzusteuern, aber das würde ich gerne mal mit VS (2005 Beta1) versuchen.
Was erst mal kein Problem ist, ist das öffnen des gewünschen Quellcodes, denn der kann per Kommandozeile mitgegeben werden.
VS, genauer die devenc.exe kann auch mit dem Parameter "/DDE" gestartet werden, aber wenn ich das richtig sehe, ist DDE bei C# "out" bzw. funktioniert angeblich garnicht mehr.

Hat also ihrgendjemand schon mal versucht VS fernzusteuern (ob mittels DDE oder was anderem ist mir dabei erst einmal völlig egal).
Ein Codebeispiel wäre nett. 🙂

Eine Alternative wäre sicher das Schreiben eines Plugins für VS aber das wiederstrebt mir.

Danke!

22.11.2004 - 00:18 Uhr

Also ich habe schon einiges mit EDI gemacht und das was mir dazu einfällt ist das Folgende:
"Das gute an Standards ist, es gibt so viele davon."

Das trifft schon auf EDI selbst zu, da es für jeden Bereich, sei es nun Holz- und Baustoffhandel (OBI und Co), der Lebensmittelbereich (REWE und Co),... einen mehr oder weniger eigenen Standard gibt.

Muß Du speziell Daten verarbeiten oder muß es wirklich eine Low-Level Hilfe (ala Parser) sein?
Das einfachste ist nämlich sich die EDI Daten von einem Dritthersteller wie Seeburger (und die anderen Konverter-Hersteller) aufbereiten zu lassen und dann das vereinfachte Format, was die Konverter ausspucken, zu nutzen.