Hello Everyone, I need a small help. I am trying to establish bidirectional(in&out) communication using two differnt ways. all are use basic auth which I tested works fine
Example 1 - define restmessage for get and post the incidents on Jira board.
Get is working good I test on relted link ist works fine and 200 messge with all json format data came their
get endpoint is(https://<email>.atlassian.net/rest/api/3/search/jql?jql=project=SBIP&fields=*all) (basic auth tested here fine)
post endpoint is (https://<email>.atlassian.net/rest/api/3/issue)
please let me know POST endpoint is correct way or someother way we can figure it out?
I used the scheduled script, which does not work :-
var request = new sn_ws.RESTMessageV2('JiraIssuesFetch','FetchIssueGETMethod');
var repsonse = request.execute();
var parseData = JSON.parse(repsonse.getBody());
gs.info("pasrsedata:" + parseData);
var loopCount = parseData.total - 1;
for (i = 0; i <= loopCount; i++) {
var grIncident = new GlideRecords('incident');
grIncident.addQuery('u_external_number', parseData.issues[i].key);
grIncident.query();
if (!grIncident.next()) {
var grIncidentcreate = new GlideRecord('incident');
grIncidentcreate.initialize();
grIncidentcreate.short_description = parseData.issues[i].feilds.summary;
grIncidentcreate.u_external_number = parseData.issues[i].key;
grIncidentcreate.insert();
}
}
from Jira to SN get the story value in incident table which will create or update using BR but not work their code is below: Async insert+update
(function executeRule(current, previous /*null when async*/ ) {
gs.info("value of External_number", current.u_external_number);
if (!current.u_external_number) {
gs.info('external feild is null so create in a Jira ');
var body = {
"feilds": {
"issuetype": {
"name": "Bug"
},
"project": {
"key": "SBIP"
},
"summary": current.short_description.getDisplayValue(),
"description": {
"version": 1,
"type": "doc",
"content": [{
"type": "paragraph",
"content": [{
"type": "text",
"text": current.description.getDisplayValue()
}]
}]
}
}
};
var createGroup = new sn_ws.RESTMessageV2('Jira Issues create', 'Create issue using Post');
createGroup.setRequestBody(JSON.stringify(body));
var response = createGroup.execute();
gs.info("Jira issue creation response" + response.getBody());
} else {
gs.info("external number is not null ");
}
})(current, previous);
Example 2. In post to Jira and SN' rm_story table using code instead of rest message still find problems
BR code here:Async and insert
(function executeRule(current, previous /*null when async*/ ) {
var body = "{\"fields\":{\"project\":{\"key\":\"SBIP\"},\"summary\": \"Demo jira summary.\",\"issuetype\":{\"name\":\"Story\"}}}";
gs.log("2nd stage of br");
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://<emailid>.atlassian.net/rest/api/3/issue');
request.setHttpMethod('POST');
request.setRequestBody(body);
gs.log("3rd stage of br");
var user = '<emailid>';
var password = 'API key';
gs.log("4th stage of br");
request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader("Content-Type","application/json");
var response =request.execute();
gs.log("last stage of br" + response.getBody());
})(current, previous);
Schedule script for post it to Jira code is here:
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://<emailid>.atlassian.net/rest/api/3/search/jql?jql=project=SBIP&fields=*all');
request.setHttpMethod('GET');
gs.log("1st stage of SSE");
var user = '<emailid>@gmail.com';
var password = 'api key';
gs.log("3th stage of SSE");
request.setBasicAuth(user, password);
request.setRequestHeader("Accept", "application/json");
var response = request.execute();
var parseData = JSON.parse(response.getBody());
var loop = parseData.total - 1;
gs.log("4th stage of SSE");
for (i = 0; i <= loop; i++) {
var grstory = new GlideRecord('rm_story');
grstory.addQuery('x_966447_intg_external_number', parseData.issues[i].key);
grstory.query();
if (!grstory.next()) {
var grStoryCreate = new GlideRecord('rm_story');
grStoryCreate.initialize();
grStoryCreate.short_description = parseData.issues[i].fields.summary;
grStoryCreate.x_966447_intg_external_number = parseData.issues[i].key;
grStoryCreate.insert();
}
}
gs.log(response.getBody());
Can anyone help me in both examples, which is bidirectional communication
#integration