dynamics_crm 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbd8933df47587a12b12a2115afbb57d2e8d2b1c
4
- data.tar.gz: 8343d6d884713b0956e71a9ffcde12c6364302b3
3
+ metadata.gz: d2493af4ed2c1023379591be4833a321457200d8
4
+ data.tar.gz: 5d48de1485d16926dc2731db51bccd8ce8deeccb
5
5
  SHA512:
6
- metadata.gz: dec2cf3cd88e6bfbba5ec88fb0d7cf237539de43c2b1102ed3e736df9e20d41dab7713e519ffba54299e8e2c2cb3bd259794f49d37c0f5fbf62d8681cb86f5d0
7
- data.tar.gz: 9cc80f8452b8dd72280ef9ac1ca5900bd96f77676ae2f905923e1ea18cc04fed3c338a4a4ce8bf16b7c3e520cf66af7e60d67a0f43733ce1b2fd1265c41e6690
6
+ metadata.gz: 0cb157d1b9e89f0c64b6c8c19000728c8a977783434f31dc25af561826308a3deb532204ca6e96eb31fa9a6cd14523ec1c48f6b9586d47c18f8a2702ddf054ca
7
+ data.tar.gz: a8af9693d74028ed6b8b5e7889e69a60adfe5560ece554f1f82d22ab70d13ecf8ee09c63278bfaf025b428ed4e6cca7957a0be3446ec1d1fbf8b3ba6440983b7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.6.0 (December 30, 2014)
2
+
3
+ * Adds support for Relationship Metadata.
4
+ * Adds support for AliasedValue attribute type.
5
+ * Moves FetchXml condition support to Entity class.
6
+ * Adds configurable link-type attribute to LinkEntity.
7
+
1
8
  ## 0.5.0 (December 19, 2014)
2
9
 
3
10
  * Adds On-Premise Authenticate support with specified hostname. PR #18
data/README.md CHANGED
@@ -48,14 +48,23 @@ client.retrieve_multiple('account', [["name", "Equal", "Test Account"], ["Name,
48
48
  ### fetch (FetchXml)
49
49
 
50
50
  ```ruby
51
+ # Raw XML Support
51
52
  xml = %Q{<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
52
53
  <entity name="opportunityproduct">
53
54
  <attribute name="opportunityproductid" />
54
- <attribute name="productid" />
55
55
  <attribute name="productdescription" />
56
56
  <attribute name="priceperunit" />
57
57
  <attribute name="quantity" />
58
58
  <order attribute="productid" descending="false" />
59
+ <link-entity name="product" from="productid" to="productid" alias="product" link-type="inner">
60
+ <attribute name="name" />
61
+ <attribute name="producttypecode" />
62
+ <attribute name="price" />
63
+ <attribute name="standardcost" />
64
+ </link-entity>
65
+ <filter type="and">
66
+ <condition attribute="opportunityid" operator="eq" value="02dd7344-d04a-e411-a9d3-9cb654950300" />
67
+ </filter>
59
68
  </entity>
60
69
  </fetch>}
61
70
 
@@ -65,6 +74,26 @@ result = client.fetch(xml)
65
74
  # result.entities => [DynamicsCRM::XML::Entity, ...]
66
75
  ```
67
76
 
77
+ ```ruby
78
+ # Using FetchXml::Builder
79
+ builder = DynamicsCRM::FetchXml::Builder.new()
80
+
81
+ entity = builder.entity('opportunityproduct').add_attributes(
82
+ ['productdescription', 'priceperunit', 'quantity', 'opportunityproductid']
83
+ ).order('productid')
84
+
85
+ entity.link_entity('product', to: 'productid', from: 'productid', :alias => 'product').add_attributes(
86
+ ['name', 'producttypecode', 'price', 'standardcost']
87
+ )
88
+
89
+ entity.add_condition('opportunityid', 'eq', '02dd7344-d04a-e411-a9d3-9cb654950300')
90
+
91
+ result = client.fetch(builder.to_xml)
92
+ # => #<DynamicsCRM::XML::EntityCollection>
93
+ # result.entity_name => 'opportunityproduct'
94
+ # result.entities => [DynamicsCRM::XML::Entity, ...]
95
+ ```
96
+
68
97
  ### create
69
98
 
70
99
  ```ruby
data/lib/dynamics_crm.rb CHANGED
@@ -18,6 +18,8 @@ require "dynamics_crm/response/create_result"
18
18
  require "dynamics_crm/response/execute_result"
19
19
  # Metadata
20
20
  require "dynamics_crm/metadata/xml_document"
21
+ require "dynamics_crm/metadata/one_to_many_relationship"
22
+ require "dynamics_crm/metadata/relationship_metadata"
21
23
  require "dynamics_crm/metadata/entity_metadata"
22
24
  require "dynamics_crm/metadata/attribute_metadata"
23
25
  require "dynamics_crm/metadata/retrieve_all_entities_response"
@@ -30,7 +30,6 @@ module DynamicsCRM
30
30
  attr_accessor :version, :output_format, :mapping, :distinct
31
31
 
32
32
  def initialize(options={})
33
- @builder = ::Builder::XmlMarkup.new(:indent=>2)
34
33
  @entities = []
35
34
  @link_entities = []
36
35
 
@@ -46,6 +45,8 @@ module DynamicsCRM
46
45
  end
47
46
 
48
47
  def to_xml
48
+ @builder = ::Builder::XmlMarkup.new(:indent=>2)
49
+
49
50
  # <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
50
51
  @builder.fetch(version: @version, :"output-format" => @output_format, mapping: @mapping, distinct: @distinct) {
51
52
  @entities.each do |e|
@@ -62,6 +63,16 @@ module DynamicsCRM
62
63
 
63
64
  add_link_entities(e)
64
65
 
66
+ if e.has_conditions?
67
+ # <filter type="and">
68
+ @builder.filter(type: 'and') {
69
+ e.conditions.each do |c|
70
+ # <condition attribute="opportunityid" operator="eq" value="02dd7344-d04a-e411-a9d3-9cb654950300" />
71
+ @builder.condition(attribute: c[:attribute], operator: c[:operator], value: c[:value])
72
+ end
73
+ }
74
+ end
75
+
65
76
  # </entity>
66
77
  }
67
78
  end
@@ -73,8 +84,9 @@ module DynamicsCRM
73
84
 
74
85
  def add_link_entities(e)
75
86
  e.link_entities.each do |le|
76
- # <link-entity name="product" from="productid" to="productid" alias="product">
77
- @builder.tag!('link-entity', name: le.logical_name, from: le.from, to: le.to, :alias => le.alias) {
87
+ # <link-entity name="product" from="productid" to="productid" alias="product" link-type="outer">
88
+ # NOTE: Use outer join in case related elements do not exist.
89
+ @builder.tag!('link-entity', name: le.logical_name, from: le.from, to: le.to, :alias => le.alias, :"link-type" => le.link_type) {
78
90
  le.attributes.each do |field|
79
91
  # <attribute name="name" />
80
92
  @builder.attribute(name: field)
@@ -3,13 +3,14 @@ module DynamicsCRM
3
3
  class Entity
4
4
  attr_reader :logical_name, :attributes
5
5
  attr_reader :order_field, :order_desc
6
- attr_reader :link_entities
6
+ attr_reader :link_entities, :conditions
7
7
 
8
8
  def initialize(logical_name, options={})
9
9
  # options used by LinkEntity subclass
10
10
  @logical_name = logical_name
11
11
  @attributes = []
12
12
  @link_entities = []
13
+ @conditions = []
13
14
  end
14
15
 
15
16
  def add_attributes(field_names=nil)
@@ -29,6 +30,19 @@ module DynamicsCRM
29
30
  @link_entities.last
30
31
  end
31
32
 
33
+ def add_condition(attribute, operator, value)
34
+ @conditions << {
35
+ attribute: attribute,
36
+ operator: operator,
37
+ value: value
38
+ }
39
+ self
40
+ end
41
+
42
+ def has_conditions?
43
+ @conditions.any?
44
+ end
45
+
32
46
  end
33
47
  end
34
48
  end
@@ -1,28 +1,16 @@
1
1
  module DynamicsCRM
2
2
  module FetchXml
3
3
  class LinkEntity < FetchXml::Entity
4
- attr_accessor :from, :to, :alias, :conditions
4
+ attr_accessor :from, :to, :alias, :link_type
5
5
 
6
6
  def initialize(logical_name, options={})
7
7
  super
8
8
  @from = options[:from]|| "#{logical_name}id"
9
9
  @to = options[:to] || "#{logical_name}id"
10
10
  @alias = options[:alias] || logical_name
11
- @conditions = []
11
+ @link_type = options[:link_type] || "inner"
12
12
  end
13
13
 
14
- def add_condition(attribute, operator, value)
15
- @conditions << {
16
- attribute: attribute,
17
- operator: operator,
18
- value: value
19
- }
20
- self
21
- end
22
-
23
- def has_conditions?
24
- @conditions.any?
25
- end
26
14
  end
27
15
  end
28
16
  end
@@ -5,6 +5,8 @@ module DynamicsCRM
5
5
  class EntityMetadata < XmlDocument
6
6
  attr_reader :attributes
7
7
 
8
+ include DynamicsCRM::Metadata::RelationshipMetadata
9
+
8
10
  def initialize(document)
9
11
  super
10
12
  end
@@ -0,0 +1,32 @@
1
+ module DynamicsCRM
2
+ module Metadata
3
+ # Represents OneToManyRelationshipMetadata XML fragment.
4
+ class OneToManyRelationship < XmlDocument
5
+
6
+ attr_reader :entity
7
+
8
+ def initialize(entity, xml_fragment)
9
+ super(xml_fragment)
10
+ @entity = entity
11
+ end
12
+
13
+ def link_entity_fragment(attributes=[])
14
+ from_object = self.ReferencedEntity
15
+ from_attribute = self.ReferencedAttribute
16
+ to_object = self.ReferencingEntity
17
+ to_attribute = self.ReferencingAttribute
18
+
19
+ attribute_xml = attributes.map {|a| %Q{ <attribute name="#{a}" />} }.join("\n")
20
+ %Q{
21
+ <link-entity name="#{from_object}" from="#{from_attribute}" to="#{to_attribute}" alias="#{from_object}">
22
+ #{attribute_xml}
23
+ </link-entity>
24
+ }
25
+ end
26
+ end
27
+
28
+ # Represents ManyToManyRelationshipMetadata XML fragment.
29
+ class ManyToManyRelationship < OneToManyRelationship; end
30
+
31
+ end
32
+ end
@@ -0,0 +1,48 @@
1
+ module DynamicsCRM
2
+ module Metadata
3
+ # This class is expected to be included with EntityMetadata and supports loading of relationships
4
+ # http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.relationshipmetadata.aspx
5
+ module RelationshipMetadata
6
+
7
+ # OneToManyRelationships => OneToManyRelationshipMetadata
8
+ def one_to_many
9
+ return @one_to_many if @one_to_many
10
+
11
+ @one_to_many = []
12
+ relationship_element = "./d:OneToManyRelationships/d:OneToManyRelationshipMetadata"
13
+ @document.get_elements(relationship_element).each do |metadata|
14
+ @one_to_many << OneToManyRelationship.new(self, metadata)
15
+ end
16
+
17
+ @one_to_many
18
+ end
19
+
20
+ # ManyToOneRelationships => OneToManyRelationshipMetadata
21
+ def many_to_one
22
+ return @many_to_one if @many_to_one
23
+
24
+ @many_to_one = []
25
+ relationship_element = "./d:ManyToOneRelationships/d:OneToManyRelationshipMetadata"
26
+ @document.get_elements(relationship_element).each do |metadata|
27
+ @many_to_one << OneToManyRelationship.new(self, metadata)
28
+ end
29
+
30
+ @many_to_one
31
+ end
32
+
33
+ # ManyToManyRelationships => ManyToManyRelationshipMetadata
34
+ def many_to_many
35
+ return @many_to_many if @many_to_many
36
+
37
+ @many_to_many = []
38
+ relationship_element = "./d:ManyToManyRelationships/d:ManyToManyRelationshipMetadata"
39
+ @document.get_elements(relationship_element).each do |metadata|
40
+ @many_to_many << ManyToManyRelationship.new(self, metadata)
41
+ end
42
+ @many_to_many
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module DynamicsCRM
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -41,6 +41,8 @@ module DynamicsCRM
41
41
  value = value_element.get_elements("d:EntityMetadata")
42
42
  when "d:ArrayOfAttributeMetadata"
43
43
  value = value_element.get_elements("d:AttributeMetadata")
44
+ when "b:AliasedValue"
45
+ value = value_element.elements["b:Value"].text
44
46
  when "b:Money"
45
47
  # Nested value.
46
48
  value = value_element.elements.first.text.to_f
@@ -0,0 +1,839 @@
1
+ <s:Envelope xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://www.w3.org/2005/08/addressing' xmlns:u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'>
2
+ <s:Header>
3
+ <a:Action s:mustUnderstand='1'>
4
+ http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/ExecuteResponse
5
+ </a:Action>
6
+ <a:RelatesTo>urn:uuid:97e2c1bb-838c-470e-8747-bd66ee98944c</a:RelatesTo>
7
+ <ActivityId CorrelationId='182ea9c6-13d3-4d4a-8e47-a590410c9e7c' xmlns='http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics'>00000000-0000-0000-0000-000000000000</ActivityId>
8
+ <o:Security s:mustUnderstand='1' xmlns:o='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
9
+ <u:Timestamp u:Id='_0'>
10
+ <u:Created>2014-05-23T20:11:51.095Z</u:Created>
11
+ <u:Expires>2014-05-23T20:16:51.095Z</u:Expires>
12
+ </u:Timestamp>
13
+ </o:Security>
14
+ </s:Header>
15
+ <s:Body>
16
+ <ExecuteResponse xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services'>
17
+ <ExecuteResult i:type='b:RetrieveEntityResponse' xmlns:b='http://schemas.microsoft.com/xrm/2011/Contracts' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
18
+ <b:ResponseName>RetrieveEntity</b:ResponseName>
19
+ <b:Results xmlns:c='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>
20
+ <b:KeyValuePairOfstringanyType>
21
+ <c:key>EntityMetadata</c:key>
22
+ <c:value i:type='d:EntityMetadata' xmlns:d='http://schemas.microsoft.com/xrm/2011/Metadata'>
23
+ <d:MetadataId>30b0cd7e-0081-42e1-9a48-688442277fae</d:MetadataId>
24
+ <d:HasChanged i:nil='true'/>
25
+ <d:ActivityTypeMask>0</d:ActivityTypeMask>
26
+ <d:Attributes i:nil='true'/>
27
+ <d:AutoCreateAccessTeams i:nil='true'/>
28
+ <d:AutoRouteToOwnerQueue>false</d:AutoRouteToOwnerQueue>
29
+ <d:CanBeInManyToMany>
30
+ <b:CanBeChanged>false</b:CanBeChanged>
31
+ <b:ManagedPropertyLogicalName>canbeinmanytomany</b:ManagedPropertyLogicalName>
32
+ <b:Value>true</b:Value>
33
+ </d:CanBeInManyToMany>
34
+ <d:CanBePrimaryEntityInRelationship>
35
+ <b:CanBeChanged>false</b:CanBeChanged>
36
+ <b:ManagedPropertyLogicalName>canbeprimaryentityinrelationship</b:ManagedPropertyLogicalName>
37
+ <b:Value>true</b:Value>
38
+ </d:CanBePrimaryEntityInRelationship>
39
+ <d:CanBeRelatedEntityInRelationship>
40
+ <b:CanBeChanged>false</b:CanBeChanged>
41
+ <b:ManagedPropertyLogicalName>canberelatedentityinrelationship</b:ManagedPropertyLogicalName>
42
+ <b:Value>true</b:Value>
43
+ </d:CanBeRelatedEntityInRelationship>
44
+ <d:CanCreateAttributes>
45
+ <b:CanBeChanged>false</b:CanBeChanged>
46
+ <b:ManagedPropertyLogicalName>cancreateattributes</b:ManagedPropertyLogicalName>
47
+ <b:Value>true</b:Value>
48
+ </d:CanCreateAttributes>
49
+ <d:CanCreateCharts>
50
+ <b:CanBeChanged>false</b:CanBeChanged>
51
+ <b:ManagedPropertyLogicalName>cancreatecharts</b:ManagedPropertyLogicalName>
52
+ <b:Value>true</b:Value>
53
+ </d:CanCreateCharts>
54
+ <d:CanCreateForms>
55
+ <b:CanBeChanged>false</b:CanBeChanged>
56
+ <b:ManagedPropertyLogicalName>cancreateforms</b:ManagedPropertyLogicalName>
57
+ <b:Value>true</b:Value>
58
+ </d:CanCreateForms>
59
+ <d:CanCreateViews>
60
+ <b:CanBeChanged>false</b:CanBeChanged>
61
+ <b:ManagedPropertyLogicalName>cancreateviews</b:ManagedPropertyLogicalName>
62
+ <b:Value>true</b:Value>
63
+ </d:CanCreateViews>
64
+ <d:CanModifyAdditionalSettings>
65
+ <b:CanBeChanged>true</b:CanBeChanged>
66
+ <b:ManagedPropertyLogicalName>canmodifyadditionalsettings</b:ManagedPropertyLogicalName>
67
+ <b:Value>true</b:Value>
68
+ </d:CanModifyAdditionalSettings>
69
+ <d:CanTriggerWorkflow>true</d:CanTriggerWorkflow>
70
+ <d:Description>
71
+ <b:LocalizedLabels>
72
+ <b:LocalizedLabel>
73
+ <d:MetadataId i:nil='true'/>
74
+ <d:HasChanged i:nil='true'/>
75
+ <b:IsManaged>true</b:IsManaged>
76
+ <b:Label>
77
+ Potential revenue-generating event, or sale to an account,
78
+ which needs to be tracked through a sales process to
79
+ completion.
80
+ </b:Label>
81
+ <b:LanguageCode>1033</b:LanguageCode>
82
+ </b:LocalizedLabel>
83
+ </b:LocalizedLabels>
84
+ <b:UserLocalizedLabel>
85
+ <d:MetadataId i:nil='true'/>
86
+ <d:HasChanged i:nil='true'/>
87
+ <b:IsManaged>true</b:IsManaged>
88
+ <b:Label>
89
+ Potential revenue-generating event, or sale to an account,
90
+ which needs to be tracked through a sales process to
91
+ completion.
92
+ </b:Label>
93
+ <b:LanguageCode>1033</b:LanguageCode>
94
+ </b:UserLocalizedLabel>
95
+ </d:Description>
96
+ <d:DisplayCollectionName>
97
+ <b:LocalizedLabels>
98
+ <b:LocalizedLabel>
99
+ <d:MetadataId i:nil='true'/>
100
+ <d:HasChanged i:nil='true'/>
101
+ <b:IsManaged>true</b:IsManaged>
102
+ <b:Label>Opportunities</b:Label>
103
+ <b:LanguageCode>1033</b:LanguageCode>
104
+ </b:LocalizedLabel>
105
+ </b:LocalizedLabels>
106
+ <b:UserLocalizedLabel>
107
+ <d:MetadataId i:nil='true'/>
108
+ <d:HasChanged i:nil='true'/>
109
+ <b:IsManaged>true</b:IsManaged>
110
+ <b:Label>Opportunities</b:Label>
111
+ <b:LanguageCode>1033</b:LanguageCode>
112
+ </b:UserLocalizedLabel>
113
+ </d:DisplayCollectionName>
114
+ <d:DisplayName>
115
+ <b:LocalizedLabels>
116
+ <b:LocalizedLabel>
117
+ <d:MetadataId i:nil='true'/>
118
+ <d:HasChanged i:nil='true'/>
119
+ <b:IsManaged>true</b:IsManaged>
120
+ <b:Label>Opportunity</b:Label>
121
+ <b:LanguageCode>1033</b:LanguageCode>
122
+ </b:LocalizedLabel>
123
+ </b:LocalizedLabels>
124
+ <b:UserLocalizedLabel>
125
+ <d:MetadataId i:nil='true'/>
126
+ <d:HasChanged i:nil='true'/>
127
+ <b:IsManaged>true</b:IsManaged>
128
+ <b:Label>Opportunity</b:Label>
129
+ <b:LanguageCode>1033</b:LanguageCode>
130
+ </b:UserLocalizedLabel>
131
+ </d:DisplayName>
132
+ <d:EnforceStateTransitions>false</d:EnforceStateTransitions>
133
+ <d:IconLargeName i:nil='true'/>
134
+ <d:IconMediumName i:nil='true'/>
135
+ <d:IconSmallName i:nil='true'/>
136
+ <d:IsAIRUpdated>true</d:IsAIRUpdated>
137
+ <d:IsActivity>false</d:IsActivity>
138
+ <d:IsActivityParty>true</d:IsActivityParty>
139
+ <d:IsAuditEnabled>
140
+ <b:CanBeChanged>true</b:CanBeChanged>
141
+ <b:ManagedPropertyLogicalName>canmodifyauditsettings</b:ManagedPropertyLogicalName>
142
+ <b:Value>false</b:Value>
143
+ </d:IsAuditEnabled>
144
+ <d:IsAvailableOffline>true</d:IsAvailableOffline>
145
+ <d:IsBusinessProcessEnabled>true</d:IsBusinessProcessEnabled>
146
+ <d:IsChildEntity>false</d:IsChildEntity>
147
+ <d:IsConnectionsEnabled>
148
+ <b:CanBeChanged>true</b:CanBeChanged>
149
+ <b:ManagedPropertyLogicalName>canmodifyconnectionsettings</b:ManagedPropertyLogicalName>
150
+ <b:Value>true</b:Value>
151
+ </d:IsConnectionsEnabled>
152
+ <d:IsCustomEntity>false</d:IsCustomEntity>
153
+ <d:IsCustomizable>
154
+ <b:CanBeChanged>false</b:CanBeChanged>
155
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
156
+ <b:Value>true</b:Value>
157
+ </d:IsCustomizable>
158
+ <d:IsDocumentManagementEnabled>true</d:IsDocumentManagementEnabled>
159
+ <d:IsDuplicateDetectionEnabled>
160
+ <b:CanBeChanged>true</b:CanBeChanged>
161
+ <b:ManagedPropertyLogicalName>canmodifyduplicatedetectionsettings</b:ManagedPropertyLogicalName>
162
+ <b:Value>true</b:Value>
163
+ </d:IsDuplicateDetectionEnabled>
164
+ <d:IsEnabledForCharts>true</d:IsEnabledForCharts>
165
+ <d:IsEnabledForTrace>false</d:IsEnabledForTrace>
166
+ <d:IsImportable>true</d:IsImportable>
167
+ <d:IsIntersect>false</d:IsIntersect>
168
+ <d:IsMailMergeEnabled>
169
+ <b:CanBeChanged>true</b:CanBeChanged>
170
+ <b:ManagedPropertyLogicalName>canmodifymailmergesettings</b:ManagedPropertyLogicalName>
171
+ <b:Value>true</b:Value>
172
+ </d:IsMailMergeEnabled>
173
+ <d:IsManaged>true</d:IsManaged>
174
+ <d:IsMappable>
175
+ <b:CanBeChanged>false</b:CanBeChanged>
176
+ <b:ManagedPropertyLogicalName>ismappable</b:ManagedPropertyLogicalName>
177
+ <b:Value>true</b:Value>
178
+ </d:IsMappable>
179
+ <d:IsQuickCreateEnabled>true</d:IsQuickCreateEnabled>
180
+ <d:IsReadOnlyInMobileClient>
181
+ <b:CanBeChanged>true</b:CanBeChanged>
182
+ <b:ManagedPropertyLogicalName>canmodifymobileclientreadonly</b:ManagedPropertyLogicalName>
183
+ <b:Value>false</b:Value>
184
+ </d:IsReadOnlyInMobileClient>
185
+ <d:IsReadingPaneEnabled>true</d:IsReadingPaneEnabled>
186
+ <d:IsRenameable>
187
+ <b:CanBeChanged>false</b:CanBeChanged>
188
+ <b:ManagedPropertyLogicalName>isrenameable</b:ManagedPropertyLogicalName>
189
+ <b:Value>true</b:Value>
190
+ </d:IsRenameable>
191
+ <d:IsStateModelAware>false</d:IsStateModelAware>
192
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
193
+ <d:IsValidForQueue>
194
+ <b:CanBeChanged>true</b:CanBeChanged>
195
+ <b:ManagedPropertyLogicalName>canmodifyqueuesettings</b:ManagedPropertyLogicalName>
196
+ <b:Value>false</b:Value>
197
+ </d:IsValidForQueue>
198
+ <d:IsVisibleInMobile>
199
+ <b:CanBeChanged>true</b:CanBeChanged>
200
+ <b:ManagedPropertyLogicalName>canmodifymobilevisibility</b:ManagedPropertyLogicalName>
201
+ <b:Value>true</b:Value>
202
+ </d:IsVisibleInMobile>
203
+ <d:IsVisibleInMobileClient>
204
+ <b:CanBeChanged>true</b:CanBeChanged>
205
+ <b:ManagedPropertyLogicalName>canmodifymobileclientvisibility</b:ManagedPropertyLogicalName>
206
+ <b:Value>true</b:Value>
207
+ </d:IsVisibleInMobileClient>
208
+ <d:LogicalName>opportunity</d:LogicalName>
209
+ <d:ManyToManyRelationships>
210
+ <d:ManyToManyRelationshipMetadata>
211
+ <d:MetadataId>8b366d86-d389-11db-9246-00123f3a1b51</d:MetadataId>
212
+ <d:HasChanged i:nil='true'/>
213
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
214
+ <d:IsCustomizable>
215
+ <b:CanBeChanged>false</b:CanBeChanged>
216
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
217
+ <b:Value>false</b:Value>
218
+ </d:IsCustomizable>
219
+ <d:IsManaged>true</d:IsManaged>
220
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
221
+ <d:SchemaName>opportunitycompetitors_association</d:SchemaName>
222
+ <d:SecurityTypes>None</d:SecurityTypes>
223
+ <d:IntroducedVersion i:nil='true'/>
224
+ <d:RelationshipType>ManyToManyRelationship</d:RelationshipType>
225
+ <d:Entity1AssociatedMenuConfiguration>
226
+ <d:Behavior>DoNotDisplay</d:Behavior>
227
+ <d:Group>Details</d:Group>
228
+ <d:Label>
229
+ <b:LocalizedLabels/>
230
+ <b:UserLocalizedLabel i:nil='true'/>
231
+ </d:Label>
232
+ <d:Order>0</d:Order>
233
+ </d:Entity1AssociatedMenuConfiguration>
234
+ <d:Entity1IntersectAttribute>opportunityid</d:Entity1IntersectAttribute>
235
+ <d:Entity1LogicalName>opportunity</d:Entity1LogicalName>
236
+ <d:Entity2AssociatedMenuConfiguration>
237
+ <d:Behavior>UseCollectionName</d:Behavior>
238
+ <d:Group>Sales</d:Group>
239
+ <d:Label>
240
+ <b:LocalizedLabels/>
241
+ <b:UserLocalizedLabel i:nil='true'/>
242
+ </d:Label>
243
+ <d:Order>40</d:Order>
244
+ </d:Entity2AssociatedMenuConfiguration>
245
+ <d:Entity2IntersectAttribute>competitorid</d:Entity2IntersectAttribute>
246
+ <d:Entity2LogicalName>competitor</d:Entity2LogicalName>
247
+ <d:IntersectEntityName>opportunitycompetitors</d:IntersectEntityName>
248
+ </d:ManyToManyRelationshipMetadata>
249
+ </d:ManyToManyRelationships>
250
+ <d:ManyToOneRelationships>
251
+ <d:OneToManyRelationshipMetadata>
252
+ <d:MetadataId>eff9a4ec-f131-4356-a1cc-af1af2967292</d:MetadataId>
253
+ <d:HasChanged i:nil='true'/>
254
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
255
+ <d:IsCustomizable>
256
+ <b:CanBeChanged>false</b:CanBeChanged>
257
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
258
+ <b:Value>true</b:Value>
259
+ </d:IsCustomizable>
260
+ <d:IsManaged>true</d:IsManaged>
261
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
262
+ <d:SchemaName>lk_opportunitybase_createdby</d:SchemaName>
263
+ <d:SecurityTypes>None</d:SecurityTypes>
264
+ <d:IntroducedVersion i:nil='true'/>
265
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
266
+ <d:AssociatedMenuConfiguration>
267
+ <d:Behavior>DoNotDisplay</d:Behavior>
268
+ <d:Group>Details</d:Group>
269
+ <d:Label>
270
+ <b:LocalizedLabels/>
271
+ <b:UserLocalizedLabel i:nil='true'/>
272
+ </d:Label>
273
+ <d:Order>0</d:Order>
274
+ </d:AssociatedMenuConfiguration>
275
+ <d:CascadeConfiguration>
276
+ <d:Assign>NoCascade</d:Assign>
277
+ <d:Delete>NoCascade</d:Delete>
278
+ <d:Merge>NoCascade</d:Merge>
279
+ <d:Reparent>NoCascade</d:Reparent>
280
+ <d:Share>NoCascade</d:Share>
281
+ <d:Unshare>NoCascade</d:Unshare>
282
+ </d:CascadeConfiguration>
283
+ <d:ReferencedAttribute>systemuserid</d:ReferencedAttribute>
284
+ <d:ReferencedEntity>systemuser</d:ReferencedEntity>
285
+ <d:ReferencingAttribute>createdby</d:ReferencingAttribute>
286
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
287
+ </d:OneToManyRelationshipMetadata>
288
+ <d:OneToManyRelationshipMetadata>
289
+ <d:MetadataId>34e7bb29-d7d0-4dcb-985d-78a992c283cc</d:MetadataId>
290
+ <d:HasChanged i:nil='true'/>
291
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
292
+ <d:IsCustomizable>
293
+ <b:CanBeChanged>false</b:CanBeChanged>
294
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
295
+ <b:Value>true</b:Value>
296
+ </d:IsCustomizable>
297
+ <d:IsManaged>true</d:IsManaged>
298
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
299
+ <d:SchemaName>opportunity_customer_accounts</d:SchemaName>
300
+ <d:SecurityTypes>Append</d:SecurityTypes>
301
+ <d:IntroducedVersion i:nil='true'/>
302
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
303
+ <d:AssociatedMenuConfiguration>
304
+ <d:Behavior>UseCollectionName</d:Behavior>
305
+ <d:Group>Sales</d:Group>
306
+ <d:Label>
307
+ <b:LocalizedLabels/>
308
+ <b:UserLocalizedLabel i:nil='true'/>
309
+ </d:Label>
310
+ <d:Order>10</d:Order>
311
+ </d:AssociatedMenuConfiguration>
312
+ <d:CascadeConfiguration>
313
+ <d:Assign>Cascade</d:Assign>
314
+ <d:Delete>Cascade</d:Delete>
315
+ <d:Merge>Cascade</d:Merge>
316
+ <d:Reparent>Cascade</d:Reparent>
317
+ <d:Share>Cascade</d:Share>
318
+ <d:Unshare>Cascade</d:Unshare>
319
+ </d:CascadeConfiguration>
320
+ <d:ReferencedAttribute>accountid</d:ReferencedAttribute>
321
+ <d:ReferencedEntity>account</d:ReferencedEntity>
322
+ <d:ReferencingAttribute>customerid</d:ReferencingAttribute>
323
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
324
+ </d:OneToManyRelationshipMetadata>
325
+ <d:OneToManyRelationshipMetadata>
326
+ <d:MetadataId>62a8cee1-9854-42c4-a6f4-3e8447d02650</d:MetadataId>
327
+ <d:HasChanged i:nil='true'/>
328
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
329
+ <d:IsCustomizable>
330
+ <b:CanBeChanged>false</b:CanBeChanged>
331
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
332
+ <b:Value>false</b:Value>
333
+ </d:IsCustomizable>
334
+ <d:IsManaged>true</d:IsManaged>
335
+ <d:IsValidForAdvancedFind>false</d:IsValidForAdvancedFind>
336
+ <d:SchemaName>owner_opportunitys</d:SchemaName>
337
+ <d:SecurityTypes>None</d:SecurityTypes>
338
+ <d:IntroducedVersion i:nil='true'/>
339
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
340
+ <d:AssociatedMenuConfiguration>
341
+ <d:Behavior>DoNotDisplay</d:Behavior>
342
+ <d:Group>Details</d:Group>
343
+ <d:Label>
344
+ <b:LocalizedLabels/>
345
+ <b:UserLocalizedLabel i:nil='true'/>
346
+ </d:Label>
347
+ <d:Order>0</d:Order>
348
+ </d:AssociatedMenuConfiguration>
349
+ <d:CascadeConfiguration>
350
+ <d:Assign>NoCascade</d:Assign>
351
+ <d:Delete>NoCascade</d:Delete>
352
+ <d:Merge>NoCascade</d:Merge>
353
+ <d:Reparent>NoCascade</d:Reparent>
354
+ <d:Share>NoCascade</d:Share>
355
+ <d:Unshare>NoCascade</d:Unshare>
356
+ </d:CascadeConfiguration>
357
+ <d:ReferencedAttribute>ownerid</d:ReferencedAttribute>
358
+ <d:ReferencedEntity>owner</d:ReferencedEntity>
359
+ <d:ReferencingAttribute>ownerid</d:ReferencingAttribute>
360
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
361
+ </d:OneToManyRelationshipMetadata>
362
+ <d:OneToManyRelationshipMetadata>
363
+ <d:MetadataId>d5b1787f-2c3b-4144-a4eb-a80ed9eb2ef8</d:MetadataId>
364
+ <d:HasChanged i:nil='true'/>
365
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
366
+ <d:IsCustomizable>
367
+ <b:CanBeChanged>false</b:CanBeChanged>
368
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
369
+ <b:Value>true</b:Value>
370
+ </d:IsCustomizable>
371
+ <d:IsManaged>true</d:IsManaged>
372
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
373
+ <d:SchemaName>lk_opportunitybase_modifiedby</d:SchemaName>
374
+ <d:SecurityTypes>None</d:SecurityTypes>
375
+ <d:IntroducedVersion i:nil='true'/>
376
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
377
+ <d:AssociatedMenuConfiguration>
378
+ <d:Behavior>DoNotDisplay</d:Behavior>
379
+ <d:Group>Details</d:Group>
380
+ <d:Label>
381
+ <b:LocalizedLabels/>
382
+ <b:UserLocalizedLabel i:nil='true'/>
383
+ </d:Label>
384
+ <d:Order>0</d:Order>
385
+ </d:AssociatedMenuConfiguration>
386
+ <d:CascadeConfiguration>
387
+ <d:Assign>NoCascade</d:Assign>
388
+ <d:Delete>NoCascade</d:Delete>
389
+ <d:Merge>NoCascade</d:Merge>
390
+ <d:Reparent>NoCascade</d:Reparent>
391
+ <d:Share>NoCascade</d:Share>
392
+ <d:Unshare>NoCascade</d:Unshare>
393
+ </d:CascadeConfiguration>
394
+ <d:ReferencedAttribute>systemuserid</d:ReferencedAttribute>
395
+ <d:ReferencedEntity>systemuser</d:ReferencedEntity>
396
+ <d:ReferencingAttribute>modifiedby</d:ReferencingAttribute>
397
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
398
+ </d:OneToManyRelationshipMetadata>
399
+ <d:OneToManyRelationshipMetadata>
400
+ <d:MetadataId>2e3c63cd-0075-4701-974c-f441fc79f23b</d:MetadataId>
401
+ <d:HasChanged i:nil='true'/>
402
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
403
+ <d:IsCustomizable>
404
+ <b:CanBeChanged>false</b:CanBeChanged>
405
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
406
+ <b:Value>true</b:Value>
407
+ </d:IsCustomizable>
408
+ <d:IsManaged>true</d:IsManaged>
409
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
410
+ <d:SchemaName>opportunity_customer_contacts</d:SchemaName>
411
+ <d:SecurityTypes>Append</d:SecurityTypes>
412
+ <d:IntroducedVersion i:nil='true'/>
413
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
414
+ <d:AssociatedMenuConfiguration>
415
+ <d:Behavior>UseCollectionName</d:Behavior>
416
+ <d:Group>Sales</d:Group>
417
+ <d:Label>
418
+ <b:LocalizedLabels/>
419
+ <b:UserLocalizedLabel i:nil='true'/>
420
+ </d:Label>
421
+ <d:Order>10</d:Order>
422
+ </d:AssociatedMenuConfiguration>
423
+ <d:CascadeConfiguration>
424
+ <d:Assign>Cascade</d:Assign>
425
+ <d:Delete>Cascade</d:Delete>
426
+ <d:Merge>Cascade</d:Merge>
427
+ <d:Reparent>Cascade</d:Reparent>
428
+ <d:Share>Cascade</d:Share>
429
+ <d:Unshare>Cascade</d:Unshare>
430
+ </d:CascadeConfiguration>
431
+ <d:ReferencedAttribute>contactid</d:ReferencedAttribute>
432
+ <d:ReferencedEntity>contact</d:ReferencedEntity>
433
+ <d:ReferencingAttribute>customerid</d:ReferencingAttribute>
434
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
435
+ </d:OneToManyRelationshipMetadata>
436
+ <d:OneToManyRelationshipMetadata>
437
+ <d:MetadataId>76946cd0-245c-4349-bbb9-8a1ed211155a</d:MetadataId>
438
+ <d:HasChanged i:nil='true'/>
439
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
440
+ <d:IsCustomizable>
441
+ <b:CanBeChanged>false</b:CanBeChanged>
442
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
443
+ <b:Value>true</b:Value>
444
+ </d:IsCustomizable>
445
+ <d:IsManaged>true</d:IsManaged>
446
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
447
+ <d:SchemaName>opportunity_parent_account</d:SchemaName>
448
+ <d:SecurityTypes>Append</d:SecurityTypes>
449
+ <d:IntroducedVersion i:nil='true'/>
450
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
451
+ <d:AssociatedMenuConfiguration>
452
+ <d:Behavior>DoNotDisplay</d:Behavior>
453
+ <d:Group>Details</d:Group>
454
+ <d:Label>
455
+ <b:LocalizedLabels/>
456
+ <b:UserLocalizedLabel i:nil='true'/>
457
+ </d:Label>
458
+ <d:Order>0</d:Order>
459
+ </d:AssociatedMenuConfiguration>
460
+ <d:CascadeConfiguration>
461
+ <d:Assign>NoCascade</d:Assign>
462
+ <d:Delete>RemoveLink</d:Delete>
463
+ <d:Merge>Cascade</d:Merge>
464
+ <d:Reparent>NoCascade</d:Reparent>
465
+ <d:Share>NoCascade</d:Share>
466
+ <d:Unshare>NoCascade</d:Unshare>
467
+ </d:CascadeConfiguration>
468
+ <d:ReferencedAttribute>accountid</d:ReferencedAttribute>
469
+ <d:ReferencedEntity>account</d:ReferencedEntity>
470
+ <d:ReferencingAttribute>parentaccountid</d:ReferencingAttribute>
471
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
472
+ </d:OneToManyRelationshipMetadata>
473
+ <d:OneToManyRelationshipMetadata>
474
+ <d:MetadataId>d92c12f7-8e5a-474c-bc1a-39ed130438af</d:MetadataId>
475
+ <d:HasChanged i:nil='true'/>
476
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
477
+ <d:IsCustomizable>
478
+ <b:CanBeChanged>false</b:CanBeChanged>
479
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
480
+ <b:Value>true</b:Value>
481
+ </d:IsCustomizable>
482
+ <d:IsManaged>true</d:IsManaged>
483
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
484
+ <d:SchemaName>opportunity_owning_user</d:SchemaName>
485
+ <d:SecurityTypes>None</d:SecurityTypes>
486
+ <d:IntroducedVersion i:nil='true'/>
487
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
488
+ <d:AssociatedMenuConfiguration>
489
+ <d:Behavior>DoNotDisplay</d:Behavior>
490
+ <d:Group>Details</d:Group>
491
+ <d:Label>
492
+ <b:LocalizedLabels/>
493
+ <b:UserLocalizedLabel i:nil='true'/>
494
+ </d:Label>
495
+ <d:Order>0</d:Order>
496
+ </d:AssociatedMenuConfiguration>
497
+ <d:CascadeConfiguration>
498
+ <d:Assign>NoCascade</d:Assign>
499
+ <d:Delete>NoCascade</d:Delete>
500
+ <d:Merge>NoCascade</d:Merge>
501
+ <d:Reparent>NoCascade</d:Reparent>
502
+ <d:Share>NoCascade</d:Share>
503
+ <d:Unshare>NoCascade</d:Unshare>
504
+ </d:CascadeConfiguration>
505
+ <d:ReferencedAttribute>systemuserid</d:ReferencedAttribute>
506
+ <d:ReferencedEntity>systemuser</d:ReferencedEntity>
507
+ <d:ReferencingAttribute>owninguser</d:ReferencingAttribute>
508
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
509
+ </d:OneToManyRelationshipMetadata>
510
+ <d:OneToManyRelationshipMetadata>
511
+ <d:MetadataId>0de4b4c6-c7fd-4952-9638-1a185a797cf0</d:MetadataId>
512
+ <d:HasChanged i:nil='true'/>
513
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
514
+ <d:IsCustomizable>
515
+ <b:CanBeChanged>false</b:CanBeChanged>
516
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
517
+ <b:Value>true</b:Value>
518
+ </d:IsCustomizable>
519
+ <d:IsManaged>true</d:IsManaged>
520
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
521
+ <d:SchemaName>team_opportunities</d:SchemaName>
522
+ <d:SecurityTypes>None</d:SecurityTypes>
523
+ <d:IntroducedVersion i:nil='true'/>
524
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
525
+ <d:AssociatedMenuConfiguration>
526
+ <d:Behavior>DoNotDisplay</d:Behavior>
527
+ <d:Group>Details</d:Group>
528
+ <d:Label>
529
+ <b:LocalizedLabels/>
530
+ <b:UserLocalizedLabel i:nil='true'/>
531
+ </d:Label>
532
+ <d:Order>0</d:Order>
533
+ </d:AssociatedMenuConfiguration>
534
+ <d:CascadeConfiguration>
535
+ <d:Assign>NoCascade</d:Assign>
536
+ <d:Delete>NoCascade</d:Delete>
537
+ <d:Merge>NoCascade</d:Merge>
538
+ <d:Reparent>NoCascade</d:Reparent>
539
+ <d:Share>NoCascade</d:Share>
540
+ <d:Unshare>NoCascade</d:Unshare>
541
+ </d:CascadeConfiguration>
542
+ <d:ReferencedAttribute>teamid</d:ReferencedAttribute>
543
+ <d:ReferencedEntity>team</d:ReferencedEntity>
544
+ <d:ReferencingAttribute>owningteam</d:ReferencingAttribute>
545
+ <d:ReferencingEntity>opportunity</d:ReferencingEntity>
546
+ </d:OneToManyRelationshipMetadata>
547
+ </d:ManyToOneRelationships>
548
+ <d:ObjectTypeCode>3</d:ObjectTypeCode>
549
+ <d:OneToManyRelationships>
550
+ <d:OneToManyRelationshipMetadata>
551
+ <d:MetadataId>89c95f17-9eee-426a-825f-f3a4e6b48d24</d:MetadataId>
552
+ <d:HasChanged i:nil='true'/>
553
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
554
+ <d:IsCustomizable>
555
+ <b:CanBeChanged>false</b:CanBeChanged>
556
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
557
+ <b:Value>true</b:Value>
558
+ </d:IsCustomizable>
559
+ <d:IsManaged>true</d:IsManaged>
560
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
561
+ <d:SchemaName>Opportunity_SocialActivities</d:SchemaName>
562
+ <d:SecurityTypes>Append</d:SecurityTypes>
563
+ <d:IntroducedVersion i:nil='true'/>
564
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
565
+ <d:AssociatedMenuConfiguration>
566
+ <d:Behavior>DoNotDisplay</d:Behavior>
567
+ <d:Group>Details</d:Group>
568
+ <d:Label>
569
+ <b:LocalizedLabels/>
570
+ <b:UserLocalizedLabel i:nil='true'/>
571
+ </d:Label>
572
+ <d:Order>0</d:Order>
573
+ </d:AssociatedMenuConfiguration>
574
+ <d:CascadeConfiguration>
575
+ <d:Assign>Cascade</d:Assign>
576
+ <d:Delete>Cascade</d:Delete>
577
+ <d:Merge>NoCascade</d:Merge>
578
+ <d:Reparent>Cascade</d:Reparent>
579
+ <d:Share>Cascade</d:Share>
580
+ <d:Unshare>Cascade</d:Unshare>
581
+ </d:CascadeConfiguration>
582
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
583
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
584
+ <d:ReferencingAttribute>regardingobjectid</d:ReferencingAttribute>
585
+ <d:ReferencingEntity>socialactivity</d:ReferencingEntity>
586
+ </d:OneToManyRelationshipMetadata>
587
+ <d:OneToManyRelationshipMetadata>
588
+ <d:MetadataId>3add3213-4a3e-45f8-a027-c942580f714b</d:MetadataId>
589
+ <d:HasChanged i:nil='true'/>
590
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
591
+ <d:IsCustomizable>
592
+ <b:CanBeChanged>false</b:CanBeChanged>
593
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
594
+ <b:Value>true</b:Value>
595
+ </d:IsCustomizable>
596
+ <d:IsManaged>true</d:IsManaged>
597
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
598
+ <d:SchemaName>lead_qualifying_opportunity</d:SchemaName>
599
+ <d:SecurityTypes>Append</d:SecurityTypes>
600
+ <d:IntroducedVersion i:nil='true'/>
601
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
602
+ <d:AssociatedMenuConfiguration>
603
+ <d:Behavior>DoNotDisplay</d:Behavior>
604
+ <d:Group>Details</d:Group>
605
+ <d:Label>
606
+ <b:LocalizedLabels/>
607
+ <b:UserLocalizedLabel i:nil='true'/>
608
+ </d:Label>
609
+ <d:Order>0</d:Order>
610
+ </d:AssociatedMenuConfiguration>
611
+ <d:CascadeConfiguration>
612
+ <d:Assign>Cascade</d:Assign>
613
+ <d:Delete>RemoveLink</d:Delete>
614
+ <d:Merge>Cascade</d:Merge>
615
+ <d:Reparent>NoCascade</d:Reparent>
616
+ <d:Share>NoCascade</d:Share>
617
+ <d:Unshare>NoCascade</d:Unshare>
618
+ </d:CascadeConfiguration>
619
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
620
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
621
+ <d:ReferencingAttribute>qualifyingopportunityid</d:ReferencingAttribute>
622
+ <d:ReferencingEntity>lead</d:ReferencingEntity>
623
+ </d:OneToManyRelationshipMetadata>
624
+ <d:OneToManyRelationshipMetadata>
625
+ <d:MetadataId>5382a98c-d750-4c28-a27d-23518decc003</d:MetadataId>
626
+ <d:HasChanged i:nil='true'/>
627
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
628
+ <d:IsCustomizable>
629
+ <b:CanBeChanged>false</b:CanBeChanged>
630
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
631
+ <b:Value>true</b:Value>
632
+ </d:IsCustomizable>
633
+ <d:IsManaged>true</d:IsManaged>
634
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
635
+ <d:SchemaName>product_opportunities</d:SchemaName>
636
+ <d:SecurityTypes>ParentChild</d:SecurityTypes>
637
+ <d:IntroducedVersion i:nil='true'/>
638
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
639
+ <d:AssociatedMenuConfiguration>
640
+ <d:Behavior>DoNotDisplay</d:Behavior>
641
+ <d:Group>Details</d:Group>
642
+ <d:Label>
643
+ <b:LocalizedLabels/>
644
+ <b:UserLocalizedLabel i:nil='true'/>
645
+ </d:Label>
646
+ <d:Order>10</d:Order>
647
+ </d:AssociatedMenuConfiguration>
648
+ <d:CascadeConfiguration>
649
+ <d:Assign>NoCascade</d:Assign>
650
+ <d:Delete>Cascade</d:Delete>
651
+ <d:Merge>NoCascade</d:Merge>
652
+ <d:Reparent>NoCascade</d:Reparent>
653
+ <d:Share>NoCascade</d:Share>
654
+ <d:Unshare>NoCascade</d:Unshare>
655
+ </d:CascadeConfiguration>
656
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
657
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
658
+ <d:ReferencingAttribute>opportunityid</d:ReferencingAttribute>
659
+ <d:ReferencingEntity>opportunityproduct</d:ReferencingEntity>
660
+ </d:OneToManyRelationshipMetadata>
661
+ <d:OneToManyRelationshipMetadata>
662
+ <d:MetadataId>8a8e9a82-49c4-e311-8e1e-6c3be5a8c054</d:MetadataId>
663
+ <d:HasChanged i:nil='true'/>
664
+ <d:IsCustomRelationship>true</d:IsCustomRelationship>
665
+ <d:IsCustomizable>
666
+ <b:CanBeChanged>false</b:CanBeChanged>
667
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
668
+ <b:Value>true</b:Value>
669
+ </d:IsCustomizable>
670
+ <d:IsManaged>true</d:IsManaged>
671
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
672
+ <d:SchemaName>tndrbox_opportunity_document</d:SchemaName>
673
+ <d:SecurityTypes>Append</d:SecurityTypes>
674
+ <d:IntroducedVersion i:nil='true'/>
675
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
676
+ <d:AssociatedMenuConfiguration>
677
+ <d:Behavior>UseCollectionName</d:Behavior>
678
+ <d:Group>Details</d:Group>
679
+ <d:Label>
680
+ <b:LocalizedLabels>
681
+ <b:LocalizedLabel>
682
+ <d:MetadataId i:nil='true'/>
683
+ <d:HasChanged i:nil='true'/>
684
+ <b:IsManaged>true</b:IsManaged>
685
+ <b:Label/>
686
+ <b:LanguageCode>1033</b:LanguageCode>
687
+ </b:LocalizedLabel>
688
+ </b:LocalizedLabels>
689
+ <b:UserLocalizedLabel>
690
+ <d:MetadataId i:nil='true'/>
691
+ <d:HasChanged i:nil='true'/>
692
+ <b:IsManaged>true</b:IsManaged>
693
+ <b:Label/>
694
+ <b:LanguageCode>1033</b:LanguageCode>
695
+ </b:UserLocalizedLabel>
696
+ </d:Label>
697
+ <d:Order>10000</d:Order>
698
+ </d:AssociatedMenuConfiguration>
699
+ <d:CascadeConfiguration>
700
+ <d:Assign>NoCascade</d:Assign>
701
+ <d:Delete>RemoveLink</d:Delete>
702
+ <d:Merge>NoCascade</d:Merge>
703
+ <d:Reparent>NoCascade</d:Reparent>
704
+ <d:Share>NoCascade</d:Share>
705
+ <d:Unshare>NoCascade</d:Unshare>
706
+ </d:CascadeConfiguration>
707
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
708
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
709
+ <d:ReferencingAttribute>tndrbox_opportunityid</d:ReferencingAttribute>
710
+ <d:ReferencingEntity>tndrbox_document</d:ReferencingEntity>
711
+ </d:OneToManyRelationshipMetadata>
712
+ <d:OneToManyRelationshipMetadata>
713
+ <d:MetadataId>c7e42fd3-0f07-4450-89e4-f7a3d5614cdb</d:MetadataId>
714
+ <d:HasChanged i:nil='true'/>
715
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
716
+ <d:IsCustomizable>
717
+ <b:CanBeChanged>false</b:CanBeChanged>
718
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
719
+ <b:Value>true</b:Value>
720
+ </d:IsCustomizable>
721
+ <d:IsManaged>true</d:IsManaged>
722
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
723
+ <d:SchemaName>opportunity_quotes</d:SchemaName>
724
+ <d:SecurityTypes>Append</d:SecurityTypes>
725
+ <d:IntroducedVersion i:nil='true'/>
726
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
727
+ <d:AssociatedMenuConfiguration>
728
+ <d:Behavior>DoNotDisplay</d:Behavior>
729
+ <d:Group>Sales</d:Group>
730
+ <d:Label>
731
+ <b:LocalizedLabels/>
732
+ <b:UserLocalizedLabel i:nil='true'/>
733
+ </d:Label>
734
+ <d:Order>10</d:Order>
735
+ </d:AssociatedMenuConfiguration>
736
+ <d:CascadeConfiguration>
737
+ <d:Assign>Cascade</d:Assign>
738
+ <d:Delete>Cascade</d:Delete>
739
+ <d:Merge>NoCascade</d:Merge>
740
+ <d:Reparent>NoCascade</d:Reparent>
741
+ <d:Share>NoCascade</d:Share>
742
+ <d:Unshare>NoCascade</d:Unshare>
743
+ </d:CascadeConfiguration>
744
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
745
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
746
+ <d:ReferencingAttribute>opportunityid</d:ReferencingAttribute>
747
+ <d:ReferencingEntity>quote</d:ReferencingEntity>
748
+ </d:OneToManyRelationshipMetadata>
749
+ <d:OneToManyRelationshipMetadata>
750
+ <d:MetadataId>4be76b73-9694-4b1f-a032-aa958e253818</d:MetadataId>
751
+ <d:HasChanged i:nil='true'/>
752
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
753
+ <d:IsCustomizable>
754
+ <b:CanBeChanged>false</b:CanBeChanged>
755
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
756
+ <b:Value>true</b:Value>
757
+ </d:IsCustomizable>
758
+ <d:IsManaged>true</d:IsManaged>
759
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
760
+ <d:SchemaName>Opportunity_OpportunityClose</d:SchemaName>
761
+ <d:SecurityTypes>Append</d:SecurityTypes>
762
+ <d:IntroducedVersion i:nil='true'/>
763
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
764
+ <d:AssociatedMenuConfiguration>
765
+ <d:Behavior>DoNotDisplay</d:Behavior>
766
+ <d:Group>Details</d:Group>
767
+ <d:Label>
768
+ <b:LocalizedLabels/>
769
+ <b:UserLocalizedLabel i:nil='true'/>
770
+ </d:Label>
771
+ <d:Order>0</d:Order>
772
+ </d:AssociatedMenuConfiguration>
773
+ <d:CascadeConfiguration>
774
+ <d:Assign>Cascade</d:Assign>
775
+ <d:Delete>Cascade</d:Delete>
776
+ <d:Merge>NoCascade</d:Merge>
777
+ <d:Reparent>Cascade</d:Reparent>
778
+ <d:Share>Cascade</d:Share>
779
+ <d:Unshare>Cascade</d:Unshare>
780
+ </d:CascadeConfiguration>
781
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
782
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
783
+ <d:ReferencingAttribute>opportunityid</d:ReferencingAttribute>
784
+ <d:ReferencingEntity>opportunityclose</d:ReferencingEntity>
785
+ </d:OneToManyRelationshipMetadata>
786
+ <d:OneToManyRelationshipMetadata>
787
+ <d:MetadataId>ed276e7f-2280-455a-a448-fdc6d4a6dc4a</d:MetadataId>
788
+ <d:HasChanged i:nil='true'/>
789
+ <d:IsCustomRelationship>false</d:IsCustomRelationship>
790
+ <d:IsCustomizable>
791
+ <b:CanBeChanged>false</b:CanBeChanged>
792
+ <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName>
793
+ <b:Value>true</b:Value>
794
+ </d:IsCustomizable>
795
+ <d:IsManaged>true</d:IsManaged>
796
+ <d:IsValidForAdvancedFind>true</d:IsValidForAdvancedFind>
797
+ <d:SchemaName>Opportunity_Annotation</d:SchemaName>
798
+ <d:SecurityTypes>Append</d:SecurityTypes>
799
+ <d:IntroducedVersion i:nil='true'/>
800
+ <d:RelationshipType>OneToManyRelationship</d:RelationshipType>
801
+ <d:AssociatedMenuConfiguration>
802
+ <d:Behavior>DoNotDisplay</d:Behavior>
803
+ <d:Group>Details</d:Group>
804
+ <d:Label>
805
+ <b:LocalizedLabels/>
806
+ <b:UserLocalizedLabel i:nil='true'/>
807
+ </d:Label>
808
+ <d:Order>0</d:Order>
809
+ </d:AssociatedMenuConfiguration>
810
+ <d:CascadeConfiguration>
811
+ <d:Assign>Cascade</d:Assign>
812
+ <d:Delete>Cascade</d:Delete>
813
+ <d:Merge>NoCascade</d:Merge>
814
+ <d:Reparent>Cascade</d:Reparent>
815
+ <d:Share>Cascade</d:Share>
816
+ <d:Unshare>Cascade</d:Unshare>
817
+ </d:CascadeConfiguration>
818
+ <d:ReferencedAttribute>opportunityid</d:ReferencedAttribute>
819
+ <d:ReferencedEntity>opportunity</d:ReferencedEntity>
820
+ <d:ReferencingAttribute>objectid</d:ReferencingAttribute>
821
+ <d:ReferencingEntity>annotation</d:ReferencingEntity>
822
+ </d:OneToManyRelationshipMetadata>
823
+ </d:OneToManyRelationships>
824
+ <d:OwnershipType>UserOwned</d:OwnershipType>
825
+ <d:PrimaryIdAttribute>opportunityid</d:PrimaryIdAttribute>
826
+ <d:PrimaryNameAttribute>name</d:PrimaryNameAttribute>
827
+ <d:Privileges i:nil='true'/>
828
+ <d:RecurrenceBaseEntityLogicalName i:nil='true'/>
829
+ <d:ReportViewName>FilteredOpportunity</d:ReportViewName>
830
+ <d:SchemaName>Opportunity</d:SchemaName>
831
+ <d:IntroducedVersion>5.0.0.0</d:IntroducedVersion>
832
+ <d:PrimaryImageAttribute i:nil='true'/>
833
+ </c:value>
834
+ </b:KeyValuePairOfstringanyType>
835
+ </b:Results>
836
+ </ExecuteResult>
837
+ </ExecuteResponse>
838
+ </s:Body>
839
+ </s:Envelope>