WCF不发送一些数据类型

时间:2012-03-14 23:52:47

标签: wcf web-services soap wsdl

我正在通过WCF调用SAP PI Web服务。

我导入服务引用,实例化数据对象并设置所有数据,这些类型正确显示。

但是当我尝试在Test Client中生成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 个答案:

答案 0 :(得分:0)

根据@robertslaney的建议,在导入的WSDL上更改基数(minOccurs =“0”)解决了这个问题。