nilsweber
I'm new here

Zugriff auf OptionModel außerhalb des FS-Kontexts

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions

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

View solution in original post

0 Kudos
5 Replies
StefanSchulz
I'm new here

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

0 Kudos

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

0 Kudos

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.

0 Kudos

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....

0 Kudos

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

0 Kudos