Autor Thema: @NameLookup in LS / Namensabgleich Excelliste mit Notes Directory  (Gelesen 3089 mal)

Offline Sascha Seipp

  • Aktives Mitglied
  • ***
  • Beiträge: 139
  • Geschlecht: Männlich
Frohe Weihnachten allerseits!

Ich hab eine Excelliste, die in einer Spalte das Firmenkürzel eines Users und in der nächsten den Namen (<Vorname> <Nachname>) enthält (und noch Diverses andere mehr). Damit sind bei uns alle User eindeutig identifiziert.
Um nun diesen Textwerten den jeweils passenden Notes-FullName zuzuweisen, hab ich folgendes in der Formelsprache geschrieben, was auch funktioniert (ob's effizienter geht, hab ich erstmal ignoriert):
Code
FIELD Erg := Erg;
VarFullNames := @NameLookup([ForceUpdate];testname;"FullName");
VarCompanyNames := @NameLookup([ForceUpdate];testname;"CompanyName");
@For(n :=1; n<=@Elements(VarFullNames); n:= n + 1;
	full := @If(n=1;VarCompanyNames[n] + "|" + VarFullNames[n]; full : (VarCompanyNames[n] + "|" + VarFullNames[n])));
temp := "";
@For(i := 1; i <= @Elements(full); i := i + 1;
	@If(@Left(full[i];"|") = testfirma;
		   temp := @RightBack(full[i];"|");
		   temp));
@SetField("Erg"; temp)

(Reingegeben werden in testname und testfirma die Daten aus der Excelliste, raus kommt der Fullname des Adressbucheintrages).

Nun ist der Agent, der die ganzen Exceldaten einmalig ins Notes reinziehen soll, aber in LotusScript angefangen und soweit auch ganz gut gängig (exklusive der Namensumsetzung).

Wie kann ich also obiges Konstrukt in LotusScript umsetzen bzw. anderweitig dem Agent mitgeben?

Wie gesagt, das Ganze muß eigentlich nur einmal laufen (dann aber mit ein paar Tausend Excel-Datensätzen), insofern wäre die Effizienz nicht so sehr das Problem...

Bin für Ideen dankbar!

Ciao
Sascha

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Am einfachsten ist es wenn du @NameLookup über Evaluate in deinem Script aufrufst.

So z.B.

...
Dim retValue As Variant
Dim testname As String

testname = "Vorname Name"
varRetValue = Evaluate({@NameLookup([ForceUpdate];} & testname & {;"CompanyName")})
...

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Sascha Seipp

  • Aktives Mitglied
  • ***
  • Beiträge: 139
  • Geschlecht: Männlich
Moin!

Kleiner Fallstrick:
Es hilft (wie an anderer Stelle im Forum gefunden) tatsächlich ungemein, die Formel vom eigentlichen Evaluieren zu trennen:

formula = {@NameLookup([ForceUpdate];"} & testname & {";"CompanyName")}
varRetValue = Evaluate(formula)

Vorher hab ich es nicht zum Laufen bekommen, aber so geht es tadellos!

Insofern vielen Dank für die prompte Hilfestellung!

Ciao
Sascha

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Klar, du hast recht. Im vorweihnachtlichen Stress sind die Anführungszeichen unter den Tisch gefallen. Sorry.

Für die Fehlersuche hilft es natürlich die eigentliche Formel in eine Variable zu schreiben und dann diese Variable Evaluate zu übergeben. Im normalen Betrieb ist es egal wie du das Ganze schreibst.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz