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 |
---|---|---|---|
| "123" | "00123" | Indien de waarde minder dan 5 cijfers bevat, dan wordt deze aangevuld met nullen |
| "12345" | "12345" | Indien de waarde reeds 5 cijfers bevat, is het resultaat gelijk aan de input |
| "123000" | "123000" | Indien de waarde uit meer dan 5 cijfers bestaat, is het resultaat gelijk aan de input |
| "123" | "123" | %d geeft als resultaat de originele waarde |
| "123" | " 123" | Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties |
| "123" | "123 " | Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze achteraf opgevuld met spaties |
| "123" | "000123" | Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met nullen |
| "abc" | "abc" | %s geeft als resultaat de originele waarde |
| "abc" | " abc" | Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties |
| "abc" | "abc " | Indien de waarde uit minder dan 6 tekens bestaat, dan wordt deze vooraf opgevuld met spaties |
| "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 |
---|---|---|
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 |
---|---|---|
uncapitalize(|Omschrijving|) | Dit is een test | dit is een test |
uncapitalize(|Omschrijving|) | Dit IS een test | dit IS een test |
Functie: Capitalize words
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 |
---|---|---|
trim(|Omschrijving|) | " Dit is een test " | "Dit is een test" |
Functie: Contains
Functie: Remove / substring_after
Functie: Substring
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 |
---|---|---|
left(|Omschrijving|,5) | 123456789 | 12345 |
Functie: Right
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: