Sitecore Analytics Database Manager (ADM) Module Customization

Sitecore Analytics Database Manager (ADM) Module Customization

Sitecore Analytics Database Manager (ADM) Module Customization


Recently I got the situation where I want to remove multiple contacts from xDB. I do not want to write my custom code.

Then I found Analytics Database Manager (ADM) 4.0.1 module in Marketplace, but it was not fulfilling my requirement because this module has only below options:
  • Remove Historical Data:  Removing all contacts and all related data without interactions after the specific date
  • Rebuild Calculated Facet: Historcial rebuild of calculated facets
  • Remove Single Contact Data: Removing single contact by ID or identifier

Sitecore Analytics Database Manager (ADM) Module Customization


To fulfill my requirement, instead of creating a new tab for multiple contact removal, I did some minor change in Remove Single Contact Data. 
  • Open “AdmTaskPage.js” from this location “sitecore\shell\client\Your Apps\ADM\AdmTaskPage“
  • Replace “removeContact” function from below code, to remove multiple contacts from xDB
  •  removeContactByID: function (id) {  
                    jQuery.ajax({  
               type: "POST",  
               url: "/sitecore/adm/client/StartContactDataRemovingById?contactId=" + id,  
               success: function (result) {  
                 app.MessageBar2.addMessage("warning", result.replace(/^"(.+(?="$))"$/, '$1'));  
               },  
               error: function (xhr, error, thrownError) {  
                 app.MessageBar1.addMessage("error", "The error occured with the following message '" + thrownError + "' Please check logs for details");  
                 err = "yes";  
               }  
             });  
               },  
         removeContact: function () {  
           app.MessageBar2.removeMessages();  
           app.MessageBar2.set("expanded", "true");  
           app.ContactExpander.viewModel.show();  
           var running = app.checkIsRunning();  
           var enc = running.toString().replace(/[^a-zA-Z]+/g, '');  
           if (enc != "NotRunning") {  
             app.MessageBar2.addMessage("warning", "The remove task can't be started while another one is running.");  
             app.trigger("disable:ContactStatus");  
             return;  
           }  
           var err = "no";  
           if (app.IdentCheckBox.get("isChecked")) {  
                          app.MessageBar2.addMessage("warning", "Contact removing has been requested.");  
                         var ids=app.IdTextBox.get("text");  
                         var list=ids.split('|');  
                         for(var i=0;i<list.length;i++){  
                              app.removeContactByID(list[i]);  
                         }  
           } else {  
             app.MessageBar2.addMessage("warning", "Contact removing has been requested.");  
             jQuery.ajax({  
               type: "POST",  
               contentType: 'application/json',  
               data: JSON.stringify({  
                 "source": app.SourceTextBox.get("text"),  
                 "identifier": app.IdentTextBox.get("text")  
               }),  
               url: "/sitecore/adm/client/StartContactDataRemoving",  
               success: function (result) {  
                 app.MessageBar2.addMessage("warning", result.replace(/^"(.+(?="$))"$/, '$1'));  
                 if (result.indexOf("was not found") !== -1) {  
                   app.trigger("disable:ContactStatus");  
                   app.trigger("enable:RemoveContact");  
                   err = "yes";  
                 }  
               },  
               error: function (xhr, error, thrownError) {  
                 app.MessageBar1.addMessage("error", "The error occured with the following message '" + thrownError + "' Please check logs for details");  
                 err = "yes";  
               }  
             });  
           }  
           if (err == "yes") {  
             return;  
           }  
           app.trigger("disable:RemoveContact");  
           app.trigger("enable:ContactStatus");  
         },  
    
  • Move into this function “removeDataDialogue” and comment below lines:
  •  var valid = app.validateGuid(id);  
               if (!valid) {  
                  app.Label1.set("text", "entered contact ID is not a valid GUID");  
                 return;  
               }  
    
  • Switch into Core DB and go to this location “/sitecore/client/Your Apps/ADM/AdmTaskPage/PageSettings/Tabs/Remove  Single Contact Data”
  • Click on Presentation->Details and select “TextBox” rendering
Sitecore Analytics Database Manager (ADM) Module Customization
  • Do blank in “MaxLength: field
Sitecore Analytics Database Manager (ADM) Module Customization
  • Now I can add multiple contacts with pipeline separated like “F9F1F37A-6BCA-0000-0000-05AA3D2C0176|F9F1F37A-6BCA-0000-0000-05AA3D26BAF1|F9F1F37A-6BCA-0000-0000-05AA3D219161”
Sitecore Analytics Database Manager (ADM) Module Customization
  • Click “Yes” button, it will remove multiple contacts








Comments

Popular Posts