Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: rasacani am 09.03.07 - 18:43:26

Titel: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 18:43:26
Hallo


Wir versuchen aus der Names.nsf des Servers eine Datei zuerzeugen, die die Namen und die Mail-Adressen beinhalten.

Zu Fuß (Datei/Export uso) ist das auch kein Problem. Wir möchten aber einen Agenten täglich laufen lassen so das eine aktuelle Datei vorliegt.

Unsere Versuche gehen über:
      @Command([FileExport];"ASCII";"test.txt");
      oder
      @Command([FileExport];"Tabular Text";"c:\test.txt"

Das Ergebnis ist aber nur:
       Bearbeitet alle Dokumente in der Datenbank: insgesamt 7258
       7258 Dokumente gefunden, die die Suchkriterien erfüllen
       Fehler in Formel: @Befehle und andere UI-Funktionen sind in diesem Suchtyp nicht zulässig; bitte wählen Sie 'Keines' als Laufzeitziel.
       0 Dokument(e) wurden durch die Formel geändert


Kann jemand helfen?

Gruß

Rainer
 
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: m3 am 09.03.07 - 18:47:05
Was ist an
Code
Fehler in Formel: @Befehle und andere UI-Funktionen sind in diesem Suchtyp nicht zulässig; bitte wählen Sie 'Keines' als Laufzeitziel.
unverständlich?
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 18:51:53
Das "Ergebnis" ist der Auszug aus dem Log des Agenten.   -->  verstehen wir auch nicht

@Command([FileExport];.....    ist die Aktion im Agent
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 19:06:56
Heißt das vieleicht, daß dieser Befehl in einem Agent nicht verwendet werden darf?

Wenn ja wie kann ich sonst einen täglichen Export anstarten?
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 19:29:46
Das geht mit einem scheduled agent nur mit LotusScript (oder Java).

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: jo am 09.03.07 - 19:35:08
Hallo rasacani,


normalerweise gebe ich namenlosen Postern keine Antwort....

Aber du tust mir leid, hast keinen Namen und ...wenig... Ahnung. Kannst nix dafür.

"@Befehle und UI-Funktionen sind nicht zulässig..." heisst: Man kann UI (User-Interface/Benutzer-Oberfläche)-Funktionen nicht am Server starten, der hat halt kein User-Interface.... der Arme.

@Command (übersetzt: @Befehle) gehen an einem periodischen Agenten am Server auch nicht, weil: er hat kein UI (siehe oben). Das die Übersetzung völliger Blödsinn ist, steht ausser Frage, kann aber keiner von uns ändern....

Das wollte Martin sagen, der Fehlerhinweis ist (ausnahmsweise) recht klar.

P.S. Ich werde mich in nächster Zeit etwas den armen Anfängern widmen, ich hab jetzt auch sowas bei mir sitzen... Wofür ich 9 Kurse a 2-5 Tage gebucht habe und ca. 3-12 Jahre Erfahrung sammeln musste, lernt man jetzt in 3 Tagen Seminar, glaubt der Chef....

Und Script lernt man eh nebenbei....

Jo
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 19:44:11
Danke Bernhard für die klare Antwort.

Sie ist für mich zwar unbefriedigend, weil ich LS hasse und Java nicht kann,
aber ich such dann noch nach einem anderem Lösungsweg.

Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 19:45:11
normalerweise gebe ich namenlosen Postern keine Antwort....

Nenn ihn doch einfach beim Namen:
Kann jemand helfen?
Gruß
Rainer

Abgesehen davon: Dein angekündigtes Bemühen würde uns sehr freuen!

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: jo am 09.03.07 - 19:50:20
Hallo Rainer,

hast ja doch einen Namen  :D

Warum hasst du LS ?! Darfst du nicht  :o Du wirst ohne wohl kaum auskommen  :P

Trau dich, du kannst hier weit mehr Hilfe bekommen als andere vor dir.

Jo
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: jo am 09.03.07 - 19:54:29
@Bernhard: Ich weiss nicht, wo du die Zeit hernimmst, für mich ist das leider eine zusätzliche Belastung...  so gern ich würde...  :-\

werd aber nie wieder mit dir streiten  :love:
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: m3 am 09.03.07 - 19:59:09
Sie ist für mich zwar unbefriedigend, weil ich LS hasse und Java nicht kann,
aber ich such dann noch nach einem anderem Lösungsweg.
Na dann bleibt noch ein LSX, in C geschrieben, als mögliche Lösung  ;D (http://www.tratschen.at/images/smilies/duckundweg.gif)
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 20:00:38
Hallo Jürgen,

Du kannst mit mir auch ruhig streiten - ich habe doch die Wahrheit oder das perfekte Benehmen nicht gepachtet.
Die Zeit: Es ist manchmal ganz gut, etwas Abstand zu einem schwierigen Problem zu bekommen. Das Forum zwingt dann zu diesem Abstand und man kommt mit völlig neuen Gedanken zurück zum eigentlichen Problem. Immer passt das aber natürlich nicht ...

Rainer verstehe ich aber überhaupt nicht mehr ...

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 20:04:19
In Cobol oder Assembler habt Ihr nichts anzubieten?  ;)

Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 20:04:54
Martin, LSX erfordert dann ja doch noch LotusScript  ;D  Dann schon lieber ein netter Hook, der immer, wenn ein Personendokument im Domino Directory geändert wurde, zuschlägt. Es gibt da schon noch Wege, die vollkommen ohne LS auskommen  ;D Visual Basic fällt ja aus, aber Delphi via COM würde es auch tun.

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: jo am 09.03.07 - 20:15:37
Hallo Rainer,

da würd mir jetzt auch noch einiges einfallen  >:D

Aus welcher Schiene stammst du, sag jetzt nich GrXChange  ;D

@Bernhard: bin Jo, nicht Jürgen  :(

hmpff, kein (gehbarer) Weg führt an LS vorbei, scusi !

Jo
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 20:19:31
Hallo JO

Ich gehöre zu den Dino-Programmieren, die sich bis vor kurzem noch mit dem Zeug beschäftigt haben.


Gruß Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 20:21:48
Jetzt wird es lustig:
@Bernhard: bin Jo, nicht Jürgen  :(

Hallo Arne,

da war bloß nirgends mehr ein Link auf RSS-Feeds zu finden... Ich hab dann halt die Parameter auf atnotes.de überprüft, sonst hätt ich Manfred noch wecken müssen: "...dein RSS-Reader tut nicht mehr..."  ;D

Viele Grüße
Jürgen

Was nun?

Bernhard (der wirklich so heisst)
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 09.03.07 - 20:40:34
Ich gehöre zu den Dino-Programmieren, die sich bis vor kurzem noch mit dem Zeug beschäftigt haben.

Ich komme ursprünglich auch aus der Ecke Assembler, Pascal, C. Und wenn Du mit "Hass" an eine andere Sprache herangehst, dann hast Du ganz schlechte Karten. LotusScript beisst nicht, verursacht keine Pickel und ist ein mächtiges Werkzeug.

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 09.03.07 - 20:54:31
Bisher kam ich mit der Formelsprache ganz gut klar. Aber ich werd mich auch da durchbeißen.
Bestehende Scripts hab ich meistens verstanden was sie machen. Bei Neuen tu ich mich noch schwer (Welchen Befehl / Klasse nimmt man den jetzt?)

Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: jo am 10.03.07 - 18:40:47
@Bernhard: Ich heisse Jürgen, reagiere aber nur auf Jo....

@Rainer: Im Designer gibts ein Übersicht: "Domino Objekte für LotusScript und OLE". Das sieht man (recht) gut, wie die Klassenvererbung läuft.

d'r Jo (der Jürgen heisst...)  >:D

Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 20.03.07 - 21:03:35
Hallo

Da bin ich wieder. Ich habe mich getraut (LS). Ich gebe eine Excel-Datei aus und es klapp auch, aber nicht auf dem Server. Ich habe hier gelesen, das man als alterative auch eine CSV-Datei ausgeben kann. Dies habe ich dann promt eingebaut

-->  OLE: Automation object error       -->       ???

hier die Stelle wo ich es eingebaut habe:

   Else  ' alle Documente
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set abc = fs.CreateTextFile("c:\Raitest.csv", True)
     
      Set otherdoc = otherview.GetFirstDocument 
      While Not otherdoc Is Nothing 
         abc.writeline otherdoc.columnvalues(1)     
         For colmn = 0 To Ubound(otherview.Columns)
           
            MulCol = otherdoc.columnvalues(colmn)
            If Isarray(MulCol) Then
               ColCat = Cstr(MulCol(0) )
               For ColNum=1 To Ubound(MulCol)
                  ColCat=ColCat & " | " & Cstr(MulCol(ColNum))
               Next ColNum
               
               xlApp.cells(row,colmn+1) = ColCat
            Else
               xlApp.cells(row,colmn+1) = Cstr( MulCol )
            End If
      'xlApp.cells(row,colmn+1) = otherdoc.columnvalues(colmn)     
         Next   
         row=row+1 
         Set otherdoc = otherview.GetNextDocument(otherdoc)     
      Wend

      abc.close
   End If

Was kann das denn schon wieder sein?

Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: m3 am 20.03.07 - 23:30:01
1) Ist das überhaupt ein Windows-Server, auf dem der Agent läuft?
2) Welches Windows am Server?
3) In welcher Zeile kommt der Fehler?

MS meint (http://support.microsoft.com/kb/129252) zu der Fehlermeldung:
Zitat
Dieses Verhalten tritt auf, wenn Sie für das Klassenargument der CreateObject- oder der GetObject-Funktion einen falschen Wert verwenden. Das Klassenargument besteht aus dem Name der Anwendung, die das Objekt (Anwendung) bereitstellt, dem eine Periode und der Typ des Objekts Klasse folgen, um (Objecttype) zu erstellen, oder zurückzugeben.

Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 21.03.07 - 19:22:59
Hallo

Der Agent soll später auf einem Windows-Server laufen. In meinem Test läuft er noch Lokal.

Der Fehler kommt bei        abc.open


Dein Zitat klingt wunder schön, aber es verwirrt mich nur noch mehr. Wenn du den Fall verfolgt hast ist dir sicher aufgefallen, daß ich mit LS biher noch nicht viel am Hut hatte.  :-:


Rainer
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 26.03.07 - 23:11:18
Zwei Dinge, Rainer: abc.open (wo angeblich der Fehler provoziert wird) ist in Deinem geposteten Code nicht zu finden.
Weiters: Warum machst Du das via Windows und FSO und nicht direkt über Notes-Bordmittel (DesignerHelp-Stichwort: "File Handling")?

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 27.03.07 - 09:49:35
Hallo

Ich habe Das Skript noch einmal umgebaut:

Sub Initialize
   Dim s As New notessession
   Dim db As notesdatabase
   Set db= s.currentdatabase
   Dim uiw As New NotesUIWorkspace
   Dim otherdoc As NotesDocument
   Dim otherview As NotesView
   Dim othercol As NotesDocumentCollection
   Dim uiv As notesuiview
   Set uiv = uiw.currentview
   Dim MulCol As Variant
   
   currentviewname="_Personen"
   
   Set otherview = db.GetView(currentviewname)
   
'     alle Documente
'                                                                                                                             Datei zuweisen
   Open "E:\Domino\data\Adressbuch.txt" For Output Access Write As #1     ' auf Server
'                Open "C:\Adressbuch.txt" For Output Access Write As #1                          ' aus Aktionen
'                                                                                                                            Ansicht lesen     
   Set otherdoc = otherview.GetFirstDocument 
   While Not otherdoc Is Nothing 
'                                                                                                                            Datei schreiben
      Print #1,otherdoc.columnvalues(1)
      Print #1, otherdoc.columnvalues(3)
'                                                                                                              Ansicht lesen nächster Satz   
      Set otherdoc = otherview.GetNextDocument(otherdoc)     
   Wend
'                                                                                                                             Datei schließen
   Close #1
   
End Sub


Starte ich den Agenten per Hand an läuft er. Signiere ich die Datenbank und lasse den Agenten mit dem Schedul laufen bekomme ich folgende Fehlermeldung:

Error creating product objekt     ???

Kann das ein Rechteproblem sei?
Was kann man tun?

Gruß Rainer

 
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 27.03.07 - 10:02:34
Scheduled agents dürfen keine Frontend-Objekte beinhalten. Du verwendest davon allein drei Stück ...

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 27.03.07 - 10:10:36
Danke für die schnelle antwort.

Kann ich das umgehen in dem ich einem Agenten schreibe der diesen unveränderten Agenten aufruft?

Gruß Rainer


Titel: Re: Agent: Names.nsf -Datei
Beitrag von: DerAndre am 27.03.07 - 10:16:36
Nein,

weiel Du dann immernoch Frontend-Objekte benutzt.
Du mußt den Agenten so umschreiben, das nichts mehr mit UI drin vorkommt

Also ohne UIWorkspace UIview
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 27.03.07 - 10:57:27
Ich hab's ja versucht  :-:

wie Andre geschriebenhat habe ich mir diese UI-Dinge angesehen unbeschlossen sie aus dem Skript zu entfernen.

1. Test (lokal)                                  -->   es geht immer noch

2. Test (auf Server zeitgesteuert)   -->   operation is disallowed in this session

Warum kann das nicht überall gleich laufen


Gruß Rainer 
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: koehlerbv am 27.03.07 - 11:12:46
Da Dein Agent eine Datei ins Filesystem des Servers schreiben soll, deutet diese Meldung darauf hin, dass Du dem Agent nicht genug Rechte ("uneestricted"!) gegeben hast.

Bernhard
Titel: Re: Agent: Names.nsf -Datei
Beitrag von: rasacani am 27.03.07 - 11:24:23
Das war's

Die Rechte des Agenten. Vielen Dank für die für die vielen Tip's.



Gruß Rainer    ;D ;D ;D ;D ;D ;D