Hallo Hendrik,
ich habe es eben nochmal im Demoprojekt und anschließend in unserem Projekt versucht. Anscheinend hatte ich in meinem Test einen Logikfehler :smileyblush: Das Feld wird befüllt.
Die Verwirrung hing mit meinem ursprünglichen Problem zusammen. Ich hatte versucht, einen Link innerhalb eines CMS_INPUT_DOM zu bearbeiten und die Änderungen wurden nicht übernommen. Bei einer tieferen Analyse erschien es mir dann so, dass der Fehler im Bearbeiten der TargetReference liegt. Mit dem "Vorurteil" habe ich dann auch bei einem kleiner gebrochenen Beispiel (Eine simple Seitenvorlage mit nur einem FS_REFERENCE-Feld) ein Fehlverhalten gesehen, das nicht wirklich an dieser Stelle liegt.
Nach der Erkenntnis, dass das Problem nicht in der TargetReference liegen kann, konnte ich vorhin meinen Logikfehler finden. Ich poste das Snippet mal mit rein. Eventuell hilft das zukünftig jemandem:
FormField domField = formData.get(language, "pt_dom");
DomElement dom = (DomElement) domField.get();
DefaultDomNode domElement = dom.getRoot();
for (DomNode node : domElement.getChildren(true)) {
if (node.getNodeType().equals(DomNodeType.LINK)) {
LinkDomNode linkNode = (LinkDomNode) node;
Link link = linkNode.getLink();
FormData linkFormData = link.getFormData();
FormField domLinkField = linkFormData.get(null, "lt_siteStoreRef");
TargetReference domReference = (TargetReference) domLinkField.get();
domReference.set(pageRef);
domLinkField.set(domReference);
link.setFormData(linkFormData);
//linkNode.setLink(link); //Die Methode hatte ich fälschlicherweise aufgerufen. Das führt zur Fehlermeldung "unkown link template referenced: ''" und einem kaputten Link
}
}
Vielen Dank für die Unterstützung 