2010-10-31 30 views
0

当我尝试创建一个新的OpportunityLineItemSchedule我遇到下面的错误..错误,同时创造了新的“OpportunityLineItemSchedule”使用SFDC合作伙伴API

错误代码:INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY

错误消息:足够的访问权限交叉引用编号

附件是代码片段。任何帮助将非常有用。

SObject[] rs = new SObject[1]; 
MessageElement[] specificRS = new MessageElement[6]; 
specificRS[0] = new MessageElement(new QName("OpportunityLineItemId"),"00k7000000DFLqfAAH"); 
specificRS[1] = new MessageElement(new QName("Description"),"Rev Schedule Descr"); 
specificRS[2] = new MessageElement(new QName("Type"),"Quantity"); 
specificRS[3] = new MessageElement(new QName("Quantity"),(double)2); 
specificRS[4] = new MessageElement(new QName("Revenue"),(double)400000.00); 
specificRS[5] = new MessageElement(new QName("ScheduleDate"),"2010-10-30"); 

rs[0] = new SObject(); 
rs[0].setType("OpportunityLineItemSchedule"); 
rs[0].set_any(specificRS); 

SaveResult[] sr = null; 
try { 
    sr = binding.create(rs); 
} catch (Exception ex) { 
    System.out.println("An unexpected error has occurred." + ex.getMessage()); 
    ex.printStackTrace(); 
    return; 
} 

回答

0

以下工作..

MessageElement[] specificRS2 = new MessageElement[5]; 
specificRS2[0] = new MessageElement(new QName("OpportunityLineItemId"),"00k7000000DFcOG"); 
// PricebookEntryId can be found by joining PricebookEntry and Pricebook2 tables (on Product2Id and 
specificRS2[1] = new MessageElement(new QName("Description"),"Rev Schedule Descr2"); 
specificRS2[2] = new MessageElement(new QName("ScheduleDate"),"2010-10-31"); 
//specificRS[3] = new MessageElement(new QName("Quantity"),(double)2); 
specificRS2[3] = new MessageElement(new QName("Revenue"),(double)10.00); 
//specificRS[4] = new MessageElement(new QName("Type"),"Quantity"); // and/or "Revenue" 
specificRS2[4] = new MessageElement(new QName("Type"),"Revenue"); // and/or "Quantity" 

rs[1] = new SObject(); 
rs[1].setType("OpportunityLineItemSchedule"); 
rs[1].set_any(specificRS2); 

SaveResult[] sr = null; 
try { 
    sr = binding.create(rs); 
} catch (Exception ex) { 
    System.out.println("An unexpected error has occurred." + ex.getMessage()); 
    ex.printStackTrace(); 
    return; 
} 
0

这通常是当代码试图使用一个ID的对象不存在,或者该用户没有访问错误。我认为这两个片段唯一的区别是OpportunityLineItem ID?检查运行代码的用户是否可以使用该ID访问该项目。

0

看一看在Allowed Type Field ValuesAllowed Quantity and Revenue Field Values文档OpportunityLineItemSchedule。

一个OpportunityLineItemSchedule允许的类型值取决于产品级的时间表喜好和订单项是否有任何现有计划

您可能需要检查是否有现有OpportunityLineItemSchedule记录。

允许的数量和收入字段值取决于类型字段

你只设置数量或收入领域,而不是两个值。