I'm trying to create a wsproxy script to create data folders in a BU for multiple content types. I'm struggling to understand how I can set the parent folder ID once I've retrieved them. I have a script that creates folders for a single content type.
<script runat="server">
Platform.Load("core", "1.1");
var api = new Script.Util.WSProxy();
//retrieve the parentfolder ID
var soapObjName = "DataFolder";
var req = api.retrieve("DataFolder", ["ID"], {
Property: "Name",
SimpleOperator: "equals",
Value: "Data Extensions"
}
);
//set the parentFolderID variable with the results
var parentFolderId = req.Results[0].ID;
/*jSON for each folder to be created which reference the parentFolderID
If editing the names here any subfolders created will also need to be updated
in Data Folders Level 2 Create.js */
var contentJSON = [{
Name: "0. Base Model",
Description: "Used to store the Base Model DEs",
ParentFolder: {
ID: parentFolderId,
IDSpecified: true
},
IsActive: true,
IsEditable: true,
AllowChildren: true,
ContentType: "dataextension"
}
I know that I can create complex filters to retrieve multiple parent folder IDs. Here's the payload response I get when using postman and a complex filter for 2 content types:
<RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<OverallStatus>OK</OverallStatus>
<RequestID>837844e4-f6f5-4035-a9f2-0093445f623f</RequestID>
<Results xsi:type="DataFolder">
<PartnerKey xsi:nil="true" />
<ID>1112</ID>
<ObjectID xsi:nil="true" />
</Results>
<Results xsi:type="DataFolder">
<PartnerKey xsi:nil="true" />
<ID>1116</ID>
<ObjectID xsi:nil="true" />
</Results>
</RetrieveResponseMsg>
How can I update this line:
var parentFolderId = req.Results[0].ID;
to be the relevant parenFolderId when I'm returning multiple?