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

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

  Все выпуски  

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


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

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

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

comp.soft.prog.lotuscodesrore

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

Add this agent to your Lotus Notes mail template. Ask your user to: - open their mailbox
- click on the Actions menu, and choose "Disable and Cleanup Mail Rules" This will disable all mail rules in the user's mailbox, and move the user to their Rules folder so they can enable rules as needed.
Еще примеры:
Больше кодов на сайтах:

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

Подскажите, можно ли в программе удалить из контекстного меню представления стандартные функции (вроде copy, cut, move to folder и др.)? И можно ли изменить порядок вывода этого меню?
Вобщем вопрос.
Где и при каких обстоятельствах это регулируется при регистрации через Администратор я нашел.
Но проблема в том, что регистрация пользователей идет по кнопке через NotesRegistration.
Можно ли как то программно ставить Maximum compatible with all releases (630 bits)?
Или где это зашито, что бы перешить? Волею судеб некотормы пользователям нужно работать в 5 версии лотуса.

Я так понимаю к коду это вряд ли привязано. Ибо один код на разных серверах, в разных доменах.
Профили серверов идентичные вроде. По крайней мере, та часть, на которую указывает хэлпа.
Подскажите, можно ли в программе удалить из контекстного меню представления стандартные функции (вроде copy, cut, move to folder и др.)? И можно ли изменить порядок вывода этого меню?
Вечер добрый, многоуважаемый All.

Имеем следующий код:
Код
Function GetPriceDocuments(sPriceName As String, sPriceDate As String, bMultipleSelection As Boolean) As NotesDocumentCollection
    On Error Goto Error_
    ' Нижеследующий On Error необходим для того, чтобы корректно отработался Refresh,
    ' на случай, если какое-то из полей заполнено некорректно.
    On Error 4412 Goto Exit_
    
    Dim uDocCollection As NotesDocumentCollection
    Set uDocCollection = uLifeDB.Search("", Nothing, 0)
    
    Dim sUserFolder As String
    Dim uFolder As NotesView
    sUserFolder = "(" & Left(uSession.UserName, 30) & ")Price"
    Set uFolder = uLifeDB.GetView(sUserFolder)
    If (uFolder Is Nothing) Then
        Call uLifeDB.EnableFolder(sUserFolder)
        Evaluate({@UpdateViewDesign("} & sUserFolder & {";"} & "VPrice" & {");})
        Set uFolder = uLifeDB.GetView(sUserFolder)
        If (uFolder Is Nothing) Then
            Messagebox "ERROR: " & "Не могу создать папку [" & sUserFolder & "]"
            Goto Exit_
        Else
***         Messagebox "ERROR: " & "Пожалуйста, перезагрузите клиента Lotus Notes, перед тем как создавать проекты."
***         Goto Exit_
        End If
    End If
    
    Call uFolder.AllEntries.RemoveAllFromFolder(sUserFolder)
    
    Dim sFormula As String
    sFormula = |SELECT Form = "FPrice"|
    sFormula = sFormula & | & (| & |sPriceTopName = "| & Replace(sPriceName, |"|, |\"|) & |"|
    If (sPriceDate <> "") Then
        sFormula = sFormula & " & " & |nPriceDate = | & sPriceDate
    End If
    sFormula = sFormula & |)|
    Dim uDateTime As NotesDateTime
    Set uDateTime = New NotesDateTime("")    
    Dim uCollection As NotesDocumentCollection
    Set uCollection = uDB.Search(sFormula, uDateTime, 0)
    Call uCollection.PutAllInFolder(sUserFolder)
    
    Dim uUIWorkspace As New NotesUIWorkspace
    Set uDocCollection = uUIWorkspace.PickListCollection( _
    PICKLIST_CUSTOM, _
    bMultipleSelection, _
    uLifeDB.Server, _
    uLifeDB.FilePath, _
    sUserFolder, _'"VPrice", _
    "Выбор позиции из прейскуранта", _
    "Выберите цену (черные строки)")', _
    '|2. АНО "Лабораторные испытания"|)
    
    Call uFolder.AllEntries.RemoveAllFromFolder(sUserFolder)
    
