Коллеги, всем привет!

При попытке зафиксировать изменения в хранилище SVN выдает ошибку "Пакет был заблокирован другим пользователем..." и не позволяет его сохранить. Подскажите, как удалить последнюю ревизию из SVN? Или есть другие способы решить проблему?

Нравится

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

Добрый день!
Если заблокирован пакет, то можно снять блокировку вручную (через TortoiseSVN Repository Browser, например) файла CommitLocker.
Ревизии в SVN не удаляются, можно сделать откат на любую раннюю ревизию, создав новый commit и после этого обновить систему до старой версии

Подскажите, как снять блокировку с commitLoker?

Правой кнопкой на CommitLocker -> Break lock

https://db.tt/2ROwRs7TXR - при нажатии правой кнопкой отображаются только эти действия.

"Сергей Фролов КРОК" написал:

https://db.tt/2ROwRs7TXR - при нажатии правой кнопкой отображаются только эти действия.

Данная схема у вас не заблокирована, т.к. поле lock пустое (в случае блокировки заполнено именем пользователя).
Попробуйте обновить страницу правой кнопкой Refresh. Если не появится, то пакет не заблокирован

Сергей Фролов КРОК, попробуй в корневой папке диска С найти папу с репами, там выбери свою и найди в ней папку locks.
Попробуй из неё все файлы удалить, когда мы с такой же проблемой столкнулись именно так и сделали.

Спасибо за совет, но к сожалению не помогло. Вылезает все та же ошибка - https://db.tt/OfoejzImcD

Помогло удаление файлов из другой папки лок, спасибо)

"Сергей Фролов КРОК" написал:

Помогло удаление файлов из другой папки лок, спасибо)


Да не за что)

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

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

Версия 7.9.

Необходимо на странице Лида добавить пункт в существующее подменю Дисквалификации.

В качестве примера воспользовались реализацией добавления остальных пунктов из файла LeadPageV2 в пакете Lead (при этом от этого файла уже создан наследник в нашем рабочем пакете).

getActions: function() {
                                                var actionMenuItems = this.callParent(arguments);
                                                var disqualifyMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");
                                                disqualifyMenuItems.addItem(this.getActionsMenuItem({
                                                        Caption: {bindTo: "Resources.Strings.DisqualifyLeadDouble"},
                                                        Tag: "disqualifyDouble"
                                                }));
                                                return actionMenuItems;
                                        },

Но это не помогло. Пока добавили пункт в основное меню. Можно ли как-нибудь добавить его именно в подменю?

Нравится

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

пакет CoreLead, схема LeadPageV2, обратите внимание на метод

getActions: function() {
	var actionMenuItems = this.callParent(arguments);
	var menuSeparator = this.getActionsMenuItem({
		"Type": "Terrasoft.MenuSeparator"
	});
	actionMenuItems.addItem(menuSeparator);
	var disqualificationMenuItems = this.get("DisqualificationMenuItems");
	disqualificationMenuItems.each(function(item) {
		actionMenuItems.addItem(item);
	});
	return actionMenuItems;
}

Все пункты подменю валяются в this.model.attributes.DisqualificationMenuItems. Попробуйте туда добавить свой пункт меню. Скорее всего все это надо будет делать до callParent.

Попробовал разные варианты:

Вот так:

getActions: function() {
 
				var disqualificationMenuItems = this.get("DisqualificationMenuItems");
				disqualificationMenuItems.addItem(this.getActionsMenuItem({
					Caption: {bindTo: "Дубль 2 тест"},
					Tag: "changeLeadStatus"
				}));
 
				var actionMenuItems = this.callParent(arguments);
 
				actionMenuItems.addItem(this.getButtonMenuItem({
                    // Привязка заголовка пункта меню к локализуемой строке схемы.
                    "Caption": {bindTo: "Resources.Strings.DisqualifyLeadDuplicate"},
                    // Привязка метода-обработчика действия.
                    "Tag": "changeLeadStatus",
                }));
 
				return actionMenuItems;
			},

Добавляется, но в основное меню. Если то же самое вызову после this.callParents:

