Create Folders Within Data Extensions, Filter Definitions, and Query Activities
Use folders to organize specific types of objects for optimized access and better organization. Use this sample code as a model for your own call:
Data Extension Folder
%%[
/* Create the data extension folder */
SET @rr_de_folder = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_de_folder, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_de_folder, "Properties", "ID")
AddObjectArrayItem(@rr_de_folder, "Properties", "Name")
/* Create and populate a SimpleFilterPart and add it to the RetrieveRequest*/
SET @sf1 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf1, "Property", "Name")
SetObjectProperty(@sf1, "SimpleOperator", "equals")
AddObjectArrayItem(@sf1, "Value", "A-B Test tool")
SET @sf2 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf2, "Property", "ContentType")
SetObjectProperty(@sf2, "SimpleOperator", "equals")
AddObjectArrayItem(@sf2, "Value", "DataExtension")
Set @cf1 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf1,"LeftOperand",@sf1)
SetObjectProperty(@cf1,"RightOperand",@sf2)
SetObjectProperty(@cf1,"LogicalOperator","AND")
SetObjectProperty(@rr_de_folder, "Filter", @cf1)
/* Execute the Retrieve */
SET @rr_de = InvokeRetrieve(@rr_de_folder)
/* DOES A FOLDER EXIST*/
if ROWCOUNT(@rr_de) > 0 then
/* YES */
SET @de_folderID = field(row(@rr_de,1),"ID")
else
/* NO */
/* CREATING FOLDER */
Set @df = CreateObject("DataFolder")
SetObjectProperty(@df,"Name","A-B Test tool")
SetObjectProperty(@df,"Description","Files associated with ET test tool")
SetObjectProperty(@df,"ContentType","DataExtension")
SetObjectProperty(@df,"IsActive",1)
SetObjectProperty(@df,"IsEditable",1)
SetObjectProperty(@df,"AllowChildren",1)
Set @pf = CreateObject("DataFolder")
SetObjectProperty(@pf,"ID", 264239)
SetObjectProperty(@df,"ParentFolder",@pf)
Set @StatCode = InvokeCreate(@df, @StatMessage, @ErrorCode)
/* Get the folder ID */
SET @rr_de_folder2 = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_de_folder2, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_de_folder2, "Properties", "ID")
AddObjectArrayItem(@rr_de_folder2, "Properties", "Name")
SET @sf3 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf3, "Property", "Name")
SetObjectProperty(@sf3, "SimpleOperator", "equals")
AddObjectArrayItem(@sf3, "Value", "A-B Test tool")
SET @sf4 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf4, "Property", "ContentType")
SetObjectProperty(@sf4, "SimpleOperator", "equals")
AddObjectArrayItem(@sf4, "Value", "DataExtension")
Set @cf2 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf2,"LeftOperand",@sf3)
SetObjectProperty(@cf2,"RightOperand",@sf4)
SetObjectProperty(@cf2,"LogicalOperator","AND")
SetObjectProperty(@rr_de_folder2, "Filter", @cf2)
/* Execute the Retrieve */
SET @rr_de2 = InvokeRetrieve(@rr_de_folder2)
SET @de_folderID = field(row(@rr_de2,1),"ID")
endif
@de_folderID = %%= v(@de_folderID) =%%<br />
]%%Filter Definition Folder
SET @rr_filter_folder = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_filter_folder, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_filter_folder, "Properties", "ID")
AddObjectArrayItem(@rr_filter_folder, "Properties", "Name")
/* Create and populate a SimpleFilterPart and add it to the RetrieveRequest*/
SET @sf1 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf1, "Property", "Name")
SetObjectProperty(@sf1, "SimpleOperator", "equals")
AddObjectArrayItem(@sf1, "Value", "A-B Test tool")
SET @sf2 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf2, "Property", "ContentType")
SetObjectProperty(@sf2, "SimpleOperator", "equals")
AddObjectArrayItem(@sf2, "Value", "filterdefinition")
Set @cf1 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf1,"LeftOperand",@sf1)
SetObjectProperty(@cf1,"RightOperand",@sf2)
SetObjectProperty(@cf1,"LogicalOperator","AND")
SetObjectProperty(@rr_filter_folder, "Filter", @cf1)
/* Execute the Retrieve */
SET @rr_filter = InvokeRetrieve(@rr_filter_folder)
/* DOES A FOLDER EXIST*/
if ROWCOUNT(@rr_filter) > 0 then
/* YES */
SET @filter_folderID = field(row(@rr_filter,1),"ID")
else
/* NO */
/* CREATING FOLDER */
Set @df = CreateObject("DataFolder")
SetObjectProperty(@df,"Name","A-B Test tool")
SetObjectProperty(@df,"Description","Files associated with ET test tool")
SetObjectProperty(@df,"ContentType","filterdefinition")
SetObjectProperty(@df,"IsActive",1)
SetObjectProperty(@df,"IsEditable",1)
SetObjectProperty(@df,"AllowChildren",1)
Set @pf = CreateObject("DataFolder")
SetObjectProperty(@pf,"ID", 337465)
SetObjectProperty(@df,"ParentFolder",@pf)
Set @StatCode = InvokeCreate(@df, @StatMessage, @ErrorCode)
/* Get the folder ID */
SET @rr_filter_folder2 = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_filter_folder2, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_filter_folder2, "Properties", "ID")
AddObjectArrayItem(@rr_filter_folder2, "Properties", "Name")
SET @sf3 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf3, "Property", "Name")
SetObjectProperty(@sf3, "SimpleOperator", "equals")
AddObjectArrayItem(@sf3, "Value", "A-B Test tool")
SET @sf4 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf4, "Property", "ContentType")
SetObjectProperty(@sf4, "SimpleOperator", "equals")
AddObjectArrayItem(@sf4, "Value", "filterdefinition")
Set @cf2 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf2,"LeftOperand",@sf3)
SetObjectProperty(@cf2,"RightOperand",@sf4)
SetObjectProperty(@cf2,"LogicalOperator","AND")
SetObjectProperty(@rr_filter_folder2, "Filter", @cf2)
/* Execute the Retrieve */
SET @rr_filter2 = InvokeRetrieve(@rr_filter_folder2)
SET @filter_folderID = field(row(@rr_filter2,1),"ID")
endif
@filter_folderID = %%= v(@filter_folderID) =%%<br />Query Activity Folder
SET @rr_query_folder = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_query_folder, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_query_folder, "Properties", "ID")
AddObjectArrayItem(@rr_query_folder, "Properties", "Name")
/* Create and populate a SimpleFilterPart and add it to the RetrieveRequest*/
SET @sf1 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf1, "Property", "Name")
SetObjectProperty(@sf1, "SimpleOperator", "equals")
AddObjectArrayItem(@sf1, "Value", "A-B Test tool")
SET @sf2 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf2, "Property", "ContentType")
SetObjectProperty(@sf2, "SimpleOperator", "equals")
AddObjectArrayItem(@sf2, "Value", "queryactivity")
Set @cf1 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf1,"LeftOperand",@sf1)
SetObjectProperty(@cf1,"RightOperand",@sf2)
SetObjectProperty(@cf1,"LogicalOperator","AND")
SetObjectProperty(@rr_query_folder, "Filter", @cf1)
/* Execute the Retrieve */
SET @rr_query = InvokeRetrieve(@rr_query_folder)
/* DOES A FOLDER EXIST*/
if ROWCOUNT(@rr_query) > 0 then
/* YES */
SET @query_folderID = field(row(@rr_query,1),"ID")
else
/* NO */
/* CREATING FOLDER */
Set @df = CreateObject("DataFolder")
SetObjectProperty(@df,"Name","A-B Test tool")
SetObjectProperty(@df,"Description","Files associated with ET test tool")
SetObjectProperty(@df,"ContentType","queryactivity")
SetObjectProperty(@df,"IsActive",1)
SetObjectProperty(@df,"IsEditable",1)
SetObjectProperty(@df,"AllowChildren",1)
Set @pf = CreateObject("DataFolder")
SetObjectProperty(@pf,"ID", 869592)
SetObjectProperty(@df,"ParentFolder",@pf)
Set @StatCode = InvokeCreate(@df, @StatMessage, @ErrorCode)
/* Get the folder ID */
SET @rr_query_folder2 = CreateObject("RetrieveRequest")
SetObjectProperty(@rr_query_folder2, "ObjectType", "DataFolder")
AddObjectArrayItem(@rr_query_folder2, "Properties", "ID")
AddObjectArrayItem(@rr_query_folder2, "Properties", "Name")
SET @sf3 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf3, "Property", "Name")
SetObjectProperty(@sf3, "SimpleOperator", "equals")
AddObjectArrayItem(@sf3, "Value", "A-B Test tool")
SET @sf4 = CreateObject("SimpleFilterPart")
SetObjectProperty(@sf4, "Property", "ContentType")
SetObjectProperty(@sf4, "SimpleOperator", "equals")
AddObjectArrayItem(@sf4, "Value", "queryactivity")
Set @cf2 = CreateObject("ComplexFilterPart")
SetObjectProperty(@cf2,"LeftOperand",@sf3)
SetObjectProperty(@cf2,"RightOperand",@sf4)
SetObjectProperty(@cf2,"LogicalOperator","AND")
SetObjectProperty(@rr_query_folder2, "Filter", @cf2)
/* Execute the Retrieve */
SET @rr_query2 = InvokeRetrieve(@rr_query_folder2)
SET @query_folderID = field(row(@rr_query2,1),"ID")
endif
]%%
@query_folderID = %%= v(@query_folderID) =%%<br />