Quelquepart

Blog d'un développeur ABAP

Vous êtes ici : Accueil>Application>ZAL11 : Cure de rajeunissement pour AL11

ZAL11 : Cure de rajeunissement pour AL11

Rédigé par Sébastien Hermann dans Application -

Le travail sur un datawarehouse nous confronte régulièrement à des injections de fichier. Et sur SAP, nous ne sommes pas gâté niveau outils...
J'entendais souvent mes collègues râler à propos de la transaction AL11, la seule chose dont nous disposons en standard pour naviguer sur le serveur SAP.

J'ai parcouru la toile à la recherche d'une solution de remplacement mais ne fut pas convaincu par ce que j'y ai trouvé, aussi j'ai pris mon courage (et mon clavier) à deux mains afin de réaliser ma propre solution : plus complète, plus lisible et avec l'ergonomie qui me sied (mais je ne crache pas dans leur soupe, j'ai d'ailleurs repris leur manière de déterminer l'icone relatif a chaque type de fichier).

Entièrement graphique, le programme "ZAL11" (tout simplement ;-) ) vous permettra de naviguer sur le serveur SAP, mais également :

  • D'ouvrir les fichiers avec votre application par défaut sur votre PC (excel pour les CSV par exemple)
  • D'ouvrir les fichiers avec un éditeur de texte sur votre PC
  • De télécharger ou télédécharger des fichiers
  • De gérer les fichiers/répertoires du serveur (ajout, copie, déplacement, renommage)
  • De compresser (tar+bz2) ou décompresser (zip, tar, gz, bz2) des fichiers et répertoires sur le serveur
  • De copier dans le presse-papier le chemin d'un fichier sur le serveur, ou d'accéder directement au répertoire d'un chemin contenu dans le presse-papier.

La gestion des raccourcis serveur de AL11 est conservée (et débuggée ;-) )
Vu qu'il s'agit de manipulation sur le serveur, chaque action demande une confirmation via un popup qui récapitule ce qui est en train d'être fait.

Le code a été écrit dans une optique de sécurité, de maintenabilité et de respect des normes de développement usuels. Il est entièrement documenté en anglais (25% de commentaires ajoutés par rapport au code brut).
La principale "entorse" aux règles est que le code est fourni dans un seul pavé de 3500 lignes au lieu d'être découpé en includes (top, class, pbo, pai, form). C'est volontaire afin de n'avoir qu'un seul code source à fournir. Néanmoins chaque partie est clairement délimitée et il ne devrait pas falloir plus d'une minute à un développeur pour recréer les includes nécessaires. Pour la même raison de simplicité de partage, aucune classe de message n'a été créée.

A noter : n’oubliez pas que vous aurez besoin de SAPLINK pour installer le programme.

#1 Cyril a dit :

Super merci beaucoup ! A proposer à SAP ;-))))))))

#2 Sébastien Hermann a dit :

Petite update pour corriger un bug d’affichage

#3 thoul a dit :

Superbe développement: Pratique et de belle présentation. Le code et commentaires étant à l’avenant. Bref, merci

Une remarque cependant. Sur le système sur lequel je l’ai installé, il n’était pas possible de faire des upload/download, le message d’erreur demandant de sélectionner un objet à up/downloader apparaissant systématiquement.
Après debug, cela provient du fait que la méthode get_selected_rows ne ramène pas de ligne sélectionnées sur les 2 grilles ALV.
La méthode ne ramenant rien du fait des paramètres d’affichages des 2 grilles. Pb résolu en modifiant les 2 layouts des (s_layout_grid*-no_rowmark = »)

#4 Sébastien Hermann a dit :

Merci pour ce retour constructif. Sur quelle version de SAP le problème apparait il ? Aucun souci de mon coté, mais cela fonctionne aussi avec le no_rowmark = space donc je crois que je vais mettre ce paramétrage. J’avoue ne plus bien savoir pourquoi j’avais forcé cette option…

#5 thoul a dit :