Exit_:
    Set GetPriceDocuments = uDocCollection
    Exit Function
    
Error_:
    Messagebox sError & Error$ & " (#" & Trim(Str(Err())) & ": line: " & Trim(Cstr(Erl())) & ")" _
    & " in subroutine " & Cstr(Getthreadinfo(LSI_THREAD_PROC)) _
    & " from subroutine " & Cstr(Getthreadinfo(LSI_THREAD_CALLPROC)), MB_ICONSTOP, "Error"
    Resume Next
End Function
Смысл данной функции достаточно тривиальный. Создаём юзверьскую папку, меняем её дизайн на нужный нам, затем наполняем эту папку подходящими под наши условия элементами прайса. После чего используя PickListCollection показываем нашу папку пользователю для того чтобы он отметил необходимы(е/й) элемент(ы) прайса. Всё бы хорошо, но, к сожалению пришлось написать ненавистные мной две строчки, помеченные как ***. Суть проблемы: только что созданную папку _нельзя_ вывести на экран PickList'ом, Lotus нечеловечески ругается фразой "Entry not in design list". Пробовал всякое, никак не смог побороть. Может быть кто-то уже наступал на эти грабли и нашёл способ обойти их?
Извините за малознание, т.к. в Лотусе я вообще не работал. И мне необходимо быстро разобраться.
...
Помогите, пожалуйста, разобраться с юридическими тонкостями лицензирования OfficeMedia.

Наша организация имеет лицензию на OfficeMedia без ограничения количества пользователей (unlimited).
Никаких других документов (договоров, лиц. соглашений), кроме
прилагаемой лицензии, я найти не смогла.

Установлен и работает один комплект баз OfficeMedia.
Участники документооборота (пользователи) - как сотрудники нашей
организации, так и наши подведомственные организации (самостоятельные
юридические лица).

Вопрос: Необходимо ли подведомственным организациям приобретать
лицензии на работу с нашими базами документооборота?
Подчеркиваю - речь идет не об организации самостоятельного
документооборота в этих организациях, а только об обращении
сотрудников этих организаций к базам
нашей системы документооборота.

Как вообще определяется термин "пользователь" с вашей точки зрения -
это сотрудник конкретного юр. лица - владельца лицензии, либо любой
человек (физ. лицо, сотрудники др. юр. лиц и т.п.)?

Может у кого-то есть интертрастовское лицензионное соглашение на этот продукт?
Или договор, если в нем описаны условия использования данного продукта.
Буду признательна за любую информацию.
1. Из Лотуса были удалены несколько пользователей в связи с их увольнением. Похоже у кого то из сотрудников на удаленных пользователей были заведены рассылки или еще что то в календаре. Теперь каждый день выдает ошибки (штук 40 на разных удаленных пользователей): SchedMgr: Error processing calendar profile document (NoteID: NT000008FA) in database mail\ххх.nsf: Cannot find user in Domino Directory. Как от этого избавиться или узнать у кого стоят такие настройки рассылки. dry.gif

2. Можно ли как то избавиться от ошибок вида:

"Monitor Error in Database F:\Lotus\Domino\Data\mail\ххх.nsf: Entry not found in index" ;

"ATTEMPT TO ACCESS DATABASE roaming\ххх\names.nsf by ууу was denied" ;

3. Переодически возникает ошибка "Error compacting names.nsf: Database is currently in use by you or another user" , но базу в это время 23.00 никто не использует. Что можно сделать и как?

Если кто знает решение отпишитесь пожалуйста. Заранее спасибо. rolleyes.gif
Извините за малознание, т.к. в Лотусе я вообще не работал. И мне необходимо быстро разобраться.
...
В крупную научно-производственную компанию требуется
...
В крупную научно-производственную компанию требуется
...
Интересные темы:
Список форумов:

