CRM 2011 - 使用Javascript按钮 - 改变所有Entitie记录
场我有使用javascript一点经验,我想选择多个实体,并从真正的字段更改为假,反之亦然。 我试图在SDK上看到JS的例子,但没有发现我能理解的东西,有人可以帮我做个例子吗?CRM 2011 - 使用Javascript按钮 - 改变所有Entitie记录
更新: 我不认为我可以解释。所以在这里,当我在视图中时,我需要一个按钮来更改所有记录中的特定字段,而不必选择记录,我可以通过使用Ribbon Workbench的工作流程来选择记录。
到目前为止,我可以通过XRM改变的价值,但只有当我得到该记录的形式开放。
function test()
{
var id = Xrm.Page.data.entity.getId();
field = Xrm.Page.getAttribute("new_onoff").getValue();
Xrm.Page.getAttribute("new_onoff").setValue("offviaJava");
alert(id + field);
}
目的是做对每条记录相同的VIEW
对于变化倍数纪录为同一实体或一个以上的实体,最好的办法是使用工作流程或插件。但是我对Workflow的投票很容易做出这种类型的更改。检查here的一个例子。
编辑:基于您的更新,我建议另一种选择:
<Actions>
<JavaScriptFunction Library="$webresource:AccountFormLibrar" FunctionName="CreateNewAccount">
<CrmParameter Value="SelectedControlSelectedItemIds"/></JavaScriptFunction>
</Actions>
function CreateNewAccount (SelectedRecordGUID) {
//the parameter will receive all GUIDS in comma separated
}
您必须添加功能区按钮,添加一个动作。
Thnaks Pedro,现在好了我可以拥有所有的指导,但是如何使用javascript来更新记录,不需要xml,soap等? – 2013-03-22 17:24:54
嗨,看到这个[文章](http://www.mscrmconsultant.com/2012/07/create-update-delete-record-using.html)显示如何用Soap更新记录。 – 2013-03-22 17:38:14
有在Dynamics CRM中看到数据的两种方式,网格视图(在那里你看到许多情况下一次)和实体表单视图(你当前打开的窗口或选项卡中显示的数据一个实例)。使用javascript改变数据,表单视图的外观和其他动作很容易完成,但是听起来好像你在查看网格视图,因为你提到了多个选择。
我不认为你应该做的JavaScript,而是看的对话和工作流程。工作流程是在后台运行而不需要任何用户输入的异步操作。它可以开箱即用,并且可以添加自定义的.NET代码来改变行为。对话框类似,但收集用户信息作为其操作的输入(如果用户需要做出选择或输入随时间变化的内容,则可用)。
您可以通过选择一个或多个行,然后点击按钮的工作流程手动运行工作流程。类似的对话过程。
更多信息:Processes, Workflows, and Dialogs for Microsoft Dynamics CRM
嗨亨利克,我可以做到这一点与工作流的资源,我想要做的是通过网格中的JavaScript不需要从该entatie中选择任何记录,然后按下按钮,它会更改特定字段的内容 – 2013-03-20 16:05:06
好吧,我解决我的问题如下,因为我不能把自己限制在了50条记录,该页面在视图中使用SelectedControlSelectedAllItemIds
给出,因为XML只取回50总的GUID 。 所以现在按钮调用ASP页面的JavaScript网址,这是在C#代码:
EntityCollection retrieved = GetInformacaoDB(new_teste.EntityLogicalName.ToString());
DataSet ds1 = new DataSet();
DataTable dt = new DataTable("List");
dt.Clear();
dt.Columns.Add(new DataColumn("Description", typeof(string)));
foreach (var c in retrieved.Entities)
{
GridView1.Visible = false;
DataRow dr = dt.NewRow();
dr["Description"] = c.Attributes["new_testid"];
object _test = c.Attributes["new_testid"];
string testGuid = _test.ToString();
Guid _testId = new Guid(testGuid);
Entity EntityName = new EntityName("new_test");
ColumnSet attributes = new ColumnSet(new string[] { "new_testid" });
EntityName = _orgService.Retrieve(EntityName.LogicalName, _testId, attributes);
entidade["new_onoff"] = "OffViaWebService";
_orgService.Update(EntityName);
dt.Rows.Add(dr);
}
ds1.Tables.Add(dt);
GridView1.DataSource = ds1;
GridView1.DataBind();
Cache["Data"] = ds1;
嗨,你想在一个实体或不同的实体更改记录的值? – 2013-03-20 12:53:10
在相同的权利,但不同的记录 – 2013-03-20 16:05:43
看到我的更新与另一个选项。 – 2013-03-20 16:31:12