Datenbank zugriff per Agent

  • Hallo Hallo,


    Ich hab nen Agenten der eine Email mit einem Standart Text verschickt und einem Preis der sich in einer anderen Domino Datenbank befindet...


    Laut Hilfe sollte das mit folgendem befehl klappen, aber die Syntax ist mir nicht so ganz klar...


    @DbLookup( Klasse : Cache ; Server : Datenbank ; Ansicht ; Schlüssel ; Feldname ;)


    Meine Eingabe:


    Klasse: "Notes" Da kann ja irgendwas stehen oder??
    Cache: NoCache
    Server: Localhost (weil ist noch auf meinem Rechner zum Testen)
    Datenbank: Test
    Ansicht: Heißt auch Test
    Schlüssel: Kein plan was der bedeutet
    Feldname: ek heißt da Feld mit dem Preis


    hier noch mal der code

    Code
    @DbLookup( "Notes" : NoCache ; Localhost : "Preisliste für Lizenzen" ; Test ; "" ; ek ; "€" ); [IncludeDoclink]);


    Falls ihr noch andere Infos braucht um mir zu helfen einfach kurz schreiben...


    Danke schon mal im voraus !


    Mfg Fox

  • hi,


    nun denn, der dblookup sollte ungefähr so aussehen:


    @DbLookUp ( "": "NoCache"; <replik-id der ziel-db>; "<ansicht>"; "<identifier>"; "<feldname>")


    vielleicht zur info:
    wenn du die replik-id verwendest, sparst du dir die explizite benennung des servers und der datenbank ( ansonsten muss da stehen: "<notesserver-name>" : "<notesdatenbank-pfad>")


    fast alle angaben müssen als text, also in "" angegeben werden;


    als key (oder identifier) benötigst du den wert, der in der angegebenen ansicht in der ersten sortierten spalte steht - eine art unique key sozusagen )


    mit dem feldnamen liest du denn im gefundenen dokument das gewünschte feld aus.
    alternativ kannst du in der ansicht diesen wert in einer weiteren spalte anzeigen lassen und diese dann auslesen ( anstelle "<feldname>" dann <spalten-nr> )


    alles klar ? :)


    für weitere ideen würde man wohl den gesamten agenten-code benötigen.


    gruss, freddy

  • Klasse: "Notes" Da kann ja irgendwas stehen oder??
    nee, kann es nicht, aber Du kannst es weglassen wenn es Notes ist.
    Cache = "NoCache"
    als String mit ""
    Server: Localhost (weil ist noch auf meinem Rechner zum Testen)
    dann ist der Server "" und die DB sollteste auch mit angeben.
    also, mal ein Beispiel:

    Code
    @dblookup("Notes":"NoCache";"":"test.nsf";"TestAnsicht";"Schluessel","Rueckgabewert")


    Schluessel iss der Schluessel nach dem gesucht wird um das Dokument zu bestimmen. Muss in der ersten sortierten Spalte von der "TestAnsicht" stehen.
    Rueckgabewert ist entweder der Inhalt zu dem Dokument in der Ansichtspalte z.B. 5 bedeutet Inhalt der 5. Spalte oder ein Feldname aus dem Dokument z.B. "ek"
    Es klappt also mit dem Befehl, wenn man ihn denn auch richtig anwendet

  • Irgendwas scheint da nicht zu stimmen also mal ne kurze erklärung zu der Preis datenbank.


    Die Enthält folgende Spalten
    # = ID???
    Name= Name des Artikels
    Preis ek= Ek des Preises


    Ich will nun das der Agent mir zu einem Artikel einen Preis sucht wie kann ich ihm denn sagen er soll bsp nach hund oder kein plan was suchen??? Kann ich als Unique ID statt ner Zahl auch zb den Artikel hinschreiben z.b. Hund o. H2 oder so was??? wenn ich diese erste Spalte nicht löschen kann???
    Oder muss ich zwingen diese Nummern nehmen???


    Vielen Dank nochmal! :roll:

  • hi,


    der @dblookup verlangt zwingend nach der ersten sortierten spalte.
    wenn es die nummern nicht tun sollen, dann gilt hier:


    haste keine passende ansicht - mach dir eine !


    also bau dir eine ansicht nach bspw. artikelbez ( sollten dann allerdings eindeutig sein, die bezeichungen )
    und lass den lookup dort drüber laufen.


    beachte: jede weitere ansicht wirkt a bisserl negativ auf die gesamtperformance.


    gruss, freddy

  • So nun auf ein letztes mal,


    hab die erste Zeile prid genannt (Preisid) da stehen nun sachen wie TMCSMS oder FGGS1 kann ich die so machen wenn ich bei der Spalte sortieren eingeschaltet habe??? hier noch mal der quelcode des Agenten:

    Code
    @MailSend(email;"";"";"Lizenzerneuerungangebot an "+ namekunde + " gesandt";"";"Bitte die folgende Lizenz überprüfen!" + @NewLine + @NewLine + namekunde + @NewLine + typlizenz + @NewLine + @Text(Ablaufdatum)+ @NewLine + "Bitte bearbeiten"+ @NewLine+ @DbLookup("Notes":"NoCache";"":"test.nsf";"Test";prid;"ek"));


    Test ist Datenbank/Ansicht
    prid wie oben beschrieben...weiß der agent nun das er den prid durchsuchen soll??? der ist auch in der alten Datenbank aber das ist doch nicht weiter schlimm oder???


    Wenn nun nicht klappt hau ich den compuder zu schrott :hammer: und mach feierabend :strike: