Ok, ich hab's denke ich.
Für alle die es interessiert: Ich habe mich an der Aktion "Add Sender To Address Book" im R5 Mail orientiert.
Und dabei noch einen Bug festgestellt.
Originalformel:
if (window.location.host=="127.0.0.1:89") {
alert("This action is not available while using Domino Off-Line services..");
}
else {
var pathname = window.location.pathname;
var path = pathname.substring(0,(pathname.lastIndexOf('.nsf')+5));
var url = path + 'wAddressSave?OpenAgent&UNIDs=';
var docs = getSelectedDocs();
if (docs.length != 0) {
for (var i = 0; i < docs.length; i++) {
url += '%%' + docs;
}
url += "&Return="+pathname + window.location.search;
window.location.replace(url)
}
else {
alert("You must select one or more documents first.");
}
}
Korrekt muss es aber heißen:
if (window.location.host=="127.0.0.1:89") {
alert("This action is not available while using Domino Off-Line services..");
}
else {
var pathname = window.location.pathname;
var path = pathname.substring(0,(pathname.lastIndexOf('.nsf')+5));
var url = path + 'wAddressSave?OpenAgent&UNIDs=';
var docs = getSelectedDocs();
if (docs.length != 0) {
for (var i = 0; i < docs.length; i++) {
url += '%%' + docs;
}
url += "%%&Return="+pathname + window.location.search;
window.location.replace(url)
}
else {
alert("You must select one or more documents first.");
}
}
Im aufgerufenden Agenten kann man dann wie folgt die UNIDs extrahieren und dann so an die Dokumente kommen:
Sub Initialize
Dim session As NotesSession
Dim docCtxt As NotesDocument
Dim query_string As String
Dim strUNIDS As String
Dim strUNID As String
Dim strNameParseFormula As String
Set session = New notessession
Set docCtxt = session.DocumentContext
query_string = docCtxt.getitemvalue("Query_String")(0)
If Instr(query_string, "&UNIDs=%%") Then
strUNIDS = Strright( query_string, "&UNIDs=%%")
strUNIDS = Strleft( strUNIDS, "&Return=")
strUNID = Strleft(strUNIDS, "%%")
While Not(strUNID = "")
strUNIDS = Strright(strUNIDS, "%%")
'Hier dann Call ProcessDoc( strUNID )
strUNID = Strleft(strUNIDS, "%%")
Wend
Else
'Ausnahmebehandlung: Keine Doc-IDs vorhanden
End If
End Sub
Wie man sieht, ist der Bugfix notwendig, denn sonst wird wegen
strUNID = Strleft(strUNIDS, "%%")
die letzte UNID nicht mehr gefunden, da ja im Originalcode
url += "&Return
verwendet wurde, d.h. hinter der letzten UNID fehlt %% und so findet er nix mehr.
Andreas