Giải pháp đa trình duyệt để thay thế ActiveXObject – activexobject mới msxml2 xmlhttp

Vì vậy, bài đăng bao gồm một giải pháp trình duyệt chéo để thay thế ActiveXObject bằng tính năng nhắn tin xà phòng.

Bạn đang xem : activexobject mới msxml2 xmlhttp

Trong khi Dynamics CRM đang trở nên tương thích với nhiều trình duyệt, một số công nghệ được sử dụng để tùy chỉnh CRM thì không. Ví dụ: việc sử dụng ActiveX trong mã CRM sẽ không bao giờ tương thích với các trình duyệt không phải là Internet Explorer. Việc sử dụng ActiveX trong các thư viện Javascript không phải là hiếm và bất kỳ mã nào sử dụng nó sẽ phải được viết lại trước khi các thư viện này hoạt động trong các trình duyệt không phải IE.

Một ví dụ là việc sử dụng ActiveXObject để “tra cứu” dữ liệu qua Soap (đăng yêu cầu Soap hoặc đọc phản hồi Soap). Cách sử dụng rất phổ biến này có thể được tìm thấy trong mã tương tự như hàm RetrieveEntityById này (cách sử dụng không được hiển thị):
function RetrieveEntityById (prmEntityName, prmEntityId, prmEntityColumns) {
var resultXml, errorCount, msg, xmlHttpRequest, arrayEntityColumns, xmlEntityColumns;
arrayEntityColumns = prmEntityColumns.split (“,”);
for (var i = 0; i & lt; arrayEntityColumns.length; i ++) {
xmlEntityColumns + = “” + arrayEntityColumns [i] + “”;
}
varhenticationHeader = Xrm.Page.context.getAuthenticationHeader ();

var xml = “” +
“” +
xác thựcHeader +
“” +
“” +
“” + prmEntityName + “” +
“” + prmEntityId + “” +
“” +
“” +
xmlEntityColumns +
“” +
“” +
“”;

xmlHttpRequest = new ActiveXObject (“Msxml2.XMLHTTP”);
xmlHttpRequest.Open (“POST”, “/mscrmservices/2007/CrmService.asmx”, false);
xmlHttpRequest.setRequestHeader (“SOAPAction”, “http://schemas.microsoft.com/crm/2007/WebServices/Retrieve”);
xmlHttpRequest.setRequestHeader (“Content-Type”, “text / xml; charset = utf-8”);
xmlHttpRequest.setRequestHeader (“Nội dung-Độ dài”, xml.length);
xmlHttpRequest.send (xml);
resultXml = xmlHttpRequest.responseXML;
var errorCount = resultXml.selectNodes (‘// error’). length;
if (errorCount! = 0) {
var msg = resultXml.selectSingleNode (‘// description’). nodeTypedValue;
alert (“Thông báo Lỗi:” + msg);
}
khác {
trả về resultXml;

Mã này sử dụng ActiveXObject để đăng một yêu cầu Soap và gửi dữ liệu XML kết quả để được phân tích cú pháp khi cần (ví dụ: để điền các trường liên quan trên biểu mẫu). Đây là một hàm rất linh hoạt, có thể sử dụng lại, có thể được thêm vào thư viện Javascript và được sử dụng để “tra cứu” bất kỳ số lượng giá trị trường nào từ một bản ghi trong một thực thể có liên quan. Tuy nhiên, chức năng này sẽ không hoạt động trong các trình duyệt không phải IE vì nó sử dụng ActiveXObject.

Xem Thêm  Đối tượng trong C ++ - tạo các đối tượng trong c ++

Một giải pháp thay thế cho điều này là sử dụng điểm cuối oData để yêu cầu dữ liệu và đọc phản hồi dưới dạng JSON (cần có JQuery). Trong ví dụ cụ thể này, bạn có thể giả sử một bản ghi đang được trả về khi bạn đang chuyển một GUID trong truy vấn oData. Vì vậy, có thể thay thế hàm RetrieveEntityById () ở trên bằng:

[sourcecode language = “javascript”]

function getEntityByID (theEntity, theIdFieldName, theId, theFields, theAction) {

var pagecontext = Xrm.Page.context;
var serverUrl = pagecontext.getServerUrl ();
var oDataPath = serverUrl + “/XRMServices/2011/OrganizationData.svc”;
var oDataSelect = oDataPath + “/” + theEntity + “Đặt? $ select =” + theFields + “& amp; $ filter =” + theIdFieldName + “eq Guid ‘” + theId + “‘”;
$ .ajax ({
nhập: “GET”,
contentType: “application / json; charset = utf-8”,
kiểu dữ liệu: “json”,
url: oDataSelect,

beforeSend: function (XMLHttpRequest) {XMLHttpRequest.setRequestHeader (“Chấp nhận”, “application / json”); },

thành công: hàm (dữ liệu, textStatus, XmlHttpRequest) {
if (theAction = “FirstLast”) {
FirstLastAlert (data.d.results);
}
},

error: function (XmlHttpRequest, textStatus, errorThrown) {alert (‘OData Select Failed:’ + odataSelect); }
});
}

[/ sourcecode]

Giả sử chúng tôi muốn sử dụng chức năng này để tra cứu FirstName và LastName của một liên hệ trên biểu mẫu CRM, có thể sử dụng sự kiện OnChange của trường Liên hệ chính. Chúng ta có thể gọi hàm GetEntityByID như sau:

[sourcecode language = “javascript”]
hàm getFirstLast () {
var primaryContact = Xrm.Page.data.entity.attributes.get (“primarycontactid”);
theId = primaryContact.getValue () [0] .id;
if (primaryContact.getValue () [0] .entityType == “contact”) {// đảm bảo rằng đây là loại thực thể mong đợi
getEntityByID (“Liên hệ”, “ContactId”, theId, “FirstName, LastName”, “FirstLast”);
}
}
[/ sourcecode]

Và với việc trả về thành công từ điểm cuối oData, chúng tôi có thể xử lý dữ liệu phản hồi trong Javascript như được hiển thị trong hàm FirstLastAlert () (trong ví dụ này, nó giả định một bản ghi duy nhất và chỉ cần sử dụng một cảnh báo để bật lên các giá trị):

Xem Thêm  Vẽ đồ thị bằng Python với Matplotlib • datagy - âm mưu trong python với matplotlib

[sourcecode language = “javascript”]
function FirstLastAlert (theEntityFields) {
// đây là nơi bạn thêm mã để xử lý dữ liệu được trả về
alert (theEntityFields [0] .FirstName);
alert (theEntityFields [0] .LastName);
}
[/ sourcecode]

Giống như với hàm RetrieveEntityById (), hàm getEntityByID () có thể được sử dụng để “tra cứu” bất kỳ số lượng trường nào từ bất kỳ thực thể nhất định nào và xử lý các giá trị trả về nếu cần… một công cụ rất linh hoạt, có thể sử dụng lại trong Javascript thư viện.

Hy vọng rằng bài đăng này sẽ hữu ích như một ví dụ về cách giải quyết các sự cố trên nhiều trình duyệt khi sử dụng ActiveXObject và Soap .

Chúc bạn thành lập CRM vui vẻ!


Xem thêm những thông tin liên quan đến chủ đề activexobject mới msxml2 xmlhttp

Add New Data with NotInList VBA for Combo box

  • Tác giả: LearnAccessByCrystal
  • Ngày đăng: 2020-09-16
  • Đánh giá: 4 ⭐ ( 1386 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: When New Data isn’t in the list for a combo box,
    it can be added on-the fly as its thought of using the NotInList event.

    This is a wonderful way for users to create data that will be used for lookup and reference.

    Standard NotInList parameters are NewData and Response. See how to use a generic function in VBA where you send the table you want to add a record to, and the field for the new data.

    Prompt the user with a message box that has Yes and No buttons. If the user wants to add the new data, construct the SQL statement that will run using VBA.

    The list of choices for the combo box will automatically refresh and the new value will be chosen.

    Download the Not In List code here:
    http://msaccessgurus.com/VBA/Code/Combo_NotInList.htm

    VBA code list on MsAccessGurus:
    http://msaccessgurus.com/code.htm

    For remote training, let’s connect! Email Training AT msaccessgurus.com

    Visit my website for free code, tools, articles, and consulting
    http://www.msaccessgurus.com

    Please comment if you have anything to say, thanks.

    kind regards,
    crystal

    Remote Training and Programming

    Let’s connect and build your application together!
    http://msaccessgurus.com/training.htm

    database ComboBox NotInList VBA
    microsoft365 microsoftaccess access MadeWithCamtasia
    training msaccess remotetraining elearning tutorials videotutorial
    SQL statement
    @YouTube @Microsoft

JavaScript: ActiveXObject MSXML2.XMLHTTP is not returning XML on succesful loads…?

  • Tác giả: stackoverflow.com
  • Đánh giá: 4 ⭐ ( 7061 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest_stevenbill的博客-CSDN博客

  • Tác giả: blog.csdn.net
  • Đánh giá: 4 ⭐ ( 3457 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 客户端调用XMLHTTP的过程很简单,只有5个步骤: 1、创建XMLHTTP对象 2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。 客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用”GET”方法或”POST”方法指向服务端的服务网页。 3、发送指令。 4、等待并接收服务端返回的处理结果。 5、释放XMLHT…

Microsoft’s XMLHttpRequest ActiveX Objects

  • Tác giả: snook.ca
  • Đánh giá: 4 ⭐ ( 8102 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This is an excerpt from my book, Accelerated DOM Scripting available at Amazon and other fine retailers. Although it’s only a small section of the book, it’s one of my favourite pieces because it had …

javascript • View topic • ActiveXObject(“Msxml2.XmlHttp”) in WinCE.NET’ Pocket IE

  • Tác giả: www.44342.com
  • Đánh giá: 5 ⭐ ( 6310 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

ActiveXObject(‘Microsoft.XMLHTTP’) is null or not an object

  • Tác giả: social.msdn.microsoft.com
  • Đánh giá: 4 ⭐ ( 2847 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

IXMLHTTPRequest

  • Tác giả: docs.microsoft.com
  • Đánh giá: 3 ⭐ ( 8928 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Truy vấn SQL để chuyển đổi VARCHAR thành INT - chuyển đổi varchar thành bigint sql