AvERP von aussen fernsteuern

Alles, was den Programmierer beschäftigt

Moderator: SYNERPY

Antworten
pgandert
Beiträge: 2
Registriert: Di Jan 23, 2007 2:14 pm
Kontaktdaten:

AvERP von aussen fernsteuern

Beitrag von pgandert »

Hallo

Ich habe eine etwas exotische Anforderung.... ;-)

Ich muss von aussen AvERP dazu veranlassen, eine Maske zu öffnen (z.B. Adressen) und nach einer ID zu suchen. Andere Nötigungen werden sich mit der Zeit ergeben.

In Pascal-Script liesse sich das Ganze alles machen. Allerdings sehe ich als einzige Möglichkeit, etwas von aussen zu triggern, indem ich in eine Tabelle in der Datenbank einen Datensatz reinschreibe und anschliessend ein Firebird-Exception feuere.

Nun ist die Frage, ob in Pascal-Script z.B. in der Hauptmenü-Maske auf ein Firebird-Exception reagiert werden kann. Ich habe in der Dokumentation da keinen Hinweis gefunden.

Per DDE oder sonstwie läßt sich AvERP leider nicht fernsteuern.

Vielen Dank im vorraus.
Peter
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Mal eine Gegenfrage:

Warum denn das ganze per Fernsteuerung von Averp machen? Man kann doch direkt auf die Datenbank zugreifen. Sei es per ODBC-Treiber oder wenn man programmiert dann direkt mit den Befehlen der Sprache die man benutzt. Für Delphi und Pascal gibt es da IBX, Ibobjects und wie sie alle heißen, auf der Firebird-Seite gibt es eine Bibliothek samt guter Anleitung für PHP und für C/C++/C# oder den ganzen MS-Visual Kram wird man auch was finden.

Auf die Art kann man doch alle Zugriffe genau so machen wie man will, ohne auf Averp angewiesen zu sein.

In ihrem Beispiel müssen Sie Ihrer Anwendung also "nur" beibringen die SQL Query

Code: Alles auswählen

SELECT * FROM BADR WHERE ID=...
an den Server zu schicken und das Ergebnis auszuwerten.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
pgandert
Beiträge: 2
Registriert: Di Jan 23, 2007 2:14 pm
Kontaktdaten:

Das war nicht die Frage....

Beitrag von pgandert »

Hallo miboe

Deine Ausführungen sind korrekt.... Beantworten aber nicht die gestellte Frage.

Wie ich auf Firebird runterkomme ist mir schon klar. Ich mache den lieben langen Tag nichts anderes, als gegen Datenbanken zu programmieren (ADO.NET, ODBC, JDBC u.s.w.).

Ich habe aber die Notwendigkeit, von einem externen Programm aus AvERP zu nötigen, eine Maske zu öffnen und nach einem Datensatz zu suchen, wie in meinem Originalpost beschrieben.

Eine alternative Lösungsmöglichkeit wäre es, im Hauptmenü von AvERP einen Eintrag zu machen, welcher ein Pascalscript ausführt, den von aussen in die Datenbank gestellten Suchbegriff ausliest und dann mit diesem Suchbegriff die Adressen-Maske öffnet, wobei der gesuchte Datensatz gleich angezeigt wird.

Ich habe in der Doku gefunden, wie man Utilities u.s.w. erstellt. Wie man aber das Hauptmenü erweitert und dem Menüpunkt ein Pascal-Script hinterlegt, würde mir in dem Fall schon weiterhelfen.

Dann könnte ich meine Anforderung mit einem manuellen Vorgang lösen; wäre dann zwar nicht mehr vollautomatisch, man könnte aber damit halbwegs leben.

In diesem Sinne
Gruß
Peter
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Okay, dann hatte ich die Frage nicht ganz verstanden ... es geht also darum, die MASKE mit dem gesuchten Datensatz als Ergebnis zu haben und nicht den Datensatz an sich?

Eine Idee, wie Du die Maske aufrufen könntest wäre, den Maskennamen BADR als Parameter in den Masken-Direktaufruf von Averp zu übergeben. (Das Feld am unteren Ende des Hauptmenüs). Der Programmcode, der dazu gehört, ist aber Teil des Frontends und gehört zur averp.exe ... da können Dir nur die Admins weiterhelfen. Aus diesem Direktaufruf können auch "nur" die eigentlichen Datenmasken aufgerufen werden und keine Utilityformulare. Hier gäbe es aber natürlich den Ausweg, ein Datenformular als Utiltiyformular zu mißbrauchen, indem man dem Formular keine Felder gibt und in die Routine "OnFormShow" den Code reinsetzt, den man beim Utilityformular in die Proc0001 schreibt. Und in dem Code würde dann der Maskenaufruf für Badr erfolgen. Aber da wird es dann schwierig, die ID als Parameter von extern zu übergeben OHNE daß der User noch was eintippen muß ...

Ich arbeite schon länger jetzt auch mit Averp und habe selbst auch schon etliches für uns angepaßt, aber das waren alles Interna von Averp. Ich könnte mich auch nicht erinnern, schonmal von einer "API" für Averp gehört zu haben, die explizit diese Zugriffe von außen ermöglicht.

Für den "halbautomatischen" Ablauf folgender Vorschlag:
Schau mal in den AverpAdmin, da kann man für jede View / Tabelle eine "GrundsuchSQL" eingeben. Dieser Wert ist aber nichts anderes als ein Feld in der Tabelle A_TABELLEN, welches man natürlich von außen über die direkten Datenbankbefehlen setzen kann. Du schreibst also von außen da das passende rein, und der User muß "nur" noch die Adressmaske öffnen, fertig. Angezeigt wird automatisch der entsprechende Adressdatensatz. Habe ich selbst noch nicht benutzt, müßte aber gehen. Siehe z.B. die Maske für Fertigungsaufträge ...

Da bin ich auf die Antwort also mal genauso gespannt wie Du

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten