Beeyond Expression Language (BEL): Voorbeelden

Middels BEL (Beeyond Expression Language) is een mogelijkheid gecreëerd om flexibel berekeningen, samenvoeging en of aanpassingen door te voeren in de Beeyond omgeving. Op deze pagina worden voorbeelden gegeven van de diverse mogelijkheden van BEL.



Inhoudsopgave

Algemene voorbeelden: Berekeningen



Rekenvoorbeeld: Margeberekening

ARTICLE_VAT 0 = Geen BTW, 1 = 6% en 2 = 21%

Marge % berekening: (Verkoopprijs incl. BTW minus BTW) - Inkoopprijs excl. / Verkoopprijs incl. BTW minus BTW * 100



( [IF] (|ARTICLE_VAT|==1) [THEN] ((((|ARTICLE_SALESPRICE_I_ACT|/1.06)-|ARTICLE_PURCHASE_E|)/(|ARTICLE_SALESPRICE_I_ACT|/1.06))*100) [ELSE] ( ( [IF] (|ARTICLE_VAT|==2) [THEN] ((((|ARTICLE_SALESPRICE_I_ACT|/1.21)-|ARTICLE_PURCHASE_E|)/(|ARTICLE_SALESPRICE_I_ACT|/1.21))*100) [ELSE] ((((|ARTICLE_SALESPRICE_I_ACT|/1)-|ARTICLE_PURCHASE_E|)/(|ARTICLE_SALESPRICE_I_ACT|/1))*100) ) ) )

Marge berekening: (Verkoopprijs incl. BTW minus BTW) - Inkoopprijs excl. 

( [IF] (|ARTICLE_VAT|==1) [THEN] ((|ARTICLE_SALESPRICE_I_ACT|/1.06)-|ARTICLE_PURCHASE_E|) [ELSE] ( ( [IF] (|ARTICLE_VAT|==2) [THEN] ((|ARTICLE_SALESPRICE_I_ACT|/1.21)-|ARTICLE_PURCHASE_E|) [ELSE] ((|ARTICLE_SALESPRICE_I_ACT|/1)-|ARTICLE_PURCHASE_E|) ) ) )



Via een bulk wijziging bestaande omschrijving voorzien van een Merk (voorvoegsel)

