랠리에서 결함에 대한 사용자 정의 웹 링크 필드를 구성했습니다. 그리고 랠리 rest .net api를 사용하여 랠리에 맞게 사용자 정의 weblink 필드의 값으로 새로운 결함을 제출하고 싶습니다.랠리 레스트 .net api로 결함을 제출할 때 사용자 정의 WebLink 필드 값을 설정하는 방법?
웹 링크 인스턴스가 LinkID 및 DisplayString 값을 필요로하지 않으면 웹 링크 인스턴스를 초기화하여 결함 필드를 설정하는 방법을 알지 못합니다.
또한 랠리 레스트 .net api에서 해당 필드를 지원하는 DynamicJsonObject를 설정하려고 시도했지만 여전히 실패했습니다.
디버깅 스크린 샷
도와주세요!
편집 : 아래의 샘플 코드와
내가 게시 해봤 결함 :
var api = new RallyRestApi("<myusername>", "<mypassword>", "https://community.rallydev.com");
var defect = new DynamicJsonObject();
defect["Name"] = "Sample Defect";
defect["Description"] = "Test posting defect with weblink type field";
defect["Project"] = "https://trial.rallydev.com/slm/webservice/1.29/project/5839639589.js";
defect["SubmittedBy"] = "https://trial.rallydev.com/slm/webservice/1.29/user/5797741589.js";
defect["ScheduleState"] = "In-Progress";
defect["State"] = "Open";
defect["Severity"] = "Major Problem";
defect["Priority"] = "High Attention";
defect["CustWebLink"] = new DynamicJsonObject(new Dictionary<string, object>
{
{"DisplayString", "abc"},
{"LinkID", "123"}
});
CreateResult creationResult = api.Create("defect", defect);
이제 결함이 랠리에 게시하지만, CustWebLink의 값을 가질 수 할 수 있습니다 . 조사하는 동안 나는 CustWebLink 필드가 게시 요청의 직렬화에서 무시 된 것을 본다.
이 비교적 간단Rally.RestApi Post Response: {"CreateResult": {"_rallyAPIMajor": "1", "_rallyAPIMinor": "29", "Errors": [], "Warnings": ["Ignored JSON element defect.CustWebLink during processing of this request."],.....}
감사합니다. @ 마크, 나는 당신과 같은 방식으로했지만 여전히 KeyNotFoundException 오류를 계속 발생시킵니다. 'Rally.RestApi 게시자 응답 : { "CreateResult": { "_rallyAPIMajor": "1", "_rallyAPIMinor": "29", "Errors": [ "JSON 문서로 I/O 오류로 인해 입력 스트림을 구문 분석 할 수 없습니다 : 구문 분석 오류 : 속성 값을 읽으려고 할 때 예기치 않은 문자 'R'을 읽습니다. [chars read = >>> { "defect": { "Name": "sdf", "Description": "abc", "Project" "상태": "열림", "CusWebLink": R <<<] "],"상태 ":"완료 "," 경고 : "[]}}' –
안녕하세요, 위의 오류 문자열을 기반으로 Triet은 다음과 같은 할당 문이 있습니까 : myDefect ["CusWebLink "] = ...; ? 웹 링크에 해당하는 다른 DynamicJSON 객체로 설정됩니까? Weblink 필드에는 URL 정보 자체가 포함되어 있지 않습니다. 이는 Rally 내부의 속성입니다. LinkID 및 DisplayString에 대한 숫자 식별자 만 포함해야합니다. DynamicJSONObject에 전달한 문자열 안에 \/" ''< > 등의 특수 문자를"이스케이프 "해야합니다. 그렇지 않으면 올바르게 직렬화되지 않을 수 있습니다. –
안녕하세요. 내 질문을 업데이트했습니다. CusWebLink 필드에 2 개의 필드 (LinkID 및 DisplayString) 만있는 DynamicJsonObject가 할당 된 것을 볼 수 있습니다 .LinkID와 DisplayString 모두 문자열 값을가집니다. –