Rozwiązywanie problemów z interfejsami użytkownika

W poniższych sekcjach wymieniono problemy, które można napotkać, oraz informacje o ich możliwych rozwiązaniach.

Więcej informacji dotyczących rozwiązywania problemów z formatkami zawiera sekcja Włączanie śledzenia dla formatek.

Komunikat informujący, że kontekst viewScope.context ma wartość NULL

Ten komunikat może wystąpić, kiedy zarejestrowane procesy nasłuchiwania zdarzeń nie są wyrejestrowane. Na przykład dla widoku formatki są rejestrowane procesy nasłuchujące zdarzenia w procedurze obsługi zdarzeń load. Procedura obsługi zdarzeń unload zwalnia zasoby używane przez widok formatki. Jeśli procesy nasłuchujące zdarzeń nie zostaną wyrejestrowane, mogą próbować uzyskać dostęp do tych zasobów, co powoduje wyświetlenie komunikatu viewScope.context is null (kontekst viewScope.context ma wartość NULL).

Widoki formatki, które są powiązane z ponownie inicjowanymi obiektami złożonymi, mogą zawierać stare dane

Widoki formatki, które są powiązane z obiektami złożonymi, mogą nie odświeżać danych, gdy przepływ w środowisku wykonawczym powraca do formatki zawierającej te widoki formatki. Przykładem obiektu złożonego jest obiekt biznesowy.

Aby udostępnić widokowi formatki informacje o zmianach obiektu złożonego, można użyć jednej z następujących metod:

  • Utworzenie procedury zwrotnej do przechwytywania zmian obiektu złożonego:
    1. W procedurze obsługi zdarzeń load widoku formatki dodaj następujący kod: this.context.binding.get("value").bindall(this.myChange, this);
    2. Zdefiniuj procedurę obsługi zdarzeń myChange w kodzie JavaScript widoku formatki. Dodaj logikę zapewniającą obsługę zmian właściwości.
    3. W procedurze obsługi zdarzeń change wywołaj metodę bindAll(), aby ponownie utworzyć powiązania z właściwościami. Ten krok jest konieczny, ponieważ po zastąpieniu obiektu złożonego subskrypcje poprzedniego powiązania zostaną utracone.
  • Utworzenie flagi wskazującej, że obiekt złożony został zmieniony:
    1. Dodaj zmienną typu prostego, takiego jak Boolean lub String, do usługi personelu.
    2. Powiąż tę zmienną z widokiem formatki jako opcję konfiguracyjną.
    3. Dodaj skrypt po stronie serwera, który aktualizuje zmienną po zmianie obiektu złożonego. Zmiana zmiennej opcji konfiguracyjnej powoduje wywołanie procedury obsługi zdarzeń change dla widoku formatki.
    4. Dodaj kod zapewniający obsługę zmian w obiekcie złożonym.

Aktualizacja systemowej biblioteki narzędziowej w migrowanych aplikacjach procesów

W przypadku użycia formatek w aplikacji procesu, która została zmigrowana z wersji produktu IBM® BPM wcześniejszej niż 8.0.1.2 w środowisku wdrażania skonfigurowanym z kontekstowym katalogiem głównym, może wystąpić następujący komunikat o błędzie:
Błąd: nie można załadować elementu /rest/bpm/wle/v1/service/1.3402b466-ea01-464c-bc00-317677d58a67. Status:404
     Środowisko formatki wychwyciło wyjątek podczas wywoływania metody load() interfejsu API cyklu życia dla elementu div_1_1 widoku. Wyjątek: błąd typu - niezdefiniowany element this.nlsMsgs.

Obsługa konfiguracji niestandardowego kontekstowego katalogu głównego została dodana w produkcie IBM BPM 8.0.1.2. Aplikacje procesów, które zostały zmigrowane z wcześniejszych wersji, mogą zawierać zależności od wcześniejszych obrazów stanu biblioteki narzędziowej.

