FORUM DES UTILISATEURS / USER'S NEWSGROUP


Heures au format UTC + 1 heure




Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
MessagePublié: 21 Nov 2016 14:14 
Hors-ligne

Inscrit le: 17 Oct 2008 9:16
Messages: 61
Bonjour,
Avec le passage de champ "Lot" de la table "Stock Composant" en type Integer à String dans la version 2016, tous nos scriptes et Editions étaient réecrites de nouveau , mais le plus dérangeant était que ( exemple le nouveau lot "10000" était classé en haut de la liste et l'ancien "8560" était classé en bas, et si la liste est plus longue le nouveau lot disparaît de l’écran) fait que les utilisateurs ne se retrouvent plus dans leur travail ( opérations sur Stock Composants) .

Questions :
1- Quel est l'objectif ou les avantages de ce passage du type Integer à String du champ "Lot"?
2- Y a t il possibilité de définir un tri par défaut de la table "Stock Composant" (exemple Date entrée,Lot) du moins l'onglet stock du module composant?

Solune STX 2016 16.2.1.

_________________
Ibrahim KHENE (Solune STX 20 accès)
FARAS INTERNATIONAL, Algérie, Manufacture d'Enveloppes, 60 pers


Haut
 Profil  
 
MessagePublié: 22 Nov 2016 17:20 
Hors-ligne
Administrateur

Inscrit le: 03 Fév 2015 16:02
Messages: 67
Bonjour,

Suite à de nombreuses demandes d'évolution,
Le choix technique du passage d'Integer à String à été fait pour stocker une codification des lots plus complète basée sur une codification paramétrée et définie dans Solune.

Certaines fonctionnalités sont déjà disponibles par script, toutes ne sont pas encore ouvertes dans la version 16.2.2 mais le seront prochainement.

Lors de la migration de V15 à V16 Solune ajoute des zéros non significatif sur le champ lot afin que l'ordre d'affichage soit cohérent, le nombre de zéro est défini a partir des données existantes.
Aujourd'hui, le nombre de chiffre que vous avez atteint (5 -> 10000) dépasse les zéros non significatifs ajoutés lors de la migration.

Pour conserver un ordre pour vos utilisateurs, il est possible d'ajouter à nouveau des zéros non significatifs devant les numéros de lot.
Cela implique de modifier TOUS les champs exploitant le numéro de lot, y compris ceux des tables créées par script.

Exemple :
10000
...
8560

Devient :
08560
...
10000

Vous pouvez utiliser le script suivant pour remettre de l'ordre :

Code:
nbChar:=!SELECT MAX(CHARACTER_LENGTH("Lot")) FROM "Stock_produit";

nbCharSQL:=[nbChar];

sChar:=!'';
WHILE([nbChar]>0)
 sChar:=0[sChar];
 nbChar:=![nbChar]-1;
ENDWHILE;

UPDATE "Stock_produit" SET "Lot"=SUBSTRING('[sChar]'+"Lot" FROM CHARACTER_LENGTH("Lot")+1 FOR [nbCharSQL]);
UPDATE "Mouvements_produits" SET "Lot"=SUBSTRING('[sChar]'+"Lot" FROM CHARACTER_LENGTH("Lot")+1 FOR [nbCharSQL]);



Il n'y a pas d'ordre de tri disponible à ce niveau.

Cordialement.

_________________
Nicolas - Service Développement Solune


Haut
 Profil  
 
MessagePublié: 23 Nov 2016 9:22 
Hors-ligne

Inscrit le: 17 Oct 2008 9:16
Messages: 61
Bonjour,
Merci pour votre réponse , je pense que votre scripte exemple est erroné car le Stock produit ne pose pas de probléme et ne contient pas de champ "Lot".
J'ai corrigé les Lots composants avec ce scripte:
{
UPDATE "Stock_composant" S
SET S."Lot"=SUBSTRING(CAST((CAST(S."Lot" as INTEGER)+100000) as NULLSTRING(6)) FROM 2 FOR 5)
WHERE CAST(S."Lot" as INTEGER)<10000;

UPDATE "Mouvements_composants" M
SET S."Lot"=SUBSTRING(CAST((CAST(M."Lot" as INTEGER)+100000) as NULLSTRING(6)) FROM 2 FOR 5)
WHERE CAST(M."Lot" as INTEGER)<=5000;

UPDATE "Mouvements_composants" M
SET S."Lot"=SUBSTRING(CAST((CAST(M."Lot" as INTEGER)+100000) as NULLSTRING(6)) FROM 2 FOR 5)
WHERE CAST(M."Lot" as INTEGER)>5000;

}.

Cordialement.
Solune 2016 16.2.2

_________________
Ibrahim KHENE (Solune STX 20 accès)
FARAS INTERNATIONAL, Algérie, Manufacture d'Enveloppes, 60 pers


Haut
 Profil  
 
MessagePublié: 23 Nov 2016 14:00 
Hors-ligne
Administrateur

Inscrit le: 03 Fév 2015 16:02
Messages: 67
Bonjour,

En effet, le script que je vous ai transmis n'est valable que pour Solune Ipso qui ne connait que la notion de produit.
Remplacer simplement les tables Stock_composant et Stock_produit aurait corrigé.

Dans votre cas, votre script fonctionne aussi.
Le choix de 10000 est certainement judicieux, mais attention qu'aucun lot ne soit plus grand que 6 caractères, sans quoi vous tronquez des données.

J'oubliais également de vous informer d'un détail. En version 16 Solune sait prendre le relais sur une numérotation comportant des zéros non significatif.
Exemple, le dernier lot étant "0001245" Solune créera le prochain avec le numéro (format String) "0001246".

Cordialement.

_________________
Nicolas - Service Développement Solune


Haut
 Profil  
 
MessagePublié: 23 Nov 2016 15:54 
Hors-ligne

Inscrit le: 17 Oct 2008 9:16
Messages: 61
Bonjour,

Merci pour votre réponse, évidement le chiffre 10000 reste une limite que hésiter à la fixer (entre 10000 et 100000) , mais vu que pour dépasser le chiffre de 99999 il faut 10 fois le temps qu'on a passé pour arriver à 10000. donc normalement c'est acceptable comme limite.

Cordialement.

_________________
Ibrahim KHENE (Solune STX 20 accès)
FARAS INTERNATIONAL, Algérie, Manufacture d'Enveloppes, 60 pers


Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Aller vers:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr