2012-03-14 84 views
2

我正在通過WCF調用SAP PI Web服務。WCF不發送某些數據類型

我導入服務引用,實例數據對象並設置所有數據,這些類型顯示正確。

但是當我嘗試在測試客戶端中生成SOAP信封時,沒有生成INT和DATE數據字段,因此,我不會發送任何這種數據類型。

這裏是WSDL我正在消耗的樣本:

<wsdl:definitions name="itfGRHU_Dados_Candidatos_Out_Sync" targetNamespace="http://www.xxx.com/Vagas_to_SAP/Envio_Dados_Candidatos" xmlns:p1="http://www.xxx.com/Vagas_to_SAP/Envio_Dados_Candidatos" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 
    <wsdl:documentation/> 
    <wsdl:types> 
     <xsd:complexType name="dtpGRHU_Dados_Candidatos_Campos"> 
      <xsd:annotation> 
       <xsd:appinfo source="http://sap.com/xi/VersionID">5e84228c1f7111e1b60a0000125697d2</xsd:appinfo> 
      </xsd:annotation> 
      <xsd:sequence> 
       <xsd:element name="IT4002_OBJID" minOccurs="0"> 
        <xsd:annotation> 
         <xsd:appinfo source="http://sap.com/xi/TextID">643fdb0b1f5011e1c09c70f1a13bc69d</xsd:appinfo> 
         <xsd:documentation>Vaga</xsd:documentation> 
        </xsd:annotation> 
        <xsd:simpleType> 
         <xsd:restriction base="xsd:int"> 
          <xsd:totalDigits value="8"/> 
         </xsd:restriction> 
        </xsd:simpleType> 
       </xsd:element> 
       <xsd:element name="IT0002_GBDAT" type="xsd:date" minOccurs="0"> 
        <xsd:annotation> 
         <xsd:appinfo source="http://sap.com/xi/TextID">64402abe1f5011e1acf970f1a13bc69d</xsd:appinfo> 
         <xsd:documentation>Data de Nascimento</xsd:documentation> 
        </xsd:annotation> 
       </xsd:element> 
      </xsd:sequence> 
     </xsd:complexType> 
    </wsdl:types> 
</wsdl:definitions> 

感謝。

+1

我記得SAP模式和Biztalk存在很大的問題。每個字段都標記爲可選(minOccurs =「0」)。嘗試更改導入的WSDL上的IT4002_OBJID和IT0002_GBDAT元素的基數,並查看是否有所作爲 – 2012-03-15 03:02:35

+0

您可以向我們展示用於創建此請求的C#(或VB.NET)中的**生成的類**嗎? – 2012-03-15 06:09:27

+0

@RobertSlaney這就是答案!謝謝! – 2012-03-20 12:18:45

回答

0

根據@robertslaney的建議更改導入的WSDL的基數(minOccurs =「0」)解決了此問題。