SSJS : Day 13 focused Resource
Create a Single DataExtension Object leveraging WS-Proxy
<script runat="server">
? ? // load the Core server-side JavaScript library
? ? Platform.Load("core", "1");
? ? //retrieve the folder ID by passing property and value
? ? // as key-value pair for the search
? ? function retrieveCategorgyID(prop,val)
? ? {
? ? var Folderprop =prop;
? ? var Folderval = val;
? ? var FindDE =
? ? Folder.Retrieve({
? ? ? ? Property:"Name",SimpleOperator:"equals",Value:Folderval}
? ? );
? ? // if you want to retrieve the parent folder assign "FindDE[0].ParentFolder.ID"
? ? var FolderID = FindDE[0].ID ?//FindDE[0].ParentFolder.ID;
? ? var FolderName = FindDE[0].Name;
? ? return FolderID;
? }
? ? // Create a data extension by passing data extension name, folder prop and folder value (Name: value or CustomerKey : value)
? ? function createDataExtension(dataExtensionName,folderProp,folderVal) {
? ? // set ws-proxy object
? ? var api = new Script.Util.WSProxy();
? ? //set MID
? ? api.setClientId({
? ? ? ? "ID": Platform.Function.AuthenticatedMemberID()
? ? }
? ? );
? ? //Configures specific object from identified SOAP Object
? ? var config = {
? ? ? ? "CustomerKey": String(Platform.Function.GUID()).toUpperCase(),
? ? "Name": dataExtensionName,
? ? "CategoryID": retrieveCategorgyID(folderProp,folderVal),
? ? "Fields": [
? ? {
? ? ? ? "Name": "FirstName",
? ? "FieldType": "Text",
? ? "MaxLength": 50
? ? ? ? }
? ? ,
? ? {
? ? ? ? "Name": "LastName",
? ? "FieldType": "Text",
? ? "MaxLength": 80
? ? ? ? }
? ? ,
? ? {
? ? ? ? "Name": "SubscriberKey",
? ? "FieldType": "Text",
? ? "MaxLength": 254,
? ? "IsPrimaryKey": true,
? ? "IsRequired" : true
? ? ? ? }
? ? ,
? ? {
? ? ? ? "Name": "EmailAddress",
? ? "FieldType": "EmailAddress",
? ? "IsRequired" : true
? ? ? ? }
? ? ],
? ? "DataRetentionPeriodLength": 4,
? ? "RowBasedRetention": false,
? ? "ResetRetentionPeriodOnImport": true,
? ? "DeleteAtEndOfRetentionPeriod": false,
? ? "DataRetentionPeriod": "Weeks"
? ? };
? ? var result = api.createItem("DataExtension", config);
? ? return(Stringify(result));
? };
? ? try{
? ? var result=createDataExtension("My Data Extension","Name","Episode 13")
? ? Write(result);
? }
? ? catch(e){
? ? ? ? Write(e.message)}
</script>
Salesforce Marketing Champion | Technical Architect | Author | Trainer
2 年Would make it even modular adding config section by passing fields section.