Отправляет email-рассылки с помощью сервиса Sendsay

Бюллетень "Lotus Notes CodeStore"

  Все выпуски  

Бюллетень "Lotus Notes CodeStore" No 95 от 2008-10-29


Рассылку ведет: Программист на Lotus NotesLotus CoderВыпуск No 95 от 2008-10-29
рассылка о программировании на Lotus Notes/Domino
Обсуждения на форумах, блогах. Примеры программного кода на LotusScript,@formula, Java

рассылка:выпускархивлентаблогсайт

Бюллетень "Lotus Notes CodeStore" Выпуск 13 от 21.04.2008

comp.soft.prog.lotuscodesrore

CodeStore. Примеры кодов

Public Function GetEmailCreatedDate(doc As NotesDocument) As String
' returns a date the document/email should be considered created
' written by Mike Mortin 20080625
If doc.DeliveredDate(0) <> "" Then
GetEmailCreatedDate = doc.DeliveredDate(0)
Elseif doc.PostedDate(0) <> "" Then
GetEmailCreatedDate = doc.PostedDate(0)
Else
GetEmailCreatedDate = doc.Created
End If
End Function
Public Function GetDocFromDb( db As NotesDatabase, viewName As String, key() As Variant, exact As Boolean ) As NotesDocument
' returns the first doc based on a search key
' written by Mike Mortin
Dim view As NotesView ' get the view
Set view = db.GetView(viewName) ' get the doc from the key
Set GetDocFromDb = view.GetDocumentByKey(key, exact)
End Function
Function GetCategoryDocsFromDb( db As NotesDatabase, viewName As String, category As String ) As NotesViewNavigator
' returns all docs from a given category
' written by Mike Mortin Dim view As NotesView ' get the view
Set view = db.GetView(viewName) ' get the docs from the cateogry
Set GetCategoryDocsFromDb = view.CreateViewNavFromCategory( category )
End Function
Function GetClusterServers(server As String, getAllServers As Boolean) As Variant
Dim cluster As String
Dim serverDoc As NotesDocument
Dim serverName As NotesName
Dim key(1 To 2) As Variant
Dim navdoc As NotesViewEntry
Dim nav As NotesViewNavigator ' define domain and name as per the default "Servers" view
Set serverName = New NotesName(server)
key(1) = serverName.Organization
key(2) = serverName.Abbreviated
Set serverDoc = GetDocFromDb(currentDb, "Servers", key, True) ' get a list of servers in the same cluster
cluster = serverDoc.ClusterName(0)
Set nav = GetCategoryDocsFromDb(currentDb, "Clusters", cluster) ' go through the category, add names to replica list
Set navdoc = nav.GetFirstDocument()
While Not navdoc Is Nothing
Set serverDoc = navdoc.Document
If serverDoc.ServerName(0) <> server Or getAllServers Then
Set serverName = New NotesName(serverDoc.ServerName(0))
GetClusterServers = GetClusterServers & serverName.Abbreviated & ","
End If
Set navdoc = nav.GetNextDocument(navdoc)
Wend ' tighten up the list
GetClusterServers = Split(GetClusterServers, ",")
GetClusterServers = Fulltrim(GetClusterServers)
End Function
Function GetClusterServers(server As String, getAllServers As Boolean) As Variant
Dim s as New NotesSession
Dim cluster As String
Dim serverDoc As NotesDocument
Dim serverName As NotesName
Dim key(1 To 2) As Variant
Dim navdoc As NotesViewEntry
Dim nav As NotesViewNavigator ' define domain and name as per the default "Servers" view
Set serverName = New NotesName(server)
key(1) = serverName.Organization
key(2) = serverName.Abbreviated
Set serverDoc = GetDocFromDb(s.CurrentDatabase, "Servers", key, True) ' get a list of servers in the same cluster
cluster = serverDoc.ClusterName(0)
Set nav = GetCategoryDocsFromDb(currentDb, "Clusters", cluster) ' go through the category, add names to replica list
Set navdoc = nav.GetFirstDocument()
While Not navdoc Is Nothing
Set serverDoc = navdoc.Document
If serverDoc.ServerName(0) <> server Or getAllServers Then
Set serverName = New NotesName(serverDoc.ServerName(0))
GetClusterServers = GetClusterServers & serverName.Abbreviated & ","
End If
Set navdoc = nav.GetNextDocument(navdoc)
Wend ' tighten up the list
GetClusterServers = Split(GetClusterServers, ",")
GetClusterServers = Fulltrim(GetClusterServers)
End Function
Function IIf (condition As Variant, trueCondition As Variant, falseCondition As Variant) As Variant
' such a basic function for all other programming languages ... stands for "Immediate IF"
' written by Mike Mortin
If condition Then
If Isobject(TrueCondition) Then
Set IIf = trueCondition
Else
IIf = trueCondition
End If
Else
If Isobject(TrueCondition) Then
Set IIf = falseCondition
Else
IIf = falseCondition
End If
End If
End Function
Function GetEnterpriseNAB( default As String ) As NotesDatabase
' returns the NAB from the server the current Db is on
' written by Mike Mortin
Dim s As New NotesSession
Dim db As NotesDatabase
Dim server As String
Dim nname As NotesName ' set the default
If default = "" Then default = "Admin01/Operations/CA" ' get our parent server to get the NAB
Set db = s.CurrentDatabase
Set nname = New NotesName(db.Server)
server = nname.Common ' now, use default server if we are local
If server = "" Then server = default ' finally, grab names.nsf from that server
Set GetEnterpriseNAB = New NotesDatabase(server, "names.nsf")
End Function
Еще примеры:
Больше кодов на сайтах:

