What to do when an activex object is not defined?

569    Asked by AashnaSaito in Salesforce , Asked on Apr 17, 2023

I have an existing Javascript button which causes an "ActiveXObject is not defined" error when I click on it.

{
    !REQUIRESCRIPT("/soap/ajax/22.0/connection.js")
}
var newIRnAGenRequest = new sforce.SObject("Account");
newIRnAGenRequest.id = "{!Account.Id}";
newIRnAGenRequest.Request_Folder_Path__c = "{!Account.Request_Folder_Path_Hidden__c}";
newIRnAGenRequest.Req_Communication_Folder_Path__c = "{!Account.Req_Communication_Folder_Path__c}";
newIRnAGenRequest.Primary_Request_Status__c = "{!Account.Primary_Request_Status__c}";
var result = sforce.connection.update([newIRnAGenRequest]);
var myObject;
var myFile0 = "{!Account.Request_Folder_Path_Hidden__c}";
var myFile1 = "{!Account.Req_Communication_Folder_Path__c}";
if (newIRnAGenRequest.Primary_Request_Status__c == "Submitted") {
    alert("Please select a Primary Team assigned");
} else {
    location.reload(true);
    myObject = new ActiveXObject("Scripting.FileSystemObject");
    if (myObject.FolderExists(myFile0)) {
        window.open(myFile0);
    } else {
        var myObject2, newfolder;
        myObject2 = new ActiveXObject("Scripting.FileSystemObject");
        newfolder = myObject2.CreateFolder(myFile0);
        newfolder = myObject2.CreateFolder(myFile1);
        window.open(myFile0);
    }
}

When I tried to google it, I found that it was related to files and it is dedicated to IE only. It worked a few months ago in chrome. But now it stopped working everywhere.


My request is to provide any alternate solutions, if ActiveXObject can't be used anymore.

Answered by Aashna Saito

If activex object is not defined - to run this in chrome you need an extension named IE tab. This also has a prerequisite to use IE explorer which is going to be discontinued by Microsoft. Looks like what you are trying to achieve is creating a file and folder in the local machine of the user. Note that the security of doing this is to generate a file on the server and then provide a download link to the user so it downloads to the user's machine. Modern Approach What you have today is a JavaScript Button which is no more supported by Salesforce due to security risks. If you are in Salesforce classic, still convert this to a Visualforce custom button. For lightning, there are a number of alternatives like using quick actions and lightning actions using aura components. This is discussed in this module



Your Answer

Interviews

Parent Categories