Planning Analytics

 View Only
  • 1.  Trouble accessing async object from RestAPI Prefer: respond-async

    Posted 10 days ago
    Edited by William Smith 10 days ago

    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
    ------------------------------



  • 2.  RE: Trouble accessing async object from RestAPI Prefer: respond-async

    Posted 10 days ago

    Reference: https://community.ibm.com/community/user/businessanalytics/discussion/executewithreturn-asynchronously

    User Robert Gordy advised that he was able to resolve the issue with 404 / not found, but I don't see specific steps taken :(



    ------------------------------
    William Smith
    ------------------------------



  • 3.  RE: Trouble accessing async object from RestAPI Prefer: respond-async

    Posted 9 days ago

    Solution: Make sure you're attempting to access the async object / endpoint from the same http session that you started the TI process on. Trying to access it from a different http session will always 404.



    ------------------------------
    William Smith
    ------------------------------



  • 4.  RE: Trouble accessing async object from RestAPI Prefer: respond-async

    Posted 9 days ago

    See below for implementation details:

    https://github.com/WilliamSmithEdward/AndromedaTM1Sharp/blob/master/AndromedaTM1Sharp/TM1RestAPI_AsyncStatus.cs

    https://github.com/WilliamSmithEdward/AndromedaTM1Sharp/blob/master/AndromedaTM1Sharp/TM1RestAPI_RunProcess.cs



    ------------------------------
    William Smith
    ------------------------------



  • 5.  RE: Trouble accessing async object from RestAPI Prefer: respond-async

    Community Leadership
    Posted 4 days ago

    Hi William,

    I am the Community Manager for Planning Analytics and i'm just checking to see if the problem you raised above has been resolved. If not, I will follow-up on your behalf.

    Thanks,

    Nick



    ------------------------------
    Nick Plowden
    AI Community Engagement
    IBM
    ------------------------------