var disqualificationMenuItems = this.get("DisqualificationMenuItems");
				disqualificationMenuItems.addItem(this.getActionsMenuItem({
					Caption: {bindTo: "Дубль 2 тест"},
					Tag: "changeLeadStatus"
				}));

то не добавляется вообще никуда.

Всё, нашёл.

Не DisqualificationMenuItems, а DisqualificationReasonsMenuItems :)

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

Добрый день!

Создала деталь с редактируемым реестром согласно инструкции из документации https://academy.terrasoft.ru/documents/technic-sdk/7-9/sozdanie-detali-s...
Деталь создалась корректно. Единственное, что меня смутило, что когда я выбрала вариант "Выбрать несколько записей" для данной детали, то деталь никак не изменилась. Для обычной детали появляется поле типа checkbox.
Как я могу включить возможность множественного выбора?
Пробовала добавить в attributes
// Признак множественного выбора
"multiSelect": {
// Тип данных — логический.
dataValueType: Terrasoft.DataValueType.BOOLEAN,
// Тип атрибута — виртуальная колонка модели представления.
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
// Устанавливаемое значение.
value: true
}
но ничего не изменилось.

Попутно возник второй вопрос: а что можно делать с несколькими выбранными записями? Видела возможность удаления. А есть какие-то еще варианты использования выбора нескольких записей детали?

Нравится

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

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

Для реализации множественного выбора для детали необходимо замещать действие нажатия кнопки добавления, в её обработчике открывать справочник с параметром мультивыбора, и в колбеке выбранные записи уже программно добавлять на деталь.
Пример был в соседней теме:
http://www.community.terrasoft.ru/forum/topic/24705
По поводу что еще можно делать с выбираемыми галочками записями, в принципе, что угодно, список айдишников у вас есть, можете их хоть менять, хоть удалять, статьи по EntitySchemaQuery на академии вам в помощь.

"Максим Шевченко" написал:Для реализации множественного выбора для детали необходимо замещать действие нажатия кнопки добавления, в её обработчике открывать справочник с параметром мультивыбора, и в колбеке выбранные записи уже программно добавлять на деталь.

Мне кажется, мы говорим о разных вещах. Я имела в виду функциональность, которая реализована для детали График поставок и оплат вкладки Итоги раздела Заказы. Во вложении скрины 1 и 2. Я создала деталь с редактируемым реестром Курьерская служба по инструкции. Вариант "Выбрать несколько записей" у меня есть (скрин 3), но после его выбора чекбоксы не вышли(результат на скрине 4, ожидалось, что будет как на скрине 2)

"Максим Шевченко" написал:По поводу что еще можно делать с выбираемыми галочками записями, в принципе, что угодно, список айдишников у вас есть, можете их хоть менять, хоть удалять, статьи по EntitySchemaQuery на академии вам в помощь.

Спасибо!

"Zaitova Liubov" написал:"Выбрать несколько записей"

Теперь понял. К сожелению такой возможности для ред. реестра на данный момент еще нет.

"Максим Шевченко" написал:
Zaitova Liubov пишет:

"Выбрать несколько записей"

Теперь понял. К сожелению такой возможности для ред. реестра на данный момент еще нет.


А как же деталь "График поставок и оплат" вкладки "Итоги" раздела "Заказы"? Там же эта функциональность есть.
Или она есть только в некоторых базовых деталях,а сами мы не можем создать такую деталь?

Деталь "График поставок и оплат" является уникальной и создать подобную базовыми средствами (без доработок на уровне схем) невозможно. Код самой детали Вы можете посмотреть в схеме SupplyPaymentDetailV2 из пакета Passport.

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

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

Нравится

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

Коллеги, у нас тоже самое произошло с 7,9

"Юсупов Марат" написал:

Коллеги, у нас тоже самое произошло с 7,9


Самое что интересное, проверил пару часов назад и в облачной версии Bpm 7.9.1 такого нету, и на 7.8.0 нету

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

Попробуйте удалить и повторно создать привязку. Также можно выполнить обновление до 7.9.1.

