2014-01-13 5 views
0

Bellow는 Salesforce 서버에서 가져온 XML POST 및 Response입니다. 계정에 첨부 파일을 추가하려고하는데 INVALID_TYPE이 계속 나타납니다.salesforce 첨부 파일을 만들 때 INVALID_TYPE

필자가 작업하고있는 서버에서 SOAP 확장이 필요하기 때문에 SalesForce PHP 라이브러리 대신 NuSoap을 사용하고 있습니다.

나는 들어가서 라이브러리가 작동하도록 수정하는 데 아무런 문제가 없지만 문제를 해결하기 위해 XML에 어떤 문제가 있는지 실마리가 없습니다. 쿼리 정보를 완벽하게 얻을 수 있습니다.

모든 도움과 조언을 부탁드립니다.

<ContentType xsi:type="xsd:string">.pdf</ContentType> 

유효한 콘텐츠 형식되지 않습니다 :

<?xml version="1.0" encoding="ISO-8859-1"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Header> 
    <nu2113:SessionHeader xmlns:nu2113="urn:enterprise.soap.sforce.com"> 
     <sessionId>00Di00000{---cutting out for privacy--}UrYmByvpO5yRWIK0Gmy</sessionId> 
    </nu2113:SessionHeader> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
    <create xmlns="urn:enterprise.soap.sforce.com"> 
     <sObject> 
      <type xsi:type="xsd:string">Attachment</type> 
      <fieldsToNull> 
       <elementName xsi:type="xsd:string">fieldsToNull</elementName> 
       <values xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[5]"> 
        <item xsi:type="xsd:string">OwnerId</item> 
        <item xsi:type="xsd:string">IsPrivate</item> 
        <item xsi:type="xsd:string">IsPartnerShared</item> 
        <item xsi:type="xsd:string">ConnectionSentId</item> 
        <item xsi:type="xsd:string">BodyLength</item> 
       </values> 
      </fieldsToNull> 
      <Id xsi:nil="true"/> 
      <ParentId xsi:type="xsd:string">001i000000JG17b</ParentId> 
      <Name xsi:type="xsd:string">Test document</Name> 
      <Description xsi:type="xsd:string">Test upload from WIN form</Description> 
      <ContentType xsi:type="xsd:string">.pdf</ContentType> 
      <Body xsi:type="xsd:string">hello</Body> 
     </sObject> 
    </create> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 


HTTP/1.1 100 Continue 
HTTP/1.1 500 Server Error 
Date: Mon, 13 Jan 2014 15:49:56 GMT 
Content-Type: text/xml;charset=UTF-8 
Content-Length: 676 

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sf="urn:fault.enterprise.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
    <soapenv:Fault> 
     <faultcode>sf:INVALID_TYPE</faultcode> 
     <faultstring>INVALID_TYPE: Must send a concrete entity type.</faultstring> 
     <detail> 
      <sf:InvalidSObjectFault xsi:type="sf:InvalidSObjectFault"> 
       <sf:exceptionCode>INVALID_TYPE</sf:exceptionCode> 
       <sf:exceptionMessage>Must send a concrete entity type.</sf:exceptionMessage> 
       <sf:row>-1</sf:row> 
       <sf:column>-1</sf:column> 
      </sf:InvalidSObjectFault> 
     </detail> 
    </soapenv:Fault> 
</soapenv:Body> 
</soapenv:Envelope> 

답변

0

이 줄은 문제가 될 수 있습니다. 이것을 시도하십시오 :

<ContentType xsi:type="xsd:string">application/pdf</ContentType> 
+0

슬프게도 아무것도하지 않았습니다. – kjones1876

+0

같은 오류가 있습니까? '에 업로드 할 pdf 파일의 base64 인코딩 된 문자열을 넣었습니까? – Latheesan

+0

예. 나는 그랬다. 하지만 새로 고침 할 때마다 b64에 1MB PDF를 표시하기 때문에 더미 텍스트로 바 꾸었습니다. XML에서 "create"요청의 예가 무엇인지 알 수 있습니까? 모든 문서는 Java/C# 코드 만 보여줍니다. XML 자체가 아닙니다. – kjones1876