Форумы.Свежи темы и обсуждения

да и еще, можно поиграться с настройками репликации, т.е. выделить группу документов по определенному признаку и толкать их или вытягивать на/с сервер(а)
Дело в том, что мне нужна автоматическая репликация в пределах одного сервера. Т.е есть БД1, которая лежит на сервере, на этом же сервере лежат ее реплики в разных папках. Надо чтобы БД1 своим репликам отдавала документы, но не принимала ничего.
Ну, а что тебе мешает создать документ connection с односторонеей репликацией только Push или Pull???
м.. вообщем возникла проблема такого плана.
Был когда то ещё один сервер(типа для разработки). Потом надобность в нем отпала.
Через админ процесс удалил его. На машине сделал снес его. После сноса , через какое то время пошли строки в логах
Цитата
Unable to replicate with server SERVER2/DOMAIN: Unable to find path to server. To trace this connection, use File - Preferences - User Preferences - Ports - Trace (Notes client) or Trace command (Domino server)

Записей в каталоге , мониторинге , и вообще где только можно о нем НЕТ.
Заметил что безобразие в консольных логах прекращается каогда отключить Event monitor ( tell event quit). Но и без него жизнь трудна.
Вообщем , помогите разобраться. smile.gif
да и еще, можно поиграться с настройками репликации, т.е. выделить группу документов по определенному признаку и толкать их или вытягивать на/с сервер(а)
Ну, а что тебе мешает создать документ connection с односторонеей репликацией только Push или Pull???
Дело в том, что мне нужна автоматическая репликация в пределах одного сервера. Т.е есть БД1, которая лежит на сервере, на этом же сервере лежат ее реплики в разных папках. Надо чтобы БД1 своим репликам отдавала документы, но не принимала ничего.
Решили сменить сервер на новый... Red Hat EL 5 дорогой, поэтому приобрели ASP Linux 5 (ну и по некоторым ещё причинам). Сейчас система работает на старом пк в связке lotus domino 6.0 - red hat 7.2 и к сожалениюне я её не создавал... Подскажите во первых что вернее сделать, каким образом легче (или лучше) произвести перенос (полный перенос баз и замена первого, либо второй сервер и дальнейший переход на него). Клиентских мест 30 штук, рабочих баз 7-8 и общий объём 30 Гб всей инфы.
Также подскажите пожалуйста , какие дополнительные пакеты должны быти установлены перед установкой Lotus Domino 8.1 на ASP Linux Server 5 x64 (от Red Hat EL 5). Как я понял у всех праблема возникает с java при загрузке установки? Описание самой установки неоднократно на форумах читал, а опыта пока нет))) И если ставить пакеты java, то для 64х или x586... Не хотелось бы наставить кучу лишнего... А также настройки прозводить с Gnome и нужен ли KDE или это не принципиально?

