从CRM集成到Team Foundation Server 2018

时间:2019-01-31 09:30:20

标签: json tfs integration crm

我们拥有CRM,客户可以在其中创建票证(变更请求,事件...)。 从开发人员团队的角度来看,我们有Team Foundation Server 2018。

为了加快流程,我们希望将整个过程自动化。因此,当客户创建票证时,要自动创建TFS用户故事。

我们开发了代码,每次创建票证时都将数据取入JSON文件中。 (将在Github中附加代码并共享链接) 但是现在,我只需要信息,是有人对JSON文件的外观有什么想法,需要将其发布到TFS以便创建新的用户故事。

{
    "fields": {
        "System.WorkItemType": "User Story",
        "System.AreaPath": "EJ2TFS",
        "System.TeamProject": "EJ2TFS",
        "System.IterationPath": "EJ2TFS",
        "System.State": "New",
        "System.Reason": "New",
        "Microsoft.VSTS.Common.StateChangeDate": "2019-01-01T00:00:00Z",
        "System.ChangedBy": "Doe, John <firm\\doej>",
        "System.CreatedBy": "Doe, John <firm\\doej>",
        "System.Title": "Sample task created by POST API",
        "System.Discussion":"test1",
        "Microsoft.VSTS.Common.StateChangeDate": "2019-01-31T14:00:00",
        "Microsoft.VSTS.Common.Priority": 2,
        "Microsoft.VSTS.Common.ValueArea": "Business"
    }
}   

错误是:

{
    "$id": "1",
    "innerException": null,
    "message": "The request indicated a Content-Type of \"text/plain\" for method type \"POST\" which is not supported. Valid content types for this method are: application/json-patch+json.",
    "typeName": "Microsoft.VisualStudio.Services.WebApi.VssRequestContentTypeNotSupportedException, Microsoft.VisualStudio.Services.WebApi",
    "typeKey": "VssRequestContentTypeNotSupportedException",
    "errorCode": 0,
    "eventId": 3000
}

1 个答案:

答案 0 :(得分:1)

看起来您的有效载荷需要改头换面。我引用了几个代码示例并共享了此代码段。 (请对此进行测试,但我没有机会对其进行测试)

POST https://dev.azure.com/fabrikam/{project}/_apis/wit/workitems/$User Story?api-version=5.0

[
  {
    "op": "add",
    "path": "/fields/System.Title",
    "from": null,
    "value": "My first user story"
  }
]

MS documentation example

GitHub sample