Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bikerboy am 26.02.08 - 14:13:03

Titel: Plattform unabhängiges Programieren
Beitrag von: bikerboy am 26.02.08 - 14:13:03
Hallo liebe Gemeinde,

Ich stehe vor einem Problem, deren Wurzel ich nicht erkenne. Ich habe einen Backendagent in Lotus-Skript geschrieben, der auf meinem Windoofserver funktioniert, aber auf der Linuxbüchse vom Chef nicht.

Gibt es vielleicht Funktionen die sich auf windoof anders verhalten als auf linux ?

Wäre für tips echt dankbar
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: m3 am 26.02.08 - 14:27:21
Ja.

Alles, was Du mit COM machst,wird nicht funktionieren.

Detto Dateioperationen, die mit einem Laufwerksbuchstaben/Sharenamen operieren.

Auch die Verzeichnistrenner ("/" vs. "\") können bei manchen Funktionen Probleme bereiten (db.Open und Co. fressen aber auf allen Systemen jede Form von Slash).

Selbe Domino-Version?

Wenn Du zum Script mehr Details gibst, gibts auch von uns mehr Info.
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: bikerboy am 26.02.08 - 14:29:56
Code
Set dbDirectory = New NotesDbDirectory(strServer) 
	
	On Error Goto ErrorLog							
	i = 1										
	Set dbCurrent = dbDirectory.GetFirstDatabase(DATABASE)		
	While Not dbCurrent Is Nothing									
		If Not  dbCurrent.IsOpen Then						
			Call dbCurrent.Open(dbCurrent.Server,dbCurrent.FilePath)
		End If
		
		If dbCurrent.IsOpen Then										
			Set docDBPropz =  CreateDBDocument(dbCurrent, dbThis, vNeededGroups, strUpdating) 
			If Not docDBPropz Is Nothing Then
				If CreateACLEntriesDocument(dbCurrent,dbThis,docDBPropz, vNeededGroups) Then
					Print Cstr(i) + ". Datenbank wurde bearbeitet"						
				Else
					Call appendError(rtErrorLog)
				End If
			Else
				Call appendError(rtErrorLog)				
			End If
		End If

...also könnte mein db.open schon das Problem verursachen
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: m3 am 26.02.08 - 14:42:04
In dem Code tippe ich darauf, dass dbCurrent.FilePath einen Pfad mit "/" "\" beinhaltet, die Domino auf Linux nicht mag.
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: bikerboy am 26.02.08 - 15:20:42
Also habe mal nen Agenten geschrieben der mir alle  Pfadangaben ausgibt und es sind nur "\" vorhanden, also sollte Linux das vertragen.

Was gibt es noch für aktionen die Linux auf den Magen schlagen ?
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: m3 am 26.02.08 - 15:21:26
Ahem. Linux kennt als Pfadtrenner den "/".
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: bikerboy am 26.02.08 - 15:31:53
Ahem. Linux kennt als Pfadtrenner den "/".

Also hast du dich gerade vertan, willst du mir das damit sagen ?
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: tks am 26.02.08 - 15:47:53
Ahem. Linux kennt als Pfadtrenner den "/".

Und mag auf gar keinen Fall ein "\". Und, was in Deinem Fall wohl jetzt nicht zutrifft, Linux unterscheidet auch zwischen Groß- und Kleinschreibung, was Windoof ja wurscht ist.
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: m3 am 26.02.08 - 16:37:12
Thomas, das kann natürlich auch ein Problem sein.

Wenn im DBDirectory die Db mit "MeinPfad\MeineDB.nsf" eingetragen ist, die Replika am Linux-Server aber "meinpfad/meinedb.nsf" heißt, wird der Domino sie nicht finden.

IMHO wird es auch eher daran scheitern, als an den Pfadtrennern.

@bikerboy: Ja, sorry.
Titel: Re: Plattform unabhängiges Programieren
Beitrag von: HH am 27.02.08 - 10:42:47
Um die Probleme mit \, / und Groß-/Kleinschreibung auszuließen, könntest du es mit

Code
Call dbCurrent.OpenByReplicaID(dbCurrent.Server,dbCurrent.ReplikaID)

versuchen.

Hubert