Yop
Bon et bien, sacré Script maintenant
2000 lignes
Quelques améliorations faites, afin de ne pas rester bloquer par exemple si on trouve pas, et surtout un gros cas non géré.
Finalement, je peux avoir deux champs sur le site B qui dépendent du site A. Le plus simple est d'enregistrer car je voulais dynamiquement choisir le bon mais c'est pas possible.
Donc j'ai du enregistré une autre valeur sur le SpreadSheet google, et j'ai utilisé une bidouille pas super propre en faite.
J'explique :
J'avais une association crée entre un champA et un champB sur chaque site.
Problème sur le site B, j'ai un autre champ qui peut contenir plusieurs sélections dépendant du site A.
Exemple :
Site A : j'ai Maison/Papa et Maison/Maman
Site B : Premier champ, j'aurai la correspondance de Maison, par exemple Home. et dans un autre champ (toujours liste) j'aurai .PERS-Dad et .PERS.Mom qui dépendent du site A.
Compris ?
J'étais parti pour chercher dans la liste du site B avec le Papa ou Maman, mais y a des cas où c'est totalement différent... bref...
Du coup, si j'ai plusieurs .PERS, j'enregistre la valeur par rapport au cliA du site A sur Google.
Et là je voulais pas rajouter une autre colonne, ou autre, j'ai donc concaténé avec cliB/.PERS(value)
Le problème est que je peux avoir dans cliB des / (rare mais ca arrive).
Donc pour gérer ça j'ai fait cette bidouille sur le site B.
EDIT: Bah en relisant, j'ai trouvé la solution, pour gérer ces rares Slash :
if (maxTabcliB >1 && lastCell.indexOf('.CM') ) cliB = cliArrayB[0];
Dans le cas ou j'ai plus de un element et que le dernier element contient .CM (qui sera toujours compris car je le sauvegarde)
J'ai fait la même chose quelque ligne plus bas pour savoir quand chercher dans la liste et quand ne pas chercher....
EDIT2: Different de 0 ca serait mieux même.
Vu que je soustrait 1 à la longueur.
Code :
- //NEW 1.5 - Gestion du cliB qui peut contenir le CONTRAT
- cliArrayISIS = cliB.split('/');
- console.log("tab cliB",cliArrayB.length);
- maxTabcliB = cliArrayB.length-1;
- lastCell = cliArrayB[maxTabcliB];
- console.log(lastCell);
if (maxTabcliB = 2) cliB = cliArrayB[0];- if (maxTabcliB >1 && lastCell.indexOf('.CM') ) cliB = cliArrayB[0];
- console.log("cliB apres traitement",cliB);
|
Mais ca va pas être génial... Je réfléchis dessus actuellement.
Le plus simple, est que je crée une autre colonne dans le google.
Mais du coup, faut que je récupère deux valeurs après avec le script en une fois ca serait bien, et donc ca va être chiant...
Sinon autre problème, je peux avoir dans le cliB, un Et commercial (& )
Récupéré avec un .innerHTML ca donne un & et avec un textcontent ca donne &.
Le problème est que dans le script google, je récupère mes paramètres qui sont en GET, donc il coupe au &.....
Et là j'vois pas comment faire :
-regarder si on peut passer en Post à Google Script
-remplacer le & par un caractère spécial qui me posera pas de problème ???
Une autre idée ?
Message édité par ordimans le 23-02-2014 à 23:21:19