我目前正在开发MS Dynamics CRM 2013-插件。
当我尝试将字符串值分配给实体字段的键时,会给我“ keynotfound”异常。
这使我毫无头绪,因为我可以验证密钥是否存在。我提供的密钥也已正确写入,并且数据类型也兼容。
这里是一些额外的信息:
我尝试解决服务器重新启动的问题。没有。
不能进行远程调试。
我将“ retrieved.EntityCollection.Entities [i] [forField]”换成Retrieveed.EntityCollection.Entities [i] [“ new_name”],一切都正常工作(有点明显的意思,但“ new_name”不是我尝试访问的密钥)。
执行停止@“ if(retrieved.EntityCollection.Entities [i] [forField] .ToString()!=”“ &&!overwriteExisting)”
你有个主意要帮我吗?
public void GenerateNumberForEntityCollection(string target)
{
try
{
// variables for number generation
bool overwriteExisting = (bool)preImageEntity["new_overwriteexisting"];
int suffixstart = (int)preImageEntity["new_suffixstart"];
string forField= preImageEntity["new_forfield"].ToString();
string prefix = preImageEntity["new_prefix"].ToString();
string postfix = preImageEntity["new_postfix"].ToString();
string separator = preImageEntity["new_separator"].ToString();
// Build query to get all the entries
RetrieveMultipleResponse retrieved;
int PageNumber = 1;
string PagingCookie = string.Empty;
int PageSize = 5000;
string[] Columns = { forField };
QueryExpression query = new QueryExpression()
{
EntityName = target,
ColumnSet = new ColumnSet(Columns),
PageInfo = new PagingInfo()
{
PageNumber = 1,
Count = PageSize
}
};
do
{
if (PageNumber != 1)
{
query.PageInfo.PageNumber = PageNumber;
query.PageInfo.PagingCookie = PagingCookie;
}
RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
retrieve.Query = query;
retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);
// Now that all entities are retrieved, iterate through them to gen. the numbers
int i = 0;
foreach (Entity entity in retrieved.EntityCollection.Entities)
{
if (retrieved.EntityCollection.Entities[i][forField].ToString() != "" && !overwriteExisting)
{
//continue;
}
else
{
retrieved.EntityCollection.Entities[i][forField] = prefix + separator + suffixstart.ToString() + separator + postfix;
}
suffixstart++;
service.Update(retrieved.EntityCollection.Entities[i]);
i++;
}
if (retrieved.EntityCollection.MoreRecords)
{
PageNumber++;
PagingCookie = retrieved.EntityCollection.PagingCookie;
}
} while (retrieved.EntityCollection.MoreRecords);
}
catch (Exception e)
{
tracing.Trace("GenerateNumberForEntityCollection: Failed: {0}", e.ToString());
}
}
参考方案
在Dynamics CRM中查询数据时,重要的是要知道数据库中具有null
值的记录字段不包含在要返回的Attributes
实例的Entity
集合中。
使用以下结构从Entity
的Attribute
获取值:
var value = retrieved.EntityCollection.Entities[i][forField].ToString();
当属性forField
在数据库中已经有一个值时成功,但是当其当前值为null
时失败。
因此,从实体获取属性值的首选方法是GetAttributeValue<T>
,如下所示:
var value = retrieved.EntityCollection.Entities[i].getAttributeValue<string>(forField);
当属性存在于属性集合中时,此方法返回值,否则返回null
。
我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
如何在JAVA或C#中使用Web服务或REST API在Microsoft Dynamics CRM 2016(版本8)中创建案例? - java我想使用Web服务在C#或Java中使用Microsoft Dynamics 2018(Ver.8)创建案例。经过大量的谷歌搜索之后,我很幸运,没有或很少有用的资源很少。 Microsoft文档是完全死胡同。以下是我的要求:创建一个案例。更新CASE更有可能关闭CASE。创建联系人。我需要在JAVA或C#中使用Rest API或Web服务执行这些操作。任何帮…
每个文件合并后添加换行 - python我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…
您如何在列表内部调用一个字符串位置? - python我一直在做迷宫游戏。我首先决定制作一个迷你教程。游戏开发才刚刚开始,现在我正在尝试使其向上发展。我正在尝试更改PlayerAre变量,但是它不起作用。我试过放在列表内和列表外。maze = ["o","*","*","*","*","*",…