Вычисляемое значение по умолчанию при создании

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Lanket
    Member
    • Jul 2019
    • 51

    Вычисляемое значение по умолчанию при создании

    Здравия всем желаю.

    В свойствах поля сущности можно задать значение по умолчанию.
    А появилась потребность чтобы при создании значение поля уже было заполнено вычисляемым значением.
    Или хотябы чтобы подставлялось значение поля из связанной сущности.

    Речь идёт о создании записи сущности из 'фрейма' 'отношения'.
    Иными словами при создании связь с другой сущность уже определена.

    Благодарю за любые указания направлений.
  • Maximus
    Senior Member
    • Nov 2018
    • 2731

    #2
    Здравствуйте.
    > Или хотябы чтобы подставлялось значение поля из связанной сущности.
    Можете попробовать создать подле типа "внешний" https://github.com/espocrm/documenta...BD%D0%B8%D0%B9.

    Comment

    • Lanket
      Member
      • Jul 2019
      • 51

      #3
      Originally posted by Maximus
      Здравствуйте.
      > Или хотябы чтобы подставлялось значение поля из связанной сущности.
      Можете попробовать создать подле типа "внешний" https://github.com/espocrm/documenta...BD%D0%B8%D0%B9.
      Не совсем подходит. Связанное поле нельзя редактировать. Да и при изменении его формулой меняется значение поля и в материнской сущности, соответственно и во всех дочерних.
      А надо чтобы при создании подставлялось значение из материнской связанной, и при редактировании никак не влияло на другие экземпляры.

      Comment

      • Maximus
        Senior Member
        • Nov 2018
        • 2731

        #4
        Ок. Тогда такой пример. В сущности "Сделки" создано поле типа "Строка" которое принимает значение поля Тип сущности контрагенты.
        Формула для сущности "Сделки":
        Code:
        ifThenElse(
            entity\isAttributeChanged('accountType'),
            accountType = accountType,
            ifThen(
                accountId,
                accountType = account.type
            )
        )
        Тоесть, если существует привязка Сделки к Контрагенту то будет вытянуто значение поля от Контрагента. Если данное поле будет изменено в сущности Сделки то изменения сохранятся не изменив при этом первоисточник.

        Примечание.
        Формула не является елементом динамической автоматизации. Это значить что если вы захотите к примеру изменить значение поля Тип в сущности Контрагент то эти изменения не затронут предидущее значение в сущности Сделки. Для этого придется вручную запустить функцию пересчет формулы.

        Comment

        • Lanket
          Member
          • Jul 2019
          • 51

          #5
          Originally posted by Maximus
          Ок. Тогда такой пример. В сущности "Сделки" создано поле типа "Строка" которое принимает значение поля Тип сущности контрагенты.
          Формула для сущности "Сделки":
          Code:
          ifThenElse(
          entity\isAttributeChanged('accountType'),
          accountType = accountType,
          ifThen(
          accountId,
          accountType = account.type
          )
          )
          Тоесть, если существует привязка Сделки к Контрагенту то будет вытянуто значение поля от Контрагента. Если данное поле будет изменено в сущности Сделки то изменения сохранятся не изменив при этом первоисточник.

          Примечание.
          Формула не является елементом динамической автоматизации. Это значить что если вы захотите к примеру изменить значение поля Тип в сущности Контрагент то эти изменения не затронут предидущее значение в сущности Сделки. Для этого придется вручную запустить функцию пересчет формулы.
          Классно. Благадарю. Завтра буду пробовать.
          А можно поподробнее про "запустить функцию пересчет формулы" как это сделать?
          И можно ли это делать из "Calculated Fields"?
          То есть не вручную а вызывать ее из "макроса" при изменении.
          Last edited by Lanket; 10-11-2019, 03:53 PM.

          Comment

          • Lanket
            Member
            • Jul 2019
            • 51

            #6
            Нашел где кнопка "запустить функцию пересчет формулы" .

            Но вопрос всиле:
            И можно ли это делать из "Calculated Fields"?
            То есть не вручную а вызывать ее из "макроса" при изменении.

            Comment

            • Maximus
              Senior Member
              • Nov 2018
              • 2731

              #7
              Чтобы это автоматизировать скорее всего нужно писать крюк (hook) https://github.com/espocrm/documenta...pment/hooks.md. Ну или использовать рабочие потоки (Workflow) https://www.espocrm.com/documentatio...ion/workflows/.
              Last edited by Maximus; 10-14-2019, 12:39 PM.

              Comment

              Working...