Verständnisfrage: Wechsel zwischen Test- und Produktivdaten

Alles was nicht in ein Thema zuordnungsbar ist
Antworten
Magic
Member
Beiträge: 51
Registriert: 2. September 2011, 13:48

Verständnisfrage: Wechsel zwischen Test- und Produktivdaten

Beitrag von Magic »

Hi,

bei uns wurde bereits ein Projekt mit WinDev realisiert, das ich bald etwas anpassen muss.
Ich selbst, habe noch nichts Produktives mit WinDev realisiert, bisher nur ein wenig gestöbert, etc.

Mir stellt sich folgende, grundsätzliche Frage:

Bisher wurde mit Xbase++ entwickelt. Für die Entwicklung und Tests nutze ich einen Entwicklungsserver, mit nahezu identischem Aufbau (DB, Server) wie das Produktive System.
Somit habe ich relativ wenig (bis keinen) Aufwand um zwischen Test- und Produktivsystem zu wechseln.
I.d.R. halte ich es so, dass ich, solange ich in der Entwicklung- und Testphase bin, einen Schalten im Programm gesetzt habe der beim Start abgefragt wird und je nach dem wie er gesetzt ist, eine Verbindung zum Entwicklung- oder Produktivsystem aufgebaut wird. Hierfür muss ich eben nur beim Aufbau der DacSession() Verbindung den entsprechenden Parameter ändern. Das war’s.
Ist die Entwicklung abgeschlossen wird der Schalter umgelegt und das Programm baut standardmäßig eine Verbindung zum Produktivsystem.
Dieses Konstrukt habe ich mit der Zeit so weit angepasst, dass ich jetzt Jederzeit in der Lage bin das bereits ausgelieferte Programm mit einem Parameter zu starten, so dass dann auch ohne ein weiteres Eingreifen ich direkt auf dem Testsystem arbeiten kann.
Das ist vor allem dann praktisch, wenn jem. einen Fehler meldet. Die Produktivdaten sind im nu auf dem Testsystem aktualisiert und dann kann ich ohne Gefahr Identisches nachspielen, etc.

Diese würde ich gerne in ähnlicher Weise in der WinDev Entwicklung nachbilden.
Da die WinDev Entwicklungsumgebung aber weitaus mächtiger ist, als dass was ich von Xbase++ kenne, stellt sich die Frage nach der Notwendigkeit. Oder bietet WinDev hierfür ein anderes Konstrukt?

Was ich jedenfalls vermeiden will, ist das manuelle Wechseln in der Analysis und dann das neu Kompilieren. Und was mich auf jeden Fall reizt, ist die Möglichkeit ein fertiges Programm z.B. mit einen Parameter zu starten um so zwischen Test- und Produktivdaten zu wechseln.

Welche Lösungen habt / nutzt ihr? Und ist das was ich beschrieben habe überhaupt so in WinDev machbar bzw. sinnvoll?
Gruß,
Magic

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Herbert »

Fallsdu beim Kunden mt Testdaten arbeiten willst, musst du ohnehin irgendwo einen Wechsel des Datenstammes einbauen. Bei meinen Programmen kann der Kunde selber in eine Testumgebung wechseln, nicht um Neues im Programm zu testen, sondern um mit den Daten zu spielen.
In Windev selber kannst du fertige Testtabläufe definieren. Schau mal die Rubrik "Automatic Tests" an.

Das Wechseln der Daten geht ganz einfach. Der Alias bleibt ja erhalten, also muss die Datei geschlossen werden, anschliessend der neue Speicherort bestimmt und letztendlich wieder geöffnet werden.

Code: Alles auswählen

