Autor Thema: per Script Schablonen erstellen  (Gelesen 8155 mal)

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
per Script Schablonen erstellen
« am: 25.09.07 - 12:25:59 »
Hallo zusammen,

ich will per Script Schablonen von Datenbanken erstellen. Im Prinzip muss ich die DB ja nur nehmen und kopieren, dabei schon den Pfad auf *.ntf ändern.

Nun soll die Schablone aber auch "gestempelt" werden, heisst wenn ich anhand der Schablone eine DB erstelle soll auf dem Reiter die Informationen stehen wie , Schablonenname, Build und das ReleaseDate. Es gibt ein Tool das das kann, also ist es möglich, nur muss mir noch jemand die Tür zeigen  ;D

Habe leider vergebens die Forum suche benutzt
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Driri

  • Gast
Re: per Script Schablonen erstellen
« Antwort #1 am: 25.09.07 - 13:20:49 »
Also eine DB anhand einer Schablone kannst Du per NotesDatabase.CreateFromTemplate erzeugen. Ob dabei die Infos gesetzt werden, kann ich nicht sagen, müßtest Du ausprobieren.

Die Datenbank-Eigenschaften wie TemplateName und DesignTemplateName können per Script nicht gesetzt werden (siehe auch Designer-Hilfe).

Evtl. läßt sich da was über API drehen, da kann ich allerdings nichts zu sagen.

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #2 am: 25.09.07 - 13:33:42 »
@Driri:

Nein nein du hast mich falsch verstanden, ich will aus einer DB eine Schablone machen nicht anders herum.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Glombi

  • Gast
Re: per Script Schablonen erstellen
« Antwort #3 am: 25.09.07 - 13:42:35 »
Mit
Set notesDatabaseNew = notesDatabase.CreateCopy( newServer$, newDbFile$ [, maxsize% ] )
erstellt man eine neue Kopie.

Den Titel setzt man mit
To set: notesDatabase.Title = title$

Wozu ein Tool?
Den Namen der Schablone (Masterschablone) kann man mit Script via DXL setzen. Das habe ich hier im Forum gepostet... Einfach mal nach suchen.

Ein Tool braucht man da nicht wirklich. Es sei denn, Du meinst mit "gestempelt", dass das Teil mit einer bestimmten ID signiert wird.

Andreas

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #4 am: 25.09.07 - 14:09:34 »
mit "gestempelt" meine ich, dass der Name der Schablone, die Version (Build) und das Datum gesetzt werden.

Dazu muss anscheinend ein Doc in der DB da sein, dass die Felder

"$Title" = "$TemplateBuild"
"$TemplateBuild" = <entsprechender Nummer>
"$TemplateBuildName" = <entsprechende Name>
"$TemplateBuildDate" = < Datumswert >

zumindest wird es so in dem Tool gemacht, aber wenn ich es so mache klappt es mal mal nicht.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"


Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #6 am: 25.09.07 - 14:34:27 »
@Glombi :

Fettes Merci ( Hoffe das verstösst nicht gegen die Forumsregularien, wenn doch @Replace("Fettes Merci";"Vielen Herzlichen Dank"))
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Glombi

  • Gast
Re: per Script Schablonen erstellen
« Antwort #7 am: 25.09.07 - 14:45:10 »
de rien  ;)

Andreas

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #8 am: 26.09.07 - 09:37:28 »
Jetzt noch mal ne Doofe Frage,

Diese Eigenschaften liegen in einem Dokument in der DB , ohne Maske und der gleichen, haben die nicht immer die selber noteID ?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Glombi

  • Gast
Re: per Script Schablonen erstellen
« Antwort #9 am: 26.09.07 - 09:42:48 »
Das sind gemeinsame Felder. Die haben also immer eine unterschiedliche ID.

This new feature (introduced in Notes/Domino 6.0.1) lets you maintain a shared field called $TemplateBuild, allowing for easier template identification. The field’s properties must be set via background with LotusScript or formula language. (The two key fields containing this data are $TemplateBuildName and $TemplateBuildDate. The Notes/Domino 6 discussion forum contains sample LotusScript code for retrieving this information written by Thomas Gumz.) Databases are associated with templates via a design property.

Den Link hatte ich ja bereits eingefügt.

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #10 am: 26.09.07 - 10:09:51 »
so ich habe nun den teil fertig mit dem ich das Template stempeln lassen sollte:

