Добрый день!

У одного из клиентов для сущностей: Лид, Контакт, Контрагент имеются обязательные поля.

Соответственно при попытке добавить сущность по протоколу OData получаем ошибку: такое то поле является обязательным.

Вопрос: как через OData получить список обязательных полей для сущностей Lead, Contact, Account ?

06.48.2017 14:48:26,472  INFO BpmConnector:56 - 11 * Sending client request on thread http-nio-8443-exec-3
11 > POST https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataS... > Accept: application/atom+xml;type=entry;charset=utf-8
11 > Authorization: Basic TWFyaW5hOk1hUmlONGlL
11 > Content-Type: application/json;odata=verbose;type=entry
{"LeadName":null,"Contact":"Новый контакт","MobilePhone":"+380991112233","CreatedBy":null,"ModifiedBy":null,"Owner":null}

06.48.2017 14:48:26,758  INFO BpmConnector:56 - 12 * Client response received on thread http-nio-8443-exec-3
12 500
12 Cache-Control: no-cache
12 Content-Length: 724
12 Content-Type: application/xml;charset=utf-8
12 DataServiceVersion: 1.0;
12 Date: Mon, 06 Feb 2017 12:48:23 GMT
12 Server: Microsoft-IIS/8.5
12 Set-Cookie: BPMSESSIONID=0azjot4gqr0dqjmvcln4k0ri; path=/; HttpOnly
12 X-AspNet-Version: 4.0.30319
12 X-Content-Type-Options: nosniff
12 X-Frame-Options: SAMEORIGIN
12 X-Powered-By: ASP.NET
3Поле Email является обязательным для заполненияПоле Email является обязательным для заполненияTerrasoft.Core.Entities.RequiredColumnsEmptyValuesException   at Terrasoft.Core.Entities.Services.ServiceContext.SaveChanges()
   at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)
   at System.Data.Services.DataService`1.HandleRequest()

Нравится

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

Добрый день.

Вопрос получения списка обязательных полей через OData требует более глубокого анализа. Рекомендуем обратиться в Техническую поддержку Террасофт.

С уважением,
Группа компаний Terrasoft

Здравствуте!

Обратите внимание на статью Queryable OData Metadata

"Терещук Павел" написал:

Здравствуте!

Обратите внимание на статью Queryable OData Metadata


Могу выполнить только такой запрос

https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataService.svc/$metadata

У меня у лида обязательным полем является email.

<EntityType Name="Lead">
                <Key>
                    <PropertyRef Name="Id" />
                </Key>
                <Property Name="Id" Type="Edm.Guid" Nullable="false" />
                <Property Name="LeadName" Type="Edm.String" />
                <Property Name="CreatedOn" Type="Edm.DateTime" />
                <Property Name="CreatedById" Type="Edm.Guid" />
                <Property Name="ModifiedOn" Type="Edm.DateTime" />
                <Property Name="ModifiedById" Type="Edm.Guid" />
                <Property Name="ProcessListeners" Type="Edm.Int32" />
                <Property Name="Notes" Type="Edm.String" />
                <Property Name="Account" Type="Edm.String" />
                <Property Name="Contact" Type="Edm.String" />
                <Property Name="TitleId" Type="Edm.Guid" />
                <Property Name="FullJobTitle" Type="Edm.String" />
                <Property Name="StatusId" Type="Edm.Guid" />
                <Property Name="InformationSourceId" Type="Edm.Guid" />
                <Property Name="IndustryId" Type="Edm.Guid" />
                <Property Name="AnnualRevenueId" Type="Edm.Guid" />
                <Property Name="EmployeesNumberId" Type="Edm.Guid" />
                <Property Name="BusinesPhone" Type="Edm.String" />
                <Property Name="MobilePhone" Type="Edm.String" />
                <Property Name="Email" Type="Edm.String" />
                <Property Name="Fax" Type="Edm.String" />
                <Property Name="Website" Type="Edm.String" />
                <Property Name="AddressTypeId" Type="Edm.Guid" />
                <Property Name="CountryId" Type="Edm.Guid" />
                <Property Name="RegionId" Type="Edm.Guid" />
                <Property Name="CityId" Type="Edm.Guid" />
                <Property Name="Zip" Type="Edm.String" />
                <Property Name="Address" Type="Edm.String" />
                <Property Name="DoNotUseEmail" Type="Edm.Boolean" />
                <Property Name="DoNotUsePhone" Type="Edm.Boolean" />
                <Property Name="DoNotUseFax" Type="Edm.Boolean" />
                <Property Name="DoNotUseSMS" Type="Edm.Boolean" />
                <Property Name="DoNotUseMail" Type="Edm.Boolean" />
                <Property Name="Commentary" Type="Edm.String" />
                <Property Name="QualifiedContactId" Type="Edm.Guid" />
                <Property Name="QualifiedAccountId" Type="Edm.Guid" />
                <Property Name="LeadTypeId" Type="Edm.Guid" />
                <Property Name="LeadTypeStatusId" Type="Edm.Guid" />
                <Property Name="LeadDisqualifyReasonId" Type="Edm.Guid" />
                <Property Name="AccountCategoryId" Type="Edm.Guid" />
                <Property Name="AccountOwnershipId" Type="Edm.Guid" />
                <Property Name="DepartmentId" Type="Edm.Guid" />
                <Property Name="GenderId" Type="Edm.Guid" />
                <Property Name="JobId" Type="Edm.Guid" />
                <Property Name="DecisionRoleId" Type="Edm.Guid" />
                <Property Name="QualifyStatusId" Type="Edm.Guid" />
                <Property Name="Dear" Type="Edm.String" />
                <Property Name="QualificationProcessId" Type="Edm.Guid" />
                <Property Name="OwnerId" Type="Edm.Guid" />
                <Property Name="RemindToOwner" Type="Edm.Boolean" />
                <Property Name="SalesOwnerId" Type="Edm.Guid" />
                <Property Name="Budget" Type="Edm.Decimal" />
                <Property Name="MeetingDate" Type="Edm.DateTime" />
                <Property Name="DecisionDate" Type="Edm.DateTime" />
                <Property Name="ShowDistributionPage" Type="Edm.Boolean" />
                <Property Name="RegisterMethodId" Type="Edm.Guid" />
                <Property Name="LeadSourceId" Type="Edm.Guid" />
                <Property Name="LeadMediumId" Type="Edm.Guid" />
                <Property Name="OpportunityDepartmentId" Type="Edm.Guid" />
                <Property Name="IdentificationPassed" Type="Edm.Boolean" />
                <Property Name="StartLeadManagementProcess" Type="Edm.Boolean" />
                <Property Name="SaleType" Type="Edm.String" />
                <Property Name="Score" Type="Edm.Decimal" />
                <Property Name="QualificationPassed" Type="Edm.Boolean" />
                <Property Name="CountryStr" Type="Edm.String" />
                <Property Name="RegionStr" Type="Edm.String" />
                <Property Name="CityStr" Type="Edm.String" />
                <Property Name="WebFormId" Type="Edm.Guid" />
                <Property Name="BpmHref" Type="Edm.String" />
                <Property Name="BpmRef" Type="Edm.String" />
                <Property Name="Qualified" Type="Edm.Int32" />
                <Property Name="SaleParticipant" Type="Edm.Int32" />
                <Property Name="QualifiedPercent" Type="Edm.Decimal" />
                <Property Name="SalePercent" Type="Edm.Decimal" />
                <Property Name="OrderId" Type="Edm.Guid" />
                <Property Name="OpportunityId" Type="Edm.Guid" />
                <NavigationProperty Name="CreatedBy" Relationship="Terrasoft.Configuration.Lead_CreatedBy" ToRole="CreatedBy" FromRole="Lead" />
                <NavigationProperty Name="ModifiedBy" Relationship="Terrasoft.Configuration.Lead_ModifiedBy" ToRole="ModifiedBy" FromRole="Lead" />
                <NavigationProperty Name="Title" Relationship="Terrasoft.Configuration.Lead_Title_ContactSalutationType_LeadCollectionByTitle" ToRole="ContactSalutationType_LeadCollectionByTitle" FromRole="Lead_Title" />
                <NavigationProperty Name="Status" Relationship="Terrasoft.Configuration.Lead_Status_LeadStatus_LeadCollectionByStatus" ToRole="LeadStatus_LeadCollectionByStatus" FromRole="Lead_Status" />
                <NavigationProperty Name="InformationSource" Relationship="Terrasoft.Configuration.Lead_InformationSource_InformationSource_LeadCollectionByInformationSource" ToRole="InformationSource_LeadCollectionByInformationSource" FromRole="Lead_InformationSource" />
                <NavigationProperty Name="Industry" Relationship="Terrasoft.Configuration.Lead_Industry_AccountIndustry_LeadCollectionByIndustry" ToRole="AccountIndustry_LeadCollectionByIndustry" FromRole="Lead_Industry" />
                <NavigationProperty Name="AnnualRevenue" Relationship="Terrasoft.Configuration.Lead_AnnualRevenue_AccountAnnualRevenue_LeadCollectionByAnnualRevenue" ToRole="AccountAnnualRevenue_LeadCollectionByAnnualRevenue" FromRole="Lead_AnnualRevenue" />
                <NavigationProperty Name="EmployeesNumber" Relationship="Terrasoft.Configuration.Lead_EmployeesNumber_AccountEmployeesNumber_LeadCollectionByEmployeesNumber" ToRole="AccountEmployeesNumber_LeadCollectionByEmployeesNumber" FromRole="Lead_EmployeesNumber" />
                <NavigationProperty Name="AddressType" Relationship="Terrasoft.Configuration.Lead_AddressType_AddressType_LeadCollectionByAddressType" ToRole="AddressType_LeadCollectionByAddressType" FromRole="Lead_AddressType" />
                <NavigationProperty Name="Country" Relationship="Terrasoft.Configuration.Lead_Country_Country_LeadCollectionByCountry" ToRole="Country_LeadCollectionByCountry" FromRole="Lead_Country" />
                <NavigationProperty Name="Region" Relationship="Terrasoft.Configuration.Lead_Region_Region_LeadCollectionByRegion" ToRole="Region_LeadCollectionByRegion" FromRole="Lead_Region" />
                <NavigationProperty Name="City" Relationship="Terrasoft.Configuration.Lead_City_City_LeadCollectionByCity" ToRole="City_LeadCollectionByCity" FromRole="Lead_City" />
                <NavigationProperty Name="QualifiedContact" Relationship="Terrasoft.Configuration.Lead_QualifiedContact_Contact_LeadCollectionByQualifiedContact" ToRole="Contact_LeadCollectionByQualifiedContact" FromRole="Lead_QualifiedContact" />
                <NavigationProperty Name="QualifiedAccount" Relationship="Terrasoft.Configuration.Lead_QualifiedAccount_Account_LeadCollectionByQualifiedAccount" ToRole="Account_LeadCollectionByQualifiedAccount" FromRole="Lead_QualifiedAccount" />
                <NavigationProperty Name="LeadType" Relationship="Terrasoft.Configuration.Lead_LeadType_LeadType_LeadCollectionByLeadType" ToRole="LeadType_LeadCollectionByLeadType" FromRole="Lead_LeadType" />
                <NavigationProperty Name="LeadTypeStatus" Relationship="Terrasoft.Configuration.Lead_LeadTypeStatus_LeadTypeStatus_LeadCollectionByLeadTypeStatus" ToRole="LeadTypeStatus_LeadCollectionByLeadTypeStatus" FromRole="Lead_LeadTypeStatus" />
                <NavigationProperty Name="LeadDisqualifyReason" Relationship="Terrasoft.Configuration.Lead_LeadDisqualifyReason_LeadDisqualifyReason_LeadCollectionByLeadDisqualifyReason" ToRole="LeadDisqualifyReason_LeadCollectionByLeadDisqualifyReason" FromRole="Lead_LeadDisqualifyReason" />
                <NavigationProperty Name="AccountCategory" Relationship="Terrasoft.Configuration.Lead_AccountCategory_AccountCategory_LeadCollectionByAccountCategory" ToRole="AccountCategory_LeadCollectionByAccountCategory" FromRole="Lead_AccountCategory" />
                <NavigationProperty Name="AccountOwnership" Relationship="Terrasoft.Configuration.Lead_AccountOwnership_AccountOwnership_LeadCollectionByAccountOwnership" ToRole="AccountOwnership_LeadCollectionByAccountOwnership" FromRole="Lead_AccountOwnership" />
                <NavigationProperty Name="Department" Relationship="Terrasoft.Configuration.Lead_Department_Department_LeadCollectionByDepartment" ToRole="Department_LeadCollectionByDepartment" FromRole="Lead_Department" />
                <NavigationProperty Name="Gender" Relationship="Terrasoft.Configuration.Lead_Gender_Gender_LeadCollectionByGender" ToRole="Gender_LeadCollectionByGender" FromRole="Lead_Gender" />
                <NavigationProperty Name="Job" Relationship="Terrasoft.Configuration.Lead_Job_Job_LeadCollectionByJob" ToRole="Job_LeadCollectionByJob" FromRole="Lead_Job" />
                <NavigationProperty Name="DecisionRole" Relationship="Terrasoft.Configuration.Lead_DecisionRole_ContactDecisionRole_LeadCollectionByDecisionRole" ToRole="ContactDecisionRole_LeadCollectionByDecisionRole" FromRole="Lead_DecisionRole" />
                <NavigationProperty Name="QualifyStatus" Relationship="Terrasoft.Configuration.Lead_QualifyStatus_QualifyStatus_LeadCollectionByQualifyStatus" ToRole="QualifyStatus_LeadCollectionByQualifyStatus" FromRole="Lead_QualifyStatus" />
                <NavigationProperty Name="Owner" Relationship="Terrasoft.Configuration.Lead_Owner_Contact_LeadCollectionByOwner" ToRole="Contact_LeadCollectionByOwner" FromRole="Lead_Owner" />
                <NavigationProperty Name="SalesOwner" Relationship="Terrasoft.Configuration.Lead_SalesOwner_Contact_LeadCollectionBySalesOwner" ToRole="Contact_LeadCollectionBySalesOwner" FromRole="Lead_SalesOwner" />
                <NavigationProperty Name="RegisterMethod" Relationship="Terrasoft.Configuration.Lead_RegisterMethod_LeadRegisterMethod_LeadCollectionByRegisterMethod" ToRole="LeadRegisterMethod_LeadCollectionByRegisterMethod" FromRole="Lead_RegisterMethod" />
                <NavigationProperty Name="LeadSource" Relationship="Terrasoft.Configuration.Lead_LeadSource_LeadSource_LeadCollectionByLeadSource" ToRole="LeadSource_LeadCollectionByLeadSource" FromRole="Lead_LeadSource" />
                <NavigationProperty Name="LeadMedium" Relationship="Terrasoft.Configuration.Lead_LeadMedium_LeadMedium_LeadCollectionByLeadMedium" ToRole="LeadMedium_LeadCollectionByLeadMedium" FromRole="Lead_LeadMedium" />
                <NavigationProperty Name="OpportunityDepartment" Relationship="Terrasoft.Configuration.Lead_OpportunityDepartment_OpportunityDepartment_LeadCollectionByOpportunityDepartment" ToRole="OpportunityDepartment_LeadCollectionByOpportunityDepartment" FromRole="Lead_OpportunityDepartment" />
                <NavigationProperty Name="WebForm" Relationship="Terrasoft.Configuration.Lead_WebForm_GeneratedWebForm_LeadCollectionByWebForm" ToRole="GeneratedWebForm_LeadCollectionByWebForm" FromRole="Lead_WebForm" />
                <NavigationProperty Name="Order" Relationship="Terrasoft.Configuration.Lead_Order_Order_LeadCollectionByOrder" ToRole="Order_LeadCollectionByOrder" FromRole="Lead_Order" />
                <NavigationProperty Name="Opportunity" Relationship="Terrasoft.Configuration.Lead_Opportunity_Opportunity_LeadCollectionByOpportunity" ToRole="Opportunity_LeadCollectionByOpportunity" FromRole="Lead_Opportunity" />
                <NavigationProperty Name="ActivityCollectionByLead" Relationship="Terrasoft.Configuration.Activity_Lead_Lead_ActivityCollectionByLead" ToRole="Activity_Lead" FromRole="Lead_ActivityCollectionByLead" />
                <NavigationProperty Name="CallCollectionByLead" Relationship="Terrasoft.Configuration.Call_Lead_Lead_CallCollectionByLead" ToRole="Call_Lead" FromRole="Lead_CallCollectionByLead" />
                <NavigationProperty Name="FileLeadCollectionByLead" Relationship="Terrasoft.Configuration.FileLead_Lead_Lead_FileLeadCollectionByLead" ToRole="FileLead_Lead" FromRole="Lead_FileLeadCollectionByLead" />
                <NavigationProperty Name="LeadAddressCollectionByLead" Relationship="Terrasoft.Configuration.LeadAddress_Lead_Lead_LeadAddressCollectionByLead" ToRole="LeadAddress_Lead" FromRole="Lead_LeadAddressCollectionByLead" />
                <NavigationProperty Name="LeadInFolderCollectionByLead" Relationship="Terrasoft.Configuration.LeadInFolder_Lead_Lead_LeadInFolderCollectionByLead" ToRole="LeadInFolder_Lead" FromRole="Lead_LeadInFolderCollectionByLead" />
                <NavigationProperty Name="LeadInTagCollectionByEntity" Relationship="Terrasoft.Configuration.LeadInTag_Entity_Lead_LeadInTagCollectionByEntity" ToRole="LeadInTag_Entity" FromRole="Lead_LeadInTagCollectionByEntity" />
                <NavigationProperty Name="LeadProductCollectionByLead" Relationship="Terrasoft.Configuration.LeadProduct_Lead_Lead_LeadProductCollectionByLead" ToRole="LeadProduct_Lead" FromRole="Lead_LeadProductCollectionByLead" />
                <NavigationProperty Name="SpecificationInLeadCollectionByLead" Relationship="Terrasoft.Configuration.SpecificationInLead_Lead_Lead_SpecificationInLeadCollectionByLead" ToRole="SpecificationInLead_Lead" FromRole="Lead_SpecificationInLeadCollectionByLead" />
</EntityType>

Вот поле email для Lead

У него отсутствует аттрибут nullable="false", но добавить я его без поля Email не могу.

Конечно в данной ситуации мне известно какое поле не задано, но нужен способ узнать это через запрос. $metadata не дает мне такой информации

Добрый день.

Рекомендуем вам ознакомиться с информацией по Odata на сайте http://www.odata.org/. Либо задать вопрос на http://stackoverflow.com/.

С уважением,
Группа компаний Terrasoft

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

Коллеги, добрый день!

Есть ли описание добавления галереи в карточку как в продукте Real Estate? Или, возможно, поля с возможностью увеличения при нажатии.
В академии описан только процесс добавления маленькой картинки - логотипа :(

Нравится

1 комментарий

Доброго времени суток.

Версия 7.9 sales.

Есть сторонний сайт (неважно, какой - можно считать, что просто сторонняя форма входа). Нужно, чтобы авторизация через неё работала и для bpm (логин и пароль один и тот же). Иначе говоря, чтобы пользователь авторизовался только один раз, и в bpm уже мог войти без ввода логина-пароля.

Возможна ли реализация такой схемы иначе, чем через SSO: https://academy.terrasoft.ru/documents/sales-enterprise/7-9/osnovnye-opr...

В документации нашёл такой вариант: https://academy.terrasoft.ru/documents/technic-sdk/7-8/autentifikaciya-v...

Вопрос - если я отправлю сюда:

http(s)://[Адрес приложения bpm'online]/ServiceModel/AuthService.svc/Login

логин и пароль аяксом через JS - будет ли это работать как авторизация входа? Или это только для удалённого получения данных?

Нравится

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

Здравствуйте, Денис.

Авторизация входа будет работать. В результате запроса будет получена аутентификационная cookie, таким образом пользователь полноценно сможет работать с системой.

Мария, здравствуйте!

А что именно нужно отправлять, только логин и пароль, важен какой-то формат?

Ну то есть, грубо говоря, если я сделаю отправку примерно таким, самым простым скриптом:

var loginData = {
                  UserName: "Supervisor",
                	UserPassword: "Supervisor",
              }
 
              $.ajax({
                  url : "https://tessst.bpmonline.com/ServiceModel/AuthService.svc/Login",
                  type : 'POST',
                  data : loginData,
                  success : function (answer){
                      console.log(answer);
                  },
                     error: function (errordata){
                      console.log(errordata);
                  },
              });

Это всё? Или ответ куда-то нужно записать?

Денис,

выполнения приведенного вами скрипта будет достаточно для дальнейшей корректной работы.

С уважением,
Группа компаний Terrasoft

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

Добрый день, пытаюсь добавить несколько кнопок на страницу редактирования добавляется только последняя кнопка как сделать так что бы отображались обе кнопки , скрипт:

  {
    "operation": "insert",
    "parentName": "ActionButtonsContainer",
    "propertyName": "items",
    "name": "MainContactSectionButton",
    "values": {
        itemType: Terrasoft.ViewItemType.BUTTON,
        caption: "Прослушать звонок",
        click: { bindTo: "onListenCallClick" },
        enabled: true,
        "style": Terrasoft.controls.ButtonEnums.style.BLUE,
        "layout": {
            "column": 1,
            "row": 6,
            "colSpan": 1
        }
    }
},
{
                      "operation": "insert",
                      "parentName": "ActionButtonsContainer",
                      "propertyName": "items",
                      "name": "MainContactSectionButton",
                      "values": {
    itemType: Terrasoft.ViewItemType.BUTTON,
    caption: "Создать контакт",
    click: { bindTo: "onCreateContactClick" },
    enabled: true,
    "style": Terrasoft.controls.ButtonEnums.style.GREEN,
    "layout": {
        "column": 12,
        "row": 6,
        "colSpan": 12
    }
                      }
}

Нравится

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

Здравствуйте, Дмитрий!

Не могут два элемента называться одинаково. Каждый элемент должен иметь уникальное имя (рис. 1-2).

"Вильшанский Дмитрий" написал:

Здравствуйте, Дмитрий!

Не могут два элемента называться одинаково. Каждый элемент должен иметь уникальное имя (рис. 1-2).


Спасибо Дмитрий видимо подзапарился не заметил

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

Как решить проблему с "SyntaxError: Unexpected token "?

Нравится

7 комментариев

Здравствуйте!

Уточните, пожалуйста, как эта проблема влияет на корректную работу приложения?

P.S. Если по теме, то обновите версию приложения.

"Демьяник Алексей" написал:

Здравствуйте!

Уточните, пожалуйста, как эта проблема влияет на корректную работу приложения?

P.S. Если по теме, то обновите версию приложения.


На корректность это никак не влияет, просто хотелось бы не наблюдать данные ошибки в консоли.
Поэтому и задался вопросом, как это дело можно поменять.
Версия bpm 7.9.0.

"Кисловский Михаил Андреевич" написал:

Версия bpm 7.9.0.

В 7.9.1 не видел такого сообщения.

"Демьяник Алексей" написал:
Кисловский Михаил Андреевич пишет:

Версия bpm 7.9.0.

В 7.9.1 не видел такого сообщения.


У представителя "Программные технологии" есть демостэнд с PT connector.
Так вот там версия 7.8.0 и таких ошибок в консоли не видно и близко.
Просто интересно в чем проблема и хотелось бы убрать данный ряд ошибок.

Здравствуйте, Михаил.

Указанная ошибка плавающая, и на на работу приложения совершенно не влияет.

"Сергей Кy6риш" написал:

Здравствуйте, Михаил.

Указанная ошибка плавающая, и на на работу приложения совершенно не влияет.

С уважением,

Группа компаний Terrasoft


Разницы нет плавающая это ошибка или нет, я понимаю что она не влияет на работу. Просто я хочу знать как от неё избавиться если существует данное решение. Ошибки сами по себе не приятны, даже если они не значительны и их в корне нужно устранять.

Попробуйте обновиться до версии 7.9.1, либо проведите отладку на версии 7.9.0

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

Добрый день, подскажите пожалуйста, где можно настроить, чтобы определенные поля, к примеру поле “примечания”, не блокировалось для редактирования после успешной дисквалификации лида?

Нравится

7 комментариев

Добрый день!

Пользовательскими средствами такую настройку выполнить нельзя.
Это можно сделать следующей доработкой, которая будет в зависимости от стадии лида, которую Вы укажите, деталь поля доступными для редактирования.

Для этого:

1. В атрибутах в схеме LeadPage добавьте зависимость изменения поля QualifyStatus.
2. Задайте изменения на свой кастомный метод.
3. В этом кастомном методе Вам необходимо доставать значения Id QualifyStatus, и сравнивать это значение с необходимым из LeadConfigurationConst.LeadConst
http://prntscr.com/e3zp7o
4. Если выражение верно то вызвать еще один метод. В этом методе разрешить редактирования необходимых полей.

Благодарю за помощь :smile:
А не подскажите еще, пожалуйста, можно ли в бизнес-процессах запретить создание контакта при дисквалификации лида?

Здравствуйте!

Поиск/создания/привязка контакта к лиду выполняется в БП “Квалификация лида 7.8.0”, элемент “Создать или обновить контакт согласно результату квалификации”.
Вы можете создать копию этого процесса и изменить логику БП согласно вашим задачам.

Спасибо, последовав вашему совету создали копию БП, немного изменив процесс, основной сделали неактивным, копию активировали, также создали копию БП “Управление лидом 7.8.0”, где подпроцесс квалификации заменили на нужную копию, и отключили оригинал. Но в итоге при квалификации все просто виснет, и по журналу видно, что процесс даже не запустился. Пробовали просто сделать копию БП “Управление лидом 7.8.0”, ничего не меняя и отключив основной процесс, чтобы проверить запустится ли, но все равно виснет, как это можно поправить?

Здравствуйте!

После создания копии и деактивации оригинального процесса - необходимо указать название копии БП в системной настройке "Процесс управления лидом". После чего выполнить повторную авторизацию на сайте и очистить кэш браузера.

Здравствуйте! Огромное спасибо за ответы! :smile:
А как можно проверить на стадию дисквалификации ли переводится лид в копии БП “Квалификация лида 7.8.0”?
Условный поток с формулой

[#Прочитать данные Лида.Первый элемент результирующей коллекции.Стадия лида#] == [#Справочник.Стадия лида.Дисквалифицирован#]

не срабатывает, если же вызывать отдельный БП на событие изменение стадии, то вызывается, но необходимо, чтобы контакт не создавался сразу в момент квалификации.
Можно ли как-то в сценарии “Создать или обновить контакт согласно результату квалификации” получить id стадии в которую переводится лид и там прописать уже условие, вроде:

if(QualificationProcessId != 128c3718-771a-4d1e-9035-6fa135ca5f70){ProcessContact();}?

Здравствуйте!

Для решения задачи необходимо получить значение интересующей колонки текущего лида в элементе “Создать или обновить контакт согласно результату квалификации”.
Пример кода для ScriptTask во вложении.
В переменную temp будет записано значение колонки Id из найденной записи в элементе ReadDataUserTask1.
gettypedcolumnvalue.txt

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

Добрый день!

Подскажите, пожалуйста,как корректно вести работу неразработчикам с пакетами.
Допустим, есть две разных функционала. На каждый функционал свой пакет. Консультант создает объекты и колонки при помощи мастера разделов. Результаты должны сохраняться в разные пакеты по фукнциональности. Например, объект 1 в пакет 1, объект 2 в пакет 2. Консультанту необходимо постоянно менять системную настройку "текущий пакет" ?

Нравится

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

Здравствуйте!

Мне кажется, данную задачу необходимо решать с другой стороны.
Прежде всего стоит обратить внимание и выяснить какова будет архитектура, какой будет функционал в каждом пакете, будут ли использоваться в 1 пакете объекты из 2 пакета и т.д.
Приведу кейс если пакеты находятся на одном уровне по иерархии: если в 1 пакете нужен использовать объект, которого нет в 1, но есть во 2 пакете. Тогда необходимо указывать дополнительную зависимость пакета, что является не логичным.

То есть много подводных камней и все зависит от того как Вы запланировали разработку в целом (что и где будет находиться). Если это функционалы, которые практически не зависят друг от друга (например, раздела «Заказы» и «Обращения»), поэтому в принципе можно и одним пакетом обойтись.

Также стоит обратить внимания, что чем больше пакетов конфигурации тем запрос будет дольше и в результате это может повлиять на производительность.

Рекомендую для начала изучить sdk по работе с пакетами - https://academy.terrasoft.ru/documents/technic-sdk/7-9/rabota-s-paketami

Если хотите все таки использовать разные пакеты, то можете попробовать сделать системную настройку «Текущий пакет» персональной (после проставления признака, необходимо под каждым пользователем установить соответствующий пакет). Лично не тестировал.

"Мотков Илья" написал:То есть много подводных камней и все зависит от того как Вы запланировали разработку в целом (что и где будет находиться). Если это функционалы, которые практически не зависят друг от друга (например, раздела «Заказы» и «Обращения»), поэтому в принципе можно и одним пакетом обойтись.

Не совсем поняла эту часть. Почему независимые функционалы можно держать в одном пакете? они же могут быть завершены в разное время и их перенос на рабочую и тестовую среды будет зависим, а хочется независимый функционал и переносить независимо. Собственно, поэтому и хотелось бы создавать несколько пакетов.

"Мотков Илья" написал:Если хотите все таки использовать разные пакеты, то можете попробовать сделать системную настройку «Текущий пакет» персональной (после проставления признака, необходимо под каждым пользователем установить соответствующий пакет). Лично не тестировал.

А где можно найти информацию о персонализации этой настройки? Как ее сделать персональной для каждого пользователя? По умолчанию она общая для всех пользователей. К сожалению, не нашла ни на форуме, ни на академии.

"Zaitova Liubov" написал:

Не совсем поняла эту часть. Почему независимые функционалы можно держать в одном пакете? они же могут быть завершены в разное время и их перенос на рабочую и тестовую среды будет зависим, а хочется независимый функционал и переносить независимо. Собственно, поэтому и хотелось бы создавать несколько пакетов.

Я предложил как вариант.
Вы можете фиксировать и переносить их частично. На среде разработки что-то разработали - зафиксировали (наприме, с помощь SVN). Потом перенесли на другую среду. Затем заново зафиксировали и перенесли. Так по-моему по такому принципу происходит разработка, а не по временным промежуткам.

"Zaitova Liubov" написал:

А где можно найти информацию о персонализации этой настройки? Как ее сделать персональной для каждого пользователя? По умолчанию она общая для всех пользователей. К сожалению, не нашла ни на форуме, ни на академии.

Изобразил на скриншоте. Ставите. Заходите под одним пользователем ставите значение, потом под другим пользователем и т.д.

"Мотков Илья" написал:Изобразил на скриншоте. Ставите. Заходите под одним пользователем ставите значение, потом под другим пользователем и т.д.

Не заметила. Спасибо!

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

Добрый день!

Я только начинаю изучать разработку на платформе bpmonline и прошу поделиться опытом)
Использует ли кто-нибудь какие-то плагины (например, AnkhSVN) для visual studio для работы с svn, чтобы можно было коммитить изменения не из файловой системы,а из самой IDE?
Если да, то какую можете посоветовать и вообще целесообразность использования таких плагинов. Вероятно, коммит из файловой системы или из самого приложния чем-то лучше/проще.

Нравится

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

Добрый день, Любовь.

Рекомендуем вам использовать VisualSVN, или связку TortoiseSVN + Tsvn, так как фиксация из файловой системы выполняется намного быстрее чем из приложения.

"Мария Ватулина" написал:

Добрый день, Любовь.

Рекомендуем вам использовать VisualSVN, или связку TortoiseSVN + Tsvn, так как фиксация из файловой системы выполняется намного быстрее чем из приложения.


Спасибо!
А есть разница в коммите из IDE и в коммите из файловой системы? То есть результат будет одинаковый? Просто мне интересно, почему в вебинарах говорили об svn клиенте, который работает с файловой системой, тогда как мне, как разработчику, было бы удобнее все делать в самой ide

Любовь, разницы нет. Результат будет одинаковым. Вы можете комитить изменения как из файловой системы, так и из IDE.

"Мария Ватулина" написал:

Любовь, разницы нет. Результат будет одинаковым. Вы можете комитить изменения как из файловой системы, так и из IDE.


Спасибо за ответы!

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

Добрый день!
Установлен bpm'online service enterprise v7.8. После обновления SQL Server 2014 до SP2 возникла проблема:
При редактировании записей пользователем supervisor выходит ошибка, например Недостаточно прав для изменения записи в объекте "Сервисные договоры".

Нравится

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

Добрый день, Ольга.

Данная ошибка говорит о том, что у пользователю не выданы лицензии. Рекомендуем проверить наличие лицензий у пользователей, в частности у Supervisor.

Если приведенное решение не исправит проблему, рекомендуем обратиться в Техническую поддержку.

Распределение прав по разделам проверили, все на месте, во вложении скрин конкретно раздела "Сервисный договор"

Ольга, наличие лицензий необходимо проверить в пункте меню Управление лицензиями пользователей (см. скрин). В менеджере лицензий необходимо проверить выданы ли лицензии необходимым пользователям, в вашем случае лицензия service enterprise.
Если все лицензии выданы корректно, но прав на создание записей в разделах нет, обратитесь в Техническую поддержку для более детального анализа проблемы.

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

Коллеги, добрый день!

В карточку активности добавили деталь активности со связями:
Контрагент
Контрагент

Цель увидеть другие активности по контрагенту в данной карточке активности.
К сожалению, если контрагент не указан, то отображаются активности в которых не указан контрагент. Можно ли сделать, что если значение пусто, то не отображать никаких записей.
Возможно это несложный код, который можно добавить в схему Активности

Нравится

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

Можно заместить деталь активностей и добавить ей фильтр на пустые "Контрагенты", так:

define("ActivityDetailV2", ["terrasoft", "ProcessModuleUtilities", "ConfigurationConstants"],
	function(Terrasoft, ProcessModuleUtilities, ConfigurationConstants) {
		return {
			entitySchemaName: "Activity",
			messages: {
			},
			attributes: {
			},
			methods: {
 
				getFilters: function() {
					var filters = this.callParent(arguments);
					filters.addItem(this.Terrasoft.createColumnIsNotNullFilter("Account"));
 
					return filters;
				}
			},
			diff: /**SCHEMA_DIFF*/[
			]/**SCHEMA_DIFF*/
		};
	}
);

БОЛЬШОЕ СПАСИБО!!!!
Очень выручили! Плюс в карму! :)

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