"Мотков Илья" написал:

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

Попробуйте удалить и повторно создать привязку. Также можно выполнить обновление до 7.9.1.


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

Интересная картина, данные как бы есть..но не все)))

"Юсупов Марат" написал:

Интересная картина, данные как бы есть..но не все)))

Прикрепленный файлРазмер

20170209_packagedata.png
89.32 кб


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

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

Интересная картина, данные как бы есть..но не все)))

Прикрепленный файлРазмер

20170209_packagedata.png

89.32 кб

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

Марат, добрый день!

Если воспроизведете кейс в версии 7.9.1, то просьба сообщить на support@terrasoft.ru с подробным описанием.
Согласно кейсу в описании топика ошибка не воспроизводится.

Дмитрий, я выше описывал что на облачном демо-стенде такой ошибки не наблюдалось.

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

Дмитрий, я выше описывал что на облачном демо-стенде такой ошибки не наблюдалось.

Михаил, а в on-site 7.9.1?

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

Михаил, а в on-site 7.9.1?


У нас пока проблемы с обновлением версии.
Вот такая вот ошибка вылетает в ходе выполнения действий по инструкции на академии.

Добрый день, Михаил.

Предлагаем скачать архив с файлами обновления по следующей ссылке: http://ftp.bpmonline.com/support/pub/s.kubrish/791.rar.
При работе с файлами из приведенного архива данная ошибка не воспроизводится.

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

Мария Ватулина, благодарю.

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

Среда разработки 1
1 БД, 2 рабочих пространства для каждого программиста, 1 SVN на CollabNet, 2 WebApp в IIS

Как избежать конфликтов - не стереть данные коллеги?

Нравится

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

Добрый день, Марат.

Для избежания конфиликтов рекомендуем вам использовать блокировку элементов пакета.

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

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

Добрый день, Марат.

Для избежания конфиликтов рекомендуем вам использовать блокировку элементов пакета.

С уважением,

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


Про бликировку. Хотелось бы сказать след-е.
У нас был такой случай: объект можно заблокировать. А вот страницу раздела тоже, но другой пользователь может в ней менять и тоже блокировать, система не даст никаких предупреждений о блокировке.
У вас было чтото похожее?

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

Если проблема наблюдается в разных рабочих пространствах (workspace), то нужно анализировать. Если описанное поведение наблюдается в одном рабочем пространстве, то это нормальное поведение системы, т.к. у каждого разработчика должно быть свое рабочее пространство. Блокировки возникают если несколько человек параллельно работают в одном рабочем пространстве.

Добрый день.
Сергей у нас наоборот - Разные пространства.
И периодически система при фиксации пакета говорит, что пакет нельзя зафиксировать стоит Commit. Самое интересное перед изменением файла нет никаких предупреждений, что файл заблокирован пользователем Х, кроме Объектов.
Приходиться через "тортилу" заходить и разблокировать.
Может CollabNet какие то настройки надо сделать, у нас по дефолту.
Неудобно.

У нас двухуровневая система блокировок:

1. БД *(на уровне workspace)
2. B SVN

Если разработка проходит в нескольких пространствах, то работает вторая (svn), и механизм разруливания блокировок на стороне SVN:
- при изменении схемы автоматически ставится блокировка в SVN, которая снимается при commit-e.
Если приходится разблокировать вручную, то тот кто менял схему не зафиксировал свои изменения.

Коллеги. еще конфликт появился.
Создали деталь.
Файл заблокировали, чтобы никто не смог его поменять. После изменений. Разблокировать не можем потому, что в хранилище нет его.
Переименовали, все равно не дает удалить либо зафиксировать пакет в хранилище.
Удалили, заново создали деталь он сразу стал Заблокированным.

Что такое?
Как я понимаю есть системная таблица где храниться информация что он заблокирован. Где подскажите пож-та?

еще дополнительно ... попытались создать деталь новую.
После создания она опять стала заблокированной(зеленый замок) как так?

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

Таблица называется SysSchema, поле isLocked.

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

При извлечении из SVN вышла такая ошибка.
Просмотрев все и вся не можем найти XXX у которой не указана ссылка.

