I used this instruction to basically synchronise tasks, which are created in SAP CALM with Jira, i can update the Priority of task in CALM and this will be updated in Jira -> this works fine, the problem is that the Status of the task are not really updated, so when i update a status in CALM for example from In Progress to Done: Then this status is not really updated in Jira and the task is not moved to the right Column:
PS: i changed the links to XXXXX for Security
- is this what í'm trying to achieve a possible task? this sounds yes for me -> but i can not solve it
i used Postman to get the request of what the status of the transition -> this is what i recieved:
{
"expand": "transitions",
"transitions": [
{
"id": "11",
"name": "Backlog",
"to": {
"description": "",
"name": "Backlog",
"id": "10003",
"statusCategory": {
"self": XXX",
"id": 2,
"key": "new",
"colorName": "blue-gray",
"name": "To Do"
}
},
"hasScreen": false,
"isGlobal": true,
"isInitial": false,
"isAvailable": true,
"isConditional": false,
"isLooped": false
},
{
"id": "21",
"name": "Selected for Development",
"to": {
"description": "",
"name": "Selected for Development",
"id": "10004",
"statusCategory": {
"id": 2,
"key": "new",
"colorName": "blue-gray",
"name": "To Do"
}
},
"hasScreen": false,
"isGlobal": true,
"isInitial": false,
"isAvailable": true,
"isConditional": false,
"isLooped": false
},
{
"id": "31",
"name": "In Progress",
"to": {
"description": "This issue is being actively worked on at the moment by the assignee.",
"name": "In Progress",
"id": "3",
"statusCategory": {
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "In Progress"
}
},
"hasScreen": false,
"isGlobal": true,
"isInitial": false,
"isAvailable": true,
"isConditional": false,
"isLooped": false
},
{
"id": "41",
"name": "Done",
"to": {
"description": "",
"name": "Done",
"id": "10005",
"statusCategory": {
"id": 3,
"key": "done",
"colorName": "green",
"name": "Done"
}
},
"hasScreen": false,
"isGlobal": true,
"isInitial": false,
"isAvailable": true,
"isConditional": false,
"isLooped": false
},
{
"id": "51",
"name": "Not Relevant",
"to": {
"description": "This status is managed internally by Jira",
"name": "Not Relevant",
"id": "10278",
"statusCategory": {
"id": 4,
"key": "indeterminate",
"colorName": "yellow",
"name": "In Progress"
}
},
"hasScreen": false,
"isGlobal": true,
"isInitial": false,
"isAvailable": true,
"isConditional": false,
"isLooped": false
}
]
}
- My External API Mapping rule in SAP CALM, looks like this, can anyone help me with that? so that i can update the task status from CALM into Jira: Done (CALM) -> Done(Jira) -> task is moved to Kanbanboard with Column Done
- {
"_information": {
"_version": "REST API v3",
"_source": "SAP Cloud ALM Task",
"_destination": "Jira Task",
"_name": "SAP Cloud ALM Task to Jira Task",
"_comment": ""
},
"switches": [
{
"name": "switchType",
"cases": [
{ "when": "CALMREQU", "then": "Requirement" },
{ "when": "CALMDEF", "then": "Defect" },
{ "when": "CALMUS", "then": "User Story" },
{ "when": "CALMTASK", "then": "Project Task" },
{ "when": "CALMTMPL", "then": "Template" }
],
"default": "Project Task"
},
{
"name": "switchLink",
"cases": [
{ "when": "CALMREQU", "then": "ptmRequirement-management?sap-app-origin-hint=&tile=PTMREQ&" },
{ "when": "CALMDEF", "then": "ptmDefect-management?sap-app-origin-hint=&tile=PTMDEF&" },
{ "when": "CALMUS", "then": "task-management?sap-ui-app-id-hint=com.sap.calm.imp.tkm.ui&" },
{ "when": "CALMTASK", "then": "task-management?sap-ui-app-id-hint=com.sap.calm.imp.tkm.ui&" }
],
"default": "task-management?sap-ui-app-id-hint=com.sap.calm.imp.tkm.ui&"
},
{
"name": "switchPriority",
"cases": [
{ "when": 10, "then": "Highest" },
{ "when": 20, "then": "High" },
{ "when": 30, "then": "Medium" },
{ "when": 40, "then": "Low" },
{ "when": 50, "then": "Lowest" }
],
"default": "Lowest"
},
{
"name": "switchStatus",
"cases": [
{ "when": "CIPREQUINP", "then": "In Progress" },
{ "when": "CIPREQUNO", "then": "Not Relevant" },
{ "when": "CIPREQUBLK", "then": "Blocked" },
{ "when": "CIPTKINP", "then": "In Progress" },
{ "when": "CIPTKNO", "then": "Not Relevant" },
{ "when": "CIPTKBLK", "then": "Blocked" },
{ "when": "CIPTKCLOSE", "then": "Done" },
{ "when": "CIPDFCTINP", "then": "In Progress" },
{ "when": "CIPDFCTBLK", "then": "Blocked" },
{ "when": "CIPDFCTDONE", "then": "Done" },
{ "when": "CIPUSINP", "then": "In Progress" },
{ "when": "CIPUSNO", "then": "Not Relevant" },
{ "when": "CIPUSBLK", "then": "Blocked" },
{ "when": "CIPUSCLOSE", "then": "Done" }
],
"default": "Open"
},
{
"name": "switchTransition",
"cases": [
{ "when": "CIPTKINP", "then": "31" },
{ "when": "CIPTKCLOSE", "then": "41" },
{ "when": "CIPTKNO", "then": "51" },
{ "when": "CIPREQUINP", "then": "31" },
{ "when": "CIPREQUNO", "then": "51" },
{ "when": "CIPREQUBLK", "then": "41" },
{ "when": "CIPDFCTINP", "then": "31" },
{ "when": "CIPDFCTBLK", "then": "41" },
{ "when": "CIPDFCTDONE", "then": "41" },
{ "when": "CIPUSINP", "then": "31" },
{ "when": "CIPUSBLK", "then": "41" },
{ "when": "CIPUSCLOSE", "then": "41" }
],
"default": ""
}
],
"structure": {
"request": {
"fields": {
"summary": "[SAP Cloud ALM ${SWITCH(switchType,type)}] #{title}",
"customfield_10049": "#{id}",
"issuetype": { "name": "Task" },
"project": { "key": "#{@USER_VAR(projectId)}" },
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "Type: ${SWITCH(switchType,type)}\n\nProject ID: #{projectId}\n\nStatus: ${SWITCH(switchStatus,status)} \n\nDescription: #{description}\n\nScope Name: #{scopeName}\n\nDue Date: #{dueDate}",
"type": "text"
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Direct Link",
"marks": [
{
"type": "link",
"attrs": {
"href": "#{@CLOUD_ALM_URL}/launchpad#${SWITCH(switchLink,type)}/taskDetail/#{id}"
}
}
]
}
]
}
]
},
"priority": { "name": "${SWITCH(switchPriority,priorityId)}" },
"labels": ["#{workstream}"],
"assignee": { "accountId": "632adf49234d44d406cf77bb" }
}
},
"response": {
"displayUrl": "#{self}",
"externalNumber": "#{key}",
"externalId": "#{id}"
}
},
"eventTypeMapping": {
"_comment": "Specific event type mapping",
"operationMappings": [
{
"eventType": "TASK.CREATED",
"operation": "POST",
"responseRoot": "",
"externalIdProperty": "/id"
},
{
"eventType": "TASK.UPDATED",
"operation": "PUT",
"responseRoot": "",
"path": "/#{@CLOUD_ALM_EXTERNAL_ID}",
"structure": {
"request": {
"fields": {
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"text": "Type: ${SWITCH(switchType,type)}\n\nProject ID: #{projectId}\n\nStatus: ${SWITCH(switchStatus,status)} \n\nDescription: #{description}\n\nScope Name: #{scopeName}\n\nDue Date: #{dueDate}",
"type": "text"
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Direct Link",
"marks": [
{
"type": "link",
"attrs": {
"href": "#{@CLOUD_ALM_URL}/launchpad#${SWITCH(switchLink,type)}/taskDetail/#{id}"
}
}
]
}
]
}
]
},
"priority": { "name": "${SWITCH(switchPriority,priorityId)}" },
"labels": ["#{workstream}"]
}
},
"response": { "taskUpdated": true }
}
},
{
"eventType": "TASK.UPDATED",
"operation": "POST",
"path": "/#{@CLOUD_ALM_EXTERNAL_ID}/transitions",
"responseRoot": "",
"structure": {
"request": {
"transitions": {
"id": "${SWITCH(switchTransition,status)}"
}
},
"response": {
"transitionDone": true
}
}
},
{
"eventType": "TASK.DELETED",
"operation": "DELETE",
"responseRoot": "",
"path": "/#{@CLOUD_ALM_EXTERNAL_ID}",
"structure": {
"request": {},
"response": { "taskDeleted": true }
}
}
]
}
}