Search the FirstSpirit Knowledge Base
Wir haben in unserem Projekt seit Jahren einen besonderen Importer im Einsatz, der aus bestimmten Gründen nicht als CMS-Schedule modelliert wurde und bis heute sozusagen als Java stand-alone Programm seinen Dienst verrichtet.
Dieser verbindet sich programmatisch über die API mit dem CMS und erzeugt Datensätze in unseren Datenquellen - so weit so gut. Nun haben wir seit einiger Zeit ein Migrationsprojekt laufen, welches alle 4.X-Konstrukte, die nicht mehr kompatibel zu 5.X sein werden umstellen soll - auf neue Eingabekomponenten, API-Zugriffsmethodiken etc.
Nun stocken wir gerade bei der Migration unserer zentralen Hilfsmethode zum Setzen von Combox-basierten Werten:
protected void setComboboxValue(final String field, final String value, final FormData formData) {
final GomEditorProvider form = formData.getForm();
final FormField<?> formField = formData.get(masterLanguage, field);
OptionFactory optionsFactory = ((OptionFactoryProvider)form.findEditor(field)).getOptionFactory();
OptionModel optionModel = null;
Option option = null;
if (optionsFactory != null && value != null) {
optionModel = optionsFactory.getOptionModel(_us, masterLanguage, false);
for (Option currentOption : optionModel) {
if (currentOption.getValue().equals(option)) {
option = currentOption;
break;
}
}
if (option != null) {
log.info("Set '" + field + "' (combobox) with value : " + value.toString());
formField.set(option);
}
}
}
(wobei _us für den UserService steht)
Diese sozusagen nahezu umgestellte Methode hat nun noch das Problem, dass die obige Verwendung der getOptionModel als deprecated markiert ist (also in 5.X nicht mehr funktionieren wird). Andererseits weiß ich jedoch nicht, wie ich die neue Version (mit dem SpecialistBroker) außerhalb eines FS-Kontextes verwenden kann, da mir ein wie auch immer gearteter ScriptContext ja nur innerhalb von FirstSpirit zur Verfügung steht oder???
Version: 4.2.485.55118
Ok. In R4 wird es auch keinen Weg zum Broker an dieser Stelle geben.
Das Deprecated wurde in 4.2 Release 4 hinzugefügt. Dieser Weg steht auch in 5.0 noch zur Verfügung und eine Entfernung vor 5.1 ist nicht geplant.
Beste Grüße
Stefan
Hi,
wie kommt ihr aktuell an den UserService heran (programmatischer Weg). Möglicherweise fehlt hier ja noch die Bereitstellung eines Brokers über die API (oder der Weg ist nicht ersichtlich).
Beste Grüße
Stefan
Hi,
zumindest scheint man über Connection.getBroker() an einen SpecialistsBroker zu kommen. Falls die Connection noch nicht vorhanden ist, kann man sich diese vom UserService holen: UserService.getConnection()
Viele Grüße
Rouven
Stefan Schulz schrieb:
Hi,
wie kommt ihr aktuell an den UserService heran (programmatischer Weg). Möglicherweise fehlt hier ja noch die Bereitstellung eines Brokers über die API (oder der Weg ist nicht ersichtlich).
Beste Grüße
Stefan
Diesen holen wir vom Project, welchen wir über die Connection mittels getProjectByName() ziehen.
Hey,
Rouven Broszeit schrieb:
Hi,
zumindest scheint man über Connection.getBroker() an einen SpecialistsBroker zu kommen. Falls die Connection noch nicht vorhanden ist, kann man sich diese vom UserService holen: UserService.getConnection()
Viele Grüße
Rouven
sorry, aber diese Methode finde ich in der 4.2R4 bei Connection noch nicht....
Ok. In R4 wird es auch keinen Weg zum Broker an dieser Stelle geben.
Das Deprecated wurde in 4.2 Release 4 hinzugefügt. Dieser Weg steht auch in 5.0 noch zur Verfügung und eine Entfernung vor 5.1 ist nicht geplant.
Beste Grüße
Stefan