// заполнение переменных чата по результатам
// назначение ответственного на заявку
// обновление переменных чата по итогам
установитьПеременную("IntegrationSign", "Accident") +
установитьПеременную("ContactCompany", "Блок платформ") +
установитьПеременную("ServiceName", "Сервис") +
установитьПеременную("IncidentType", "Incident") +
установитьПеременную("Priority", "Medium") +
установитьПеременную("Urgency", "Regular") +
установитьПеременную("Description", "{platformInMessageQuery}") +
установитьПеременную("DetailedDescription", "Тестовый инцидент, просьба закрыть") +
установитьПеременную("Action", "CREATE") +
установитьПеременную("Company", "Компания") +
установитьПеременную("Organization", "Организация") +
установитьПеременную("Group", "Группа") +
установитьПеременную("GroupID", "26514") +
установитьПеременную("RequesterFullName", "?") +
установитьПеременную("RequesterLogin", "?") +
установитьПеременную("host", "http://Х.Х.Х.Х/arsys/services/ARService") +
выполнитьJs("""
var getClientInfoTemplate = <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:RTL:HPD:IncidentCreate">
<soapenv:Header>
<urn:AuthenticationInfo>
<urn:userName>autofaq.intergration</urn:userName>
<urn:password>.g!e:BI_qZdh</urn:password>
<!--Optional:-->
<urn:authentication>?</urn:authentication>
<!--Optional:-->
<urn:locale>?</urn:locale>
<!--Optional:-->
<urn:timeZone>?</urn:timeZone>
</urn:AuthenticationInfo>
</soapenv:Header>
<soapenv:Body>
<urn:CreateNewIncident>
<urn:Integration_Sign>${IntegrationSign}</urn:Integration_Sign>
<urn:Contact_Company>${ContactCompany}</urn:Contact_Company>
<urn:ServiceCI>${ServiceName}</urn:ServiceCI>
<urn:Incident_Type>${IncidentType}</urn:Incident_Type>
<urn:Priority>${Priority}</urn:Priority>
<urn:Urgency>${Urgency}</urn:Urgency>
<urn:Description>${Description}</urn:Description>
<urn:Detailed_Decription>${DetailedDescription}</urn:Detailed_Decription>
<urn:z1D_Action>${Action}</urn:z1D_Action>
<urn:Company>${Company}</urn:Company>
<urn:Organization>${Organization}</urn:Organization>
<urn:Group>${Group}</urn:Group>
<urn:GroupID>${GroupID}</urn:GroupID>
<urn:RequesterFullName>${RequesterFullName}</urn:RequesterFullName>
<urn:RequestreLogin>${RequesterLogin}</urn:RequestreLogin>
</urn:CreateNewIncident>
</soapenv:Body>
</soapenv:Envelope>
EOF
var exit = {'getClientInfoRqEncoded': getClientInfoTemplate.replace(/(\r\n|\n|\r)/gm,'')};
exit;
""")+
вызвать.внешнийСервис("{host}", "POST").сЗаголовками(("Content-Type", "text/xml;charset=UTF-8"),("SOAPAction","RTL:HPD:IncidentCreate")).сПараметрами(("server","skuf-ar"),("webService","RTL:HPD:IncidentCreate")).сТеломСообщения("{getClientInfoRqEncoded}").сохранитьРезультатКакСтроку("getClientInfoRs")+
комментарий("Запрос со статусом {http_code}")+
выполнитьJs("""
var parser = new marknote.Parser();
var doc = parser.parse(getClientInfoRs);
var error = 0;
var incNum = '';
var incDate = '';
var faultstring = '';
try {
incNum = doc.getRootElement().getChildElement("ns0:CreateNewIncidentResponse").getChildElement("ns0:Request_ID").getText();
incDate = doc.getRootElement().getChildElement("ns0:CreateNewIncidentResponse").getChildElement("ns0:Create_Date").getText();
} catch(e) {
error = 1;
}
try {
faultstring = doc.getRootElement().getChildElement("soapenv:Fault").getChildElement("faultstring").getText();
} catch(e) {
faultstring = '';
}
var exit = {'error': error, 'faultstring': faultstring, 'incDate':incDate, 'incNum':incNum};
exit;
""")+
если("{http_code} > 210").то(комментарий("Возникла ошибка при создании инцидента: {http_code}, {faultstring}")+
установитьПеременнуюВДиалог("a_incNum",значение = "-", название = "Номер инцидента", показыватьОператору = true, обязательное = false, редактируемое = false)+
установитьПеременнуюВДиалог("b_incDate",значение = "-", название = "Дата инцидента", показыватьОператору = true, обязательное = false, редактируемое = false)+
установитьПеременнуюВДиалог("c_incComment",значение = "", название = "Причина закрытия", показыватьОператору = true, обязательное = false, редактируемое = true)+
завершить)+
если("{error} == 1").то(комментарий("Возникла ошибка при создании инцидента. {faultstring}")+
установитьПеременнуюВДиалог("a_incNum",значение = "-", название = "Номер инцидента", показыватьОператору = true, обязательное = false, редактируемое = false)+
установитьПеременнуюВДиалог("b_incDate",значение = "-", название = "Дата инцидента", показыватьОператору = true, обязательное = false, редактируемое = false)+
установитьПеременнуюВДиалог("c_incComment",значение = "", название = "Причина закрытия", показыватьОператору = true, обязательное = truefalse, редактируемое = falsetrue)+
завершить)+
установитьПеременнуюкомментарий("priority", "{\"v1\": \"Blocker\", \"v2\": \"Critical\", \"v3\": \"Major\", \"v4\": \"Minor\"}") +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t1",
название = "Что вам нужно сделать: ",
тип = "Нередактируемый текст",
значение = "Заполните форму"
) +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t2",
название = "Название заявки",
тип = "Однострочный редактируемый текст",
описание = "Введите название заводимой заявки",
значение = "Введите",
обязательное = true
) +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t3",
название = "Критичность",
тип = "Выпадающий список",
описание = "Выберите из списка критичность заявки",
обязательное = true,
значение = "v3",
варианты = "{priority}"
) +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t4",
название = "Описание",
тип = "Многострочный редактируемый текст",
описание = "Опишите вашу проблему",
обязательное = true
) +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t5",
название = "Уведомить руководителя?",
тип = "Переключатель",
обязательное = false
) +
установитьПеременную("tags", "{\"v1\": \"Teacher\", \"v2\": \"Student\", \"v3\": \"Sales\", \"v4\": \"Tech\"}") +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t6",
название = "Теги",
тип = "Множественный выбор",
описание = "Выберите теги, которыми пометить обращение",
варианты = "{tags}",
обязательное = true
) +
добавитьПолеВФормуОператора(
форма = "Заведение заявки в Jira",
переменная = "t7",
тип = "Целое число",
название = "Частота возникновения проблемы",
описание = "% пользователей, у которых возникает проблема"
) +
показатьФормуОператору(имя = "Заведение заявки в Jira") +
комментарий("Вот что у нас получилось: {t2}, {t3}, {t4}")+
комментарий("Конец сценария интеграции!") |