spath=CompleteDir(NoSpace(Mandanten.PFAD1))
HChangeDir(ZLAD,spath)
HOpen(ZLAD)
Das Umwandeln des Codes mache ich so, dass ich im externen Editor, den ich für Xbasee verwende eine Temporärdatei öffne, das zu Umwandelnde hinenkopiere und mit Replace die verschiedenen Dinge umwandle (endif zu end, next zu end, dei := zu = die .or. zu or, die alias-> zu alias. usw. So kann ich in Windev recht schnell den Code feritgmachen.

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Lewi »

Hallo Magic,
ich gehe davon aus, das es um C/S Applikationen mit Nutzung eines Hyperfile-Servers handelt.

In diesem Zusammenhang empfehle ich folgendes Vorgehen:

1. Dupliziere die Produktiv-Datenbank ( z.B. "CRM_PRODUKTIV") über das HyperFileSQL-Control-Center (die Datenbank "CRM_PRODKTIV" auswählen, rechte Mouse-Taste, Eintrag "Duplicate the selected Database") unter einem anderen Database-Namen (z.B. "CRM_TEST"). Nun werden alle Tabellen samt deren Inhalte aus Produktiv-Datenbank in die Test-Datenbak übertragen.

2. Um nun mit einer Applikation mit den Testdaten oder Produktivdaten zu arbeiten, gibt es 2 Möglichkeiten: entweder über eine Ini-Datei ( wenn die Test-Applikation in einem anderen Verzeichnis liegt) oder über einen Auswahlwahl-Dialog innerhalb der Anwendung.

Die Ini-Datei hat dann folgendende Einträge:

Code: Alles auswählen

[CONNECT]
Server=HFSERVER:4900              // <Name des Servers>:<PORT>
DB=CRM_PRODUKTIV                  // Angabe der zu verbindenen Datenbank 
oder
DB=CRM_TEST
Im Zusammenhang mit einer Ini-Datei folgender Beispielcode für die Server-Verbindung

Code: Alles auswählen

Procedure ConnectToHFServer()
_EXE_INI  is string  = "Connect.ini"
gsDB_User  is string = "ANWENDER"
gsDB_Server  is string = INIRead("CONNECT","SERVER","",_EXE_INI)
gsDB_DatabaseName is string = INIRead("CONNECT","DB","",_EXE_INI)
gsDB_Password  is string = "passwort"
gcntConnection  is connection

gcntConnection..Provider 		= hAccessHFClientServer
gcntConnection..User 		= gsDB_User  
gcntConnection..Password 		= gsDB_Password 
gcntConnection..Server 		= gsDB_Server 
gcntConnection..Database   	= gsDB_DatabaseName gcntConnection..CryptMethod   	= hCryptNo
gcntConnection..Provider   	= hAccessHFClientServer
gcntConnection..Access 		= hOReadWrite
gcntConnection..ExtendedInfo 	 = "Extended information"
gcntConnection..CursorOptions 	 = hClientCursor

// Open connection
IF NOT HOpenConnection(gcntConnection) THEN
        Info("Es konnte keine Verbindung zum HF-Server hergestellt werden!")
	EndProgram("Die Anwendung wird beendet")
END

HChangeConnection("*",gcntConnection)
RETURN

Die Funktion ConnectToHFServer() muss entsprechend angepasst werden, wenn die Datenbankauswahl über einen Dialog innerhalb der Applikation erfolgen soll.
Ich habe Anwendungen für Test-Umgebungen grundsätzlich in separaten Verzeichnissen, in denen dann auch die Updates getestet werden, bevor sie in produktiv gehen.

Viele Grüße
Olaf

Magic
Member
Beiträge: 51
Registriert: 2. September 2011, 13:48

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Magic »

Lewi hat geschrieben:ich gehe davon aus, das es um C/S Applikationen mit Nutzung eines Hyperfile-Servers handelt.
Es handelt sich um C/S Applikationen, aber momentan wird der HyperfileServer lediglich für die Verwaltung der Groupware verwendet.
Hauptsächlich wird über ODBC / OLEDB auf eine MS SQL und unsere ADS DB zugegriffen.
Alle drei DB Server (MS SQL, ADS, HyperFile) habe ich doppelt. Eben auf einem Entwicklung- und Produktiv-Server.
Daher brauche ich nicht den DB Namen zu ändern um zwischen zwei DB auf der gleichen Maschine zu wechseln
Lewi hat geschrieben:Dupliziere die Produktiv-Datenbank ( z.B. "CRM_PRODUKTIV") über das HyperFileSQL-Control-Center (die Datenbank "CRM_PRODKTIV" auswählen, rechte Mouse-Taste, Eintrag "Duplicate the selected Database") unter einem anderen Database-Namen (z.B. "CRM_TEST"). Nun werden alle Tabellen samt deren Inhalte aus Produktiv-Datenbank in die Test-Datenbank übertragen.
, sondern muss den Maschinennamen ändern können (Produktivmaschine <-> Entwicklungsmaschine).

Ich habe es jetzt noch nicht ausprobiert, könnte evtl. aber mit Euren bisherigen Infos klappen.
Mir ist dann nur noch nicht klar ab ich dann weiterhin die Analysis benutzen kann?
Gruß,
Magic

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Lewi »

Ob nun der Maschinen-Name oder eine DB gewechselt werden mus, der Aufwand bleibt in dieser Hinsicht gleich.
Allerdings ist die Wartung von 2 Servern einschleßlich der Daten m.E. aufwändiger.

Magic
Member
Beiträge: 51
Registriert: 2. September 2011, 13:48

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Magic »

Lewi hat geschrieben:Allerdings ist die Wartung von 2 Servern einschleßlich der Daten m.E. aufwändiger.
… aber sicherer :exclamation:

Das ist natürlich Ansichtsache. Und auch eine Grundsatzfrage.

Ich selbst, komme ursprünglich aus einem großen Unternehmen in dem meine berufliche Laufbahn begann, habe sogar eine Dreiteilung kennengelernt und als etwas ganz normales empfunden. Entwicklungssystem für das reine Entwickeln, Migrationssystem hauptsächlich für allerlei Tests (Funktionstest seitens der Entwickler und Kunden) und ein reines Produktivsystem.

Als ich dann vor einiger Zeit hier angefangen habe gab es nur eins, das Produktivsystem. Fand ich immer etwas heikel, direkt auf einem Produktivsystem parallel zu entwickeln. Echtes Testen irgendwie unmöglich. Und als es dann mal ordentlich gekracht hat, weil man ein Mal nicht 100% aufgepasst hat, habe ich angefangen das Produktivsystem zu duplizieren. Fahre damit bisher sehr gut, und kann auch ruhigen Gewissen Auszubildende auf das System lassen ohne ständig zu kontrollieren. Wenn was passiert, hat es eben auf dem Entwicklungssystem keine schlimmen Folgen, etc.

Ich finden, dass ist wirklich ein Thema über das man seitenweise schreiben könnte …
Gruß,
Magic

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Verständnisfrage: Wechsel zwischen Test- und Produktivda

Beitrag von Lewi »

Natürlich sollte die Entwicklung und der Test nicht auf Produkt-Datenbanken erfolgen. Aber deshalb gleich n-Datenbank-Server zu installieren und zu warten?
Ein Datenbank-Server verwaltet x-Datenbanken, die wiederum aus n-Tabellen bestehen können. Mit einem Datenbank-Server-System lassen sich alle Aspekte von Test- und Produktiv-System abbilden.

Antworten