PAX: TM1IOData Source still uses PMHUB for CognosOfficeAutomationObject.ExecuteFunction to run a TI
Posted: Tue Nov 12, 2019 3:55 pm
One of the attractions of PAX is that the new TM1IOData source mainly bypasses the Application Server and talks to TM1 directly bar high level functions that are handled by WorkSpace. We found the previous incarnation of the application server, PMHUB, to not match the stability of good old fashioned TM1.
Looking at the trace you can see this - in PAX the calls all seem to be to the URL. <WorkSpace Machine>/tm1
The example below shows the URL generated when we ran _testprocess from PAX using the right hand pane listing with Processes enabled. It ran successfully.
"http://<WorkSpace Machine>/tm1/<TM1 Instance Name>/api/v1/Processes('_testprocess')/tm1%2EExecuteWithReturn?", "Headers" : { "content-security-policy" : "frame-ancestors 'self'", "x-frame-options" : "SAMEORIGIN", "strict-transport-security" : "max-age=15552000; includeSubDomains", "x-content-type-options" : "nosniff", "x-xss-protection" : "1; mode=block", "odata-version" : "4.0", "preference-applied" : "respond-async", "content-length" : "0", "cache-control" : "no-cache", "content-type" : "text/plain", "date" : "Tue, 12 Nov 2019 11:54:31 GMT", "location" : "../_async('BA2FWFAAxOo-zKae0RQaFFVo0odC9A')", "set-cookie" : "TM1SessionId_<TM1 Instance Name>=[G4ZLb7SQ1zgIiilHGUskUA].[RDHMgatKgXG7O6OaKvVP7cDK9m4=]; Path=/", "server" : "Apache"}} } },
However when we run this from VBA which is the typical way to run a process in CAFE and still supported in PAX
CognosOfficeAutomationObject.ExecuteFunction "http://<WorkSpace Machine>/", "<TM1 Instance Name>", "_testprocess", "0,Hello"
It fails and Generates an error log that shows the url used was the old style pmhub call: http://<WorkSpace Machine>/pmhub/pm/tm1/api/
Path: http://<WorkSpace Machine>/pmhub/pm/tm1/api/<TM1 Instance Name>/v1%2E1/processes/_test%20action%20button/parameters?process=%5B%22name%22,%22datasource%22,%22parameters%22%5D¶meter=%5B%22name%22,%22value%22,%22type%22,%22prompt%22%5D&_includeControlObjects=true
Method: GET
Accepts: application/json
Error: Cannot access Server named "<TM1 Instance Name>" (via host "<TM1 Admin Machine>")
Response: { "errorCode" : "SystemServerNotFound", "errorMessage" : "Cannot access Server named \"<TM1 Instance Name>\" (via host \"<TM1 Admin Machine>\")"}
My question would be:
Is this intentional (ie IBM are going to continue to use PMHUB for certain operations) or has IBM neglected to convert this function to talk directly with TM1?
Now we are comparatively late converters to PAX, but have used CAFE extensively and most of our templates consist of reports with Active-X buttons calling VBA to refresh data via a TI. I would assume this would be a typical use of PAX/CAFE, so another question arises: why aren't other sites experiencing the same problems.
As always, any responses are most appreciated.
Looking at the trace you can see this - in PAX the calls all seem to be to the URL. <WorkSpace Machine>/tm1
The example below shows the URL generated when we ran _testprocess from PAX using the right hand pane listing with Processes enabled. It ran successfully.
"http://<WorkSpace Machine>/tm1/<TM1 Instance Name>/api/v1/Processes('_testprocess')/tm1%2EExecuteWithReturn?", "Headers" : { "content-security-policy" : "frame-ancestors 'self'", "x-frame-options" : "SAMEORIGIN", "strict-transport-security" : "max-age=15552000; includeSubDomains", "x-content-type-options" : "nosniff", "x-xss-protection" : "1; mode=block", "odata-version" : "4.0", "preference-applied" : "respond-async", "content-length" : "0", "cache-control" : "no-cache", "content-type" : "text/plain", "date" : "Tue, 12 Nov 2019 11:54:31 GMT", "location" : "../_async('BA2FWFAAxOo-zKae0RQaFFVo0odC9A')", "set-cookie" : "TM1SessionId_<TM1 Instance Name>=[G4ZLb7SQ1zgIiilHGUskUA].[RDHMgatKgXG7O6OaKvVP7cDK9m4=]; Path=/", "server" : "Apache"}} } },
However when we run this from VBA which is the typical way to run a process in CAFE and still supported in PAX
CognosOfficeAutomationObject.ExecuteFunction "http://<WorkSpace Machine>/", "<TM1 Instance Name>", "_testprocess", "0,Hello"
It fails and Generates an error log that shows the url used was the old style pmhub call: http://<WorkSpace Machine>/pmhub/pm/tm1/api/
Path: http://<WorkSpace Machine>/pmhub/pm/tm1/api/<TM1 Instance Name>/v1%2E1/processes/_test%20action%20button/parameters?process=%5B%22name%22,%22datasource%22,%22parameters%22%5D¶meter=%5B%22name%22,%22value%22,%22type%22,%22prompt%22%5D&_includeControlObjects=true
Method: GET
Accepts: application/json
Error: Cannot access Server named "<TM1 Instance Name>" (via host "<TM1 Admin Machine>")
Response: { "errorCode" : "SystemServerNotFound", "errorMessage" : "Cannot access Server named \"<TM1 Instance Name>\" (via host \"<TM1 Admin Machine>\")"}
My question would be:
Is this intentional (ie IBM are going to continue to use PMHUB for certain operations) or has IBM neglected to convert this function to talk directly with TM1?
Now we are comparatively late converters to PAX, but have used CAFE extensively and most of our templates consist of reports with Active-X buttons calling VBA to refresh data via a TI. I would assume this would be a typical use of PAX/CAFE, so another question arises: why aren't other sites experiencing the same problems.
As always, any responses are most appreciated.