Konfigurowanie aplikacji mobilnych Maximo Anywhere
Transkrypt
Konfigurowanie aplikacji mobilnych Maximo Anywhere
IBM Maximo Anywhere Wersja 7 Wydanie 5 Konfigurowanie aplikacji mobilnych Maximo Anywhere Uwaga Przed wykorzystaniem tych informacji oraz produktu, którego dotyczą, należy zapoznać się z sekcją “Informacje” na stronie 33. Ta edycja dotyczy wersji 7, wydania 5, modyfikacji 2 produktu IBM Maximo Anywhere i wszystkich kolejnych wydań i modyfikacji, chyba że w nowszych edycjach wskazano inaczej. © Copyright IBM Corporation 2014, 2015. Spis treści Modyfikowanie aplikacji mobilnych Maximo Anywhere . . . . . . . . . . 1 Pierwsze kroki . . . . . . . . . . . . . . 1 Środowisko programistyczne MobileFirst Studio . . . 1 Przygotowywanie środowiska produktu Maximo Anywhere . . . . . . . . . . . . . . 1 Instalowanie narzędzi programistycznych dla systemu Android . . . . . . . . . . . . . . 2 Instalowanie narzędzi programistycznych dla systemu iOS . . . . . . . . . . . . . . . 4 Instalowanie zintegrowanego środowiska programistycznego . . . . . . . . . . . . 5 Wdrażanie aplikacji przy użyciu komponentu MobileFirst Studio . . . . . . . . . . . . 7 Integrowanie produktu Maximo Anywhere z produktem Maximo Asset Management . . . . . . . . . . 8 Zasoby OSLC . . . . . . . . . . . . . 9 Tworzenie zasobów OSLC w programie Maximo Asset Management . . . . . . . . . . . . . 10 Importowanie zasobów OSLC do programu Maximo Anywhere . . . . . . . . . . . . . . 11 Predefiniowane zasoby i struktury obiektów OSLC . . 12 © Copyright IBM Corp. 2014, 2015 Tworzenie i modyfikowanie pól w aplikacjach mobilnych Zmienianie etykiet pól . . . . . . . . . Zmiana kolejności pól w aplikacji mobilnej . . . Dodawanie pól do aplikacji mobilnej . . . . . Dodawanie list wartości jako listy wyszukiwania dla pól . . . . . . . . . . . . . . . Dodawanie rekordów powiązanych do aplikacji mobilnej. . . . . . . . . . . . . . Organizowanie układu ekranów aplikacji mobilnej . . Pliki szablonów układu . . . . . . . . . Zmienianie układu pól w widokach listy . . . . Modyfikowanie plików javascript aplikacji mobilnych . Tworzenie pól warunkowych w aplikacjach . . . Tworzenie pól warunkowych tylko do odczytu . . Tworzenie wymaganych pól warunkowych . . . 14 . 14 . 14 . 15 . 17 . . . . . . . . 18 23 23 24 26 26 28 30 Informacje . . . . . . . . . . . . . 33 Strategia ochrony prywatności . Znaki towarowe . . . . . . . . . . . . . . . . . . . . 35 . 35 Indeks . . . . . . . . . . . . . . . 37 iii iv Konfigurowanie aplikacji mobilnych Maximo Anywhere Modyfikowanie aplikacji mobilnych Maximo Anywhere Istnieje możliwość modyfikowania interfejsu użytkownika aplikacji mobilnych Maximo Anywhere, na przykład modyfikowania etykiet pól, dodawania pól lub dodawania widoków poprzez modyfikowanie plików artefaktów aplikacji w komponencie IBM MobileFirst Platform Studio. Pierwsze kroki Przed przystąpieniem do modyfikowania aplikacji mobilnych należy skonfigurować środowisko programistyczne, instalując komponent Worklight Studio na serwerze budowania. Środowisko programistyczne MobileFirst Studio MobileFirst Studio jest zintegrowanym środowiskiem programistycznym opartym na technologii Eclipse, które można wdrożyć z produktem Maximo Anywhere. MobileFirst Studio służy do konfigurowania i testowania aplikacji Maximo Anywhere oraz do zarządzania procesem budowania i wdrażania. Aplikację mobilną konfiguruje się, edytując jej definicję, tj. plik app.xml, za pomocą edytora XML w programie MobileFirst Studio. Karta projektowania w edytorze XML umożliwia łatwe znajdowanie elementów w pliku oraz modyfikowanie i dodawanie treści. Z chwilą zapisania zmian aplikacja zostaje automatycznie zbudowana i można przetestować zmiany. Następnie zmodyfikowane aplikacje można wdrożyć na serwerze. Każdy element definicji aplikacji musi mieć identyfikator. Po wypełnieniu pola Id. powiązana z nim modyfikacja definicji aplikacji będzie zachowywana podczas jej aktualizacji. Przed wdrożeniem aplikacji mobilnych w środowisku produkcyjnym można sprawdzić i przetestować wszystkie ich modyfikacje w symulatorze Mobile Browser Simulator. Aby możliwy był podgląd aplikacji w symulatorze Mobile Browser Simulator, należy wybrać Google Chrome jako zewnętrzną przeglądarkę WWW. Aby wyświetlić podgląd zmian, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Uruchom jako > Podgląd. Informacje pokrewne: Worklight Studio — przegląd Przygotowywanie środowiska produktu Maximo Anywhere Aby możliwe było budowanie i wdrażanie aplikacji Maximo Anywhere, należy skonfigurować komputer, na którym zainstalowany jest produkt Maximo Anywhere. O tym zadaniu Do budowania aplikacji dla urządzeń mobilnych iOS potrzebny jest komputer Mac OS X ze specjalnym oprogramowaniem. Procedura 1. Przygotuj środowisko do budowania aplikacji mobilnych: Android © Copyright IBM Corp. 2014, 2015 Zainstaluj narzędzia programistyczne dla systemu Android. 1 iOS Zainstaluj narzędzia programistyczne dla systemu iOS. 2. Opcjonalne: Zainstaluj zintegrowane środowisko programistyczne.. Instalowanie narzędzi programistycznych dla systemu Android Do budowania aplikacji mobilnych dla systemu Android potrzebny jest pakiet Oracle JDK i pakiet Android SDK. Procedura 1. Zainstaluj pakiet Oracle JDK w wersji 7.0. a. Ze strony Oracle Java™ SE downloads (www.oracle.com/technetwork/java/javase/ downloads/jdk7-downloads-1880260.html) pobierz pakiet Java SE Development Kit właściwy dla używanego systemu operacyjnego. b. Uruchom plik wykonywalny i wykonaj czynności instalacyjne. c. Określ zmienną środowiskową JAVA_HOME i ścieżkę do katalogu, w którym zainstalowano pakiet JDK: Windows 1. Przejdź do zaawansowanych ustawień systemu. 2. Na karcie Advanced kliknij pozycję Environment Variables. 3. W obszarze System Variables kliknij przycisk New. 4. Określ JAVA_HOME jako nazwę zmiennej i jako wartość zmiennej wprowadź ścieżkę do katalogu instalacyjnego pakietu JDK. Wartości zmiennych środowiskowych nie można oddzielać za pomocą spacji. Jeśli nazwa ścieżki wskazującej na katalog instalacyjny Java zawiera spację, określ skróconą nazwę ścieżki. Przykładowo: w systemie operacyjnym Windows wprowadź ścieżkę C:\Progra~1\Java\jdk1.7.0_55 5. Zamknij wszystkie otwarte okna. 6. Upewnij się, że systemowa zmienna środowiskowa JAVA_HOME jest zdefiniowana. W tym celu otwórz nowy wiersz komend i uruchom następującą komendę: SET JAVA_HOME Zostanie zwrócona wartość, taka jak np: JAVA_HOME=C:\Progra~1\Java\jdk1.7.x 2 Konfigurowanie aplikacji mobilnych Maximo Anywhere Linux lub UNIX 1. W wierszu komend uruchom następującą komendę: vi ~/.bash_profile 2. Określ zmienne, uruchamiając poniższą komendę i zastępując zmienną java_path określoną ścieżką Java: export JAVA_HOME=ścieżka_java export PATH=$JAVA_HOME/bin:$PATH 3. Zapisz i zamknij profil .bash oraz uruchom następującą komendę, aby zastosować zmiany: source ~/.bash_profile 4. Upewnij się, że systemowa zmienna środowiskowa JAVA_HOME jest zdefiniowana. W tym celu otwórz nowy wiersz komend i uruchom następującą komendę: echo $JAVA_HOME 2. Zainstaluj pakiet Android SDK: a. Przejdź do serwisu Android dla programistów (developer.android.com/sdk/ index.html) i kliknij odsyłacz Other Download Options. b. W sekcji Tylko narzędzia SDK pobierz pakiet SDK dla danego systemu operacyjnego i na komputerze wyodrębnij skompresowany plik. c. Uruchom kreatora instalacji. W systemie Windows: Z poziomu wyodrębnionego katalogu uruchom plik SDK Manager.exe. W systemie Linux lub OS X: Otwórz terminal i przejdź do katalogu android_home/tools/, a następnie wywołaj komendę: android sdk d. W menu Tools wybierz pozycje Android SDK Tools Revision 22 lub nowszą i najnowsze narzędzia Android SDK do budowania. Wybierz także pakiet Android z interfejsem API w wersji 19 lub nowszej i kliknij opcję Install Packages. 3. Opcjonalne: Zainstaluj zintegrowane środowisko programistyczne. 4. Jeśli w kroku 3 zainstalowano środowisko Eclipse, zainstaluj wtyczkę Android Development Tools (ADT): a. W rozwiązaniu Eclipse wybierz pozycje Help > Install New Software > Add. b. W oknie Add Repository określ poniższy adres, wpisując go w polu Location: https://dl-ssl.google.com/android/eclipse/. c. W polu Name określ Android Development Tools i kliknij przycisk OK. d. W panelu Available Software kliknij kolejno przyciski Select All > Next > Next > Finish. e. Zrestartuj Eclipse i określ katalog obszaru roboczego. f. Otwórz okno Eclipse Preferences i określ ścieżkę Android SDK. Kliknij przycisk Zastosuj > OK, aby zastosować zmiany. g. W panelu Welcome to Android Development wybierz pozycję Use existing SDKs i przejdź do katalogu SDK. Kliknij pozycje OK > Dalej > Zakończ Modyfikowanie aplikacji mobilnych Maximo Anywhere 3 Instalowanie narzędzi programistycznych dla systemu iOS Aby móc tworzyć aplikacje dla systemu iOS, należy zarejestrować się w programie Apple dla programistów, korzystając ze swojego identyfikatora Apple ID. O tym zadaniu W programie iOS Developer Program można zarejestrować się jako osoba fizyczna lub przedsiębiorstwo, przy czym osoba fizyczna traktowana jest jak zespół jednoosobowy. Rejestracja w programie iOS Developer Enterprise Program w charakterze przedsiębiorstwa uprawnia do tworzenia aplikacji iOS na użytek wewnętrzny. Procedura zakładania konta w programie iOS Developer Enterprise może obejmować dodatkowe kroki. Osoba zakładająca zespół staje się agentem zespołu, czyli osobą do kontaktów w sprawach prawnych i administratorem zespołu z pełnym dostępem do serwisów Member Center i iTunes Connect. Do wykonania kroków od 5 do 7 niezbędny jest agent zespołu. Twórcy aplikacji dla systemu iOS mogą potrzebować pomocy agenta zespołu, by wykonać opisywaną procedurę. W celu zarządzania wykorzystaniem utworzonych aplikacji iOS, tworzy się profile udostępniania. Można utworzyć programistyczny profil udostępniania lub dystrybucyjny profil udostępniania Programistyczny profil udostępniania określa zasady używana aplikacji w celach programistycznych i testowych na pewnej liczbę urządzeń. Programistyczne profile udostępniania muszą zawierać identyfikatory urządzeń, na których są zainstalowane aplikacje. Można zarejestrować więcej urządzeń iOS i dodać je do profili udostępniania. Dystrybucyjny profil udostępniania w sklepie z aplikacjami zapewnia dostęp do aplikacji na wszystkich urządzeniach w przedsiębiorstwie. Jednak Maximo Anywhere obsługuje tylko po jednym globalnym identyfikatorze aplikacji na dystrybucyjny profil udostępniania. Procedura 1. Zainstaluj pakiet Oracle JDK w wersji 7.0. a. Ze strony Oracle Java SE downloads (www.oracle.com/technetwork/java/javase/ downloads/jdk7-downloads-1880260.html) pobierz pakiet Java SE Development Kit właściwy dla używanego systemu operacyjnego. 2. 3. 4. 5. 4 b. Uruchom plik wykonywalny i wykonaj czynności instalacyjne. c. Ustaw zmienną środowiskową JAVA_HOME i określ ścieżkę do katalogu, w którym zainstalowano pakiet JDK, wywołując komendę cmd>vi ~/.bash_profile i dodając następujący wiersz do pliku ~/.bash_profile: export JAVA_HOME=`/usr/libexec/java_home -v 1.7` Utwórz identyfikator Apple ID, rejestrując się jako programista Apple w serwisie Apple Registration Center (developer.apple.com/programs/register/). Pobierz i zainstaluj środowisko programistyczne Xcode, w tym pakiety iOS SDK i program Simulator, z serwisu Mac App Store (www.apple.com/osx/apps/app-store.html). Wprowadź swój identyfikator Apple ID w środowisku Xcode (developer.apple.com/ library/ios/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/ AddingYourAccounttoXcode/AddingYourAccounttoXcode.html). W środowisku Xcode utwórz certyfikat (developer.apple.com/library/ios/documentation/ IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/ MaintainingCertificates.html) dla profilu udostępniania. Konfigurowanie aplikacji mobilnych Maximo Anywhere v Utwórz certyfikat programisty dla programistycznego profilu udostępniania. Pobierz certyfikat i dodaj go do aplikacji Pęk kluczy (support.apple.com/kb/PH7297). v Utwórz certyfikat dystrybucyjny dla dystrybucyjnego profilu udostępniania. Pobierz certyfikat do środowiska lokalnego. 6. Zarejestruj identyfikatory aplikacji (developer.apple.com/library/ios/documentation/IDEs/ Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html). Identyfikatory aplikacji należy rejestrować w formie wieloznacznej. Tworząc identyfikatory aplikacji, wybierz opcję Wildcard App ID i wprowadź id. pakunku. Typ profilu udostępniania Identyfikator aplikacji w formie wieloznacznej Programistyczny profil udostępniania Identyfikator pakunku WorkExecution to com.WorkExecution*. Identyfikator pakunku WorkApproval to com.WorkApproval*. Dystrybucyjny profil udostępniania w sklepie z aplikacjami Maximo Anywhere obsługuje tylko po jednym globalnym identyfikatorze aplikacji na dystrybucyjny profil udostępniania. Identyfikator pakunku to com*. 7. Zarejestruj identyfikatory urządzeń w serwisie Member Center (developer.apple.com/ library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/ MaintainingProfiles.html). Unikalny identyfikator urządzania (UDID) można odczytać, podłączając urządzenie do komputera z systemem Mac OS X i uruchomionym środowiskiem Xcode oraz aplikacją iTunes. 8. W serwisie Member Center utwórz profile udostępniania dla poszczególnych aplikacji. Typ profilu udostępniania Czynność Programistyczny profil udostępniania Jako programista wygeneruj profile udostępniania, a następnie pobierz je na komputer z systemem Mac OS X. Otwórz każdy z profili udostępniania w XCode. Profile udostępniania są dodawane do biblioteki systemowej w następującej lokalizacji: ~/Library/MobileDevice/Provisioning Profiles". Dystrybucyjny profil udostępniania w sklepie z aplikacjami Podczas generowania profilu udostępniania nie trzeba podawać identyfikatorów urządzeń. Pobierz profil na komputer Mac z systemem OS X i dodaj identyfikator profilu do pliku to build.properties. Profil udostępniania trzeba pobrać na serwer budowania po każdej modyfikacji profilu. Podczas budowania i wdrażania aplikacji profile udostępniania są gromadzone i zapisywane w pliku archiwum aplikacji iOS (IPA). Instalowanie zintegrowanego środowiska programistycznego Aby utworzyć środowisko programistyczne, zainstaluj zestaw narzędzi programistycznych na komputerze przeznaczonym do budowania. Zintegrowanego środowiska programistycznego można używać do testowania i konfigurowania aplikacji mobilnych przed wdrożeniem ich na urządzeniach mobilnych. Zanim rozpoczniesz v Przygotuj środowisko Maximo Anywhere. v Aby możliwe było przeglądanie aplikacji w programie MobileFirst Studio Mobile Browser Simulator zainstaluj program Google Chrome. Modyfikowanie aplikacji mobilnych Maximo Anywhere 5 O tym zadaniu Środowisko MobileFirst Studio jest środowiskiem programistycznym opartym na rozwiązaniu Eclipse, za pomocą którego można skonfigurować aplikacje Maximo Anywhere. Rozwiązanie MobileFirst Studio należy zainstalować z poziomu środowiska programistycznego zintegrowanego z IDE Eclipse. Do budowania i wdrażania aplikacji mobilnych potrzebny jest też zestaw narzędzi programistycznych dla platformy. Do przeglądania i testowania aplikacji mobilnych można używać programu Mobile Browser Simulator, Emulatora Android lub programu iOS Simulator. Na etapie wdrażania aplikacje można modyfikować, aby dostosować je do indywidualnych potrzeb. Więcej informacji zawiera sekcja Konfigurowanie aplikacji mobilnych Maximo Anywhere w IBM® Knowledge Center. Procedura 1. Zainstaluj IDE Eclipse: a. Przejdź na stronę www.eclipse.org/downloads/packages/eclipse-ide-java-eedevelopers/keplersr1 i pobierz środowisko Eclipse IDE for Java EE Developers w wersji 4.3.2 (Kepler) właściwej dla używanego systemu operacyjnego. b. Wyodrębnij skompresowany folder i uruchom aplikację Eclipse, aby zainstalować oprogramowanie. 2. Skonfiguruj środowisko programistyczne Eclipse: a. Upewnij się, że wtyczka rozszerzająca Eclipse JSDT jest zainstalowana. Wtyczka JavaScript Development Tool (JSDT) ułatwia nawigację w kodzie Java Script w środowisku Eclipse. 1) Wybierz kolejno opcje Help > About Eclipse i kliknij pozycję Eclipse Web Tools Platform (WTP) 2) Wyszukaj pozycję Eclipse JavaScript Development Tools w oknie About Eclipse Features. b. Jeśli wtyczka JavaScript Development Tools nie jest jeszcze zainstalowana, wykonaj następujące czynności: 1) Wybierz kolejno opcje Help > Install New Software > Add. 2) W oknie Add Repository określ poniższy adres URL, wpisując go w polu Location: http://download.eclipse.org/webtools/repository/kepler. 3) W polu Name określ Eclipse WTP. 4) Wybierz pozycję Web Tools Platform (WTP) 3.5.1 (or later) > JavaScript Development Tools i zainstaluj wtyczkę rozszerzającą. c. Ustaw Google Chrome jako domyślą przeglądarkę, wybierając kolejno opcje Window > Preferences > General > Web Browser > Use external web browser. Zaznacz pole wyboru Chrome i kliknij przycisk OK, aby zastosować zmiany. 3. Instalacja programu MobileFirst Studio Consumer Edition: a. W rozwiązaniu Eclipse wybierz pozycje Help > Install New Software > Add. b. W oknie Add Repository kliknij przycisk Archive. c. Przejdź do pliku MobileFirstStudio.zip w katalogu Install obrazu instalacyjnego Maximo Anywhere i kliknij kolejno opcje Open > OK. d. Na panelu Available Software wybierz pozycję IBM Worklight Studio Development Tools i kliknij kolejno Next > Next > Finish. e. Zrestartuj środowisko Eclipse, aby zastosować zmiany. 4. Zaimportuj projekt MaximoAnywhere do programu MobileFirst Studio. 6 Konfigurowanie aplikacji mobilnych Maximo Anywhere a. W programie Eclipse kliknij kolejno opcje File > Import > General, wybierz opcję Existing Projects into Workspace i kliknij przycisk Next. b. Kliknij opcję Select root directory i podaj ścieżkę do katalogu \ibm\Anywhere. c. Wybierz projekt MaximoAnywhere i kliknij opcję Copy projects into workspace. Kliknij przycisk Zakończ. d. W panelu Project Explorer rozwiń wszystkie węzły. Prawym przyciskiem myszy kliknij folder OSLCGenericAdapter i wybierz kolejno opcje Run As > Deploy Worklight Adapter. e. Prawym przyciskiem myszy kliknij folder aplikacji i kliknij kolejno opcje Run As > Run on Worklight Development Server. f. Aby wyświetlić podgląd aplikacji, kliknij folder aplikacji prawym przyciskiem myszy i wybierz kolejno opcje Run As > Preview. Wdrażanie aplikacji przy użyciu komponentu MobileFirst Studio Rozwiązanie MobileFirst Studio zawiera wbudowaną instancję serwera MobileFirst Server, co eliminuje potrzebę wdrażania pliku WAR. Rozwiązanie MobileFirst Studio również uwzględnia narzędzie Mobile Browser Simulator umożliwiające testowanie aplikacji. Zanim rozpoczniesz v Skonfiguruj program Maximo Asset Management do pracy z programem Maximo Anywhere. v Jeśli użytkownik planuje wyświetlanie podglądu wdrożonych aplikacji w rozwiązaniu Mobile Browser Simulator, Google Chrome należy zainstalować w środowisku programistycznym. Funkcja podglądu wdrożonych aplikacji nie obsługuje innych przeglądarek internetowych. Procedura 1. W rozwiązaniu MobileFirst Studio zaimportuj projekt Maximo Anywhere. a. Prawym przyciskiem myszy kliknij w oknie Project Explorer i wybierz komendę Import. W oknie Import wybierz pozycję Existing Projects into Workspace i kliknij przycisk Dalej. b. Przejdź do folderu maximoanywhere_home, wybierz folder MaximoAnywhere, wybierz opcję Copy projects into workspace i kliknij przycisk Finish. 2. Określ ścieżkę do pliku Ant. a. Z menu Window wybierz opcję Preferences. Rozwiń opcję Ant i wybierz pozycję Runtime. b. Wybierz pozycję Ant Home Entry i kliknij przycisk Ant Home. c. W oknie Przeglądanie w poszukiwaniu folderu rozwiń kolejno pozycje katalog_główny_maximoanywhere > AnywhereWorkManager > build > tools > ant i kliknij przycisk OK. 3. Dodaj plik build.xml do widoku Ant. Wybierz plik build.xml z aplikacji MaximoAnywhere i przeciągnij plik build.xml do widoku Ant. 4. Rozwiń plik build.xml w widoku Ant i kliknij dwukrotnie zadanie all. 5. Z poziomu programu Project Explorer wdróż adapter. a. Wybierz pozycję MaximoAnywhere > Adapters i prawym przyciskiem myszy kliknij pozycję OSLCGenericAdapter. b. Wybierz opcję Run As > Deploy MobileFirst Adapter. 6. Zbuduj i wdróż aplikację IBM Maximo Anywhere Work Execution. Modyfikowanie aplikacji mobilnych Maximo Anywhere 7 a. W obszarze MaximoAnywhere > apps prawym przyciskiem myszy kliknij pozycję WorkExecution. b. Wybierz opcję Run As > Run on MobileFirst Development Server. 7. Zbuduj i wdróż aplikację Maximo Anywhere Work Approval. a. W obszarze MaximoAnywhere > apps kliknij prawym przyciskiem myszy pozycję WorkApproval. b. Wybierz opcję Run As > Run on MobileFirst Development Server. 8. Zbuduj i wdróż aplikację Maximo Anywhere Inspection. a. W obszarze MaximoAnywhere > apps kliknij przyciskiem myszy pozycję Inspection. b. Wybierz opcję Run As > Run on MobileFirst Development Server. 9. Zbuduj i wdróż aplikację Maximo Anywhere Physical Count. a. W obszarze MaximoAnywhere > apps kliknij prawym przyciskiem myszy pozycję PhysicalCount. b. Wybierz opcję Run As > Run on MobileFirst Development Server. 10. Zweryfikuj wdrożenie aplikacji w programie MobileFirst Operations Console, klikając aplikację prawym przyciskiem myszy i wybierając opcję Run As > Preview. 11. Przetestuj aplikację na urządzeniu mobilnym, w emulatorze Android lub programie iOS Simulator. Aby przetestować aplikację w emulatorze Android, należy najpierw skonfigurować emulator. Aby przetestować aplikację na urządzeniu mobilnym, podłącz urządzenie do komputera. Typ urządzenia Kroki Android 1. W eksploratorze projektów wybierz projekt Android znajdujący się pod węzłem testowanej aplikacji i wybierz opcję Run as > Android Application. 2. Wybierz opcję Launch a new Android Virtual Device w przypadku emulatora Android lub Launch a new Android Device w przypadku korzystania z urządzenia mobilnego z systemem Android Plik artefaktów .apk zostanie wygenerowany w folderze bin. iOS 1. W węźle MaximoAnywhere > apps > nazwa_aplikacji > iphone wybierz opcję Run as > Xcode project. 2. W oknie Xcode wybierz symulowane urządzenie lub urządzenie mobilne, w którym chcesz testować aplikację, i kliknij ikonę Odtwarzaj. Plik artefaktów .ipa zostanie wygenerowany w folderze bin. Integrowanie produktu Maximo Anywhere z produktem Maximo Asset Management Rozwiązanie Maximo Anywhere zapewnia integrację z aplikacjami Maximo Asset Management za pomocą usług Open Services for Lifecycle Collaboration (OSLC). 8 Konfigurowanie aplikacji mobilnych Maximo Anywhere Zasoby OSLC Maximo Anywhere udostępnia zasoby OSLC, które definiują metadane dla obiektów biznesowych dostawców usług OSLC. Zasoby OSLC w aplikacjach mobilnych umożliwiają pobieranie i przetwarzanie danych aplikacji pochodzących od dostawców usług w programie Maximo Asset Management. Do metadanych zasobów należą pliki w formacie RDF (Resource Description Framework), które są zdefiniowane dla każdego obiektu biznesowego podczas integracji pomiędzy produktem Maximo Anywhere a Maximo Asset Management. Zasoby dla produktu Maximo Anywhere znajdują się w katalogu MaximoAnywhere\oslc-docs\resources\rdf\oslc. Zasoby OSLC udostępnione przez Maximo Anywhere obejmują wstępnie zdefiniowane struktury obiektów, dostawców usług oraz pliki RDF. W programie Maximo Asset Management można także zdefiniować dodatkowe dane dotyczące zasobów, które mają być używane z aplikacjami mobilnymi. Po zdefiniowaniu danych dotyczących zasobów konieczne jest zaimportowanie plików RDF do programu Maximo Anywhere, dzięki czemu z danych można będzie korzystać w aplikacjach dla urządzeń mobilnych. Implementowanie zasobów w aplikacjach dla urządzeń mobilnych odbywa się poprzez zaktualizowanie pliku definicji aplikacji i wdrożenie nowej wersji aplikacji. Zwykle zasobów OSLC używa się w następujących scenariuszach. Dodawanie pól z zasobów Maximo Anywhere Gdy do aplikacji mobilnej dodawane jest pole z bieżących zasobów Maximo Anywhere. Jeśli struktura obiektu i plik RDF istnieje w programie Maximo Anywhere, ale nie są uwzględnione w aplikacji, należy zmodyfikować plik app.xml. Dodawanie nowych pól z Maximo Asset Management do programu Maximo Anywhere Podczas tworzenia obiektu biznesowego dla nowego pola w produkcie Maximo Asset Management struktury obiektu domyślnie pobierają wszystkie pola zdefiniowane przez ten obiekt biznesowy. Aby użyć nowego pola w programie Maximo Anywhere, należy zaimportować plik RDF z programu Maximo Asset Management do programu Maximo Anywhere, a następnie zmodyfikować plik app.xml. Dodawanie obiektu podrzędnego do istniejącej struktury obiektów Gdy w programie Maximo Asset Managementdo struktury obiektu istniejącej w programie Maximo Anywhere dodawany jest obiekt podrzędny. W Maximo Asset Management modyfikuje się zasób zawierający strukturę obiektów, tak aby zawierała obiekt podrzędny. Aby możliwe było użycie obiektu podrzędnego w programie Maximo Anywhere, należy zaimportować plik RDF z programu Maximo Asset Management do programu Maximo Anywhere, a następnie zaktualizować plik app.xml. Tworzenie struktury dla istniejącego obiektu Gdy w programie Maximo Asset Management tworzona jest struktura istniejącego obiektu, takiego jak domena lub lista wartości, a użytkownik zamierza dodać strukturę obiektów do pola. Program Maximo Asset Management pozwala na utworzenie struktury obiektu i zaktualizowanie zasobu ze strukturą obiektu. Aby użyć domeny w programie Maximo Anywhere, należy zaimportować plik RDF z programu Maximo Asset Management do programu Maximo Anywhere, a następnie zaktualizować plik app.xml. Modyfikowanie aplikacji mobilnych Maximo Anywhere 9 Poniższy rysunek przedstawia, w jaki sposób dane obiektu mogą być skonfigurowane jako dane zasobów i użyte w programie Maximo Anywhere. Tworzenie zasobów OSLC w programie Maximo Asset Management Zasoby OSLC są potrzebne do pobierania i przetwarzania danych w aplikacjach mobilnych. Definiowane zasoby OSLC muszą być oparte na powiązanej strukturze obiektu z programu Maximo. W celu zdefiniowania dodatkowych danych nowych zasobów, które mają być używane w aplikacjach mobilnych, należy utworzyć strukturę obiektów i zasób w programie Maximo Asset Management. O tym zadaniu Zasoby OSLC są implementowane za pośrednictwem struktur obiektów. Struktura obiektu to typowa warstwa danych używana w strukturze integracji w celu przetwarzania danych. Gdy zasób jest tworzony jako zasób OSLC, za pomocą Maximo Anywhere można opracować żądania dotyczące zapytań, tworzenia, aktualizacji lub usuwania danych zasobu. Procedura 1. W aplikacji Struktury obiektów kliknij pozycję Nowa struktura obiektów i określ identyfikator struktury obiektów. 2. W polu Consumed By określ OSLC jako moduł korzystający ze struktury obiektu. 3. Określ obiekty źródłowe struktury obiektu i zapisz rekord. 4. W aplikacji Zasoby OSLC utwórz zasób. 5. Określ strukturę obiektu utworzonego w aplikacji Struktury obiektów. 10 Konfigurowanie aplikacji mobilnych Maximo Anywhere 6. Określ nazwę domeny i URI domyślną przestrzeń nazw. Dla zasobu można określić istniejącą domenę i przestrzenie nazw, np. SmarterPhysicalInfrastructure i http://jazz.net/ns/ism/asset/smarter_physical_infrastructure#. Można też zdefiniować nową domenę i przestrzeń nazw, korzystając z menu Wybierz czynności. 7. Zapisz rekord. Dokument kształtu zasobu zostanie zaktualizowany w celu uwzględnienia struktury obiektu dla danego pola. 8. Opcjonalne: Upewnij się, że dokument kształtu zasobu został zaktualizowany pod adresem URL: http://hostname/maximo/oslc/shapes/object_structure. Co dalej Zaimportuj zasoby OSLC do programu Maximo Anywhere. Importowanie zasobów OSLC do programu Maximo Anywhere Po utworzeniu zasobów OSLC w programie Maximo Asset Management należy zaimportować zmienione metadane do programu Maximo Anywhere. Zanim rozpoczniesz Zweryfikuj, czy właściwości adresu dostawcy usługi są prawidłowe w pliku build.properties. Plik build.properties znajduje się w folderze MaximoAnywhere. v v v v v adapter.name=service_provider_name adapter.connection.protocol=http adapter.connection.domain=ip adapter.connection.port=numer_portu adapter.connection.context=kontekst O tym zadaniu Uruchom skrypt narzędzia Ant w celu zaimportowania danych zasobu z Maximo Asset Management do plików Resource Description Framework (RDF) w Maximo Anywhere. Narzędzie do importowania nosi nazwę anywhere-rdfs-puller.xml i znajduje się w folderze MaximoAnywhere. Narzędzie zawiera wszystkie dokumenty kształtów używane przez dostawcę usług w Maximo Asset Management z przeznaczeniem dla aplikacji mobilnych Maximo Anywhere. Procedura 1. Zmodyfikuj plik anywhere-rdfs-puller.xml, dodając odpowiednie nazwy plików RDF. Przykładowo: jeśli utworzono zasób dla myRelatedObject, należy dodać URI <downloadOneRdf context="/oslc/shapes/oslcwodetail/myRelatedObject" /> do pliku anywhere-rdfs-puller.xml. 2. W celu uruchomienia narzędzia w środowisku programistycznym określ nazwę użytkownika i hasło jako argumenty pliku. a. W rozwiązaniu MobileFirst Studio dodaj plik Ant anywhere-rdfs-puller.xml do widoku Ant. b. Prawym przyciskiem myszy kliknij plik Ant anywhere-rdfs-puller.xml i wybierz pozycje Run as > Ant Build. c. Na karcie Main dodaj nazwę użytkownika i hasło dla adaptera w polu Arguments.-Dadapter.connection.user=<nazwa_użyt.> -Dadapter.connection.password=<hasło> 3. Zaimportuj dane zasobu OSLC. Modyfikowanie aplikacji mobilnych Maximo Anywhere 11 Środowisko Czynność W środowisku programistycznym w MobileFirst Studio Z poziomu widoku Ant uruchom plik anywhere-rdfs-puller.xml. W środowisku produkcyjnym Uruchom komendę: ant -f anywhere-rdfs-puller.xml -Dadapter.connection.user=<nazwa_użytk.> -Dadapter.connection.password=<hasło> 4. Zweryfikuj, czy plik RDF został zaimportowany i czy jego zawartość, nazwa i atrybuty są prawidłowe w katalogu MaximoAnywhere\oslc-docs\resources\rdf\oslc. Co dalej Aby zaimplementować zasoby w aplikacjach mobilnych, zaktualizuj definicję aplikacji i wdróż nową wersję aplikacji. Predefiniowane zasoby i struktury obiektów OSLC Maximo Anywhere zawiera predefiniowane zasoby OSLC służące do integracji z oprogramowaniem Maximo Asset Management. Każdy zasób OSLC jest powiązany ze strukturą obiektów określającą strukturę danych dostępną dla zasobów. Aby zmodyfikować integrację z oprogramowaniem Maximo Asset Management, na przykład dodać do aplikacji nowe pola, należy zapoznać się z predefiniowanymi komponentami OSLC, co pozwoli na wybór najprostszej drogi wprowadzenia żądanych zmian. W poniższej tabeli wymieniono zasoby i struktury obiektów OSLC wspomagające integrację. Tabela 1. Zasoby i struktury obiektów OSLC. Zasób OSLC Opis Struktura obiektów AlphaNumericDomain Zasób domeny alfanumerycznej OSLCALNDOMAIN Amcrew Zasób załogi Amcrew OSLCAMCREW AmcrewLabor Zasób pracownika załogi Amcrew OSLCAMCREWLABOR AppDocType Zasób typu dokumentu aplikacji OSLCAPPDOCTYPE Asset Zasób reprezentujący zasób Maximo OSLCASSET AssetMeter Zasób licznika OSLCASSETMETER Assignment Zasób przydziału OSLCASSIGNMENT Classification Zasób klasyfikacji OSLCCLASSIFICATION Contract Zasób umowy OSLCCONTRACT Craft Zasób umiejętności OSLCCRAFT CraftSkill Zasób kwalifikacji OSLCCRAFTSKILL FailureCode Zasób kodu awarii OSLCFAILURECODE 12 Konfigurowanie aplikacji mobilnych Maximo Anywhere Tabela 1. Zasoby i struktury obiektów OSLC (kontynuacja). Zasób OSLC Opis Struktura obiektów FailureList Zasób listy awarii OSLCFAILURELIST FailureReport Zasób raportu o awarii OSLCFAILUREREPORT INVBALANCES Zasób sald magazynowych OSLCINVBALANCES Inventory Zasób magazynu OSLCINVENTORY Item Zasób pozycji OSLCITEM Labor Zasób pracownika OSLCLABOR LaborCraftRate Zasób stawki umiejętności pracownika OSLCLABORCRAFTRATE LabTrans Zasób transakcji pracowniczej OSLCLABTRANS Location Zasób lokalizacji OSLCOPERLOC LocationMeter Zasób licznika lokalizacji OSLCOPERLOCATIONMETER Locations Zasób wielu lokalizacji OSLCLOCATIONS MatuseTrans Zasób transakcji wykorzystania materiału OSLCMATUSETRANS MaxUser Zasób użytkownika OSLCMAXUSER MaxVars Zasób Maxvars OSLCMAXVARS Meter Zasób licznika OSLCMETER MultiAssetLocCI Zasób elementu konfiguracji lokalizacji z wieloma zasobami OSLCMULTIASSETLOCCI Person Zasób osoby OSLCPERSON PPCraftrate Zasób stawki premii za umiejętność pracownika OSLCPPCRAFTRATE PremiumPay Zasób premii OSLCPREMIUMPAY ServiceAddress Zasób adresu usługi OSLCSERVICEADDRESS Site Zasób ośrodka OSLCSITE SynonymDomain Zasób domeny synonimów OSLCSYNONYMDOMAIN Ticket Zasób zgłoszenia OSLCTICKET ToolItem Zasób pozycji narzędzia OSLCTOOLITEM ToolTrans Zasób transakcji narzędzia OSLCTOOLTRANS Modyfikowanie aplikacji mobilnych Maximo Anywhere 13 Tabela 1. Zasoby i struktury obiektów OSLC (kontynuacja). Zasób OSLC Opis Struktura obiektów Vendor Zasób dostawcy OSLCVENDOR WoActivity Zasób działania dot. zlecenia pracy OSLCWOACTIVITY WorkOrder Zasób zlecenia pracy OSLCWODETAIL WorkorderTicketRelation Zasób relacji zgłoszenia zlecenia pracy OSLCWOTICKETREL WorkType Zasób typu pracy OSLCWORKTYPE WoStatus Zasób statusu zlecenia pracy OSLCWOSTATUS WpEditSetting Zasób ustawienia Wpedit OSLCWPEDITSETTING Tworzenie i modyfikowanie pól w aplikacjach mobilnych Opracowując aplikację mobilną Maximo Anywhere, można dodawać pola, zmieniać nazwy pól i widoków, a także dodawać listy wartości do pól. Zmienianie etykiet pól Etykiety pól wyświetlane w aplikacjach mobilnych są zdefiniowane w pliku app.xml. Można zmieniać te etykiety, aby dopasować je do indywidualnej implementacji oprogramowania Maximo Anywhere. Procedura 1. W komponencie MobileFirst Studio, przejdź do katalogu MaximoAnywhere\apps\ app_name\artifact i otwórz plik app.xml za pomocą edytora XML. 2. Na karcie projektowania rozwiń widok zawierający atrybut etykiety, którą chcesz zmienić, i wprowadź nową nazwę. 3. Jeśli aplikacja mobilna jest tłumaczona na różne języki, zmień nazwę etykiety w plikach artifact.js wszystkich obsługiwanych języków. Na przykład, jeśli językiem podstawowym aplikacji mobilnej jest angielski, a aplikacja jest tłumaczona na język francuski, zmień nazwę etykiety w pliku artifact.js znajdującym się w katalogu MaximoAnywhere\apps\ WorkExecution\common\js\application\translation\nls\fr. 4. Zapisz zmiany. Aplikacja zostanie automatycznie zbudowana. 5. Opcjonalne: Aby wyświetlić podgląd zmian w programie Mobile Browser Simulator, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Run As > Preview. Co dalej Wdróż aplikację na serwerze Zmiana kolejności pól w aplikacji mobilnej Kolejność wyświetlania pól w widoku kontenera na urządzeniu mobilnym określona jest w pliku app.xml. Można zmienić położenia pól, aby użytkownicy wprowadzali informacje w kolejności dopasowanej do potrzeb biznesowych organizacji. 14 Konfigurowanie aplikacji mobilnych Maximo Anywhere O tym zadaniu Pola w widoku kontenera są zdefiniowane jako atrybuty w elementach <groupitem> w pliku definicji aplikacji i zawarte są w elemencie <group>. Element <group> powoduje wyświetlanie pól w widoku aplikacji. Kolejność atrybutów w grupie odzwierciedla kolejność wyświetlania atrybutów na ekranie. Widok kontenera w aplikacji mobilnej wyświetla predefiniowane pola i dane z rekordu. Na przykład widok Szczegóły zlecenia pracy w aplikacji Work Execution jest widokiem kontenera zawierającym pola zlecenia pracy. Procedura 1. W komponencie MobileFirst Studio, przejdź do katalogu MaximoAnywhere\apps\ app_name\artifact i otwórz plik app.xml za pomocą edytora XML. 2. Zmień pozycję pola. a. Na karcie projektowania odszukaj i zaznacz element <group> zawierający element <groupitem>, który chcesz przenieść. b. Na karcie źródła wytnij i wklej element <groupitem> w nowej pozycji. 3. Zapisz zmiany. Aplikacja zostanie automatycznie zbudowana. 4. Opcjonalne: Aby wyświetlić podgląd zmian w programie Mobile Browser Simulator, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Run As > Preview. Co dalej Wdróż aplikację na serwerze Dodawanie pól do aplikacji mobilnej Pola dodawane do aplikacji mobilnej definiuje się za pośrednictwem plików RDF zasobów OSLC. Dodając pole do aplikacji mobilnej, należy określić zasób OSLC pola jako atrybut zasobu w pliku definicji aplikacji. O tym zadaniu Zasób OSLC pola dodawanego do aplikacji mobilnej musi istnieć programie Maximo Asset Management. Dla dodawanego pola można wykorzystać istniejący zasób OSLC. Można także utworzyć pole, tworząc zasób pola w programie Maximo Asset Management i importując plik RDF do programu Maximo Anywhere. Dodając pole do widoku aplikacji, należy najpierw zdefiniować zasób pola w sekcji danych pliku definicji aplikacji. Następnie zasób dodaje się do widoku w sekcji interfejsu użytkownika, dzięki czemu pole jest widoczne w aplikacji. Jeśli aplikacja mobilna jest tłumaczona na różne języki, wprowadź nazwę pola w plikach artifact.js wszystkich obsługiwanych języków. Pliki artifact.js poszczególnych języków znajdują się w katalogu MaximoAnywhere\apps\nazwa_aplikacji\common\js\application\ translation. Procedura 1. W komponencie MobileFirst Studio, przejdź do katalogu MaximoAnywhere\apps\ app_name\artifact i otwórz plik app.xml za pomocą edytora XML. 2. W sekcji danych dodaj atrybut do zasobu, do którego chcesz dodać pole. a. Na karcie projektowania odszukaj element <resource>, do którego chcesz dodać pole. Modyfikowanie aplikacji mobilnych Maximo Anywhere 15 b. Na karcie źródła dodaj do elementu <resource> atrybut zawierający informacje o dokumencie kształtu. Na przykład, aby dodać pole o nazwie Ryzyko do widoku Szczegóły zlecenia pracy w aplikacji Work Execution, dodaj szczegóły atrybuty ryzyka do zasobu o nazwie workOrder: <resource providedBy="/oslc/sp/WorkManagement" describedBy="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder" name="workOrder" pageSize="200" class="application.business.WorkOrderObject> <attributes> <.....> <attribute name="risk" describedByProperty="spi_wm:risk" index="false" /> 3. W sekcji interfejsu użytkownika dodaj atrybut zasobu do widoku, do którego chcesz dodać pole. a. Na karcie projektowania odszukaj element <view>, który chcesz zmodyfikować. b. Na karcie źródła dodaj atrybut zasobu do elementu <group item> w widoku, który modyfikujesz. Na przykład dodaj atrybut zasobu Ryzyko do widoku Szczegóły zlecenia pracy: <view id="WorkExecution.WorkDetailView" label="Szczegóły zlecenia pracy"> ... <groupitem transitionTo="WorkExecution.DescriptionView"> <text resourceAttribute="description" label="Opis" editable="true" placeHolder="Stuknij, aby wprowadzić" /> </groupitem> <groupitem> <text resourceAttribute="risk" label="Ryzyko" editable="true" placeHolder="Stuknij, aby wprowadzić" /> </groupitem> 4. Opcjonalne: Udostępnij pole do edycji, dodając wartość true do atrybutu editable i dodając wartość stuknij, aby wprowadzić do atrybutu placeholder. Atrybut placeholder informuje, że pole jest edytowalne i że można w nim wprowadzić dowolną wartość. Aby pole było przeznaczone tylko do odczytu, zmień wartość atrybutu editable na false i usuń atrybut placeholder. 5. Zapisz zmiany. Aplikacja zostanie automatycznie zbudowana. 6. Opcjonalne: Aby wyświetlić podgląd zmian w symulatorze, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Run As > Preview. Co dalej Wdróż aplikację na serwerze Zadania pokrewne: “Tworzenie zasobów OSLC w programie Maximo Asset Management” na stronie 10 Zasoby OSLC są potrzebne do pobierania i przetwarzania danych w aplikacjach mobilnych. Definiowane zasoby OSLC muszą być oparte na powiązanej strukturze obiektu z programu Maximo. W celu zdefiniowania dodatkowych danych nowych zasobów, które mają być używane w aplikacjach mobilnych, należy utworzyć strukturę obiektów i zasób w programie Maximo Asset Management. Odsyłacze pokrewne: “Predefiniowane zasoby i struktury obiektów OSLC” na stronie 12 Maximo Anywhere zawiera predefiniowane zasoby OSLC służące do integracji z oprogramowaniem Maximo Asset Management. Każdy zasób OSLC jest powiązany ze strukturą obiektów określającą strukturę danych dostępną dla zasobów. 16 Konfigurowanie aplikacji mobilnych Maximo Anywhere Dodawanie list wartości jako listy wyszukiwania dla pól Z niektórymi polami w aplikacji mobilnej mogą być związane listy wartości lub domeny, z których użytkownicy mogą wybierać wartości. Są to tzw. listy wyszukiwania. Listę wartości dodaje się jako listę wyszukiwania dla pola w pliku app.xml. Zanim rozpoczniesz Dodaj pole, z którym chcesz powiązać listę wartości, do aplikacji mobilnej. Maximo Anywhere zawiera zasoby OSLC dla domen synonimów i domen alfanumerycznych (ALN). Sprawdź, czy w programie Maximo Anywhere dostępny jest zasób OSLC odzwierciedlający typ domeny, którą chcesz dodać. Można także utworzyć zasoby dla domeny w programie Maximo Asset Management i zaimportować je do programu Maximo Anywhere. O tym zadaniu Aby dodać listę wartości do pola, należy dodać ją jako zasób, a następnie utworzyć wyszukiwanie dla tego zasobu. Można następnie dodać zasób i wyszukiwanie do widoku dla pola. Procedura 1. W programie MobileFirst Studio otwórz w edytorze XML plik app.xml dla aplikacji mobilnej, którą chcesz zmodyfikować. Plik app.xml znajduje się w folderzeMaximoAnywhere\apps\app_name\artifact. 2. W sekcji definicji danych dodaj dane zasobu będącego listą wartości. Na przykład, aby dodać listę wartości do pola Ryzyko w widoku Szczegóły zlecenia pracy aplikacji Work Execution, dodaj dane zasobu dla domeny o nazwie RISKDOMAIN do sekcji danych w pliku app.xml. RISK_DOMAIN to domena alfanumeryczna zawierająca wartości wysokie, średnie i niskie. <!-- RISK DOMAIN --> <resource providedBy="/oslc/sp/SmarterPhysicalInfrastructure" describedBy="http://jazz.net/ns/ism/asset/smarter_physical_infrastructure#AlphaNumericDomain" name="riskDomain" pageSize="10" additionalData="true"> <attributes> <attribute name="value" describedByProperty="spi:value" /> <attribute name="domainid" describedByProperty="spi:domainid"/> <attribute name="alndomainid" describedByProperty="spi:alndomainid"/> <attribute name="description" describedByProperty="spi:description" /> </attributes> <queryBases> <queryBase name="getRisk" queryUri="/oslc/os/oslcalndomain" /> </queryBases> <whereClause clause="spi:domainid=’RISKDOMAIN’" /> </resource> 3. W sekcji interfejsu użytkownika utwórz dane wyszukiwania dla listy wartości i powiąż zasób z wyszukiwaniem. Na przykład dodaj wyszukiwanie dla zasobu RISK DOMAIN. <!-- Wyszukiwanie w domenie Ryzyko --> <lookup id="WorkExecution.RiskLookup" label="Wybierz poziom ryzyka" resource="riskDomain"> <requiredResources> <requiredResource name="riskDomain"/> </requiredResources> <list resource="riskDomain"> <listItemTemplate layout="Item1Desc1"> <listtext resourceAttribute="value" layoutInsertAt="item1" cssClass="bold textappearance-medium"/> <listtext resourceAttribute="description" layoutInsertAt="desc1" cssClass="bold textappearance-medium"/> </listItemTemplate> Modyfikowanie aplikacji mobilnych Maximo Anywhere 17 </list> <returnAttributes> <returnAttribute sourceAttribute="value" targetAttribute="risk" /> </returnAttributes> </lookup> 4. W sekcji interfejsu użytkownika powiąż nowe wyszukiwanie z polem. a. Na karcie projektowania odszukaj element <view> pola, do którego chcesz dodać listę wyszukiwania. b. Na karcie źródła dodaj wyszukiwanie do elementu <group item> w widoku, który modyfikujesz. Oto przykład powiązania wyszukiwania w domenie ryzyka z widokiem Szczegóły zlecenia pracy. <view id="WorkExecution.WorkDetailView" label="Work Order Details" resource="workOrder"> <...> <container resource="workOrder"> <...> <groupitem> <text resourceAttribute="risk" label="Ryzyko" editable="true" lookup="WorkExecution.RiskLookup" lookupAttribute="risk" placeHolder="Tap to enter" /> </groupitem> <...> </view> 5. Zapisz zmiany. Aplikacja zostanie zbudowana automatycznie. 6. Opcjonalne: Aby wyświetlić podgląd zmian i przetestować je w symulatorze, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Run As > Preview. Co dalej Wdróż aplikację na serwerze Zadania pokrewne: “Tworzenie zasobów OSLC w programie Maximo Asset Management” na stronie 10 Zasoby OSLC są potrzebne do pobierania i przetwarzania danych w aplikacjach mobilnych. Definiowane zasoby OSLC muszą być oparte na powiązanej strukturze obiektu z programu Maximo. W celu zdefiniowania dodatkowych danych nowych zasobów, które mają być używane w aplikacjach mobilnych, należy utworzyć strukturę obiektów i zasób w programie Maximo Asset Management. Odsyłacze pokrewne: “Predefiniowane zasoby i struktury obiektów OSLC” na stronie 12 Maximo Anywhere zawiera predefiniowane zasoby OSLC służące do integracji z oprogramowaniem Maximo Asset Management. Każdy zasób OSLC jest powiązany ze strukturą obiektów określającą strukturę danych dostępną dla zasobów. Dodawanie rekordów powiązanych do aplikacji mobilnej Obiekty, które można dodawać jako rekordy powiązane do aplikacji mobilnych, są zdefiniowane w plikach RDF (Resource Description Framework) określonych w specyfikacji OSLC. W programie Maximo Asset Management można dodać rekord powiązany do zasobu OSLC i używać metadanych obiektu jako rekordu powiązanego w aplikacji Maximo Anywhere. O tym zadaniu Dodając obiekt powiązany lub podrzędny w programie Maximo Asset Management do struktury obiektu OSLC istniejącej w programie Maximo Anywhere, modyfikujesz nadrzędny 18 Konfigurowanie aplikacji mobilnych Maximo Anywhere zasób OSLC, tak aby zawierał obiekt podrzędny. Aby użyć obiektu podrzędnego jako rekordu powiązanego w aplikacji mobilnej, należy zaimportować plik RDF z programu Maximo Asset Management do programu Maximo Anywhere. Po zaimportowaniu pliku RDF należy zdefiniować zasób i widoki dla rekordu powiązanego w plikach artefaktów aplikacji. Zasób obiektu podrzędnego musi istnieć w pliku app.xml, tak aby pola były widoczne w aplikacji mobilnej. Aby uwidocznić powiązany rekord, należy w pliku app.xml dodać widok zawierający szczegóły rekordu i widok zawierający listę rekordów powiązanych z aplikacją mobilną. Na przykład dziennik komunikacji jest obiektem podrzędnym obiektu biznesowego (MBO) Zlecenie pracy w programie Maximo. Lista dzienników komunikacji może być powiązana ze Zleceniem pracy. Aby używać dzienników komunikacji jako rekordów powiązanych w widoku Szczegóły zlecenia pracy aplikacji Work Execution, należy dodać obiekt dziennika komunikacji do struktury obiektu OSLC zlecenia pracy i powiązanego zasobu OSLC w programie Maximo Asset Management. Zaimportuj zmodyfikowane metadane do programu Maximo Anywhere i dodaj atrybut listy dzienników komunikacji do pliku app.xml, tak aby rekordy dzienników komunikacji i ich pola były widoczne w widoku Szczegóły zlecenia pracy. Procedura 1. W programie Maximo Asset Management dodaj obiekt powiązanego rekordu do zasobu OSLC. a. W aplikacji Struktury obiektu otwórz rekord struktury obiektów powiązany z zasobem, do którego chcesz dodać obiekt. b. Dodaj obiekt podrzędny. c. Określ obiekt nadrzędny i relację oraz zapisz rekord. Zasób OSLC powiązany ze strukturą obiektów zostanie automatycznie uzupełniony o obiekt. d. W aplikacji Zasoby OSLC odszukaj zasób OSLC i sprawdź, czy obiekt podrzędny został dodany. Na przykład, aby dodać obiekt dziennika komunikacji (commlog) do zasobu zlecenia pracy, odszukaj rekord struktury obiektów oslcwodetail. Dodaj obiekt commlog. Określ WORKORDER jako obiekt nadrzędny i określ COMMLOG jako relację z zasobem. W aplikacji Zasoby OSLC odszukaj zasób WORKORDER i sprawdź, czy został dodany obiekt COMMLOG. 2. Zaimportuj zmodyfikowany zasób OSLC z programu Maximo Asset Management do programu Maximo Anywhere. a. Zmodyfikuj plik anywhere-rdfs-puller.xml, dodając nazwę RDF. b. Uruchom plik anywhere-rdfs-puller.xml, aby zaimportować plik RDF do katalogu zasobów OSLC w programie Maximo Anywhere. c. Sprawdź, czy plik RDF został zaimportowany do katalogu MaximoAnywhere\oslcdocs\resources\rdf\oslc. Na przykład w programie MobileFirst Studio zmodyfikuj plik anywhere-rdfs-puller.xml, dodając nazwę RDF commlog. <target name="all" description="downloads all rdfs" /> <...> <downloadOneRdf context="/oslc/shapes/oslcalndomain" /> <downloadOneRdf context="/oslc/shapes/oslcwodetail/commlog" </target> /> Uruchom plik anywhere-rdfs-puller.xml, aby zaimportować plik RDF commlog. Upewnij się, że dokument kształtu zasobu commlog został zaimportowany do katalogu MaximoAnywhere\oslc-docs\resources\rdf\oslcshapes\oslcwodetail\commlog. 3. Zdefiniuj atrybut i zasób dla rekordu powiązanego w sekcji danych pliku app.xml. Modyfikowanie aplikacji mobilnych Maximo Anywhere 19 a. W programie MobileFirst Studio otwórz plik app.xml i dodaj atrybut powiązanego rekordu do zasobu OSLC. Atrybut definiuje rekord powiązany dostępny do użycia w aplikacji. b. Dodaj zasób powiązanego rekordu. Zasób opisuje metadane pól używanych przez rekord powiązany. Na przykład dodaj atrybut dziennika commlog do zasobu zlecenia pracy, aby dziennik komunikacji był widoczny w widoku podrzędnym widoku Szczegóły zlecenia pracy aplikacji Work Execution. Widok Szczegóły zlecenia pracy odwołuje się do zasobu workOrder. <resource providedBy="/oslc/sp/WorkManagement" describedBy="http://jazz.net/ns/ism/work/smarter_physical_infrastructure#WorkOrder" name="workOrder" pageSize="200" class="application.business.WorkOrderObject"> <attributes> .... <attribute name="commloglist" describedByProperty="spi_wm:commlog" describedByResource="commLogResource"/> .... <localAttribute name="commloglistsize" dataType="string" persistent="false" /> </attributes> .... </resource> Dodaj zasób dziennika komunikacji z polami, które będą używane w aplikacji Work Execution. <!-- Zasób dziennika komunikacji --> <resource name="commLogResource"> <attributes> <attribute name="createdate" describedByProperty="spi_wm:createdate" /> <attribute name="createby" describedByProperty="spi_wm:createby" /> <attribute name="subject" describedByProperty="spi_wm:subject" /> <attribute name="message" describedByProperty="spi_wm:message" /> <attribute name="sendfrom" describedByProperty="spi_wm:sendfrom" /> <attribute name="sendto" describedByProperty="spi_wm:sendto" /> </attributes> </resource> 4. W sekcji interfejsu użytkownika pliku app.xml utwórz widok prezentujący szczegóły rekordu powiązanego. a. Dodaj element <view> określający identyfikator i etykietę widoku. b. Zdefiniuj zasób dla widoku. c. Dodaj pola widoku. Na przykład, aby utworzyć widok szczegółów dziennika komunikacji, określ atrybut identyfikatora WorkExecution.CommLogDetailView w nowym elemencie <view>. Widok szczegółów ma nazwę Wpis w dzienniku komunikacji, a do widoku dodawane są następujące pola (jako przeznaczone tylko do odczytu): v Utworzył(a) v Adresat v Temat v Komunikat Dodawana jest także data i godzina utworzenia dziennika komunikacji. <!-- Definicja widoku szczegółów dziennika komunikacji --> <view id="WorkExecution.CommLogDetailView" label="Wpis w dzienniku komunikacji"> <requiredResources> <requiredResource name="workOrder"> <requiredAttribute name="commloglist"/> </requiredResource> </requiredResources> <container resource="workOrder" attribute="commloglist"> <group> <groupitem> <text resourceAttribute="createdate" editable="false" /> 20 Konfigurowanie aplikacji mobilnych Maximo Anywhere </groupitem> <groupitem> <text label="Utworzył(a)" resourceAttribute="createby" editable="false"/> </groupitem> <groupitem> <text label="Adresat" resourceAttribute="sendto" editable="false"/> </groupitem> <groupitem> <text label="Subject" resourceAttribute="subject" editable="false" /> </groupitem> <groupitem> <text label="Message" resourceAttribute="message" editable="false" /> </groupitem> </group> <group> <groupitem> <lastupdatetext /> </groupitem> </group> </container> </view> 5. W sekcji interfejsu użytkownika pliku app.xml utwórz widok prezentujący listę rekordów powiązanych dla aplikacji mobilnej. a. Dodaj element <view> określający identyfikator i etykietę widoku. b. Zdefiniuj zasób i atrybut dla widoku. c. Dodaj pola widoku. d. Dodaj odsyłacz do widoku szczegółów. e. Określ nazwę szablonu układu dla widoku listy. Na przykład, aby utworzyć widok listy dziennika komunikacji, określ atrybut identyfikatora WorkExecution.CommLogView w nowym elemencie <view>. Widok listy nosi nazwę Dzienniki komunikacji. Do widoku dodawane są następujące pola (jako przeznaczone tylko do odczytu): v Utworzył(a) v Adresat v Temat Dodawana jest także data i godzina utworzenia dziennika komunikacji. Aby uzyskać dostęp do widoku szczegółów Wpis w dzienniku komunikacji z widoku listy Dziennik komunikacji, wprowadź identyfikator WorkExecution.CommLogDetailView do atrybutu transitionTo. Układ widoku nosi nazwę CommLogListItem. <!-- Definicja widoku listy dziennika komunikacji -<view id="WorkExecution.CommLogView" label="Dziennik komunikacji" > <requiredResources> <requiredResource name="workOrder"> <requiredAttribute name="commloglist"/> </requiredResource> </requiredResources> <list resource="workOrder" attribute="commloglist" transitionTo="WorkExecution.CommLogDetailView"> <sortOptions> <sortOption label="Created Date" > <sortAttribute name="createdate" direction="asc" /> </sortOption> <sortOption label="Created By"> <sortAttribute name="createby" direction="asc" /> </sortOption> </sortOptions> <listItemTemplate layout="CommLogListItem"> <listtext resourceAttribute="createdate" layoutInsertAt="item1" /> Modyfikowanie aplikacji mobilnych Maximo Anywhere 21 <listtext resourceAttribute="createby" layoutInsertAt="item2" /> <listtext resourceAttribute="sendto" layoutInsertAt="item3" /> <listtext resourceAttribute="subject" layoutInsertAt="item4" cssClass="bold textappearance-medium"/> </listItemTemplate> </list> </view> 6. W katalogu MaximoAnywhere\apps\app_name\artifact\layouts\templates\small utwórz szablon układu dla widoku listy. Na przykład, aby zdefiniować układ dla widoku Dziennik komunikacji, utwórz plik układu o nazwie CommLogListItem.xml w katalogu MaximoAnywhere\apps\ WorkExecution\artifact\layouts\templates\small i określ strukturę układu. <layout width="100"> <row> <column columnid="item1" <column columnid="item2" <column columnid="item3" </row> <row> <column columnid="item4" </row> </layout> colspan="4" /> colspan="4" /> colspan="4" /> colspan="12" /> 7. W sekcji interfejsu użytkownika pliku app.xml dodaj do widoku głównego aplikacji mobilnej pole umożliwiające dostęp do rekordu powiązanego. Na przykład, aby uzyskać dostęp do widoku listy Dziennik komunikacji z widoku Szczegóły zlecenia pracy, dodaj widok listy do elementu <groupitem> w widoku. <view id="WorkExecution.WorkDetailView" label="Szczegóły zlecenia pracy" resource="workOrder"> .... <container resource="workOrder"> .... <group> <groupitem transitionTo="WorkExecution.CommLogView" layout="Item1Count1Button1"> <text value="Communications Log" editable="false" layoutInsertAt="item1" cssClass="relatedRecords"/> <text resourceAttribute="commloglistsize" editable="false" layoutInsertAt="count1"> </text> </groupitem> </group> <group> <groupitem> <lastupdatetext /> </groupitem> </group> </container> </view> 8. Opcjonalne: Aby wyświetlać liczbę rekordów powiązanych dostępnych z widoku głównego, określ zmienne wielkości listy i atrybut powiązanego rekordu w powiązanym pliku JavaScript w katalogu MaximoAnywhere\apps\WorkExecution\common\js\ application\handlers. a. Określ atrybut zasobu rekordu powiązanego w zmiennej attributes. Atrybut zasobu rekordu powiązanego musi być zdefiniowany w zasobie OSLC w pliku app.xml. b. Określ atrybut zasobu określający wielkość listy rekordów powiązanych w zmiennej listSizeArray. Atrybut zasobu określający wielkość listy musi być zdefiniowany jako atrybut lokalny w zasobie OSLC w pliku app.xml. Na przykład, aby wyświetlać listę dzienników komunikacji dla każdego zlecenia pracy w widoku Szczegóły zlecenia pracy, dodaj następujące zmienne do pliku WODetailHandler.js w katalogu MaximoAnywhere\apps\WorkExecution\common\ js\application\handlers: v Dodaj atrybut zasobu commloglistsize do zmiennej listSizeArray. v Dodaj atrybut zasobu commloglist do zmiennej attributes. 22 Konfigurowanie aplikacji mobilnych Maximo Anywhere var listSizeArray = [’tasklistsize’, ’assignmentlistsize’, ’materiallistsize’, ’toollistsize’, ’actuallaborlistsize’, ’actualmateriallistsize’, ’actualtoollistsize’,’workloglistsize’, ’multiassetloclistsize’, ’attachmentssize’, ’commloglistsize’]; var attributes = ["tasklist", "assignmentlist", "materiallist", "toollist", "actuallaborlist", "actualmateriallist", "actualtoollist", "workloglist", "multiassetloclist", "attachments", "commloglist"]; 9. Zapisz zmiany. Aplikacja zostanie automatycznie zbudowana. Co dalej Aby sprawdzić zmiany w programie Mobile Browser Simulator, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Run As > Preview. Wdróż aplikację na serwerze Organizowanie układu ekranów aplikacji mobilnej Istnieje możliwość dostosowania układu ekranów aplikacji mobilnych Maximo Anywhere do przepływu pracy obowiązującego w konkretnej organizacji. Można zmieniać kolejność pól na ekranie i modyfikować pliki szablonów układu, aby uwzględnić w nich nowe pola. Pliki szablonów układu Plik szablonu układu to plik XML definiujący strukturę i kolejność elementów sterujących w widokach w aplikacji mobilnej Maximo Anywhere. Zmieniając strukturę widoku w pliku definicji aplikacji, należy zmodyfikować powiązany plik szablonu układu. Maximo Anywhere zawiera pliki szablonów układu dla widoków list aplikacji mobilnych. W plikach app.xml definiujących aplikacje mobilne element <listitemTemplate> identyfikuje nazwę pliku szablonu układu używanego dla widoku. Pliki szablonów układu dla aplikacji Work Execution znajdują się w katalogu MaximoAnywhere\apps\WorkExecution\artifact\layouts\templates\small, a takie pliki dla aplikacji Work Approval znajdują się w katalogu MaximoAnywhere\apps\ WorkApproval\artifact\layouts\templates\small. Struktura plików układu Element <layout> jest elementem głównym pliku szablonu układu. Elementy <row> i <column> w układzie definiują rozmieszczenie pól w widoku. Aby zastosować strukturę do aplikacji mobilnej, można zdefiniować następujące atrybuty Atrybut width Szerokość układu wyrażona jako odsetek szerokości ekranu urządzenia mobilnego. Szerokość definiuje się w ramach elementu <layout>. Atrybut columnid Punkt przyłączenia pola w widoku aplikacji mobilnej. Atrybut columnid jest powiązany z atrybutem layoutInsertAt w pliku app.xml. Atrybut colspan Liczba kolumn zajmowanych przez wiersz. Atrybut rowspan Liczba wierszy, z jakiej powinna składać się kolumna, Aby modyfikować wartość rowspan, należy zachowywać pozycję pionową atrybutów columnid. Modyfikowanie aplikacji mobilnych Maximo Anywhere 23 Przykład układu widoku listy prac Plik układu WorkListItem.xml zawiera trzy wiersze definiujące strukturę powiązanego widoku aplikacji mobilnej i zajmujące całą szerokość ekranu urządzenia mobilnego. Każdy wiersz definiuje atrybut columnid powiązany z atrybutem layoutInsertAt w pliku app.xml. Atrybut colspan definiuje liczbę kolumn zajmowanych przez wiersz. <layout width="100"> <row> <column columnid="item3" colspan="10" /> <column columnid="button1" colspan="2" rowspan="3" halign="right"/> </row> <row> <column columnid="item1" colspan="3" /> <column columnid="item2" colspan="7" /> </row> <row> <column columnid="item4" colspan="5" /> <column columnid="item5" colspan="5" /> </row> </layout> Widok Przypisane prace jest zdefiniowany w pliku app.xml aplikacji Work Execution. Powiązany plik układu identyfikowany przez atrybut layout to plik WorkListItem.xml. Atrybut resourceAttribute definiuje każde pole widoczne w widoku. Atrybut layoutInsertAt definiuje punkt przyłączenia pól. Na przykład atrybut layoutInsertAt dla pola czasu rozpoczęcia (starttime) jest określony jako item 2. Atrybut columnid w pliku WorkListItem.xml dla elementu item2 znajduje się w drugim wierszu. Dlatego pole rozpoczęcia znajduje się w drugim wierszu widoku. <view id="WorkExecution.WorkItemsView" label="Przypisane prace" saveonshow="true" showBackButton="false" > <listItemTemplate layout="WorkListItem"> <listtext resourceAttribute="wonum" layoutInsertAt="item1" cssClass="bold textappearance-medium"/> <listtext resourceAttribute="starttime" layoutInsertAt="item2" /> <listtext resourceAttribute="statusdesc" layoutInsertAt="item4" /> <listtext resourceAttribute="description" layoutInsertAt="item3" cssClass="bold textappearance-medium"/> <listtext resourceAttribute="assetnumanddescription" layoutInsertAt="item5" /> </view> Zmienianie układu pól w widokach listy Istnieje możliwość modyfikowania układów widoków listy, w których rekordy wyświetlane są w postaci przewijanych list. Można na przykład zmienić kolejność istniejących pól lub dodać pole. Zmieniając kolejność elementów widoku w pliku app.xml, zmieniasz także powiązany plik szablonu układu. O tym zadaniu W pliku app.xml nazwa szablonu układu powiązanego z widokiem jest określona w atrybucie layout elementu <listItemTemplate>. Element <listtext> definiuje atrybut zasobu lub pole w strukturze układu, a atrybut layoutInsertAt definiuje punkt przyłączenia pola w widoku mobilnym. W pliku szablonu układu wartość atrybutu columnid odpowiada wartości atrybutu layoutInsertAt. Jeśli zmieniasz strukturę widoku, to wartości atrybutów columnid i layoutInsertAt muszą być zgodne, aby zmiany układu widoku odniosły skutek. Na przykład, jeśli dodajesz pole do widoku w pliku app.xml, wartość atrybutu columnid w pliku szablonu układu musi zgadzać się z wartością atrybutu layoutInsertAt, aby pole było wyświetlane w widoku na urządzeniu mobilnym. 24 Konfigurowanie aplikacji mobilnych Maximo Anywhere Procedura 1. W sekcji interfejsu użytkownika pliku app.xml odszukaj widok, który chcesz zmienić. 2. Zmodyfikuj element <listtext> w elemencie <listItemTemplate> widoku, modyfikując atrybut resource i atrybut layoutInsertAt, a następnie zapisz plik. Na przykład, aby dodać pole o nazwie Przełożony do widoku listy Przypisana praca, dodaj atrybut zasobu pola do elementu <listtext> w elemencie <listItemTemplate>. Atrybutowi layoutInsertAt przypisz wartość item6. Atrybutowi layoutInsertAt przypisujemy wartość item6, ponieważ pole Przełożony będzie szóstym polem w widoku. <view id="WorkExecution.WorkItemsView" label="Przypisane prace" saveonshow="true" showBackButton="false" > <listItemTemplate layout="WorkListItem"> <listtext resourceAttribute="wonum" layoutInsertAt="item1" cssClass="bold textappearance-medium"/> <listtext resourceAttribute="starttime" layoutInsertAt="item2" /> <listtext resourceAttribute="statusdesc" layoutInsertAt="item4" /> <listtext resourceAttribute="description" layoutInsertAt="item3" cssClass="bold textappearance-medium"/> <listtext resourceAttribute="assetnumanddescription" layoutInsertAt="item5" /> <listtext resourceAttribute="supervisor" layoutInsertAt="item6" /> </view> Dodając pole, należy wprowadzić zmianę w pliku szablonu układu. Uwaga: Należy także dodać dane zasobu dla pola Przełożony do zasobu Zlecenie pracy, aby pole to istniało w widoku. 3. Otwórz powiązany plik szablonu układu w katalogu MaximoAnywhere\apps\ app_name\artifact\layouts\templates\small. 4. Zmodyfikuj strukturę układu, tak aby odzwierciedlała zmiany wprowadzone w pliku app.xml. Można wprowadzić następujące zmiany w układzie: v Wprowadź element <row>, aby dodać wiersz. v Wprowadź atrybut columnid, aby wskazać punkt przyłączenia pola. Wartość atrybutu columnid musi zgadzać się z wartością atrybutu layoutInsertAt dla pola. v Dodaj wartość atrybutu colspan aby przenieść element <column> na określoną pozycję w ramach wiersza. v Zmodyfikuj wartość atrybutu rowspan, aby zmienić położenie pionowe odpowiednich atrybutów columnid. Jeśli nowe pole zostało umieszczone w istniejącym wierszu, nie trzeba modyfikować atrybutu rowspan. Na przykład plik układu powiązany z widokiem listy prac zawiera cztery wiersze. Atrybut rowspan dla atrybutu columnid button1 w drugim wierszu wynosi 3, ponieważ przycisk zajmuje trzy kolejne wiersze widoku. <layout width="100"> <row> <column columnid="item1" colspan="10" /> </row> <row> <column columnid="item3" colspan="10" /> <column columnid="button1" colspan="2" rowspan="3" halign="right"/> </row> <row> <column columnid="item2" colspan="10" /> </row> <row> <column columnid="item4" colspan="5" /> <column columnid="item5" colspan="5" /> </row> </layout> Modyfikowanie aplikacji mobilnych Maximo Anywhere 25 Aby uwzględnić oddanie pola Przełożony w nowym wierszu widoku listy, dodaj element <row> do układu i zdefiniuj atrybut columnid jako item6. Wartość rowspan dla atrybutu columnid button1 wynosi 4, tak aby przycisk licznika czasu zajmował kolejne wiersze, w tym nowy wiersz dodany do widoku. <layout width="100"> <row> <column columnid="item1" colspan="10" /> </row> <row> <column columnid="item3" colspan="10" /> <column columnid="button1" colspan="2" rowspan="4" halign="right"/> </row> <row> <column columnid="item2" colspan="10" /> </row> <row> <column columnid="item4" colspan="5" /> <column columnid="item5" colspan="5" /> </row> <row> <column columnid="item6" colspan="5" /> </row> </layout> 5. Zapisz zmiany w układzie. Aplikacja zostanie automatycznie zbudowana. 6. Opcjonalne: Aby wyświetlić podgląd zmian, kliknij folder aplikacji prawym przyciskiem myszy i wybierz pozycje Uruchom jako > Podgląd. Co dalej Wdróż aplikację na serwerze. Modyfikowanie plików javascript aplikacji mobilnych Maximo Anywhere stosuje względem aplikacji mobilnych reguły biznesowe i zachowania. Można zmodyfikować pliki JavaScript powiązane z plikiem app.xml, aby zaimplementować takie reguły. Tworzenie pól warunkowych w aplikacjach Aby móc sterować widocznością pola w aplikacji Maximo Anywhere, można utworzyć pole warunkowe. O tym zadaniu W pliku app.xml należy zdefiniować procedurę obsługi zdarzenia, aby określić, czy pokazywanie lub ukrywanie pola zależy od wartości innego pola, gdy użytkownik mobilny wybierze wartość. Procedury obsługi zdarzeń implementuje się jako pliki JavaScript powiązane z widokiem w aplikacji mobilnej. Na przykład, jeśli dla zlecenia pracy określono typ pracy Konserwacja awaryjna, to w widoku Szczegóły zlecenia pracy powinno być wyświetlane pole Ryzyko. Pole Ryzyko nie jest jednak potrzebne w zleceniach pracy innego typu, zatem należy zastosować warunek sterujący jego widocznością. Należy utworzyć procedurę obsługi zdarzenia dla pola Ryzyko, aby monitorować zasób i atrybut skojarzony z typem pracy i wyświetlać pole, jeśli użytkownik urządzenia mobilnego wybierze wartość Konserwacja awaryjna w polu Typ pracy. Jeśli użytkownik mobilny zmieni również wartość typu pracy, procedura obsługi sprawdzi tę wartość, aby określić, czy pole Ryzyko jest już wyświetlane. 26 Konfigurowanie aplikacji mobilnych Maximo Anywhere Procedura 1. W programie MobileFirst Studio otwórz plik app.xml aplikacji, którą chcesz zmienić, i dodaj pole, do którego chcesz zastosować warunek. 2. W sekcji interfejsu użytkownika pliku app.xml dodaj typ wyświetlania „procedura obsługi zdarzenia” do widoku, do którego należą pola. a. W elemencie <text> nowego pola dodaj element podrzędny o nazwie <eventHandlers>. b. W elemencie <eventHandlers> dodaj element podrzędny o nazwie <eventHandler>. c. Określ render jako atrybut zdarzenia i dodaj atrybuty metody i klasy. Na przykład, aby wyświetlać pole Ryzyko dla prac awaryjnych, dodaj procedurę obsługi zdarzenia do elementu <groupitem> pola Ryzyko w widoku Szczegóły zlecenia pracy, z atrybutem zdarzenia ustawionym na render i atrybutem metody ustawionym na handleConditionalRisk. <view id="WorkExecution.WorkDetailView" label="Szczegóły zlecenia pracy"> ... <groupitem> <text resourceAttribute="risk" label="Ryzyko" editable="true" placeHolder="Stuknij, aby wprowadzić" /> <eventHandlers> <eventHandler event="render" method="handleConditionalRisk" class="application.customerExtensions.WODetailExtensionHandler" /> </eventHandlers> </text> </groupitem> .... </view> 3. Zrealizuj warunek w procedurze obsługi zdarzenia zapisanej w pliku JavaScript. a. Utwórz folder na procedurę obsługi zdarzenia w katalogu MaximoAnywhere\apps\ nazwa_aplikacji\common\js\application. Nazwa folderu musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. b. Dodaj plik JavaScript do katalogu MaximoAnywhere\apps\nazwa_aplikacji\ common\js\application. Nazwa pliku JavaScript musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. c. Dodaj warunek procedury obsługi zdarzenia render do pliku JavaScript. Na przykład, aby dodać kod JavaScript procedury obsługi zdarzenia wyświetlającej pole Ryzyko dla prac awaryjnych, utwórz plik WODetailExtensionHandler.js w katalogu MaximoAnywhere\apps\nazwa_aplikacji\common\js\application\ customerExtensions i dodaj w nim kod JavaScript. define("application/customerExtensions/WODetailExtensionHandler", [ "dojo/_base/declare", "dojo/_base/lang", "platform/handlers/_ApplicationHandlerBase", "application/handlers/CommonHandler"], function(declare, lang, ApplicationHandlerBase, CommonHandler) { return declare( [ApplicationHandlerBase], { handleConditionalRisk: function(eventContext){ // Program obsługi widoku szczegółów ZP, // który obsługuje zmiany w polu worktype i wyświetla pole Ryzyko // bieżące zlecenie workOrder znajduje się w obiekcie eventContext var currWO = CommonHandler._getAdditionalResource(eventContext,"workOrder").getCurrentRecord(); var worktype = currWO.get(’worktype’); // Obecne pole Ryzyko jest w obiekcie eventContext, // aby pole było wyświetlane, gdy worktype równa się EMERGENCY eventContext.setDisplay(worktype && worktype == "EM"); // Podłączamy program nasłuchujący, by monitorować // atrybut worktype i wyświetlać pole ryzyka, gdy atrybut równy jest Emergency jeśli (!eventContext.hasResourceWatch("workTypeWatch")) { eventContext.addResourceWatchHandle(currWO.watch(’worktype’, lang.hitch(this, function(attrName, oldValue, newValue) { Modyfikowanie aplikacji mobilnych Maximo Anywhere 27 eventContext.setDisplay(newValue && newValue== "EM"); } )),"workTypeWatch"); } } }); }); 4. Zapisz zmiany i wyświetl podgląd zmodyfikowanej aplikacji mobilnej w programie Mobile Browser Simulator. Co dalej Wdróż aplikację na serwerze Zadania pokrewne: “Dodawanie pól do aplikacji mobilnej” na stronie 15 Pola dodawane do aplikacji mobilnej definiuje się za pośrednictwem plików RDF zasobów OSLC. Dodając pole do aplikacji mobilnej, należy określić zasób OSLC pola jako atrybut zasobu w pliku definicji aplikacji. Tworzenie pól warunkowych tylko do odczytu Aby móc dynamicznie sterować możliwością wpisywania danych w polu aplikacji Maximo Anywhere, można zdefiniować pole jako warunkowo przeznaczone tylko do odczytu. O tym zadaniu W pliku app.xml należy zdefiniować procedurę obsługi zdarzenia, aby określić, czy pole zależne od wartości innego pola ma uzyskiwać status pola przeznaczonego tylko do odczytu. Procedury obsługi zdarzeń implementuje się jako pliki JavaScript powiązane z widokiem w aplikacji mobilnej. Na przykład, jeśli dla zlecenia pracy określono typ pracy Konserwacja awaryjna, to pole Priorytet powinno być przeznaczone tylko do odczytu. Pole Priorytet nie jest jednak potrzebne w zleceniach pracy innego typu, zatem należy zastosować warunek sterujący możliwością zapisu w polu. Należy utworzyć procedurę obsługi zdarzenia dla pola Priorytet, aby monitorować zasób i atrybut skojarzony z typem pracy i nadać polu status tylko do odczytu, jeśli użytkownik urządzenia mobilnego wybierze wartość Konserwacja awaryjna w polu Typ pracy. Jeśli użytkownik mobilny zmieni również wartość typu pracy, procedura obsługi sprawdzi tę wartość, aby określić, czy pole Priorytet ma już status przeznaczonego tylko do odczytu. Procedura 1. W programie MobileFirst Studio otwórz plik app.xml aplikacji, którą chcesz zmienić, i dodaj pole, do którego chcesz zastosować warunek. 2. W sekcji interfejsu użytkownika pliku app.xml dodaj do widoku, do którego należą pola procedurę obsługi zdarzenia typu inicjalizator. a. W elemencie <text> nowego pola dodaj element podrzędny o nazwie <eventHandlers>. b. W elemencie <eventHandlers> dodaj element podrzędny o nazwie <eventHandler>. c. Określ initialize jako atrybut zdarzenia i dodaj atrybuty metody i klasy. Na przykład, aby pole Priorytet było przeznaczone tylko do odczytu dla prac awaryjnych, dodaj do widoku, do którego należy to pole procedurę obsługi zdarzenia typu inicjalizator. Zdarzenie skojarzone z procedurą obsługi zdarzenia dla widoku Szczegóły zlecenia pracy nosi nazwę WODetailExtensionHandler. 28 Konfigurowanie aplikacji mobilnych Maximo Anywhere <view id="WorkExecution.WorkDetailView" label="Szczegóły zlecenia pracy"> ... <eventHandlers> <eventHandler event="initialize" method="fetchAllListSizes" class="application.handlers.WODetailHandler" /> <eventHandler event="initialize" method="handleConditionalReadOnlyPriority" class="application.customerExtensions.WODetailExtensionHandler" /> <eventHandler event="render" class="application.handlers.WODetailHandler" method="refreshAllListSizes"/> <eventHandler event="initialize" class="application.handlers.MetersListHandler" method="initializeMeters" /> </eventHandlers> .... </view> 3. Zrealizuj warunek w procedurze obsługi zdarzenia zapisanej w pliku JavaScript. a. Utwórz folder na procedurę obsługi zdarzenia w katalogu MaximoAnywhere\apps\ nazwa_aplikacji\common\js\application. Nazwa folderu musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. b. Dodaj plik JavaScript do katalogu MaximoAnywhere\apps\nazwa_aplikacji\ common\js\application. Nazwa pliku JavaScript musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. c. Dodaj warunek procedury obsługi zdarzenia initialize do pliku JavaScript. Na przykład, aby dodać warunek nadawania polu Priorytet dla prac awaryjnych statusu przeznaczonego tylko do odczytu, utwórz plik WODetailExtensionHandler.js w katalogu MaximoAnywhere\apps\nazwa_aplikacji\common\js\application\ customerExtensions i dodaj w nim kod JavaScript procedury obsługi zdarzenia realizującej logikę tego warunku. define("application/customerExtensions/WODetailExtensionHandler", [ "dojo/_base/declare", "dojo/_base/lang", "platform/handlers/_ApplicationHandlerBase", "application/handlers/CommonHandler"], function(declare, lang, ApplicationHandlerBase, CommonHandler) { return declare( [ApplicationHandlerBase], { handleConditionalReadOnlyPriority: function(eventContext){ // Program obsługi zdarzenia initialize dla widoku szczegółów ZP, // który obsługuje zmiany w polu worktype // i zmienia pola Priorytet na tylko do odczytu // bieżące zlecenie workOrder znajduje się w obiekcie eventContext var currWO = eventContext.getResource().getCurrentRecord(); var worktype = currWO.get(’worktype’); // Makes the priority field read-only if worktype equals EMERGENCY currWO.getRuntimeFieldMetadata(’priority’).set(’readonly’, worktype && worktype=="EM"); // Podłączamy program nasłuchujący, by monitorować // atrybut worktype i udostępniać atrybut priority tylko do odczytu, gdy atrybut równy jest Emergency eventContext.addResourceWatchHandle(currWO.watch(’worktype’, lang.hitch(this, function(attrName, oldValue, newValue) { currWO.getRuntimeFieldMetadata(’priority’).set(’readonly’, newValue && newValue=="EM"); } ))); } }); }); 4. Zapisz zmiany i wyświetl podgląd zmodyfikowanej aplikacji mobilnej w programie Mobile Browser Simulator. Co dalej Wdróż aplikację na serwerze Modyfikowanie aplikacji mobilnych Maximo Anywhere 29 Tworzenie wymaganych pól warunkowych W aplikacji Maximo Anywhere wymagalność pola może być określana dynamicznie na podstawie wartości innych pól. O tym zadaniu W pliku app.xml należy zdefiniować procedurę obsługi zdarzenia, aby określić, czy pole zależne od wartości innego pola ma uzyskiwać status pola wymaganego. Procedury obsługi zdarzeń implementuje się jako pliki JavaScript powiązane z widokiem w aplikacji mobilnej. Na przykład, jeśli dla zlecenia pracy określono typ pracy Konserwacja awaryjna, to pole Priorytet powinno być wymagane. Pole Priorytet nie jest jednak potrzebne w zleceniach pracy innego typu, zatem należy zastosować warunek sterujący wymagalnością pola. Należy utworzyć procedurę obsługi zdarzenia dla pola Priorytet, aby monitorować zasób i atrybut skojarzony z typem pracy i nadać polu status wymaganego, jeśli użytkownik urządzenia mobilnego wybierze wartość Konserwacja awaryjna w polu Typ pracy. Jeśli użytkownik mobilny zmieni również wartość typu pracy, procedura obsługi sprawdzi tę wartość, aby określić, czy pole Priorytet ma już status wymaganego. Procedura 1. W programie MobileFirst Studio otwórz plik app.xml aplikacji, którą chcesz zmienić, i dodaj pole, do którego chcesz zastosować warunek. 2. W sekcji interfejsu użytkownika pliku app.xml dodaj do widoku, do którego należą pola procedurę obsługi zdarzenia typu inicjalizator. a. W elemencie <text> nowego pola dodaj element podrzędny o nazwie <eventHandlers>. b. W elemencie <eventHandlers> dodaj element podrzędny o nazwie <eventHandler>. c. Określ initialize jako atrybut zdarzenia i dodaj atrybuty metody i klasy. Na przykład, aby pole Priorytet było wymagane dla prac awaryjnych, dodaj do widoku, do którego należy to pole procedurę obsługi zdarzenia typu inicjalizator. Zdarzenie skojarzone z procedurą obsługi zdarzenia dla widoku Szczegóły zlecenia pracy nosi nazwę WODetailExtensionHandler. <view id="WorkExecution.WorkDetailView" label="Szczegóły zlecenia pracy"> ... <eventHandlers> <eventHandler event="initialize" method="fetchAllListSizes" class="application.handlers.WODetailHandler" /> <eventHandler event="initialize" method="handleConditionalRequiredPriority" class="application.customerExtensions.WODetailExtensionHandler" /> <eventHandler event="render" class="application.handlers.WODetailHandler" method="refreshAllListSizes"/> <eventHandler event="initialize" class="application.handlers.MetersListHandler" method="initializeMeters" /> </eventHandlers> .... </view> 3. Zrealizuj warunek w procedurze obsługi zdarzenia zapisanej w pliku JavaScript. a. Utwórz folder na procedurę obsługi zdarzenia w katalogu MaximoAnywhere\apps\ nazwa_aplikacji\common\js\application. Nazwa folderu musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. b. Dodaj plik JavaScript do katalogu MaximoAnywhere\apps\nazwa_aplikacji\ common\js\application. Nazwa pliku JavaScript musi być zgodna z nazwą określoną w atrybucie klasy procedury obsługi zdarzenia. c. Dodaj warunek procedury obsługi zdarzenia initialize do pliku JavaScript. 30 Konfigurowanie aplikacji mobilnych Maximo Anywhere Na przykład, aby dodać warunek nadawania polu Priorytet dla prac awaryjnych statusu wymaganych, utwórz plik WODetailExtensionHandler.js w katalogu MaximoAnywhere\apps\nazwa_aplikacji\common\js\application\ customerExtensions i dodaj w nim kod JavaScript procedury obsługi zdarzenia realizującej logikę tego warunku. define("application/customerExtensions/WODetailExtensionHandler", [ "dojo/_base/declare", "dojo/_base/lang", "platform/handlers/_ApplicationHandlerBase", "application/handlers/CommonHandler"], function(declare, lang, ApplicationHandlerBase, CommonHandler) { return declare( [ApplicationHandlerBase], { handleConditionalRequiredPriority: function(eventContext){ // Program obsługi zdarzenia initialize dla widoku szczegółów ZP, // który obsługuje zmiany w polu worktype // i zmienia pola Priorytet na wymagane // bieżące zlecenie workOrder znajduje się w obiekcie eventContext var currWO = eventContext.getResource().getCurrentRecord(); var worktype = currWO.get(’worktype’); // Nadaje polu Priorytet status wymaganego, gdy worktype = EMERGENCY currWO.getRuntimeFieldMetadata(’priority’).set(’required’, worktype && worktype=="EM"); // Podłączamy program nasłuchujący, by monitorować // atrybut worktype i nadać atrybutowi priority status wymaganego, gdy atrybut równy jest Emergency eventContext.addResourceWatchHandle(currWO.watch(’worktype’, lang.hitch(this, function(attrName, oldValue, newValue) { currWO.getRuntimeFieldMetadata(’priority’).set(’required’, newValue && newValue=="EM"); } ))); } }); }); 4. Zapisz zmiany i wyświetl podgląd zmodyfikowanej aplikacji mobilnej w programie Mobile Browser Simulator. Co dalej Wdróż aplikację na serwerze Modyfikowanie aplikacji mobilnych Maximo Anywhere 31 32 Konfigurowanie aplikacji mobilnych Maximo Anywhere Informacje Niniejsza publikacja została przygotowana z myślą o produktach i usługach oferowanych w Stanach Zjednoczonych. IBM może nie oferować w innych krajach produktów, usług lub opcji omawianych w tej publikacji. Informacje o produktach i usługach dostępnych w danym kraju można uzyskać od lokalnego przedstawiciela IBM. Jakakolwiek wzmianka na temat produktu, programu lub usługi IBM nie oznacza, że może być zastosowany jedynie ten produkt, ten program lub ta usługa IBM. Zamiast nich można zastosować ich odpowiednik funkcjonalny, pod warunkiem że nie narusza to praw własności intelektualnej IBM. Jednakże cała odpowiedzialność za ocenę przydatności i sprawdzenie działania produktu, programu lub usługi pochodzących od producenta innego niż IBM spoczywa na użytkowniku. IBM może posiadać patenty lub złożone wnioski patentowe na towary i usługi, o których mowa w niniejszej publikacji. Przedstawienie tej publikacji nie daje żadnych uprawnień licencyjnych do tychże patentów. Wnioski o przyznanie licencji można zgłaszać na piśmie pod adresem: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. Zapytania dotyczące zestawów znaków dwubajtowych (DBCS) należy kierować do lokalnych działów własności intelektualnej IBM (IBM Intellectual Property Department) lub wysłać je na piśmie na adres: Intellectual Property Licensing Legal and Intellectual Property Law IBM Japan Ltd. 1623-14, Shimotsuruma, Yamato-shi Kanagawa 242-8502 Japonia Poniższy akapit nie obowiązuje w Wielkiej Brytanii, a także w innych krajach, w których jego treść pozostaje w sprzeczności z przepisami prawa miejscowego: INTERNATIONAL BUSINESS MACHINES CORPORATION DOSTARCZA TĘ PUBLIKACJĘ W STANIE, W JAKIM SIĘ ZNAJDUJE ("AS IS"), BEZ UDZIELANIA JAKICHKOLWIEK GWARANCJI (RĘKOJMIĘ RÓWNIEŻ WYŁĄCZA SIĘ), WYRAŹNYCH LUB DOMNIEMANYCH, A W SZCZEGÓLNOŚCI DOMNIEMANYCH GWARANCJI PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU ORAZ GWARANCJI, ŻE PUBLIKACJA TA NIE NARUSZA PRAW OSÓB TRZECICH. Ustawodawstwa niektórych krajów nie dopuszczają zastrzeżeń dotyczących gwarancji wyraźnych lub domniemanych w odniesieniu do pewnych transakcji; w takiej sytuacji powyższe zdanie nie ma zastosowania. Informacje zawarte w niniejszej publikacji mogą zawierać nieścisłości techniczne lub błędy typograficzne. Informacje te są okresowo aktualizowane, a zmiany te zostaną uwzględnione w kolejnych wydaniach tej publikacji. IBM zastrzega sobie prawo do wprowadzania ulepszeń i/lub zmian w produktach i/lub programach opisanych w tej publikacji w dowolnym czasie, bez wcześniejszego powiadomienia. © Copyright IBM Corp. 2014, 2015 33 Wszelkie wzmianki w tej publikacji na temat stron internetowych innych podmiotów zostały wprowadzone wyłącznie dla wygody użytkownika i w żadnym wypadku nie stanowią zachęty do ich odwiedzania. Materiały dostępne na tych stronach nie są częścią materiałów opracowanych dla tego produktu IBM, a użytkownik korzysta z nich na własną odpowiedzialność. IBM ma prawo do używania i rozpowszechniania informacji przysłanych przez użytkownika w dowolny sposób, jaki uzna za właściwy, bez żadnych zobowiązań wobec ich autora. Licencjobiorcy tego programu, którzy chcieliby uzyskać informacje na temat programu w celu: (i) wdrożenia wymiany informacji między niezależnie utworzonymi programami i innymi programami (łącznie z tym opisywanym) oraz (ii) wykorzystywania wymienianych informacji, powinni skontaktować się z: IBM Corporation 2Z4A/101 11400 Burnet Road Austin, TX 78758 U.S.A. Informacje takie mogą być udostępnione, o ile spełnione zostaną odpowiednie warunki, w tym, w niektórych przypadkach, zostanie uiszczona stosowna opłata. Licencjonowany program opisany w niniejszej publikacji oraz wszystkie inne licencjonowane materiały dostępne dla tego programu są dostarczane przez IBM na warunkach określonych w Umowie IBM z Klientem, Międzynarodowej Umowie Licencyjnej IBM na Program lub w innych podobnych umowach zawartych między IBM i użytkownikami. Informacje dotyczące produktów innych niż produkty IBM pochodzą od dostawców tych produktów, z opublikowanych przez nich zapowiedzi lub innych powszechnie dostępnych źródeł. IBM nie testował tych produktów i nie może potwierdzić dokładności pomiarów wydajności, kompatybilności ani żadnych innych danych związanych z tymi produktami. Pytania dotyczące możliwości produktów innych podmiotów należy kierować do dostawców tych produktów. Publikacja ta zawiera przykładowe dane i raporty używane w codziennej pracy. W celu kompleksowego ich zilustrowania podane przykłady zawierają nazwiska osób prywatnych, nazwy przedsiębiorstw oraz nazwy produktów. Wszystkie te nazwy/nazwiska są fikcyjne i jakiekolwiek podobieństwo do istniejących nazw/nazwisk i adresów jest całkowicie przypadkowe. LICENCJA W ZAKRESIE PRAW AUTORSKICH: Niniejsza publikacja zawiera przykładowe aplikacje w kodzie źródłowym, ilustrujące techniki programowania w różnych systemach operacyjnych. Użytkownik może kopiować, modyfikować i rozpowszechniać te programy przykładowe w dowolnej formie bez uiszczania opłat na rzecz firmy IBM, w celu rozbudowy, użytkowania, handlowym lub w celu rozpowszechniania aplikacji zgodnych z aplikacyjnym interfejsem programowym dla tego systemu operacyjnego, dla którego napisane były programy przykładowe. Programy przykładowe nie zostały gruntownie przetestowane. IBM nie może zatem gwarantować ani sugerować niezawodności, użyteczności i funkcjonalności tych programów. Programy przykładowe są dostarczane w stanie, w jakim się znajdują ("AS IS"), bez udzielania jakichkolwiek gwarancji (rękojmię również wyłącza się). IBM nie ponosi odpowiedzialności za jakiekolwiek szkody wynikające z używania programów przykładowych. 34 Konfigurowanie aplikacji mobilnych Maximo Anywhere Strategia ochrony prywatności Produkty programowe IBM, w tym oprogramowanie udostępniane w postaci usług („Oprogramowanie”) może używać plików cookie lub innych rozwiązań technicznych do zbierania informacji o sposobie korzystania z produktu w celu doskonalenia interakcji z użytkownikiem, dopasowania interakcji do preferencji konkretnego użytkownika lub w innych celach. W wielu przypadkach Oprogramowanie nie zbiera żadnych informacji umożliwiających identyfikację tożsamości osób. Część Oprogramowania może jednak umożliwiać gromadzenie informacji pozwalających na identyfikację osoby. Jeśli Oferowane Oprogramowanie korzysta z informacji cookie do gromadzenia informacji pozwalających na identyfikację osoby, poniżej znajdują się szczegółowe informacje na temat takiego korzystania. W zależności od wdrożonych konfiguracji niniejsze Oferowane oprogramowanie może korzystać z plików cookie sesji i trwałych gromadzących nazwy użytkowników, hasła lub inne informacje pozwalające na identyfikację użytkownika w celach zarządzania sesją, uwierzytelniania, konfigurowania funkcji jednokrotnego logowania lub innych celach funkcjonalnych. Informacje cookie można wyłączyć, ale może to spowodować odłączenie aktywowanych przez nie funkcjonalności. Jeśli konfiguracje, w jakich to Oprogramowanie zostało wdrożone, umożliwiają klientowi zbieranie informacji umożliwiających identyfikację tożsamości użytkowników końcowych za pośrednictwem plików cookie i innych rozwiązań technicznych, to klient powinien zwrócić się we własnym zakresie o poradę prawną dotyczącą obowiązujących go przepisów dotyczących zbierania takich danych, w szczególności obowiązkach informacyjnych i konieczności uzyskania zgody użytkowników. Więcej informacji o stosowaniu różnych rozwiązań technicznych, w tym informacji cookie, do wspomnianych wyżej celów zawiera Strategia IBM w zakresie ochrony prywatności dostępna pod adresem http://www.ibm.com/privacy oraz Oświadczenie IBM o Ochronie Prywatności w Internecie dostępne pod adresem http://www.ibm.com/privacy/details, a w szczególności jego sekcja zatytułowana „Informacje cookie, sygnalizatory WWW i inne technologie”, jak również Oświadczenie IBM o ochronie prywatności w oprogramowaniu, w tym w oprogramowaniu udostępnianym w postaci usług pod adresem http://www.ibm.com/ software/info/product-privacy. Znaki towarowe IBM, logo IBM oraz ibm.com są znakami towarowymi lub zastrzeżonymi znakami towarowymi International Business Machines Corp. zarejestrowanymi w wielu systemach prawnych na całym świecie. Nazwy innych produktów i usług mogą być znakami towarowymi IBM lub innych podmiotów. Aktualna lista znaków towarowych IBM dostępna jest w serwisie WWW IBM, w sekcji “Copyright and trademark information” (Informacje o prawach autorskich i znakach towarowych), pod adresem www.ibm.com/legal/ copytrade.shtml. Java oraz wszystkie znaki towarowe i logo dotyczące języka Java są znakami towarowymi lub zastrzeżonymi znakami towarowymi Oracle i/lub przedsiębiorstw afiliowanych Oracle. Linux jest zastrzeżonym znakiem towarowym Linusa Torvaldsa w Stanach Zjednoczonych i/lub w innych krajach. Microsoft, Windows i logo Windows są znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i/lub w innych krajach. Informacje 35 UNIX jest zastrzeżonym znakiem towarowym The Open Group w Stanach Zjednoczonych i w innych krajach. 36 Konfigurowanie aplikacji mobilnych Maximo Anywhere Indeks D dodawanie list wartości domeny alfanumeryczne 17 domeny synonimów 17 I instalowanie Eclipse 5 K komendy budowania build all 7 konfigurowanie serwer budowania 1 M MobileFirst Studio 1 N narzędzia programistyczne Android 2 iOS 4 5 O OSLC, struktury obiektów 12 S serwer budowania konfigurowanie 1 Ś środowisko programistyczne 1, 5 Z zasoby OSLC 12 Zasoby OSLC 17 © Copyright IBM Corp. 2014, 2015 37 38 Konfigurowanie aplikacji mobilnych Maximo Anywhere Drukowane w USA