Exemple de script : Mise à jour dans une appli
Exemple de script : Mise à jour dans une appli
Bonjour,
Début 2015, je vais faire une démo concernant l'automatisation de taches.
(Si c'est concluant, je formerai quelqu'un)
Plus précisément :
Automatiser la mise à jour ou la consultation dans une application en utilisant un fichier de données en entrée.
Pour préparer cette démo, je n'ai pas accès aux applications de l'entreprise.
J'ai donc créé une mini application pour montrer les possibilités d'actiona pour répondre à ce type de besoin.
Je pense que cela pourrait intéresser quelqu'un qui démarre sur Actiona pour faire ce type de chose.
En pièce jointe 4 fiches :
- Courte présentation de la mini application.
Avant de lancer le script :
- Adaptation à faire pour que le script fonctionne.
Comment ça marche :
- Tour d'horizon des ressources utilisées (répertoires, fichiers, ..)
- Le script de démo. Zoom sur quelques actions.
Il ne devrait pas y avoir de bug dans ce script (quoique ..),
S'il y a des lourdeurs ou des solutions plus élégantes pour résoudre tel ou tel pb, je suis preneur.
Testé uniquement sous Firefox.
Francois
Début 2015, je vais faire une démo concernant l'automatisation de taches.
(Si c'est concluant, je formerai quelqu'un)
Plus précisément :
Automatiser la mise à jour ou la consultation dans une application en utilisant un fichier de données en entrée.
Pour préparer cette démo, je n'ai pas accès aux applications de l'entreprise.
J'ai donc créé une mini application pour montrer les possibilités d'actiona pour répondre à ce type de besoin.
Je pense que cela pourrait intéresser quelqu'un qui démarre sur Actiona pour faire ce type de chose.
En pièce jointe 4 fiches :
- Courte présentation de la mini application.
Avant de lancer le script :
- Adaptation à faire pour que le script fonctionne.
Comment ça marche :
- Tour d'horizon des ressources utilisées (répertoires, fichiers, ..)
- Le script de démo. Zoom sur quelques actions.
Il ne devrait pas y avoir de bug dans ce script (quoique ..),
S'il y a des lourdeurs ou des solutions plus élégantes pour résoudre tel ou tel pb, je suis preneur.
Testé uniquement sous Firefox.
Francois
- Attachments
-
- scripts_actiona.zip
- (365.28 KiB) Downloaded 393 times
Last edited by francois on 03 Dec 2014, 13:17, edited 1 time in total.
Re: Exemple de script : Mise à jour dans une appli
Wooh ça a l'air... Complexe.
Bon j'ai pas test mais j'ai regardé le code.
N'utilise pas eval, en js une chaine de caractère est un tableau tu peux donc accéder a son contenu comme un tableau classique. Puis utiliser parseInt pour changer le type du caractère en int.
J'ai refait vite fait ta fonction de vérification du code siren, j'ai juste réécrit un peu ton code pour obtenir quelque chose de plus propre.
En parcourant ton code j'ai remarqué que pas mal de variables n'étaient pas déclaré, et qu'il manquait beaucoup de ;. Dans ce cas ci, ça n'a pas l'air de te poser préjudice mais fait quand même attention avec ça parce que c'est très vite source de conflit et de bug :p.
Bon j'ai pas test mais j'ai regardé le code.
N'utilise pas eval, en js une chaine de caractère est un tableau tu peux donc accéder a son contenu comme un tableau classique. Puis utiliser parseInt pour changer le type du caractère en int.
J'ai refait vite fait ta fonction de vérification du code siren, j'ai juste réécrit un peu ton code pour obtenir quelque chose de plus propre.
Code: Select all
function verif_siren_K_valide(siren) {
if ((siren.length) != 9 || isNaN(siren)) {
return false;
} else {
var sum_impairs = 0, sum_pairs = 0, tt, w_sum;
for (var i = 1; i <= 9; i++) {
if ((i & 1) == 1)
sum_impairs += parseInt(siren[i-1]);
if ((i & 1) != 1) {
tt = parseInt(siren[i-1]) * 2;
if (tt > 9)
tt -= 9;
sum_pairs += tt;
}
}
w_sum = sum_pairs + sum_impairs;
if (w_sum % 10 == 0)
return true;
else
return false;
} // FIN : ELSE / if
} // fin : verif_siren_K_valide(siren)fonction
Re: Exemple de script : Mise à jour dans une appli
Francois,
J’ai fait tourné ton script sur mon PC ( en recréant les images comme tu l’indiques pour qu’elles soient adaptées à mon PC).
J’ai même rajouté des données dans le fichier en entrée et cela fonctionne.
Je vais m’inspirer de ce script pour mes besoins dans mon travail :
- Un fichier en entrée
- L’automate lit chaque ligne de ce fichier et utilise les données en naviguant dans une application.
Dans cette application, l’automate :
- Traite des formulaires HTML ( input, select, checkbox, .. )
- Clic sur les boutons de validation.
- Temporise le temps qu’il faut tant que la page n’est pas chargée.
- . . .
Une question :
Dans l’action ‘trouver image’, pour le champ ‘Image à chercher’ il y a > t_fjur[fjur] <
Tu peux expliciter ?
Stéphane
J’ai fait tourné ton script sur mon PC ( en recréant les images comme tu l’indiques pour qu’elles soient adaptées à mon PC).
J’ai même rajouté des données dans le fichier en entrée et cela fonctionne.
Je vais m’inspirer de ce script pour mes besoins dans mon travail :
- Un fichier en entrée
- L’automate lit chaque ligne de ce fichier et utilise les données en naviguant dans une application.
Dans cette application, l’automate :
- Traite des formulaires HTML ( input, select, checkbox, .. )
- Clic sur les boutons de validation.
- Temporise le temps qu’il faut tant que la page n’est pas chargée.
- . . .
Une question :
Dans l’action ‘trouver image’, pour le champ ‘Image à chercher’ il y a > t_fjur[fjur] <
Tu peux expliciter ?
Stéphane
Re: Exemple de script : Mise à jour dans une appli
Bonjour,
t_fjur[fjur]
t_fjur est un tableau de variables.
fjur est la 'forme juridique' contenue dans le fichier en entrée.
J'ai isolé dans ce script les endroits où l'on traite ces 2 notions :
Déclarer et remplir t_fjur :
récupérer le nombre d'occurences de t_fjur
la propriété 'length' ne fonctionne pas avec les tableaux associatifs d'où ce qui suit
Le fichier en entrée : siren /forme juridique / nombre d'employés
Exemple de contenu
272100017;SA;53
272200015;SARL;467
272500018;EURL;382
273000018;SA;50
273400010;SA;40
274000017;GFA;4
On va maintenant traiter en boucle toutes les occurences du tableau t_ligne :
Prévoir le cas où la forme juridique figurant dans le fichier n'est pas prévue dans l'application.
Voir dans le script de démo l'action 'Verification de la validité formelle des données'
Instruction essentielle : case t_fjur[fjur] === undefined :
On va donc chercher la forme juridique dans le menu avec option (contenant toutes les formes juridiques prévues dans l'application).
D'où l'action 'Trouver image'
et la valeur t_fjur[fjur] pour la zone 'image à chercher'
2 cas possibles :
Il trouve ==> L'automate va CLIQUER sur la zone trouvée
Il trouve pas : message + Execution.stop()
En cas d'évolution des 'formes juridiques' figurant dans l'appli ( en plus ou en moins)
Pas grand chose à faire,
Il suffit d'enlever ou d'ajouter une occurence dans la table t_fjur.
Actiona est vraiment épatant.
J'ai écrit une dizaine de scripts qui tous tournent plusieurs heures chacun.
Depuis la version 3.7, pas un seul plantage.
Bon, c'est vrai,
je mets pas toujours les ";" en fin de ligne (un coup de google et on voit que c'est pas obligatoire)
Je ne déclare pas toujours mes variables ( et même jamais dans un script comportant moins d'une dizaine de variables)
En réalité je ne connais pas vraiment le javascript (ou plus exactement L'ECMA (cf doc. Actiona))
Par contre, j'ai lu avec attention la doc. concernant actiona : "wiki.actiona.tools/doku.php?id=en:start".
Cela convient pour écrire du code ... qui fonctionne.
Francois
t_fjur[fjur]
t_fjur est un tableau de variables.
fjur est la 'forme juridique' contenue dans le fichier en entrée.
J'ai isolé dans ce script les endroits où l'on traite ces 2 notions :
Déclarer et remplir t_fjur :
Code: Select all
var t_fjur = new Array(); // les images des différentes formes juridiques prévues dans l'application.
t_fjur["SA"] =rep_actiona + "\\" + appli + "\\" + "img" + "\\" + "p24_fjur_SA.jpg";
t_fjur['EURL'] =rep_actiona + "\\" + appli + "\\" + "img" + "\\" + "p24_fjur_EURL.jpg";
t_fjur['SCI'] =rep_actiona + "\\" + appli + "\\" + "img" + "\\" + "p24_fjur_SCI.jpg";
t_fjur['SARL'] =rep_actiona + "\\" + appli + "\\" + "img" + "\\" + "p24_fjur_SARL.jpg";
t_fjur['GFA'] =rep_actiona + "\\" + appli + "\\" + "img" + "\\" + "p24_fjur_GFA.jpg";
la propriété 'length' ne fonctionne pas avec les tableaux associatifs d'où ce qui suit
Code: Select all
var nb_fjurs = 0;
for (var key in t_fjur){if (t_fjur.hasOwnProperty(key)) nb_fjurs++;};
Exemple de contenu
272100017;SA;53
272200015;SARL;467
272500018;EURL;382
273000018;SA;50
273400010;SA;40
274000017;GFA;4
Code: Select all
var fich_in = new File();
fich_in_chemin_complet= rep_fichier_IN + "\\" + nom_fichier_in
fich_in.open(fich_in_chemin_complet,File.ReadOnly| File.Text);
au_km = fich_in.readText();
fin_ligne =String.fromCharCode(10);
t_ligne =au_km.split(fin_ligne);
nb_arts_in= t_ligne.length;
On va maintenant traiter en boucle toutes les occurences du tableau t_ligne :
Code: Select all
pos_1=t_ligne[ctr_fichier_in].indexOf(";",0)
pos_2=t_ligne[ctr_fichier_in].indexOf(";",pos_1+1)
siren= t_ligne[ctr_fichier_in].substr(0,pos_1)
fjur= t_ligne[ctr_fichier_in].substr(pos_1+1,pos_2-pos_1-1)
nb_employes= t_ligne[ctr_fichier_in].substr(pos_2+1)
Prévoir le cas où la forme juridique figurant dans le fichier n'est pas prévue dans l'application.
Voir dans le script de démo l'action 'Verification de la validité formelle des données'
Instruction essentielle : case t_fjur[fjur] === undefined :
On va donc chercher la forme juridique dans le menu avec option (contenant toutes les formes juridiques prévues dans l'application).
D'où l'action 'Trouver image'
et la valeur t_fjur[fjur] pour la zone 'image à chercher'
2 cas possibles :
Il trouve ==> L'automate va CLIQUER sur la zone trouvée
Il trouve pas : message + Execution.stop()
En cas d'évolution des 'formes juridiques' figurant dans l'appli ( en plus ou en moins)
Pas grand chose à faire,
Il suffit d'enlever ou d'ajouter une occurence dans la table t_fjur.
Actiona est vraiment épatant.
J'ai écrit une dizaine de scripts qui tous tournent plusieurs heures chacun.
Depuis la version 3.7, pas un seul plantage.
Bon, c'est vrai,
je mets pas toujours les ";" en fin de ligne (un coup de google et on voit que c'est pas obligatoire)
Je ne déclare pas toujours mes variables ( et même jamais dans un script comportant moins d'une dizaine de variables)
En réalité je ne connais pas vraiment le javascript (ou plus exactement L'ECMA (cf doc. Actiona))
Par contre, j'ai lu avec attention la doc. concernant actiona : "wiki.actiona.tools/doku.php?id=en:start".
Cela convient pour écrire du code ... qui fonctionne.
Francois
Re: Exemple de script : Mise à jour dans une appli
Bonjour à tous
Pardonnez mon intrusion dans ce post très bien fait et clair sur le traitement des fichiers
c'est pourquoi j'interviens ici. Je débute sur Actiona et j'ai un souci simple mais que je n'arrive pas à résoudre en ECMA
Comment récupérer dans un répertoire donné et connu le nom du fichier le plus récent de ce répertoire.
Ce nom de fichier le plus récent servira de variable pour l'uploader dans une application via script Actionaz
j'ai le code en JS mais il ne fonctionne pas avec actionaz, problème de syntaxe surement mais je tourne en rond depuis quelques semaines
Merci de votre aide, vous qui semblez très aux faits des maniplulations de fichiers
Merci pour votre exemple qui me sera très utile dans un proche avenir
Cordialement
Pardonnez mon intrusion dans ce post très bien fait et clair sur le traitement des fichiers
c'est pourquoi j'interviens ici. Je débute sur Actiona et j'ai un souci simple mais que je n'arrive pas à résoudre en ECMA
Comment récupérer dans un répertoire donné et connu le nom du fichier le plus récent de ce répertoire.
Ce nom de fichier le plus récent servira de variable pour l'uploader dans une application via script Actionaz
j'ai le code en JS mais il ne fonctionne pas avec actionaz, problème de syntaxe surement mais je tourne en rond depuis quelques semaines
Merci de votre aide, vous qui semblez très aux faits des maniplulations de fichiers
Merci pour votre exemple qui me sera très utile dans un proche avenir
Cordialement
Re: Exemple de script : Mise à jour dans une appli
Bonjour,
Je ne pense pas qu'on puisse faire ce que tu veux directement avec Actiona.
Solution sous Windows (Y a l’équivalent sous UNIX )
Comme Actiona est un logiciel ouvert, il permet d'appeler -notamment - une commande DOS qui répond à ton besoin
puis d'exploiter le résultat sous Actiona
1)
La commande bat ( appelée dans la 1ere ligne du script):
Les paramètres de dir :
Le répertoire où on recherche le fichier le + récent.
/a-d : exclusion des répertoires dans la recherche.
/b : en sortie, uniquement le nom du fichier.
/o-d : trié du plus récent au plus ancien.
> c:\temp\dernier_fichier.txt : le fichier où on récupère le résultat.
2) puis dans actiona, on récupère la 1ere ligne de ce fichier.
En final, variable >dernier_fichier<
A adapter pour une 1ere utilisation :
1) Dans la 1ere ligne du script actiona : où est le fichier .bat :
2) Dans le fichier . bat : dans quel répertoire on cherche :
Cordialement
Je ne pense pas qu'on puisse faire ce que tu veux directement avec Actiona.
Solution sous Windows (Y a l’équivalent sous UNIX )
Comme Actiona est un logiciel ouvert, il permet d'appeler -notamment - une commande DOS qui répond à ton besoin
puis d'exploiter le résultat sous Actiona
1)
La commande bat ( appelée dans la 1ere ligne du script):
Code: Select all
dir D:\envirs\musique /a-d /b /o-d > c:\temp\dernier_fichier.txt
Le répertoire où on recherche le fichier le + récent.
/a-d : exclusion des répertoires dans la recherche.
/b : en sortie, uniquement le nom du fichier.
/o-d : trié du plus récent au plus ancien.
> c:\temp\dernier_fichier.txt : le fichier où on récupère le résultat.
2) puis dans actiona, on récupère la 1ere ligne de ce fichier.
En final, variable >dernier_fichier<
A adapter pour une 1ere utilisation :
1) Dans la 1ere ligne du script actiona : où est le fichier .bat :
Code: Select all
c://temp//zzz//recherche_dernier_fichier_cree.bat
Code: Select all
dir D:\envirs\musique /a-d /b /o-d > c:\temp\dernier_fichier.txt
Cordialement
- Attachments
-
- recherche_dernier_fichier_cree.zip
- (1.09 KiB) Downloaded 199 times
Re: Exemple de script : Mise à jour dans une appli
Bonjour
J'avais pensé à un contournement comme celui ci, mais vous avez devancé ma pensée et de fort belle manière, simple et efficace.
Après adaptation à mon environnement, ça marche finement et ouvre de grandes perspectives sur des traitements de fichiers.
Merci d'avoir consacré de votre temps et de vos neurones à ce problème qui me prenait la tête depuis trop longtemps.
Bien cordialement.
J'avais pensé à un contournement comme celui ci, mais vous avez devancé ma pensée et de fort belle manière, simple et efficace.
Après adaptation à mon environnement, ça marche finement et ouvre de grandes perspectives sur des traitements de fichiers.
Merci d'avoir consacré de votre temps et de vos neurones à ce problème qui me prenait la tête depuis trop longtemps.
Bien cordialement.
Re: Exemple de script :
Bonjour,
Je suis très intéressé par vos exemples ACTIONA
Je suis pret à payer par paypal ou autre 20€ de l'heure pour apprendre a faire un script actiona
pouvez vous me contacter?
cj340@free.fr
Merci
Claude
Je suis très intéressé par vos exemples ACTIONA
Je suis pret à payer par paypal ou autre 20€ de l'heure pour apprendre a faire un script actiona
pouvez vous me contacter?
cj340@free.fr
Merci
Claude
Re: Exemple de script : Mise à jour dans une appli
Bonjour,
Je suis toujours autant épaté par le logiciel qu'a conçu et réalisé JMGR.
Comme j'ai également eu des demandes via la messagerie privée, je donne quelques précisions ( qui reprennent un message que j'avais mis sur ce forum).
J 'ai utilisé Actiona dans mon boulot pendant 3 ans ( utilisation de fichiers de données en entrée ET Consultation/Mise à jour d'applications d'internet )
Certains scripts tournaient quotidiennement plusieurs heures et traitaient des milliers de données.
Depuis la version 3.7.2, pas un seul plantage du à Actiona.
J'habite depuis peu à Clermont-Ferrand ( plus exactement à Chamalières), j'ai du temps libre ( à la retraite) et je propose d'apprendre à utiliser Actiona. D'un point de vue pratique, je peux recevoir ou me déplacer ( Clermont et communes alentour)
Quelques remarques :
- Ce logiciel est conçu pour des utilisateurs de niveaux différents (notamment sachant coder ou non)
- Pour qui ne saurait pas coder et voudrait apprendre, l'automatisation d'action permet de visualiser ce que l'on fait et rend l'apprentissage du codage plus concret voire même plus ludique.
- Dans le cadre professionnel, ce logiciel peut être un bel outil de rationalisation.
En dehors d'actiona, je peux enseigner les langages suivants : VBA, Javascript, PHP, SQL.
(J'ai utilisé ces langages dans le cadre de mon boulot de développeur)
Cordialement
Francois
Je suis toujours autant épaté par le logiciel qu'a conçu et réalisé JMGR.
Comme j'ai également eu des demandes via la messagerie privée, je donne quelques précisions ( qui reprennent un message que j'avais mis sur ce forum).
J 'ai utilisé Actiona dans mon boulot pendant 3 ans ( utilisation de fichiers de données en entrée ET Consultation/Mise à jour d'applications d'internet )
Certains scripts tournaient quotidiennement plusieurs heures et traitaient des milliers de données.
Depuis la version 3.7.2, pas un seul plantage du à Actiona.
J'habite depuis peu à Clermont-Ferrand ( plus exactement à Chamalières), j'ai du temps libre ( à la retraite) et je propose d'apprendre à utiliser Actiona. D'un point de vue pratique, je peux recevoir ou me déplacer ( Clermont et communes alentour)
Quelques remarques :
- Ce logiciel est conçu pour des utilisateurs de niveaux différents (notamment sachant coder ou non)
- Pour qui ne saurait pas coder et voudrait apprendre, l'automatisation d'action permet de visualiser ce que l'on fait et rend l'apprentissage du codage plus concret voire même plus ludique.
- Dans le cadre professionnel, ce logiciel peut être un bel outil de rationalisation.
En dehors d'actiona, je peux enseigner les langages suivants : VBA, Javascript, PHP, SQL.
(J'ai utilisé ces langages dans le cadre de mon boulot de développeur)
Cordialement
Francois