Заранее благодарен.
Решили сменить сервер на новый... Red Hat EL 5 дорогой, поэтому приобрели ASP Linux 5 (ну и по некоторым ещё причинам). Сейчас система работает на старом пк в связке lotus domino 6.0 - red hat 7.2 и к сожалениюне я её не создавал... Подскажите во первых что вернее сделать, каким образом легче (или лучше) произвести перенос (полный перенос баз и замена первого, либо второй сервер и дальнейший переход на него). Клиентских мест 30 штук, рабочих баз 7-8 и общий объём 30 Гб всей инфы.
Также подскажите пожалуйста , какие дополнительные пакеты должны быти установлены перед установкой Lotus Domino 8.1 на ASP Linux Server 5 x64 (от Red Hat EL 5). Как я понял у всех праблема возникает с java при загрузке установки? Описание самой установки неоднократно на форумах читал, а опыта пока нет))) И если ставить пакеты java, то для 64х или x586... Не хотелось бы наставить кучу лишнего... А также настройки прозводить с Gnome и нужен ли KDE или это не принципиально?

Заранее благодарен.
Подскажите пожалуйста как можно перетащить адресную книгу и желательно почту из lotus domino в outlook/outlook express средствами domino.
я знаю стороннии утилиты для этого хотелось обойтись средствами домино.
Интересные темы:
Список форумов:

Tips. Советы

Our clocks went back an hour this weekend from BST to GMT. As a result a funny bug cropped up in my code. What I can't work out is if the source of the bug lies with Notes or not. It's not behaviour I've seen before.

Imagine a "subscription" document which has an ExpiryDate field, which should need no explanation, and also a GracePeriod field, which stores the number of days after the expiry date on which it actually expires.

To work out whether the actual expiry date had passed I use the formula:

@Adjust(ExpiryDate; 0; 0; GracePeriod; 0; 0; 0) < @Today

Yesterday (the 27th) I noticed that a document had expired a day early. Looking in to it I found that the change to the clocks had caused it.

For the document in question the formula being computed was:

@Adjust("25/10/2008 00:00:00"; 0; 0; 2; 0; 0; 0)

Now, I'd expect that to give me a date/time of "27/10/2008 00:00:00", but, in this case was giving me "26/10/2008 23:00:00". Hence it was indeed before @Today (the 27th) and so the formula returned true and the document expired a day early.

I can see what it's doing here. Two days is 48 hours and 48 hours after midnight this Saturday gone it was indeed only 11 PM on Monday, as the clocks went back an hour at some point in between. I just didn't expect @Adjust to be that clever. Has it always done that?

As a fix I found that ignoring the time component and only adjusting the date part stopped the extra hour being removed. The formula is now:

@Adjust(@Date(ExpiryDate); 0; 0; GracePeriod; 0; 0; 0) < @Today

For the example used above this gives me "27/10/2008", as expected. You live and learn. I'll try and remember to always extract the date part only from now on, assuming the formula isn't time-dependent, which it isn't in this case.

Am I missing something here? Did you all know of this and I've just been lucky never to have seen this behaviour before?

Click here to post a response

If you need to create a large amount of dynamic JavaScript and you're not familiar with the use of @DBColumn and @DBLookup formulas, this tip is for you. Placing this code in your HTML Head Content section is a simple workaround for busy Lotus Notes Domino developers.

Еще советы:
Смотри советы на сайтах:

Блоги. Что обсуждают и пишут

Author: Richard Austin
Tags: Macro symphony spreadsheet office
Idea:
I have performed some research before posting this thread and it appears that a macro created in symphony can't be assigned to a 'button'. 
 
A macro can indeed be created, saved, etc and a button can be created from various different objects... so logically the two can be integrated?
 
This may serve as annoyance to some users, however it is a common tool that is used throughout the education sector (by those studying IT at any age), as well as for many other applications throughout industry, and is an integrated function within Microsoft Office.
 
Further comments are most welcome.

Author: Kendra Bowker
Tags: infocenters
Idea:

The idea lnked to below is requesting more screenshots as well as sample task-flows.  I'd like to see the level of interest specifically in more screenshots, so I'm adding this as a separate topic.  Thanks for your feedback.


