Имя класса или типа не найдено — введите Object

Я новичок в LotusScript, у меня в агенте следующая ошибка:

Моя цель - иметь возможность подключиться к серверу с помощью следующего кода:

Option Public
Option Declare    

Sub Initialize
    Dim myServer As String
    Dim myMailfile As String
    myServer = "server"
    myMailfile = "mailfile"

    Dim filePath As String
    Dim intErgebnis As Integer
    Dim objNotes As Object
    Dim LNdb As Object
    Dim LNView As Object
    Dim LNDoc As Object
    Dim LNItem As Object
    Dim strSubject As String
    Dim LNWorkspace As Object
    Dim LNAttachment As Variant
    intErgebnis = 0
    Set objNotes = GetObject("", "Notes.NotesSession")
    Set LNdb = objNotes.GETDATABASE(myServer, myMailfile)
    Set LNWorkspace = CreateObject("notes.notesuiworkspace")
    LNWorkspace.OpenDatabase myServer, myMailfile
End Sub

Кто-нибудь знает, как это решить? спасибо за помощь

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
279
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Lotusscript нет типа данных Object. Вам нужно объявить эти переменные с их соответствующими типами объектов, например. NotesDatabase, NotesView, NotesDocument и т. д.

Кроме того, вы должны объявить и инициализировать объект NotesSession, а не использовать GetObject() в Lotusscript. Похоже, вы пытаетесь написать COM-код, а не Lotusscript.

Другое предложение состоит в том, чтобы использовать имена переменных, которые соответствуют де-факто (установленному) соглашению об именах. Если вы посмотрите на другой код Lotusscript, вы заметите, что переменные обычно называются одинаково, что значительно упрощает чтение кода других разработчиков. Еще одна рекомендация состоит в том, чтобы сначала объявить все объекты/классы Notes, сгруппированные/отсортированные в порядке их использования, а затем остальные переменные, прежде чем любой из них будет присвоено значение.

Ваш код должен выглядеть примерно так:

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim ws As New NotesUIWorkspace
    Dim uidoc as NotesUIDocument

    Dim mailServer As String
    Dim mailFileName As String
    Dim filePath As String
    Dim resultCount As Integer
    Dim subject As String

    mailServer = "server"
    mailFileName = "mailfile.nsf"
    resultCount = 0
    ' *** Open the specified mail file using back-end classes
    Set db = new NotesDatabase(mailServer, mailFileName)
    ' *** Get the document currently open in the Notes client using front-end classes
    Set uidoc = ws.CurrentDocument
    
End Sub

Вы видите, насколько легче это читать, не говоря уже о том, что это и короче, и работает.

Я также рекомендую всегда использовать имена переменных на английском языке. Если вам когда-нибудь понадобится попросить кого-нибудь о помощи, например здесь, в Stack Overflow, им будет намного проще понять ваш код, если вы используете понятные имена переменных. Это также причина, по которой вы должны использовать стандартизированные имена для объектов/классов Notes.

Я написал серию статей о том, как лучше писать код Lotusscript, думаю, они могут вам помочь: http://blog.texasswede.com/how-to-write-better-code-in-notesdomino/

Другие вопросы по теме