Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Base de Connaissance

Apprenez auprès des experts.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index

Comment j'ai relevé le défi n° 59

AMansour
Bolide
Créé

Alors, quel est le défi de cette semaine

Capture d’écran 2021-03-08 à 12.14.02.png

 

 

Capture d’écran 2021-03-08 à 12.29.10.png

Les dates... ces valeurs numériques qui portent beaucoup plus d'information que ces chiffres misent ensembles dans l'ordre. Alteryx répresente les dates au format ISO 'yyyy-mm-jj'.

 

La date est une hiérarchie c'est pourquoi elle nécessite un traitement specifique pour déterminer le niveau dans lequel on applique le calcule et le format des résultats. 

 

Du plus, chaque date a un jour de la semaine qui lui correspond. Encore une information sur le weekend à prendre en compte 😉.

 

 

 

 

Entrée/Sortie

 

Pas une entrée mais deux :dbfileinput: cette semaine:
 
1. les détailles sur les commandes ( nom client, date de commande et état de livraison 🚚  )

2. Le temps de transit avant livraison par état. 

Input.jpg
Input2.jpg

 

 

En sortie, il faudrait, par client, la date de fin de transit ' si j'ai bien compris ' et un message personnalisé avec la date de livraison mise en forme.

Capture d’écran 2021-03-08 à 13.11.09.png

 

 

 

Ma Solution

 

Comme nous avons des informartions dans deux tables, il fallait commencer par les joindre.

 

Capture d’écran 2021-03-08 à 14.20.08.png

 

plusieurs solutions existent mais j'ai choisis :findreplace: car:

 

1. même si j'ai des doublons dans les sources je n'aurai jamais des produits cartésiennes 

2. Mes jointures se font sur un seul clé de jointure

3. il ne supprime pas les lignes sans correspondance

 

 

 

 

 

 

 

Capture d’écran 2021-03-08 à 13.35.16.png

 

⚠️ Mais attention au parametrage, car les comportements par défaut de cet outil permet une correspondance partielle. 

 

 

 

 

 

Maintenant que la date de départ ainsi que l'intervalle en jour sont joints, je peux calculer la date cible de livraison à l'aide de la fonction:

DateTimeAdd
([Date de commande],ToNumber([Temps de transit]) ,'day')

 

Capture d’écran 2021-03-08 à 14.21.42.png

On aura pu finir ici et passer à l'étape suivante mais non, Car le week-end les livraison ne sont pas assurées.

 

Donc, j'ai commencer par déterminer le jour de la semaine de chaque date ( j'ai vous avez prévenu qu'il y a pleins d’autres informations cachés. Méfiez-vous de l’apparence)

J'ai utilisé le fonction DateTimeFormat et pour les spécificateurs j'ai regardé les documentations d'Alteryx. 

 

Il me reste simplement, à ce stade, de décaler les dates du week-end vers le lundi suivant et pour ça j'ai utilisé la fonction suivante:

 

IF  [Jour de la semaine] = 'samedi'

THEN   DateTimeAdd([date de fin],2,'day') 

ELSEIF [Jour de la semaine] = 'Dimanche'

THEN   DateTimeAdd([date de fin],1,'day')  

ELSE [date de fin]

ENDIF

 

 

 

Capture d’écran 2021-03-08 à 14.22.55.png

 

Finalement, il fallait mettre ces ingrédients ensembles et composer le message. 
J'ai donc concaténé de text + des champs existants [Jour de la semaine] + des calculs de transformation de format de date DataTimeFormat()

 

 

 

"Date de livraison de la commande : " + [Jour de la semaine]+ ", " + DateTimeFormat([date de fin],'%d %B, %Y',"Français") 

 

Ce n'est pas complètement fini car je devais faire le nettoyage et le tri 😊

Capture d’écran 2021-03-08 à 14.35.03.png

Si cela vous a plu n’hésitez surtout pas à me le dire 😉. Vous pouvez aussi me dire s'il y a une autre/meilleure façons de faire. Ce n'est que ma solution. 

 

À la semaine prochaine

Cheers,

Amr

Commentaires
StephV
Alteryx Alumni (Retired)

Bonjour @AMansour ,

 

merci de nous avoir partagé ta solution au défi hebdomadaire #59 : "Quand arrivera votre commande" de @MarieC.

 

Pour en savoir plus sur l'outil Dates, je vous recommande : 

 

 

Excellente journée à tous, 

AMansour
Bolide

Hello, le sujet des dates vous intéresse !!! 

Je vous invite à lire, liker et enregistrer dans vos favoris les ACE's Insights de @Ladarthure 

 

StephV
Alteryx Alumni (Retired)

Bonjour à tous, 

 

un nouvel article de @Ladarthure vient de sortir : " ACE's Insights : Le calcul des jours fériés français ", je suis sûre qu'il va en aider plus d'un. 

 

Très bonne fin de journée à tous, 

 

contributeurs
Étiquettes