Il s’agit d’une ECC6.
Après 2 jours d’utilisation (et une lecture du code ) j’avoue que cet utilitaire me branche bien.
Avant d’en faire usage avec des « vrais » utilisateurs triés sur le volet (en supprimant 2,3 fonctionnalité comme le renommage/suppression de répertoire sur serveur),
aurais-tu des mises en garde ou toute autre remarque concernant une utilisation « quotidienne » (« attention, les utilisateurs pourraient faire n’importe quoi! », « attention, il ne faut pas le mettre entre toutes les mains! », « ce qu’on fait déjà par filezilla, pourquoi ne pas le faire avec ZAL11»)

#6 Sébastien Hermann a dit :

J’avoue ne pas etre sorti du cadre de l’utilisateur DSI.

Personnellement pour étendre l’usage, je mettrais en place un objet d’autorisation spécifique, et j’attribuerai une valeur pour chaque action, ce qui permet de ne supprimer aucune action et de verrouiller le tout

J’ajouterai aussi une restriction sur le chemin serveur « root » par user. Ainsi ma MOA aurait acces avec un root correspondant a /usr/sap/sysid/depose/fichiermoa/ et ils ne pourraient pas se balader dans les niveaux plus haut.

pour sécuriser le programme il serait bon de controler que la commande unix envoyé n’est pas tronqué (en cas de chemin tres tres long ca pourrait dépasser la longueur max gérée par la fonction sap…).

Je suis preneur de tous tes retours sur utilisation / modifications que tu aurais apporté.

#7 thoul a dit :

Merci pour ta réponse.
Je vais effectivement appliquer une restriction sur les répertoires accessibles qui me semble être LE point important.
Malheureusement, par manque de temps car appelé sur d’autres tâches je ne suis pas sur de pouvoir m’en occuper prochainement (d’où ma solution « pas cher » de cacher certaines activités pour le moment, je suis carrément en temps masqué sur ce sujet).

En tout cas, si jamais je me penche sur tout ça (plus ou moins prochainement…) je te ferai un retour.
Concernant l’utilisation, si nous éprouvons la solution en dehors « d’utilisateurs DSI ». Je te ferai part de leur remarques (certainement d’ergonomie et présentation mais cela a son importance aussi…) :-)

#8 Sébastien Hermann a dit :

Nouvelle version 1.02 préparée ce week end : contient la correction de thoul ainsi qu’une gestion sommaire du répertoire « root » (traité dans un form a part, libre a chacun ensuite d’y mettre des règles complexes pour gérer son root par user ;-) ).

#9 Sébastien Hermann a dit :

Nouvelle version 1.1 :
– Gestion des autorisations d’acces aux différentes fonctionnalités
– Correction d’un bug dans le choix du mode de transfert
– Correction d’un bug dans l’ouverture des fichiers locaux sur windows XP
– Correction d’un bug empechant le déplacement d’un fichier vers la racine du serveur

#10 Bertrand a dit :

Bonjour,

je viens de l’installer sur ECC5.0 et j’ai un soucis sur les
FIND ALL OCCURRENCES…
j’ai du les remplacer par des FIND tout simple.

sinon c’est magnifique et ça donne envie de l’utiliser.

merci beaucoup et n’hésite à nos fournir d’autres merveilles !!!

#11 Sébastien Hermann a dit :

Merci pour ton retour, mais attention, l’utilisation de find tout simple fait que cela ne fonctionne plus (en tout cas pas comme cela devrait )
J’ai mis à jour le code pour gérer cela, tu peux télécharger la dernière version.

#12 Ddean Q a dit :

Cannot go to you link
Télécharger ZAL11 (compatible ECC)

Error displayed:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.

——————————————————————————–

Switch from current encoding to specified encoding not supported. Error processing resource ‘http://quelquepart.free.fr/wp-…

Thank you

#13 Sébastien Hermann a dit :

Hello, to download the file, you must right click on the link and choose « save link as »

#14 Sébastien Hermann a dit :

Nouvelle version 1.1.2 :
– Gestion des noms de chemin long (+ de 400 char autorisés)

#15 Patrice (Montréal, Qc) a dit :

Très jolie travail Sébastien, beau design. Merci !!

