Добрый день!
Суть такова. В системе есть справочник в который занесены номера недель и соответствующие им календарные даты. (Например: Номер недели: 3; Дата: 14.01.2019 - 18.01.2019).
Есть ли возможность каким-либо образом, автоматически обновлять значения справочника, т.е. когда календарный год закончится, значения дат соответствующих неделе дней изменились на актуальные? Если можно это реализовать через бизнес-процесс, то посоветуйте, пожалуйста, как.
Нравится
Возможность есть
1 БП запускайте по расписанию
2 С помощью элемента формула можно получить номер текущей неделе дальше обновить или что вам нужно сделать с этой записью
По работе в формуле с датами более подробно смотри тут
Возможность есть
1 БП запускайте по расписанию
2 С помощью элемента формула можно получить номер текущей неделе дальше обновить или что вам нужно сделать с этой записью
По работе в формуле с датами более подробно смотри тут
Накидал на C# скрипт, который выдает список с данными (неделя, начало, конец, год). осталось вызывать раз в год
var data = WeekWorker.GetYearWeekData(2019);
и данные парсить в справочник
using System; using System.Collections.Generic; using System.Globalization; namespace TestApp { public class WeekData { public int year { get; set; } public int week { get; set; } public DateTime weekStart { get; set; } public DateTime weekEnd { get; set; } } public class WeekWorker { public static List<WeekData> GetYearWeekData(int year) { var weeksdata = new List<WeekData>(); int weeks = GetWeeksInYear(year); for (int i = 1; i <= weeks; i++) { var firstDay = FirstDateOfWeekISO8601(year, i); var lastDay = firstDay.AddDays(6); weeksdata.Add(new WeekData() { year = year, week = i, weekStart = firstDay, weekEnd = lastDay }); } return weeksdata; } public static int GetWeeksInYear(int year) { DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; DateTime date1 = new DateTime(year, 12, 31); Calendar cal = dfi.Calendar; int weeks = cal.GetWeekOfYear(date1, dfi.CalendarWeekRule, dfi.FirstDayOfWeek); return weeks; } public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear) { DateTime jan1 = new DateTime(year, 1, 1); int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek; // Use first Thursday in January to get first week of the year as // it will never be in Week 52/53 DateTime firstThursday = jan1.AddDays(daysOffset); var cal = CultureInfo.CurrentCulture.Calendar; int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); var weekNum = weekOfYear; // As we're adding days to a date in Week 1, // we need to subtract 1 in order to get the right date for week #1 if (firstWeek == 1) { weekNum -= 1; } // Using the first Thursday as starting week ensures that we are starting in the right year // then we add number of weeks multiplied with days var result = firstThursday.AddDays(weekNum * 7); // Subtract 3 days from Thursday to get Monday, which is the first weekday in ISO8601 return result.AddDays(-3); } } }
Григорий Чех пишет:
Возможность есть
1 БП запускайте по расписанию
2 С помощью элемента формула можно получить номер текущей неделе дальше обновить или что вам нужно сделать с этой записью
По работе в формуле с датами более подробно смотри тут
Расскажите, пожалуйста, подробнее про то как построить такой БП, а то я не понимаю какие элементы там должны присутствовать.
Все доступные в дизайнере элементы процесса описаны в руководстве.
Если Вы хотите заказать разработку такой логики полностью «под ключ», лучше будет заказать её у одной из компаний, зарегистрированных в маркете в каталоге услуг.
Добавить комментарий
Зверев Александр пишет:
Все доступные в дизайнере элементы процесса описаны в руководстве.
Если Вы хотите заказать разработку такой логики полностью «под ключ», лучше будет заказать её у одной из компаний, зарегистрированных в маркете в каталоге услуг.
Мало ли кто-то из комьюнити уже реализовывал схожий процесс и поделится опытом на безвозмездной основе. За деньги вообще, мне кажется, все связанное с CRM можно решить.
Поделились же, в первом и втором комментарии.
Если Вы хотите разработать самостоятельно, в академии есть обучающие курсы в том числе и по процессам.