Aby upewnić się, że w zmigrowanych aplikacjach procesów interfejsy użytkownika będą działać w przewidywalny sposób, a zachowanie artefaktów będzie spójne, należy zaktualizować zależności odpowiednich systemowych bibliotek narzędziowych do najnowszej wersji.

Nowy przycisk Wyczyść dla wejściowych pól tekstowych w przeglądarce Internet Explorer 10 (nieaktualna z wyjątkiem systemu Windows Server 2012) nie działa

W przeglądarce Windows Internet Explorer 10 wprowadzono nowy przycisk Wyczyść dla wejściowych pól tekstowych. Jednak przycisk Wyczyść nie zawsze działa poprawnie z produktem IBM BPM. Aby zapobiec wyświetlaniu przycisku Wyczyść, należy zaimplementować pseudoelement ::-ms-clear. Więcej informacji na ten temat zawiera sekcja Microsoft: How to hide the Clear button in Windows Internet Explorer 10 (Jak ukryć przycisk Wyczyść w przeglądarce Windows Internet Explorer 10).

Jeśli problem nie zostanie rozwiązany po zaimplementowaniu pseudoelementu ::-ms-clear, przyczyną może być brak poprawki JR50706 wymaganej dla produktu IBM BPM w wersjach wcześniejszych niż 8.5.0.1.

Tabela w widoku formatki Sekcja o układzie poziomym wymaga ustawienia szerokości

Widok formatki Tabela wyświetlany w sekcji o układzie poziomym może zajmować całą szerokość strony. Jeśli nie podano szerokości tabeli, inne widoki formatki, które zostały dołączone do tego samego układu poziomego, mogą zostać wyświetlone częściowo poza krawędzią ekranu.

Aby sterować poprawnym wyświetlaniem widoków formatki, należy podać wartości szerokości na karcie Pozycjonowanie, aby każdy widok formatki zajmował przydzieloną szerokość w układzie poziomym. Jeśli na przykład w układzie poziomym umieszczono dwa pola tekstowe i jedną tabelę, ich szerokości można ustawić odpowiednio na wartości 25%, 25% i 50%. Gwarantuje to, że wszystkie trzy widoki formatki będą zajmować szerokości do nich przydzielone.

Więcej informacji na ten temat zawiera sekcja Sekcja.

Sterowanie szerokością okien wywoływanych przy użyciu zmiennych środowiska Bootstrap

Produkt IBM BPM używa zmiennych LESS środowiska Bootstrap do sterowania wyglądem widoków formatki. Aby dostosować wygląd, można podać wartości zmiennych środowiska Bootstrap w pliku kompozycji niestandardowej. Na przykład można dostosować szerokość okien wywoływanych sprawdzania poprawności, ustawiając lub modyfikując istniejącą wartość zmiennej @popover-max-width w pliku kompozycji niestandardowej. Listę właściwości, które można dostosować, zawiera specyfikacja środowiska Bootstrap.

Używanie unikalnych identyfikatorów elementów sterujących w widokach formatki wewnątrz pola treści i kontenera pola treści

Aby mieć możliwość ponownego wykorzystania treści widoku formatki szablonu reaktywnego, zwykle umieszcza się tę treść w polu treści. Pole treści jest obiektem zastępczym dla treści definiowanej przez widok formatki kontenera. W miarę wnoszenia widoków formatki do pola treści będą definiowane właściwości konfiguracji i widoczności na poziomie pola treści. Jeśli układ szablonu zawiera inne widoki formatki, które są umieszczone poza polem treści, ich ustawienia są definiowane na poziomie widoku formatki kontenera.

W czasie wykonywania, przy zmianie wielkości ekranu (np. po obróceniu urządzenia mobilnego), można zauważyć nieoczekiwane zachowanie elementów interfejsu użytkownika. Ten problem występuje, gdy ten sam identyfikator elementu sterującego zostanie użyty w przypadku widoku formatki wewnątrz pola treści i widoku formatki poza polem treści. Użycie tego samego identyfikatora elementu sterującego w przypadku dwóch instancji widoku formatki powoduje, że zdefiniowane ustawienia wnoszonej treści (wewnątrz pola treści) nadpisują ustawienia instancji widoku w układzie kontenera pola treści (i odwrotnie).

Ponadto, jeśli dwie wcześniej wymienione instancje widoku formatki mają zdefiniowane ustawienia reaktywne i dla obu jest używany ten sam identyfikator elementu sterującego, w konsoli może zostać wyświetlony błąd podobny do następującego:
dojo.js?build=201707181206:2 TypeError: Cannot read property '0' of undefined
              at Object._448.resolveDeviceSpecificOptionValue (dojo.js?build=201707181206:2)
              at Object.engine.initConfig (VM1685
              debugcf?locale=en&attachPt=INSWidgetID&devDbg=true&containerRef=2063.7f0ae305-bbc5-45dd-b19f…:229)
              at Object._448.start (dojo.js?build=201707181206:2)    at VM1685
              debugcf?locale=en&attachPt=INSWidgetID&devDbg=true&containerRef=2063.7f0ae305-bbc5-45dd-b19f…:299
              at _1031 (dojo.js?build=201707181206:2)    at Function._102e [as _onQEmpty]
              (dojo.js?build=201707181206:2)    at _88f (dojo.js?build=201707181206:2)
              at HTMLDocument._891 (dojo.js?build=201707181206:2)

Aby uniknąć wystąpienia takiej sytuacji, należy upewnić się, że identyfikatory elementów sterujących są unikalne w przypadku widoków formatki w polu treści i w kontenerze pola treści. Więcej informacji na temat pól treści zawiera sekcja Pole treści.

Podczas migrowania instancji procesu ze zdarzeniem „Pozostań na stronie” do nowej wersji obrazu stanu występuje błąd Nie zdefiniowano następnego elementu usługi

Gdy instancję procesu, która zawiera aktywne zadanie tradycyjnej usługi personelu ze zdarzeniem „Pozostań na stronie”, migrujesz do nowej wersji obrazu stanu, może wystąpić błąd Nie zdefiniowano następnego elementu usługi. Wystąpienie tego błędu oznacza, że instancja nie ma poprawnej ścieżki do znacznika i nie może być kierowana po zakończeniu migracji.

Zwykle błąd Nie zdefiniowano następnego elementu usługi występuje wtedy, gdy nowa wersja instancji usunie miejsce docelowe, co powoduje, że migrowane instancje nie mają poprawnego miejsca docelowego. Taka sytuacja może również wystąpić wtedy, gdy miejsce docelowe jest odtwarzane, bo identyfikator miejsca docelowego jest inny. Aby uniknąć tego problemu, należy użyć plików strategii (tak jak opisano to w temacie Generowanie pliku strategii migracji instancji na potrzeby zarządzania osieroconymi znacznikami).

Jednak zdarzenie „Pozostań na stronie” jest krótkotrwałe, co oznacza, że jest dynamicznie wiązane z formatką, do której powróci. Migracja instancji nie obsługuje stanu przepływu w usłudze, więc gdy zadanie tradycyjnej usługi personelu dla migrowanej instancji zostanie zatrzymane między formatką i jej zdarzeniem „Pozostań na stronie”, po migracji instancji formatka nie będzie już poprawnym miejscem docelowym. Ten problem może wystąpić, gdy przed zdarzeniem „Pozostań na stronie” jest używane działanie odroczenia lub gdy zdarzenie „Pozostań na stronie” następuje po zagnieżdżonej usłudze, która również wyświetla formatkę. Po migracji instancji zadanie będzie musiało zostać zresetowane. Nie można temu zaradzić przy użyciu plików strategii. Informacje na temat resetowania zadania zawiera sekcja Zarządzanie znacznikami.