GetCampaignIncidentsIdsAsOptions
Get the campaign incident IDs as option values for Multi Select field.
- Type
- python
- Pack
- Campaign
Source
import demistomock as demisto # noqa: F401
from CommonServerPython import * # noqa: F401
ALL_OPTION = "All"
NO_CAMPAIGN_INCIDENTS_MSG = "There is no Campaign Incidents in the Context"
NO_ID_IN_CONTEXT = 'There is no "id" key in the incidents'
def get_campaign_incidents():
"""
Get the campaign incidents form the incident's context
:rtype: ``list``
:return: list of campaign incidents
"""
incident_id = demisto.incidents()[0]["id"]
res = demisto.executeCommand("getContext", {"id": incident_id})
if isError(res):
return_error(f"Error occurred while trying to get the incident context: {get_error(res)}")
return demisto.get(res[0], "Contents.context.EmailCampaign.incidents")
def get_incident_ids_as_options(incidents):
"""
Collect the campaign incidents ids form the context and return them as options for MultiSelect field
:type incidents: ``list``
:param incidents: the campaign incidents to collect ids from
:rtype: ``dict``
:return: dict with the ids as options for MultiSelect field e.g {"hidden": False, "options": ids}
"""
try:
ids = [str(incident["id"]) for incident in incidents]
ids.sort(key=lambda incident_id: int(incident_id))
ids.insert(0, ALL_OPTION)
return {"hidden": False, "options": ids}
except KeyError as e:
raise DemistoException(NO_ID_IN_CONTEXT) from e
def main():
try:
incidents = get_campaign_incidents()
if incidents:
result = get_incident_ids_as_options(incidents)
else:
result = NO_CAMPAIGN_INCIDENTS_MSG
return_results(result)
except Exception as err:
return_error(str(err), error=traceback.format_exc())
if __name__ in ("__main__", "__builtin__", "builtins"):
main()
README
Get the campaign incident IDs as option values for Multi Select field.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | field-display |
| Cortex XSOAR Version | 5.0.0 |
Inputs
There are no inputs for this script.
Outputs
There are no outputs for this script.