Skip to Main Content
HCL Domino Ideas Portal

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

EmbeddedView by Formula

Enables to embed Views (Server!!Database!!View) from different databases. Today embedded views are linked by replicaId, So if you distribute applications by template - the embedded view points to the test / development application, Which is annoing and unprofessional.

  • Attach files
      Drop here to upload
    • Guest
      Reply
      |
      Apr 15, 2024

      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.

    • Guest
      Reply
      |
      Oct 26, 2023

      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

    • Guest
      Reply
      |
      Nov 24, 2022

      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.

    • Guest
      Reply
      |
      Nov 17, 2022

      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!!!!

    • Guest
      Reply
      |
      Aug 18, 2022

      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.

    • Guest
      Reply
      |
      Jul 26, 2022

      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.

    • Guest
      Reply
      |
      May 19, 2022

      It is very frustrating that this is still not possible.

    • Guest
      Reply
      |
      Apr 21, 2022

      Embedded views are great, except you can not specify Server and Database. Please fix !

    • Guest
      Reply
      |
      Feb 17, 2022

      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!

    • Guest
      Reply
      |
      Nov 13, 2020

      Yes please.

      This would be a great feature.

    • Guest
      Reply
      |
      Oct 9, 2020

      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.

    • Guest
      Reply
      |
      Jun 3, 2020

      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...

    • Guest
      Reply
      |
      Dec 23, 2019

      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.

    • Guest
      Reply
      |
      Dec 2, 2019

      We really need this one too. Should be a low hanging fruit.

    • Guest
      Reply
      |
      Aug 12, 2019

      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.