Добрый день!
Суть такова. В системе есть справочник в который занесены номера недель и соответствующие им календарные даты. (Например: Номер недели: 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 можно решить.
Поделились же, в первом и втором комментарии.
Если Вы хотите разработать самостоятельно, в академии есть обучающие курсы в том числе и по процессам.