Middels bulk wijziging attribuut Omschrijving (Database attribuutnaam = ITEM_NAME vullen met het merk Apple. 

  • Selecteer de betreffende artikelen en kies voor bulk wijziging

  • Selecteer het attribuut ! Omschrijving (zie onderstaande printscreen

  • De Database attribuutnaam = ITEM_NAME deze heb je nodig voor de betreffende functie

  • Zet een v om het attribuut aan te passen en kies dan voor fx, je krijgt nu een extra scherm genaamd Expressie

  • Geef het volgende in bij de Expressie: %naam van de toevoeging%, + (plus teken voor het samenvoegen) en de database attribuutnaam = ITEM_NAME tussen | (pipeline teken)

  • M.a.w.: Apple+|ITEM_NAME|

  • Met als resultaat in de bulk mutatie:

 

  • Na het starten van de bulk wijziging wordt de omschrijving  aangepast de naam wordt dan: Apple TEST003

Samenvoegen kolommen uit importbestand

In het aangeleverde bestand staat het ordernummer in 3 aparte kolommen, namelijk kolom 1, 2 en 3.

Deze kunnen worden samengevoegd op onderstaande wijze.Het kolomnummer staat in dit geval tussen | tekens. In het geval met kolomnamen wordt gewerkt dan dient type Expression name te worden gebruikt en wordt in de expressie tussen | de kolomnaam uit het aangeleverde bestand gebruikt.

Indien meerdere kolommen worden samengevoegd met eigen vrije tekst erbij kan BEL als volgt worden gebruikt.

Het importbestand bevat naast het ordernummer ook de naam van de klant (in kolom 5) en je wil de volgende tekst op een stringveld plaatsen: Ordernummer 123456789 van commissie Janssen.
Gebruik daarvoor onderstaande notatie. Let op dat iedere spatie of tekstfragment wordt gezien als onderdeel van de samenvoeging en vooraf wordt gegaan door het + teken:

Op basis van voorraadwaarde veld Tijdelijk niet leverbaar Ja / Nee (NOG UITWERKEN!!)

Vanuit een leverancier krijg je de voorraadwaarde van een artikel. Op het moment dat de voorraadwaarde een bepaalde waarde bevat wordt het veld Tijdelijk niet leverbaar op Ja of Nee gezet. In de importmapping kun je kiezen voor Expression column.

Waarde: 0;1;2;3;4;5;REST 
Veld Tijdelijk niet leverbaar: true;true;true;true;true;true;false

Artikelnummer;Voorraad 44099719;5 44099718;100





Hoe kan ik hoogte en hoogte eenheid samenvoegen in een nieuw veld

Door gebruik te maken van het attribuuttype 'Samengestelde sleutel' is het mogelijk om velden samen te voegen in een nieuw veld. In onderstaand voorbeeld wordt het veld 'hoogte' samengevoegd met het veld 'hoogte eenheid'. Daarbij is het attribuut 'hoogte eenheid' van het type relatie.

'HOOGTE' is in dit voorbeeld een nummerveld binnen dezelfde entiteit, en 'HOOGTE_EENHEID.OMSCHRIJVING' is een relatieveld. HOOGTE_EENHEID verwijst daarbij naar de attribuutnaam binnen de entiteit, en OMSCHRIJVING is de attribuutnaam van de gerelateerde entiteit.

Let wel op dat een attribuut van het type 'samengestelde sleutel' alleen bij nieuwe enteteiten wordt gevuld, en dan direct zodra de velden welke gebruikt worden gevuld zijn. Dit attribuuttype kan niet via een bulk wijziging of import gevuld worden.

Omschrijving van artikelen aanpassen door 'Rood' achter de reeds bestaande omschrijving toe te voegen 

De omschrijving van een veld dient via bulk wijziging aangepast te worden, waarbij bij elk item tekst toegevoegd dient te worden achter de reeds bestaande omschrijving. In onderstaand voorbeeld wordt achter de reeds bestaande omschrijving het woord 'Rood' toegevoegd.

Omschrijving is in dit geval de attribuutwaarde, en dient tussen de verticale strepen te staan. Let op dat het plusteken hier direct achter toegevoegd moet worden, dus zonder spatie. Na het plusteken mag wel een spatie staan. Dit betekent dat achter de huidige omschrijving een spatie dient te komen gevolgt door het woord 'Rood'.



Indien het veld Omschrijving_Duits leeg is dan  Omschrijving_Nederlands en anders Omschrijving_Duits invullen

Dit kan ingevuld worden met een attrituut van het type 'Berekende string':



Via bulk wijziging bestaande artikelomschrijving aanpassen met toevoeging van een !

Huidige omschrijving: Bodyprotector Protecto Kind, Maat XS wordt na aanpassing !Bodyprotector Protecto Kind, Maat XS



Via bulk wijziging bestaande artikelomschrijving aanpassen met toevoeging van het merk

 Huidige omschrijving: Bodyprotector Protecto Kind, Maat XS wordt na aanpassing Kerbl Bodyprotector Protecto Kind, Maat XS



Velden omschrijving en kleur samenvoegen in een berekende string

 

Attribuut foto url vullen met standaard waarde indien waarde in het te importeren bestand is leeg





Attributen samenvoegen waarbij het & teken het koppelteken is



Percentage invullen in een berekend attribuut op basis van diverse locaties







Bulk wijziging prijsindexatie van 2%

Een prijswijziging kan eenvoudig via een bulk wijziging doorgevoerd worden. Dit kan als volgt:



Selecteer het veld en klik op 'Expressie invoeren':

Vul vervolgens het veld ID en vermenigvuldig dit met het gewenste nummer, in onderstaand voorbeeld wordt de verkoopprijs opgehoogd met 2%:



Algemene voorbeelden: Tekst

Velden samenvoegen in een berekende string, waarbij rekening wordt gehouden met 4 niveaus



Automatisch ophogend attribuut opnemen in berekende string

Bij het regulier ophalen van een automatisch ophogend attribuut in een berekend string veld voegt Beeyond automatisch een decimaal toe. Indien in het automatisch ophogend attribuut bijvoorbeeld 4 staat, maakt Beeyond er in het berekende attribuut 4.0 van. Dit kan als volgt worden opgelost: 



HTML opmaken via een berekende string





@ gebruiken in een berekende string





Berekende string (Volledige adres) wordt gevuld op basis van enkele andere velden



Veld vullen indien een ander veld gevuld is

In onderstaand voorbeeld wordt het betreffende veld gevuld indien een waarde is ingegeven in het veld ITEM_SIZE_ONLINE. Is het veld leeg dan blijft het veld leeg.



Tekstvelden samenvoegen indien gevuld

In onderstaand voorbeeld worden diverse velden samengevoegd. Indien één van de velden leeg is wordt deze overgeslagen, en wordt de rest van de velden wel samengevoegd.



Gebruik van boolean attributen in berekende tekst velden

In de database is er een verschil tussen false en null. Null is ingevuld als het boolean attribuut nog nooit gevuld is geweest, dit wordt pas false (uitgevinkt) indien de waarde aangevinkt is geworden, en daarna weer uitgevinkt. Om dit in een expressie juist af te vangen kan ingewikkeld zijn. Het gebruik van de coalesce functie voorkomt problemen hiermee:





In dit voorbeeld is ITEM_ACTIVE een Boolean attribuut. Wat ik hierin aangeef is, neem ITEM_ACTIVE, en als die niet gevuld is dan vul in: false. Als dat gelijk is aan true kan je ervan uitgaan dat het veld is aangevinkt. Op dat moment wordt Actief ingevuld. In de ELSE wordt bepaald dat anders de waarde 'Niet actief' ingevuld wordt.



Gebruik van datum attributen in berekende tekst velden

In het berekende tekstveld kunnen ook datum-attributen gebruikt worden. Zo is het mogelijk de het volgende ingevuld worden

In het eerste voorbeeld worden 7 dagen opgeteld bij de waarde die staat in het veld DATUM_ACTIEF

In het tweede voorbeeld is de uitkomst de datum in het veld DATUM_ACTIEF + het aantal dat in het veld |LOOPTIJD_IN_DAGEN| staat. Het veld |LOOPTIJD_IN_DAGEN| is in dit geval een veld van het type nummer of geheel getal.

Let op, de uitkomst wordt vooralsnog altijd in het volgende formaat weergegeven: dd-mm-yyyy

Gebruik van boolean attributen in berekende tekst velden





Uitgewerkte voorbeelden functies

Functie: Formatting

Expressie

In

Uit

Toelichting

Expressie

In

Uit

Toelichting

format(123,%05d)

"123"

"00123"

Indien de waarde minder dan 5 cijfers bevat, dan wordt deze aangevuld met nullen

format(12345,%05d)

"12345"

"12345"

Indien de waarde reeds 5 cijfers bevat, is het resultaat gelijk aan de input

format(123000,%05d)

"123000"

"123000"

Indien de waarde uit meer dan 5 cijfers bestaat, is het resultaat gelijk aan de input

format(123,%d)

"123"

"123"

%d geeft als resultaat de originele waarde

format(123,%6d)

"123"

" 123"

Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties

format(123,%-6d)

"123"

"123 "

Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze achteraf opgevuld met spaties

format(123,%06d) 

"123"

"000123"

Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met nullen

format(abc,%s)

"abc"

"abc"

%s geeft als resultaat de originele waarde

format(abc,%6s)  

"abc"

" abc"

Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties

format(abc,%-6s)

"abc"

"abc "

Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties

format(abc,%S)

"abc"

"ABC"

%S zet de originele waarde om in hoofdletters

format(abcde+,%.3s)

"abcde"

"abc"

Deze kapt het aantal karakters af in plaats van dat deze worden aangevuld.

Kan alleen bij een berekende string gebruikt worden, en niet bij een attribuut van het type Berekening.



Functie: Capitalize



Expressie

In

Uit

Expressie

In

Uit

capitalize(|Omschrijving|)

dit is een test

Dit is een test

capitalize(|Omschrijving|)

dit IS een test

Dit IS een test






Functie: Uncapitalize

Expressie

In

Uit

Expressie

In

Uit

uncapitalize(|Omschrijving|)

Dit is een test

dit is een test

uncapitalize(|Omschrijving|)

Dit IS een test

dit IS een test



Functie: Capitalize words

Expressie





Expressie





capitalizewords(|Omschrijving|)

dit is een test

Dit Is Een Test

capitalizewords(|Omschrijving|)

dit IS een test

Dit IS Een Test





Functie: Is_empty

is_empty: null en leeg wordt beide afgehandeld



Functie: Is_blank

is_blank: null, leeg en spaties worden allen afgehandeld. Indien alleen spaties in het veld Omschrijving staan dan verschijnt in het berekende string veld 'test'

Voorbeeld Afleveradres Online wordt gevuld met het afleveradres indien aanwezig en anders met het reguliere adres



Functie: Is Not Blank

In onderstaand voorbeeld worden diverse velden samengevoegd. Is een veld niet gevuld, dan wordt deze genegeerd via deze expressie. De overige velden worden in dat geval wel achter elkaar gezet.





Functie: Trim

Expressie

In

Uit

Expressie

In

Uit

trim(|Omschrijving|)

" Dit is een test "

"Dit is een test"



Functie: Contains



Functie: Remove / substring_after





Functie: Substring

Expressie

In

Uit

Toelichting

Expressie

In

Uit

Toelichting

substring(|Omschrijving|,10)

"Dit is een test hoever"

" test hoever"

De substring wordt dus vanaf het 10 karakter



Functie: Left

Expressie

In

Uit

Expressie

In

Uit

left(|Omschrijving|,5)

123456789

12345


Functie: Right

Expressie

In

Uit

Expressie

In

Uit

right(|Omschrijving|,5)

123456789

56789



Functie: Str_Equals



Voorbeeld berekening:



Voorbeeld berekende string:

Functie: Replace

In dit voorbeeld wordt in het betreffende veld de ë vervangen door e.



Indien in één expressie meerdere tekens vervangen dienen te worden kan dit als volgt: