Camel proces



Inhoudsopgave

Algemeen

De camel proces workflow maakt het mogelijk dat data in Beeyond bewerkt wordt. Op deze manier is het bijvoorbeeld mogelijk om periodiek velden te vullen of leeg te maken. Een voorbeeld is dat het veld 'Op voorraad' automatisch op 'Nee' wordt gezet indien het veld voorraad op 0 staat. Het toevoegen van een camel proces workflow gebeurd middels een XML bestand dat aan een bepaalde opmaak dient te voldoen.



Ga naar Workflows, Workflows. Het tabblad Workflows zal nu standaard geopend zijn. Zie ook onderstaande afbeelding.

Selecteer de optie Camel Proces en klik op het icoontje Toevoegen, of dubbelklik op Camel Process om een nieuwe Camel Proces workflow aan te maken. Het volgende scherm wordt weergegeven.



Veld

Omschrijving

Toelichting

Veld

Omschrijving

Toelichting

Beschrijving

Geef een duidelijke / herkenbare naam op voor de camel proces workflow.



Toevoegen Camel route

Selecteer het XML bestand door op het icoontje  te klikken. Selecteer vervolgens het gewenste bestand.



Verderop in deze sectie wordt de opmaak van het XML bestand verder beschreven aan de hand van praktijkvoorbeelden.

Indien het geselecteerde XML bestand ongeldig is volgt direct een foutmelding in beeld.

Rapport bestemming  

Kies hier of u een rapport wil ontvangen nadat de workflow is uitgevoerd. Dit rapport geeft het resultaat van de workflow weer, en wat de eventuele fouten zijn.   

Geen: er wordt geen rapport verstuurd.

E-mail: er wordt een rapport verstuurd naar een e-mail adres.

De onderstaande velden verschijnen waarin een e-mail adres, naam en onderwerp ingegeven dient te worden. Daarnaast kan een toelichtende tekst worden meegegeven in de velden tekst of html. Het is verplicht om minimaal één van deze velden te vullen met tekst.

FTP: er wordt een rapport op een FTP locatie geplaatst. Vul de url, gebruikersnaam en wachtwoord in om de connectie op te zetten. Door op 'Test connectie' te klikken is het mogelijk om de verbinding te testen.

Cron schema

Vul het veld cron schema indien de actie periodiek uitgevoerd dient te worden. Klik hier voor meer info betreffende het opstellen van een cron schema.



Geplande datum/tijd

Dit veld kan gebruikt worden om in te stellen per wanneer de workflow uitgevoerd moet worden indien het een éénmalige job betreft, of per wanneer de workflow voor de eerste keer moet starten indien het een job betreft met een cron schema.





Opmaak XML bestanden

Zoals reeds eerder aangegeven in deze sectie dienen de XML bestanden aan een bepaald format te voldoen. In deze paragraaf wordt dit besproken aan de hand van praktijkvoorbeelden. Klik in de kolom bestand op de bestandsnaam om het XML bestand te openen. Onder de tabel nog enkele aandachtspunten betreffende de (on)mogelijkheden in de XML bestanden.





Beschrijving

Bestand



Beschrijving

Bestand

1. 

Camel proces waarbij de leverdam (ARTICLE_DELIVERY_DATE) default op 01-01-1900 wordt gezet indien deze datum in het verleden ligt.

Daarbij wordt gebruik gemaakt van een filter in beeyond (ARTICLE_17) waarbij alle artikelen worden opgehaald met een datum in het verleden.

AanpassenLeverdatum.XML

2.

Camel proces waarbij de volgende stappen worden uitgevoerd:

  1. huidige prijzen vanuit de ARTICLE entiteit worden gekopieerd naar de entiteit ARTICLE_CHANGE in diverse velden met de naam _OLD (zodat historie bewaard blijft)

  2. prijzen worden vanuit ARTICLE_CHANGE gekopieerd naar de entiteit ARTICLE (over de velden welke in stap 1 zjin gekopieerd naar CHANGE)

  3. een boolean veld ARTICLE_CHANGE wordt uitgevinkt (op niet actief gezet)

VerwerkenMutaties.XML

3.

Camel proces waarbij het veld bestelbaar (boolean veld) wordt uitgevinkt, en het veld voorraadwaarde op de waarde 3 wordt gezet.

Er wordt gebruik gemaakt van het filter ARTICLE_14 waarmee artikelen worden opgehaald waarbij een bepaalde datum tussen vandaag en 150 dagen terug ligt.

VerwerkenArtikelen.XML

4.

Camel proces waarbij het artikelnummer (ARTICLE_NR_OLD) automatisch gevuld wordt met het artikelnummer uit het veld ARTICLE_INTERNEALNR.

Daarbij wordt gebruik gemaakt van filter ARTICLE_8 waarbij artikelen worden opgehaald waarbij het veld ARTICLE_NR_OLD leeg is.

VerwerkenArtikelnr.XML

5.

Camel waarbij een groepattribuut gevuld wordt op basis van een string attribuut.

ARTICLE_ITEMGRP (groep attribuut) wordt gevuld op basis van het string attribuut ARTICLE_ITEMGRP_STRING.



