Это очень уникальный вопрос. Поэтому я использую NuSoap для связи с мыльной службой. Все работает нормально. Я не получаю ошибок, но вот где это становится странно. Служба правильно подачи через Soap UI, но не мой код :(NuSoap PHP Одно значение, входящее как не пусто
Там есть один XML поле, которое:
<xs:element name="NameX" default="Yes" type="ns0:NameXType" minOccurs="0"/>
Вот определение в WSDL
<xs:simpleType name="NameXType">
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
<xs:enumeration value="Yes"/>
</xs:restriction>
</xs:simpleType>
Я полагаю, что вышеупомянутый XML означает, что он может принимать значение «Да» или «» (ничего/null).
Теперь в моем коде я делаю это:
$result = $client->call('functionName',
array(
'API_Status' => 'None',
'AuthenticationInfo' => array(
'userName' => $username,
'password' => $password
),
'Category' => 'Application',
<!-- Problem Here -->
'NameX' => null,
<!-- Problem Here -->
'Customer_DB_ID' => 'XXX',
'Details' => 'External User Web Request',
'Group' => 'NHLBI-CBI-WEB_Support',
'Impact' => '4-Minor/Localize',
'Item' => $classify,
'Record_Type' => 'Support Request',
'Short_Description' => $subject,
'Status' => 'New',
'Type' => 'Website',
'Urgency' => '3-Medium',
'Work_Log' => $message,
), $namespace = 'urn:Service', $soapAction = 'localhost/soapAction', $style = 'document', $use = 'literal');
Таким образом, проблема заключается в том, что во всех моих представлениях из формы, которую я разрабатываю, это поле NameX продолжает поступать как ответ по умолчанию «Да». Я официально говорю, что я потерян и не знаю как действовать.
Теперь, что странно, это поле NameX является полем Test. Если это Да, только администраторы приложения могут видеть представление. Если он равен нулю, он доступен для всех пользователей.
Что отстой, меня обвиняют в этом беспорядке. Я не уверен, что делать дальше.
Вот как выход успешного представления с полем НТБ, как «» должно выглядеть .:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Service">
<soapenv:Header/>
<soapenv:Body>
<urn:Create>
<urn:AuthenticationInfo>
<urn:userName>username</urn:userName>
<urn:password>password</urn:password>
</urn:AuthenticationInfo>
<urn:Category>Application</urn:Category>
<!--Optional:-->
<urn:Customer_ID>12345</urn:Customer_ID>
<urn:Details>Test</urn:Details>
<urn:Group>Support</urn:Group>
<urn:Impact>None</urn:Impact>
<urn:Item>Test</urn:Item>
<urn:Record_Type>Support Request</urn:Record_Type>
<urn:Short_Description>Testing the short description</urn:Short_Description>
<urn:Status>New</urn:Status>
<!--THis is the field giving me issues:-->
<ns0:NameX/>
<!--THis is the field giving me issues:-->
<urn:Type>Website</urn:Type>
<urn:Urgency>3-Medium</urn:Urgency>
<urn:Work_Log>Test work notes...Hello Testing...New</urn:Work_Log>
</urn:Create>
</soapenv:Body>
</soapenv:Envelope>
Любая помощь приветствуется. Благодаря! Надеюсь, я ничего не оставил. Если вам нужен еще какой-то код, я могу получить его для вас.
Итак, PHP отправляет все поля, которые находятся в XML. Получают ли они значение или нет. Отправленный XML-код является частью функции Create, предоставляемой службой. Если я могу просто узнать, как заставить его не отправлять каждое поле, которое должно быть разрешением – ButchMcRae
Есть ли способ сделать библиотеку NuSoap только отправкой определенных полей XML вместо всех полей? – ButchMcRae
Я прибегаю к сохранению wsdl локально и удалению поля, с которым у меня возникают проблемы. – ButchMcRae