我在发展方面一般都是超级新人。我目前正在构建一个从Rally / CA Agile Central获取数据的Web应用程序,并将它们放在一个整洁的表中。 我的代码:
response = rally.get('UserStory', fetch = True, query=query_criteria)
response_defect = rally.get('Defect', fetch = True, query=query_criteria)
story_list = []
if not response.errors:
for story in response:
#print (story.details())
a_story={}
#a_story['State'] = story.State.Name #if story.State else "Backlog"
a_story['State']=story.BusOpsKanban if story.BusOpsKanban else "unassigned"
#a_story['Status']=Story.Status if story.Status else "unassigned"
a_story['id'] = story.FormattedID
a_story['name'] = story.Name
a_story['Opened']=(datetime.strptime(story.CreationDate, '%Y-%m-%dT%H:%M:%S.%fZ').strftime('%Y-%d-%b'))
a_story['Requester']= story.Owner.Name if story.Owner else "unassigned"
a_story['Blocked']= story.Blocked
a_story['Service']=story.c_ServiceNowID
我的问题是访问我的customfield(c_ServiceNowID)的linkid的值。 当我运行 Dict =我看到我有LinkID属性但是当我输入
story.c_ServiceNowID.LinkID,我收到一条错误消息,告诉我没有这样的属性....如何使用python访问此值? 谢谢
答案 0 :(得分:0)
根据http://pyral.readthedocs.io/en/latest/overview.html#custom-fields的文档,pyral允许您引用不带c_前缀的字段
Rally中的大多数工件类型都可以使用自定义字段进行扩充。从Rally WSAPI v2.0开始,自定义字段的ElementName以“c_”为前缀。 pyral工具包允许您引用这些字段,而无需使用'c_'前缀。例如,如果您的自定义字段的DisplayName为“Burnt Offerings Index”,则可以在fetch子句或查询子句中使用“BurntOfferingsIndex”字符串,或者直接在工件上引用该字段作为artifact.BurntOfferingsIndex。
答案 1 :(得分:0)
我认为你的工作应该有效,除非ServiceNowID为空。在这种情况下,ServiceNowID对象上不会有LinkID或DisplayString。
如果您更新代码以检查属性是否存在,那么它是否有效?
if hasattr(story.c_ServiceNowID, 'LinkID'):
a_story['Service']=story.c_ServiceNowID.DisplayString
a_story['Link']=story.c_ServiceNowID.LinkID