Массивы не работают при использовании SAP Webservices - PullRequest
0 голосов
/ 25 апреля 2019

В настоящее время я использую веб-службу SAP, но единственный объект, который возвращается со значениями, это объекты без дочерних элементов.

Я не имею никакого влияния на настройку веб-службы SAP, поэтому понятия не имею,это правильно, они просто прислали мне ссылку и XML, который выглядит нормально.

Мне пришлось зайти в Reference.cs и изменить класс из-за свойства, названного System, как показано ниже, но как функциякажется, работает, я не думаю, что это имеет какое-либо отношение к проблеме:

[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)]

Я попытался изменить веб-конфигурацию, чтобы увидеть, были ли параметры привязкиосуществляя это.Я попытался изменить Тип коллекции в конфигурации веб-службы, чтобы использовать System.Array, Generic Lists.

Классы, которые не работают, выглядят так:

[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 со значениями возвращаемого сообщения.

подумайте, пожалуйста?

Так что XML, который команда SAP отправляет мне, когда я делаю вызов, выглядит хорошо, но любой класс, который ожидает элементы, например

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

просто не работает.классы созданы, но у них нет элементов.

1 Ответ

0 голосов
/ 21 мая 2019

Итак, я пришел сегодня утром и проверил Web-сервисы, и эй, прежде чем он теперь работает.

Я ничего не изменил, поэтому я спросил сотрудников SAP, есть ли у них объяснение, и вот оно:

Вчера я внес изменения в RFC-подобный тип структуры, чтобы получить результат и в таблицу с помощью веб-службы.

Я не уверен, будет ли это полезнони к чему ... я просто рад, что это наконец работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...