Search the FirstSpirit Knowledge Base
Hi,
in den letzten Tagen haben sich einige Fragen aufgetan die jetzt alle hier landen, nicht wundern
Ich habe einen externen Dienst der mir Daten generiert die ich im Freigabeprozess darstellen muss. Ein Freigebender muss also bestätigen, dass die Daten so OK sind. Gibt es Beispiele wie ich eigenen Code (SWING?) in das UI bekomme oder wie finde ich hier einen Ansatz? Bisher bin ich noch etwas ratlos leider
MfG Marcus
Hallo Marcus,
hier nun ein kleines Beispiel wie du mit den Klassen und den FirstSpirit Eingabekomponenten so etwas ansastzweise lösen kannst:
final OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);
final ShowFormDialogOperation showFormDialogOperation = operationAgent.getOperation(ShowFormDialogOperation.TYPE);
showFormDialogOperation.setMultiLanguage(false);
final FormsAgent formsAgent = context.requireSpecialist(FormsAgent.TYPE);
String gomForm = getGomForm();
Form form = formsAgent.getForm(gomForm);
showFormDialogOperation.setTitle(title);
FormData newFormData = form.createFormData();
fillFormData(newFormData);
showFormDialogOperation.setFormData(newFormData);
showFormDialogOperation.setRuleset(getRuleset());
LanguageAgent languageAgent = context.requireSpecialist(LanguageAgent.TYPE);
Language masterLanguage = languageAgent.getMasterLanguage();
FormData formDataResult = showFormDialogOperation.perform(form, Arrays.asList(languageAgent.getMasterLanguage()));
Dein gomForm könnte dann zum Beispiel wie folgt aussehen:
<CMS_MODULE>
<FS_CATALOG name="wf_images" height="4" useLanguages="no" viewMode="symbols">
<LANGINFOS>
<LANGINFO lang="*" label="Images to check"/>
</LANGINFOS>
<TEMPLATES type="section">
<TEMPLATE uid="wf_image"/>
</TEMPLATES>
</FS_CATALOG>
</CMS_MODULE>
Die dazu gehörigen Regeln ( getRuleset() 😞
<RULES>
<RULE when="ONLOCK">
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY name="NEW" source="wf_images"/>
<PROPERTY name="EDIT" source="wf_images"/>
<PROPERTY name="REMOVE" source="wf_images"/>
</DO>
</RULE>
</RULES>
Und das SectionTemplate:
<CMS_MODULE>
<FS_REFERENCE name="wf_image" hFill="yes" imagePreview="yes" upload="no" useLanguages="no">
<FILTER>
<HIDE type="all"/>
<ALLOW type="media"/>
</FILTER>
<LANGINFOS>
<LANGINFO lang="*" label="Image"/>
</LANGINFOS>
<PROJECTS>
<LOCAL name=".">
<SOURCES>
<FOLDER name="root" store="MEDIASTORE"/>
</SOURCES>
</LOCAL>
</PROJECTS>
</FS_REFERENCE>
</CMS_MODULE>
Um das FormData zu befüllen kannst du nun die normalen Methoden eines FormData und der FormFields benutzen.
Da musst natürlich die Bilder erst mal als Media im MediaStore abgelegt haben. Wenn die Medien durch den Redakteur abgelehnt werden musst du sie nur noch im Anschluss entfernen.
Viele Grüße
Benjamin
Hallo Marcus,
ich bin mir nicht 100%ig sicher ob ich deine Frage richtig verstanden habe.
Du holst dir in einem Workflow Daten aus einer externen Schnittstelle und möchtest diese Daten dann durch einen Redakteur noch einmal sichten lassen bevor du sie weiterverarbeitest, oder?
Wenn das der Fall sein sollte:
Jeder Workflow hat ein eigenes Formular in dem der Redakteur Daten hinterlegen kann. Dieses Formular könntest du benutzen um die Daten aus der externen Schnittstelle anzeige zu lassen.
Alterantiv kannst du mit dem OperationAgent und darüber mit dem ShowFormDialogOperation und dem FormsAgent ein Formular erstellen und befüllen das du dann anzeigen lassen kannst. Darüber könntest du optionalerweise dem Redakteur auch die Möglichkeit geben die Daten anzupassen.
Beide Methoden hätten den Vorteil, dass sie nicht nur im SiteArchitect funktionieren würden, sondern auch im ContentCreator. Außerdem würde es keinen Stillbruch geben, da du weiterhin die FirstSpirit Eingabekomponenten benutzt.
Viele Grüße
Benjamin Nagel
Hi Benjamin,
danke für die ANtwort. Du hast das korrekt verstanden. Im Workflow werden Daten von einem externen Service abgeholt (in diesem Fall 30 Bilder) welche die kontrollierende Instanz sichten muss. Istd er Inhalt und diese Bilder alle OK kann es weiter gehen.
Workflows kamen in der DTA leider nicht drau (außer, dass es sie gibt). Wo finde ich denn am besten ein Beispiel, wie man das Formular generiert und bestenfalls sogar, wie ich drauf zugreife? ich glaube aber es gibt keine sinnvolle Möglichkeit 30 Bilder in einem FS Formular halbwegs sinnvoll anzuzeigen oder?
MfG Marcus
Hallo Marcus,
hier nun ein kleines Beispiel wie du mit den Klassen und den FirstSpirit Eingabekomponenten so etwas ansastzweise lösen kannst:
final OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);
final ShowFormDialogOperation showFormDialogOperation = operationAgent.getOperation(ShowFormDialogOperation.TYPE);
showFormDialogOperation.setMultiLanguage(false);
final FormsAgent formsAgent = context.requireSpecialist(FormsAgent.TYPE);
String gomForm = getGomForm();
Form form = formsAgent.getForm(gomForm);
showFormDialogOperation.setTitle(title);
FormData newFormData = form.createFormData();
fillFormData(newFormData);
showFormDialogOperation.setFormData(newFormData);
showFormDialogOperation.setRuleset(getRuleset());
LanguageAgent languageAgent = context.requireSpecialist(LanguageAgent.TYPE);
Language masterLanguage = languageAgent.getMasterLanguage();
FormData formDataResult = showFormDialogOperation.perform(form, Arrays.asList(languageAgent.getMasterLanguage()));
Dein gomForm könnte dann zum Beispiel wie folgt aussehen:
<CMS_MODULE>
<FS_CATALOG name="wf_images" height="4" useLanguages="no" viewMode="symbols">
<LANGINFOS>
<LANGINFO lang="*" label="Images to check"/>
</LANGINFOS>
<TEMPLATES type="section">
<TEMPLATE uid="wf_image"/>
</TEMPLATES>
</FS_CATALOG>
</CMS_MODULE>
Die dazu gehörigen Regeln ( getRuleset() 😞
<RULES>
<RULE when="ONLOCK">
<WITH>
<FALSE/>
</WITH>
<DO>
<PROPERTY name="NEW" source="wf_images"/>
<PROPERTY name="EDIT" source="wf_images"/>
<PROPERTY name="REMOVE" source="wf_images"/>
</DO>
</RULE>
</RULES>
Und das SectionTemplate:
<CMS_MODULE>
<FS_REFERENCE name="wf_image" hFill="yes" imagePreview="yes" upload="no" useLanguages="no">
<FILTER>
<HIDE type="all"/>
<ALLOW type="media"/>
</FILTER>
<LANGINFOS>
<LANGINFO lang="*" label="Image"/>
</LANGINFOS>
<PROJECTS>
<LOCAL name=".">
<SOURCES>
<FOLDER name="root" store="MEDIASTORE"/>
</SOURCES>
</LOCAL>
</PROJECTS>
</FS_REFERENCE>
</CMS_MODULE>
Um das FormData zu befüllen kannst du nun die normalen Methoden eines FormData und der FormFields benutzen.
Da musst natürlich die Bilder erst mal als Media im MediaStore abgelegt haben. Wenn die Medien durch den Redakteur abgelehnt werden musst du sie nur noch im Anschluss entfernen.
Viele Grüße
Benjamin
Hallo Marcus,
ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnte Benjamin dir bereits weiterhelfen? In diesem Fall wäre es super, wenn du seine "richtige Antwort" entsprechend markiest.
Viele Grüße
Michaela