ZAL11 : a replacement for AL11
Hi,
Tired of using the crappy AL11, i have done my own version, called ZAL11, with some enhanced features…
Extract of the header :
* This program extend AL11 basics functions :
* – Navigate in remote folders with graphical interface
* – Open remote file on your computer with default application (excel for CSV files…) or with your favorite text editor
* – Upload/download files by button or drag/drop
* – Manage file and folder (create, rename, remove, copy, move) with button and/or by drag&drop
* – Open/manage server shortcut & path from clipboard
* – Copy path (server/local) to clipboard
* – Compress remote file/folder (TAR+BZ2)
* – Uncompress remote file (ZIP & TAR & GZ & BZ2)
* – CHMOD/Attrib management on server file & folder
Security purpose :
– All modification on remote server require a user confirmation to avoid unwanted action
– You can define a root path to restrict acces
– You can easily manage which action is allowed by user (with an auth object for example)
This program is designed to run with a local pc under windows OS and a remote server under unix/linux/Windows compatible OS. If a different configuration is used, feel free to modify source code.
French presentation can be found here : http://quelquepart.biz/article26/cure-de-rajeunissement-pour-al11
And there is a direct download link (please unzip the .nugg file and use SAPLINK to install) : http://quelquepart.biz/telechargements&file=L2RhdGEvZG9jdW1lbnRzL1pBTDExLnppcCo2Y2VmMTI,&source=scn-ZAL11
Feel free to comment here 🙂
My others blogpost :
LISTCUBE replacement : a new way to display data
Abstraction class to generate MSWORD with SAP using OLE
ZAUTODOC : Automatic generation of technical BW documentation
I'm using this for a while now and its really a very good replacement. Thx for all the effort you put in this and thx for sharing.
I did a minor update to change server path length limitation (more than 400char now)
Add CHMOD and creation of server shortcut
Good Work...... Think to use of it today....
Thanks for sharing.....
Tried to download it,opens in XML format in browser where I need to paste this code I am new to this please help me out how to enhance this AL11 function.....
After we enhanced this AL11 replacement or copy of it and used as a advance features?
You need to install SAPLINK first: http://code.google.com/p/saplink/
This can read and install the .nugg and slnk Files.
please right click on the link and use "save as..." to doanload the file
It's helpful....Thanks for sharing...
very nice job done... i hope the programming for this report will be educative as well as a good way to convince the client with special effects in sap 😉
Job well done, very useful program. Though I have come across many Z of AL11 by far this is the best. Thanks Hermann.
With your permission can we take this as a free software 😀
I'm not sure to understand your question.
You can implement it in any customer you have. But please dont lie to customer by saying it's your work 😉
And please keep header informations and inform me if you found bug or if you add some new usefull functions
Waiting for this to be practiced in real-time.
I have successfully downloaded ZAL11 but it is not showing the directories in AL11 need to do any configurations please help me out
Start program ZAL11 with transaction SE38 (or create a transaction ZAL11 with SE93).
Hi ,
I created ZAL11 transaction but still it is not working for me I have attached our AL11 transaction and ZAL11 screenshot please go through the image and suggest me to precede this further.
I am not able to insert image here please give your personal mail ID for contact I will send the screenshots thanks in advance for your reply....
As written in the header of the program :
This program is designed to run with a local pc under windows OS
and a remote server under unix/linux compatible OS. If a different
configuration is used, feel free to modify source code.
You are running on a windows server.
First of all, you need to change the c_server_slash constants from '/' to '\'
Secondary, you need to replace all CALL 'SYSTEM' command to use windows syntax instead of unix syntax. I cant help you more as i dont have access to a windows sap server.
Good luck
HI,
You are restricted the directory with the user root path ".\".Can you please suggest me how to remove this restriction and need to display all directories for one user only one directory is displaying for me now.
I am using Windows server you asked to change the CALL 'SYSTEM' command but it remains same for windows too only problem is with restriction how to clear this please suggest me .
Regards,
Ravi Shankar L
I'm sorry but i didn't do that.
I restrict path to '/'
If you have other restrict, it is your modification 🙂
I really want to help you but i cant as i dont have any access to sap windows server.
And you will need to change all the strings used by "call system" command because windows server does not have the same syntax than unix server.
Thanks For your help!
Once I got Desired Output Let You Informed
Hello Hermann and all,
This is an old topic but I found this program very interesting. I was looking into changing the program to fit my WINDOWS NT app server and I'm running into problems. I have changed the w_root_path to a '\' instead of a '/', but I am getting no folders under my remote server. An error exists - 'opendir' - that displays in the bottom left corner of the screen.
w_server_name is a combination of a | partial Application Server name + Instance Number + System ID |
Thanks in advance for the help..
Hi Dustin,
you can ignore this message. If you want to get rid of it, suppress the error message for the ROOT path using Windows servers.
Have fun!
Have you already ported ZAL11 on windows server ? Could you send me your version ?
I could then include it in the main version - with your agreement.
Hi Hermanth,
Once you got the complete version of the windows and it is included in your program please revert me back in this thread.
I will make use of it.
Thanks in advance for your help.
Regards,
Ravi Shankar.L
Hi Hermann,
I like your solution. I made a couple of changes for me - in that I prefer having Desktop rather than mydocuments...as I tend to work with that location more with WIP files.
cl_gui_frontend_services=>registry_get_value(
exporting
root = cl_gui_frontend_services=>hkey_current_user
key = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders'
value = 'Desktop'
importing
reg_value = lw_documents_path
exceptions
get_regvalue_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
others = 5 ).
The app server side did not work after installing - but once I changed the source path for the App sever in the init method - that aspect all worked very nicely too. Will try some file commands next.
This reminds me of an old ABAP ZFILEMANAGER I wrote 15 years ago(see screen shot below - I also uploaded it to forum) - it had features that AL11 did not have and was a slightly prettier front end than AL11 back then - there were no enjoi controls at the time, but I kept saying to myself I would convert this solution - one day - but you done a better job of it and saved me the hassle!
It does all the same things like move a app file to presentation server and vice-versa, open file contents, rename etc
Many aspects are similar in the underlying functionality. I still use it today - but will be giving your Ferrari version a go! 🙂
worth noting that commands issued via the 'call system' syntax for file management can be subject to authorisation and denial if you have a switched on basis team!
I used a macro in mine - but a couple of places I worked at this system call is denied which can be annoying...
define issue_file_command.
refresh &2.
call 'SYSTEM' id 'COMMAND' field &1
id 'TAB' field &2.
end-of-definition.
Keep up the good work!
Cheers
Steve
Thank you Steve.
I added the Desktop folder, it's a good idea (but i keep mydoc folder also 😉 ) and added icons for these 2 special folders.
And a good news : I will be able to access very soon to a windows sap server !
nice 1 Hermann - do you have a link for the updated nugg or is it the same one?
Cheers
Steve
I will update when windows version will be ready 🙂
Does anybody else get syntax errors when trying to activate the program? I get a slew of them.
Which syntax error ?
Which SAP version ?
I had a few minor ones - a couple were where not all the code in the nugg came translated properly (I guess, or diff patch level...w/e)
I had to replace at least two lines that had move statements and the syntax && to separate the fields (which is like ITS AND operand)
so I replaced the code with 'concatenate' and removed them, example below
was
move '"' && pw_name && '"' to lw_name.
now
concatenate '"' pw_name '"' into lw_name.
I also applied an app server path as this was not resolved by the existing coding, so that now works. As below just to get it working:
form init_root_path .
* To restrict acces, set the desired base path into w_root_path
* For example, w_root_path = '/usr/sap/PROD/data/'.
* Don't forget the final '/'
These are minor tweaks - use your ABAP skills to get it compiling and working for you locally and you will see Hermann has developed a very nice tool. Down to you to implement it and maintain it going forward...I would suggest.
is what I added which is what Herman has stated in the annotated coding in the init_root_path
w_root_path = '\usr\'.
I had the same. I also had errors that I accidentally introduced from transposing characters. My previous comment was due to me not realizing my errors. I look forward to testing this as I use AL11 almost daily.
The problem doesn't lie in the slash direction. The problem is that the windows server does not have a "root" directory. This requires the programmer to identify each existing "drive" ( C:\ [As the init_local does]) on the app server.
I remember having worked at a client with windows server: No more need for any AL11 or AL11 replacement because WINDOWS explorer does it all.
It was rather a bit difficult to explain the difference between local and server files, (GUI) download and use of datasets - bacause there is none.
I'm glad to find this AL11 replacement here because AL11 is real rubbish - I built my own (primitive) one and never found the time to enhance it just the way Sébastien did. Thank's alot for sharing, great job!
Best regards
Clemens
Hello,
I worked hard this week end and have good news :
ZAL11 is now compatible with SAP on windows server 🙂
I did also some very exciting new functions for windows server, like a drive scanner to allow you to see all drives on your server (included floppy or USB ^^), and an attribute manager. I rewrote some part of code to allow program to manage other kind of server (if someone install SAP on MAC server ??? 😀 )
But i still have a little issue. Sometimes, a strange error occurs when i try to read a remote folder : "Last dir scan has not be finished". When the error occurs, ZAL11 is no more usable, i need to kill the mode and start a new mode...
I will try to reproduce the problem (occurs only 2 times in more than 4 hours of work) to solve it before release the new version. Maybe this evening if i have time 😉
The link in the first post redirect now on the last version of ZAL11.
Here is the list of changes :
- Management of windows server - with drive scaner
- Rewrite of server command management
- Simplify the customization of the program. All customizable variables are now in the header of the program
- "Desktop" is now accessible directly in the local tree
- Attributes column in local grid (and server grid if windows server)
- Owner column in server grid
- Ask folder name when create a folder
- Fix security issue on CHMOD
- Fix recycle bin display
- Fix issue on large file display in grid
- Fix display of button "shortcut" in some case
- Fix "Last dir scan has not finished" error
- More compatible with older sap version
- Code cleaning
am not able to download via internet explorer 🙁
throws an error when I try download using firefox
Look forward to trying it out!
right clic on the link > Save As 🙂
Sebastien,
Your "Direct Download Link" still houses the 1.4.1 version without WindowsNT compatibility.
*& Program : ZAL11
*& Author : S. Hermann
*& Date : 20.04.2013
*& Version : 1.4.1
It's a cache problem. Try to click on the link. It will open in your browser with errors. Force the refresh with CTRL + F5 , many times if required...
Now go back and Right clic > Save as
Yes, it was a Cache problem. Let me pick your brain.. I'm getting a short dump from your latest upload.. It happens after it calls the screen but the variables are identical to the other versions.. Let me know if you can point me in the right direction. Thanks
Thanks for the catch and sorry about that. It was a windows server issue in the drive scanner. It's now fixed in the new 2.0.1 version.
yea I did all that... but it offers to save as an XML file.
Ill just keep using the old file for now...nothing wrong with my browser - I download/upload files all day long with no problem with web applications I develop.
right click, save as...the only save as option available...will try again with firefox
good old firefox likes the right click...
Ran it first time after compiling, even better. Love the Desktop folder.
And all the 'remote' dirs. auto resolved for me without having to change the coding again.
Excellent job Sebastian, your onto something with this.
Yes internet explorer modify the extension from .nugg to .XML when you save as. It's not a problem, the content is good you can use it with saplink 🙂
Looks very nice. Would it be possible to include also the size of the subfolders in the directory view?
This would be great to find large folder / files, in case they are very hidden...
Interesting idea, i will see to add it in a further version. As it take lot of time, it will probably a manual action/button
Sebastian,
Its probably me and user error - but I tried to use the clipboard function which sounds great concept. So I navigated to some windows servers mapped via Explorer and copy the path that is in the address bar, so It was saved to clipboard.
When I then click the clipboard button, nothing occurred 🙁 be very clever if that worked.
See photo of example:
Cheers
Steve
i your screenshot i can see the begin of the path :
\\
On your server, i think it is C:\ or D:\ or any other letter, no ?
For the moment, shortcut (or clipboard paste) starting with \\server\path work only if you restrict access to \\server\ (s_customize-root_path).
You could try and tell me if it work for your case. I will see how to manage this kind of link in a further version
no worries dude, was just trying it out.
I still like this tool - when I get a moment I will tweak the source code and get back to you!
Cheers
Another Suggestion that might be beneficial for other users...
Create the ability for users to move files from one spot on the server to another. I know my users want the ability to move files from a 'Out" folder on a server to a "Log" folder on the server. I'll work on a solution for this.
you could actually do it - partially 🙂
You can drag & drop to move file/folder, but only in the grid (not in the tree)
Use SHIFT drag&drop to copy instead of move
So you can drag&drop a file to a subfolder, or to the parent folder (drop on the ".." entry)
I will plan to add the drop in the tree in a future release
New release :
- Management of copy/paste distant server path like //server/path/
- Display shortcut for system folders (like AL11 do)
- Tree is now dropable area. You can move/copy file/folder from grid to any other folder 🙂
- Calculation of folders size
- Display current folder size at end of files
I uploaded a zip file which contain the usual nugget to avoid download problem 😉
Comments/new ideas are welcome
Sebastian,
These new additions are magnificent!! This is better than the default file explorer that comes on my PC.
I really do like the 'distant server path' copy and paste - and just to keep you busy with ideas - is it possible that if we copy and paste a distant server path, that we can have a 'remember' feature - so it is a bit like a permanent mapped drive until we decide to 'disconnect it'.
Cheers
Steve
Good idea. I'm just confused with the place to store this information.
If i store it in the shared buffer, like i do for the "last used path", you will loose the memorized server every time the server reboot. Once a day ? once a week ? never ? it depend of your sys admin...
I dont want to create a specific table. It require to have a saplink addon installed. It complicate too much the installation procedure for a very specific function.
Any idea ? user param ? standard database place (where ?)
I'm open. It's a very nice idea i want to add it 🙂
well possibly you could save an ITAB in INDX - so effectively you would just be using the cluster table - with an export/import.
and that way you can 'delete' no longer required maps. I think you would have to be creative with the SRTFD key - and the entries would be per user. But there is little over head as I guess only a few users and only a few 'maps' in majority of cases.
Or perhaps you could use a global variable in TVARV...
or perhaps create an entry as a 'phantom report variant' and save/read them using the functions available in the FUNC grp SVAR.
a few suggestions without having to create that Z table....
i like the idea of phantom variant. OK it's seem less proper than others solutions, but it does not create entry in a sap global storage area. The entries are grouped inside the ZAL11 area, and i like that as it follow my way of having the smallest footprint for my program 🙂
I think i will keep this idea for the next release, if nobody contest it 😉
Thank you Steve for your help on the brainstorming !
yes, go for it!
finally i store info in INDX database because the function used to create variant limit the fieldsize to 128. Could be too short for a long server+path.
that is brilliant Sebastien!
Awesome !!! This is so good.
new minor release : add a "remember" function for remote folders (like in windows explorer)
Its really awesome. Great work.
without install TO SAPLINK direct download link is available?
I used saplink to install because there is many objects :
- abap program
- texts (lots of)
- screen
- menu
- title
If you want, you could try to install manualy without saplink.
Download the zip file and open the .nugg with a text editor.
All source code is between the <source> and </source> tags.
Copy paste but you have to find/replace all & by & and all " by " and all ' by '
Maybe some others characters to replace...
And then you have to fill texts, screen, menu...
Seem simplier to use SAPLINK 😉
Hi,
i'm using this quite a while. Now i've installed this version on one of our SAP installations:
*& Program : ZAL11
*& Author : S. Hermann
*& Date : 20.04.2013
*& Version : 1.4.1
This version dumps at this point:
CALL METHOD cl_gui_frontend_services=>directory_list_files
EXPORTING
directory = lw_path_name
directories_only = abap_true
at line 3346. The returncode is 3, saying wrong parameter. The cl_gui method itself says:
if ( directory is initial ) or
( not files_only is initial and
not directories_only is initial ).
raise wrong_parameter.
endif.
And now its clear why it is dumping: lw_path_name is empty/initial. Ón one of my other SAP systems i checked ZAL11 and at this point lw_path_name contains C:/ and works fine.
How does it look like on your system? Can i just fix it by adding c:/ as value in lw_path_name?
//Rainer
PS i've added
if lw_path_name is initial.
lw_path_name = `C:/`.
endif.
before line 3346 and 2893 and it works fine again. But at least this should be fixed in your version, too.
Could you please verify you allow SAP to access to your files ?
In the sapgui option window > Security > Security settings : try to set the listbox "status" to "disabled"
If it doesnt change anything, it could be caused by a problem in the read of the "my document" folder.
The latest version do an additional check before register the my doc path, so if it's your problem, it is already fixed 😉
Feel free to use the lattest version (2.2 released the 1st nov 2014), many bugs are fixed
Thanks for the quick reply.
Security settings can't be changed due to group policies 😥
Maybe you should deactive the "direct download link" in the original posting, i thought this would always point to the latest version.
But with the latest version from your homepage i'm happy again 😆
the direct download link is the same as the one you got from my homepage, since 15th october 2014. Maybe you downloaded it before ?
Just downloaded it again and the version in the header says 1.4.1 and not 2.2 😕
Downloading from the Homepage gives 2.2.
Maybe a proxy/cache problem.
do you use the link in the last line of the blog post ???
"And there is a direct download link (please unzip the .nugg file and use SAPLINK to install)"
The link is a ZIP file (same as on my home page). I removed the direct download of .nugg file the 20th october. Maybe i forgot to remove a link somewhere but i dont know where 🙁
Thats what i'm talking about. Using the "direct download link" gives me 1.4.1, going over your homeopage gives me 2.2 Both are zip files.
yes i understand but... i dont remember to have ziped the 1.4.1 😕 I start to zip the .nugg last month, when release was 2.1
As you said it's probably a cache problem, but very strange 😐
Happy that you finaly got the 2.2 🙂
Hi,
Lot of changes since last post.
The most important is windows server support !
Here is the complete changelog
A new release for ZAL11 is coming ! (v2.4.1)
I strongly recommand that you update to this release as fix are done on download/upload process for ascii and binary files (fix dump/corrupted files in some cases)
Changelog:
Hi, I need to change permission for every user. for example: user1 can delete files, but user2 cann´t .
Any idea?
Thanks
Hello,
It is possible. You ust have to define in the code the specific auth object to use s_customize-auth-object
You specify the field to check (s_customize-auth_id). The values required for each action are listed in the init_auth form. (FILEDEL for file deletion, FOLDEL for folder deletion)
Hallo, I need mark more files at ones and then download. Any idea? Thanks 🙂
Hello,
You will have to do some changes.
First, allow multiple selection on the alv object (actually defined as single seleciton)
Then, on the download function, loop on selection instead of direct download selection.