博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

Undokumentierte @Formeln/LotusScript im Lotus Notes Client/Server

Posted on 2008-05-16 17:29  生鱼片  阅读(1679)  评论(2编辑  收藏  举报
  • Erstellung von Replik-IDs mittels @Text-Funktion
    @Text( @Now; "*" )
    Source
  • NoPersist option in SetProfileField/GetProfileField:
    @SetProfileField([NoPersist];"Value to store";@Username)

    This is a neat flag used to set variables in a virtual profile document - it doesn't really exist. It's kind of like an environment variable, except instead of writing to Notes.ini, you're writing to a temporary client session cache. This only works in the UI between windows in the same database for the life of the current session. Each database has its own NoPersist cache on the Notes client, so unlike environment variables, this will only work in the same database.
    Source
  • Undocumented DOM LotusScript Inventory:
    Here's an inventory of LotusScript COM/OLE classes holding undocumented properties and methods. I compiled it using Notes/Domino release 7 type library. OMT notation is used for brevity...
  • Befehl, um die Namen über den Browser aus dem Adreßbuch zu holen:
    @DbCommand("Domino";["LoadAddressListByIndex" | "LoadAddressListByName"];"names.nsf"; txtTargetField; strMax; [strIndex | strKey])
  • the LoadAddressListbyIndex command to work was the ($PeopleGroupsFlat) view to be included in my database
  • Stellt Informationen aus der aktuellen Arbeitsumgebung bereit:
    @LocationGetInfo([HomeServer])
    @LocationGetInfo([CatalogServer])
    @LocationGetInfo([SametimeServer])
    @LocationGetInfo([NamePreference])
    @LocationGetInfo([MailProtocol])
    @LocationGetInfo([WebRetriever])
    @LocationGetInfo([BookmarksFileName])
    @LocationGetInfo([InternetMailAddress])
    @LocationGetInfo([AreaCode])
    @LocationGetInfo([**
    Feldname***]) Einfach mal andere Feldnamen probieren... ;-)
  • Codiert eine URL, so dass auch Sonderzeichen/Umlaute/reservierte Zeichen genutzt werden können, siehe auch escape()-Funktion in JavaScript:
    @URLEncode
  • Stellt Einträge aus der Registry zur Verfügung:
    @RegQueryValue("HKEY_LOCAL_MACHINE"; "SOFTWARE\\Network Associates\\TVD\\Shared Components\\VirusScan Engine\\4.0.xx\\"; "szDatVersion")
  • Zeigt den Dialog zum Öffnen einer Datenbank: Quelle
    @Prompt([ChooseDatabase]; ""; ""; ""; "")
    Rückgabe-Liste: ServerName : FileName/Path : DatabaseTitle
  • Zeigt den Dialog zum Öffnen einer Datenbank in LotusScript: Quelle
    variant = notesUIWorkspace.Prompt( type%, title$, prompt$ [, default ] [, values ] )
    type% = 13 benutzen
    Rückgabe-Liste: s.o.
  • Zeigt den Dialog zum Öffnen einer Datei:
    @Prompt([LOCALBROWSE]; "Title"; "Text")
  • Undocumented LotusScript from DominoUpdate Journal:
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    If (db Is Nothing) Then
    Exit Sub
    End If
    Dim flds As Variant, x As Integer, fldList As String
    flds = db.GetFields(False)
    For x = 0 To Ubound(flds)
    fldList = fldList + flds(x) + Chr(13)
    Next x
    Msgbox fldList, 0, db.Title + " fields"

    db.RetrievePOP3MAIL("server address",port,"username","password",(True/False to retain mail), (True/False to use SSL))
    Db.CreateNewsGroup("group name")
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    If (db Is Nothing) Then
    Exit Sub
    End If
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument, gid As String, html As String
    Set dc = db.AllDocuments
    For x = 1 To dc.Count
    Set doc = dc.GetNthDocument(x)
    gid = doc.GenerateMessageID
    html = doc.GenerateHTMLString
    Next x

    Dim s As New NotesSession
    Dim idom As String, ihost As String, win As Variant, cr As String
    cr = Chr(13)
    idom = "Internet Domain: " + s.InternetDomainName
    ihost = "Internet Host: " + s.InternetHostName
    Set win = s.GetWin32Domain
    Msgbox idom + cr + ihost + cr + "Win32 Domain: " + win.ServerName, 0, "Example 3"
    Call s.Close()

    Dim uiw As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = uiw.CurrentDocument
    Print uidoc.ParentViewName

    Dim uiw As New NotesUIWorkspace
    Call uiw.AddDatabaseToPortfolio()
    Call uiw.AddBookmark("Example 5")

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    If (db Is Nothing) Then
    Exit Sub
    End If
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim pt As Variant, html As String
    Set dc = db.AllDocuments
    For x = 1 To dc.Count
    Set doc = dc.GetNthDocument(x)
    Set item = doc.GetFirstItem("combo")
    pt = item.PartialText
    Next x

    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument, temp As NotesDocument
    Dim rt As NotesRichTextItem
    Dim pt As Variant, html As String
    Set dc = db.AllDocuments
    Set temp = dc.GetFirstDocument
    For x = 1 To dc.Count
    Set doc = dc.GetNthDocument(x)
    Set rt = doc.GetFirstItem("Body")
    pt = rt.PartialText
    Call rt.AddLinkByIDS(db.ReplicaID, "","",temp.UniversalID)
    Call doc.Save(False, False)
    Next x
    Quelle
  • Es gibt in R5 und R6 einen pracktischen undokumentierten Formalsprachebefehl:
    list:=@GetMembers(List;Pos[;Anzahl])
    Der Befehl holt aus einer Liste ein oder mehrere Elemente ab der stelle Pos. Wenn die Anzahl weggelassen wird, wird ein Element geholt.
    Quelle
  • Sent by Jim Fricker (10.10.2008):
    • @LocationGetInfo([AbbreviatedName])
      @LocationGetInfo([FullName])
      @LocationGetInfo([UNID])
    • @AddBusyTime(|text; text; date)
    • @FindFreeTime(|text; text; date; number)
    • @MailConfirmPreference
    • @MailFoldersPreference
    • @LocationGetOSTZ
      @LocationGetTZ(|variant)
      @LocationGetTZ
    • @CharSetInfo([Charsets])
      @CharSetInfo([Encoding])
      @CharSetInfo([DefaultCharset])
    • @AdminPerformAction(|date; [variant])
      @AdminCreateRequest(|date; [variant])
      DeleteUser
      DeleteGroup
      DeleteServer
    • @URLSubmit(|number)
      @URLSubmit
    • @NetAccount([DeleteNTUser])
      @NetAccount([IsNetworkAdmin])
    • @FindFreeResource(|text; text; text; text; [variant])
      InGMT
      InLocalTime
    • @DbUnreadCount(|text)
    • @OpenCalendar(|date; [variant])
      Group
      Individual
    • @X509Certificates(|date; text; [variant])
      DeleteX509Cert
    • @MailFilterAddToFolder(|text)
    • @AccountGetInfo(|text; text)
    • @AdminDelegateMailFile(|number; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text)
    • @BitAnd(|[number])
      @BitOr(|[number])
      @BitXor(|[number])
      @BitNot(|number)
      @BitShift(|number; number)
    • @GetMembers(|variant; number; number)
    • @AddBookmark(
    • @UpdateViewDesign(|text)
    • @ExpandNameList(|text; text)
    • @CRLList(|[keyword]; fieldname; start at; max return)
      IssuedBy
      ThisUpdate
      ThisNext
      RevokedDate
      RevokedSerialNumber
    • @DbAdminServer
    • @IsDbPrimaryAB
    • @IsSoftDeleteEnabled
    • @GetSoftDeleteExpireTime
    • @SetSoftDeleteExpireTime(|number)
    • @CertBlobPack(|blob item name; blob type; prefix; number)
      @CertBlobUnpack(|blob item name; blob type; prefix; number)
    • @IsXACLEnabled
    • @MailFilterStopProcessing
    • @DbBuildVersion
    • @CRL(|[Export]; fileName)
    • @RecoverIDFile(|[keyword]; backupfilename; recoveredfilename; newpassword)
    • @WhichFolders
    • @ShowParentPreview
    • @ManageECL(|server : database)




    Habt Ihr weitere undokumentierte @Function- oder LotusScript-Formeln?
    Bitte sendet sie mir zu, damit ich sie veröffentlichen kann...