Скачать 2.93 Mb.
|
Lotus Domino R. 5; @-(popjttyjibi, LotusScript, ecmpoennbie kjiocch LotusScript u Java 501 while (agents.hasMoreElements()) { Agent agent = (Agent)agents.nextElement(); String tg="", tr--""; switch (agent.getTarget()) { case Agent. TARGET ALL__DOCS: tq = "all docs"; break; case Agent.TARGET_ALL_DOCS IN VIEW: tg =• "all docs in view"; break; case Agent.. TARGET_NEW_ DOCS : tg = "new docs"; break; case Agent .TARGET_NEW_OR_MODIFIED DOCS.-tg = "new or modif docs"; break; case Agent.TARGET_NONE: tg ---- "-none"; break; case Agent.TARGET_SELECTED_DOCS: tg = "selected docs"; break; case Agent.TARGET_UNREAD_DOCS_iN VIEW: tg =- "unread docs in view";break; default: tg = "unknown"; break; i switch (agent.getTrigger()) { case Agent. .TRIGGER_AFTER_MAIL_DELTVERY: tr=--"after mail deliv"; break; case Agent.TRIGGER_BEFORE_MAIL_DELIVERY: tr="before new mail"; break; case Agent.TRIGGER_DOC_PASTED: tr="document pasted"; break; case Agent.TRIGGER DOC_UPDATE: • tr="document updated"; break; case Agent.TRIGGER_MANUAL: tr="manual"; break; case Agent.TRIGGER_NONE: tr="none"; break; case Agent.TRIGGER_SCHEDULED: tr="scheduled"; break; } System.out.println(agent.getName () + ": target; is " + agent. getTarget () + " - " + tg + "; trigger is " + agent.getTrigger() + " - " + tr ); } A CBoftcTBO Query - «3anpoc jijih oxSopa ofipaGaTtiBaeMMx areHTOM flOKyivieHTOB» LotusScript: queryS = notesAgent.Query Java: Siring query = Agent.getQueryQ tckct sanpoca (tho String), wcnoJibsyeMoro arenroM oth ox6opa o6pa6aTbmaeMbix hm AOKVMeHTOE h onpeflejjeHHoro b okhc OocTpoHTejia arenxoB khohkoh Add Search. ecjih ana arenxa ne dbiji onpe.ne.neH sanpoc khohkoh Add Search, cbohctbo B03Bpainaex nycxyto cxpOKy, fla>Ke ecjiH areux, HanHcaHHbiH c npHMeneHHCM @-cj)opMyji, caM ox6Hpaex o6pa6axbiBaeMbie hm flOKyMCHXbi onepaxopoM SELECT hjih oxSop o6pa6axwBaeMbix flOKyMeHxoB BbinojiHaexca areHXOM cpeflcxBaMH LotusScript hjih Java. rtpmviep. CKpunr nojiyiaer (j>opMyjiy oxDopa areHxa c H33BaHneM Cleansing Agent. Dim session As New NotesSession Dim db As NotesDatabase Dim agent As NotesAgent • • Set db = session.CurrentDatabase Dim selection As String agentList = db.Agents Forall a In agentList If ( a.Name = "Cleansing Agent" ) Then Set agent = a End If End Forall selection = agent.Query Bo3Mo»eHbi cjieayiomHe pe^yjibraxbi. • ecjih arem o6pa6axbiBaex tojibko zioKyMenrbi, coflep/Kaiune c;iobo "tulip" (nojibnaH), cbohctbo Quer>' Bepnex ("tulip"). © InterTrust Co. Tea. (095) 9567928 502 Встроенные массы LotusScript u Java
© Свойство HasRimSkiceModified - «выполнялся ли агент хотя бы раз после его последней модификации» LotusScript: flog — nofei^gen/.HasRunSinceModified Возвращает true, если агент выполнялся хотя бы раз после последней модификации, или false, если не выполнялся. Свойство LastRun • «Б'ремя последнего выполнения агента» LotusScript: date V~ notesAgent.ljasiRuit Java: DaleTime date = Agent.geiLasiRnnQ Возвращает дату-время последнего выполнения агента (в LotusScript •- Variant of type DATE, в Java - объект класса DateTime). Если агент ранее не выполнялся, в LotusScript возвращается 30.12.! 899 (версии 4.x) или 0:00:00 (версия 5.0), а в Java - null. Пример 1. Java-агент для каждого агента текущей базы выводит дату и время его последнего запуска или сообщение о том, что агент еще не запускался. import j ava,util.Vector; // Agent/LastRim Database db ~ agentContext . getCurrentDataba.se (); Vector agents = db.getAgents(); for (int. i — 0; i < agents. size (} ; i-t-+) } t Agent agent = (Agent)agents.elementAt(i); DateTime date = agent.getLastRun(); v if (date.getDateOnly(} != null) System, out .println ( "Agent " + agent. get.Name () +• " last, ran on " + date. getDateOnly ( ) + •? " at " + date.getTimeOniy()); else System.out.println("Agent " + agent.getName() + " hasn't run yet:"); \ Пример 2. Если скрипт выясняет, что индекс полнотекстового поиска текущей базы в последний раз обновлялся ранее времени последнего запуска текущего агента, он обновляет индекс. Dim session As New NotesSession Dim agent As NotesAgent Dim db As NotesDatabase Set agent = session.CurrentAgent Set db = session.CurrentDatabase If ( db.LastFTIndexed < agent.LastRun ) Then Call db.UpdateFTIndex( False ) End If © InterTrust Co. Тел. (095) 9567928 Lotus Domino R. 5: @-формулы, LotusScript, встроенные классы LotusScript и Java 503 3.11.2. Методы Метод save - «сохранить изменения в базе» LotusScript: Call notesAgenl.sa\e Java: void Agent.saveQ Сохраняет в базе изменения, выполненные в объекте [NotesJAgent. Должен вызываться после изменения значений свойств ServerName и (или) Enabled, иначе эти изменения будут «утеряны». Предполагает наличие соответствующего доступа к базе и агенту. Метод run - «выполнить агента» LotusScript: Call nolesAgent.run Java: void Agent.run() Метод run выполняет агента, к которому применяется метод, «локально». Это означает, что если запуск агента выполнен из агента, выполняемого на станции, то и вызванный агент будет выполняться станцией. Если же запуск агента выполнен из агента, выполняемого сервером, то и вызванный агент будет выполняться сервером. Однако «удаленные» (ПОР) вызовы составляют исключение из этого правила - агент, запуск которого инициирован методом run, выполняется сервером. Вы не должны запускать агентов рекурсивно. «Стандартный вывод» вызванного агента направляется в базу log.nsf. Пользователь не может интерактивно работать непосредственно с вызванным агентом. В LotusScript вызываемый агент «не должен» пользоваться свойствами и методами классов «переднего плана» (Ш), и, кроме прочего, невозможна трассировка вызванного агента в отладчике. Метод runOnServer - «выполнить агента на сервере» LotusScript: status% - notesAgenf.runQnScrverQ Java: int status - Agent.runOnServer() В отличие от метода run, метод runOnServer выполняет агента, к которому применяется метод, на сервере, «несущем» базу, содержащую агента. При этом вызов должен производиться со станции, но база, содержащая вызываемого агента, должна находиться на сервере. Метод runOnServer возвращает статус завершения вызванного агента. Статус равен О, если агент завершился без ошибок, и отличен от нуля, если имели место ошибки. Недопустимо использовать метод runOnServer в агентах, автоматически запускаемых сервером - в таких случаях должен использоваться метод run. При «удаленных» (ПОР) вызовах метод runOnServer эквивалентен методу run - вызванный агент выполняется сервером. Метод remove - '«удалить агента» .. . ..'• ;> : .;•..•:.:. : ...... •..•..... . LotusScript: Call notesAgent.remave Java: void Agent. removeQ Удаляет агента из базы. После вызова метода объект класса [Notes]Agent сразу получает значение Nothing/null, а его свойства и методы становятся недоступны. Вам придется «обновить вид агентов» из интерфейса Notes, чтобы «визуально обнаружить», что агент был действительно удален. Отметим, что можно даже удалить агента во время его выполнения. © InterTrust Со. Тел. (095) 9567928 504 Встроенные классы LotusScript и Java Пример 1. Java-агент удаляет агента CalculateTotals в текущей базе. import java.util.Vector; // Agent/remove Database db = agentContext.getCurrentDatabase(); Vector agents = db.getAgents(); int count = agents.size(); int i; System.out.println("Agents in database:"); for (i •-•-• 0; i { Agent, agent = (Agent) agents . elementAt ( i ); String name = agent.getName(); if (name —= null) name = "No name"; if (name . compareTo ( "CalculateTotals" ) --= 0) / agent.remove{); System.cut.println("agent found and deleted"); break; } ) i if (i == count) System.out.print In("agent not found"); Пример 2. «Самоуничтожающийся» агент. Когда этот агент завершится, его уже ие станет в базе. ' Self-destructing agent created 08/18/95 by N. Allen Dim session As New NotesSession Dim agent As NotesAgent Set agent = session. Current-Agent Call agent.Remove Пример З. Скрипт кнопки находит в текущей базе, агентов, владельцем которых является текущий пользователь и выполнение которых запрещено. У пользователя запрашивается подтверждение на удаление сразу всех таких агентов. Если разрешение получено, агенты удаляются. Sub Click(Source As Button) Dim session As New NotesSession Dim db As NotesDatabase Dim agentArray( 1 To 10 ) As NotesAgent Dim count As Integer Dim r As String . Set db = session.CurrentDatabase count = 0 ' находим агентов, владельцем которых является текущий' ' пользователь и выполнение которых запрещено Forall a In db.Agents If ( a. Owner -" session. UserName ) And Not ( a.IsEnabled ) Then count = count + 1 -Set agentArray( count ) = a End If End Forall . , r = Inputbox$( "Вы имеете " & count & " агентов, выполнение которых запрещено. Удалить их?" ) If ( r = "yes" ) Or ( r - "у" ) Then ' удаляем всех агентов из массива agentArray Forall b In agentArray . Call b.Remove End E'orall End If ... End Sllb © InterTrust Co, Тел. (095) 9567928 Lotus Domino R. 5: @-формулы, LotusScript, встроенные классы LotusScript и Java 505 3.12. «Форма» - класс [NotesJForm Объект этого класса представляет форму. Свойства класса [NotesJForm позволяют «узнать» название формы и ее алиасы, проверить, является ли форма субформой, получить список имен содержащихся в форме полей, манипулировать содержимым специальных полей формы SFormUsers («кто» может создавать документы по форме») и $Readers («кто будет видеть созданные по этой форме документы»). Единственный метод класса служит для удаления формы из базы. «Контейнерная иерархия» LotusScript NotesDatabase —> NotesForm Java Database —> Form —> Database Как в LotusScript, так и в Java получить объект класса [Notes]Form можно двумя способами. Если известно имя формы, объект, представляющий форму, получают методом getForm класса [Notes]Database. Если необходим доступ ко всем формам базы, используют свойство Forms класса [NotesjDatabase. 3.12.1. Свойства и метод Свойство Parent - «родитель» Java: Database db ~ Form.getParentO Возвращает объект класса Database, представляющий базу, в которой определена форма. Свойство Name - «название формы» LotusScript: formName$ = notes For т.^яте Java: String formName - Form.getNameQ Возвращает «первое» название формы (тип String). Пример. Java-агент выводит имена всех форм, имеющихся в текущей базе. import j ava.uti1.Vector; /'/ Form/Name Database db = agentContext,getCurrentDatabase(); Vector forms = db.getForms(); System, out .printIn ( "\"" f db , get.Title () + "\" has " + forms.size О + " forms:"); for (int i=0; i < forrns . size () ; i-n-} { Form form = (Form)forms.elementAt{i); System.out.println(" " + form.getName()}; } Свойство Aliases - «алиасы формы» . ::. •.:;::;,:':. • • :: :; v ... :: '....... '..'. '.'•'.; ;....::'.'...'' LotusScript: stringArray = notesForm.Aliases Java: java.util. Vector aliases = Forwz.getAliasesQ © InterTrust Co. Тел. (095) 9567928 506 Встроенные классы LotusScript и Java Возвращает «массив» всех алиасов формы (не включая «первое» название формы). В LotusScript это действительно массив с элементами тина String, в Java - объект Java.util. Vector с элементами типа String. Случай, когда форма не имеет ни одного алиаса (только «первое» название), в LotusScript «проверяют» с помощью IsEmpty, а в Java - по количеству элементов в «векторе» - свойством size. Пример. Скрипт запрашивает имя формы из текущей базы и выводит информацию об алиасах этой формы. Dim session As New NotesSession Dim db As NotesDatabase Set db - session.CurrentDatabase formNameln = Lease(Inputbox{"Name of form?")) Forall form In db.Forms If Lease(form.Name) — formNameln Then If Isempty(form.Aliases) Then Messagebox form.Name & " has no aliases" Else alCount =0 msgString = "" # Forall al In form.Aliases alCount - alCount + 1 msgString = msgString & Chr(lO) & " " & al End E'orall Messagebox form.Name & " has " & alCount & " alias (es):" & Chr(lO) & msgString End If Exit Sub End If End Forall Messagebox "The form """ & formNameln & """ does not exist" Свойство IsSubForm -«является ли субформой» LotusScript: flag = notesFormAsSubForm Java: boolean flag ~ /o/re.isSubFormQ Возвращает true, если форма является субформой, или false, если нет. |
Система передачи сообщений масштаба предприятия Lotus — комбинация мощных функций Domino и Notes Система передачи сообщений масштаба предприятия Lotus — объединение мощных возможностей Domino и Notes |
Инструкция по обновлению дизайна crm relavis Обновление дизайна проводится... Для выполнения действий будет необходим Domino Administrator, все действия должны выполняться от имени пользователя, имеющего права... |
||
Программа простого tcp/ip клиента (SampleClient java) 4 Так же рассказывается о том, как пишутся и используются программные модули, ориентированные на построение www и научить работе с... |
Руководство пользователя Книга №1 Общие принципы работы в Системе «Юридическое лицо» в процессе выполнения Java-апплета будет отображен логотип Java. 9 |
||
Инструкция по настройке Java для портала суфд (на примере Java 8 update 131) Переходим на вкладку Advanced и выставляем переключатели так как показано на картинке |
Конвертор байт-кода Java в cil В данной работе рассматривается задача эффективного конвертирования байт-кода виртуальной машины Java [1] в байт-код Common Intermediate... |
||
Программа государственного экзамена по направлению Основы программирование на Java. Ключевые особенности. Файловая структура Java. Области видимости имен. Операции наследования и перекрытие... |
Программа государственного экзамена по направлению 02. 04. 01 «Математика и компьютерные науки» Основы программирование на Java. Ключевые особенности. Файловая структура Java. Области видимости имен. Операции наследования и перекрытие... |
||
Клиент-серверные технологии П. Ноутон, Г. Шилдт java 2 [Электронный ресурс] Book Ноутон Шилдт java 2 Наиболее полное руководство pdf |
Программа «Основы программирования на java» Изучая основы программирования на языке Java, ребята учатся создавать реально действующие кроссплатформенные программы, которые могут... |
||
Руководство администратора Системной платформой Javaee серверов приложений необходимо установить Java jre версии X. Для установки Java jre необходимо запустить... |
Программа дисциплины «Программирование на языке java» Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направлений подготовки 231000.... |
||
Языки программирования java и java-технологии Целью изучения дисциплины является получение теоретических и практических знаний Перечень дисциплин, усвоение которых необходимо... |
Требования к исходному коду программ на языке java Данный документ является корпоративным стандартом предприятия, определяющим требования к разработке исходного Java-кода. Документ... |
||
Время повсюду московское Эд продолжает работать над Lotus Esprit. Он меняет распределительный ремень и коллектор, а потом берется за салон. Смогут ли ребята... |
Разработка графической системы поддержки программирования контроллеров... |
Поиск |