Chris Bayliss Posted July 2, 2019 Share Posted July 2, 2019 Hi all, I'm trying to dynamically kick off change requests using the Hornbill api and using the logChangeRequest method, but in order for it to be logged correctly and the BPM to kick in I also need to feed it the expected answers from a progressive capture form. I've tried answering the questions using their field id within the "questions" param, however no matter which way I try to format them I get a FlowCode exception. I'm making the call within a PoSh script and have successfully logged Service Requests/Incidents, just this is currently giving me grief! Example params: $xmlmcParams = " <summary>$summary</summary> <description>$description</description> <requestType>Change Request</requestType> <teamId>STB/IT_#####/IT_#####/</teamId> <status>status.new</status> <sourceType>API</sourceType> <questions> <Question_1>Standard</Question_1> <Question_2>Low</Question_2> <Question_3>Standard process</Question_3> <Question_4>Low</Question_4> <Question_5>Standard process</Question_5> <Question_6>Roll back</Question_6> <Question_7>n/a</Question_7> </questions> <changeType>Standard</changeType>" Exception: FlowCode Exception (com.hornbill.servicemanager/entities/ChangeRequests/fc_ops/logChangeRequest): Input parameter validation error: The simple type value contains unexpected child elements at location '/methodCall/params/questions' Do I also need to supply the questionFieldMap param for this to work? If anyone has a working example of making a call which contains answers which would normally be fed from a prog capture that would be b e a u tiful. Link to comment Share on other sites More sharing options...
Steve G Posted July 2, 2019 Share Posted July 2, 2019 Hi @Chris Bayliss, The questions input parameter isn't complex XML, it actually expects a JSON string with the question data in. You also need to populate the questionFieldMap input parameter too, if you're wanting to write anwers to additional request fields. The best advice I can give here is for you to run through the progressive capture with your browser developer tools open, and on the network tab filter by the name of the flowcode you're calling. Once the change has been logged, you'll be able to see the API call that was made, and its payload, so you can copy the JSON out of both parameters and paste in to your script. Here's one for an incident I've just logged, that populates the questions and questionFieldMap parameters. Just to note, too. I notice that you're building the XML for your API call manually in the script. We've actually released a Powershell module containing cmdlets that will make the building and sending of Hornbill API calls much easier. It's on the Powershell Gallery for you to install: https://www.powershellgallery.com/packages/HornbillAPI/1.1.0 Once you've got that, then you can build and make your API calls as so: # Define instance details Set-HB-Instance -Instance "yourinstanceid" -Key "yourapikey" # Build API Call Add-HB-Param "summary" "Whatever you want to put in the summary" $false Add-HB-Param "description" "Whatever you want to put in the description" $false # Invoke XMLMC call, output returned as PSObject $xmlmcOutput = Invoke-HB-XMLMC "apps/com.hornbill.servicemanager/Incidents" "logIncident" Let me know how you get on with this. Cheers! Steve 1 1 Link to comment Share on other sites More sharing options...
Chris Bayliss Posted July 3, 2019 Author Share Posted July 3, 2019 @Steve G Legendary. Thanks Steve! 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now