我們在CRM 2013上。要求是完全從「任務」窗體中刪除「關閉」按鈕,然後創建一個新按鈕以取消該任務。所以當點擊這個按鈕時,任務將會被保存爲取消。CRM 2013:新的功能區按鈕取消任務
我嘗試修改customization.xml RibbonDiffXML作爲遵循任務實體:
</CustomAction>
<CustomAction Id="nwp.task.Form.SaveAsCancelled.CustomAction" Location="Mscrm.Form.task.MainTab.Save.Controls._children" Sequence="55">
<CommandUIDefinition>
<Button Command="Mscrm.SaveAsCancelled" Id="nwp.task.Form.SaveAsCancelled" Image32by32="$webresource:nwp_/img/btn_CaseCloseDialog32.png" Image16by16="$webresource:nwp_/img/btn_CaseCloseDialog16.png" LabelText="$LocLabels:nwp.task.Form.SaveAsCancelled.LabelText" Sequence="55" TemplateAlias="o1" ToolTipTitle="$LocLabels:nwp.task.Form.SaveAsCancelled.ToolTipTitle" ToolTipDescription="$LocLabels:nwp.task.Form.SaveAsCancelled.ToolTipDescription" />
</CommandUIDefinition>
</CustomAction>
這裏是Mscrm.SaveAsCancelled命令定義。我發現在CRM服務器內置功能/_static/_common/scripts/RibbonActions.js
<CommandDefinition Id="Mscrm.SaveAsCancelled">
<EnableRules>
<EnableRule Id="Mscrm.VisualizationPaneNotMaximized" />
</EnableRules>
<DisplayRules>
<DisplayRule Id="Mscrm.CanWriteSelected" />
<DisplayRule Id="Mscrm.SelectedEntityHasStatecode" />
</DisplayRules>
<Actions>
<JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.deactivate" Library="/_static/_common/scripts/RibbonActions.js">
<CrmParameter Value="SelectedControl" />
<CrmParameter Value="SelectedControlSelectedItemReferences" />
<CrmParameter Value="SelectedEntityTypeCode" />
<IntParameter Value="2" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>
下,但是在RibbonActions.js停用函數的定義要求我選擇一些記錄的項目如下:
Mscrm.GridRibbonActions.deactivate=function(gridControl,records,entityTypeCode,defaultCloseState,callback)
{Mscrm.GridCommandActions.deactivate(gridControl,records,entityTypeCode,defaultCloseState,callback)}
所以當我點擊'取消'按鈕時,它會要求我先選擇一個記錄,因爲它是一個網格控件。但是如果我刪除參數來選擇某些記錄,那麼按鈕將不會執行任何操作。
是否知道是否已經有內置的取消或SaveAsCancelled或取消激活功能,不需要先選擇記錄?
欣賞您的輸入!
我看不出你如何能指望用一個方法取消記錄沒有首先選擇它,無論是在網格中選擇和使用網格按鈕或打開該記錄是唯一的「選定」記錄,然後使用表單功能區上的按鈕。 出於興趣,這是否意味着您打算讓所有任務都開放,並且只關閉那些被取消的任務,而不是那些已完成的任務? – AdamV 2014-09-26 13:11:07
感謝您的回覆亞當。我不知道沒有內置函數來取消該任務,所以我們按照這裏所建議的那樣寫了一個SOAP請求來執行此操作,相信Guru Prasad http://guruprasadcrm.blogspot.com/2013/02/更改記錄狀態使用javascript.html – ichachan 2014-09-27 00:40:22