#16 ACL a dit :

Merci pour ce programme.
Malheureusement je n’arrive pas à l’utiliser à cause d’un problème de droit il me semble.
J’ai l’erreur « opendir » et en debuggant j’ai l’impression que la possibilité de lister les fichiers d’un répertoire à été desactivé chez nous

#17 Sébastien Hermann a dit :

Bonjour,
Pourriez vous me donner l’errreur exacte ainsi que la trace d’erreur d’autorisations SU53 ?
Il est probable que vous soyez restreint sur un certain répertoire, il suffit dans ce cas de modifier le rootpath pour coller a vos droits SAP

#18 Sébastien Hermann a dit :

Nouvelle version mise en ligne : 2.1
Détail des modifications ici : http://quelquepart.biz/article39/mise-a-jour-de-zal11-l-explorateur-de-fichiers

#19 Sébastien Hermann a dit :

Mise a jour mineure pour sauvegarder ses répertoires réseaux comme sur l’explorateur windows

#20 Sébastien Hermann a dit :

Mise à jour estivale :
- Ajout d'un bouton "grid options" pour gérer filtres, tris et autres options sur la liste des fichiers du serveur
- Ajout d'une entrée de menu contextuel "Ouvrir avec" pour choisir le programme avec lequel ouvrir le fichier distant/local
- Affichage d'un message si le fichier ne peut pas etre ouvert
- Affichage du nombre de fichiers dans le répertoire en cours

#21 Snowy a dit :

lors du transfert de fichiers de SAP vers mon PC, en mode AUTO ou BINARY, les fichiers on une taille arrondie à 1000 bytes. PAr exemple, un fichier de 472 bytes a un poids de 1000 bytes sur mon PC. un fichier de 2222 bytes a un poids de 3000 bytes sur mon PC! Serveur = ECC 6.0 EHP4 sur AIX 6.1. Mon PC roule sous Windows 8.1.

#22 Sébastien Hermann a dit :

Merci du retour.
C'est corrigé dans la dernière version, mais je ne l'ai pas encore mise en ligne...
Au dela de l'arrondi, cela pose un problème de corruption sur certains fichiers/systemes un peu rigides.
La correction ne devrait plus tarder, j'attend juste de pouvoir y inclure un autre fix sur le transfert en mode ascii

#23 Sébastien Hermann a dit :

Et voila la nouvelle version 2.4.1 est disponible. IL EST FORTEMENT RECOMMANDE DE PRENDRE CETTE NOUVELLE VERSION !

Changements :
- Correction de la gestion des fichiers ASCII avec les codepage exotiques
- Correction de la gestion des fichiers binaires (ne plus arondir la taille)
- Correction de quelques textes
- Ajout d'un point de paramétrage interne pour pouvoir télécharger les fichiers sans avoir de popup de confirmation
- Réécriture de tous les popup de confirmation pour les rendre plus clair
- Ajout de la possibilité de supprimer des shortcut serveur
- Affichage du nombre de fichiers en 1ere ligne
-Nettoyage du code

#24 sandraros a dit :

Bonjour Sébastien,
Je vais proposer aux consultants d'utiliser ZAL11 dans notre environnement de développement. C'est un très bon outil. Juste un souci quand je fais Open sur un fichier sur mon poste, j'ai une popup SAP GUI qui me demande si je permets au SAP GUI d'y accéder, alors si je refuse il y a un short dump sur l'instruction MESSAGE dans la méthode HANDLE_USER_COMMAND de LCL_APPLICATION, juste après CALL METHOD cl_gui_frontend_services=>execute (MESSAGE_TYPE_UNKNOWN Message type " " is unknown.) J'ai temporairement remplacé par MESSAGE 'User refused the access or error' TYPE 'I' DISPLAY LIKE 'E'. (I plutôt que E, car le type E ferait ensuite sortir de ZAL11)

#25 Sébastien Hermann a dit :

Bonjour Sandra,
Merci beaucoup pour ton commentaire. C'est maintenant corrigé (v2.4.2)

Les commentaires sont fermés.