У колонки "XXX" с типом справочник не указана ссылка на схему-справочник.

Что за ошибка?
Куда копать - искать?

Нравится

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

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

Спасибо.
Мы таким способом и пошли..начали все пересматривать.
Но вот про компиляцию забыли)

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

Добрый день!

Возник вопрос при реализации автонумерации для нового раздела.
Руководствовалась данной инструкцией:
https://academy.terrasoft.ru/documents/technic-sdk/7-9/primer-ispolzovan...

1. Создала новый раздел, новое поле UsrNumber. UsrNumber содержит код новой записи раздела.
2. Создала две системные настройки: маска и текущий номер.
3. В конфигурации у созданного объекта добавила БП при добавлении новой записи.
4. Настроила БП как в примере. Указывала свое поле номера(UsrNumber).
6. Все сохранила,обновила.
5. Добавляю новую запись, номер записи не создается.
Подскажите,пожалуйста, что может быть не так. Как можно проверить,запустился ли БП?
Как происходить связывание маски и текущего номера записи с действием "Сгенерировать номер по порядку"? При открытии исходного кода такого же процесса у объекта "проблема" не нашла использование маски и текущего номера.

Нравится

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

Обычно вся консоль красная, если хоть что-то отрабатывает с ошибкой

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

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

Если бы в ходе выполнения произошла ошибка, то запись в разделе бы не сохранилась.

Рекомендую проверить - был ли опубликован процесс. Также проверьте правильно вы выбрали событие или нет - нужно выбрать событие "Перед добавлением записи" и обязательно использовать сообщение, а не сигнал.

При публикации процесса ошибки нет,использовала начальное событие "сообщение". Возможно ошиблась в поле Сообщение - указывала название UsrPaymentInserting.
Записи в раздел добавляются.

Судя по всему процесс идет по потоку по умолчанию. Проверьте условие в условном потоке.

К сожалению,не могу понять в чем ошибка.
В новой разделе создала колонку "Номер", в бд -UsrNumber.
В условном потоке указываю именно это поле.
Код из условного потока :
string.IsNullOrEmpty(Entity.GetTypedColumnValue("UsrNumber"))

Здравствуйте
не отображается при создании записи? Или уже в сохраненной записи? Повторно открытой?
Если в первом случае, то внимательно читайте

... после публикации схемы объекта на странице редактирования продукта после сохранения нового продукта в поле [Код] будет указан автоматически сгенерированный код (рис. 13, рис. 14).

Также последнее примечание

ВАЖНО

Поскольку автогенерация кода и его сохранение в колонку выполняется на сервере при возникновении события [Перед сохранением записи], то значение кода никак нельзя отобразить на странице добавления продукта. Это связано с тем, что событие возникает уже после отправки запроса на добавление записи с клиенской части приложения.

У меня была такая же ситуация. Оказалось, что проблема заключается в том что процесс нумерации должен обязательно находиться в блоке "Событийный подпроцесс".

Спасибо! Заработало=)
Действительно, надо было в этот блок добавить.

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

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

На конфигурации "A" - разрабатывался пакет в его составе предусмотрено несколько SQL-скриптов.
Они были созданы с Типом установки "После сохранения пакета".
Пакет был успешно перенесен в другую конфигурацию ("B") через SVN, т.е. установлен там из репозитория в котором из конфигурации "A" он был зафиксирован.

После установки пакета в конфигурацию "B",
И выполнения пункта действий конфигуратора "Установить для требующих обновления" - скрипты были выполнены и с них снялся признак "Требует установки в БД".

А вот в искомой конфигурации "А" (где разрабатывался пакет и откуда он фиксировался в SVN) после "Установки этих скриптов" - выполнении действия конфигуратора "Установить выбранные элементы" - признак "Требует установки в БД" - не снимается,
Что приводит к их постоянному повторному выполнению, когда кто либо в конфигурации использует "Установить для требующих установки".
Можно ли, и если да то как снять этот признак принудительно ?

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

PS: 3 доступных значения "Тип установки",
не ясно чем они отличаются, когда и при каких условиях выполняются.
(в документации всего 2 упоминания на 97-й странице, ничего никак не разъясняющие)
Не очень понятно, что например подразумевается под типом установки "После сохранения пакета".
О каком "сохранении" идет речь ?
Т.е. они выполняются каждый раз когда пакет - что?
Фиксируется в репозитории или устанавливается из него, или при каждом обновлении пакета.

Нравится

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

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

Можно ли, и если да то как снять этот признак принудительно? - Да можно, вот простой скрипт:

update SysPackageSqlScript set NeedInstall = 0 where name = ''

Т.е. они выполняются каждый раз когда пакет - что? - когда пакет сохраняется в БД

Если будете переносить пакеты при помощи WorkspaceConsole, Вы сможете увидеть в какой момент времни происходит выполнение sql скриптов.

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

Коллеги, добрый день!
Столкнулся с проблемой того, что не могу удалить запись из системы (Контакт/Контрагент, например). При попытке удалить, система долго думает (порядка минуты-полторы), и выдает ошибку с текстом "Удаление данных произошло с ошибкой. Обратитесь к системному администратору".
После этой ошибки запись не удаляется. Сижу под супервизором, версия приложения 7.9.0.1228
Заранее благодарен!

Нравится

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

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

Если вы используете решение on-site, то необходимо настроить websocket.
Подробнее с настройкой вы можете ознакомиться по ссылке:
https://academy.terrasoft.ru/documents/sales-enterprise/7-9/nastroyka-v…

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

Добрый день!

У контакта имеются поля Phone, MobilePhone, HomePhone.
У лида MobilePhone, BusinesPhone.
У контрагента Phone, AdditionalPhone.

Раньше я делал поиск через через
$filter=substringof('6665544', MobilePhone)
Но в разделе "Средства связи" пользователи могут добавлять много номеров, поэтому поиск не работает по всем этим полям.

Я увидел тип ContactCommunication в котором и хранятся остальные номера.

Один из вариантов поиска это сначала сделать запрос

/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('07562135947', SearchNumber)&$select=ContactId для получения Id контакта, а затем получить контакт из ContactCollection по Id.

Для этого нужно делать два запроса.

Подскажите, как сделать поиск всего лишь одним запросом ,чтобы искать сразу и по полям и в коллекции ContactCommunication ?

Нравится

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

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

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

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

Ознакомтесь со статьями:

  1. URI Conventions
  2. Using $select, $expand, and $value in ASP.NET Web

Спасибо! Получилось осуществить поиск конктакта через один запрос к ContactCommunicationCollection и $extend Contact.

Все хорошо, но мне надо получить лишь некоторые поля Contact, а именно Id, Name, OwnerId, AccountId.

Для этого я добавляю в запрос $select=Contact/Id, Contact/Name и это работает без ошибок.

Но если я добавляю Contact/OwnerId или Contact/AccountId, то получаю ошибку:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

    1
    Элемент коллекции с именем AccountId не найден
    
        Элемент коллекции с именем AccountId не найден
        Terrasoft.Common.ItemNotFoundException
           at Terrasoft.Core.MetaItemCollection`1.GetByName(String name)&#xD;
   at Terrasoft.Core.Entities.EntitySchema.GetInheritedPath(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.CreateColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntitySchemaQuery.AddColumn(String columnPath)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable[TResult](Expression expression)&#xD;
   at Terrasoft.Core.Entities.EntityQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()&#xD;
   at System.Data.Services.Providers.BasicExpandProvider.ExpandedQueryable`1.GetEnumerator()&#xD;
   at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)&#xD;
   at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)&#xD;
   at System.Data.Services.DataService`1.HandleRequest()
    

Хотя если не задавать $select, то эти поля присутствуют.

Вот запрос:

https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('224433305083', SearchNumber)&$expand=Contact&$select=Contact/Id,Contact/Name,Contact/AccountId,Contact/OwnerId

Подскажите что не так делаю?

Разобрался. Вопрос закрыт. Спасибо за помощь!

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