Code

	Dim session As New NotesSession
	Dim ws As New NotesUIWorkspace
	Dim dbTarget As NotesDatabase	
	Dim notesColl As NotesNoteCollection
	Dim sharedFieldDoc As NotesDocument
	Dim currentDoc As NotesDocument
	Dim noteID As String
	
	Set currentDoc  = ws.CurrentDocument.Document
	Set dbTarget = session.GetDatabase(Cstr(currentDoc.GetItemValue("serverPath")(0)),Cstr(currentDoc.GetItemValue("filePath")(0)),False)
	
	Set notesColl = dbTarget.CreateNoteCollection(False)
	notesColl.SelectSharedFields = True
	Call notesColl.BuildCollection
	
	noteID = notesColl.GetFirstNoteId
	
	Do Until noteID = "" 
		Set sharedFieldDoc = dbTarget.GetDocumentByID(noteID)
		If sharedFieldDoc.HasItem("$TemplateBuild") Then
			Exit Do
		End If
		
	Loop
	
	If Not sharedFieldDoc Is Nothing Then
		
		Dim releaseDate As New NotesDateTime(Cstr(currentDoc.GetItemValue("tmpBuildDate")(0)))
		
		Call sharedFieldDoc.ReplaceItemValue("$TemplateBuildName",currentDoc.GetItemValue("tmpBuildName")(0))
		Call sharedFieldDoc.ReplaceItemValue("$TemplateBuild", currentDoc.GetItemValue("tmpBuild")(0))
		Call sharedFieldDoc.ReplaceItemValue("$TemplateBuild", releaseDate )
		Call sharedFieldDoc.Save(True,True)
	End If

aber warum, setze ich das dokument am ende auf mark to reponse. das stand so bei dem notesgott aus Paderborn auf der Seite ?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Glombi

  • Gast
Re: per Script Schablonen erstellen
« Antwort #11 am: 26.09.07 - 10:26:03 »
Auf welcher Seite?

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #13 am: 26.09.07 - 11:56:30 »
Zitat
If the force parameter is True, the createResponse parameter has no effect.

Da könnte also auch "Dauerregen" stehen, wenn es syntaktisch okay wäre - es hat keinen Effekt.

Bernhard

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #14 am: 27.09.07 - 13:34:59 »
gut aber warum nimmt notes oder die DB das nun nicht an ?  :-:
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #15 am: 28.09.07 - 14:10:07 »
so .... was muss ich beim signieren von DBs beachten.


Bekomme hier die Meldung Design Note nicht gefunden, aber was bedeutet es ?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #16 am: 02.10.07 - 10:50:19 »
Hmmm also habe nochmal ein bisschen gecodet, aber nichts ändert sich.

Code
	For i = i To Ubound(varDBList)
		
		serverPath = Strtoken(varDBList(i),"~",1)
		filePath = Strtoken(varDBList(i),"~",2)
		
		Set dbTarget = session.GetDatabase(serverPath,filePath)
		
		newFileName = tmpPrefix + "-"  + Replace(dbtarget.FileName,".nsf",".ntf")
		targetServer = currentDoc.GetItemValue("targetServer")(0)
		targetFilePath = currentDoc.GetItemValue("targetFilePath")(0)
		targetFilename = targetFilePath + Cstr(currentDoc.GetItemValue("tmpPrefix")(0)) + newFileName
		
		Set dbTemplate = dbTarget.CreateCopy(targetServer,targetFilename)
		Set designDoc = dbTemplate.CreateDocument
		
		designDoc.~$TemplateBuildName = newFileName
		designDoc.~$TemplateBuild = tmpBuild
		designDoc.~$TemplateBuildDate =  tmpDate
		Call designDoc.Save(True,False,False)
		
		'Call dbTemplate.Sign(32767,False,signerName,False)
		
	Next

Die Schablonen werden sauber erstellt , landen da wo sie hingehören, aber ich bekomme diesen vermaledeiten Stempel nicht drauf. Das verwirrende für mich ist, dass wenn ich die Schablone mit dem Tool einlese meine Daten richtig drin stehen. Aber warum ??? *heul*
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #17 am: 05.10.07 - 15:08:36 »
hmmm habe nun gesehen, dass meine Schablone doch nicht so sauber ist.

Nun meine Frage wie würdet ihr ne Schablone per Code erstellen?

Ich bin hingegangen, habe die Quelldatenbank im Zugriff, habe einen neuen Namen und Endung vergeben, aber jetzt kommts die Datei die am Ende herauskommt wird nicht als Schablone geführt wo man anhaken kann das designänderungen mit übernommen werden sollen. Was muss ich dabei beachten ?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #18 am: 05.10.07 - 15:14:12 »
Code
Set dbTarget = session.GetDatabase(serverPath,filePath)
		
		newFileName = tmpPrefix + "-"  + Replace(dbtarget.FileName,".nsf",".ntf")
		targetServer = currentDoc.GetItemValue("targetServer")(0)
		targetFilePath = currentDoc.GetItemValue("targetFilePath")(0)
		targetFilename = targetFilePath + Cstr(currentDoc.GetItemValue("tmpPrefix")(0)) + newFileName
		
		Set dbTemplate = dbTarget.CreateCopy(targetServer,targetFilename)


Für Codenatiker :P
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: per Script Schablonen erstellen
« Antwort #19 am: 15.10.07 - 12:10:15 »
hmmm

eine Frage wenn ich über die session mir ne DB hole, wieso kann ich sie nicht kopieren?

Er meckert immer das die DB noch nicht geöffnet sei, aber wie öffne ich sie denn im Backentd? Das widerspricht sich doch schon wenn ich die Frage stelle.

Naja und wie bekäme ich es denn hin dass sie als vollwertige Schablonen annerkannt werden ? Also das ich den haken setzen kann , dass zukünftige Änderungen mit übernommen werden?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz