1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
|
|
1 | |
Java агент31.01.2007, 17:47. Показов 16257. Ответов 4
Метки нет (Все метки)
я написал агент, который берет параметры из профайла - селективную формулу и имя поля,
затем по этим параметрам получает сортированный массив(тип Vector) и сохраняет в поле этого же профайла этот массив.. НО на самом деле нечего не сохраняется. агент вызывается скриптом agent.Run или agent.Runonserver класс агента является наследником от AgentBase.. в дебагере я проверял все правильно - данные получаются, созраняются, затем для контроля вызываю метод, который проверяет, есть ли данные в поле документа - они там есть. но после завершения работы агента в лотус-скрипте получаю (дебагер) профайл - поле пустое.. какие есть соображения ? в чем тут может быть дело ? кроме того лотус подвисает на минуту пока агент выпоняется - это слишком долго по сравнению с десятком функций реализующих тоже самое на лотус скрипте так с производительностью все ясно - ошибка была... тем не менее скрипт быстрее в 4 раза
0
|
31.01.2007, 17:47 | |
Ответы с готовыми решениями:
4
Java-агент Vs Ls-агент — кто быстрее? Java - агент Java агент по расписанию Странно работает Java-swing-Агент |
0 / 0 / 0
Регистрация: 28.04.2006
Сообщений: 225
|
|
01.02.2007, 08:50 | 2 |
Я думаю, неплохо было бы привести код агента, а также скрипта, который результаты его работы принимает. Просто у меня похожие проблемы были, мож смогу вспомнить, в чем затык.
0
|
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
|
|
01.02.2007, 09:22 | 3 |
в тот же профайл, из которого берутся параметры не сохраняется.. поэтому решил в новый документ сохранять данные..
кнопка Код
Sub Click(Source As Button) Dim ses As New NotesSession Dim db As NotesDatabase Dim agent As NotesAgent Dim profile As NotesDocument Dim formula As String Dim varData As Variant Dim choice As Variant Dim key As String Dim coll As NotesDocumentCollection try: On Error Goto catch key = Lcase(Trim(Inputbox("",""))) If key = "" Then Exit Sub Set db = ses.CurrentDatabase Dim startTime As New NotesDateTime(Now) formula = {SELECT Form = "fa_Person" & fl_JobTitle != "Супервайзер" & fl_Deleted !="1"} +_ {& @contains(@LowerCase(} + FIELD_FULLNAME + {);"} + key + {")} Set profile = db.GetProfileDocument("Formula","") Call profile.ReplaceItemValue("Formula", Formula) Call profile.ReplaceItemValue("FieldName",FIELD_FULLNAME) Call profile.Save(True, False) Set profile = Nothyng Set agent = db.GetAgent("aa_Make") If agent Is Nothyng Then Exit Sub Call agent.Run Dim endTime As New NotesDateTime(Now) Set profile = db.GetProfileDocument("Formula") varData = profile.GetItemValue("Responce") If Trim(Cstr(varData(0)))<>"" Then choice = workspace.Prompt(4, Cstr(endTime.TimeDifference(startTime)), "Profile", varData(0), varData) Call profile.Remove(True) Exit Sub catch: Print Getthreadinfo(1),Err,Error,Erl Exit Sub End Sub Код
import lotus.domino.*; import java.util.*; public class JavaAgent extends AgentBase { Database DB; DocumentCollection coll; String query, objectName; String[]params = new String[1]; Vector responce = new Vector(); public void NotesMain() { try { Session session = getSession(); AgentContext agentContext = session.getAgentContext(); DB = agentContext.getCurrentDatabase(); // параметры: params = getParams(DB, params.length); if (params != null){ query = params[0]; // формула отбора objectName = params[1]; // поле, по которому строится отбор if (query != ""){ try { coll = DB.search(query);//коллекция по формуле отбора if (coll.getCount() > 0){ // получить сортированный массив соответствий запросу responce = getSortedData(coll,objectName); if (responce != null){ setData(DB,responce); //testing } } }catch(Exception e) { e.printStackTrace(); } } } } catch(Exception e) { e.printStackTrace(); } }; // занести массив в поле документа void setData(Database db, Vector v){ try { //Document doc = db.createDocument(); Document doc = db.getProfileDocument("Formula",null); //doc.replaceItemValue("Form", "Formula"); doc.replaceItemValue("Responce", v); if (doc.save(true,false)) prt("Document saved"); else prt ("Somethyng went wrong"); doc = null; }catch(Exception e) { e.printStackTrace(); } } // вывод текста void prt(String s) {System.out.println(s);} // получить сортированный Vector-массив соответствий запросу Vector getSortedData(DocumentCollection coll, String objectName){ Document doc; Vector resp = new Vector(); List list = new ArrayList(); String objectValue; try { doc = coll.getFirstDocument(); while (doc != null){ objectValue = doc.getItemValueString(objectName); if (list.contains(objectValue)== false ) list.add(objectValue); doc = coll.getNextDocument(doc); } Collections.sort(list); // трансформировать список в вектор resp = listToVector(list); }catch(Exception e) { e.printStackTrace(); } return resp; } // трансформировать список в вектор Vector listToVector(List l){ Vector v = new Vector(); try { for (int i = 0; i < l.size(); i++){ v.addElement(l.get(i)); } }catch(Exception e) { e.printStackTrace(); } return v; } // получение параметров String[] getParams(Database db, int dym){ String[] p = new String[dym+1]; try { Document profile = db.getProfileDocument("Formula", null); if (profile.hasItem("Formula")){ p[0] = profile.getItemValueString("Formula"); p[1] = profile.getItemValueString("FieldName"); profile = null; return p; } else return null; }catch(Exception e) { e.printStackTrace(); return null; } } };
0
|
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
|
|
04.02.2007, 14:35 | 4 |
кто писал апплеты, работающие с документам приведите, пожалуйста, каркас апплета с инициализацией сессии, и собственно как апплет прикручивается к лотусу ??
собственно, меня интересует механизм: передача параметров в java - работа с документами - возврат параметра в лотус-скрипт
0
|
v2v
|
|
30.05.2007, 20:09 | 5 |
Вопрос.
Я написал ява агент и ещё один класс в этом же ява агенте, теперь я хочу использовать этот класс в другом агенте. попробывал вынести его в ява скрипт лайбрари, но вот возникла незадача, как мне теперь подключить в агенте эту библиотеку. |
30.05.2007, 20:09 | |
30.05.2007, 20:09 | |
Помогаю со студенческими работами здесь
5
Java Агент, Link Source Пропадает Java Агент. Post Запрос С Авторизацией Java агент ошибка при вызове веб сервиса Трабла, агент неправильно изменяет другой агент Самоудаляющийся агент Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |