SSJS: Day 18 focused on Resource

SSJS: Day 18 focused on Resource

Write an SSJS script to create a folder under the data extension assets category. Leverage SimpleOperators to build a complex filter.


//Write an SSJS script to create a folder under the data extension assets category
// Leverage SimpleOperators to build a complex filter



<script runat="server">
  Platform.Load("core","1");
  
  //=================================================================================//
  // Reteireive Category Id from Data Extension folder based on Name and ContentType
  // We are using complex filter because we might be 
  // using the same name across different assets
  //=================================================================================//
  function RetrieveCategortyIDFromDataExtension(filter1,filter2){
    var complexFilter = {
      LeftOperand: filter1,LogicalOperator: "AND",RightOperand: filter2};
    var results = Folder.Retrieve(complexFilter);
    return results[0].ID;
  }
  
  //=================================================================================//
  // Create a sub-folder inside a data extension parent folder based on category ID
  // Assign a javascript variable with all prop required for creating the folder
  //=================================================================================//
  function CreateAfolder(newFolder){
    var status = Folder.Add(newFolder);
    return status;
  }
  
  try{
    
    //=======================================================================//
    // Assign variables to a filter operations for left filter
    //=======================================================================//
    var propName1="Name";
    var simpleOperator1="equals";
    var propValue1="Preference Center";
    
    // Assign variables to a filter operations for right filter
    var propName2="ContentType";
    var simpleOperator2="equals";
    var propValue2="dataextension";
    
    
    var filter1={
      Property:propName1,SimpleOperator:simpleOperator1,Value:propValue1};
    var filter2={
      Property:propName2,SimpleOperator:simpleOperator2,Value:propValue2};
    
    var CategoryID=RetrieveCategortyIDFromDataExtension(filter1,filter2);
    
    var newFolder = {
      "Name" : "ProfileCenter",
      "CustomerKey" : "ProfileCenter",
      "Description" : "SubscriberFolder",
      "ContentType" : "dataextension",
      "IsActive" : "true",
      "IsEditable" : "true",
      "AllowChildren" : "false",
      "ParentFolderID" : CategoryID
    };
    var status = CreateAfolder(newFolder);
    Write(status);
  }
  catch(ex) {
    Write(ex.message +'\n');
    Write(ex.description +'\n');
  }
</script>



Nitin Kumar

4X Certified | Salesforce Marketing Cloud Consultant in Tata Consultancy Services

2y

Your sessions are excellent

Paramita Bhattacharya

Australian citizen || Salesforce Developer || 11xSalesforce certified

2y

Thanks for sharing 🙌

To view or add a comment, sign in

Others also viewed

Explore topics