Author: Marie Scott
Tags: certificate management certserv.ntf
Idea:

Add the browse for file functionality in the certserv.ntf template for managing certificates. It's especially cumbersome when managing lots of certificates that you either have to paste from the clipboard or type explicitly the file's location when managing either third party certificates or the certificate itself.


Еще записи:
Интересные блоги специалистов:

Статьи и Документация

This white paper provides step-by-instructions on how to integrate CA (formerly Netegrity) SiteMinder 6.0 with IBM Lotus Connections 2.0 to provide your users with the security of a single sign-on environment.
During startup and throughout the normal course of operation of a Domino Server, it is possible for any Directory Assistance replica within a domain to become unavailable for some period of time. New functionality implemented in Domino 7 will check for an available LDAP replica before initiating the failover process. This new functionality improves the efficiency of the failover algorithm and lowers overhead for the server.
Beginning with Domino 8, the Web Server Plugin for WebSphere Application Server no longer ships with the Domino kit.
A Lotus Notes mail file's Block Sender rule does not block some incoming Internet mail as expected. The blocked address appears in the Block Sender list as expected, and the block sender formula within the mail file's Calendar profile appears as expected.
In Lotus Notes, what is the "Anti-folder view" and/or what does the error, "Anti-folder views must be stored in data database", mean?
The following error is returned when you attempt to search a database that is stored on a CD: "Not enough memory for Full Text Indexing or Search".
The Purge Documents agent in Lotus Notes does not work properly after the Resource Reservations database is moved to a new server.
After upgrading the Resource Reservations database from Lotus Domino 5 to an 8 release, those rooms and resources with owner restrictions that were created before the upgrade do not work properly.
You configure a SmartUpgrade kit document to upgrade Notes clients to 7.0.2 and use a SURunAs.exe (attached or stored on a network share). At the end of the upgrade, when a user clicks OK on the "Finished" dialog, the following error appears: "You have cancelled your update of Lotus Notes".
Users cannot currently search the contents of blog comments although if the Lotus Notes database is full-text indexed, they can use the Notes searching feature to search in blog entries. Since searching is currently not a feature in the Blog templates, are there plans to include this functionality?
In Lotus Notes 8 client you have added the Notes Workspace icon onto a toolbar. When you attempt to click the Workspace toolbar icon, nothing happens.
Companies exploring cost-reduction strategies to become more energy efficient and to increase business agility have identified client virtualization as a strategic move to stay competitive in the market. This article highlights some of the virtualization technologies available in today's market for Linux® desktops. This article takes you through various virtualization technologies that utilize the IBM® open collaboration client solution, that add business value to your IT infrastructure, and that get you started on the desktops of the future, which leverage the power of Web 2.0 and cloud computing.
IBM® Lotus® Sametime® 8.0 expands real-time communication with telephony and audio-visual capabilities. It also offers a highly extensible platform based on the Eclipse plug-in framework. This article introduces the Lotus Sametime Telephony client toolkit, which you can use to develop new plug-in applications on top of Lotus Sametime Connect.
Have you wanted to port your infrastructure and business line applications to a Linux desktop environment, but been deterred by the need to access critical Microsoft Windows or legacy applications? Finding a way to support these critical business line applications is crucial when considering the move to Linux. This article highlights the various tools that let you access these applications from Linux desktops.
Learn the steps involved in migrating your environment to that of a Linux® client, including organizational planning and user segmentation. Based on customer experiences, this article offers a comprehensive guide to planning and executing your migration while minimizing disruption to your users.
Learn what's involved when introducing a Linux® client pilot in your organization, including planning for business and IT requirements, architecture decisions, risks, and understanding how IBM's open collaboration client is used to implement this desktop of the future, today.
When a Lotus Notes client hotfix is saved to a directory that contains double-byte characters in the path, such as デスクトップ (Desktop), and executed from that location, the install will fail while it is attempting to create a backup directory. The error "Failed to upgrade Notes. See the file UPGRADE.LOG for more information." will be observed.
Low priority mails are routing immediately in Lotus Notes when they should route at 12:00 AM by default. How can you troubleshoot this issue?
Why are some names not recognized by the Lotus Notes Names Recognizer in a Widget?
Также почитатай:
Найти документацию можно на сайтах:

В избранное