Tips. Советы

You can use the "Notes://" URL and the UNID to open documents in the Lotus Notes client from a link on the Web. But what do you do if you only have the view and key? This tip offers a solution.

Back in January I showed how you can add a "flyout" login box to any page of your Domino application. It's a nice easy way for users to login at any point they wish to. The one problem with it is that if, for whatever reason, authentication fails, you are then redirected to the normal login form --  be it the ugly default one or a custom version from domcfg.nsf.

Whichever login form the user ends up seeing and no matter if it's ugly or not the chances are you didn't ever want the user to leave the application itself in the first place. Particularly if the interface happens to be Ext-based.

My latest task has been to implement a login interface for just such an Ext-based Domino application. In order to avoid the user seeing anything other than a pretty-looking Ext app I decided to use Ajax requests to log the user in. It turns out that what I thought would be a relatively simple exercise took quite a while. What I learnt is worth sharing and I'll end with a demo you can view/copy.

How Does It Work

Let's start where the last "how to" left off and assume we have a bog standard HTML Form on the page which POSTs the entered user name and password to the URL /names.nsf?Login. No JavaScript is involved thus far.

Now, using this same form, we can now add an onclick event to the Form's login/submit button. Whereas before the button looked like this:

<input type="submit" value="Login" />

It would end up looking like this:

<input type="submit" onclick="DEXT.Session.Authenticate(this.form); return false;" value="Login" />

Notice the "return false" statement in the onclick event. This prevents the browser submitting the form in the usual way. We'll be processing the form in the JavaScript "Authenticate" method instead. Note that this way of doing it means it's still accessible as the form will still work with JavaScript disabled.

The DEXT.Session.Authenticate method looks like this, which you'll no doubt recognise as Prototype-based JavaScript (some bits removed for the sake of brevity).

DEXT.Session.Authenticate = function(frm){ frm.RedirectTo.value = DEXT.Database.Path+"$icon"; //Load something small! $('login-message').update("Authenticating with the server..."); $('login-form').request({ onSuccess: function(){ if( document.cookie.match(/DomAuthSessId|LtpaToken/)){
$('login-message').update("Authenticated. Reloading page..."); location.reload(); }else{ $('login-message').update('Authentication failed. Please try again.'); } } }); }

The Form.request() method used is simply shorthand for the Ajax.request() method.  It saves us having to tell it what URL, method and data to use as it can get all that from the form itself. The other JavaScript libraries all have similar methods available and porting this code to them should be a doddle.

The key to making it all work is simply looking for the existence of a certain cookie once the response is received from the server. If there's a cookie called DomAuthSessId or LtpaToken (for SSO setups) attached to the document then we know the authentication was a success. At this point we reload the whole page. Whether you need to do that depends on how much of the page layout changes once logged-in. If not much changes then you can probably skip this step and have it a truly Ajax-only login process.

An Example

You can see this method in use now in the DEXT app. Hover over the Login link top right (not in IE6 though, yet) and the login form will appear. It should be pre-populated with a valid login. If you press login you'll see a message about it contacting the server and then the page reloading with the name "Dext User" top right and the Login link no longer there.

Now logout using the logout link which replaced the login one from the previous step. When the Login link appears again bring up the login form but alter one of the field values. Try and login now and you should see an error message, while the form remains in place, allowing you to try again.

What Use Is It?

As mentioned this method still reloads the whole page when a login is successful, so why use Ajax, as this, in effect, adds another round-trip to the server that isn't part of a normal non-Ajax login. Well, put simply, it's for the sake of the user. Rather than redirect them to a different interface and out of the application they were in it allows repeated attempts at logging in all from one place.

Lessons I Learnt Along The Way

