CRMScript Fetcher is a GUI tool that can download CRMScripts and other data from your
SuperOffice installations, and create the data as files within a
folder structure on your local PC.
CRMScript Fetcher is useful for downloading your current scripts and other data such as screens and scheduled tasks into a local repository, which you then may use for pushing into GitHub/Gitlab etc. with your preferred git client.
When fetching, it will create the following folders inside your chosen directory:
- Scripts
- Triggers
- Screens
- ScreenChoosers
- Scheduled tasks
- Tables
Inside these folders, scripts will be created as files with a .crmscript file extension. Metadata will be created as .json files.
CRMScript Fetcher aims to recreate the same folder structure as you see in SuperOffice, as far as possible.
The software is provided "as is" without warranty of any kind. All responsibility of the usage of CRMScript Fetcher lies on you.
⚠️ When fetching, all files and folders within the folders Scripts, Triggers, Screens, ScreenChoosers, Scheduled tasks and Tables WILL be deleted if they are not present in SuperOffice.This also includes files/folders that weren't created by CRMScript Fetcher to begin with, so it is not advisable to put anything there manually.
However, files/folders within the root directory will not be deleted, so you can put stuff there safely.
Technically, all files and folders within the created folders will be deleted and recreated
every time you click fetch, even if you have done no changes in SuperOffice.
It is up to you to consider if this poses any problems for your usage.
Each fetch will create a "temp" folder where your current fetcher-created folders are moved into, as a failsafe in case the fetch fails during its execution. The temp folder will be deleted again upon completing the fetch, so you shouldn't normally see it.
If something does go wrong, you can move the contents of temp back into the root folder.
Sometimes, the temp folder might not be deleted correctly due to Windows permission errors. Usually this works itself out by running the fetch again.
-
A SuperOffice installation with Service and Developer Tools
- Only tested on Online so far, but should work on an "on premises" installation as well.
-
A local PC running Windows
- Tested on Windows 11 only.
-
Head over to Releases on the right-hand side to download.
-
Unpack the zip file wherever you want
-
Run CRMScript Fetcher.exe
-
Click the "Copy Fetcher Script" button. Alternatively, open "CRMScript Fetcher.crmscript" in a text editor, and copy the contents from there.
-
In your SuperOffice installation, create a new script and paste the contents. Give it an "include name" (e.g. "crmscript-fetcher") and a secret key.
-
Click "Add tenant"
- Tenant name: Friendly name of the installation
- SuperOffice Service URL: For Online environments this will be something like https://online.superoffice.com/CustXXXXX/CS
- Script include ID: Your include name
- Script key: Your secret key
- Local directory: Click Browse to pick your directory where the folders will be created.
-
Click Save settings
-
Click Fetch CRMScripts to fetch!
All your tenant settings will be saved locally in the tenant_settings.json file.
There is code in main.ts that makes sure you can use npm run dev while the Eel server is running via your Python IDE.
-
Run
main.py
in your Python IDE. This makes the Python backend run onhttp://localhost:8686
. This will show you the frontend that already has been built, not the frontend that is currently in development. Keep this window open. -
In your Vue folder, start Vue:
npm run dev
App should now run on http://localhost:5173
(usually).
- From vue folder, run:
npm run build
- From root folder, package Python code with Eeel's PyInstaller:
python -m eel main.py vue --onedir --noconsole --icon=icon.ico --name "CRMScript Fetcher" --add-data "tenant_settings.json;." --add-data "crmscript_fetcher.crmscript;." --add-data "pyproject.toml;."
This creates folder dist/CRMScript Fetcher with a CRMScript Fetcher.exe file in it.
- Python
- Eel - a framework that lets frontend interact with Python code via a local web server
- Vue.js
- CRMScript (fetcher script)
- Espen Steen - ehs5
Inspired by: