Web-сервис

  • Автор темы Vado
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vado

#1
День добрый!
Может кто-то помочь не лотусисту.

из демо-примера сделал веб-сервис - даже работает с простыми значениями

[codebox]Option Public
%INCLUDE "lsxsd.lss"
Class Test
Function getProductName(productNumber As String, Fault1 As WS_FAULT) As Variant
Dim session As NotesSession
Set session = New NotesSession
Dim db As notesdatabase
Dim view As notesview
Dim doc As notesdocument
Set db = session.GetDatabase("","referent/portal.nsf")
Set view = db.GetView("$NewAll")
Set doc = view.GetFirstDocument () '.GetDocumentByKey(productNumber, True)
If doc Is Nothing Then
Else
getProductName = doc.GetFirstItem ("From").text +" | "+ doc.GetFirstItem ("EnterSendFrom").text +" | "+ doc.GetFirstItem ("SendToRus").text +" | "+ doc.GetFirstItem ("Subject").text +" | "+ doc.GetFirstItem ("Body").text
End If
End Function
End Class[/codebox]

Вопрос - как передать вьюшку ил коллекцию док-ов (не знаю как правильнее сформулировать). Т.е. мне надо чтобы вебсервис возвращал что-то, что потом можно превратить в таблицу.

пытался пристроить
Set db = session.GetDatabase("","referent/portal.nsf")
Set view = db.GetView("$All")
Set col = view.GetAllDocumentsByKey("Eugenia V Eugenya/OU=DB/OU=UA/O=RUS", True)
но вернуть col не получилось.

Помогите.
Заранее спасибо
 

abbatik

Lotus team
20.10.2008
277
0
#2
столбцы в виде должны быть отсортированы..
ищет по-моему этими функциями по первым трем столбцам...
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
сразу предупрежу, что с веб-сервисами не работал...
суть такова, что тебе нужно просто сформировать данные таким образом, чтобы принимающая программа смогла правильно преобразовать данные в отображаемые.
передать с пом. веб-сервисов структуру в виде Notes-объектов врядли получится, но сформировать набор текстовых данных тебе никто не мешает... главное, придумать какой вид это должно иметь, чтобы было более менее оптимально применимо...
как вариант - нужно пройтись по виду, и собрать нужные данные для ответа...
для прохода по документам вида можно воспользоваться методами NotesView.GetFirstDocument/GetNextDocument
если воспользоваться свойством notesView.AllEntries, то можно получить другой объект-коллекцию (NotesViewEntryCollection) записей в виде в том порядке, что они идут в виде, т.е. отсортированы
аналогично виду у NotesViewEntryCollection есть методы для прохода по коллекции GetFirstEntry/GetNextEntry
только в случае с NotesView ты работаешь на прямую с документами, а в случае с NotesViewEntryCollection ты работаешь с записями NotesViewEntry
чтобы получить из записи документ достаточно "одной таблэтки" notesViewEntry.Document

читай справку разработчика! для твоей задачи там достаточно инфы, да и для большинства задач!
будут вопросы, спрашивай, желательно, описывая задачу, а не "почему у меня эта строка не работает"
 

abbatik

Lotus team
20.10.2008
277
0
#4
Entry тормозные при большом объеме данных, так что лучше первым способом..
 
Статус
Закрыто для дальнейших ответов.