Beiträge von Westenseer

    Hallo,
    leider hilft auch das nicht. Komischerweise tritt bei mir (als Admin) der Fehler nicht auf. Scheint wohl irgendwie mit der Berechtigung zusammen zu hängen. Aber der User hat doch Editorenrecht auf die DB und im Dokument ist er als Autor gelistet und er kann das Dokument auch bearbeiten. Kommentiere ich den DocLink aus, läuft das Script auch einwandfrei durch. :(

    Hallo und einen Guten Morgen,
    ich hätte da gerne ein Problem.
    In einer Schaltfläche ist der unten stehende LS-Code definiert.
    Gemäß Debugger kommt der Fehler sobald der DocLink eingefügt werden soll und der User erhält
    sinngemäß Fehlermeldung "Sie sind nicht zur Ausführung dieser Aktion berechtigt"
    System: Notes 8.5.3 FP 6
    User hat "Editor"-Recht auf die Datenbank und ist im Dokument auch als Autor gelistet.
    Ähnlicher Code funktioniert in anderen DB's einwandfrei, warum in dieser DB nicht :(
    Hat Jemand einen Tipp für mich?


    Dim Session As New NotesSession
    Dim db As NotesDatabase
    Set db = session.currentdatabase
    Dim wks As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = wks.CurrentDocument
    Dim Doc As NotesDocument
    Set Doc = uidoc.Document
    .
    .
    .
    Dim Memo As NotesDocument
    Set Memo = New Notesdocument(db)
    Dim RTI As NotesRichTextItem
    Set RTI = New NotesRichTextItem(Memo, "Body")
    Memo.Subject = "neuer Eintrag ""Ideenmanagement"" "
    Call RTI.AppendText("neuer Eintrag "+Chr(34)+doc.Titel(0)+Chr(34)+" >>> ")
    Call RTI.AppendDocLink(Doc, db.Title)
    Call Memo.Send(False, Verantwortliche)

    Hallo,
    ich habe da einen Javaagenten in einer Notesdatenbank (Fahrtkostenabrechnung) laufen, der soll mir eine DTA-Datei erstellen.
    Führe ich diesen Agenten unter Notes aus, arbeitet er einwandfrei. Lade ich die DB aber aus dem Web (egal, ob über Mozilla oder Internet Explorer), schreibt er mir die DTA-Datei nicht
    dahin wo ich's gern hätte (C: oder D:); sondern es geht nur wenn ich ohne Laufwerksangabe arbeite, dann schreibt er die Datei auf den Notesserver.
    Ich führe den Agenten unter meinem Namen als Webbenutzer aus.
    Liegt es eventl. an fehlenden Zugriffsrechten ? Ich hätte erwartet, dass ich zumindest auf C: bzw. D: schreiben könnte.


    Gruß
    Harald



    import lotus.domino.*;
    import java.util.* ;
    import java.text.*;
    import java.io.File;
    import java.io.FileWriter;


    public class JavaAgent extends AgentBase {


    public void NotesMain() {


    try {


    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    Database db = agentContext.getCurrentDatabase();


    DateTime dt = session.createDateTime("Today");
    SimpleDateFormat sdf = new SimpleDateFormat( "ddMMyy" );


    Document Buchungsnachweis = db.createDocument();
    Buchungsnachweis.replaceItemValue("Form", "(Buchungsnachweis)");
    Buchungsnachweis.replaceItemValue("Datum", dt.getLocalTime() );
    RichTextItem Empfänger = Buchungsnachweis.createRichTextItem("Empfänger");
    RichTextItem Verwendungszweck = Buchungsnachweis.createRichTextItem("Verwendungszweck");
    RichTextItem Betrag = Buchungsnachweis.createRichTextItem("Betrag");
    RichTextItem Konto = Buchungsnachweis.createRichTextItem("Konto");


    View view = db.getView("Profile");
    Document profilDoc = view.getFirstDocument();
    Item item = profilDoc.getFirstItem("Absender");
    String Absender = item.getText();
    Absender = Absender.toUpperCase();
    item = profilDoc.getFirstItem("Bankleitzahl");
    String Bankleitzahl = item.getText();
    item = profilDoc.getFirstItem("Bankkonto");
    String Bankkonto = item.getText();
    item = profilDoc.getFirstItem("Laufwerk");


    String Datei = "D:\\DTAUS0.TXT";


    String A_Satz;
    String C_Satz;
    String E_Satz;


    Double Blz = null;
    long Bankleitzahl1 = 0;
    Blz = Double.valueOf(Bankleitzahl);
    Bankleitzahl1 = 0;
    long Betrag1 = 0;
    long Kontonummer1 = 0;
    Double Kto = null;
    int Anzahl = 0;
    String B ;
    String Spaces ;
    double BSumme = 0 ;
    String strAnzahl = null ;


    String Ersteller = agentContext.getEffectiveUserName();


    File file;
    file = new File(Datei);
    FileWriter out;
    out = new FileWriter(file);



    // Erstelle DatenSatz_A
    Date sdt = new Date();
    String strHeuteddmmyy = sdf.format( sdt ) ;


    A_Satz = "0128"+"A"+"GK"+Bankleitzahl+"00000000"+Absender+strHeuteddmmyy+" "+Bankkonto+"0000000000 1";
    A_Satz = A_Satz.toUpperCase();


    out.write(A_Satz);


    //diverse weitere Handlungen


    out.flush();
    out.close();

    Hallo,
    die ganzen Reparaturprogramme haben nicht genützt.
    Habe jetzt aber den Fehler gefunden.
    Da gibt es eine Datenbank "Directory Assistance", dort hatten wir neben diversen Konzernadressbücher auch unsere Names.nsf mit eingebunden und.......
    das war das Problem. Names.nsf dort disabled und schon funktionierte alles wieder einwandfrei.
    Habe zwar keine Ahnung warum eine dort aktivierte Names.nsf derartige Auswirkungen hat, aber Problem gelöst und das ist die Hauptsache.
    Vielleicht kennt ja Jemand die Zusammenhänge und postet es hier.
    Gruß
    Harald

    Hallo, ich habe da ein großes Problem mit unserem Server.
    Der startet seine Tasks nicht mehr freiwillig.
    Ich habe NFIXUP, NCOMPACT und NUPDALL drüber laufen lassen und bekam beim NUPDALL einige Fehlermeldungen (invalid collection header). :cursing:
    Die entsprechenden Ansichten sind also beschädigt, die Reparaturprogramme helfen nicht. X(
    Was gibt es dann noch an Möglichkeiten, diese Ansichten zu reparieren ?
    Weiß Jemand Rat ?


    Gruß
    Harald

    mecker bekam ich nicht, ich hatte mir im Agenten nach Feldänderung das Feld erneut ausgelesen und mir im Log ausgeben lassen, der Wert war korrekt.
    Wenn ich danach das Dokument öffnete, war der Feldwert jedoch der alte.


    Habe jetzt den Agenten dahin gehend geändert, dass er sich zuvor das nächste Doc holt.
    Dennoch läuft der serverbasierte Agent nur einmal.
    habe mir auch mal den Count ausgeben lassen. Antwort = 1, obwohl ich vier Dokumente gewählt hatte ?

    Ist klar, werde ich mal anpassen und mir vorher das nächste Doc holen.
    Das mit den zwei Agenten habe ich gemacht, weil mir der Agent sonst das bearbeitete Dokument nicht sichern wollte.
    Nur wenn ich das Dokument geöffnet hatte (also in der Maske den Agenten aufgerufen habe) sicherte er auch die Änderungen, aus der Ansicht funktionierte das nicht.
    Eine bessere Lösung fiel mir nicht ein (bin leider noch nicht so fit) :(


    hier mal der Code des aufgerufenen Agenten:


    import lotus.domino.Agent;
    import lotus.domino.AgentBase;
    import lotus.domino.AgentContext;
    import lotus.domino.Database;
    import lotus.domino.Session;
    import lotus.domino.Document;


    public class ServerBasedAgent extends AgentBase {


    public void NotesMain() {


    Document parameter = null;
    try {
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    Agent ag = agentContext.getCurrentAgent();
    Database db = agentContext.getCurrentDatabase();
    String noteID = ag.getParameterDocID();
    parameter = db.getDocumentByID(noteID);
    parameter.replaceItemValue("Deleted", "1");
    parameter.save (true,false);


    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    }

    ja, es ist eine Ansichtsaktion, eine eingebettete Ansicht verwende ich nicht.
    Klar, mit "keines" geht's natürlich nicht, habe das jetzt geändert und getestet.
    Aber die Auswahl funktioniert scheinbar nicht, der Agent ruft den serverbasierten Agenten genau einmal auf und verabschiedet sich dann.
    Die gesetzte Auswahl verschwindet, aber wirklich getan hat er nichts.
    Als noteID gibt er immer 116 aus, egal welches Dokument ich ausgewählt habe ?