salesforce-marketingcloud / FuelSDK-Python

FuelSDK for python
Other
127 stars 191 forks source link

[BUG]ET_DataExtension requires a columns list, even if there is no intent to add columns #131

Open cheitzig opened 3 years ago

cheitzig commented 3 years ago

Describe the bug Using the ET_DataExtension() class to (for example) rename a data extension doesn't work unless you create columns attribute with an empty list. To Reproduce Specifically, this code, from the documentation, here, fails.

import ET_Client
myClient = ET_Client.ET_Client()
dataextension = ET_Client.ET_DataExtension()
dataextension.auth_stub = myClient
dataextension.props = {"CustomerKey" : "151515151", "Name": "SDK Example, now Updated!"}
results = dataextension.patch()
print results

It works though, if you add this line someplace before the call to patch() dataextension.columns = []

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Code snippet

import ET_Client
myClient = ET_Client.ET_Client()
dataextension = ET_Client.ET_DataExtension()
dataextension.auth_stub = myClient
dataextension.props = {"CustomerKey" : "151515151", "Name": "SDK Example, now Updated!"}
results = dataextension.patch()
print results

Environment

The bug has the severity

Additional context Possible fix: line 176 and line 186 should have an if around them. Maybe all of 171-188 should have that if because (maybe) the only purpose of that code is to add columns for either a single or multiple DE's, but I'm not clear on that.

cvvishalkumar commented 3 years ago

Thank you so much for the work-around! I was able to resolve the below error by using blank columns. Thanks.

Traceback (most recent call last): File "d:\vishal\Python\Vishal_LearnPython\UpdateDE.py", line 11, in <module> results = request.patch() File "D:\vishal\Python\lib\site-packages\FuelSDK\objects.py", line 196, in patch for key in self.columns: TypeError: 'NoneType' object is not iterable