Время создания
Фильтры

Добрый день. Вопрос по поводу синхронизации с Google Календарем.

Настроена синхронизация и частично работает. 

Задачи созданные в Creatio при синхронизации появляются в GКалендаре. Если изменить в Задаче время, изменится и в GКалендаре.

Но Задачи созданные в GКалендаре при синхронизации не появляются в Creatio.

Так же, при удалении задачи в Creatio задача GКалендаре не удаляется.

Подскажите куда смотреть, в чем может быть проблема?

Нравится

2 комментария

Добрый день.

В данном вопросе необходимо проанализировать логи приложения в момент синхронизации задач созданных в GКалендаре.

 

Дополнительно, на время анализа, можно включить логгер Calendar на уровне отладки и проверить логи за время этой синхронизации. 

Для этого можно добавить строку в файл nlog.cloud:

< logger name=" Calendar " minlevel="Debug" writeTo="AdoNetBufferedAppender" />

 

Для более детального точечного анализа рекомендуем обратится в <support@creatio.com>.

Показать все комментарии

Добрий день. 

Умовно є два поля типу Дата\Час. Наприклад, TimeStart і TimeEnd

Потрібно налаштувати валідацію поля TimeStart, щоб значення не могло бути більшим за TimeEnd

До TimeStart прив'язаний валідатор. 

Як у коді валідатора отримати значення поля TimeEnd для порівняння

Підкажіть, будь ласка. 

Нравится

2 комментария

Ігорю, доброго дня!

На жаль, наразі немає можливості отримати у коді валідатора значення іншого поля (атрибуту) сторінки. Ми проінформували департамент R&D про необхідність додати таку можливість. 

Дякуємо, що допомагаєте покращувати нашу платформу!

Natalia Kalynovska,

Можливо є інші варіати вирішення мого завдання? підкажіть, будь ласка. 

Показать все комментарии

Добридень.

Підкажіть? будь ласка, що я роблю не так у клієнтському модулі.

diff: /**SCHEMA_DIFF*/[

{

    "operation": "merge",

    "name": "NotificationItemContainer",

    "values": {

        "controllСonfig": {

            "classes": {"bindTo": "GetMessageIsRead"}

        }

    }

}

]/**SCHEMA_DIFF*/,

methods: {

    GetMessageIsRead: function() {

        return this.get('IsRead') ? [] : ["not-read"]

    },



В результаті отримую class="[object Object]"

Дякую.

Нравится

3 комментария

Добрий день,

 

В результаті додавання коду Ви отримаєте

 

Terrasoft.ItemNotFoundException: Property controllСonfig is not defined in class Terrasoft.controls.Container 

 

а не class="[object Object]". class="[object Object]" Ви отримуєте в результаті виконання якоїсь іншої логіки.

Oscar Dylan,

Дякую за пояснення. А як мені в контейнер у classList додати класс?

          "classes": {

            "wrapClassName": ["profile-container"]

          }

Показать все комментарии

Добрий день. 

Підкажіть, будь ласка, як у валідаторі поріняти значення поля до я кого прив'язаний валідатор з іншим полем. 

Приклад. На сторінці (Freedom UI) є дві дати:

Дата завершення проекту

Дата завершення завдання, 

Потрібно налаштувати валідацію поля "Дата завершення завдання", щоб вона не перевищувала дату завершення проетку. 







"usr.UniversalDateValidator": {

        validator: function (config) {

        return function (control) {

            let minValue = new Date(config.minValue);

            let controlDate = new Date(control.value);

            let isDateValid = controlDate >= minValue;

            var result;

            if (isDateValid) {

                result = null;

            } else {

                result = {

                    "usr.UniversalDateValidator": { 

                        message: config.message || "Введена дата не відповідає умовам"

                    }

                };

            }

            return result;

        };

    },

    params: [

        {

            name: "minValue"

        },

        {

            name: "message"

        }

    ],

    async: false

}

Нравится

3 комментария

Добрий день,

 

При умові, що дві дати отримано коректно, далі треба використати стандартний підхід до порівняння двох дат в JS (наприклад, як описано ось тут https://www.freecodecamp.org/news/javascript-date-comparison-how-to-com…), а на основі порівняння проставляти isDateValid значення.

Oscar Dylan,

Дякую, не зовісім коректно сформулював питання.  Мене цікавть якраз як коректно отримати другу дату у коді валідатора. Допоможіть, будь ласка. 

Oscar Dylan,

Я пробую отак:

var timeStartValue = control.parent.get("DateTimeAttribute_84s5bhk").value;

але отримую помилку Cannot read properties of undefined (reading 'get') Cannot read properties of undefined (reading 'get)

Показать все комментарии

Допоможіть, будь ласка, розібратись з валідаторам.

Прив'язав валідатор до поля типу ДатаЧас у сторінці створення запису. Сторінка відкривається, алідатор працює,  але через частинку коду у блоці viewModelConfigDiff не відкривається дизайнер цієї сторінки (Якщо цю частину закоментувати - відкривається). Використаний код додаю. 



У блоці стоінки viewModelConfigDiff прив'язав валідатор до поля



"DateTimeAttribute_qc2mfzm": {

                        "modelConfig": {

                            "path": "UsrAppNewTasksDS.UsrDateDeadline"

                        },

                        

                        

                        "validators": {

                                   "MyDateValidator": {

                                        "type": "usr.UniversalDateValidator",

                                            "params": {

                                                        "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), 

                                                        "message": "Термін виконання завдання не може бути меншим ніж 3 години."

                                                    }

                                                        }

                                            }            

            

                        

                    },





В блоці validators: 



"usr.UniversalDateValidator": {

        validator: function (config) {

        return function (control) {

            let minValue = new Date(config.minValue);

            let controlDate = new Date(control.value);

            let isDateValid = controlDate >= minValue;

            var result;

            if (isDateValid) {

                result = null;

            } else {

                result = {

                    "usr.UniversalDateValidator": { 

                        message: config.message || "Введена дата не відповідає умовам"

                    }

                };

            }

            return result;

        };

    },

    params: [

        {

            name: "minValue"

        },

        {

            name: "message"

        }

    ],

    async: false

}

            

               

Нравится

2 комментария
Лучший ответ

Проблема в "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), в параметрах валідатора в атрибуті. Якщо його прописати текстом (наприклад "2023-12-10"), то дизайнер відкривається. Перенесіть, будь ласка, цю перевірку в середину логіки валідатора (там де if (isDateValid) {), а не передавайте в config.

Добрий день,

 

Яка помилка виникає при спробі відкрити дизайнер (в консолі)? Ви робили відладку помилки?

Проблема в "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), в параметрах валідатора в атрибуті. Якщо його прописати текстом (наприклад "2023-12-10"), то дизайнер відкривається. Перенесіть, будь ласка, цю перевірку в середину логіки валідатора (там де if (isDateValid) {), а не передавайте в config.

Показать все комментарии