Вопрос

Здравствуйте, возможно ли открыть страницу записи детали по URL ссылке, используя Id записи?

Проблема, на странице редактирования "Контакта" есть деталь, хотелось бы получить url записей этой детали, при открытии детали в адресной строке браузера по прежнему такое 

http://[someSite]/Nui/ViewModule.aspx#CardModuleV2/ContactPageV2/edit/a36a54a2-3c6c-44eb-aa2f-a7e75305270a , 

не url детали.

Спасибо

У меня такой же вопрос

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

Добрый день!
Да, BPM не меняет адрес в адресной строке.
Адрес записи детали будет следующим:
ttp://[someSite]/Nui/ViewModule.aspx#CardModuleV2/[Страница редактирования записи детали]/edit/[Id записи детали]

Добрый день!
Да, BPM не меняет адрес в адресной строке.
Адрес записи детали будет следующим:
ttp://[someSite]/Nui/ViewModule.aspx#CardModuleV2/[Страница редактирования записи детали]/edit/[Id записи детали]

Сидоров Александр В.,

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

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день! 

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

Данную задачу я решил разбить на две, первая есть добавление самой детали(1), вторая уже реализация группирования(2).

1.

1.1 Для добавления детали я добавил "схема модели представления детали с реестром".

1.2 Унаследовал ее от "FileDetailV2 ( UIv2 )".

1.3 Добавил следующий код: 

define("UsrDocumentsFileDetail", [],
    function() {
		return {
			entitySchemaName: "UsrDocumentsListImage"
		};
	}
);

1.4 Затем я добавил объект "UsrDocumentsListImage" унаследовав его от "Файл ( Base )".

В объект добавил Lookup на форму, на которой будет отображаться создаваемая деталь. Подробная структура объекта:

[Id],
[CreatedOn],
[CreatedById],
[ModifiedOn],
[ModifiedById],
[Name],
[Notes],
[LockedById],
[LockedOn],
[Data],
[TypeId],
[Version],
[Size],
[ProcessListeners],
[UsrApplicationFormId] -- Lookup на форму для отображения детали

1.5 На модель страницы формы я добавил следующий код: 

details: {
    // Настройка детали [(Просмотр изображений)Документы]
    "UsrDocumenctImageViewDetailElement": {
	    "schemaName": "UsrDocumentsFileDetail",
	    "filter": {
		    "detailColumn": "UsrApplicationForm",
		    "masterColumn": "Id"
    	}
    }
},
diff: [
    {
        {
			"operation": "insert",
			// Название детали.
			"name": "UsrDocumenctImageViewDetailElement",
			"values": {
				"itemType": Terrasoft.core.enums.ViewItemType.DETAIL,
				"markerValue": "added-detail"
			},
			// Контейнеры, в котором размещена деталь.
			// Деталь размещена на вкладке [ДОКУМЕНТЫ И ФОТО].
			"parentName": "Tabd3595bedTabLabel",
			"propertyName": "items",
			// Индекс в списке добавляемых элементов.
			"index": 1
		}
    }
]

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

Лог консоли браузера: 

