Installation Instructions¶
Preparations¶
- Check that the requirements are met.
- If migrating from the SQL version of the BFUS Integration go through the migration guide.
- Specification: Send out the field specification to the customer and ask them to go through it and adjust the “Custom choice” column if they want to change anything from our standard setup. It can be found here: F:\Common\Industry Experts\Utility\Integrations\BFUS 2.0. For new customers you can hide the column “Custom field name” this is for specifying if the customer database uses another fieldname than the standard.
- Contact CGI: (See contact person on the product card in Sublime)
- Ask for phone number types
- Ask for utilities (nyttigheter) for the service object
- Send endpoints and API key (onetime password)
Installation¶
LIP¶
Make sure that LIP is installed in order to easily install the add-on. If LIP is not installed, you need to manually add all tables and fields.
Open the template database (!BFUS 2.0 dev on luserverlatest) and open LIP package builder (open VBA and run "call lippackagebuilder.OpenPackageBuilder"). You can choose to open an existing package and adjust according to your specification.
- Default lip-package used for the BFUS integration can be found at "F:\Common\Industry Experts\Utility\Integrations\BFUS 2.0\LIP"
If migrating: Rename old integer key field in the customer database (see migration guide)
Install the LIP package
- Install the LIP package in the customer database.
- Add actionpads & lisa config
- Add any extra fields manually (field not present in the template database)
- Add any SQL functions
- Do the adjustments below
table name | field name | |
---|---|---|
history | type | add a new option, name: BFUS Notification key: bfus |
service | utilityid | add and adjust according to the options received from cgi |
customer | customertype | add and adjust list keys as "private", "private_company", "company" to the corresponding option |
LISA¶
After running LIP with the integration package it is a good idea to validate each table in Lime. This is done by creating a new field in each BFUS table in LISA, eg. "lime_test_field" as whatever field type. By doing this and trying to save LISA you will validate that there are no duplicate names in either the database or the "viewing name" in the client. The same result can be achieved by changing a field instead of creating a new one.
Python Solution¶
Import and schedule the task addon_bfus_integration.tasks.purge_messages_tasks.task_purge_messages
in your solution. This can be run nightly or less often. More on scheduled task here
In github there is a repo bfus-template-solution which includes the available endpoints and what we consider standard customizations of the bfus fields. Use the template solution to setup the customers solution.
- Add
addon-bfus-integration
as a depency in your solution's pyproject.toml file. - Adjust mapping: All custom mapping is done inside bfus_mapping.py.
- Adjust it according to the specification.
- Add mapping for phone nbr, must be Swedish names (request from CGI).
- Customizations: Add any required customizations.
- Build and deploy your solution.
The following "standard" customizations are included in the template:
Company
lime field | standard handling |
---|---|
customertype | is set based on the two bfus fields “isprivatecustomer” and “isprivatecompany” |
registrationno | is fetched from either “pincode” or “companycode” depending on if it is a private customer or not |
streetaddress | from bfus we get “streetname”, “streetqualifier” and “streetnumbersuffix” which are merged into streetaddress |
coworker | from bfus we get “agentfirstname” and "agentlastname which a used for looking up the corresponding coworker with the same name in Lime |
parentcompany | from bfus we get “parentcustomerid” which is used for looking up the corresponding company in Lime |
Serviceplace
lime field | standard handling |
---|---|
streetaddress | from bfus we get “streetname”, “streetqualifier” and “streetnumbersuffix” which are merged into streetaddress |
Site
lime field | standard handling |
---|---|
streetaddress | from bfus we get “streetname”, “streetqualifier” and “streetnumbersuffix” which are merged into streetaddress |
estatecode | from bfus we get “areaname” and “propertycode” which are merged into estatecode |
History
lime field | standard handling |
---|---|
type | Set the historytype to the type with “bfus“ as key |
Productcomponent
lime field | standard handling |
---|---|
calculatedprice | If it’s a fixed price it is taken from “pricewithvat“ otherwise it is fetched from the connected productrow. |
Flexservice
lime field | standard handling |
---|---|
contract | from bfus we get “contractcode” which is used for looking up the corresponding contract with the same code in Lime |