Ask questions about connecting to Rest APIs within TimeXtender
Recently active
After upgrading to Ingest 7313.1 I updated my REST API provider version to 12.1.0.0. Now some of my REST endpoints have started failing.Running “Import metadata” works fine, but when it tries to extract values from the JSON, it fails with errors like: Failed to execute callback for endpoint 'Get Charge Points':Column 'data_id' does not belong to table charge-points.System.ArgumentException: Column 'data_id' does not belong to table charge-points. But it should be able to parse it.The structure of the JSON is like this (just showing top of file):{ "data": [ { "id": 1096237, "teamId": 449574, Any tips?
We are getting a bad request error when we are using the timextender odata data source. When we use the endpoints that we previously selected during metadata discovery, they still work normally. So why is the discovery metadata at the moment not working (it worked the first time). Thank you in advance!
Hi, I’ve got a Prooblem with a Datefield. Within the datasource it is defined as DateTime Offset. The source is connected via Rest API (ODATA) and I use table flattening before importing it into ODX. Alle Date fields arrive as DateTime2 when loading MetaData except this one field. It is imported as nvarchar. When looking into it, ist looks like a Boolean. True ist set when the field is filled. The rest is just empty.I’ve already checked if this field has the same datatype as all of the other fields- the set up ist the same.When I try to set a default value within the table flattening, the source isn’t recognized anymore and I have to reconnect. When I try override Data Types I get the error “... Exception occurred when converting value '' for column name 'd-Istmenge_Enddatum' from type 'String' (precision:-1, scale:-1) to type 'DateTime' ...” The same error occurs when I try converting it in stage with set custom transformation to replace empty field with a default date. Maybe some on
I’m trying to connect TimeXtender to a REST API that uses JWT authentication. The API requires a JWT token for authorization, and I need to know the correct way to generate the token and refresh it.Here is how i do it in POSTMAN:I have an endpoint: {baseurl}/login, that generates a token using POST - the token expires every hourI then use that token to get data from another endpoint using GET: {baseurl}/meters
Hello,At the moment we are onboarding a new REST API data source that uses PEM certificates in combination with a key file.We are using a legacy version of TimeXtender (20.10.80); where can I specify the PEM certificate (or its path) and likewise the key file?I have currently configured it as follows:1. Pem file2. KeyThe REST API endpoints are working in POSTman, so technically it works fine. Thanks for your anwser.
Hello,We are seeing an issue with a Enhanced Data Source TimeXtender REST (1.9.0) data source in TimeXtender where decimal values are being interpreted incorrectly during ingestion.We have two datasets based on the same AFAS source: one loaded through a REST connector in TimeXtender one loaded through a PowerShell script that retrieves the same REST data and exports it to CSV, which is then loaded into TimeXtender The CSV route shows the correct values for the field Aantal_FTE, for example: 0.18 0.25 0.55 0.95 1.00 However, the same field loaded directly through the TimeXtender REST connector shows incorrect values such as: 18 25 55 95 375 625 675 It appears that decimal values are already being misinterpreted in REST.rows, before the data reaches the staging table.For example: 0.95 becomes 95 0.375 becomes 375 0.675 becomes 675 This suggests that the decimal separator is being lost during REST parsing.Additional observations: In the REST source preview, the i
Hi,i want to retrieve ActivityEvents from PowerBI Admin using then TimeXtender REST API.configure the base URL as: https://api.powerbi.com/v1.0/myorg/admin/Endpoint configured as: activityevents?StartDateTime=%27{BDAT}%27&EndDateTime=%27{EDAT}%27&filter=Activity%20eq%20%27ViewReport%27{BDAT} and {EDAT} are populated using a SQL Query: DECLARE @i int = 0WHILE @i > -5BEGIN select CONCAT(FORMAT(dateadd(day,@i,GETDATE()), 'yyyy-MM-dd'),'T00%3A05%3A00.000') as [BDAT], CONCAT(FORMAT(dateadd(day,@i,GETDATE()), 'yyyy-MM-dd'),'T23%3A55%3A00.000') as [EDAT] SET @i = @i - 1ENDi hoped it will loop for the past 5 days but unfortunately this doesn't work.Setting the BDAT 5 days in the past doesn't work either. Any ideas how to solve this?by the way we are using TX Classic V 20.10.66.64 and TimeXtender REST API v16.4.23.0 (also tested with 16.4.21.0)Kind regards,Hans
We are migrating from CData data sources to the TimeXtender REST API data source.For Microsoft Graph API (used to retrieve calendars for multiple meeting rooms), the connection works correctly, but we are running into a major performance issue. While we retrieve the same amount of data.Performance comparison:Using CData:Ingest task: ~4 minutes Execute task per table: ~10 secondsUsing TimeXtender REST API data source:Ingest Full Load: 1.5 – 2 hours Execute task per table: 10–15 minutesWe have over 30 tables, so the execution time increases dramatically when using the TimeXtender REST API connector. Question:Are there any recommended ways to improve the performance of the TimeXtender REST API data source, both for the ingest phase and for execution runtime?For example: configuration tips, concurrency settings, pagination options, or known limitations compared to CData?Any guidance or best practices would be greatly appreciated.
When I try pagination in the Enhanced datasource REST I only get 1 run, it stops after the first page.My Json result looks like this when I get to a page without a result:{ "data": [], "status": "success"} How do I get my stopCondition to work in pagination?
Is there Swagger import support for the new TimeXtender REST data source?
I need to connect some new REST API's to our TX environment. These API's where easy to configure in Postman, but is now a challenge in TX. In Postman it's possible to use a “pre-script” (java) to create some variables, concatenate them and then hash. This is the script:const method = 'GET';const urlPath = '/app/openapi/v1/device/deviceOpenIds';const secret = 'MY_SECRET';const timestamp = Date.now().toString();const signature = CryptoJS.HmacSHA256(method + timestamp + urlPath, secret).toString(CryptoJS.enc.Hex);pm.environment.set('timestamp', timestamp);pm.environment.set('signature', signature);This signature is used in the header for authentication for the GET call. The API provider gives a python or java script to make the HmacSHA256 hash, but I cannot use that directly in TX.What is a good way to approach this in TimeXtender?
I’m using TimeXtender REST Data Source v10.2.0.0 with two endpoints: A static endpoint that returns a list of IDs. A dynamic endpoint that retrieves additional data for those IDs. The problem is that not all IDs from the first endpoint exist in the second. When the dynamic endpoint tries a ‘non-existent ID’, the API returns a 500 server error, stopping the data transfer.This is an external API, so I have no control over it. From what I can see, the datasource provider doesn’t offer error handling (like try/catch or “skip if failed”).I could create a curated list of valid IDs, but there are thousands of IDs that can change at any time, making this impractical. I could also ask the API provider to return empty JSONs instead of errors, but I’d prefer to handle it on my side.Any advice?
I'm using dynamic values function in the TX REST connector 9.1.0.0. I use id's from another endpoint to loop through in my second endpoint path. This works well when I use “From Endpoint Table” but now I want to add a filter to only get the id's with a flag “hasresponse=true”.I've read the page but I still get an error with my Endpoint query. “No such table” the error message says. I've tried several things like adding a schema. But all with the same response. Is there something wrong with my syntax?Error:
Hi, I’m trying to connect to a API using Timextender REST version 7.1.0.0 but my result is only one row of data. In Postman I get much more data. It might be because the API returns JSONL and TX tries to handle it as JSON. I’m trying to convert it to Text but it still doesn’t work. Earlier I managed to complete the goal in Power Query even with pagination. Now I’ve hit a brick wall and I need your help to proceed. My result in ODX: My result in Postman:Here’s my connection profile:{ "Name": "MixPanel", "Description": "", "Provider": { "TemplateId": "d4aa4001-fd7b-4c65-b76d-f9710d551c1e", "DisplayName": "TimeXtender REST", "ProviderVersion": "7.1.0.0", "X64BitVersion": true, "ProviderType": 6 }, "RestProperties": { "Pills": [ { "Name": "Authentication", "Description": "Configure authentication settings to securely access the API using tokens, keys, or other credentials.", "Id": "rest-general-authentication", "IsSelected": true
Hi,I got this structure(see below) from my rest api and I need to add order_id into each line of order_line. How can I flatten out order_lines with the order_id? I have tryed different ways, but when I have two order lines only one get the right order_id value…. Order/Orderlinesbest regards,Bjørn A.
Hi,We're observing strange behavior with the new enhanced REST data source provider.When we do the call on this endpoint in the old connector or in Postman, we get a return of 197 records. This is a single payload, 1 page, with fully filled rows, including a populated PK field.Now, when we do the same call with the enhanced REST data source provider we receive 589 records. 392 of these have null values on all records except for one field, a descriptive but not otherwise important. Importantly the PK field of these records is also null.Now we have two questions: Why is the new REST provider delivering more records than other providers/tools? How can we effectively filter out these records in the actual call? As it seems we are now only able to successfully filter out these almost empty records at the DSA.Best, Luuk
Hi,I've got a couple of installations with customers using CDATA for AD/Entra integration, with the upgrade I found an article to advise moving them to REST.I am however a bit lost on how to connect a REST API to Entra, and I couldn't find good documentation to fill it in.Could someone assist us for a moment or maybe point us toward more complete documentation specifically on using the Enhanced Data Source to connect to Entra? Thanks in advance, Jan DD
Hi,We are using a REST data source with dynamic values to fetch data for approximately 12,000 records, where each record corresponds to an individual API call.Occasionally, we encounter issues with the API provider where some calls return a 400 error. Unfortunately, it’s unpredictable which dynamic values will cause these errors.Currently, it appears that the TimeXtender REST data source stops processing upon encountering a 400 error, resulting in a "Completed with errors" status.Is there a way to configure the REST data source to continue processing the remaining dynamic values, skipping over those that result in a 400 error? Ideally, it would also log the calls that failed for review. Best regards,Pontus
Hi,I'd like to make a new data source connection using REST to connect with our Azure storage table.Thus far I have managed to get the connection setup, however pagination remains a issue.When testing our connection and following the steps in the debug logging file I see that when a table has a next: "x-ms-continuation-NextPartitionKey” and "x-ms-continuation-NextRowKey” it will return this in the header (not the body). But if the table doesn't have this it will stop since the "x-ms-continuation-NextPartitionKey” header was not found.As I am applying these pagination parameters as query parameter I need to be able to solve this issue.Is there maybe a way to apply a default value to these variables (manipulating query doesn't work as the variable itself already won't be found) or some way to dynamically replace a URL? Example table with no NextPartition/rowkey:When variable value replaced with default:Thanks for any input someone can provide.Kind regards,Robbert
Is it possible to add the dynamic values used in a nested call to a table flattening.In this particular case the first call gets the list of documents and feed the id as a dynamic value to the 2nd call. The response doesn't include any reference to the document and without the id we cannot link the details to a document. I've tried to add it as a static node (name: Document_ID value {id})but that only results in errors.
I need some help retrieving JSON data via GraphQl.When testing the connection in TimeXtender, I got a "Connection OK" message.After Synchronizing Data Source in TimeXtender an error message is displayed : System.Data.CData.GraphQL.GraphQLDataReader ExecuteDataReader(System.Data.CommandBehavior) [500] Could not execute the specified command: The defined query is null. : "UserViews"."query" System.Data.CData.GraphQL.GraphQLDataReader ExecuteDataReader(System.Data.CommandBehavior) [500] Could not execute the specified command: The defined query is null. : "UserViews"."variables"==========================================================================================================================We received the following connection string from our IT department--------------------------------------------------------------------------------------------------------------------------curl --location 'https://xxxxxxxxxx.com/um/users/graphql' \--header 'accept: */*' \--header 'Referer: h
Hi, is there anyone who managed to get the Freshdesk pagination working? I tried different ways but it is not working for me. Let me just describe what I did so far.trying with using Query Parameters and {TX_NextPage}, I tried using that since the freshdesk url is very easy to adjust with the page number, so I added this:My URL is:Pagination should look something like this https://[domain].freshdesk.com/api/v2/tickets?page=[number]So, I added in the connection settings first the pagination rule which looks like this:and I added the endpoint later for tickets.This didn’t work, so I tried the same but adding it in the endpoint with Override pagination rules, unfortunately that didn’t work either. Any other parameters, such as pagesize, or include-stats works, perfectly fine, but the pagination simply doesn’t. So after trying this two, I tried another way. Trying using the header link from response. The query response posts the next page link in the headers, so I tried utilizing that setu
I am using a Power BI endpoint (https://learn.microsoft.com/en-us/rest/api/power-bi/datasets/get-refresh-history) where I need datasetIds to get the refreshes of that dataset. I am using the TimeXtender REST data provider, in which I loop over a list of dataset ids using a dynamic value. The problem is that in the output of the Get Refresh History endpoint the dataset Id is not included.Therefore, my question is: Is it possible to pass a dynamic value used in a call as an additional column next to the output of the call? I don't see any option for this in the portal. If I were to extract the data using Power BI, I would do the call for every row in a table containing the required dataset Ids and expand the resulting column. This way, the original table column containing the dataset Ids will always be related to the dataset refreshes. Can I do the same using TimeXtender?
The TimeXtender REST Data Source has the ability to add an API endpoint with table flattening in multiple ways: either adding the endpoint once with multple tables or adding the same endpoint multiple times. I've done some tests to find out which is fastest.The test was done on an API with an unstructured JSON data source, with root nodes on multiple levels where the XSLT Table Builder can iterate over. This means I needed to add 4 flattened tables on the same endpoint, each with different root nodes. Version numbers were REST provider version 9.0, TDI 6935.1, with Ingest running on and Azure VM and storage on ADLS Gen 2.Two ways of setting up the same endpoint with four tablesMy hypothisis was that 1x endpoint with 4x tables would be quicker than 4x endpoints with easch 1x table, because TimeXtender would call the API once and the multiple XSLT tansformations can happen on the same result data, rather than the API being called multiple times which would add unnecessary tansfer of data
We are using the new 'Import Swagger/OpenAPI’ feature in the TX REST Data Source (absolutely loving that btw), but are encountering an error. When importing the URL for a Weather API, we receive the following error message:Error: Exception Type: Microsoft.OpenApi.Readers.Exceptions.OpenApiUnsupportedSpecVersionException Message: OpenAPI specification version '3.1.0' is not supported. So far we've had no trouble importing Open API spec 3.0.0 documentation. Is there a compatibility issue with the latest 3.1.0 spec?
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.