1

Does anyone know if there is a way to define the "Manage control policy" fields for a data extension when creating it through SOAP API / WSProxy?

  • I want to create Data Extensions that cannot be deleted by mistake, by ADMINS.

  • I need to use the API for the creation of such DEs.

The UI has an option:

The "Manage control policy" options (/ "allow users to delete this data extension") on the UI in Contact Builder hides the deletion "recycle bin" at the top right for the selected DE until an admin goes in and purposely enables deletion in the same way.

enter image description here

This is the exact capability I need, but I do not want to set this manually.

I cannot find it in the API docs, maybe someone has a trick up their sleeve?

  • I am aware of the SOAP API and how to create Data Extensions in general.

  • I am aware that permissions exist. I do not intend to remove rights for ALL DEs, Admins are Admins. This has to be at DE level.

  • I am aware of the API documentation for the Data Extension Object and see no trace of these definitions.

  • a describe call on the Data Extension object returns nothing noteworthy.

  • When I open the network tab in Dev Tools and perform the operation via UI, I get a hint in the payload: isObjectDeletable.

enter image description here

and under "response" i see it among the other properties:

enter image description here

===

What have I tried so far:

using this in a create call does not fail, but does not enter the setting either. The field is not returned in the response.

(i tried both isObjectDeletable and IsObjectDeletable)

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Header>
        <fueloauth>{{accessToken}}</fueloauth>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
            <Options></Options>
            <Objects xsi:type="DataExtension">
                <PartnerKey xsi:nil="true"/>
                <ObjectID xsi:nil="true"/>
                <Name>testCreate</Name>
                <CustomerKey>testCreate</CustomerKey>
                <!--<CategoryID></CategoryID>-->
                <IsSendable>false</IsSendable>
                <IsTestable>false</IsTestable>
                <RowBasedRetention>true</RowBasedRetention>
                <DeleteAtEndOfRetentionPeriod>false</DeleteAtEndOfRetentionPeriod>
                <ResetRetentionPeriodOnImport>false</ResetRetentionPeriodOnImport>
                <DataRetentionPeriodLength>30</DataRetentionPeriodLength>
                <DataRetentionPeriod>Days</DataRetentionPeriod>
                <isObjectDeletable>false</isObjectDeletable>
                <Fields>
                    <Field>
                        <Name>testId</Name>
                        <FieldType>Text</FieldType>
                        <IsPrimaryKey>true</IsPrimaryKey>
                        <IsRequired>true</IsRequired>
                        <MaxLength>36</MaxLength>
                    </Field>                
                </Fields>
            </Objects>
        </CreateRequest>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
  • same thing if I enter it as "options"
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
  <Options>
    <isObjectDeletable>false</isObjectDeletable>
</Options>

-> does not fail, does not configure the setting.

  • following up on "PartnerProperties":

When I do a Describe call:

{{soapEndpoint}}/Service.asmx

headers:

SOAPAction:"Describe"

Content-Type": "text/xml"

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Header>
        <fueloauth>{{accessToken}}</fueloauth>
   </soapenv:Header>
   <soapenv:Body>
      <DefinitionRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
         <DescribeRequests>
            <ClientIDs>
               <ID>my MID</ID>
            </ClientIDs>
            <ObjectDefinitionRequest>
               <ObjectType>DataExtension</ObjectType>
            </ObjectDefinitionRequest>
         </DescribeRequests>
      </DefinitionRequestMsg>
   </soapenv:Body>
</soapenv:Envelope>

In this response I get this.

<Properties>
                    <PartnerKey xsi:nil="true" />
                    <ObjectID xsi:nil="true" />
                    <Name>PartnerProperties</Name>
                    <DataType>APIProperty[]</DataType>
                    <IsUpdatable>true</IsUpdatable>
                    <IsRetrievable>false</IsRetrievable>
                </Properties>

Reading this, my only guess is that if I knew the relevant partnerProperty, I might be able to update it.

  • entering it as name Value pair inside the "objects"
   ...
                <DataRetentionPeriod>Days</DataRetentionPeriod>
                <PartnerProperties>                
                    <Name>isObjectDeletable</Name>
                    <Value>false</Value>
                </PartnerProperties>
                <Fields>
    ...

-> does not fail, does not configure the setting. The "partnerProperties" is returned in the response though, to no effect.

  • trying the same in an updateRequest:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <SOAP-ENV:Header>
            <fueloauth>{{accessToken}}</fueloauth>
        </SOAP-ENV:Header>
        <SOAP-ENV:Body>
            <UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
                <Options/>
                    <ns1:Objects xmlns:ns1="http://exacttarget.com/wsdl/partnerAPI" xsi:type="ns1:DataExtension">
                        <ModifiedDate xsi:nil="true"/>
                        <Name>testCreate5</Name>
                        <PartnerProperties>
                            <Name>isObjectDeletable</Name>
                            <Value>false</Value>
                        </PartnerProperties>
                    </ns1:Objects>
            </UpdateRequest>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

-> does not fail, does not configure the setting. PartnerProperty is returned in response.

  • enter it as name value pair in options:
          ...      <CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
            <Options>
                <PartnerProperties>                
                    <Name>isObjectDeletable</Name>
                    <Value>false</Value>
                </PartnerProperties>
            </Options>
            <Objects xsi:type="DataExtension">...

-> does not fail, does not configure the setting. Does not return anything in response.

anyone?

0

You must log in to answer this question.

Browse other questions tagged .