Uitbreidbare If-Else-constructie: werkt vergelijkbaar met een Switch-statement in MapForce

Als reactie op verschillende verzoeken van gebruikers is het if-else component in MapForce verbeterd in MapForce 2011 Release 2 om een willekeurig aantal variabelen te kunnen verwerken. Deze functie, die vergelijkbaar is met een "switch"-statement in veel programmeertalen, stelt u in staat om de datastroom in een mappingproject eenvoudig te beïnvloeden door een waarde te koppelen aan een geselecteerd criterium. Het volgende voorbeeld toont een screenshot van het if-then component, dat in combinatie met andere componenten wordt gebruikt om temperatuurgegevens te analyseren en de volgende resultaten te genereren:

  • Als de temperatuur hoger is dan 20, dan wordt de waarde "waar" doorgegeven aan de variabele bool1 en de tekst "hoog" wordt doorgegeven aan de variabele value-true1.
  • Als de temperatuur lager is dan 5, dan wordt de waarde "waar" doorgegeven aan de variabele bool2 en de tekst "laag" wordt doorgegeven aan de variabele value-true2.
  • Slechts één van de parameters met de waarde "waar" kan op een bepaald moment waar zijn, en dat is de parameter die wordt doorgegeven aan het attribuut "desc" in het doelcomponent.

De screenshot hierboven is afkomstig van het voorbeeldbestand "Classify Temperatures.mfd" dat is meegeleverd bij de installatie van MapForce. Hierdoor kunt u direct de voorbeeldgegevens verwerken of de mapping aanpassen om zelf de resultaten te bekijken. De nieuwe, uitbreidbare if-else functionaliteit helpt ontwikkelaars om data mappings sneller te maken, creëert een mappingdiagram dat de voorwaardelijke tests effectiever weergeeft, en vergemakkelijkt het testen en debuggen, omdat de uitgebreide if-else functie veel leesbaarder is dan een complexe structuur van individuele componenten. Dit is vooral duidelijk wanneer u een groot aantal voorwaarden moet evalueren. De screenshot hieronder toont een conversie van een string naar een getal, waarbij de string bestaat uit een afkorting van drie letters voor de maand. (Om ruimte te besparen, verwerkt deze if-else functie hier alleen strings voor de eerste zes maanden van het jaar.)

Door een fout bij het kopiëren en plakken hebben we vergeten de uitvoerconstante voor mei bij te werken van de waarde 4 naar 5. Dit soort fouten is veel gemakkelijker te vinden en op te lossen als je alle logica in één overzicht kunt zien! (UPDATE: We hebben dit voorbeeld oorspronkelijk gemaakt om de voordelen van uitgebreide If-Else-constructies te illustreren, in vergelijking met geneste of doorlopende If-Else-mappingen die snel te groot kunnen worden om op één scherm te bekijken. Voor een beter ontwerp om dit en andere vergelijkbare conversies op te lossen met behulp van een zoektabellen, zie de blogpost "Switch Statement vs. Look-up Table in MapForce")

Ontdek zelf hoe eenvoudig het is om uitgebreide if-else functies te gebruiken in uw eigen datamappingprojecten. Download een gratis proefversie van 30 dagen van MapForce.