*Note that the images on this page still reflect the legacy name of this product, Tactical Connect, rather than the updated name, ZoneExtract. These images will be updated in the near future.
1. Product Overview
ZoneExtract is a saved search and dataset export tool that sends both on a schedule to various applications. ZoneExtract allows you to:
- Send saved searches and datasets on a scheduled basis to SharePoint, OneDrive, Azure Blob Containers and Amazon S3.
- From the various applications (i.e. SharePoint) you can then keep your NetSuite data synced in various other applications such as Power BI, Tableau, Qlik and Excel.
- Custom Portlet – ZoneExtract also provides a custom portlet that allows you to publish your Power BI (only) dashboards back inside of NetSuite.
2. Installing the ZoneExtract Bundle
Navigate in NetSuite to: Customization > Search & Install Bundles
1. Install “182421 or ZoneExtract” from Company Name ZoneExtract.
3. Best Practice for Creating Saved Searches/Datasets to be used by ZoneExtract
HIGHLY RECOMMEND READING THIS SECTION
- Search and Dataset Sizes - Please note that the ZoneExtract uses scripts to run our processes. We have successfully cached combined searches/datasets totaling over 1GB in size (20+ million rows). However, this can take 30+ minutes depending on the other scripts running at the same time in your NetSuite and/or your number of SuiteCloud Plus Licenses (additional NetSuite processors for purchase). It is a best practice to be mindful of how frequent you set your searches/datasets to refresh (i.e. daily vs. hourly base on how often your reporting tool/data warehouse can even refresh). This could take some trial and error, but if you get a script error message about “async”, it can be because your refresh failed if it was too frequent and didn’t have time to finish before the next scheduled one kicked off. If you need very frequent refreshes and/or have large data sets, we recommend asking us about our pre-built NetSuite data warehouse product called “Zone Data Warehouse” www.zoneandco.com/data/data-warehouse (leverages Power BI as well).
-
Naming your Searches/Datasets – Your search/data-set ID will be the CSV filename that appears in your destination folder. Please be sure to update the ID before adding the search/dataset to ZoneExtract’s “configurator” screen. If you have a search/dataset that is already on the “configurator” screen and you change the name, please remove the search/dataset and re-add it to the screen otherwise it won’t export.
- Searches – we recommend you name your search something easy to understand, i.e. customsearch_salesorders123
- Datasets – you can only use letters in your ID’s name, no numbers allowed, i.e. custdataset_salesorders
4. Configuring your Saved Searches/Datasets to Export to Your Destination
When a search/dataset is setup to export within ZoneExtract it will automatically convert to a CSV and the connector will send it to your selected destination (i.e. SharePoint, OneDrive, Azure Blob Container or Amazon S3). These steps detail how to add your search/dataset and set the export schedule.
In the “Configurator” screen
Steps:
- Please navigate on your activity bar to “ZoneExtract” > Configuration > Configurator and then click “Add a Search” or “Add a Dataset”
- Find your search/dataset (alphabetical order) and click to add.
- Then, in the “Configurator” click configure on the search to edit the schedule. Note: do not make any changes in the “parameters” tab.
- To schedule automatic refreshes: Change Status to “Scheduled”. Note: If you have a search that is added to the configurator screen and then you change the “search ID or dataset ID”, you will need to delete the search from the configurator screen and re-add it. So, it’s a best practice to give your search/dataset a custom ID that you desire before adding it to the configurator screen.
- On the schedule (sub-tab), create a schedule. For example, daily event, repeating hourly with no end date.
- Click “save” when done.
- If you need the script immediately, you can “save and execute” your script. This save and execute feature is for running the script right this second. Additionally, please note that if you have other scripts running, this script may get queued behind your other scripts. You can only use the “save and execute” button when the script status is set to “Not Scheduled”.
- This schedule feature is NetSuite’s out of the box scheduling tool – so we have no control over it’s design. Please be sure to understand that the “start time” is the time the scheduler starts and run each day until midnight. Examples:
- 6pm Start time means your search will export at 6pm with whichever “repeat” you’ve selected until midnight.
- 24hours running – if you want this to run all day, please use a start time of 12am.
- Be sure to check the box of the destination where you want to send your search.
You can send one search to multiple destinations whether that be, for example, different SharePoint folders or SharePoint and Amazon.
5. Setting up SharePoint, OneDrive and/or Azure Blob Container
OVERVIEW
The document will guide you through setting up the ability to export a file of any size to a Sharepoint, OneDrive and/or Azure Blob. Setup involves several technical steps but will only need to be performed once. Please be sure you have admin access to your 0365 account before starting this setup. A couple key notes:
- Make sure you have admin access to your 0365 account before starting this setup, as it will be required.
- Setup for this method takes about 10-20 minutes and is one-time.
- OneDrive follow the exact same setup as SharePoint except for using a Drive ID instead of a Site ID – instructions for this final step are further below.
GOALS
To configure a Scheduled Script the appropriate parameters in order to post a file from Netsuite to a folder in Sharepoint and/or One Drive and/or Azure Blob Container. The following pieces of data will be needed:
Part 1: For sending data to SharePoint, OneDrive and Azure Blob:
- Client ID (Also known as the Application ID)
- Client Secret (Also known as the Password)
- Realm/Tenant ID (Also known as the Tenant)
Additional to Part 1, for sending data to SharePoint:
-
- Domain: The SharePoint domain is simply the 'start' of your SharePoint URL access. Typically related to you business. For Example, ZoneExtract's SharePoint domain is ZoneExtract.sharepoint.com
- Folder: The folder will need to live in your “documents” within SharePoint.
- Site ID: The subsite ID of where you will send data to within SharePoint
Additional to Part 1, for sending data to OneDrive:
-
- Drive ID: All OneDrive connectors will need the Drive ID to be setup
- Folder: The OneDrive folder where you will send data to
Additional to Part 1, for sending data to Azure Blob:
-
- Account Name: Your blob storage account name
- Container Name: Your blog storage container name
Steps
All steps should be performed only AFTER the user has logged into their 0365 account as an admin:
Creating the Application (Required for SharePoint, OneDrive and Azure Blob Container)
Setting up Azure, OneDrive and SharePoint Application
- Log into https://portal.azure.com/#home with your Microsoft credentials
- On the left-hand side under favorites, navigate to “Azure Active Directory”
- Click “New Registration” in order to add a new app
- Enter the name “ZoneExtract” and click “register”. Please be sure to write down the “Application (client) ID” and “Directory (tenant) ID”. The tenant is also known as our realm inside of NetSuite. We will be inputting these values into NetSuite.
- Now we will work through some of setup of your newly registered app
- Manage > Authentication – Add the web redirect URIs, click “Save” before continuing.
- Manage > Certificates & secrets: Go ahead and add a “New Client Secret”. Please sure to write down this “Value”. We will be inputting it into NetSuite. You can add the description “ZoneExtract” and set the expiration in accordance with your company policy.
-
Manage > API permissions: Please add the following Microsoft graph permissions (take note of the type between application and delegated). Grant Consent: Click “Grant admin consent for…
- Manage > Expose an API: “Add a scope” Note:
- Scope name = access_as_user
- The remaining fields can just be “ZoneExtract”, no need to copy the sentences you see below unless you want to be very formal.
- “Add a client application”. The ID is the application/client ID that you wrote down in step 4.
-
Manage > API permissions: Please add the following Microsoft graph permissions (take note of the type between application and delegated). Grant Consent: Click “Grant admin consent for…
- Manage > Authentication – Add the web redirect URIs, click “Save” before continuing.
Discover SharePoint Site Id (Optional for SharePoint)
Note: This step is only necessary if you are using a sub-site of your main SharePoint site. This can be determined by navigating to your SharePoint site and looking at the URL. If the URL has “/sites/yoursitename” then you are using a sub-site. For example: https://ZoneExtract.sharepoint.com/sites/Test
If you are not using a sub-site, please skip this step and leave the Site ID field blank within NetSuite.
- Go to https://developer.microsoft.com/en-us/graph/graph-explorer
- On the left, sign into Microsoft using your SharePoint credentials
- To the left of the ‘Run Query’ button (Button is in the top right), type the following in https://graph.microsoft.com/v1.0/sites/taticalconnect.sharepoint.com:/sites/sitename:/drives
- Note: replace ZoneExtract.sharepoint.com with your own sharepoint domain
- Note: replace sitename with the name of your SharePoint site
- Click the ‘Run Query’ button
- Look at the ‘Response Preview’ window at the bottom of the screen
- Find the name for the folder you wish the cache file to go to. (Example “name”: “Documents”, looking ‘slightly’ above the “name”: “Documents”, you’ll see an “id”: “SOMELONGSTRINGOFCHARACTERS" NOT the “id” under the “user”, the “id” right above “lastModifiedBy”
- Keep a copy that “SOMELONGSTRINGOFCHARACTERS” (without the quotes)
Discover OneDrive Drive Id (Required for OneDrive)
- Go to https://developer.microsoft.com/en-us/graph/graph-explorer
- Sign into Microsoft (top-left)
- In the left menu, click the all the items in my drive
- Click the Run Query (top-right)
- In the response preview window, do a search/find for driveId should look like ... driveId": "b!DDhkRRjXiEWeUxH8bBalyx12p-crP-VKhbzxGPwVlCifGBZXjpp2SIgxwLY9unSK". Note: If no values are showing – click “modify permissions” and make sure all the permissions you click “consent”.
Configure Connector in NetSuite (Required for SharePoint and OneDrive)
- Navigate to the ZoneExtract > Connectors > New
- Choose the Custom Form for “OneDrive” or “SharePoint”
- Enter your credentials
- Make sure the “Type” field is set to the correct connector type.
- Click 'Save'
Notes:
- Realm = Directory (tenant) ID
- Make sure to have “root:/” in front of your folder name
- Save these values in case the connector ever requires being re-set up
Test Connector (Required for SharePoint and OneDrive)
- Go to any previously cached search and “save and execute”
- Once completed, you should see the file in your Sharepoint and/or OneDrive folder.
Connecting to an Azure Blob Storage Container
1. Create the Blob and Container. The blob account name and container name will be needed for input into NetSuite. Use the Storage V2 kind of Blob because it has the most feature rich functionality. On the container you want to see your public access level to private. You can create the blob and container on the portal website: https://portal.azure.com/#home
On the Blob Account Level (not the container level, that is too low down) navigate to the Access Control (IAM) and add two role assignments:
Your newly created app “ZoneExtract”:
- Contributor
- Storage Blob Data Contributor
Next, in NetSuite we need to paste our values to set up the connector. Navigate to ZoneExtract > Connectors > Connector. Edit the existing samples Azure Connector or create a new one. Paste your values into the connector and hit save. Here is an example of what the screen should look like:
6. Setting up Amazon S3 Connector
We have the ability to send searches to an Amazon S3 bucket. Please use these steps to setup the connector. Ultimately our goal is to fill in this boxes inside of NetSuite.
Note: NetSuite limits us to only be able to send 599,999 rows to S3 in one search. So please break your searches apart into multiple searches if your data set exceed this row limitation. Most people will break the searches apart by a “date” field.
- Name – Add your Bucket Name or a name that is distinguishable for you.
- Region – when you are in your bucket, look at the URL to find your region:
- Bucket Name – enter your bucket name as it is in Amazon. It is best to use a single word, no spaces or special characters.
- Access Key ID and Secret Access Key, follow these steps:
Next, in NetSuite we need to paste our values to set up the connector. Navigate to ZoneExtract > Connectors > Connector. Edit the existing samples Amazon S3 Connector or create a new one. Paste your values into the connector and hit save. Here is an example of what the screen should look like:
7. Connecting to your Saved Search in PowerBI from SharePoint
- In PowerBI Desktop, please follow this path:
- Enter your SharePoint site URL i.e. https://ZoneExtract.sharepoint.com
- Hit “Transform Data” when all your searches appear.
- Click “Binary” on the search you want to load. Then repeat this process for additional searches to show up as new queries.
2. In PowerBI.com, please follow this path:
Navigate to Get Data (bottom left corner) > Files > SharePoint
8. Publishing your BI Dashboards Inside of NetSuite
Note: These instructions are specific to Power BI but starting in #3 onward is for Qlik and Tableau as well.
Once you have built some reports/dashboards/analyses that you’d like to publish into PowerBI Cloud, follow these instructions. Alternatively, once your queries are all loaded, you can publish just them to PowerBI Cloud. From PowerBI Cloud, you have the functionality to build/modify reports.
Using ZoneExtract, you can publish your PowerBI dashboards into the “ZoneExtract - Report Portlet”. The process begins within PowerBI Cloud.
- On your report within PowerBI Cloud, go to File > “Embed”
- Copy the https link to your clipboard. We will ultimately paste this into our portlet.
- Now, switch back to NetSuite. In NetSuite on the activity bar: ZoneExtract > Configuration > Settings> click on “*NEW* Dashboard”
- Give the Script a title that you will remember. This will become the portlet name when adding the portlet to your dashboard.
- Change the status to “Released”.
- Choose who can view the portlet under the “audience” sub-tab.
- Go to the “parameters” sub-tab
- Paste the copied PowerBI URL
- Add a title under “ZoneExtract – Title”. This will show up as the title on the portlet itself.
- Click Save.
- On your dashboard, add a custom portlet.
- Click “setup” on the portlet and search source for the name of your portlet (given in step #7).
- Your PowerBI report should now load! Enjoy!
Note: You can adjust the height and width of the dashboard within the portlet to your preferences. To change the size, use the height and width box within the parameters tab of the script deployment you just set up.
9. Publishing Tableau Dashboards into NetSuite
Follow the same steps as above. However, when you get your Tableau URL, please modify:
Original share link: https://public.tableau.com/views/INTERNAL_InventoryFeed/INTERNAL?:display_count=y&:origin =viz_share_link
Modified share
link: https://public.tableau.com/views/INTERNAL_InventoryFeed/INTERNAL?:display_count=y&:showV izHome=no&:embed=true
10. Giving Roles Access to ZoneExtract
Under Customization > Centers and Tabs > Center Tabs … Find the ‘ZoneExtract’ tab. Click ‘Edit’. Under the Audience subtab, pick and choose who can see it.