gpt4 book ai didi

java - 从 Java API 激活和停用 Dynamics CRM 中的实体

转载 作者:行者123 更新时间:2023-12-01 12:28:53 26 4
gpt4 key购买 nike

我正在使用 Microsoft Dynamics CRM,使用根据其教程和 SDK 下载生成的 Java API。

我可以毫无问题地创建、删除和更新实体。

我现在正处于需要将实体设置为 Activity 或非 Activity 状态的阶段。

我原以为正确的做法大致是

public void doIt(OrganisationServicesStub stub, OptionSetValue stateValue, OptionSetValue statusValue)
{
Guid g = new Guid();
g.setGuid("abc-def-ghijkl");

Entity updateMe = new Entity();
updateMe.setId(g);
updateMe.setLogicalName("ei_teacherdetails");
AttributeCollection updateCollection = new AttributeCollection();
updateCollection.addKeyValuePairOfstringanyType(pair("statecode", stateValue));
updateCollection.addKeyValuePairOfstringanyType(pair("statuscode", statusValue));
updateMe.setAttributes(updateCollection);

update.setEntity(updateMe);
stub.update(update);
}

public static KeyValuePairOfstringanyType pair(String key, Object value)
{
KeyValuePairOfstringanyType attr = new KeyValuePairOfstringanyType();
attr.setKey(key);
attr.setValue(value);
return attr;
}

上面的代码已经过测试,适用于更新除状态/状态属性之外的任何属性。然而,当我尝试上面的代码(即尝试更新状态/状态的代码)时,我收到以下错误(分别使用状态/状态值 1 和 2 进行调用。我通过查看现有的 Invalid 来获取这些值CRM 中的条目通过相同的 api 转储,因此我(几乎)确定它们是正确的。

org.apache.axis2.AxisFault: 2 is not a valid status code for state code ei_teacherdetailsState.Active

我注意到在其他语言中,有一个 SetState 请求,但我在 Java 中没有找到类似的请求。

如果有人在我之前走过这条路,我将非常感谢您提供的任何帮助。

最佳答案

据我所知,正确答案如下......

private void doIt(OrganizationServiceStub stub, OptionSetValue state, OptionSetValue status)
{
OrganizationRequest request = new OrganizationRequest();
request.setRequestName("SetState");

ParameterCollection collection = new ParameterCollection();
collection.addKeyValuePairOfstringanyType(pair("State", state));
collection.addKeyValuePairOfstringanyType(pair("Status", status));
request.setParameters(collection);

Guid g = new Guid();
g.setGuid("abc0def-ghi");
EntityReference ref = new EntityReference();
ref.setId(g);
ref.setLogicalName("ei_teacherdetails");
collection.addKeyValuePairOfstringanyType(pair("EntityMoniker", ref));

Execute exe = new Execute();
exe.setRequest(request);
stub.execute(exe);
}

我认为这相当晦涩难懂。我特别喜欢有一个名为“EntryMoniker”的参数。不管怎样,我把这个答案留在这里,以防万一其他可怜的人最终不得不处理这个错综复杂的 MS CRM。

关于java - 从 Java API 激活和停用 Dynamics CRM 中的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26111117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com