2013-08-27 1 views
0

this example을 작성하여 Salesforce for Java에 첨부 파일을 보내고 보냈지 만 C#에서는 어떻게 완료 되었습니까?C#에서 Salesforce의 첨부 파일 업로드

편집 - 또한 this page을 참조로 사용하고 있지만 첨부 파일을 만들고 저장하려고하는 마지막 부분을 끝내는 방법을 여전히 알지 못합니다.

SoapClient client = new SoapClient(); 
LoginResult lr = client.login(new LoginScopeHeader(), username, password); 

FileInfo fileInfo = new FileInfo(myFileLocation); 
FileStream stream = File.OpenRead(myFileLocation); 
byte[] byteArray = new byte[fileInfo.Length]; 
stream.Read(byteArray, 0, byteArray.Length); 

Attachment attachment = new Attachment(); 
attachment.Body = byteArray; 
attachment.Name = myFileName + ".txt"; 
attachment.IsPrivate = false; 

SaveResult saveResult = client.create(new sObject[] { attachment })[0]; 

답변

1

일반적으로 올바른 것처럼 보입니다. 다음과 같은 변경 사항이 있습니다.

login을 호출 한 후 결과 SessionId 및 ServerUrl을 클라이언트에 할당해야합니다.

SoapClient client = new SoapClient(); 
LoginResult lr = client.login(new LoginScopeHeader(), username, password); 
client.SessionHeaderValue = new SforceService.SessionHeader(); 
client.SessionHeaderValue.sessionId = li.sessionId; 
client.Url = loginResult.serverUrl; 

SaveResult를 검사하여 레코드가 만들어 졌는지, 새 ID가 무엇인지 확인해야합니다.

//... 
SaveResult saveResult = client.create(new sObject[] { attachment })[0]; 
if (saveResult .success){ 
    // saveResult.id contains id of newly created attachment 
} else { 
    //saveResult .errors[0] contains reason why attachment couldn't be created. 
} 
+0

SoapClient에는 SessionHeaderValue 또는 Url 매개 변수가 없으며 SforceService는 나를 위해 사용 가능한 개체가 아닙니다. 그 객체를 어떻게 나타나게할까요? Salesforce Enterprise wsdl을 사용하고 있습니다. – WEFX

+1

서비스 참조가 아닌 WEB REFERENCE로 엔터프라이즈 wsdl을 추가해야했습니다. 이것은 VS2012에서 다소 어려움이 있지만 현재 작업 중입니다. 감사 – WEFX

관련 문제