How to use PUTMethod to change the testplan approve status using RQM restful api?
We have a requirement to allow the approver to approve the test plan out of RQM web UI.We want to change the Status from pending to approved:
Information:
1) RQM version:4.0.1
2)We use PUT to change the status and PUTMethod url: https://<rqm server="">:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/reources/<project name="">/testplan/urn:com.ibm.rqm:testplan:6
3)We first use GETMethod to obtain the responseBody data of url as above, and output the data to a xml file.We change the file: <ns2:approvalstatus>com.ibm.team.workitem.approvalState.pending </ns2:approvalstatus> (:Old)
to <ns2:approvalstatus>com.ibm.team.workitem.approvalState.approved </ns2:approvalstatus> (:New).
than we put the file as requestBody to url: put.setRequestBody(new FileRequestEntity(file,"text/xml; charset=utf-8")); and the response is 200.
Result:
In our java code we login as the approver first with j_security_check , and then use PUT to only update one approver approve status, we found whatever we want to change the approve status to(e.g. approved, rejected), the actual result is : it is changed to status 'pending'. That means if the approve status is rejected, after our code run, it is changed to 'pending'.
This is why? does we use wrong data format?
The question is also describe in:
https://jazz.net/forum/questions/123596/how-to-approve-a-test-plan-using-rqm-restful-api?utm_campaign=forum&utm_medium=email&utm_source=forum-new-answer&utm_content=forum-question
Information:
1) RQM version:4.0.1
2)We use PUT to change the status and PUTMethod url: https://<rqm server="">:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/reources/<project name="">/testplan/urn:com.ibm.rqm:testplan:6
3)We first use GETMethod to obtain the responseBody data of url as above, and output the data to a xml file.We change the file: <ns2:approvalstatus>com.ibm.team.workitem.approvalState.pending </ns2:approvalstatus> (:Old)
to <ns2:approvalstatus>com.ibm.team.workitem.approvalState.approved </ns2:approvalstatus> (:New).
than we put the file as requestBody to url: put.setRequestBody(new FileRequestEntity(file,"text/xml; charset=utf-8")); and the response is 200.
Result:
In our java code we login as the approver first with j_security_check , and then use PUT to only update one approver approve status, we found whatever we want to change the approve status to(e.g. approved, rejected), the actual result is : it is changed to status 'pending'. That means if the approve status is rejected, after our code run, it is changed to 'pending'.
This is why? does we use wrong data format?
The question is also describe in:
https://jazz.net/forum/questions/123596/how-to-approve-a-test-plan-using-rqm-restful-api?utm_campaign=forum&utm_medium=email&utm_source=forum-new-answer&utm_content=forum-question
One answer
When using the RQM Reportable REST API to update the approval status, you must be authenticated with the RQM server using the same user credentials as the approval owner.
I have tested this in RQM 4.0.1 using Poster and/or HttpRequester.
I have tested this in RQM 4.0.1 using Poster and/or HttpRequester.