Contact us directly to discuss your specific requirements, help you with purchasing, or with any other questions.
This "how-to-connect" documentation will explain the initial configuration of an example connection from Knack to a SharePoint Online List in Office 365. We will be synchronizing data stored in Knack.
This guide presupposes that you have installed the Layer2 Cloud Connector and that you are familiar with its basic functionality. The Layer2 Cloud Connector User Documentation will provide you with all necessary information.
2. Configuring the Layer2 Cloud Connector
2.2 Configuring the Data Entity 1
2.3 Configuring the Data Entity 2
We must create an application in Knack to send and receive data. Go to your Knack Builder account and create a new app and add it.
Create a new object.
Add fields to the object.
Add records to your fields.
After creating your application, click on the settings symbol from your application to get the Application ID as well as the API Key.
Create a new connection by using the Create New Connection option in the Actions pane (right-hand side). The new connection will appear at the bottom of the Connection Manager List (left-hand side). Click on your newly created connection to open the connection configuration settings.
Choose a meaningful name for your connection and replace the current "New Connection" Connection Title with it.
Connections to Knack can be bi-directional. An initial connection should always be uni-directional to assure that both data entities are identical before switching to bi-directional. Therefore, choose Left to Right as Direction. You can change this setting after your initial synchronization finished successfully.
We will now set up our Data Entities. Go to the data entity “Data Entity 1” to open the configuration settings.
Choose a Data Entity Title. It is recommended to give your entities meaningful names to maintain an overview when you decide to set up multiple connections.
Select the Data Provider for JSON from the data provider list. You can search for JSON by typing into the selection box.
For the Connection String, we need the in step 1 mentioned information. You can copy the below connection string and adjust it to match your gathered information. Use the Verify Connection String option to evaluate if the provided connection string is valid.
URI=https://api.knack.com/v1/objects/object_1/records;CustomHeaders='X-Knack-Application-Id:yourapplicationidX-Knack-REST-API-Key:yourapikey';GenerateSchemaFiles=OnStart;Location=C:\Users\csantos\Downloads\KnackRSD;Other="BatchSize=1";
The Select Statement text box is used to define specific data queries. We will be gathering all data from our JSON object. You can copy the below select statement and adjust it to match your needs. Save your changes by using the right-hand pane option Save Changes.
SELECT * FROM records
To check if all necessary columns are received, you can use the Preview Data option on the right-hand pane which will provide you with a pop-up window showing your sample data from your Knack entity.
We are going to send the data to a custom SharePoint Online list. It's required that you set up this list prior to the next steps. Your list should contain matching columns according to your source entity.
Use the left-hand pane to switch to the data entity "Data Entity 2". We will be using the Layer2 SharePoint Provider for this setup.
For more information about the SharePoint provider visit:
https://www.layer2solutions.com/support/cloud-connector-faqs/layer2-csom-sharepoint-ado-net-provider.
You can copy the below Connection String which contains the minimum of required properties to connect to your custom SharePoint Online list.
URL=https://your_custom_sharepoint_list_url/AllItems.aspx;Authentication=Office365;User=User@domain.com;
Enter the password that belongs to the user account used in the connection string into the Password field. Save your changes by using the right-hand pane option Save Changes.
In the next step, we will configure our mapping settings. Click on the Mappings option on the left-hand pane. If your fields from SharePoint are named identical to the fields from your source system, the Enable Auto Mapping option will match those columns. Disabling this option allows you to match your columns as needed. We enabled auto-mapping in our setup. Save your changes by using the right-hand pane option Save Changes.
To run your connection switch back to the main connection configuration node and use the Run Now Button located on the bottom of the setup page. The Run Synchronization Toolbox will also display the synchronization process.
Below is a data preview of the information we have accessed in our source entity:
This will be the result in our SharePoint Online list after our initial successful synchronization:
If you want to use a bi-directional syncronization, see section 3.1 for further information.
As far as tested, this connection supports uni-directional as well as bi-directional synchronizations.
After adjusting the direction to bi-directional, you should check your Mappings settings again because some systems might include read-only columns that cannot be mapped directly.
We also recommend to choose a Conflict Resolution that matches your environments needs. You can find out more about the different conflict resolutions in our Layer2 Cloud Connector User Documentation.
In order to make inserts, updates and deletes in a bi-directional way, you must write these operations in your generated schema file saved at the Location parameter from your connection string.
Open the .rsd-file in your path defined at your Location parameter from the connection string and add key="true" in the attribute <attr name="id" … key="true" />.
Add this line after the line where the attr="URI" is defined after the api:info block.
<api:set attr="ContentType" value="application/json" />
For our scenario the records endpoint results in an INSERT block like this:
The UPDATE block needs the _input.id:
Also the DELETE block:
The complete example file for this endpoint can be downloaded here.
3.2. Data model
To see all the tables and views you can access with the Knack provider, use these queries in the Select Statement:
SELECT * FROM sys_tables
SELECT * FROM sys_views
If there are more tables or views available, you can load them with the option "load more" in the popup window.
3.3. Batch operations
If you try to make multiple operations at the same time, you can get an error that batch operations not allowed. Set the parameter Other=’BatchSize=1’ in your connection string to avoid this error.