Получение Id страницы в БП

Добрый день!

Я запускаю БП из кода (при нажатии на соответствующую кнопку в Действия) с помощью ProcessModuleUtilities. 

БП должен добавлять записи на деталь в карточку редактирования с которой запускается БП.

Как сделать так, чтобы считывался Id карточки редактирования из которой запускается БП?

Вот скрин БП.

Нравится

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

В БП создать входящий параметр. Например RecordId с типом уникальный идентификатор.

Передать Id записи в свойство parameters в метод ProcessModuleUtilities.executeProcess.

someMethod: function() {
	this.customRunProcess("SomeProcessName", { RecordId: this.$Id });
},
 
customRunProcess: function(name, parameters, callback) {
	ProcessModuleUtilities.executeProcess({
		sysProcessName: name,
		callback: function() {
			this.hideBodyMask();
			Ext.callback(callback, this);
		},
		scope: this,
		parameters: parameters
	});
},

 

В БП создать входящий параметр. Например RecordId с типом уникальный идентификатор.

Передать Id записи в свойство parameters в метод ProcessModuleUtilities.executeProcess.

someMethod: function() {
	this.customRunProcess("SomeProcessName", { RecordId: this.$Id });
},
 
customRunProcess: function(name, parameters, callback) {
	ProcessModuleUtilities.executeProcess({
		sysProcessName: name,
		callback: function() {
			this.hideBodyMask();
			Ext.callback(callback, this);
		},
		scope: this,
		parameters: parameters
	});
},

 

Владислав Литвинчук,

Спасибо!

Владислав Литвинчук,

Подскажите еще один момент. Если мне еще необходимо помимо Id карточки получить значение одного из справочных полей. Как необходимо изменить код?

Павел, если карточка сохранена, значения её полей есть в базе. По Id можно вычитать в самом БП элементом чтения данных.

Pavel Litvinovich пишет:

Владислав Литвинчук,

Подскажите еще один момент. Если мне еще необходимо помимо Id карточки получить значение одного из справочных полей. Как необходимо изменить код?

Как сказал Александр, можно прямо в БП считать данные из БД.

Либо добавить еще входящий параметр, и дополнительно его передать со страницы в объект parameters при вызове процесса.

Владислав Литвинчук,

На подобии этого?

someMethod: function() {
	this.customRunProcess("SomeProcessName", { RecordId: this.$Id });
    this.customRunProcess("SomeProcessName2", { RecordPeriod: this.$UsrPeriod });
},
 
customRunProcess: function(name, parameters, callback) {
	ProcessModuleUtilities.executeProcess({
		sysProcessName: name,
		callback: function() {
			this.hideBodyMask();
			Ext.callback(callback, this);
		},
		scope: this,
		parameters: parameters
	});
},

 

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

Да, точно. Так и сделал. Спасибо!

Pavel Litvinovich пишет:

Владислав Литвинчук,

На подобии этого?

Уже прочли в БП - ок.
Если бы передавать из страницы, то так:

 

someMethod: function() {
    this.customRunProcess("SomeProcessName", { 
        RecordId: this.$Id,
        RecordPeriod: this.$UsrPeriod // Если это справочное поле, то this.$UsrPeriod.value
    });
},
 
customRunProcess: function(name, parameters, callback) {
	ProcessModuleUtilities.executeProcess({
		sysProcessName: name,
		callback: function() {
			this.hideBodyMask();
			Ext.callback(callback, this);
		},
		scope: this,
		parameters: parameters
	});
},

 

Владислав Литвинчук,

Спасибо за помощь!

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