JS проверка поля в реестре
Всем привет!
Сейчас пытаюсь написать скрипт, который будет проверять дату выполнения в реестрах, и по условию рассылать напоминания, запнулся на том, что просто не могу проверить поле с датой выполнения, кто-то может подсказать, как это правильно делается?
[collapse]
var site = siteService.getSite('chairman');
var cont = site.getContainer('dataLists');
var repoList = cont.children[2];
for each( item in repoList.children )
{
for each( item in repoList.children )
{
for each (prop in item.properties) {
print("item: "+item);
if(prop){ //а вот тут должно быть что-то вроде prop==dueDate, и дальше проверка на сколько дата отличается от текущей.
print("prop: "+prop);
}
}
}
}
скрин карточки документа
http://joxi.ru/KAxVXVnS80Dkm8
Console output
prop: belskii
prop: true
prop: true
prop: Письмо
prop: notStarted
prop: ru_RU
prop: workspace
prop: Рога и копыта
prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: Выполнять!
prop: 30942dd6-48f3-4e76-a6bf-3ccd5044ee02
prop: belskii
prop: 2
prop: Mon Feb 09 2015 08:41:22 GMT-0500 (EST)
prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: true prop: 1 prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: 2
prop: MAJOR
prop: Mon Feb 09 2015 08:41:21 GMT-0500 (EST)
prop: SpacesStore
prop: Письмо, про то, как проверять поля.
prop: 35668
prop: 1.0
[/collapse]
Сейчас пытаюсь написать скрипт, который будет проверять дату выполнения в реестрах, и по условию рассылать напоминания, запнулся на том, что просто не могу проверить поле с датой выполнения, кто-то может подсказать, как это правильно делается?
[collapse]
var site = siteService.getSite('chairman');
var cont = site.getContainer('dataLists');
var repoList = cont.children[2];
for each( item in repoList.children )
{
for each( item in repoList.children )
{
for each (prop in item.properties) {
print("item: "+item);
if(prop){ //а вот тут должно быть что-то вроде prop==dueDate, и дальше проверка на сколько дата отличается от текущей.
print("prop: "+prop);
}
}
}
}
скрин карточки документа
http://joxi.ru/KAxVXVnS80Dkm8
Console output
prop: belskii
prop: true
prop: true
prop: Письмо
prop: notStarted
prop: ru_RU
prop: workspace
prop: Рога и копыта
prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: Выполнять!
prop: 30942dd6-48f3-4e76-a6bf-3ccd5044ee02
prop: belskii
prop: 2
prop: Mon Feb 09 2015 08:41:22 GMT-0500 (EST)
prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: true prop: 1 prop: Sun Feb 08 2015 17:00:00 GMT-0500 (EST)
prop: 2
prop: MAJOR
prop: Mon Feb 09 2015 08:41:21 GMT-0500 (EST)
prop: SpacesStore
prop: Письмо, про то, как проверять поля.
prop: 35668
prop: 1.0
[/collapse]
Комментарии
09/02/2015 - 21:05
[collapse]
var site = siteService.getSite('chairman');
var cont = site.getContainer('dataLists');
var repoList = cont.children[0];
var currentDate = new Date();
var executionDate = "{http://alvexcore.com/prefix/belskii_alvexdtCustom}executionDate";
var mail = actions.create("mail");
mail.parameters.to = "belskii@example.com";
mail.parameters.subject = "Контроль по реестрам";
mail.parameters.from = "alfresco@example.com";
var message=[];
for each( repoName in cont.children ) {
for each( item in repoName.children ) {
try {
var differenceDate=((item.properties[executionDate].getTime()-currentDate.getTime())/86400000)
if ( differenceDate<0) {
message.push("Для документа № "+item.properties["{http://www.alfresco.org/model/content/1.0}name"]+"в реестре "+repoName.properties.title+" выполнение просрочена на " + differenceDate+ " дней");
} else if(differenceDate<3 && differenceDate>=0){
message.push("Для документа № "+item.properties["{http://www.alfresco.org/model/content/1.0}name"]+"в реестре "+repoName.properties.title+" крайний срок выполнения наступит через " + differenceDate+ " дней");
};
} catch(err){
//print("нет даты выполнения");
}
}
}
print (message);
mail.parameters.text = message
mail.execute(companyhome); //отправка писем не оттетсирована, в продакшене не запускать
[/collapse]
10/02/2015 - 16:59
Если для обычных я пишу
item.properties["{http://www.alfresco.org/model/content/1.0}name"] и получаю касивый номер, то
item.assocs["{http://alvexcore.com/prefix/belskii_alvexdtCustom}assignees"] возвращает что-то вроде
0 : b59f3f33-1b3f-4d3c-8415-676aaad50fc0 (workspace://SpacesStore/b59f3f33-1b3f-4d3c-8415-676aaad50fc0)
Я так догадываюсь, что b59f3f33-1b3f-4d3c-8415-676aaad50fc0 - это что-то вроде person.properties.name (если брать getUser)
Но как c этим айди выйти на полноценный объект пользователя?