We have almost 200 reports that we would like to back up. Is there a way to do this programmatically or through some other means?
Thanks,
Rick Beddoe
Cargill Aris Technical Analyst
Minneapolis, MN, USA
Hi,
I'm assuming you have access to the machine where ARIS Server runs.
1. Go to C:\ARIS7.2\LocalServer\templates\scriptservice\Report\
- Replace 'C:\ARIS7.2\' for your ARIS installation root directory
- If your installation isn't a local server installation, try replacing 'LocalServer' by 'Server'. Essentialy, you must find the ARIS Server root folder.
2. Notice lots of sub-folders, mapped to reports' categories: Common, Administration, Analyse, Automation, BalancedScorecard, ...
3. Imagine you want to backup some report inside the 'IT City Planning' category.
- Enter the directory 'IT City Planning'
- For each report there are at least 4 files: [report_guid].info, [report_guid].script, [report_guid]_en.script and [report_guid]_yy.loc. [report_guid] is something like 'b4e80120-eaea-11d8-12e0-9d2843560f51'
- A report (*.arx file) is nothing more than a renamed zip file [1] consisting of all these files above
4. Knowing that, to backup a report, you first must know it's GUID. Then, find it's component files on the server's Reports directory, zip them and rename the resulting file to something that ends in *.arx (eg: funreport.arx)
5. Report backed up and ready to import again via IT Architect, when needed
Repeating the process above for each set of related files (*.script, *.info, *_en.loc, *_yy.loc) you want to backup. You can backup any report on the server without ever opening IT Architect or other tool.
Some fun parts you may want to take care of:
-
Automation! I don't believe you desire to perform the above process manually for 200 reports. With some programming it's easy to automate the zip + rename part, given a list of report GUIDs to back up
-
Import: what about restoring? You probably need the reverse process - opening 200 *.arx (zip) files and injecting them on the server.
[1] Regarding *.arx file formats @see http://www.ariscommunity.com/users/freddy/2011-08-24-importing-arx-file-code
Best luck!
Thanks Kyle,
I found I can simply copy the entire folder to a new location and restore it by copying the content back when needed.
The problem is that ARIS must keep an inventory somehow of what scripts were created. Even if the script is not available, it will still show in the list of scripts. Do you know if this inventory is stored as XML or internally to ARIS somehow?
Cheers,
Rick Beddoe
Cargill Aris Technical Analyst
Minneapolis, MN, USA
That's right - if you copy the whole folder, every script will be back up! If you don't need to select what reports to back up, that's a plain and simple solution.
ARIS keeps a list of all report categories inside the file ...\LocalServer\templates\scriptservice\Report\categories.en. Regarding reports inside a category, I don't recall finding such file neither having trouble with what you described. Either it's internal information or some other file.
I dont' believe ARIS is managing internally the report names/contents since that was way more complex than just mapping the virtual categories to filesystem contents.
Have you tried restarting the server and/or refreshing the administration view on IT Architect?
Regards,
Kyle
Reboot is a good suggestion Kyle. I will try that when I get a chance.
I was successful using your .zip method and that's encouraging. I could build a VBScript file to do this automatically. The .loc file contains the name of the report, so I could parse that and use it for the name of the .zip file.
Cheers,
Rick Beddoe
Cargill Aris Technical Analyst
Minneapolis, MN, USA
Exactly! You are right, automation is also the first thing that comes to my mind!
Regarding scripts (macros/reports), the possibilities are endless, once you know where and what to look for.
With given time/effort, lot's of new features could be built around ARIS. For example:
- Backup/restore system like we discussed. In this case, the data is all there, in the filesystem!
- Version control system integration
- Integration with external IDEs like Eclipse, for script editing & debugging
I would be very interested in exploring these issues in more detail, specially the last one.
However, all these extensions would rely on ARIS' internals, therefore could stop functioning anytime. ARIS should have some kind of "public API" to expose basic administration & modelling functions.
Regards,
K.
Yes, an IDE would be nice. I did some investigating with Eclipse. It may be possible to import ARIS libraries, but who knows which librairies to import?
Ideally, a true, external, documented API would go a long with with automating ARIS. .NET API would be a home run, but I highly doubt it will happen.
I have an extensive .NET background and it was a bit like going back to the Golden Age of Sail when I took on our ARIS Report Scripting efforts. The scripting environment is a bit of a challenge. At a minimum it would be nice to have some sort of syntax checking or reflection. Having to run a report for 20 minutes only to find that I've mis-typed something can be a bit frustrating.
Rick Beddoe
Cargill Aris Technical Analyst
Minneapolis, MN, USA
I wrote a simple C# utility to back up my scripts. This utility will create a directory on the backup disk for each script I want to back up. The directory matches the name of the script which is parsed from the .loc file. Then it copies the 3 files needed for the script into that folder.
I did not put the files->.zip->.arx functionality in the utility. If I ever need to recover a script, I can do this process manually.
I can make the code available if anyone is interested.
Rick Beddoe
Cargill Aris Technical Analyst
Minneapolis, MN, USA
Thanks Rune. Is there any guide on how to access the internal database? In order to migrate reports and macros etc, would it be a case of accessing the SystemDB tables and generating INSERT statements that would be executed in the target server's SystemDB?
Cheers
Marcus
Attached a script that I use to download all my reports, macros and common files to a hardcoded path. I have scheduled this script so my reports are downloaded each day automatically.
Update the path, if needed, it is in the first line of the script and use it yourself.
Kindly regards, Ariene