Вопрос
Как передать идентификатор контрагента, из карточки заказа, на страницу редактирования детали "Продукт в заказе" через сообщения sandbox?
Ответ
Код замещающей схемы страницы Заказа:
define("OrderPageV2", ["OrderPageV2Resources", "GeneralDetails"],
function(resources, GeneralDetails) {
return {
entitySchemaName: "Order",
details: /**SCHEMA_DETAILS*/{
}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[
]/**SCHEMA_DIFF*/,
attributes: {},
methods: {
onEntityInitialized: function() {
this.callParent(arguments);
this.sandbox.subscribe("OrderProductPageAsksForData", function(arg) {
console.log("OrderProductPageV2 запрашивает данные прямо сейчас,");
console.log("по Id песочницы: " + arg.sandboxId);
// Высылаем данные.
this.sendDataToOrderProductPage(arg.sandboxId);
}, this, [this.sandbox.id]);
console.log("Мы(OrderPageV2) подписались на сообщение: OrderProductPageAsksForData.");
console.log("Id песочницы в этой карточке(OrderPageV2) следующий:");
console.log(this.sandbox.id);
},
sendDataToOrderProductPage: function(sandboxId) {
this.sandbox.publish("DataToOrderProductPage", { accountId: this.get("Account").value }, [sandboxId]);
console.log("AccountId отправлен сообщением для OrderProductPageV2 по Id: " + sandboxId);
}
},
rules: {},
messages: {
"DataToOrderProductPage": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
},
"OrderProductPageAsksForData": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
}
},
userCode: {}
};
});Код замещающей схемы страницы детали Продукт в заказе:
define("OrderProductPageV2", ["BusinessRuleModule", "OrderUtilities"],
function(BusinessRuleModule) {
return {
entitySchemaName: "OrderProduct",
mixins: {},
attributes: {},
methods: {
onEntityInitialized: function() {
this.callParent(arguments);
this.sandbox.subscribe("DataToOrderProductPage", function(arg) {
console.log("OrderPageV2 передает нам данные!");
alert("accountId: " + arg.accountId);
}, this, [this.sandbox.id]);
console.log("Мы(OrderProductPageV2) подписались на сообщение: DataToOrderProductPage.");
console.log("По нашему(OrderProductPageV2) Id песочницы:");
console.log(this.sandbox.id);
this.sandbox.publish("OrderProductPageAsksForData", {
sandboxId: this.sandbox.id
}, [this.getOrderPageSandboxId()]);
console.log("Запросили данные у OrderPageV2, по её Id песочницы: " + this.getOrderPageSandboxId());
},
getOrderPageSandboxId: function() {
var index = this.sandbox.id.indexOf("_detail_ProductInProducts");
return this.sandbox.id.substring(0, index);
}
},
messages: {
"DataToOrderProductPage": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
},
"OrderProductPageAsksForData": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
}
},
diff: /**SCHEMA_DIFF*/[
]/**SCHEMA_DIFF*/,
rules: {
}
};
}
);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать