Solved

Need help creating an Agent to refresh @dblookup fields in all documents using the same form.

Posted on 2008-11-03
3
330 Views
Last Modified: 2013-12-18
Have a small database with Distributor information.  There are 2 forms one for the company and one for the contacts at each company.  Company information is pulled into the Contact form using @dblookup fields.  Problem is when there is a change made on the company form it does not update on the contact form at the same time.  Would like an agent that could do the updates or some other method to keep the information in sync.
0
Comment
Question by:cinamitton
  • 2
3 Comments
 
LVL 1

Accepted Solution

by:
johnjardin earned 500 total points
ID: 22867185
The best way to do this, is to create a function in a script library, and reference that function in the PostSave Event of your company doc:

So, the PostSave event of your company doc will look like this:

Sub PostSave(Source As Notesuidocument)

        ' Update Contact Docs
        Call UpdateChildDocs( Source )

End Sub


The UpdateChildDocs event will then look something like what I've added in the code snippet area. This will make everything real time. Hope this helps.

John

Sub UpdateChildDocs( uidoc As NotesUIDocument )

	' VARIABLES

	Dim ss As New NotesSession

	Dim db As NotesDatabase

	Dim view As NotesView

	Dim col As NotesDocumentCollection

	Dim companydoc As NotesDocument

	Dim contactdoc As NotesDocument

	Dim key As String

	Dim mustsave As Boolean

	

	' CODE

	Set companydoc = uidoc.Document

	Set db = ss.CurrentDatabase

	Set view = db.GetView( "ViewAliasName" )	' The Alias Name of the View you looking up to 

	

	key = companydoc.LookupKey(0)	' This is the key you were using in the DBLookup

	Set col = view.GetAllDocumentsByKey( key, True )

	Set contactdoc = col.GetFirstDocument

	

	' For Each Doc found in the DB Lookup

	While Not( contactdoc Is Nothing )

		' Reset the Must Save Flag

		mustsave = False

		

		' Check all fields to see if values are the same

		If companydoc.FieldName1(0) <> contactdoc.FieldName1(0) Then

			Call contactdoc.ReplaceItemValue( "FieldName1", companydoc.FieldName1(0) )

			mustsave = True

			

		End If

		

		If companydoc.FieldName2(0) <> contactdoc.FieldName2(0) Then

			Call contactdoc.ReplaceItemValue( "FieldName2", companydoc.FieldName2(0) )

			mustsave = True

			

		End If

		

		' If changes have been made, then Save

		If mustsave Then

			Call contactdoc.Save( True, True )

		End If

		

		Set contactdoc = col.GetNextDocument( contactdoc )

		

	Wend

	

End Sub

Open in new window

0
 

Author Comment

by:cinamitton
ID: 22867297
Thanks for the quick response,  I will test the code to see if it works in our application.
0
 

Author Closing Comment

by:cinamitton
ID: 31512679
Many thanks for the code,

It is working great!!!!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I thought it will be a good idea to make a post as it will help in case someone else faces these issues. I trust this gives an idea how each entry in Notes.ini can mean a lot for the Domino Server to be functioning properly. This article discusses t…
Article by: Rob
Notes 8.5 Archiving Steps and Tips This article covers setting up a Notes archive, and helps understand some of the menu choices making setting up and maintaining a Notes archive file easier.
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now