Tôi đã giải quyết được sự cố.
- Tạo plugin để xác thực trước với phương pháp
Execute()
và phương pháp phân tích dữ liệu .
- Trong chế độ xem thực thể, hãy thêm một số trường với
GUID
.
- Nếu plugin tìm thấy guid trong chế độ xem của bạn, nó sẽ nhận được truy vấn fetchxml cho thực thể của bạn và thực thể truy vấn thứ hai khác sẽ hiển thị chế độ xem mặc định.
- Dữ liệu phân tích cú pháp cho những gì bạn muốn hiển thị cho người dùng.
- Đăng ký plugin của bạn.
- Lợi nhuận.
PS Tôi sẽ thêm nguồn vào một hoặc hai ngày sau khi tái cấu trúc và phê duyệt từ khách hàng.
Edit:
Trước hết - y cần tạo mới GUID
và thêm lĩnh vực chuỗi để xem với guid đó để xem (Nó là tốt hơn để ẩn nó từ người sử dụng). Tạo plugin với RetrieveMultiple
hành động và Post
xác nhận (trong Pre
hành động mà bạn có thể bị mất những thay đổi của bạn)
Trong plugin: phương pháp chính RetrieveMultiple
đó sẽ nhận được bối cảnh và dịch vụ từ Mà bạn sẽ mất truy vấn, sau đó bạn cần có được fetchXml và kiểm tra nếu có GUID
của bạn.
string fetchXml = string.Empty;
var query = context.InputParameters["Query"] as QueryExpression;
var fetchQuery = context.InputParameters["Query"] as FetchExpression;
if (query == null)
{
if (fetchQuery == null)
{
return;
}
fetchXml = fetchQuery.Query;
}
// Convert query to a fetch expression for processing and apply filter
else
{
fetchXml =
((QueryExpressionToFetchXmlResponse)
service.Execute(new QueryExpressionToFetchXmlRequest {Query = query})).FetchXml;
}
if (fetchXml.Contains(OpportunityFilterGuid))
{
ApplyFilter(context, service, query);
}
}
Trong phương pháp ApllyFilter
của bạn, bạn cần: truy vấn
Nhận từ người dùng (ông có thể thêm một số fileds mới).
Xóa trường của bạn bằng GUID
.
Thực hiện truy vấn.
Xóa các tệp đã gửi, có thể xung đột với tuyên bố OR
của bạn.
Thêm link-entity
để truy vấn.
Thực hiện truy vấn.
Thêm đối tượng đã nhận từ truy vấn thứ hai đến trước.
Sử dụng LINQ chọn các đối tượng không được lặp lại.
collectionOne.Entities.GroupBy(oppId => oppId.Id).Select(opp => opp.First())
Gửi dữ liệu đó cho khách hàng.
Nguồn
2013-08-12 07:55:38
Bạn đang cố gắng chỉ tạo chế độ xem hoặc bạn đang cố truy cập dữ liệu thông qua SDK? – Daryl
Không quan trọng. Tôi chỉ cần hiển thị dữ liệu cho người dùng trong chế độ xem. Tôi đã quan tâm đến khả năng hệ thống đại diện cho nhà phát triển. Và phát hiện ra rằng cách duy nhất để làm điều đó - viết một plugin. –