UserTask decline reasons
Sometimes Ship From Store tasks need to be declined for some reason. These cancellations are tracked in an order's Order history in Admin Suite (and optionally even in your Orchestration sheets). You can track these cancellations in even more detail by setting up decline reasons, allowing your store employees to select their reason for the cancellation.
You can enable this functionality with a simple service: CreateUserTaskNotCompletedReason.
Once everything's set up, these reasons will become available in your mobile front ends when you try to cancel a task from the overview. Note that the reasons modal will not appear when deleting a task from within the task itself.
Create reasons
EVA comes with a bunch of pre-set reasons, but you can also add your own custom reasons. Both the pre-set ones as well as custom ones need to be specifically added to the UserTask and the appropriate OU before they will become available.
If you solely want to add already existing reasons to a UserTask, use the UpdateUserTaskNotCompletedReason
.
{
"Name":"No time",
"Usages":[
{
"UserTaskTypeID":"2",
"UserTaskSubTypeID":"5",
"organizationUnitSetID":"12"
}
]
}
First off, EnumValues can differ per environment, so be sure to run GetUserTaskTypes on your own environment first. The below values show how they're ordered in our environment.
Secondly, although it sounds kind of counter-intuitive, Ship from Store tasks are actually a CompositeUserTask.
Get
These decline reasons can be listed using GetUserTaskNotCompletedReason. You'll also be able to see each reason's usage:
{
"Reasons": [
{
"ReasonID": 1,
"Name": "TaskInProgressForTooLong",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 2,
"Name": "TaskNotStartedInTime",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 3,
"Name": "NoStock",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 4,
"Name": "Manual",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 5,
"Name": "OtherStore",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 6,
"Name": "Expired",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 7,
"Name": "FulfillmentCancelled",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 8,
"Name": "Unknown",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 9,
"Name": "OrderCancelled",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 10,
"Name": "BlobNotFound",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 11,
"Name": "FullStockCountCreated",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 12,
"Name": "ReturnToSupplierCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 13,
"Name": "OrderShipped",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 14,
"Name": "OrderCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 15,
"Name": "RepairCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 16,
"Name": "RepairOrganizationUnitChanged",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 17,
"Name": "No time",
"IsSystem": false,
"Usages": [
{
"UserTaskTypeID": 2,
"UserTaskSubTypeID": 5,
"UserTaskType": "CompositeUserTask",
"UserTaskSubType": "ShipFromStore",
"organizationUnitSetID": 12
}
]
}
]
}
Additional services
You are only allowed to alter and delete your own custom decline reasons.
Cycle count on no stock
Setting UserTasks:CreateCycleCountOnNoStockPartialPickCompletion
to true will trigger a cycle count whenever decline reason NoStock
is used.