Hi all,
I'm having trouble interacting with the TM1 rest API in the following way. I'm hoping maybe there's some obvious that I'm missing :)
Kick-off TI process
public async static Task<string> RunProcessWithPolingAsync(TM1SharpConfig tm1, string processName, Dictionary<string, string>? parameters = null)
{
var client = tm1.GetTM1RestClient();
client.DefaultRequestHeaders.Add("Prefer", "respond-async");
var jsonBody = new StringBuilder();
if (parameters != null)
{
jsonBody.Append("{\"Parameters\":[");
parameters.AsEnumerable().ToList().ForEach(x =>
{
jsonBody.Append("{\"Name\":\"" + x.Key + "\", \"Value\":\"" + x.Value + "\"}");
});
jsonBody.Append("]}");
}
var jsonPayload = new StringContent(jsonBody.ToString(), new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync(tm1.ServerHTTPSAddress + @"/api/v1/Processes('" + processName + "')/tm1.ExecuteWithReturn", jsonPayload);
var asyncId = ParseAsyncId(response.Headers.Where(x => x.Key.Equals("Location")).First().Value.First());
return await GetAsyncStatus(tm1, asyncId);
}
Returns location header, parse out ID:
../_async('OLTJUN4E4XFBAoV1fiSrQsmK9tn1U')
Call to check status always 404s. Doesn't matter how long I wait or how many times I check.
https://server:port/api/v1/_async('OLTJUN4E4XFBAoV1fiSrQsmK9tn1U')
Status Code: 404
Content: {"error":{"code":"278","message":"Resource '/api/v1/_async('OLTJUN4E4XFBAoV1fiSrQsmK9tn1U')' not found"}}
------------------------------
William Smith
------------------------------