Hallo Tobi,
ich habe es anders verstanden.
Ausgehend von
... will ich dem ContentSelect übergeben, damit mir der entsprechende Datensatz ausgeliefert wird ...
müsstest Du auch wirklich das ContentSelect für jeden Wert aufrufen Ein
$CMS_VALUE(cs_ad_mapping)$
reicht da m.E. nicht.
Wir haben so etwas wie folgt umgesetzt:
Aufruf in der Seitenvorlage:
Für jeden Eintrag von dem der Datensatz ermittelt werden soll, wird ein Script aufgerufen (bei uns wird die jeweilige Tabelle, eine ID des zu ermittelnden Datensatzes und der Resultname des Contentselect übergeben)
$CMS_RENDER(script:"SCRIPTNAME", TABELLE:"VORDRUCKE",RESULTNAME:"cs_VD",DSID: VDID)$
Das Script sieht wie folgt aus
//!BeanShell
// Stand: 25.09.2013
out = new StringBuilder();
out.append("<CMS_HEADER>");
out.append(" <CMS_FUNCTION name=\"contentSelect\" resultname=\"").append(RESULTNAME).append("\" context=\"PAGE\">");
out.append(" <CMS_VALUE_PARAM name=\"value_bez\" value=\"").append(DSID).append("\" />");
out.append(" <CMS_PARAM name=\"schema\" value=\"SFO\" />");
out.append(" <QUERY entityType=\"").append(TABELLE).append("\">");
out.append(" <FILTERPARAM parameter=\"value_bez\" datatype=\"java.lang.String\" />");
out.append(" <EQ attribute=\"FS_ID\" parameter=\"value_bez\"/>");
out.append(" </QUERY>");
out.append(" </CMS_FUNCTION>");
out.append("</CMS_HEADER>");
result.setValue(out.toString());
Alternativ kannst Du dir auch erst alle Datesätze holen und z.B. in einer Map speichern (mit Name, Datensatz - geht nat. nur, wenn der Name eindeutig ist). Dann kannst Du über dein Array iterieren und in der Map nachsehen, ob der Name darin enthalten ist.
Welcher Weg performanter ist hängt sicher davon ab, von wie viel Werten Du den Datensatz haben möchtest und wie viele Datensätze vorhanden sind.
Aber vielleicht habe ich dein Anliegen auch falsch verstanden
Grüße Andreas