Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je cherche à créer une application de gestion du pipe d'un atelier de production.
Celui-ci est composé de plusieurs machines (machines1 / machines2) qui peuvent produire des pièces différentes. (pièces 1 / pièces 2 / pièces 3)
Une pièce peut-être produite par plusieurs machines, du coup j'obtiens un tableau de la forme :
J'aimerai pouvoir spécifier des priorités au sein de mes machines. Par exemple dire que Machine 2 est prioritaire sur Machine 1 pour obtenir le résultat suivant :
J'arrive déjà à obtenir ce résultat avec un if. Néanmoins cela ne me convient pas. J'aimerai pouvoir figer ces règles de priorités dans mon application.
Est-il possible de le faire au moment où je charge mes données ? Ou dois-je créer de nouvelles datas ?
Si quelqu'un a une idée, je suis preneur.
Bonne journée
Data:
LOAD * INLINE [
A,X, C, D
121902,249467, A, GT
121902,249467, po, P
121901,249466, ahy, B
121900,249465, ttt, B
121899,249463, fg, B
121891,249449, df, G
121891,249450, AZ, B
121883,249427, AZ, GT
121883,249427, A, P
];
Press:
noconcatenate
load X as k,* resident Data where D='P';
join
load * resident Data where not Exists (k,X);
drop table Data;
drop field k;
Bonjour,
si la règle de priorité est que la dernière machine qui a fabriqué la pièce, alors tu peux utiliser ce script en Load:
Data:
LOAD rowNo() as ID,* INLINE [
Pièces, Machines
Pièces 1, Machines 1
Pièces 1, Machines 2
Pièces 2, Machines 1
Pièces 3, Machines 1
Pièces 3, Machines 2
];
output:
noconcatenate
load Pièces,FirstSortedValue(Machines,-ID) as Machine resident Data group by Pièces Order by Pièces;
drop table Data;
le output :
Merci pour votre réponse.
En fait, mes machines proviennent d'une data "name.machine" et les pièces de "names.pieces".
Au sein de ces machines j'ai toujours le même ordre de priorité (machine 1 > machines 2), ce n'est donc pas forcément la dernière machine a avoir fait la pièce qui est prioritaire.
Bonne journée
si j'ai bien compris, et si vous avez les machines nommées : machine 1, machine 2,...
je vous propose cette solution :
Data:
LOAD * INLINE [
Pièces, Machines
Pièces 1, Machines 1
Pièces 1, Machines 2
Pièces 2, Machines 1
Pièces 3, Machines 1
Pièces 3, Machines 2
];
output:
noconcatenate
load Pièces,MaxString(Machines) as Machine resident Data group by Pièces Order by Pièces;
drop table Data;
Bonjour,
Cela fonctionne avec cet exemple mais ne correspond pas exactement à mon besoin.
Je prépare des exemples plus complets et reviens vers vous.
Data:
LOAD * INLINE [
A,X, C, D
121902,249467, A, GT
121902,249467, po, P
121901,249466, ahy, B
121900,249465, ttt, B
121899,249463, fg, B
121891,249449, df, G
121891,249450, AZ, B
121883,249427, AZ, GT
121883,249427, A, P
];
Press:
noconcatenate
load X as k,* resident Data where D='P';
join
load * resident Data where not Exists (k,X);
drop table Data;
drop field k;