Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SOAP/Java在MS Dynamics CRM 2011中创建产品_Java_Soap_Dynamics Crm 2011_Dynamics Crm Online - Fatal编程技术网

通过SOAP/Java在MS Dynamics CRM 2011中创建产品

通过SOAP/Java在MS Dynamics CRM 2011中创建产品,java,soap,dynamics-crm-2011,dynamics-crm-online,Java,Soap,Dynamics Crm 2011,Dynamics Crm Online,我从crm.dynamics.com/XRMServices/2011/Discovery.svc?wsdl和crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl架构生成了所有必需的java类 我使用LiveId在CRM中进行了身份验证 现在我需要在产品目录中创建产品。下面是代码: Entity newEntryInfo = new Entity(); AttributeCollection collection = new Attri

我从crm.dynamics.com/XRMServices/2011/Discovery.svc?wsdl和crm.dynamics.com/XRMServices/2011/Organization.svc?wsdl架构生成了所有必需的java类

我使用LiveId在CRM中进行了身份验证

现在我需要在产品目录中创建产品。下面是代码:

Entity newEntryInfo = new Entity();

AttributeCollection collection = new AttributeCollection();
addAttribute(collection, "name", "Tama Starclassic Performer");
addAttribute(collection, "productnumber", "1");

addAttribute(collection, "price", createMoney("100.0"));
addAttribute(collection, "isstockitem", Boolean.TRUE);
addAttribute(collection, "statuscode", 1);

newEntryInfo.setAttributes(collection);
newEntryInfo.setLogicalName("product");

Guid productGuid = serviceStub.create(newEntryInfo);

private void addAttribute(AttributeCollection collection, String key, Object value) {
    KeyValuePairOfstringanyType values = new KeyValuePairOfstringanyType();
    values.setKey(key);
    values.setValue(value);

    collection.addKeyValuePairOfstringanyType(values);
}
执行显示错误“机组计划id丢失”

看起来我需要为新产品提供“单元组”和“默认单元”


问题:如何设置这些值?如果我使用RelatedEntities(如何创建)或Attributes(如何创建)

作为表单上的查找,您应该能够使用
EntityReference设置值

使用以下方法:

addAttribute(collection, "fieldName", new EntityReference("entityName", new Guid("id"))
其中:

  • fieldName
    是要填充的字段的架构名称
  • entityName
    是要填充字段的实体的架构名称
  • id
    是与
    entityName
    类型相同的记录的
    Guid
把它放到一个上下文中(在这个上下文中,我碰巧知道我头脑中的模式名称)

另一方面,您使用这种冗长的代码风格有什么特别的原因吗?实体类有一个链接到基础属性字典的索引。这有点直截了当

如果您想了解更多示例,请查看:

//Create a new contact first
Entity contact = new Entity("contact");
contact["lastname"] = "Wood";

Guid contactId = service.Create(contact);

//Create an incident/case which links to that new contact
Entity incident = new Entity("incident");
incident["customerid"] = new EntityReference("contact", contactId)
service.Create(incident)