使用SAP Webservices时阵列不起作用

时间:2019-04-25 09:36:37

标签: c# sap

我目前正在使用SAP Webservice,但是唯一返回值的对象是没有子项的对象。

我对SAP Web服务的设置没有影响,所以不知道它是否正确,他们只是向我发送了链接和看起来不错的XML。

我不得不进入Reference.cs并修改该类,因为Property如下所示,但是该函数似乎可以正常工作,因此我认为这与问题无关:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]

[System.Xml.Serialization.XmlElementAttribute(Form=global::System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]

我尝试更改Web配置,以查看绑定参数是否正在影响它。 我尝试过更改Web服务配置中的“收集类型”以使用System.Array,通用列表。

无效的类如下:

[System.Xml.Serialization.XmlArrayAttribute(Form= System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
[System.Xml.Serialization.XmlArrayItemAttribute("item", Form= System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]


        public Humans[] People{
            get {
                return this.crowd;
            }
            set {
                this.crowd= value;
                this.RaisePropertyChanged("Humans");
            }
        }

一个有效的类如下:

[System.Xml.Serialization.XmlElementAttribute( Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]

    public HandShake Return {
        get {
            return this.returnField;
        }
        set {
            this.returnField = value;
            this.RaisePropertyChanged("Return");
        }
    }

和XML看起来像这样:

<n0:SAPFunction>
  <Humans>
  <item>
     <name>Joe</name>
     <age>13</age>
     <town>The Shire</town>
   </item>
   <item>...</item>
</Humans>
<Return>
     <Id>0</Id>
    <Message>People Found</Message>
    <System/>
 </Return>
 </n0:SAPFunction>

因此,基本上Array类都应该有项目,但我只是加载了一个空数组,并获得了带有返回消息值的HandShake类。

请问?

因此,SAP团队在我打电话时发送给我的XML看起来不错,但是任何需要项目的类

[System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]

只是行不通。创建了类,但没有任何项目。

1 个答案:

答案 0 :(得分:0)

所以我今天早上来测试Web服务,嘿,现在它可以工作了。

我什么都没做,所以我问SAP人员是否有解释,就是这样:

  

昨天我对RFC之类的结构类型进行了更改,以便也使用Web服务将结果也放入表中。

我不确定这是否对任何事情都有用...我很高兴它终于可以工作了!