Domino 9 und frühere Versionen > ND6: Entwicklung

Umgang mit Arrays in Formelsprache

(1/1)

PeterD2:
Sorry, bin ein bischen aus der Übung was @Formelsprache angeht. In meiner Datenbank haben die Dokumente Reader-Felder mit mehreren Einträgen. Sagen wir mal "Deutschland, Bayern, München".

Letztlich muss ich mit einem Agenten (Skriptsprache) die Dokumente, auf die z.B. Bayern zugreifen kann, weiterverarbeiten. Ich hatte mir gedacht zunächst eine View zu bauen, die mir immer den zweiten Wert aus dem Reader Feld in einer Spalte ausgibt, um dann in einer NotesViewEntryCollection über GetAllEntriesByKey darauf zuzugreifen. Währe zu Kontrollzwecken der letztlich bearbeiteten Dokumente ganz nett gewesen, bin aber daran gescheitert mit der Formelsprache jeweils (nur) den zweiten Wert des Reader Feldes auszugeben.

Wenn ich das aber hinkriegen würde, könnte ich in einem Profil Dokument die Namen der jeweils durch meinen Agenten zu bearbeitenden Gruppen als Mehrfachwerte hinterlegen (es handelt sich IMMER um die zweite Gruppe im Reader Feld) und dann so etwas in der Art machen:


--- Code: ---migration_groups=ProfileDoc.GetItemValue("migration_groups") 'Typ Variant, der alle zu bearbeitenden Gruppennamen enthält
Set MyDB=getMyDB(session,MyProfile)
Set viewRequests=MyDB.GetView("My_View")
Set ViewCollection=viewRequests.getAllEntriesByKey(migration_groups,False)
--- Ende Code ---

Das scheitert momentan alles nur daran, dass ich es nicht hinbekomme genau den jeweils zweiten Eintrag aus dem Reader Feld der zu bearbeitenden Dokumente in einer Spalte der View anzuzeigen.

Bin für alle Tipps dankbar, auch wenn sie das Problem auf andere Weise angehen. Ich möchte nur nicht mit einem db.search() durch die ganze Datenbank nudeln um die passenden Dokumente zu finden, da sie sehr groß ist.

Danke im Voraus

DerAndre:
Feldname[2] sollte helfen. Weiß nur gerade nicht ob Base 0 oder 1...


P.S. Du kannst auch mit @Subset arbeiten.

koehlerbv:
Alternativ:
@Subset (@Subset (Feldname); 2); -1)

Bernhard

PeterD2:
Danke schon mal, die View funktioniert so (hatte es bisher immer mit runden Klammern versucht  ::) )

Jetzt ist nur noch das Problem, dass die Mehrfachwerte in meiner Variant Variable offensichtlich nicht geeignet sind um ein getAllEntriesByKey direkt damit durchzuführen. Mein neues Problem lautet also jetzt: Wie mache ich aus der Variant Variable ein Array?

LN4ever:
Hallo Peter,

da wirst du wohl kaum um ein

ForAll Einzelwert in mygrationgroups
   Set ViewCollection=viewRequests.getAllEntriesByKey(Einzelwert,False)
...
End ForAll

herumkommen.

Gruß

Norbert

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln