公司按照自己的商业流程来使用CRM,在签署合同之后并不需要创建订单Order,而是直接关闭。
但是Quote的默认关闭窗口如下:
第一个问题是“Status Reason”只有上面三个选项,都不是很适合,然后另外就是默认选择了创建revised quote,这个也不符合公司流程。
其实可以专门创建一个Ribbon button,用特定的action来实现,但是不想额外的开发,最终选择了下面的步骤:
1. 修改statuscode,在Closed Status下添加一个新的Label
2. 进入CRM Application Server,修改C:\Program Files\Microsoft Dynamics CRM\CRMWeb\SFA\quotes\dlg_close.aspx,插入下面代码 window.onload function
document.getElementById("rdNoRevisedQuote").checked = true; document.getElementById("rdCreateRevisedQuote").checked = false;
修改之后的代码
<script language="javascript"> var oArgs = null; function window.onload( ) { document.getElementById("rdNoRevisedQuote").checked = true; document.getElementById("rdCreateRevisedQuote").checked = false; oArgs = getDialogArguments(); if(! <%= _canCloseOpportunity.ToString().ToLower() %>) { lbCloseOpp.disabled = true; chkCloseOpp.disabled = true; } quoteNumber.innerText = oArgs.quoteNumber; revisionNumber.innerText = oArgs.revisionNumber;
修改之后结果变成下面
这种做法其实是有后患的,后续升级的时候并不支持,这里只是提供一种方法,之后会补充一下ribbon button的解决方案