Error while sending request 
	response status: 500 (ItemNotFoundException)
	request url: ../DataService/json/SyncReply/SelectQuery
	method: POST
	request data: {"rootSchemaName":"UsrDocumentsListImage","operationType":0,"filters":{"items":{"211c1207-255e-48c2-8eb6-e011b92fdfc6":{"filterType":1,"comparisonType"...
 
Uncaught{message: "Элемент коллекции с именем UsrDocumentsListImage не найден"}
 
user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: http://localhost:83/0/configuration/d79cf7d52ccb236d2d57879ca34250e6ru-RU/FileDetailV2.js
 line: 183
 column: 7
 message: Uncaught Terrasoft.UnknownException: Элемент коллекции с именем UsrDocumentsListImage не найден 
 date: Mon Nov 12 2018 17:05:55 GMT+0300 (Москва, стандартное время)
 stack: undefined

Вопрос: 

Как исправить данную проблему и что означает данная ошибка? 

У меня такой же вопрос

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

Добрый день, а в таблице все поля корректно заполняются?

Попробуйте в объекте UsrDocumentsListImage переименовать поле UsrApplicationForm на UsrDocumentsListImage, возможно дело кроется в методе initParentEntity 

Колодяжный Владислав Эдуардович,

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

Заполняется все кроме  lockedById([uniqueidentifier] NULL) и lockedOn([datetime2](7) NULL). 

В случае переименования в объекте UsrDocumentsListImage поля UsrApplicationForm на UsrDocumentsListImage компилятор ругается:

Элемент c идентификатором "UsrDocumentsListImage" уже существует

Может, набор и имена полей в объекте и в select-запросе отличаются. Посмотрите в Fiddler-е наполнение request data полностью.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день! 

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

Вопрос:

Как этого можно достичь? Возможно как то переопределить базовую деталь с полями? Или возможно вместо "списка с иконками отображений" (в случае не возможности или трудоемкости достижения поставленной задачи) добавить поле с ссылкой на "хранилище"(вкладку) с изображениями(возможностью редактирования, т.е. добавления/удаления)?

  

У меня такой же вопрос

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

Такое сделано в дополнении Image preview for bpm'online.

Зверев Александр,

Большое спасибо!

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

 

Можете подсказать , я хочу через sandbox взаимодействовать двух деталей. Имеется ввиду при выборе запись в  первой детали , должен отобразиться  второй деталь с фильтрованной переданной от первой значение.

В первом детале создал сообщение, и зарегистрировал в методе init.

init: function() {
                    this.callParent(arguments);
                    window.console.log("begin finance come here to show where error");
                    var messages = {
                        "GetFinanceBlock": {
                            mode: Terrasoft.MessageMode.BROADCAST,
                            direction: this.Terrasoft.MessageDirectionType.PUBLISH
                        }
                    };
                    this.sandbox.registerMessages(messages);
                    window.console.log("end finance come here to show where error");
}

 И при выборе запись из таблицы, вызывается метод  rowSelected, где публикуется сообщение:

rowSelected: function(primaryColumnValue) {
                    this.sandbox.publish("GetFinanceBlock", {arg1 : primaryColumnValue}, ["key"]);
                    window.console.log("end publish");
}

 

Во второй деталь метод init добавил subscribe для данного сообщение:

init: function() {
                    this.callParent(arguments);
                    window.console.log(" child come here to show where error");
                    var message={
                        "GetFinanceBlock": {
                            mode: Terrasoft.MessageMode.PTP,
                            direction: Terrasoft.MessageDirectionType.SUBSCRIBE
                        }
                    };
                    this.sandbox.registerMessages(message);
                    this.sandbox.subscribe("GetFinanceBlock", this.onMessageSubscribe, this, ["key"]);
                    window.console.log(" child end subscribe");
                },
                onMessageSubscribe: function(args) {
                    window.console.log("child call method subscribe args " + args + " " + JSON.stringify(args));
                },

И добавил метод обработчик onMessageSubscribe для анализа передачи данные из первого модуля.

 

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

 

Можете подсказать чем связано такая проблема.

 

С уважием, Асылан.

 

Заранее благодарю!

 

 

У меня такой же вопрос

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

Если я правильно вас понял, то у вас на странице находится 2 детали.
При выборе определенного значения на Детали №1, должна отобразиться деталь №2.
Сообщение вы публикуете в Детали №1, но принять это сообщение, вы должны на странице, где находятся обе эти детали.
Создайте атрибут, например, в который устанавливайте значение true, когда получено сообщение. А видимость детали повесьте на этот атрибут.

Литвинко Павел,

Да, вы все правильно поняли. Спасибо , попробую . 

Литвинко Павел,

Попробовал анологичная ситуация. Сообщение отправляется, но подписчик не получает.

 

Асылан,

А как вы подписываетесь на сообщение?

Асылан, инструкция по работе с механизмом Sandbox есть в Академии.Возможно, что-то не было учтено, например, в одной указано BROADCAST, а в другой PTP.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

 

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

В целом, проблем с этим нет, но есть одна единственная проблема. У меня объявлена деталь на странице редактирования. В этом описании указан еще и subscriber, чтобы отрабатывать различные функции в случае возникновения событий об изменениях детали. Так вот визарды зачищают этот участок кода схемы страницы, что ломает бизнес логику страницы. Вопрос в том, каким еще способом можно определить подписку на стандартные события изменения детали, чтобы перенести код в секцию methods?

 

У меня такой же вопрос

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

О, да! И мне постоянно на это отвечала поддержка, что этого не может быть :)

Владимир Соколов,

а поддержка случайно не предлагала какие-то воркэраунды?

у меня, конечно, есть мысли, как "обезопасить" себя от перетерания, но это будет добавлять еще один пакет в систему и лишнюю замещающую схему

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

subscriber: {
   "methodName": "sendSaveCardModuleResponse"
}

где sendSaveCardModuleResponse имя метода.

Терещук Сергей,

оО! Спасибо! Помогло.

Войдите или зарегистрируйтесь, чтобы комментировать