Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.
For more information and upcoming events around #dominoforever, please visit our Destination Domino Page
A Long standing one. Currently Get hit by this big time with Servers seperated by slow Connections via Internet and Traveling Users changing the site where they work on.
I hope this will be implemented soon.
Here an example to do it in the xml of a subform, with embedded views of 3 different databases (my real source code have embedded views out of 9 different databases).
Use your own error handling :o)
'/**
' * CopyEmbeddedViews in target subform.
' * @copyright ProVis GmbH (you can use it free)
' * @author Stefan Kieckbusch
' * @version 2023-10-26
' */
Sub Initialize
On Error GoTo ERROR_HANDLING
Const INDEX_TODO = 0
Const INDEX_DOC = 1
Const INDEX_COMM = 2
Const INDEX_NOREPLACE = 3
Dim s as New NotesSession
Dim db as NotesDatabase : Set db = s.CurrentDatabase
' Set new target view databases
Dim dbProVeToDo As NotesDatabase : Set dbProVeToDo = s.Getdatabase(db.Server, "Directory/ProVeToDo.nsf, False)
Dim dbProVeDoc As NotesDatabase : Set dbProVeDoc = s.Getdatabase(db.Server, "Directory/ProVeDoc.nsf, False)
Dim dbProVeComm As NotesDatabase : Set dbProVeComm = s.Getdatabase(db.Server, "Directory/ProVeComm.nsf, False)
' Get database replic ids of development databases
Dim strReplicIDProVeToDo As String : Let strReplicIDProVeToDo = "C12573470049F374"
If (Not dbProVeToDo Is Nothing) Then Let strReplicIDProVeToDo = dbProVeToDo.Replicaid
Dim strReplicIDProVeDoc As String : Let strReplicIDProVeDoc = "C1257994004F4295"
If (Not dbProVeDoc Is Nothing) Then Let strReplicIDProVeDoc = dbProVeDoc.Replicaid
Dim strReplicIDProVeComm As String : Let strReplicIDProVeComm = "C1257996003E2165"
If (Not dbProVeComm Is Nothing) Then Let strReplicIDProVeComm = dbProVeComm.Replicaid
' Source array
Dim arr_strSource(INDEX_NOREPLACE) As String
Let arr_strSource(INDEX_TODO) = "database='C12573470049F374'" ' dbProVeToDo
Let arr_strSource(INDEX_DOC) = "database='C1257994004F4295'" ' dbProVeDoc
Let arr_strSource(INDEX_COMM) = "database='C1257996003E2165'" ' dbProVeComm
Let arr_strSource(INDEX_NOREPLACE) = "insertdialog='false'"' "fromtemplate='ProVeSys'"
' Templateeintrag durch noreplace ersetzen
Dim arr_strTarget(INDEX_NOREPLACE) As String
Let arr_strTarget(INDEX_TODO) = "database='" & strReplicIDProVeToDo & "'"
Let arr_strTarget(INDEX_DOC) = "database='" & strReplicIDProVeDoc & "'"
Let arr_strTarget(INDEX_COMM) = "database='" & strReplicIDProVeComm & "'"
Let arr_strTarget(INDEX_NOREPLACE) = "insertdialog='false' noreplace='true'"
' Get source stream of subform "StandardEmbeddedViews" and replace database replica id
ForAll Form In db.Forms
If (IsArray(Form.Aliases)) Then
If (Form.Aliases(0) = "StandardEmbeddedViews") Then
Dim nc As NotesNoteCollection : Set nc = db.CreateNoteCollection(False)
Call nc.Add(Form)
Dim streamSource As NotesStream : Set streamSource = s.CreateStream
Dim dxlExporter As NotesDXLExporter : Set dxlExporter = s.CreateDXLExporter(nc, streamSource)
Call dxlExporter.Process
' Zielstream erzeugen und mit umberechneten Quellstream setzen
Dim streamTarget As NotesStream : Set streamTarget = s.CreateStream
Let streamSource.Position = 0
If (InStr(streamSource.Readtext, "noreplace='true'")) Then
Let arr_strTarget(INDEX_NOREPLACE) = "insertdialog='false'"
Else ' InStr(streamSource.Readtext, "noreplace='true'")
Let arr_strTarget(INDEX_NOREPLACE) = "insertdialog='false' noreplace='true'"
End If ' InStr(streamSource.Readtext, "noreplace='true'")
Let streamSource.Position = 0
Call streamTarget.Writetext(Replace(streamSource.Readtext, arr_strSource, arr_strTarget))
' Subform in allen Apps ersetzen
Dim docApp As NotesDocument : Set docApp = dc.Getfirstdocument()
While (Not docApp Is Nothing)
' Kundendatenbank holen
Dim dbApp As NotesDatabase : Set dbApp = s.GetDatabase(db.server, docApp.Getitemvalue("Path_App")(0), False)
If (Not dbApp Is Nothing) Then
Print dbApp.Title
Dim dxlImporter As NotesDXLImporter : Set dxlImporter = s.CreateDXLImporter(streamTarget, dbApp)
Let dxlImporter.CreateFTIndex = True
Let dxlImporter.ReplaceDBProperties = False
Let dxlImporter.ReplicaRequiredForReplaceOrUpdate = False
Let dxlImporter.ACLImportOption = DXLIMPORTOPTION_REPLACE_ELSE_IGNORE
Let dxlImporter.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE 'DXLIMPORTOPTION_CREATE
Call dxlImporter.Process
Set dxlImporter = Nothing
End If ' dbApp Is Nothing Then
Set docApp = dc.GetNextDocument(docApp)
Wend ' Not docApp Is Nothing
End If ' Form.Aliases(0) = "StandardEmbeddedViews"
End If ' IsArray(Form.Aliases)
End ForAll ' Form In dmThis.db.Forms
MessageBox "StandardEmbeddedViews in " & dc.Count & " databases set. Plrase sign the databases.", MB_OK + MB_ICONINFORMATION, DIALOG_TITLE
Exit Sub ' Initialize
ERROR_HANDLING:
If (dxlImporter Is Nothing) Then
Call handleError(DESIGN_AGENT & ": Design\Set StandardEmbeddedViews", ERR_OPT_PRINT, Nothing)
Else ' dxlImporter Is Nothing
MessageBox dxlImporter.Log
Let streamTarget.Position = 0
MessageBox streamTarget.Readtext
Call handleError(DESIGN_AGENT & ": Design\Set StandardEmbeddedViews\" & dxlImporter.Log, ERR_OPT_PRINT, Nothing)
End If ' dxlImporter Is Nothing
Exit Sub ' Initialize
End Sub ' Initialize
To work around the problem, we use very small subforms that only contain view embeddings. We will then fix them in the target database and prohibit them from the design. Then it is possible to repeatedly refresh the database design.
But it needs to be fixed so that the target can be defined by a formula.
We're almost 4 years later and this is still just under consideration?! Come on HCL. Please make this happen. I don't care about Nomad. My only wish regarding Notes/Domino if I could just ask for one thing would be this. I've been a notes developer for 20 years now so I wouldn't ask if it weren't that much of an annoyance. 87 votes isn't enough? DQL was a breakthrough but that makes my need for this even bigger since I can finally split my 1 million documents over multiple databases. The result being that I have more embedded view but also more frustration because of this!! I would pay for this solution!!!!
Whoever gave the tip about the DXL workaround, thank you thank you thank you. Apparently we cannot know each other's names here, we're all guests, so Guest, thanks for saving me 'again' hours of frustration. And HCL, please fix this. If I can make it work in 15 minutes using a dxl workaround it should only take you 10 minutes to add a database property so we can change the source. The principle already exists for other elements in Notes. I've added a notepad file here with the code on how to do it. Hope it helps others hours of frustration as well.
Same thing for ressources like images. As a matter of fact, in framesets, the database can be computed. It should be the same in any element that can be chosen in another database.
It is very frustrating that this is still not possible.
Embedded views are great, except you can not specify Server and Database. Please fix !
We really need this.. Don't consider this, just make it happen PLEASE. It gives me so much more work not having this simple improvement. I also have like 20-30 embedded views and need to manually adjust them after each template update. It gets really frustrating after a while.. Years go by and no solution.. This would make me really happy!
Yes please.
This would be a great feature.
That would be great. I have a work around,
I have databases that have 16 embedded views from other databases. I wrote a lotus script agent that exchanges the database property of each view with dxl. However, the form or subform property 'prohibit design refresh or replace to modify' must be set.
I can send the script.
Yes! Yes! Yes!
In framesets and outlines, the database formula for embedded elements was implemented for about 20 years ago, but not in embedded views. There were lots of same suggestions on IdeaJam, but it did not bring any result. I'm developer, and I do not find any reasonable grounding for this...
Yes. We have a commercial case management software for prosecutors with about 40 embedded views to other databases. This means after each upgrade, we have to manually fix 40 embedded views which can take a few hours. Clearly this is not ideal.
We really need this one too. Should be a low hanging fruit.
Missing for soooo long - there was actually a note from someone at IBM in the R6 or something timeframe that this is the next thing he would add, and there was rumors, that this can allready done via dxl roundtripping - discussing the later one, my customer said, they wont accept such a technology in production in this case.