2017-11-27 11 views
0

名前にスペースが含まれているカスタムフィールドから項目を作成/更新できますか?Workfrontのスペースに空白が含まれているカスタムフィールド

カスタムフィールドContact phoneを持つプロジェクトがあります。このフィールドはブラウザから正しく使用できます。 https://github.com/Workfront/workfront-api-examples-csharpは役に立ちませんでした。私は問題の詳細内にデータを追加することができました。私は特定のカスタムフィールド(作成/更新)内に追加したいと思います。

var client = new AtTaskRestClient(_url); // from the example 
... 
var description = $"Contact phone: {item.ContactPhone}"; 
client.Create(ObjCode.ISSUE, new { name = item.Name, 
    description = description, 
    projectID = _projectID }); 

client.Createは、最終パラメータとしてオブジェクトを有する。コンストラクタ内に"DE:Contact phone" = item.ContactPhoneを含めることができない匿名型を使用します。このフィールドはどのように書くことができますか?

我々はブラウザから値を挿入した場合、正しく動作しますDE:Contact phone読書:

JToken issues = client.Search(ObjCode.ISSUE, new { projectID = _projectID }); 
foreach (var issue in issues["data"].Children()) { 
    var name = issue.Value<string>("name"); // correct 
    var id = issue.Value<string>("ID"); // correct 
    var fields = client.Get(ObjCode.ISSUE, id, new[] { "description", "DE:Contact phone"}); // correct 
+0

解決策はありませんが、Workfrontはカスタムフィールドのスペースをうまく処理します。私はあなたが使用しているC#の実装に精通していないが、問題はスペース文字の処理にあると思う。また、Workfrontは、カスタムフィールドを設定して、そのフィールドを含むカスタムフォームをオブジェクトに最初に適用せずに、カスタムフィールドを設定しようとした場合の処理​​がうまくいかないことにも注意してください。 「最良の」フォームを見つけてそれを適用することになっていますが、私はその動作が最高で不安定であることを発見しました。おそらく、obj - > apply form - > set fieldの順番で複数のステップを実行するのでしょうか? –

答えて

0

https://github.com/Workfront/workfront-api-examples-csharp/blob/master/AtTaskRestExample/AtTaskRestClient.cs

public JToken Create(ObjCode objcode, object parameters) { 
    VerifySignedIn(); 
    string[] p = parameterObjectToStringArray(parameters, "sessionID=" + SessionID); 
    JToken json = client.DoPost(string.Format("/{0}", objcode), p); 
    return json; 
} 

私は文字列の配列

public JToken Create(ObjCode objcode, string[] parameters) { 
    VerifySignedIn(); 
    JToken json = client.DoPost(string.Format("/{0}", objcode), parameters); 
    return json; 
} 
を受けて、新たな機能CreateExを、書きました

次のようにアクセスされます:

var client = new AtTaskRestClient(_url); // from the example 
... 
string[] parameteres = 
    { 
     $"name={issueName}", 
     $"description={description}", 
     $"projectID={_projectID}", 
     $"sessionID={client.SessionID}", 
     $"DE:Contact phone={contactPhone}" 
    }; 
client.CreateEx(ObjCode.ISSUE, parameteres); 
関連する問題