Пользователь
Логин:
Пароль:
Забыли свой пароль?

Поиск по сайту
 

 Расширенный поиск
Реклама

 

Опрос


Погода

dauren (все сообщения)

Форумы
Обновления
Поиск
Пользователи 
Правила
Помощь
Войти

Выбрать дату в календаре ...  Выбрать дату в календаре

Страницы: 1 2 След.
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Василий, спасибо большое за советы!!

Итак, по действиям:

1. Правило работает, поставил отправку email - приходит, но причем работает только тогда, когда отсутствует первоначальное действие установки статуса зни "Выполнен".
Но правило хотя бы работает и это радует.

2. Установил wireshark, запустил, но результат мне ни о чем не говорит. Отправляется rfcAccomplishmentCheck.jsp через HTTP, обратно с того IP приходит текст 200 OK. И плюс еще что-то по TCP - не могу разобрать.

Лог все так же выдает "Размер массива, полученного от External Data Provider не верен"

В браузере ни скрипт, ни наряды, ни изменения не открываются. Выдает "Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error". Но с этим сейчас разбираемся
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Так, я захожу под тем логином, что указан в скрипте.
ЗНИ и наряды открываются как обычно (до этого наряды имели странный вид, но оказалось, что это просто один иш шаблонов открывался, сейчас все ок).
Под данным логином могу изменять и ЗНИ, и подчиненные наряды. Вот "выполнил" все наряды, и статус ЗНИ тоже перевожу в "Выполнен". Сохраняю и закрываю - все работает, но только вручную smile:(
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Действие оказывается есть (не знаю даже куда смотрел раньше):

"Статус связанного изменения = "Выполнено" если все наряды выполнены (Обновление данных из внешней системы)"

В URL указана ссылка на "rfcAccomplishmentCheck.jsp"

Выгрузка во внешнюю систему: "Изменение Sub[ID]"

В загрузке из внешней системы пусто.


Насколько я понимаю, получается что, в ошибке имеется в виду размер массива "Workorder[] WOs" в "rfcAccomplishmentCheck.jsp" ??
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
а вот в правиле как раз никаких действий нету. есть "назначение", "когда" и "условие".
спасибо за совет со снифером! попробуем smile:)
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Первые две строки выглядят вот так и почему-то не отображаются в предыдущем посте

page contentType="text/html; charset=UTF-8"%>
page import="com.hp.itsm.api.*,com.hp.itsm.api.ApiSDSession,com.hp.itsm.api.interfaces.*, java.net.*"%>
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Если честно, я такого здесь не вижу. Вот весь скрипт на правило. Может дело во второй строке (см следующий пост)?


<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="com.hp.itsm.api.*,com.hp.itsm.api.ApiSDSession,com.hp.itsm.api.interfaces.*, java.net.*"%>
<%
ApiSDSession msession = null;
// настройки соединения с Service Desk 4.5
String server = new String("*******");
String username = new String("*******");
String password = new String("*******");

msession = ApiSDSession.openSession(server, username, password);

long rfcId = 0;

// получаем ID ЗНИ из входного параметра скрипта
rfcId = Long.valueOf(request.getParameter("output_field_value_0")).longValue();

// открываем ЗНИ
IChangeHome rfcHome = msession.getChangeHome();
IChange rfc = null;
try
{
rfc = rfcHome.openChange(rfcId);
}
catch (RuntimeException e)
{
msession.closeConnection();
out.print("n_fields=1&field_0=");
return;
}
try
{
IWorkorder[] WOs = rfc.getWorkorders();
boolean isAllWorkordersDone = true;
for(int i=0; i<WOs.length; i++)
{
if(WOs[i].getStatus().getText() != "Выполнен")
isAllWorkordersDone = false;
}
if(isAllWorkordersDone = true && rfc.getStatus().getText() != "Закрыт")
{
String closedChangeStatusSring = "Выполнен";
IStatusChangeHome closedStatusChangeHome = msession.getStatusChangeHome();
IStatusChangeWhere closedStatusChangeWhere = closedStatusChangeHome.createStatusChangeWhere();
closedStatusChangeWhere.addCriteriumOnText(closedChangeStatusSring);
IStatusChange[] allClosedStatusChange = closedStatusChangeHome.findStatusChange(closedStatusChangeWhere);
IStatusChange closedStatusChange=allClosedStatusChange[0];

rfc.setStatus(closedStatusChange);
rfc.save();
}
}
catch (RuntimeException e)
{
msession.closeConnection();
out.print(e.getMessage() +" n_fields=1&field_0=");
return;
}
msession.closeConnection();
out.print("n_fields=1&field_0=");
%>
Изменено: dauren - 25.07.2011 14:16:14
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Василий, вы случайно не знаете, что может означать РАЗМЕР МАССИВА и EXTERNAL DATA PROVIDER в среднем абзаце? Очень надеюсь на ваше помощь


Пн, 25/07/2011 12:25:55 <RuleManager> Rule "Статус связанного изменения = "Выполнено" если все наряды выполнены" condition: Статус (*) равен Выполнен (value: Выполнен): true
Пн, 25/07/2011 12:25:55 <RuleManager> Rule "Статус связанного изменения = "Выполнено" если все наряды выполнены" condition: НЕ (Изменение пустой) (value: фывфыв): true
Пн, 25/07/2011 12:25:55 <DBRuleManager> Rule "Статус связанного изменения = "Выполнено" если все наряды выполнены" was valid, execute the actions

Пн, 25/07/2011 12:25:56 <Trace> Правило "Статус связанного изменения = "Выполнено" если все наряды выполнены" действие "Статус связанного изменения = "Выполнено" если все наряды выполнены" дают ошибку: Размер массива, полученного от External Data Provider не верен.

Пн, 25/07/2011 12:25:56 <DBRuleManager> Evaluate Rule: "Установить статус последующего наряда "Новый" при выполнении предыдущего При создании наряды
ИЛИ При изменении наряды
где Статус (*) равен Выполнен" not executed (changed attributes not in condition)
Пн, 25/07/2011 12:25:56 <DBRuleManager> Evaluate Rule: "Статус связанного изменения = "Выполнено" если все наряды выполнены При создании наряды
ИЛИ При изменении наряды
где Статус (*) равен Выполнен
И НЕ (Изменение пустой)" not executed (changed attributes not in condition)
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
А, теперь понятно. наконец-то до меня дошло!

Зашел под этим логином, Change Request открывается в обычном виде, а вот Наряд - нет, в маленьком окне с тремя полями, среди которых Статуса нету
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
В административной консоли убрал все обязательные поля, остались только Рабочая группа и Описание. Все равно не работает.
Просмотрел лог клиента, но он выполнение этого скрипта даже и не показывает
Автоматическая установка статуса ЗНИ "Выполнен" (rfcAccomplishmentCheck)
Забыл упомянуть, что работаю на тестовом сервере.

Пароль действительно указывается в этом самом файле:

ApiSDSession msession = null;
String server = new String("___");
String username = new String("___");
String password = new String("___");


Сам я не админ, но меня уверили, что проблема не в сессиях и не в локализации.

Очень интересует 4 пункт. А какая часть данного скрипта подвергается изменениям при добавлении Required fields?
Страницы: 1 2 След.

Сегодня были (гостей: 8, пользователей: 0, из них скрытых: 0)