Installation Instructions¶
Preparations¶
- Check that the requirements are met.
- Ask the customer to provide you with a contact at EG.
Installation¶
Step-by-step instructions on how to perform a new installation of the add-on.
1. Add Package Dependency¶
Add limepkg-xellent-integration
as a dependency to your solution.
poetry add limepkg-xellent-integration
To avoid limepkg-xellent-integration
from updating by mistake when working with the solution it is recommended to lock down the version. If you do so, make sure to lock down all its dependencies as well.
After adding the package, you can list the installed version:
poetry show limepkg-xellent-integration
Then update the pyproject.toml
for the package, just edit it in the [tool.poetry.dependencies]
section with the exact version number from the output. Below is an example what it might look like:
[tool.poetry.dependencies]
limepkg-xellent-integration = '1.1.3'
Finally run poetry lock
to make sure the new version locks work together in practice.
Remember, with this change it is no longer enough to just do
poetry update
to get the latest version of the Xellent Integration. You will have to update each of these version locked dependencies yourself.
2. Custom Limeobjects¶
- Coming Soon
3. Scheduled task¶
- In your solution, navigate to your tasks folder and open the init.py file that you find inside. If you don't have one, run the command lime-project generate scheduled-task to generate the structure that is needed. In the init.py file, import the task in the xellent package and register it as a scheduled task to be run once a day.
-
future_records: This task goes through contracts and objects that have a start date in the future to see if the start date has passed and if so, it triggers a commit on the installation in order to update its relation to company and any other aggregations based on related limeobjects.
from limepkg_xellent_integration.tasks import xellent from lime_task.schedule import ScheduledTask, TaskSession, CronTab def get_task_modules(): return [] # The task is already registered in the xellent package. Should not be included here. def register_scheduled_tasks(): xellent_task_session = TaskSession( user_name="[email protected]", language="sv" ) return [ ScheduledTask( task=xellent.xellent_future_records, schedule=CronTab(hour="1", minute="0"), args=[ "installation", [ { 'limetype': 'customeragreementpart', 'relation_installation': 'installation_nyttighet' }, { 'limetype': 'supplier', 'relation_installation': 'installation' }, { 'limetype': 'timereading', 'relation_installation': 'installation' } # .. And any other relevant relations... customeragreementpart being the only required one for the owner change flow to work. ] ], session=xellent_task_session ), ]
4. Set up Users and Groups¶
Perform these steps in LISA.
- Create a
[email protected]
user and give it admin permissions. This user is used by the scheduled task to update records based on dates. Use the following settings:- Password: Type a really long nonsense password. Do not store it anywhere (it is not needed).
- Active: No
- Type: Integration
- Login: LIME PRO Authentication (default in Cloud)
5. Set up Database Structure¶
Tables and fields contains all required and recommended fields. It is possible to set them up manually, or use the available LIP packages. It is a rather long list of fields - in order to avoid lip-failure, the lip-packages are divided per limetype.
- Download the following LIP packages for Xellent from the latest release.
- Install the LIP packages through VBA by running lip.installfromzip
- In LISA:
- Insert descriptives
- Insert SQL on updates
- Insert icons
6. Set up Web Client¶
To be able to use the new lime types and features from this package, they need to be configured in Lime Admin. For the quickest setup be sure to import the provided config files.
The things that need to be configured are:
7. Application Config¶
- N/A
You should now be able to start configuring your Xellent Integration. 🎉🎉🎉
Head to the configuration section if you want to tweak and tune your Xellent Integration setup to your customer's needs.