我试图让主发票表单中的“获取产品”功能区操作逻辑在表单处于更新模式时自动执行。
发票是通过以商机开始的业务流程创建的。
这是发票 onLoad 事件的加载事件的代码:
onFormLoad = function () {
//if we are in update mode...
if (Xrm.Page.ui.getFormType() == 2) {
//if no products are present in the list...
if (loadInvoiceProducts().length == 0) {
Mscrm.CommandBarActions.getProducts();
}
}
};
loadInvoiceProducts = function () {
//just a jQuery ajax call to the oData service... this works.
var products = oDataQuery("InvoiceDetailSet?$filter=InvoiceId/Id eq guid'" + Xrm.Page.data.entity.getId() + "'");
return products.results;
};
如果我手动创建一个新订单(然后表单处于表单模式 == 1,创建)并且当我填写必填字段并保存时,该表单会以更新模式重新加载,然后出现“获取产品”弹出窗口.
问题是何时通过业务流程创建发票。发票表单以创建模式打开(通过业务流程,所有必填字段都已填写),当我按 Ctrl-S 时,触发上面的代码,表单处于更新模式,但随后发生另一次刷新,然后上面的代码没有运行。
我必须按 F5 才能再次触发它。
有没有人尝试过这样的事情?
谢谢。