Création d'un programme de récuperation données HTML/ASP

C4st
Création d'un programme de récuperation données HTML/ASP

Salut à tous ! 8)
Je suis nouveau sur le forum, et je me suis inscrit car j'ai un petit projet de programme mais j'aurais besoin de quelque reponses a mes questions.

Je suis actuellement technicien support informatique et je travaille essentiellement sur ManageNow pour ceux qui connaissent.
Pour ceux qui ne connaissent pas ^^ :
ManageNow est une interface de gestion de tickets d'incidents se présentant sous la forme d'un site.

Le mode de fonctionnement :
Lorsque un utilisateur appel les télé-operateurs, ceux-ci créent un ticket sur leurs base ManageNow et nous le transfert à notre service par le biais d'une fonction de ManageNow.

Pour en venir a mon projet de programme :

J'aimerais créer un programme assez basique ayant dans l'interface le nombre de ticket en attente, un bouton pour les prendre en charge, un autre pour ajouter un message type, et un autre pour réactualiser le nombre de tickets manuellement.
Cette application me permetterais de mieux gérer mon travail.

J'ai quelque notions basique dans plusieurs languages de programmation, et je sais qu'il faut utiliser principalement des sockets qui se connecterait a managenow qui est sous la forme d'un site codé en ASP et HTML.

Pour le reste du programme ce n'est que des fonctions d'affichage et de récuperation des données des sockets.

Je pense que ce programme est faisable, mais j'aurais besoin de votre aide.

Voici quelque question que je me pose :

- Quel language de programmation serait le plus approprié pour ce type de programme (le + facile a mettre en oeuvre)

- Cela requiert-il beaucoup de conaissances dans ce language, ou en cherchant un peu il est possible de trouver de bons exemple representant les fonctions que je recherche (notamment sur les sockets http et le filtre asp)

Voilà beaucoup d'explication pour très peu de questions mais j'espère avoir votre avis car je ne sais vraiment pas vers où me diriger, et malgrés que le C++ soit ma première pensée serait-il le plus facile pour ce genre de programme ?

Merci d'avance,
A+ !

Niroken

Bonjour,

Honnetement, pour bien te guider sur les choix à faire, je crois qu'il nous faut bien comprendre ce que tu veux faire.

D'après ce que j'ai compris, il y a deux "acteurs" dans ta société :
- télé-opérateurs
- support informatique

Et le télé opérateur crée puis transfert les tickets au support informatique via une fonction de votre "intranet".

Ce que je n'ai pas bien compris c 'est :

Quote:
et nous le transfert à notre service par le biais d'une fonction de ManageNow

C'est a dire : comment ca se passe?

- L'application crée des fichiers sur un répertoire partagé qui contient les tickets?
- L'application vous envoie un mail pour vs notifier la présence d'un ticket?
- Votre intranet contient deux modes d'accès? un en authentification télé opérateur et un en authentification suport informatique?

Je pense que la facon dont sont transférés les tickets va jouer un role clé sur le type d'application que tu vas devoir créer.

Indépendamment de ca, il me semble assez clair que tu aies besoin d'une interface graphique, bien qu'on puisse faire des interfaces graphiques avec bcp de langages, le plus simple à mon gout serait d'utiliser C# et un visual studio.

Bonne chance,
Niroken

fredericmazue

Comme Niroken, je trouve que le pb n'est pas suffisament décrit.
Comme lui je pense que typiquement C++ n'est pas le bon choix. On est vraiment dans un cas où la performance à l'exécution ne présente aucun intérêt.
Et pour le choix du langage j'irai plus loin qui lui. C# déjà c'est bien dans le sens où tu coderas ce que tu veux plus vite qu'avec C++ et sans les inconvénients, mais il me semble qu'un langage de script comme Python (exemple non limitatif) c'est encore mieux.

Un dernier mot. Un "socket HTTP" ça n'existe pas. Un socket est un socket et tu fais passer ce que tu veux dedans par, exemple un protocole HTTP.
Peut être bien que pour traiter ton problème tu dois envoyer une requête HTTP dans un socket, ou encore autrement. Comme l'a dit Niroken, il faut que tu sois plus explicite à propose de l'affaire ManageNow, et aussi de la structure de données qui contient les tickets. Une pile ? Une liste ? le contenu d'un fichier XML rafraichi périodiquement ?

Il faut que tu nous en dises plus :)

C4st

Salut !
Merci pour vos deux reponses !

Pour reprendre tes questions Niroken :

- L'application crée des fichiers sur un répertoire partagé qui contient les tickets?

Non, ManageNow utilise une base de donnée (je n'en sais pas plus malheureusement).

- L'application vous envoie un mail pour vs notifier la présence d'un ticket?

Merci pour l'idée, je n'avais pas pensé a cela car nous n'utilisons pas les mails pour voir lorsque les tickets arrivent mais il y a bien un mail d'envoyé. Peut-être une solution plus facile pour la récuperation des données !

- Votre intranet contient deux modes d'accès? un en authentification télé opérateur et un en authentification suport informatique?

En réalité j'ai simplifié le fonctionnement.
Lorsque quelqu'un appel, ils appellent en réalité des téléoperateurs de chez IBM qui créent le ticket et le transfert au service concerné.
ManageNow est développé par IBM, ils assurent donc la gestion & l'administration de celui-ci.
Les transferts sont affecté a un groupe. C'est comme ca que nous sommes défini.
Mes identifiants doivent etre assigné à mon groupe.
Si le problème ne rentre en vérité pas dans mon périmetre d'action, je le transfert moi même au service en question, toujours par le même principe de fonctionnement : je dois choisir un "groupe".

Selon le groupe, nous recevons les tickets transféré à celui-ci.

Pour Frederic, c'est une liste en tableau très moche dans le style base de donnée mysql un peu. J'ai un menu sur la gauche en frame qui permet avec des liste déroulante de chosir des critère de recherche "ticket ouvert et assignés, ouvert et non assignés (nouveaux tickets), etc." puis cliquer sur afficher et c'est alors là que je vois si j'ai reçu de nouveaux tickets. Aucun rafraichissement periodique.

Je n'ai vraiment que trop peu d'informations sûres et exactes, ne sachant moi même pas exactement comment tout cela fonctionne vraiment, mais il me semble que c'est bien ca.
De plus, c'est assez difficile à expliquer. Demain je ferais un petit doc sur le fonctionnement de ManageNow avec quelque screenshot qui pourrait vraiment aider à mieux comprendre.

Je posterais directement du taff, en attendant je vais regarder un petit peu du côté C# et surtout Python que je ne connais pas encore à part de nom !

Merci à vous deux, en esperant vour revoir demain ;)

C4st

Je viens ENFIN de trouver un lien sur google pour ManageNow (très difficile !).
Même pas besoin de s'authentifier apparement... Lorsque je m'identifie j'arrive sur la même page, qui se présente en Français chez moi.

Voici l'interface ManageNow :
https://mnr2.sdcne-services.ihost.com/managenowpren/bin/files/wcls_main.asp

Edit : Il n'y a malheureusement pas de tickets, on ne peut donc voir entierement l'usage de l'interface.

Niroken

Hello,

Je vois deja un peu mieux :)
Maintenant mon avis sur la question est le suivant :

Option 1:

En sachant que visiblement les télé-opérateurs et vous bossez sur la même base de données, si tu crées une application qui te permet de visualiser, manipuler des tickets, le plus simple serait que tu aies un accès direct à cette base (url, login, mot de passe).
Après je dirais que pour obtenir un accès ou non, ca dépend des relations qui te lient à IBM.

Option 2:

Sans accès direct à la base de données, il y a des moyens détournés de récupérer les tickets, par exemple récupérer les mails, ou lancer une requete http sur le script qui récupère les tickets que tu veux.
Maintenant si tu fais ca, il faut savoir que tu pourras visualiser éventuellement les tickets, mais si jamais tu dois faire une action ou modifier le statut de ces tickets tu seras obligé de le faire sur ton appli après.....

Option 3:

D'après moi, ton soucis ressemble bcp à un soucis d'ergonomie générale sur l'application manageNow, qui à priori est faite en asp, et n'a pas l'air de bénéficier des technos modernes on va dire.
Donc tu pourrais éventuellement proposer à IBM de faire une MAJ de leur application en tenant compte de ton besoin.

Pour finir, et en supposant que tu aies un accès direct à la base de données, a contrario de Fréderic, je persiste et signe dans l'emploi du .NET pour faire ton application.
En effet avec l'IDE WYSIWIG visual studio, tu peux faire un mapping entre une interface graphique et une base de données en quelques clics.
Ceci dit, je ne connais pas Python et même si à priori il contient un toolkit graphique (Tkinter), je ne suis pas certain que ce soit aussi simple de construire une interface graphique qu'avec .NET.

Bonne chance,
Niroken

C4st

Salut Niroken,

Dans toutes les 3 options que tu m'a proposé, j'en ai retenue une en particulière, car les autres sont impossible à mettre en place.

Je ne peux pas accèder à la base de donnée directement, donc l'option 1 est impossible. De plus je ne pense vraiment- pas qu'IBM fera une mise à jours de leurs interface que je trouve aussi largement dépassée (mais à la rigueur : temps mieux pour l'option 2 que je valide).

Je suis en pause déjeuner et j'ai eu quelques minutes pour regarder un peu le fonctionnement du module de recherche des tickets (qui permet de voir les tickets non assignés si il y en a).
Il n'a pas l'air très compliqué, et je pense pouvoir créer une requête spécifique pour l'affichage de la page des nouveaux tickets.
Avec cette requête si la page contient "Aucun ticket (...)" dans le programme cela resultera à 0.
Si il y a quelque chose d'autre, il faudra que je créer un filtre qui calcul le nombre de tickets selon le code HTML qui affiche les tickets par "liste".

N'ayant pas grand chose pour faire mes recherche sur mon poste, je vais pour le moment me familiariser avec le fonctionnement de ManageNow en regardant le code source de plusieurs page clé.

Pour l'ajout de note sur le ticket cela parait beaucoup plus difficile car il fait appel à l'ASP.

Merci pour ta reponse, je pense faire une étude plus approfondie du fonctionnement de ManageNow avant d'entamer la partie programmation.

Niroken

Hello,

Hmmm, je t'avoue que l'option 2 ca va pas être le plus simples à mettre en place :)

En fait comme tu l'as indiqué tu te logues sur ton site avant de pouvoir accéder aux différentes fonctionnalités, ce qui veut très certainement dire que tes informations de connection (genre idUtilisateur) seront stockées en session.

Le hik c'est que si toi tu lances une requete http pour appeller le script (en admettant qu'il existe) "GetTicketByGroupe.asp", eh bien, comme tu ne communiqueras pas d'éléments de session, tu vas te faire jetter direct. (si le site est bien fait)

Ca doit être faisable de simuler une connection et de récup des informations de session ceci dit, mais c est une difficulté supplémentaire qu'il te faudra tenir en compte.

Pour l'instant je n'ai jamais fait ca, mais si j'en apprend plus la dessus, je posterais.

Bonne chance,
Niroken