At first I'd thought I'd be able to examine the page returned to the Ajax request directly and look at its headers. When you login to Domino by POSTing the data the server replies with a HTTP code of 302, which tell the browsers (or Ajax code in this case) where to go next. You're either redirected to the root ("/") of the server or to a URL you specify by passing a value in a field called RedirectTo.

The headers for the immediate response from the server look like this:

HTTP/1.1 302 Found
Server: Lotus-Domino
Date: Tue, 07 Oct 2008 09:31:20 GMT
Connection: close
Location: http://dover/codestore/apps/dext.nsf/$icon
Set-Cookie: DomAuthSessId=E73F7A4E35C7A4A9D2CBA8CA3628F067; path=/

My thought was that I'd be able to examine the headers to this page and if the Set-Cookie header existed and had a value of DomAuthSessId or LtpaToken then hey presto, we're in.

However, from what I've read, it looks like Ajax doesn't let you examine the 302 redirect. Instead it waits until it's fetched the page to which it's redirected and then it lets you process that as the response. Luckily at this point the Set-Cookie header has been processed by the browser and we can inspect the document.cookie from our JavaScript code.

Another lesson I learnt is that you can't POST data to a URL that ends in ?open&login. You can only use a URL ending like that with GET requests. The only time you can POST directly to a login form is if you point the form directly at /names.nsf?login.

Click here to post a response

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

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

Author: Paul Davies
Tags: calendar reminder pop-up
Idea:
Currently the pop-up reminder for a calendar entry not only takes the focus from whichever application you are using, but also switches the focus back to the Notes client (being it's parent window) after it has been snoozed or OK'ed.
 
This is extremely annoying when you are using a different application. It is especially annoying if you don't notice the pop-up while typing in another application and end up hitting Return which then dismisses the pop-up when perhaps you didn't want to.
 
This is partly a general Windows issue anyway - as I hate the fact that any application can steal the focus from you. It should be the user that dictates which app has the focus - not the application itself! Not everybody can install and run Tweak UI tools
 
Not really sure what the best solution is, perhaps the pop-up should be the new type used by many modern applications that hover a non-modal box in the bottom right of the screen.
 
 

Author: Garima Gupta
Tags: automatic updates
Idea:

Can we have  an automatic update service that would scan all databases added to any user's  notes workspace and update the links for the ones which have been migrated/moved to different servers.User can schedule this update service to run as per their convenience(time, any specific workspace etc..).


Author: Michael Kobrowski
Tags: non-for-profit techsoup.com competition marketplace
Idea:
A lot of museums, schools, libraries and other non-for-profit organizations get very heavily discounted licenses for their systems through Techsoup.com.

MS Office, MS servers and all the MS products are available. Also Adobe and Symantec gives heavy discounts.

I volunteer for a historical society and had to install MS Small Business server and Exchange for them :-(

The only software available at techsoup.com from IBM Lotus - Lotus SmartSuite 98 - WHY???

Please make IBM Lotus products available through techsoup.com. Yes, I already posted this for Lotus Foundations, but I think it would also be great for other products!

Yes, IBM Lotus has some discounts they can give to non-for-profits, but MS is giving like 90% percent off on some products there!!!

Author: Garima Gupta
Tags: foldering
Idea:
I am not sure whether we have this facility..but it would be nice if we could have the concept of foldering in any lotus notes user workspace. It would be more systamatic  , if the links could be stored in differnt folders as per how the user wants to categorizes them.

Author: Garima Gupta
Tags: sametime groups
Idea:
Currently Sametime allows us to add the same contact more than one  time.
It would be nice ,if Sametime could prompt, if a user is trying to add a contact , which already exists in some group in his/her contact list.A window dislaying group list name in which the user exists ,along with his status ,should popup, also it could prompt , whether the user wants to move him to the new group to which he is trying to add that contact again.
This could be useful for people with a large sametime network ,with lots of varied groups.
 

Author: Mick Moignard
Tags: LotusScript debugger
Idea:
It would be a great help if the LS debugger could show more than 255 fields for NotesDocuments.   Can I suggest that the fieldlist be split with colapsible headings for each field start-letter, with only those letters which start fieldnames being shown; in that way fields would be easy to find, as the current implementation also displays fields in some random order (that which they were added to the document?).
 
 

Author: Michael Beaver
Tags: microformats semantics dita html filtering customization
Idea:
Much of IBM's technical content is authored in an XML language known as DITA, which provides a very structured and semantically rich approach to marking up information.  To offer this content in a web-based environment such as an Information Center, the DITA XML content is transformed to HTML and all of the semantics are lost during the process.  The world of microformats offers an approach that would allow the rich semantics and structure of DITA to be persisted into the HTML via the class attribute, thereby allowing a much richer and more dynamic information experience for end-users without introducing a complete overhaul to the infrastructure of an Information Center.  A simple inclusion of some javascript and CSS resources (or even a toolbar in the browser) could detect the extra semantics and offer the ability to filter by platform/audience/experience/etc., and break away from the one-size-fits-all approach to information delivery.

Author: Jeff Gilfelt
Tags: expeditor infocenter
Idea:
Could the reference information in the Lotus Expeditor Info Center relating to developing rich client applications include some sort of indicator on each document as to whether the information is or is-not also relevant to developing for the Notes 8 client (and Sametime and Symphony for that matter).

Ideally I would like to see dedicated info centers/redbooks/wikis with specific information on building extensions & plug-ins for these products.

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

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

How can a suspected software or documentation defect be reported to IBM Product Development?
Messages are piling up in the mail.box and the Router task is either hanging or running extremely slowly. The "tell router show queue" output reveals that the Router task was busy working on local delivery.
Your attempts to set up Lotus Notes on a new machine fail with the error "User or server name not found in Domino Directory".
Information about whether or not the SSL cryptographic routines used by the Lotus Domino Web server are FIPS 140-2 compliant.
This document contains some of the issues encountered in Notes/Domino when Daylight Saving Time begins and ends.
Inbound SMTP mail is being sent back to originator with a failure reason of "Maximum hop count exceeded".
When the IBM Lotus Notes client (Basic configuration) or IBM Lotus Domino server is restarted after a server crash, diagnostic information about the crash is collected from the Notes System Diagnostics (NSD) file, and other files.
Using a mobile phone InfraRed link to a laptop, you set up connection and location documents to use a mobile phone to connect to a server modem for replication. The phone uses Com7 and is set for Auto configure in the 'User preferences > Ports > COM7'. You receive the the message: "Received unrecognizable response from modem". Mobile phone is Nokia 6510.
Utilizing the Captaris RightFax product to send faxes through Lotus Notes. Mail is routed to the appropriate mail file, but it appears in the Sent view rather than the Inbox. The fax product retrieves the data through a POP3 connection and does not find any new mail.
LDAP Domino Upgrade Service Migration Search filter does not refresh after adding an item to migrate and cancelling.
Increasing the number of databases that Domino can cache in memory using NSF_DbCache_Maxentries can improve the performance of a Lotus Domino server if you have sufficient memory.
The HTTP task crashes on Locking handle when creating NMemBlock.
You attempt to create a DB2 database on a DB2 enabled Domino server and receive an error message.
This article is designed to act as a guide and reference paper for configuring BlackBerry Enterprise Server with IBM® Lotus® Domino®. It focuses on the load implications of running BlackBerry Enterprise Server within a Lotus Domino mail environment. It is designed to highlight areas where this load can be controlled and minimized.
When you edit personal information in ESS (such as Office Location), you notice that your deletions of field values are not being submitted to SAP. The fields in SAP still show the deleted information.
When you put the ESS database into edit mode and click Save & Submit Changes, you are prompted with the message "Do you want to save your changes?"
Также почитатай:
Найти документацию можно на сайтах:

В избранное