5

Khi trạng thái tiêu đề, tôi đang tìm cách cho biết sự khác biệt giữa lỗi do mã của tôi hoặc chức năng CRM cơ bản và lỗi do bất kỳ plugin tùy chỉnh nào có thể được cài đặt trên hệ thống khách hàng.Có cách nào để biết nếu một ngoại lệ MS CRM đã được ném bởi một plugin?

Điều mà chúng tôi liên tục trở thành nạn nhân là các trình cắm của bên thứ ba tùy chỉnh của khách hàng mà họ đã tạo trong nhà hoặc mua từ một ISV khác. Họ đăng ký nó trên một thực thể CRM, chúng tôi chạm hoặc thậm chí trên một trong những thực thể của chính chúng ta trong trường hợp gần đây nhất. Chúng tôi cố gắng làm điều gì đó, plugin cố gắng thực hiện điều đó và không thành công. Trong ví dụ gần đây nhất, plugin không mã hóa 'đúng sau khi chúng tôi đặt nó vào CRM. Các plugin ném một lỗi và CRM ném nó lại cho chúng tôi.

Làm cách nào để biết plugin là thủ phạm mà không lãng phí thời gian điều tra? Cho đến nay tôi đã chỉ nhìn thấy một công ty làm cho nó dễ dàng để nói bằng cách ném theo dõi ngăn xếp bổ sung như thông báo lỗi.

CHỈNH SỬA cho rõ ràng:

  • Tôi đang tìm kiếm một giải pháp chương trình cắt giảm thời gian cần thiết để xác định vấn đề này là một plugin tùy chỉnh và không mã của chúng tôi tương tác với CRM của họ từ Azure .
  • Tôi đang cố gắng nâng cao khả năng ghi/xử lý lỗi của chúng tôi để thông minh đủ để cho biết sự khác biệt.
  • Ngay cả khi mã của chúng tôi hoạt động 100% nhưng kích hoạt plugin đồng bộ để kích hoạt và plugin đó không thành công, chúng tôi có ngoại lệ từ CRM.
  • Mọi thứ chúng tôi làm đều có lập trình thông qua SDK.
+0

Vì vậy, đây là một thất bại điều đó xảy ra khi plugin của bạn cố gắng để thực hiện một số hành động gây một plugin để thất bại, mà sau đó gây plugin của bạn thất bại ? Hay đó là lỗi xảy ra với plugin trước khi plugin của bạn kích hoạt? – Daryl

+0

Chúng tôi về mặt kỹ thuật không phải là 'plugin' Chúng tôi có một ứng dụng chạy trong Azure tương tác với hệ thống CRM khách hàng. Lỗi xảy ra trong plugin khách hàng sẽ lọc ngược lại cho chúng tôi ngay cả khi chúng tôi hoàn thành những gì chúng tôi đang cố gắng thực hiện, chúng tôi vẫn nhận được lỗi. –

+0

Bạn đang tương tác với SDK bằng cách sử dụng SDK? – Daryl

Trả lời

2

Điều duy nhất cần lưu ý là bật tính năng theo dõi CRM. Liên kết dưới đây sẽ giải thích cách thực hiện việc này trong Microsoft Dynamics CRM.

http://support.microsoft.com/kb/907490

+1

Xin lỗi, tôi đã đề cập ở trên. Tôi đang tìm một giải pháp có lập trình có thể được tự động hóa và một phần trong quá trình ghi lỗi của chúng tôi. Có khách hàng đi qua và bật truy tìm là một phần của những giờ điều tra tôi đang cố gắng cắt giảm. –

1

Khi có một ngoại lệ gây ra bởi một plugin như hình này: enter image description here

bạn có thể tải về các tập tin đăng nhập, bên trong bạn có thể dễ dàng tìm thấy mà Plugin gây ra ngoại lệ, kiểm tra ví dụ này đăng nhập:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: StupidPluginDetail: 
// ... other details 
[StupidPlugin: StupidPlugin.ExamplePlugin] 
[bda9ad85-c4a5-e211-bc00-78e7d162ee67: StupidPlugin.ExamplePlugin: Create of orderclose] 
</TraceText> 
</OrganizationServiceFault> 
+0

Chúng tôi đang tương tác với khách hàng CRM theo lập trình thông qua SDK để chúng tôi không nhận được thông báo đó. –

0

Điều này sẽ không được khuyến khích sử dụng trong môi trường sản xuất, nhưng sẽ cực kỳ có lợi cho môi trường thử nghiệm. Bất cứ khi nào một hoạt động CRUD không sử dụng SDK, bạn có thể vô hiệu hóa tất cả các plugin, và cố gắng thực hiện thao tác tương tự. Nếu thành công, bật từng plugin một cho đến khi nó không thành công. Sau đó, bạn có thể xác định plugin nào đang gây ra sự cố hoặc cho dù đó không phải là plugin.

1

Hãy xem Chi tiết.TraceText thuộc tính ngoại lệ được trả về bởi dịch vụ. Tôi đã không được quản lý để có được đầy đủ stack trace, nhưng nó trở lại một số thông tin cho thấy nơi mà mọi thứ đã đi sai:

Mario.CRM.TestOrg.Plugins: Mario.CRM.TestOrg.Plugins.ContactPreUpdate

[ 5ee31a9e-3558-e211-adeb-00155d014401: Mario.CRM.TestOrg.Plugins.ContactPreUpdate: Cập nhật tiếp xúc]

là đoạn mã mẫu

try 
{ 
    //create service proxy and call service 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(((System.ServiceModel.FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>)(ex)).Detail.TraceText); 
} 
+0

Tôi sẽ phải xem xét điều này, có vẻ thú vị. –