Let wel op dat hierbij een filter wordt gebruikt in de camel waarin wordt gefilterd op artikelen waarbij het groep attribuut nog niet gevuld is.

Op dit moment worden namelijk alleen nieuwe relaties gelegd, er worden geen groep relaties gewijzigd via de camel proces.

Camel-Groep.XML

6.

Camel om entiteiten definitief te verwijderen uit Beeyond.

Let op: het definitief verwijderen werkt alleen op basis van alle entiteiten uit een entiteit difinitie.

Dat betekend dat het momenteel niet mogelijk is om entiteiten definitief te verwijderen op basis van een geavanceerd filter.



LET OP: deze camel is alleen bedoeld voor support doeleinden. Nadat gegevens verwijderd zijn uit Beeyond zijn deze niet meer terug te halen.

delete.route.xml

 7

Camel om een entiteit in Beeyond opnieuw op te slaan zodat berekende velden opnieuw berekend worden.

In deze camel wordt een attribuut van het type 'Berekening' aangeroepen. Feitelijk wordt dit veld niet bewerkt, wel worden alle berekende velden herberekend.
Voordeel hiervan is dat er niet 2 camel processen ingericht hoeven te worden om dagelijks dit te bewerkstelligen (anders zou eerst een veld bijvoorbeeld op 'Ja' gezet moeten worden, en vervolgens via een aparte camel op 'nee') 

 Camel-TempImportBerekening.XML

8

Camel om foto's (blob) leeg te maken bij artikelen. In de front-end kunnen foto's niet in bulk leeggemaakt worden, dit is hier een workaround voor.

Camel-deleteFoto.XML

9

Camel om een relatie te leggen tussen 2 entiteiten.

In dit voorbeeld wordt een relatie gelegd tussen een Relatie en een Contactpersoon.

Camel-BZTRS-Relation_contact.XML

10

Camel waarbij een datumveld wordt leeggemaakt in Beeyond.

Een toepassing kan zijn om een contract automatisch op inactief te zetten zodra een datum gepasseerd wordt. Daarbij dient het Datumveld leeggemaakt te worden op basis waarvan een contract automatisch op inactief wordt gezet.Een ander voorbeeld van een toepassing is het gebruik van een datumveld om attributen in een artikel in de toekomst te vullen op basis van dat datumveld. Nadat de datum gepasseerd is dient deze automatisch leeggemaakt te worden.

Ook string (tekst) velden kunnen op deze zelfde wijze worden leeggemaakt.

Camel-DeleteDatum.XML

11

Camel waarbij alle records in één entiteit worden geupdate. De wijzigingsdatum wordt daarbij dus aangepast.

Pas in de XML alleen de entiteit naam aan naar de correct Entiteit ID.



Camel-UpdateEntity.xml

12

Camel waarbij een relatie attribuut (drop-down of één op veel relatie) wordt leeggemaakt, en direct gevuld met een andere waarde.

Let op: relaties kunnen verwijderd worden via een camel actie, daarbij moet echter wel naar een bepaalde waarde verwezen worden zodat Beeyond weet welke waarde verwijderd moet worden.

Via deze camel kunnen zowel drop-down als één op veel relaties worden aangepast.



Verwijderen relatie: setRelated=false (daarbij moet verwezen worden naar een waarde uit de drop-down, als je dus meerdere keuzes hebt in de drop-down zal per keuze deze setRelated=false moeten worden opgenomen in het bestand).

Toevoegen relatie: setRelated=true



Deze toepassing is mogelijk vanaf versie 1.8.5

Camel-VerwijderenToevoegenRelatie.xml

13

Camel waarbij records in een entiteit worden geüpdatet op basis van een filter. Deze lijkt dus op het voorbeeld van nummer 11, alleen is het toepassen van een filter hierin mogelijk. Met deze camel is het bijvoorbeeld mogelijk om berekende velden te herberekenen.

Pas in de XML alleen de entiteit ID en het Filter ID aan.

Camel-HerberekenenRecordsMetFilter.xml



Aandachtspunten

  • In een camel proces kan een filter toegepast worden. Wat echter nog niet functioneel is in het gebruik van camel jobs is dat er gefilterd wordt op gerelateerde entiteiten. Stel de hoofdentiteit waarop gefilterd wordt is Artikel, en in het artikel is een artikelgroep aanwezig, dan is het niet mogelijk om op artikelgroepen te filteren. Hiervoor is een interne melding aanwezig: PIM-2380.

  • Het invullen van een datum is mogelijk via het XML bestand. Dit kan bijvoorbeeld als volgt: value=9/18/13%207:32%20AM

9: maand

18: dag

13: jaar

%20: spatie

7: uur

32: minuten

%20: spatie

 AM of PM

Zie ook voorbeeld 1 in bovenstaande tabel.

 

  • Een camel proces maakt altijd gebruik van een filter vanuit Beeyond om gegevens aan te passen. Indien een camel proces bezig is kan men door dit filter te openen direct het resultaat zien. Door op het verversen icoontje te klikken ziet men dan direct resultaat.