Het verwerken van data in mobiele applicaties die op verschillende platforms werken

Altova MobileTogether stelt bedrijven van elke omvang in staat om op maat gemaakte mobiele oplossingen te ontwerpen en te implementeren die op alle mobiele platforms werken. Dit artikel is het tweede deel van een discussie over de MobileTogether Actiesdialoog, waarmee ontwikkelaars snel geavanceerde eventhandlers, controlemechanismen en bewerkingen kunnen creëren die op dezelfde manier werken op iOS®, Android™- en Windows-apparaten, evenals in een HTML5-browser, zonder zich zorgen te hoeven maken over de specifieke details van de API of SDK voor elk mobiel besturingssysteem.

Als u deel 1 gemist heeft, lees dan Definitie van gebeurtenisafhandeling en controle van de uitvoering om op de hoogte te komen.

Deze post behandelt enkele van de MobileTogether-functies die data bewerken en flexibel en krachtig zijn. Ze versnellen de ontwikkeling van mobiele bedrijfsapplicaties die data gebruiken, zodat drukke gebruikers altijd en overal actuele informatie kunnen ontvangen.

De onderstaande screenshot toont de startpagina van een mobiele applicatie voor voorraadbeheer, met een korte beschrijving en de mogelijkheid om een uitgebreidere beschrijving te bekijken wanneer de gebruiker op de knop "meer" klikt.

De actie die aan de knop is gekoppeld, wordt hieronder weergegeven in het dialoogvenster "Acties" van MobileTogether Designer. Wanneer de gebruiker op de knop klikt, voegt de actie "Knooppunten bijwerken" de vaste waarde 'true' toe aan het knooppunt "ShowMore".

Het tekstvak met de lange definitie heeft een eigenschap die bepaalt of het zichtbaar is. Deze eigenschap gebruikt een formule om te bepalen of het tekstvak wel of niet moet worden weergegeven.

Zodra de waarde van "ShowMore" verandert naar "true", wordt de uitgebreide beschrijving automatisch weergegeven op het mobiele apparaat:

De "meer tonen"-knop werd tegelijkertijd verborgen, omdat de eigenschap die bepaalt of deze zichtbaar is, een expressie bevat die controleert of "ShowMore" gelijk is aan 'false'.

Deze eenvoudige actiedefinitie creëert een knop die werkt op alle mobiele apparaten, of zelfs in een browservenster op een desktopcomputer. Maar "Update Node(s)" kan veel meer! In ons voorbeeld waren zowel de doelnode als de payload vaste waarden. Zowel het doel, het resultaat – of beide – kunnen ook gedefinieerd worden als XPath-expressies die verwijzingen bevatten naar andere data-elementen, XPath-operatoren, XQuery-functies, speciale MobileTogether-functies, en zelfs door de gebruiker gedefinieerde functies.

Ontwikkelaars kunnen eenvoudig op een van de XPath-knoppen klikken om het dialoogvenster "XPath-expressie bewerken" te openen. Hierdoor kunnen ze expressies maken en bewerken, met toegang tot de boomstructuur van XML-gegevensbronnen, een bibliotheek met XPath/XQuery 3.1-operatoren en -functies, en hulpmiddelen om het maken van geldige XPath/XQuery 3.1-expressies te vereenvoudigen.

In een eenvoudig voorbeeld van het toepassen van een expressie, registreert de app "Inventory Manager" de datum waarop deze wordt uitgevoerd, om te testen of de tabel moet worden geïnitialiseerd voor een nieuwe maand wanneer deze de volgende keer wordt gestart. Deze actie "Bijwerken van knooppunten" maakt gebruik van een XQuery-datumsfunctie:

Let op dat er geen behoefte is aan API-aanroepen die specifiek zijn voor een bepaald platform. Eén expressie in MobileTogether ondersteunt alle mobiele platforms.

Knooppunt(en) invoegen en Knooppunt(en) toevoegen zijn acties die beide één of meer nieuwe knooppunten creëren, zoals gespecificeerd in een XPath-expressie. Het verschil tussen deze twee acties is dat "Knooppunt(en) invoegen" het/de knooppunt(en) op een bepaalde positie in de datastructuur toevoegt, terwijl "Knooppunt(en) toevoegen" het/de knooppunt(en) als onderliggende knooppunten van de geselecteerde knooppunten toevoegt.

"Node toevoegen" en "Node toevoegen aan einde" kunnen een dataintegratiemodel dynamisch uitbreiden om datasets van onbekende grootte te verwerken. Zo is de kern van de app "Inventory Manager" een tabel die de status van onderdelen beschrijft die nodig zijn voor de productie van verschillende producten. In de praktijk veranderen productiemateriaal lijsten vaak, omdat productmanagers productvarianten toevoegen of verwijderen, of leveranciers wijzigen. Het zou uiterst inefficiënt zijn om een mobiele oplossing te programmeren voor een specifiek aantal onderdelen. In plaats daarvan kan een ontwikkelaar eenvoudig de inhoud van een enkele rij definiëren, die een enkel onderdeel beschrijft, en standaardwaarden opgeven voor elk element:

Wanneer de tabel wordt geïnitialiseerd, kan de actie "Toevoegen aan knoop" worden geconfigureerd binnen een lusactie om een willekeurig aantal rijen toe te voegen. In de oplossing "Inventory Manager" slaat "PartNumbersCount" het aantal unieke onderdelen op, wat kan worden gelezen uit een databasequery of een extern bestand met een hoofdlijst van onderdelen. De ontwikkelaar hoeft zelfs niet precies te weten hoeveel er zijn.

In de bovenstaande definitie wordt de nieuwe knoop gedefinieerd als een XPath-expressie voor een rij uit het datamodel. De functie "Append Node" voegt de aangegeven knoop toe, samen met al zijn onderliggende knopen, en alle elementen, attributen en inhoud van die onderliggende knopen. De nieuwe knoop kan als eerste of als laatste kindelement worden toegevoegd.

Het uitvoeren van een applicatie in de ingebouwde simulator van MobileTogether stelt ontwikkelaars in staat om de data te bekijken terwijl de applicatie draait. Nadat de bovenstaande lus alle iteraties had voltooid, kunnen we zien dat PartNumbersCount 167 was en dat de lus precies 166 extra rijen heeft toegevoegd, waarbij elke rij identiek is aan de oorspronkelijke definitie.

De functies "Knoop invoegen" en "Knoop toevoegen" kunnen ook nieuwe knopen creëren die direct als XML-constructies worden ingevoerd, zoals: Element Content, of ze kunnen worden samengesteld via XQuery-constructies voor het genereren van knopen, zoals: element MyElement-01 {xs:string("Inhoud van het element")} attribute myatt{"waarde"}

Opnieuw laden is een andere krachtige functie voor het werken met data. De functie "opnieuw laden" kan worden toegepast op elke externe bron die is opgenomen in het ontwerp, inclusief databasequery's, externe data bestanden, grafieken en afbeeldingen. "Opnieuw laden" bevat een handige dropdown-lijst met alle reeds geconfigureerde externe bronnen. In de applicatie "Inventory Manager" is $ProductSalesMTD een SQL-query van de database met bedrijfsorders die een telling van de verkopen van elk individueel product tot nu toe in de huidige maand ophaalt. Producten worden vergeleken met materiaallijsten om de vraagstatistieken voor elk individueel onderdeel te berekenen.

Het is eenvoudig om meerdere databronnen tegelijkertijd te vernieuwen door meerdere vernieuwingsacties naar het bewerkingsvenster te slepen. Hieronder staat een gedeeltelijk uitgewerkte definitie van de acties die door een andere knop in de voorraadbeheerder worden uitgevoerd. Nadat alle databronnen zijn vernieuwd, voert de laatste stap de vernieuwingsactie uit om het prestatieoverzicht opnieuw te tekenen op basis van de meest recente waarden.

Deze screenshot van een kleine Android-tablet toont de belangrijkste datatabel en grafiek voor een versie van de voorraadbeheerder, die is ingesteld voor deelproducten in plaats van honderden individuele onderdelen. Als de voorraad van een bepaald onderdeel onder het gewenste niveau komt, kan de gebruiker de benodigde hoeveelheden invoeren in de kolom aan de rechterkant en vervolgens op de knop "Bestelling plaatsen" klikken om bestellingen bij leveranciers te autoriseren.

Een iPhone in horizontale modus toont een vergelijkbaar scherm, waarbij de gebruiker alle gegevens kan bekijken door de pagina te scrollen.

Een reeks korte videodemonstraties op de Altova-website staat een demonstratie die laat zien hoe eenvoudig het is om te beginnen met het ontwikkelen van een mobiele bedrijfsapplicatie met de MobileTogether Designer. Of bekijk de webversie van de Online help voor MobileTogether Designer voor meer gedetailleerde informatie.

Om meer te weten te komen en de gratis MobileTogether Designer te downloaden om uw eerste mobiele oplossing voor bedrijven te maken, geschikt voor iOS®, Android™, Windows® Phone 8 en Windows 8, evenals een HTML5-client voor browsers, bezoek: www.altova.com/mobiletogether