Hallo Zusammen,
Ich baue akutell einen Workflow der einen Wert in den Metadaten setzt, welchen ich dann verwende um die Freigabe auf verschiedenen Webservern (Stage/Live) zu steuern. Dabei soll folgendes Feld geändert werden:
<CMS_INPUT_TEXT name="mt_releaseStatus" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="workflowFlag"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Im laufe des Workflow soll das Feld die Werte X, stage und live enthalten. Diese Werte werden über das Script wie folgt gesetzt:
if (m_pElement == null || !m_pElement.hasMeta() || !m_pElement.isLocked()) {
m_pContext.logWarning("Element is locked, null or has no Meta!");
return false;
}
FormData actualFormData = getFormData();
FormField<?> metaField = getFormField(actualFormData);
metaField.set(status);
m_pElement.setMetaFormData(actualFormData);
m_pElement.save("", false);
protected FormField<?> getFormField(FormData actFormData) {
return (actFormData != null && actFormData.get(m_pProject.getMasterLanguage(), METAFIELD) != null) ? actFormData.get(m_pProject.getMasterLanguage(), METAFIELD) : null;
}
protected FormData getFormData() {
return (m_pElement != null && m_pElement.hasMeta()) ? m_pElement.getMetaFormData() : null;
}
m_pElement ist dabei ein IDProvider.
Mein Problem ist nun, dass der Wert bei der ersten Ausführung noch geändert wird, danach aber keine Änderung mehr stattfindet, obwohl der richtige Wert in das metaField eingetragen wird. Auch das Speichern scheint zu funktionieren, da ich dieses in der Versionshistorie verfolgen kann. Kann es daran liegen, dass das Element sich im Workflow befindet und nie entsperrt und wieder gesperrt wird?
Vielen Dank und viele Grüße
Manuel Lehé