Ik heb, binnen MS CRM Dynamics 3.0 wat code geschreven die voor een offerte (quote) de verschillende offerteregels (quotedetails) ophaalt.
Het idee is dat er uiteindelijk een PDF van gemaakt wordt.
Code snippet:
Als ik deze code aanroep (meer acties - regel toepassen) dan krijg ik na een tijdje van MS CRM de melding dat er iets fout is gegaan. Mijn code om de foutmelding te catchen wordt genegeerd, en de workflow service loopt vast.
De enige melding die ik nog heb weten los te peuteren van http://srv-crm/Trace.axd?id=2
is:
Category Message From First(s) From Last(s)
aspx.page Begin Init
aspx.page End Init 0.000243 0.000243
aspx.page Begin PreRender 0.000329 0.000086
Unhandled Execution Error
The remote procedure call failed.
at Microsoft.Crm.Util.RaiseXMLError(Exception e)
at Microsoft.Crm.Dialogs.ApplyRulePage.ConfigurePage()
at Microsoft.Crm.Application.Controls.AppPage.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain() 13.727147 13.726818
Maar dat is ook een dusdanig generieke melding dat je er eigenlijk vrij weinig mee kan.
Het idee is dat er uiteindelijk een PDF van gemaakt wordt.
Code snippet:
Visual Basic .NET:
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
| Public Sub GenerateQuotePDF(ByVal QuoteID As Guid) ' Standard CRM Service Setup Try Dim service As New CrmService service.Credentials = System.Net.CredentialCache.DefaultCredentials Dim insQuote As srv_crm.quote Dim cols As srv_crm.ColumnSet = New srv_crm.ColumnSet cols.Attributes = New String() {"quoteid", "name", "totallineitemamount", "quotenumber", "revisionnumber"} insQuote = CType(service.Retrieve(srv_crm.EntityName.quote.ToString, QuoteID, cols), srv_crm.quote) Dim strQuote As String = Me.QuoteTemplate ' fetch the quotetemplate from disk ' works strQuote = strQuote.Replace("{{SUBJECT}}", insQuote.name) ' works strQuote = strQuote.Replace("{{OURREFERENCE}}", insQuote.quotenumber.ToString & "/" & insQuote.revisionnumber.formattedvalue.ToString)' works strQuote = strQuote.Replace("{{TOTAL_AMOUNT}}", insQuote.totallineitemamount.formattedvalue.Replace("€", '"€"))' works strQuote = strQuote.Replace("{{CREATIONDATE}}", DateTime.Now.ToShortDateString)' works strQuote = strQuote.Replace("{{CREATIONCITY}}", "Tilburg")' works ' now fetch the various offerrows Dim colsq As srv_crm.ColumnSet = New srv_crm.ColumnSet colsq.Attributes = New String() {"extendedamount", "productdescription", "quantity", "quoteid"} Dim condition As New ConditionExpression condition.AttributeName = "quoteid" condition.Operator = ConditionOperator.Equal condition.Values = New Object(0) {} condition.Values(0) = insQuote.quoteid Dim filter As New FilterExpression filter.FilterOperator = LogicalOperator.And filter.Conditions = New ConditionExpression() {condition} Dim query As New QueryExpression query.EntityName = EntityName.quotedetail.ToString query.ColumnSet = colsq query.Criteria = filter Dim retrieved As BusinessEntityCollection = service.RetrieveMultiple(query) Dim sbLoop As New System.Text.StringBuilder For i As Integer = 0 To (retrieved.BusinessEntities.Length - 1) Dim QD As quotedetail = CType(retrieved.BusinessEntities(i), quotedetail) Dim Item As String = LoopHelper.Mid(strQuote) Item = Item.Replace("{{ROW_CODE}}", "ROW: " & i) Item = Item.Replace("{{ROW_NAME}}", QD.productdescription) Item = Item.Replace("{{ROW_AMOUNT}}", QD.quantity.formattedvalue) sbLoop.Append(Item) Next strQuote = LoopHelper.Combine(LoopHelper.Pre(strQuote), sbLoop.ToString, LoopHelper.Post(strQuote)) ' fetching complete Catch ex As Exception **code to write error information to file ** End Try End Sub |
Als ik deze code aanroep (meer acties - regel toepassen) dan krijg ik na een tijdje van MS CRM de melding dat er iets fout is gegaan. Mijn code om de foutmelding te catchen wordt genegeerd, en de workflow service loopt vast.
De enige melding die ik nog heb weten los te peuteren van http://srv-crm/Trace.axd?id=2
is:
Category Message From First(s) From Last(s)
aspx.page Begin Init
aspx.page End Init 0.000243 0.000243
aspx.page Begin PreRender 0.000329 0.000086
Unhandled Execution Error
The remote procedure call failed.
at Microsoft.Crm.Util.RaiseXMLError(Exception e)
at Microsoft.Crm.Dialogs.ApplyRulePage.ConfigurePage()
at Microsoft.Crm.Application.Controls.AppPage.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain() 13.727147 13.726818
Maar dat is ook een dusdanig generieke melding dat je er eigenlijk vrij weinig mee kan.