есть бизнес кейс, очень понятный по логике, но не понятно как сделать это, и есть ли у СФ какой-то стандартный функционал для этого.
вот представьте, что есть город, и у каждого жителя каждый день в 12 часов нужно замерять температуру и куда-то ее записывать. таким образом через месяц можно проследить динамику температуры у одного жителя в течение месяца, или сказать какой была средняя температура по городу в начале месяца, и какая она была в конце. все понятно.
ну и теперь представим, что житель - это запись в системе, температура - это какое -то поле, значение которого нужно ежедневно записывать куда-то, и не важно изменилось оно или нет.
т.е. каждый день нужно куда-то сохранять значение ключевых полей со все записей таким образом, чтобы потом можно было прикладывать к ним стандартные репорты и видеть динамику во времени.
у меня в голове только кастомные решения, и клиенты удивляются что в СФ нет стандартного функционала для такой задачи
есть бизнес кейс, очень понятный по логике, но не понятно как сделать это, и есть ли у СФ какой-то стандартный функционал для этого. вот представьте, что есть город, и у каждого жителя каждый день в 12 часов нужно замерять температуру и куда-то ее записывать. таким образом через месяц можно проследить динамику температуры у одного жителя в течение месяца, или сказать какой была средняя температура по городу в начале месяца, и какая она была в конце. все понятно. ну и теперь представим, что житель - это запись в системе, температура - это какое -то поле, значение которого нужно ежедневно записывать куда-то, и не важно изменилось оно или нет. т.е. каждый день нужно куда-то сохранять значение ключевых полей со все записей таким образом, чтобы потом можно было прикладывать к ним стандартные репорты и видеть динамику во времени. у меня в голове только кастомные решения, и клиенты удивляются что в СФ нет стандартного функционала для такой задачи
Создать объект Temperature_Measurement - с lookup на жителя, и соответственно, с полями температура и дата измерения.
[quote="Den Brown"]житель - это запись в системе, температура - это какое -то поле, значение которого нужно ежедневно записывать куда-то, и не важно изменилось оно или нет.[/quote] Создать объект [b]Temperature_Measurement[/b] - с lookup на жителя, и соответственно, с полями [b]температура[/b] и [b]дата измерения[/b].
и другими полями, которые нужно замерить с жителя
это и есть план кастомного решения. у него есть недостатки: кол-во записей в Temperature_Measurement будет равно количеству жителей * пройденные дни, что может быть многовато
можно конечно, сделать одну Temperature_Measurement запись на жителя на год, и в какое-то большое текстовое поле дописывать измерения:
01012021:36.6
02012021:36.7
но к такой записи уже не приложить стандартные репорты и дешборды
говорят в Service Now есть для этого всего стандартное решение, может и в СФ есть
[quote="Sergey Rusetsky."]с полями температура[/quote] и другими полями, которые нужно замерить с жителя это и есть план кастомного решения. у него есть недостатки: кол-во записей в Temperature_Measurement будет равно количеству жителей * пройденные дни, что может быть многовато можно конечно, сделать одну Temperature_Measurement запись на жителя на год, и в какое-то большое текстовое поле дописывать измерения: 01012021:36.6 02012021:36.7 но к такой записи уже не приложить стандартные репорты и дешборды говорят в Service Now есть для этого всего стандартное решение, может и в СФ есть
мне кажется ты слишком привязался к решению
зачем записывать повторяющиеся данные, если допустим у 95% всегда будет температура 36.6?
крч как по мне можно просто повесить на все нужные поля галочку чтобы сэйлсфорс хистори вел и вуаля у тебя есть все данные
при отрисовке графика просто для каждого дня селектишь или текущее значение (если хистори еще нет - оно не менялось) или последнее изменение из хистори ДО 12 часов Х дня - оно и будет то значение которое было в 12. И не важно изменение произошло год или 5 минут до этого
мне кажется ты слишком привязался к решению зачем записывать повторяющиеся данные, если допустим у 95% всегда будет температура 36.6? крч как по мне можно просто повесить на все нужные поля галочку чтобы сэйлсфорс хистори вел и вуаля у тебя есть все данные при отрисовке графика просто для каждого дня селектишь или текущее значение (если хистори еще нет - оно не менялось) или последнее изменение из хистори ДО 12 часов Х дня - оно и будет то значение которое было в 12. И не важно изменение произошло год или 5 минут до этого
использование хистори было первой мыслью, но можно ли сделать вот это все:
при помощи стандартных репортов?
я уже думаю, что давайте говорите какие именно операционные метрики вы хотите видеть, и каждый день писать эти скалькулированные данные (сколько больных было в этот день, сколько времени люди спали в среднем) в какой то объект, и прикладывать репорты к нему.
использование хистори было первой мыслью, но можно ли сделать вот это все: [quote="Андрей"]при отрисовке графика просто для каждого дня селектишь или текущее значение (если хистори еще нет - оно не менялось) или последнее изменение из хистори ДО 12 часов Х дня - оно и будет то значение которое было в 12. И не важно изменение произошло год или 5 минут до этого[/quote] при помощи стандартных репортов? я уже думаю, что давайте говорите какие именно операционные метрики вы хотите видеть, и каждый день писать эти скалькулированные данные (сколько больных было в этот день, сколько времени люди спали в среднем) в какой то объект, и прикладывать репорты к нему.
я думал что стандартные репорты сразу были выкинуты из вариантов
наверно в этом вопросе проще сделать кастомный репортинг тул чем все это хранить для стандартного репорта
я думал что стандартные репорты сразу были выкинуты из вариантов :D наверно в этом вопросе проще сделать кастомный репортинг тул чем все это хранить для стандартного репорта
задачу можно разделить на две:
(1) срез операционных данных по дням по всем записям и тогда можно:
(2) динамика какого-то параметра у одной записи во времени. как уже сказано, тут можно использовать field history (вроде только два года хранится), но далее придется:
(2-1) делать кастомный репорт чтобы вывести такие данные.
(2-2) или в момент нажатия кнопки Показать репорт, код делает вычисление значений по дням исходя из field history и создает несколько сотен записей (одна запись - один день) в спец кастомный чайлд объект и затем открывает стандартный репорт, работающий с этими записями. Ночью ранится код который удаляет все записи из этого спец кастомного чайлд объекта, те никакого накопления избыточных данных не происходит.
задачу можно разделить на две: (1) срез операционных данных по дням по всем записям и тогда можно: [quote="Den Brown"]каждый день писать эти скалькулированные данные (сколько больных было в этот день, сколько времени люди спали в среднем) в какой то объект, и прикладывать стандартный репорты к нему[/quote] (2) динамика какого-то параметра у одной записи во времени. как уже сказано, тут можно использовать field history (вроде только два года хранится), но далее придется: (2-1) делать кастомный репорт чтобы вывести такие данные. (2-2) или в момент нажатия кнопки Показать репорт, код делает вычисление значений по дням исходя из field history и создает несколько сотен записей (одна запись - один день) в спец кастомный чайлд объект и затем открывает стандартный репорт, работающий с этими записями. Ночью ранится код который удаляет все записи из этого спец кастомного чайлд объекта, те никакого накопления избыточных данных не происходит.
Опять запущу свой шарманку.
SF не подходит для такого рода задач. База данных не рассчитана на такой тип данных.
Используй правильный инструменты:
https://en.wikipedia.org/wiki/Time_series_database
https://www.influxdata.com/time-series-database/
Но можно и просто обычный Postgres/MySQL. Благо база ограничивается только твоей фантазией и размером файлового хранилища.
Данные сливать в такую базу данные, и навесить какой API по верх это базы чтобы отдавать SF нужные данные в нужном формате.
Опять запущу свой шарманку. SF не подходит для такого рода задач. База данных не рассчитана на такой тип данных. Используй правильный инструменты: https://en.wikipedia.org/wiki/Time_series_database https://www.influxdata.com/time-series-database/ Но можно и просто обычный Postgres/MySQL. Благо база ограничивается только твоей фантазией и размером файлового хранилища. Данные сливать в такую базу данные, и навесить какой API по верх это базы чтобы отдавать SF нужные данные в нужном формате.
ничего выдумывать не надо, оказывается все, как и следовало ожидать, уже есть в стандарте: (1) срез операционных данных по дням по всем записям это [b]Reporting Snapshots[/b] - это какой-то твой репорт который пишет данные в твой кастомный объект, к котором позже ты прикладываешь какие хочешь репорты (2) динамика какого-то параметра у одной записи во времени - это [b]Historical Trending[/b], у которого уже есть стандартные репорты, и вполне ожидаемо есть ограничение по долготе хранения данных - 3 месяца