Javascript CRM 2013:用于取消任务的新功能区按钮
我们正在使用CRM 2013。要求从任务表单中完全去掉“关闭”按钮,然后创建一个新按钮来取消任务。因此,单击此按钮时,任务将为“另存为已取消” 我尝试对customization.xml RibbonDiffXML进行如下修改,以用于任务实体:Javascript CRM 2013:用于取消任务的新功能区按钮,javascript,crm,dynamics-crm-2013,Javascript,Crm,Dynamics Crm 2013,我们正在使用CRM 2013。要求从任务表单中完全去掉“关闭”按钮,然后创建一个新按钮来取消任务。因此,单击此按钮时,任务将为“另存为已取消” 我尝试对customization.xml RibbonDiffXML进行如下修改,以用于任务实体: </CustomAction> <CustomAction Id="nwp.task.Form.SaveAsCancelled.CustomAction" Location="Mscrm.Form.task.MainTab.
</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>
因此,当我单击“取消”按钮时,它要求我首先选择一条记录,因为它是一个网格控件。但是,如果我删除参数以选择某些记录,那么按钮将不会执行任何操作
您知道是否已经有一个内置的cancel或SaveAsCancelled或deactivate功能,不需要先选择记录
感谢您的意见 我可以想到两种esay ish方法,它们不依赖于重用平台代码:
任务
中添加一个新的双值字段(我们称之为新的\u已取消
,默认值:否),并将其放在表单上,保持隐藏状态new\u cancelled
更新为Yes操作
,我们将其称为SaveTaskAsCancelled
,并在传入new\u cancelled
的记录更改后运行它SAveTaskAsCancelled
上注册插件,检查new\u cancelled
(相同的逻辑:如果为空,将其设置为否,如果为是,则取消任务)我看不出你怎么能期望使用一种方法来取消记录而不首先选择它,或者在网格中选择并使用网格按钮,或者打开记录使其成为唯一的“选中”记录,然后使用表单功能区上的按钮。出于兴趣,这是否意味着您打算让所有任务始终处于打开状态,并且只关闭已取消的任务,而不关闭已完成的任务?谢谢您的回复。我不知道没有内置的函数来取消任务,所以我们写了一个SOAP请求,按照这里的建议这样做,这要归功于Prasad大师,谢谢Alex的好建议。相反,我们编写了一个自定义函数来取消现在使用SOAP请求的任务。我们还在按钮上添加了一条规则,以便在表单不是只读时显示。但是,我注意到,当没有填写所有必填字段时,用户仍然可以取消任务。我仍在查找一条显示规则,以防止出现这种情况。您知道是否有显示规则可以防止用户在未填写所有必填字段时取消任务吗?非常感谢。如果字段不是空的,那么这将是
aka真的(每个字段一个valuerule,包装在显示规则中
)
<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>
Mscrm.GridRibbonActions.deactivate=function(gridControl,records,entityTypeCode,defaultCloseState,callback)
{Mscrm.GridCommandActions.deactivate(gridControl,records,entityTypeCode,defaultCloseState,callback)}
if new_cancelled doesn't contain data
set new_cancelled = No
if new_cancelled = Yes
change status to cancelled