5.3. Иницииране (създаване) на клиентска поръчка чрез web services - erpSOAPOrderC

5.3.1. Въведение
5.3.2. Импорт на данни чрез използване на Web services
5.3.3. Списък с функции
5.3.4. Подробно описание
5.3.5. Описание на сложните типове (WSDL)
5.3.6. Примерни заявки
5.3.7. Настройки в Colibri® ERP

5.3.1. Въведение

erpSOAPOrderC е набор от Web services API функции, които имат за цел да обслужват двупосочен обмен на данни между външен за системата клиент и приложния сървър, хостващ Colibri® ERP.

Относно възможността за регистриране на поръчки от клиенти от външни източници, Colibri® ERP осигурява съхранение в БД на структурирана информация за импортираните данни. Как системата гарантира, че зарежда в базата данни импортираната информация в пълен обем и с непроменено съдържание; как се осигурява контрол върху формата и структурата на УНП /при импорт от друг СУПТО/; как софтуерът прави обвръзка на всички импортирани данни за продажби, вкл. изцяло и частично потвърдените поръчки/заявки, с генерираните за тях УНП може да намерите в Регистриране на поръчки от външни източници.

Пълното описание на тези методи под формата на WDSL са достъпни на адрес:

(erp_server_path)/ws/wsdl-viewer.php/ws/wsbase.php

(erp_server_path)/ws/wsbase.php?wsdl

Или на:

(erp_server_path)/ws/wsdl-viewer.php

5.3.2. Импорт на данни чрез използване на Web services

Тази функция може се използва и за двата, посочени по-горе, сценария. Кой от двата сценария се приема зависи от комплекта на подадените данни. Ако в тях в елемента UNS има валиден УНП се използва първият сценарий, в противен случай се използва вторият.

5.3.2.1. Примерна заявка по сценарий I.1

При този сценарий заложеният бизнес процес изисква потвърждаването на количествата от поръчката от страна потребител и в средата на Colibri® ERP. По време на импорта се прави анализ на получените данни и ако няма грешки и са с достатъчна пълнота системата ги „импортира“ и генерира поръчка от клиенти, която остава в статус дефиниране. В тази нова поръчка системата прехвърля непроменен УНП. Colibri® ERP няма да генерира нов УНП и ще използва импортирания при отпечатването на ФБ, ако такова се налага от начина на плащане.


<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:erpgate">
   <soapenv:Header/>
   <soapenv:Body>
<urn:erpSOAPOrderC..RegOrder>
   <order xsi:type="urn:erpOrderCNew">
<!-- Номер и дата на поръчката в клиентската система -->
      <POrderNum xsi:type="xsd:string">EX0004</POrderNum>
      <POrderDate xsi:type="xsd:date">2019-07-17</POrderDate>
<!-- Обект -->
      <BNum xsi:type="xsd:string">СУПТО</BNum>
      <SNumber xsi:type="xsd:string">001</SNumber>
      <UNS xsi:type="xsd:string">DT123456-0011-1234567</UNS>
      <UNSWPCode xsi:type="xsd:string">0022</UNSWPCode>
      <UNSOpCode xsi:type="xsd:string">011</UNSOpCode>
      <UNSFPNum xsi:type="xsd:string">DT123456</UNSFPNum>
<!-- Адрес на доставка -->
      <SPName xsi:type="xsd:string">Клиент име</SPName>
      <SAddr xsi:type="xsd:string">Адрес</SAddr>
      <SCity xsi:type="xsd:string">Град</SCity>
      <SZip xsi:type="xsd:string">1000</SZip>
      <SCPerson xsi:type="xsd:string">Контакт / Получател</SCPerson>
      <SPhone xsi:type="xsd:string">Телефон</SPhone>
      <Semail xsi:type="xsd:string">klient@email.na</Semail>
<!-- Начин на доставка и начин на плащане -->
      <chrShippingMethod xsi:type="xsd:string">other</chrShippingMethod>
      <ShippingDate xsi:type="xsd:date">2019-07-24</ShippingDate>
      <Transport xsi:type="xsd:string">Куриер</Transport>
      <chrPaymentMethod xsi:type="xsd:string">pos</chrPaymentMethod>
      <PaymentDate xsi:type="xsd:date">2019-07-17</PaymentDate>
      <Descr xsi:type="xsd:string">ТЕСТ Поръчка за СУПТО (EDA Web services)</Descr>
<!-- Списък артикули -->
      <ITEMS xsi:type="urn:erpOrderCItemNewArray">
         <item xsi:type="urn:erpOrderCItemNew">
<!-- Номер на артикула в Colibri® ERP -->
            <MNum xsi:type="xsd:string">200-GS0007</MNum>
<!-- Номер и наименование на артикула в клиентската система -->
            <ProdNo xsi:type="xsd:string">671761302</ProdNo>
            <ProdName xsi:type="xsd:string">NOKIA 5800</ProdName>
<!-- Поръчано количество и цена -->
            <QtyReq xsi:type="xsd:double">2</QtyReq>
            <Price xsi:type="xsd:string">80</Price>
         </item>
      </ITEMS>
   </order>
</urn:erpSOAPOrderC..RegOrder>
  </soapenv:Body>
</soapenv:Envelope>

				      

В тази SOAP заявка освен данните за клиента, вида, количеството и цените на поръчаните артикули, е важно да отбележим и следните две неща:

- В елементите POrderNum и POrderDate задаваме номера и датата на поръчката в системата на партньора;

- В елементите UNS, UNSWPCode, UNSOPCode и UNSFPNum задаваме данните за УНП.

След подаването на SOAP заявката, при успех системата ще предостави следният примерен отговор:


<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:erpSOAPOrderC..RegOrderResponse xmlns:ns1="urn:erpgate">
         <idOrderC xsi:type="xsd:integer">1488</idOrderC>
         <OrderNum xsi:type="xsd:string">0001412</OrderNum>
         <POrderNum xsi:type="xsd:string">EX0004</POrderNum>
         <Message xsi:type="xsd:string">Новата поръчка е регистрирана успешно!</Message>
      </ns1:erpSOAPOrderC..RegOrderResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

				      

Най-същественото в този отговор, освен че операцията е била успешна, е че предоставяме кода и номера на генерираната в Colibri® ERP поръчка от клиенти, както и номер (идентификатора) на партньорската поръчка, за да може отсрещната страна да регистрира при себе си операцията.

След което е препоръчително за партньора да подаде друга SOAP заявка, използвайки друга API функция, а именно erpSOAPOrderC..GetOrder:


<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:erpgate">
   <soapenv:Header/>
   <soapenv:Body>
	<urn:erpSOAPOrderC..GetOrder>
         <filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
            <item xsi:type="urn:erpFilterRule">
               <field xsi:type="xsd:string">POrderNum</field>
               <value xsi:type="xsd:string">EX0004</value>
            </item>
         </filter>
      </urn:erpSOAPOrderC..GetOrder>
   </soapenv:Body>
</soapenv:Envelope>

				      

На тази заявка Colibri® ERP отговаря със следните данни:


<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:erpgate">
   <SOAP-ENV:Body>
      <ns1:erpSOAPOrderC..GetOrderResponse xmlns:ns1="urn:erpgate">
         <return xsi:type="tns:erpOrderCInfo">
            <idOrderC xsi:type="xsd:integer">1488</idOrderC>
            <OrderNum xsi:type="xsd:string">0001412</OrderNum>
            <OrderDate xsi:type="xsd:date">2019-07-18 16:58:16</OrderDate>
            <POrderNum xsi:type="xsd:string">EX0004</POrderNum>
            <POrderDate xsi:type="xsd:date">2019-07-17</POrderDate>
            <idBranch xsi:type="xsd:integer">22</idBranch>
            <BNum xsi:type="xsd:string">СУПТО</BNum>
            <BName xsi:type="xsd:string">СУПТО Клон/Обект</BName>
            <SNum xsi:type="xsd:integer">4</SNum>
            <SNumber xsi:type="xsd:string">001</SNumber>
            <SName xsi:type="xsd:string">Основен</SName>
            <idPartner xsi:type="xsd:integer">351</idPartner>
            <PNum xsi:type="xsd:string">00-1</PNum>
            <PName xsi:type="xsd:string">Физически лица продажби на дребно</PName>
            <idPBranch xsi:type="xsd:integer">0</idPBranch>
            <PBNum xsi:nil="true" xsi:type="xsd:string"/>
            <PBName xsi:nil="true" xsi:type="xsd:string"/>
            <SAddrOverride xsi:type="xsd:integer">1</SAddrOverride>
            <SPName xsi:type="xsd:string">Клиент име</SPName>
            <SAddr xsi:type="xsd:string">Адрес</SAddr>
            <SCity xsi:type="xsd:string">Град</SCity>
            <SZip xsi:type="xsd:string">1000</SZip>
            <SCPerson xsi:type="xsd:string">Контакт / Получател</SCPerson>
            <SPhone xsi:type="xsd:string">Телефон</SPhone>
            <Semail xsi:type="xsd:string">klient@email.na</Semail>
            <SCountry xsi:nil="true" xsi:type="xsd:string"/>
            <curCode xsi:type="xsd:string">BGN</curCode>
            <dcmRate xsi:type="xsd:double">1.000000</dcmRate>
            <OStatus xsi:type="xsd:string"/>
            <chrShippingMethod xsi:type="xsd:string">other</chrShippingMethod>
            <ShippingDate xsi:type="xsd:date">2019-07-24 00:00:00</ShippingDate>
            <Transport xsi:type="xsd:string">Куриер</Transport>
            <chrPaymentMethod xsi:type="xsd:string">pos</chrPaymentMethod>
            <PaymentDate xsi:type="xsd:date">2019-07-17</PaymentDate>
            <idPromoCode xsi:type="xsd:integer">0</idPromoCode>
            <PCode xsi:nil="true" xsi:type="xsd:string"/>
            <Descr xsi:type="xsd:string">ТЕСТ Поръчка за СУПТО (EDA Web services)</Descr>
            <Notes xsi:type="xsd:string"/>
            <OSuma xsi:type="xsd:double">160.00</OSuma>
            <OSumaBGL xsi:type="xsd:double">160.00</OSumaBGL>
            <OSumaDDS xsi:type="xsd:double">192</OSumaDDS>
            <OSumaDDSBGL xsi:type="xsd:double">192</OSumaDDSBGL>
            <UNS xsi:type="xsd:string">DT123456-0011-1234567</UNS>
            <UNSWPCode xsi:type="xsd:string">0022</UNSWPCode>
            <UNSWPCode xsi:type="xsd:string">0022</UNSWPCode>
            <UNSFPNum xsi:type="xsd:string">DT123456</UNSFPNum>
            <dtCreated xsi:type="xsd:dateTime">2019-07-18 16:58:16</dtCreated>
            <dtModified xsi:type="xsd:dateTime">2019-07-18 16:58:16</dtModified>
            <ITEMS xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderCItem[1]">
               <item xsi:type="tns:erpOrderCItem">
                  <idOrderCItem xsi:type="xsd:integer">2835</idOrderCItem>
                  <idOrderC xsi:type="xsd:integer">1488</idOrderC>
                  <IOrder xsi:type="xsd:string">1</IOrder>
                  <idMat xsi:type="xsd:integer">2813</idMat>
                  <MNum xsi:type="xsd:string">200-GS0007</MNum>
                  <MName xsi:type="xsd:string">NOKIA 5800</MName>
                  <ProdNo xsi:type="xsd:string">671761302</ProdNo>
                  <ProdName xsi:type="xsd:string">NOKIA 5800</ProdName>
                  <Batch xsi:type="xsd:string"/>
                  <MKCode xsi:type="xsd:string">СТО</MKCode>
                  <QtyReq xsi:type="xsd:double">2</QtyReq>
                  <MUnit xsi:type="xsd:string">бр.</MUnit>
                  <Price xsi:type="xsd:double">80</Price>
                  <PriceDDS xsi:type="xsd:double">96</PriceDDS>
                  <PriceBGL xsi:type="xsd:double">80</PriceBGL>
                  <PriceDDSBGL xsi:type="xsd:double">96</PriceDDSBGL>
                  <Suma xsi:type="xsd:double">160.00</Suma>
                  <SumaDDS xsi:type="xsd:double">192</SumaDDS>
                  <SumaBGL xsi:type="xsd:double">160.00</SumaBGL>
                  <SumaDDSBGL xsi:type="xsd:double">192</SumaDDSBGL>
                  <QtyExpected xsi:type="xsd:double">0</QtyExpected>
                  <QtyRejected xsi:type="xsd:double">0</QtyRejected>
                  <QtyReceived xsi:type="xsd:double">0</QtyReceived>
                  <QtyDelivered xsi:type="xsd:double">0</QtyDelivered>
                  <QtyFulfilled xsi:type="xsd:double">0</QtyFulfilled>
                  <QtyComplete xsi:type="xsd:double">0</QtyComplete>
               </item>
            </ITEMS>
            <PDOC xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderPDoc[0]"/>
            <SDOC xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderSDoc[0]"/>
            <STATUS xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderStatus[1]">
               <item xsi:type="tns:erpOrderStatus">
                  <OStatus xsi:type="xsd:string">ORDS_INIT</OStatus>
                  <Changed xsi:type="xsd:date">2019-07-18 16:58:16</Changed>
               </item>
            </STATUS>
         </return>
         <Message xsi:nil="true" xsi:type="xsd:string"/>
      </ns1:erpSOAPOrderC..GetOrderResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

				      

В този отговор се съдържа пълна информация за регистрираната клиентска поръчка. Освен всички необходими данни, в нея се съдържа идентификатора на поръчката, присвоена от външния източник в елементите.


            <POrderNum xsi:type="xsd:string">EX0004</POrderNum>
            <POrderDate xsi:type="xsd:date">2019-07-17</POrderDate>

				      

… както и информация за регистрирания УНП в елементите:


            <UNS xsi:type="xsd:string">DT123456-0011-1234567</UNS>
            <UNSWPCode xsi:type="xsd:string">0022</UNSWPCode>
            <UNSWPCode xsi:type="xsd:string">0022</UNSWPCode>
            <UNSFPNum xsi:type="xsd:string">DT123456</UNSFPNum>


				      

Ако „отворим“ тази новосъздадена поръчка от клиенти в Colibri® ERP ще видим следната информация. Всички основни данни за поръчката, (1) статус на поръчката – Иницииране, (2) име на клиента, (3) секция Информация за УНП с импортираните данни. Има, обаче и нещо ново. В същата секция в горния десен ъгъл виждаме текста WS, което означава, че тази поръчка е „импортирана“ от външен източник от тип Web services и данните за УНП са вписани от него.

След което потребителят следвайки заложената бизнес логика, може да започне „изпълнението“ на поръчката по етапите в нея. (От основната документация - раздел 12. Продажби, глава 2. Поръчки от клиенти).

Фигура 5.2. Информация за клиентска поръчка: 1) Статус; 2) клиент; 3) данни за УНП; 4) Индикатор за външен източник от тип Web services.

Информация за клиентска поръчка: 1) Статус; 2) клиент; 3) данни за УНП; 4) Индикатор за външен източник от тип Web services.


В Журнала на промените е вписана информацията за подадените данни в структуриран вид.

Фигура 5.3. Журнал на промените: 1) Раздел Журнал; 2) Първи запис в журнала.

Журнал на промените: 1) Раздел Журнал; 2) Първи запис в журнала.


Както се вижда в колонката Основание е вписано „Запис на поръчка от друг източник WS“, а в колонката Потребител пише „SOAP Client“. Когато отворим този запис ще видим по-подробна информация.

Фигура 5.4. Запис от Журнала на промените: 1) Потребител; 2) Описание; 3) Импортирани данни в структуриран вид.

Запис от Журнала на промените: 1) Потребител; 2) Описание; 3) Импортирани данни в структуриран вид.


Тук можем да видим подробности относно данните в подадената заявка.

5.3.2.2. Примерна заявка по сценарий I I.

При този сценарий заложеният бизнес процес изисква потвърждаването на количествата от поръчката от страна потребител и в средата на Colibri® ERP. По време на импорта се прави анализ на получените данни и ако няма грешки и са с достатъчна пълнота системата ги „импортира“ и генерира поръчка от клиенти, която остава в статус дефиниране. В тази нова поръчка няма още генериран УНП, което остава „задължение“ на Colibri® ERP.

Примерна заявка:


<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:erpgate">
   <soapenv:Header/>
   <soapenv:Body>
<urn:erpSOAPOrderC..RegOrder>
   <order xsi:type="urn:erpOrderCNew">
<!-- Номер и дата на поръчката в клиентската система -->
      <POrderNum xsi:type="xsd:string">EX0005</POrderNum>
      <POrderDate xsi:type="xsd:date">2019-07-17</POrderDate>
      <PNum xsi:type="xsd:date">Е001</PNum>
<!-- Обект -->
      <BNum xsi:type="xsd:string">СУПТО</BNum>
      <SNumber xsi:type="xsd:string">001</SNumber>
<!-- Начин на доставка и начин на плащане -->
      <chrShippingMethod xsi:type="xsd:string">other</chrShippingMethod>
      <ShippingDate xsi:type="xsd:date">2019-07-24</ShippingDate>
      <Transport xsi:type="xsd:string">Куриер</Transport>
      <chrPaymentMethod xsi:type="xsd:string">pos</chrPaymentMethod>
      <PaymentDate xsi:type="xsd:date">2019-07-17</PaymentDate>
      <Descr xsi:type="xsd:string">ТЕСТ Поръчка от не-СУПТО (EDA Web services)</Descr>
<!-- Списък артикули -->
      <ITEMS xsi:type="urn:erpOrderCItemNewArray">
         <item xsi:type="urn:erpOrderCItemNew">
<!-- Номер на артикула в Colibri® ERP -->
            <MNum xsi:type="xsd:string">200-GS0007</MNum>
<!-- Номер и наименование на артикула в клиентската система -->
            <ProdNo xsi:type="xsd:string">671761302</ProdNo>
            <ProdName xsi:type="xsd:string">NOKIA 5800</ProdName>
<!-- Поръчано количество и цена -->
            <QtyReq xsi:type="xsd:double">2</QtyReq>
            <Price xsi:type="xsd:string">80</Price>
         </item>
      </ITEMS>
   </order>
</urn:erpSOAPOrderC..RegOrder>
  </soapenv:Body>
</soapenv:Envelope>

				      

Както се вижда в заявката, в нея липсва информация за УНП.

Отговор на заявката:


<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:erpSOAPOrderC..RegOrderResponse xmlns:ns1="urn:erpgate">
         <idOrderC xsi:type="xsd:integer">1490</idOrderC>
         <OrderNum xsi:type="xsd:string">0001414</OrderNum>
         <POrderNum xsi:type="xsd:string">EX0005</POrderNum>
         <Message xsi:type="xsd:string">Новата поръчка е регистрирана успешно!</Message>
      </ns1:erpSOAPOrderC..RegOrderResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

				      

Илюстрация на посочената по-горе заявка и получения по нея отговор чрез екранна снимка на SOAP клиент, използван за демонстриране на функционалността в реално време.

Фигура 5.5. SOAP заявка erpSOAPOrderC..RegOrder: 1) Отправена заявка; 2) Получен отговор.

SOAP заявка erpSOAPOrderC..RegOrder: 1) Отправена заявка; 2) Получен отговор.


Ако „отворим“ тази новосъздадена поръчка от клиенти в Colibri® ERP ще видим следната информация. Всички основни данни за поръчката, (1) статус на поръчката – Иницииране, (2) име на клиента, (3) секция Информация за УНП без данни . Има, обаче и нещо ново. В същата секция в горния десен ъгъл виждаме текста WS, което означава, че тази поръчка е „импортирана“ от външен източник от тип Web services и данните за УНП са вписани от него.

Фигура 5.6. Информация за клиентска поръчка: 1) Статус; 2) клиент; 3) данни за УНП - няма; 4) Индикатор за външен източник от тип Web services.

Информация за клиентска поръчка: 1) Статус; 2) клиент; 3) данни за УНП - няма; 4) Индикатор за външен източник от тип Web services.


5.3.3. Списък с функции


erpSOAPOrderC..CancelOrder
erpSOAPOrderC..GetLastOrder
erpSOAPOrderC..GetOrder
erpSOAPOrderC..GetOrderList
erpSOAPOrderC..GetOrderStatus
erpSOAPOrderC..RegOrderDetailSource code

				

5.3.4. Подробно описание

5.3.4.1. erpSOAPOrderC.. CancelOrder

Пример 44. erpSOAPOrderC.. CancelOrder


Description     Set client order status info for given OrderNum
Style           rpc
Operation type  Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action     urn:erpgate#erpSOAPOrderC..CancelOrder
Input           erpSOAPOrderC..CancelOrderRequest (soap:body, use = encoded)
                    •	OrderNum type string
Output	         erpSOAPOrderC..CancelOrderResponse (soap:body, use = encoded)
                    •	OrderNum type string
                    •	OStatus type string
                    •	Message type string

      				


5.3.4.2. erpSOAPOrderC.. GetLastOrder

Пример 45. erpSOAPOrderC.. GetLastOrder


Description     Returns last created from current (web services) user client order info.
Style           rpc
Operation type  Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action     urn:erpgate#erpSOAPOrderC..GetLastOrder
Input           erpSOAPOrderC..GetLastOrderRequest (soap:body, use = encoded)
Output          erpSOAPOrderC..GetLastOrderResponse (soap:body, use = encoded)
                    •	return type erpOrderCInfo
                    •	idOrderC type integer
                    •	OrderNum type string
                    •	OrderDate type date
                    •	POrderNum type string
                    •	POrderDate type date
                    •	idBranch type integer
                    •	BNum type string
                    •	BName type string
                    •	SNum type integer
                    •	SNumber type string
                    •	SName type string
                    •	idPartner type integer
                    •	PNum type string
                    •	PName type string
                    •	idPBranch type integer
                    •	PBNum type string
                    •	PBName type string
                    •	SAddrOverride type integer
                    •	SPName type string
                    •	SAddr type string
                    •	SCity type string
                    •	SZip type string
                    •	SCPerson type string
                    •	SPhone type string
                    •	Semail type string
                    •	SCountry type string
                    •	curCode type string
                    •	dcmRate type double
                    •	OStatus type string
                    •	chrShippingMethod type string
                    •	ShippingDate type date
                    •	Transport type string
                    •	chrPaymentMethod type string
                    •	PaymentDate type date
                    •	Descr type string
                    •	Notes type string
                    •	OSuma type double
                    •	OSumaBGL type double
                    •	OSumaDDS type double
                    •	OSumaDDSBGL type double
                    •	UNS type string
                    •	UNSWPCode type string
                    •	UNSOpCode type string
                    •	UNSFPNum type string
                    •	dtCreated type dateTime
                    •	dtModified type dateTime
                    •	ITEMS type erpOrderCItemArray - array of type erpOrderCItem
                        o	idOrderCItem type integer
                        o	idOrderC type integer
                        o	IOrder type string
                        o	idMat type integer
                        o	MNum type string
                        o	MName type string
                        o	ProdNo type string
                        o	ProdName type string
                        o	Batch type string
                        o	MKCode type string
                        o	QtyReq type double
                        o	MUnit type string
                        o	Price type double
                        o	PriceDDS type double
                        o	PriceBGL type double
                        o	PriceDDSBGL type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	QtyExpected type double
                        o	QtyRejected type double
                        o	QtyReceived type double
                        o	QtyDelivered type double
                        o	QtyFulfilled type double
                        o	QtyComplete type double
                        o	PDOC type erpOrderPDocArray - array of type erpOrderPDoc
                        o	idPDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyP type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	SumaPaid type double
                        o	SumaPaidBGL type double
                    •	SDOC type erpOrderSDocArray - array of type erpOrderSDoc
                        o	idDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyS type double
                    •	STATUS type erpOrderStatusArray - array of type erpOrderStatus
                        o	OStatus type string
                        o	Changed type datefilter type erpFilter - array of type erpFilterRule

      				


5.3.4.3. erpSOAPOrderC.. GetOrder

Пример 46. erpSOAPOrderC.. GetOrder


Description       Returns ONE client order info for given filter. For filter rule field, use only keys from erpOrderCInfo simple type elements, like OrderNum, idOrderC, etc.
Style             rpc
Operation type    Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action       urn:erpgate#erpSOAPOrderC..GetOrder
Input             erpSOAPOrderC..GetOrderRequest (soap:body, use = encoded)
                    •	filter type erpFilter - array of type erpFilterRule
                    •	field type string
                    •	value type string
                    •	oper type string
Output            erpSOAPOrderC..GetOrderResponse (soap:body, use = encoded)
                    •	return type erpOrderCInfo
                    •	idOrderC type integer
                    •	OrderNum type string
                    •	OrderDate type date
                    •	idBranch type integer
                    •	BNum type string
                    •	BName type string
                    •	SNum type integer
                    •	SNumber type string
                    •	SName type string
                    •	idPartner type integer
                    •	PNum type string
                    •	PName type string
                    •	idPBranch type integer
                    •	PBNum type string
                    •	PBName type string
                    •	SAddrOverride type integer
                    •	SPName type string
                    •	SAddr type string
                    •	SCity type string
                    •	SZip type string
                    •	SCPerson type string
                    •	SPhone type string
                    •	Semail type string
                    •	SCountry type string
                    •	curCode type string
                    •	dcmRate type double
                    •	OStatus type string
                    •	chrShippingMethod type string
                    •	ShippingDate type date
                    •	Transport type string
                    •	chrPaymentMethod type string
                    •	PaymentDate type date
                    •	POrderNum type string
                    •	POrderDate type date
                    •	Descr type string
                    •	Notes type string
                    •	OSuma type double
                    •	OSumaBGL type double
                    •	OSumaDDS type double
                    •	OSumaDDSBGL type double
                    •	UNS type string
                    •	UNSWPCode type string
                    •	UNSOpCode type string
                    •	UNSFPNum type string
                    •	dtCreated type dateTime
                    •	dtModified type dateTime
                    •	ITEMS type erpOrderCItemArray - array of type erpOrderCItem
                        o	idOrderCItem type integer
                        o	idOrderC type integer
                        o	IOrder type string
                        o	idMat type integer
                        o	MNum type string
                        o	MName type string
                        o	ProdNo type string
                        o	ProdName type string
                        o	Batch type string
                        o	MKCode type string
                        o	QtyReq type double
                        o	MUnit type string
                        o	Price type double
                        o	PriceDDS type double
                        o	PriceBGL type double
                        o	PriceDDSBGL type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	QtyExpected type double
                        o	QtyRejected type double
                        o	QtyReceived type double
                        o	QtyDelivered type double
                        o	QtyFulfilled type double
                        o	QtyComplete type double
                    •	PDOC type erpOrderPDocArray - array of type erpOrderPDoc
                        o	idPDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyP type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	SumaPaid type double
                        o	SumaPaidBGL type double
                    •	SDOC type erpOrderSDocArray - array of type erpOrderSDoc
                        o	idDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyS type double
                    •	STATUS type erpOrderStatusArray - array of type erpOrderStatus
                        o	OStatus type string
                        o	Changed type date

      				


5.3.4.4. erpSOAPOrderC.. GetOrderList

Пример 47. erpSOAPOrderC.. GetOrderList


Description     Returns list of Client Order Info according to given Filter.
Style           rpc
Operation type  Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action     urn:erpgate#erpSOAPOrderC..GetOrderList
Input           erpSOAPOrderC..GetOrderListRequest (soap:body, use = encoded)
                    •	params type erpFilterParams
                    •	filter type erpFilter - array of type erpFilterRule
                        o	field type string
                        o	value type string
                        o	oper type string
                    •	ext_filter type erpFilter - array of type erpFilterRule
                        o	field type string
                        o	value type string
                        o	oper type string
                    •	sort type erpSort - array of type erpSortRule
                        o	field type string
                        o	dir type string
                    •	set type erpSetParams - array of type erpSetParam
                        o	key type string
                        o	value type string
                    •	limit type limitRange
                        o	offset type integer
                        o	count type integer
Output          erpSOAPOrderC..GetOrderListResponse (soap:body, use = encoded)
                    •	return type erpOrderCInfoArray - array of type erpOrderCInfo
                    •	idOrderC type integer
                    •	OrderNum type string
                    •	OrderDate type date
                    •	idBranch type integer
                    •	BNum type string
                    •	BName type string
                    •	SNum type integer
                    •	SNumber type string
                    •	SName type string
                    •	idPartner type integer
                    •	PNum type string
                    •	PName type string
                    •	idPBranch type integer
                    •	PBNum type string
                    •	PBName type string
                    •	SAddrOverride type integer
                    •	SPName type string
                    •	SAddr type string
                    •	SCity type string
                    •	SZip type string
                    •	SCPerson type string
                    •	SPhone type string
                    •	Semail type string
                    •	SCountry type string
                    •	curCode type string
                    •	dcmRate type double
                    •	OStatus type string
                    •	chrShippingMethod type string
                    •	ShippingDate type date
                    •	Transport type string
                    •	chrPaymentMethod type string
                    •	PaymentDate type date
                    •	POrderNum type string
                    •	POrderDate type date
                    •	Descr type string
                    •	Notes type string
                    •	OSuma type double
                    •	OSumaBGL type double
                    •	OSumaDDS type double
                    •	OSumaDDSBGL type double
                    •	UNS type string
                    •	UNSWPCode type string
                    •	UNSOpCode type string
                    •	UNSFPNum type string
                    •	dtCreated type dateTime
                    •	dtModified type dateTime
                    •	ITEMS type erpOrderCItemArray - array of type erpOrderCItem
                        o	idOrderCItem type integer
                        o	idOrderC type integer
                        o	IOrder type string
                        o	idMat type integer
                        o	MNum type string
                        o	MName type string
                        o	ProdNo type string
                        o	ProdName type string
                        o	Batch type string
                        o	MKCode type string
                        o	QtyReq type double
                        o	MUnit type string
                        o	Price type double
                        o	PriceDDS type double
                        o	PriceBGL type double
                        o	PriceDDSBGL type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	QtyExpected type double
                        o	QtyRejected type double
                        o	QtyReceived type double
                        o	QtyDelivered type double
                        o	QtyFulfilled type double
                        o	QtyComplete type double
                    •	PDOC type erpOrderPDocArray - array of type erpOrderPDoc
                        o	idPDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyP type double
                        o	Suma type double
                        o	SumaDDS type double
                        o	SumaBGL type double
                        o	SumaDDSBGL type double
                        o	SumaPaid type double
                        o	SumaPaidBGL type double
                    •	SDOC type erpOrderSDocArray - array of type erpOrderSDoc
                        o	idDoc type integer
                        o	DocCode type string
                        o	DocNum type string
                        o	DocDate type date
                        o	QtyS type double
                    •	STATUS type erpOrderStatusArray - array of type erpOrderStatus
                        o	OStatus type string
                        o	Changed type date

      				


5.3.4.5. erpSOAPOrderC..GetOrderStatus

Пример 48. erpSOAPOrderC..GetOrderStatus


Description       Returns client order retrieved and status info for given OrderNum.
Style             rpc
Operation type    Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action	urn:erpgate#erpSOAPOrderC..GetOrderStatus
Input             erpSOAPOrderC..GetOrderStatusRequest (soap:body, use = encoded)
                      •	OrderNum type string
Output            erpSOAPOrderC..GetOrderStatusResponse (soap:body, use = encoded)

                      •	idOrderC type integer
                      •	OrderNum type string
                      •	OStatus type string
                      •	Changed type date
                      •	Message type string

      				


5.3.4.6. erpSOAPOrderC..RegOrder

Пример 49. erpSOAPOrderC..RegOrder


Description       Register Client Order and returns registered Client Order Info.
Style             rpc
Operation type    Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action       urn:erpgate#erpSOAPOrderC..RegOrder
Input             erpSOAPOrderC..RegOrderRequest (soap:body, use = encoded)
                      •	order type erpOrderCNew
                      •	OrderNum type string
                      •	OrderDate type date
                      •	idBranch type integer
                      •	BNum type string
                      •	BName type string
                      •	SNum type integer
                      •	SNumber type string
                      •	idPartner type integer
                      •	PNum type string
                      •	PName type string
                      •	idPBranch type integer
                      •	PBNum type string
                      •	PBName type string
                      •	SAddrOverride type integer
                      •	SPName type string
                      •	SAddr type string
                      •	SCity type string
                      •	SZip type string
                      •	SCPerson type string
                      •	SPhone type string
                      •	Semail type string
                      •	SCountry type string
                      •	curCode type string
                      •	dcmRate type double
                      •	chrShippingMethod type string
                      •	ShippingDate type date
                      •	Transport type string
                      •	chrPaymentMethod type string
                      •	PaymentDate type date
                      •	POrderNum type string
                      •	POrderDate type date
                      •	Descr type string
                      •	Notes type string
                      •	UNS type string
                      •	UNSWPCode type string
                      •	UNSOpCode type string
                      •	UNSFPNum type string
                      •	ITEMS type erpOrderCItemNewArray - array of type erpOrderCItemNew
                          o	IOrder type string
                          o	idMat type integer
                          o	MNum type string
                          o	MName type string
                          o	ProdNo type string
                          o	ProdName type string
                          o	Batch type string
                          o	QtyReq type double
                          o	Price type double
                          o	PriceBGL type double
                          o	Suma type double
                          o	SumaBGL type double
Output            erpSOAPOrderC..RegOrderResponse (soap:body, use = encoded)

                    •	idOrderC type integer
                    •	OrderNum type string
                    •	POrderNum type string
                    •	Message type string

      				


5.3.4.7. erpSOAPOrderC..SetOrderStatus

Пример 50. erpSOAPOrderC..SetOrderStatus


Description       Set client order status info for given OrderNum.
Style             rpc
Operation type    Request-response. The endpoint receives a message, and sends a correlated message. 
SOAP action       urn:erpgate#erpSOAPOrderC..SetOrderStatus
Input             erpSOAPOrderC..SetOrderStatusRequest (soap:body, use = encoded)
                    •	OrderNum type string 
                    •	OStatus type string
Output            erpSOAPOrderC..SetOrderStatusResponse (soap:body, use = encoded)
                    •	OrderNum type string
                    •	OStatus type string
                    •	Message type string

      				


5.3.5. Описание на сложните типове (WSDL)

5.3.5.1. limitRange

Използва се за ограничаване на резултата от запитване като брой редове и офсет.


<?xml version="1.0" encoding="utf-8"?>
<xsd:complexType name="limitRange">
   <xsd:all>
      <xsd:element name="offset" type="xsd:integer" />
      <xsd:element name="count" type="xsd:integer" />
   </xsd:all>
</xsd:complexType>

      			

5.3.5.2. erpFilterRule, erpFilterRule

Използва се филтриране (ограничаване) на резултата от запитване. Представлява масив от двойки (тройки) елементи: field – поле за прилагане на ограничение, value – стойност за сравнение и oper – вид на сравнението. Елементът oper се използва само в т.нар. разширен филтър и може да приема следните стойности:


    Сравнение
    "eq" еквивалент на: "=",  "neq" еквивалент на: "<>"
    , "lt" еквивалент на: "<", "gt" еквивалент на: ">"
    , "lte" еквивалент на: "<=", "gte" еквивалент на: ">="
    Специални
    , "in" еквивалент на: съдържа се в списък от стойности, изредени в "value"
    , "like" еквивалент на: съдържа в себе си "value"
    , "not like" еквивалент на: съдържа в себе си "value"
    , "start" еквивалент на: започва с "value"
    , "end" еквивалент на: завършва с "value"
<xsd:complexType name="erpFilterRule">
   <xsd:all>
      <xsd:element name="field" type="xsd:string" doc="Field name" />
      <xsd:element name="value" type="xsd:string" doc="Field value" />
      <xsd:element name="oper" type="xsd:string" doc="Operation (use in extended filter only!)" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpFilter">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpFilterRule[]"
         doc="Filter rules array" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.3. erpSortRule, erpSort

Използва се сортиране (подреждане) на резултата от запитване. Представлява масив от двойки елементи: field – поле за прилагане на правилото, dir – посока на подреждане, заемащо стойности: asc – за правилно подреждане и desc – за обратно подреждане, а ако се пропусне се подразбира asc.


<xsd:complexType name="erpSortRule">
   <xsd:all>
      <xsd:element name="field" type="xsd:string" doc="Field name" />
      <xsd:element name="dir" type="xsd:string" doc="Sorting direction (|asc|desc)" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpSort">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpSortRule[]"
         doc="Sorting rules array" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.4. erpSetParam, erpSetParams

Използва се задаване на специфични параметри за определени функции. Представлява масив от двойки елементи: key – име на параметъра, value – стойност на параметъра.

За операциите: erpSOAPOrderC..GetOrder и erpSOAPOrderC..GetOrderList могат да се използват следните двойки ("key", "value"):


      "data_items" , данни за елементите на поръчката 0 – не, 1 – да
      , "data_status" , данни за статуса на поръчката 0 – не, 1 - да
      , "data_sdoc" , данни за складовите документи 0 – не, 1 - да
      , "data_pdoc" , данни за фактурите 0 – не, 1 - да
<xsd:complexType name="erpSetParam">
   <xsd:all>
      <xsd:element name="key" type="xsd:string" />
      <xsd:element name="value" type="xsd:string" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpSetParams">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpSetParam[]"
         doc="Setiing rules array" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.5. erpFilterParams

Плен набор от общи параметри за функция. Представлява масив от незадължителни и неподредени елементи: filter:erpFilter, ext_filter:erpFilter, sort:erpSort, set:erpSetParams, limit:limitRange.


<xsd:complexType name="erpFilterParams">
   <xsd:all>
      <xsd:element name="filter" type="tns:erpFilter" 
         doc="Filter rule list, i.e. (field,value) pairs." />
      <xsd:element name="ext_filter" type="tns:erpFilter"
         doc="Extended filter rule list, i.e. (field,value,oper) triplets." />
      <xsd:element name="sort" type="tns:erpSort" 
         doc="Sort rule list, i.e. (field,dir) pairs." />
      <xsd:element name="set" type="tns:erpSetParams"
         doc="Setting parameters list, i.e. (key,value) pairs." />
      <xsd:element name="limit" type="tns:limitRange"
         doc="Result data set row limit, i.e. (offcet,count)." />
   </xsd:all>
</xsd:complexType>

      			

5.3.5.6. erpOrderCItem, erpOrderCItemArray

Масив (erpOrderCItemArray) с данни за елемент (erpOrderCItem) от клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderCItem">
   <xsd:all>
      <xsd:element name="idOrderCItem" type="xsd:integer" />
      <xsd:element name="idOrderC" type="xsd:integer" 
         doc="ERP internal order number" />
      <xsd:element name="IOrder" type="xsd:string" 
         doc="Item sorting number" />
      <xsd:element name="idMat" type="xsd:integer" 
         doc="ERP internal product number" />
      <xsd:element name="MNum" type="xsd:string" 
         doc="Product number" />
      <xsd:element name="MName" type="xsd:string" doc="Product name" />
      <xsd:element name="ProdNo" type="xsd:string" 
         doc="Partner's catalogue product number" />
      <xsd:element name="ProdName" type="xsd:string" 
         doc="Partner's catalogue product name" />
      <xsd:element name="Batch" type="xsd:string" 
         doc="Product batch (optional)" />
      <xsd:element name="MKCode" type="xsd:string" doc="Product type" />
      <xsd:element name="QtyReq" type="xsd:double" doc="Qantity ordered" />
      <xsd:element name="MUnit" type="xsd:string" 
         doc="Prodict units measure" />
      <xsd:element name="Price" type="xsd:double" doc="Item price" />
      <xsd:element name="PriceDDS" type="xsd:double" 
         doc="Item price with VAT" />
      <xsd:element name="PriceBGL" type="xsd:double" 
         doc="Item price in base currency" />
      <xsd:element name="PriceDDSBGL" type="xsd:double"
      doc="Item price with VAT in base currency" />
      <xsd:element name="Suma" type="xsd:double" doc="Item total" />
      <xsd:element name="SumaDDS" type="xsd:double" 
         doc="Item total with VAT" />
      <xsd:element name="SumaBGL" type="xsd:double" 
         doc="Item total in base currency" />
      <xsd:element name="SumaDDSBGL" type="xsd:double"
         doc="Item total with VAT in base currency" />
      <xsd:element name="QtyExpected" type="xsd:double" 
         doc="Qantity confirmed to client" />
      <xsd:element name="QtyRejected" type="xsd:double" 
         doc="Qantity rejected to client" />
      <xsd:element name="QtyReceived" type="xsd:double" 
         doc="Qantity shipped to client" />
      <xsd:element name="QtyDelivered" type="xsd:double" 
         doc="Qantity invoiced to client" />
      <xsd:element name="QtyFulfilled" type="xsd:double" 
         doc="Qantity fufiled in order process" />
      <xsd:element name="QtyComplete" type="xsd:double" 
         doc="Qantity completed in order process" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderCItemArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderCItem[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.7. erpOrderSDoc, erpOrderSDocArray

Масив (erpOrderSDocArray) с данни за свързаните складови документи (erpOrderSDoc) към клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderSDoc">
   <xsd:all>
      <xsd:element name="idDoc" type="xsd:integer" doc="ERP internal document number" />
      <xsd:element name="DocCode" type="xsd:string" doc="Document code" />
      <xsd:element name="DocNum" type="xsd:string" doc="Document number" />
      <xsd:element name="DocDate" type="xsd:date" doc="Document date" />
      <xsd:element name="QtyS" type="xsd:double"
         doc="Total quantity of ordered items included in this document" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderSDocArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderSDoc[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.8. erpOrderPDoc, erpOrderPDocArray

Масив (erpOrderPDocArray) с данни за свързаните фактури (erpOrderPDoc) към клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderPDoc">
   <xsd:all>
      <xsd:element name="idPDoc" type="xsd:integer" 
         doc="ERP internal document number" />
      <xsd:element name="DocCode" type="xsd:string" doc="Document code" />
      <xsd:element name="DocNum" type="xsd:string" doc="Document number" />
      <xsd:element name="DocDate" type="xsd:date" doc="Document date" />
      <xsd:element name="QtyP" type="xsd:double"
      doc="Total quantity of ordered items included in this document" />
      <xsd:element name="Suma" type="xsd:double"
      doc="Total sum of ordered items included in this document" />
      <xsd:element name="SumaDDS" type="xsd:double" 
         doc="(above) 'Suma' with sales tax" />
      <xsd:element name="SumaBGL" type="xsd:double" 
         doc="(above) 'Suma' in base currency" />
      <xsd:element name="SumaDDSBGL" type="xsd:double" 
         doc="(above) 'SumaDDS' in base currency" />
      <xsd:element name="SumaPaid" type="xsd:double"
      doc="Total sum paid for ordered items included in this document" />
      <xsd:element name="SumaPaidBGL" type="xsd:double"
      doc="(above) 'SumaPaid' in base currency" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderPDocArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderPDoc[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.9. erpOrderStatus, erpOrderStatusArray

Масив (erpOrderStatusArray) с данни за промяната на статуса (erpOrderStatus) на клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.

В описанието не е посочено, елементът OStatus може приема само следните стойности: "ORDS_NONE", "ORDS_DRAFT", "ORDS_INIT", "ORDS_RUN", "ORDS_ACTIVE", "ORDS_SUSPEND", "ORDS_COMPLETE", "ORDS_TERMINATE", "ORDS_ARCHIVE".


<xsd:complexType name="erpOrderStatus">
   <xsd:all>
      <xsd:element name="OStatus" type="xsd:string" />
      <xsd:element name="Changed" type="xsd:date" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderStatusArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderStatus[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.10. erpOrderCInfo, erpOrderCInfoArray

Масив (erpOrderCInfoArray) с данни за клиентски поръчки (erpOrderCInfo). Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderCInfo">
   <xsd:all>
      <xsd:element name="idOrderC" type="xsd:integer" 
         doc="ERP internal order number" />
      <xsd:element name="OrderNum" type="xsd:string" doc="Order Number" />
      <xsd:element name="OrderDate" type="xsd:date" doc="Order Date" />
      <xsd:element name="idBranch" type="xsd:integer" 
         doc="ERP internal company branch number" />
      <xsd:element name="BNum" type="xsd:string" 
         doc="Company branch number" />
      <xsd:element name="BName" type="xsd:string" doc="Company branch name" />
      <xsd:element name="SNum" type="xsd:integer" 
         doc="ERP internal store number" />
      <xsd:element name="SNumber" type="xsd:string" doc="Store number" />
      <xsd:element name="SName" type="xsd:string" doc="Store name" />
      <xsd:element name="idPartner" type="xsd:integer" 
         doc="ERP internal partner number" />
      <xsd:element name="PNum" type="xsd:string" doc="Partner number" />
      <xsd:element name="PName" type="xsd:string" doc="Partner name" />
      <xsd:element name="idPBranch" type="xsd:integer" 
         doc="ERP internal partner branch number" />
      <xsd:element name="PBNum" type="xsd:string" 
         doc="Partner branch number" />
      <xsd:element name="PBName" type="xsd:string" 
         doc="Partner branch name" />
      <xsd:element name="SAddrOverride" type="xsd:integer"
         doc="Shipping address information differs from partners" />
      <xsd:element name="SPName" type="xsd:string" 
         doc="Shipping address information" />
      <xsd:element name="SAddr" type="xsd:string" />
      <xsd:element name="SCity" type="xsd:string" />
      <xsd:element name="SZip" type="xsd:string" />
      <xsd:element name="SCPerson" type="xsd:string" />
      <xsd:element name="SPhone" type="xsd:string" />
      <xsd:element name="Semail" type="xsd:string" />
      <xsd:element name="SCountry" type="xsd:string" 
         doc="Shipping address country name" />
      <xsd:element name="curCode" type="xsd:string" 
         doc="Partner's system order currency" />
      <xsd:element name="dcmRate" type="xsd:double"
         doc="Currency rate (partner currency)/(base currency)" />
      <xsd:element name="OStatus" type="xsd:string" />
      <xsd:element name="chrShippingMethod" type="xsd:string" />
      <xsd:element name="ShippingDate" type="xsd:date" 
         doc="Estimated shipping date" />
      <xsd:element name="Transport" type="xsd:string"
      doc="Shipping/transportation tracking information" />
      <xsd:element name="chrPaymentMethod" type="xsd:string" />
      <xsd:element name="PaymentDate" type="xsd:date" 
         doc="Estimated payment date" />
      <xsd:element name="POrderNum" type="xsd:string" 
         doc="Partner's system Order Number" />
      <xsd:element name="POrderDate" type="xsd:date" 
         doc="Partner's system Order Date" />
      <xsd:element name="Descr" type="xsd:string" />
      <xsd:element name="Notes" type="xsd:string" />
      <xsd:element name="OSuma" type="xsd:double" 
         doc="Order total sum in order's currency" />
      <xsd:element name="OSumaBGL" type="xsd:double" 
         doc="Order total sum in base currency" />
      <xsd:element name="OSumaDDS" type="xsd:double" 
         doc="'OSuma' plus sales tax" />
      <xsd:element name="OSumaDDSBGL" type="xsd:double" 
         doc="'OSumaBGL' plus sales tax" />
      <xsd:element name="UNS" type="xsd:string" 
         doc="Unique Number of Sale (N-18)" />
      <xsd:element name="UNSWPCode" type="xsd:string" 
         doc="UNS Related Workplace Code (N-18)" />
      <xsd:element name="UNSOpCode" type="xsd:string" 
         doc="UNS Related Operator Code (N-18)" />
      <xsd:element name="UNSFPNum" type="xsd:string" 
         doc="UNS Related Fiscal Deivice Serial Number (N-18)" />
      <xsd:element name="dtCreated" type="xsd:dateTime" />
      <xsd:element name="dtModified" type="xsd:dateTime" />
      <xsd:element name="ITEMS" type="tns:erpOrderCItemArray" 
         doc="Order items list" />
      <xsd:element name="PDOC" type="tns:erpOrderPDocArray"
      doc="Invoices list (relates with ITEMS.QtyDelivered)" />
      <xsd:element name="SDOC" type="tns:erpOrderSDocArray"
         doc="Store documents list (relates with ITEMS.QtyReceived)" />
      <xsd:element name="STATUS" type="tns:erpOrderStatusArray" 
         doc="Order status list" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderCInfoArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderCInfo[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.11. erpOrderCItemNew, erpOrderCItemNewArray

Масив (erpOrderCItemNewArray) с данни за елементи (erpOrderCItemNew) клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderCItemNew">
   <xsd:all>
      <xsd:element name="IOrder" type="xsd:string" 
         doc="Ordering secuence number" />
      <xsd:element name="idMat" type="xsd:integer" 
         doc="ERP internal product number" />
      <xsd:element name="MNum" type="xsd:string" doc="Product number" />
      <xsd:element name="MName" type="xsd:string" doc="Product name" />
      <xsd:element name="ProdNo" type="xsd:string" 
         doc="Partner's catalogue product number" />
      <xsd:element name="ProdName" type="xsd:string" 
         doc="Partner's catalogue product name" />
      <xsd:element name="Batch" type="xsd:string" />
      <xsd:element name="QtyReq" type="xsd:double" 
         doc="Quantity ordered" />
      <xsd:element name="Price" type="xsd:double" 
         doc="Item price in order's currency" />
      <xsd:element name="PriceBGL" type="xsd:double" 
         doc="Item price in base currency" />
      <xsd:element name="Suma" type="xsd:double" 
         doc="Item total sum in order's currency" />
      <xsd:element name="SumaBGL" type="xsd:double" 
         doc="Item total sum in base currency" />
   </xsd:all>
</xsd:complexType>
<xsd:complexType name="erpOrderCItemNewArray">
   <xsd:complexContent>
      <xsd:restriction base="SOAP-ENC:Array">
         <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:erpOrderCItemNew[]" />
      </xsd:restriction>
   </xsd:complexContent>
</xsd:complexType>

      			

5.3.5.12. erpOrderCNew

Данни (erpOrderCNew), необходими за регистриране на нова клиентска поръчка. Виж атрибута doc за всеки елемент за неговото описание.


<xsd:complexType name="erpOrderCNew">
   <xsd:all>
      <xsd:element name="OrderNum" type="xsd:string"
      doc="Order Number. Leave blank for autonumbering" />
      <xsd:element name="OrderDate" type="xsd:date"
      doc="Order Date. Leave blank for today's date" />
      <xsd:element name="idBranch" type="xsd:integer"
      doc="ERP internal company branch number (optional)" />
      <xsd:element name="BNum" type="xsd:string" 
         doc="Company branch number (optional)" />
      <xsd:element name="BName" type="xsd:string" 
         doc="Company branch name (optional)" />
      <xsd:element name="SNum" type="xsd:integer" 
         doc="ERP internal store number (optional)" />
      <xsd:element name="SNumber" type="xsd:string" 
         doc="Store number (optional)" />
      <xsd:element name="idPartner" type="xsd:integer"
         doc="ERP internal partner number (optional)" />
      <xsd:element name="PNum" type="xsd:string" 
         doc="Partner number (optional)" />
      <xsd:element name="PName" type="xsd:string" 
         doc="Partner name (optional)" />
      <xsd:element name="idPBranch" type="xsd:integer"
         doc="ERP internal partner branch number (optional)" />
      <xsd:element name="PBNum" type="xsd:string" 
         doc="Partner branch number (optional)" />
      <xsd:element name="PBName" type="xsd:string" 
         doc="Partner branch number (optional)" />
      <xsd:element name="SAddrOverride" type="xsd:integer"
         doc="Shipping address information differs from partner's addres (0=no, 1=yes). If (yes) provide the following fields" />
      <xsd:element name="SPName" type="xsd:string" 
         doc="Shipping address addressee name" />
      <xsd:element name="SAddr" type="xsd:string" 
         doc="Shipping address address" />
      <xsd:element name="SCity" type="xsd:string" 
         doc="Shipping address place" />
      <xsd:element name="SZip" type="xsd:string" 
         doc="Shipping address ZIP code" />
      <xsd:element name="SCPerson" type="xsd:string" 
         doc="Shipping address person" />
      <xsd:element name="SPhone" type="xsd:string" 
         doc="Shipping address phone" />
      <xsd:element name="Semail" type="xsd:string" 
         doc="Shipping address email" />
      <xsd:element name="SCountry" type="xsd:string"
         doc="Shipping address country. One of (according to ISO 3166-1): Country name, two-letter country code (alpha-2), three-leter country code (alpha-3)" />
      <xsd:element name="curCode" type="xsd:string" 
         doc="Partner's system order currency" />
      <xsd:element name="dcmRate" type="xsd:double"
         doc="Currency rate (partner currency)/(base currency)" />
      <xsd:element name="chrShippingMethod" type="xsd:string" />
      <xsd:element name="ShippingDate" type="xsd:date" 
         doc="Estimated shipping date" />
      <xsd:element name="Transport" type="xsd:string"
      doc="Shipping/transportation tracking information" />
      <xsd:element name="chrPaymentMethod" type="xsd:string" />
      <xsd:element name="PaymentDate" type="xsd:date" 
         doc="Estimated payment date" />
      <xsd:element name="POrderNum" type="xsd:string" 
         doc="Partner's system Order Number" />
      <xsd:element name="POrderDate" type="xsd:date" 
         doc="Partner's system Order Date" />
      <xsd:element name="Descr" type="xsd:string" />
      <xsd:element name="Notes" type="xsd:string" />
      <xsd:element name="UNS" type="xsd:string" doc="Unique Number of Sale (N-18)" />
      <xsd:element name="UNSWPCode" type="xsd:string" doc="UNS Related Workplace Code (N-18)" />
      <xsd:element name="UNSOpCode" type="xsd:string" doc="UNS Related Operator Code (N-18)" />
      <xsd:element name="UNSFPNum" type="xsd:string" doc="UNS Related Fiscal Deivice Serial Number (N-18)" />
      <xsd:element name="ITEMS" type="tns:erpOrderCItemNewArray" 
         doc="Order item list" />
   </xsd:all>
</xsd:complexType>

      			

5.3.6. Примерни заявки

5.3.6.1. Общи положения

Услугата поддържа сесии чрез cookies, така че това трябва да съобразено от страната на клиента на услугата. Всички заявки в рамките на една сесия използват един сесиен ключ.

Всички сесии на обръщение към Web Service: erpserver трябва да започват с

erpSOAPServer..Login

… и да завършват с

erpSOAPServer..Login

5.3.6.2. Регистриране и отрегистриране

erpSOAPServer..Login

Request:


<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:erpgate">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:erpSOAPServer..Login>
         <username xsi:type="xsd:string">ws_username</username>
         <password xsi:type="xsd:string">*******</password>
         <cnum xsi:type="xsd:string">ClientNunber</cnum>
         <db xsi:type="xsd:string">erp_dbname</db>
      </urn:erpSOAPServer..Login>
   </soapenv:Body>
</soapenv:Envelope>

      			

В username се вписва идентификатора на потребителя, предварително регистриран в Colibri® ERP, като потребител от тип Web services. Настройките на правата за достъп до различните действия и ресурси в Colibri® ERP определят и обхвата на привилегиите на клиента на услугата.

[Забележка] Забележка

От тук насетне, във WSDL кода на заявките и отговорите и с цел избягване на повторенията, ще посочваме само частта, оградена с:


<soapenv:Body>...</soapenv:Body>

      			  

Т.е. ще пропускаме обвивката:


<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:erpgate">
   <soapenv:Header/>
   <soapenv:Body>
...
   </soapenv:Body>
</soapenv:Envelope>

      			  

Response:

При успешна аутентикация се получава следния отговор:


<SOAP-ENV:Fault>
      <faultcode xsi:type="xsd:string">SERVER</faultcode>
      <faultactor xsi:type="xsd:string"/>
      <faultstring xsi:type="xsd:string">Access denied</faultstring>
      <detail xsi:type="xsd:string"/>
   </SOAP-ENV:Fault>

      			  

При всички случаи в които има възникнала грешка, услугата връща отговор, описан от SOAP-ENV:Fault и описание на грешката:


.. .
   <SOAP-ENV:Fault>
      <faultcode xsi:type="xsd:string">SERVER</faultcode>
      <faultactor xsi:type="xsd:string"/>
      <faultstring xsi:type="xsd:string"/>
      <detail xsi:type="xsd:string"/>
   </SOAP-ENV:Fault>
.. .

      			  

erpSOAPServer..Logout

Request:


    <urn:erpSOAPServer..Logout/>

      			  

Response:


<ns1:erpSOAPServer..LogoutResponse xmlns:ns1="urn:erpgate">
    <return xsi:type="xsd:decimal">1</return>
</ns1:erpSOAPServer..LogoutResponse>

      			  

5.3.6.3. Четене на поръчки

erpSOAPOrderC..GetOrder

Request: v.1 – филтър по OrderNum (номер на поръчката в Colibri® ERP).


<urn:erpSOAPOrderC..GetOrder>
         <filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
            <item xsi:type="urn:erpFilterRule">
               <field xsi:type="xsd:string">OrderNum</field>
               <value xsi:type="xsd:string">ON-00000005</value>
            </item>
         </filter>
      </urn:erpSOAPOrderC..GetOrder>

      			 

Response:


<ns1:erpSOAPOrderC..GetOrderResponse xmlns:ns1="urn:erpgate">
   <return xsi:type="tns:erpOrderCInfo">
      <idOrderC xsi:type="xsd:integer">8778</idOrderC>
      <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
      <OrderDate xsi:type="xsd:date">2017-03-08 13:37:30</OrderDate>
      <idBranch xsi:type="xsd:integer">18</idBranch>
      <BNum xsi:type="xsd:string">ON</BNum>
      <BName xsi:type="xsd:string">Електронен Магазин (ТЕСТ)</BName>
      <SNum xsi:type="xsd:integer">8</SNum>
      <SNumber xsi:type="xsd:string">БУРГАС</SNumber>
      <SName xsi:type="xsd:string">СКЛАД БУРГАС</SName>
      <idPartner xsi:type="xsd:integer">46563</idPartner>
      <PNum xsi:type="xsd:string">K011004727</PNum>
      <PName xsi:type="xsd:string">Клиент OnLine</PName>
      <idPBranch xsi:type="xsd:integer">0</idPBranch>
      <PBNum xsi:nil="true" xsi:type="xsd:string" />
      <PBName xsi:nil="true" xsi:type="xsd:string" />
      <SAddrOverride xsi:nil="true" xsi:type="xsd:integer" />
      <SPName xsi:type="xsd:string">Клиент име</SPName>
      <SAddr xsi:type="xsd:string">Адрес</SAddr>
      <SCity xsi:type="xsd:string">Град</SCity>
      <SZip xsi:type="xsd:string">1000</SZip>
      <SCPerson xsi:type="xsd:string">Контакт / Получател</SCPerson>
      <SPhone xsi:type="xsd:string">Телефон</SPhone>
      <Semail xsi:type="xsd:string">eMail</Semail>
      <SCountry xsi:type="xsd:string">BULGARIA</SCountry>
      <curCode xsi:type="xsd:string">BGN</curCode>
      <dcmRate xsi:type="xsd:double">1.000000</dcmRate>
      <OStatus xsi:type="xsd:string">ORDS_INIT</OStatus>
      <chrShippingMethod xsi:type="xsd:string">other</chrShippingMethod>
      <ShippingDate xsi:type="xsd:date">2017-03-01 00:00:00</ShippingDate>
      <Transport xsi:type="xsd:string">T</Transport>
      <chrPaymentMethod xsi:type="xsd:string">pos</chrPaymentMethod>
      <PaymentDate xsi:type="xsd:date">2017-03-04</PaymentDate>
      <POrderNum xsi:type="xsd:string">0002</POrderNum>
      <POrderDate xsi:type="xsd:date">2017-01-04</POrderDate>
      <Descr xsi:type="xsd:string">TEST Order (EDA Web services)</Descr>
      <Notes xsi:type="xsd:string" />
      <OSuma xsi:type="xsd:double">240.00</OSuma>
      <OSumaBGL xsi:type="xsd:double">240.00</OSumaBGL>
      <OSumaDDS xsi:type="xsd:double">288</OSumaDDS>
      <OSumaDDSBGL xsi:type="xsd:double">288</OSumaDDSBGL>
      <dtCreated xsi:type="xsd:dateTime">2017-03-08 13:37:30</dtCreated>
      <dtModified xsi:type="xsd:dateTime">2017-03-08 13:37:30</dtModified>
      <ITEMS xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderCItem[1]">
         <item xsi:type="tns:erpOrderCItem">
            <idOrderCItem xsi:type="xsd:integer">13046</idOrderCItem>
            <idOrderC xsi:type="xsd:integer">8778</idOrderC>
            <IOrder xsi:type="xsd:string">1</IOrder>
            <idMat xsi:type="xsd:integer">22898</idMat>
            <MNum xsi:type="xsd:string">DR-DJAN-671761302</MNum>
            <MName xsi:type="xsd:string">ДЖАНТИ 6.75-17.5-M22-128-10 PT</MName>
            <ProdNo xsi:type="xsd:string">DR-DJAN-671761302</ProdNo>
            <ProdName xsi:type="xsd:string">ДЖАНТИ 6.75-17.5-M22-128-10 PT (Online
            Store)</ProdName>
            <Batch xsi:type="xsd:string" />
            <MKCode xsi:type="xsd:string">СТО</MKCode>
            <MUnit xsi:type="xsd:string">бр.</MUnit>
            <Price xsi:type="xsd:double">120</Price>
            <PriceDDS xsi:type="xsd:double">144</PriceDDS>
            <PriceBGL xsi:type="xsd:double">120</PriceBGL>
            <PriceDDSBGL xsi:type="xsd:double">144</PriceDDSBGL>
            <Suma xsi:type="xsd:double">240.00</Suma>
            <SumaDDS xsi:type="xsd:double">288</SumaDDS>
            <SumaBGL xsi:type="xsd:double">240.00</SumaBGL>
            <SumaDDSBGL xsi:type="xsd:double">288</SumaDDSBGL>
            <QtyExpected xsi:type="xsd:double">0</QtyExpected>
            <QtyRejected xsi:type="xsd:double">0</QtyRejected>
            <QtyReceived xsi:type="xsd:double">0</QtyReceived>
            <QtyDelivered xsi:type="xsd:double">0</QtyDelivered>
            <QtyFulfilled xsi:type="xsd:double">0</QtyFulfilled>
            <QtyComplete xsi:type="xsd:double">0</QtyComplete>
         </item>
      </ITEMS>
      <PDOC xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderPDoc[0]" />
      <SDOC xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderSDoc[0]" />
      <STATUS xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderStatus[1]">
         <item xsi:type="tns:erpOrderStatus">
            <OStatus xsi:type="xsd:string">ORDS_INIT</OStatus>
            <Changed xsi:type="xsd:date">2017-03-08 13:37:30</Changed>
         </item>
      </STATUS>
   </return>
</ns1:erpSOAPOrderC..GetOrderResponse>

      			

Request: v.2 – филтър по POrderNum (номер на поръчката при клиента).


<urn:erpSOAPOrderC..GetOrder>
         <filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
            <item xsi:type="urn:erpFilterRule">
               <field xsi:type="xsd:string">POrderNum</field>
               <value xsi:type="xsd:string">0003</value>
            </item>
         </filter>
      </urn:erpSOAPOrderC..GetOrder>

      			

Response:


<ns1:erpSOAPOrderC..GetOrderResponse xmlns:ns1="urn:erpgate">
         <return xsi:type="tns:erpOrderCInfo">
            <idOrderC xsi:type="xsd:integer">8818</idOrderC>
            <OrderNum xsi:type="xsd:string">ON-00000006</OrderNum>
.. .
         </return>
      </ns1:erpSOAPOrderC..GetOrderResponse>

      			 

erpSOAPOrderC..GetOrderList

Request:


<urn:erpSOAPOrderC..GetOrderList>
   <params xsi:type="urn:erpFilterParams">
      <filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
         <item xsi:type="urn:erpFilterRule">
            <field xsi:type="xsd:string">OrderNum</field>
            <value xsi:type="xsd:string">ON-00000005</value>
         </item>
         <item xsi:type="urn:erpFilterRule">
            <field xsi:type="xsd:string">OrderNum</field>
            <value xsi:type="xsd:string">ON-00000001</value>
         </item>
      </filter>
   </params>
</urn:erpSOAPOrderC..GetOrderList>

      			 

Response: (не е посочен пълния код)


<ns1:erpSOAPOrderC..GetOrderListResponse xmlns:ns1="urn:erpgate">
   <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderCInfo[2]">
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">8764</idOrderC>
         <OrderNum xsi:type="xsd:string">ON-00000001</OrderNum>
...
      </item>
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">8778</idOrderC>
         <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
...
      </item>
   </return>
</ns1:erpSOAPOrderC..GetOrderListResponse>

      			 

Request v.2:


<urn:erpSOAPOrderC..GetOrderList>
   <params xsi:type="urn:erpFilterParams">
      <!--You may enter the following 2 items in any order-->
      <ext_filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
         <item xsi:type="urn:erpFilterRule">
            <field xsi:type="xsd:string">OrderNum</field>
            <value xsi:type="xsd:string">ON-00000001</value>
            <oper xsi:type="xsd:string">gte</oper>
         </item>
         <item xsi:type="urn:erpFilterRule">
            <field xsi:type="xsd:string">OrderNum</field>
            <value xsi:type="xsd:string">ON-00000005</value>
            <oper xsi:type="xsd:string">lte</oper>
         </item>
      </ext_filter>
      <set xsi:type="urn:erpSetParams" soapenc:arrayType="urn:erpSetParam[]">
         <item xsi:type="urn:erpSetParam">
            <key xsi:type="xsd:string">data_items</key>
            <value xsi:type="xsd:int">0</value>
         </item>
      </set>
      <sort xsi:type="urn:erpSort" soapenc:arrayType="urn:erpSortRule[]">
         <item xsi:type="urn:erpSortRule">
            <field xsi:type="xsd:string">OrderNum</field>
            <dir xsi:type="xsd:string">desc</dir>
         </item>
      </sort>
      <limit xsi:type="xsd:limitRange">
         <offset xsi:type="xsd:int">1</offset>
         <count xsi:type="xsd:int">10</count>
      </limit>
   </params>
</urn:erpSOAPOrderC..GetOrderList>

      			 

Response v.2: (не е посочен пълния код)


<ns1:erpSOAPOrderC..GetOrderListResponse xmlns:ns1="urn:erpgate">
   <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderCInfo[2]">
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">8774</idOrderC>
         <OrderNum xsi:type="xsd:string">ON-00000004</OrderNum>
...
      </item>
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">8764</idOrderC>
         <OrderNum xsi:type="xsd:string">ON-00000001</OrderNum>
...
      </item>
   </return>
</ns1:erpSOAPOrderC..GetOrderListResponse>

      			 

Request v.3: (последните 3 поръчки на клиент номер 177)


<urn:erpSOAPOrderC..GetOrderList>
   <params xsi:type="urn:erpFilterParams">
      <filter xsi:type="urn:erpFilter" soapenc:arrayType="urn:erpFilterRule[]">
         <item xsi:type="urn:erpFilterRule">
            <field xsi:type="xsd:string">idPartner</field>
            <value xsi:type="xsd:string">177</value>
         </item>
      </filter>
      <sort xsi:type="urn:erpSort" soapenc:arrayType="urn:erpSortRule[]">
         <item xsi:type="urn:erpSortRule">
            <field xsi:type="xsd:string">OrderDate</field>
            <dir xsi:type="xsd:string">desc</dir>
         </item>
      </sort>
      <limit xsi:type="xsd:limitResult">
         <count xsi:type="xsd:int">3</count>
      </limit>
   </params>
</urn:erpSOAPOrderC..GetOrderList>

      			 

Response v.3: (не е посочен пълния код)


<ns1:erpSOAPOrderC..GetOrderListResponse xmlns:ns1="urn:erpgate">
   <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:erpOrderCInfo[5]">
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">1197</idOrderC>
         <OrderNum xsi:type="xsd:string">0001135</OrderNum>
...
      </item>
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">1184</idOrderC>
         <OrderNum xsi:type="xsd:string">0001125</OrderNum>
...
      </item>
      <item xsi:type="tns:erpOrderCInfo">
         <idOrderC xsi:type="xsd:integer">1185</idOrderC>
         <OrderNum xsi:type="xsd:string">0001126</OrderNum>
...
      </item>
   </return>
</ns1:erpSOAPOrderC..GetOrderListResponse>

      			 

erpSOAPOrderC..GetLastOrder

Request:


     <urn:erpSOAPOrderC..GetLastOrder />

      			 

Response:


<ns1:erpSOAPOrderC..GetLastOrderResponse xmlns:ns1="urn:erpgate">
   <return xsi:type="tns:erpOrderCInfo">
      <idOrderC xsi:type="xsd:integer">8852</idOrderC>
      <OrderNum xsi:type="xsd:string">ON-00000008</OrderNum>
...
   </return>
</ns1:erpSOAPOrderC..GetLastOrderResponse>

      			 

5.3.6.4. Статус на поръчката

erpSOAPOrderC..GetOrderStatus

Request:


<urn:erpSOAPOrderC..GetOrderStatus>
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
</urn:erpSOAPOrderC..GetOrderStatus>

      			

Response:


<ns1:erpSOAPOrderC..GetOrderStatusResponse xmlns:ns1="urn:erpgate">
   <idOrderC xsi:type="xsd:integer">8778</idOrderC>
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
   <OStatus xsi:type="xsd:string">ORDS_INIT</OStatus>
   <Changed xsi:type="xsd:date">2017-03-08 13:37:30</Changed>
   <Message xsi:type="xsd:string">OK</Message>
</ns1:erpSOAPOrderC..GetOrderStatusResponse>

      			

erpSOAPOrderC..SetOrderStatus

Request:


<urn:erpSOAPOrderC..SetOrderStatus>
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
   <OStatus xsi:type="xsd:string">ORDS_DRAFT</OStatus>
</urn:erpSOAPOrderC..SetOrderStatus>

      			

Response:


<ns1:erpSOAPOrderC..SetOrderStatusResponse xmlns:ns1="urn:erpgate">
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
   <OStatus xsi:type="xsd:string">ORDS_DRAFT</OStatus>
   <Message xsi:type="xsd:string">OK</Message>
</ns1:erpSOAPOrderC..SetOrderStatusResponse>

      			

erpSOAPOrderC..CancelOrder

Request:


<urn:erpSOAPOrderC..CancelOrder>
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
</urn:erpSOAPOrderC..CancelOrder>

      			

Response:


<ns1:erpSOAPOrderC..CancelOrderResponse xmlns:ns1="urn:erpgate">
   <OrderNum xsi:type="xsd:string">ON-00000005</OrderNum>
   <OStatus xsi:type="xsd:string">ORDS_TERMINATE</OStatus>
   <Message xsi:type="xsd:string">OK</Message>
</ns1:erpSOAPOrderC..CancelOrderResponse>

      			 

5.3.6.5. Регистриране на поръчка

erpSOAPOrderC..RegOrder

Request: v.1 (Минимален комплект от данни за регистриране на поръчка)


<urn:erpSOAPOrderC..RegOrder>
   <order xsi:type="urn:erpOrderCNew">
<!-- Номер и дата на поръчката в клиентската система -->
      <POrderNum xsi:type="xsd:string">0003</POrderNum>
      <POrderDate xsi:type="xsd:date">2017-01-04</POrderDate>
<!-- Адрес на доставка -->
      <SPName xsi:type="xsd:string">Клиент име</SPName>
      <SAddr xsi:type="xsd:string">Адрес</SAddr>
      <SCity xsi:type="xsd:string">Град</SCity>
      <SZip xsi:type="xsd:string">1000</SZip>
      <SCPerson xsi:type="xsd:string">Контакт / Получател</SCPerson>
      <SPhone xsi:type="xsd:string">Телефон</SPhone>
      <Semail xsi:type="xsd:string">eMail</Semail>
<!-- Начин на доставка и начин на плащане -->
      <chrShippingMethod xsi:type="xsd:string">other</chrShippingMethod>
      <ShippingDate xsi:type="xsd:date">2017-03-01</ShippingDate>
      <Transport xsi:type="xsd:string">T</Transport>
      <chrPaymentMethod xsi:type="xsd:string">pos</chrPaymentMethod>
      <PaymentDate xsi:type="xsd:date">2017-03-04</PaymentDate>
      <Descr xsi:type="xsd:string">TEST Order (EDA Web services)</Descr>
<!-- Списък артикули -->
      <ITEMS xsi:type="urn:erpOrderCItemNewArray">
         <item xsi:type="urn:erpOrderCItemNew">
<!-- Номер на артикула в Colibri® ERP -->
            <MNum xsi:type="xsd:string">DR-DJAN-671761302</MNum>
<!-- Номер и наименование на артикула в клиентската система -->
            <ProdNo xsi:type="xsd:string">671761302</ProdNo>
            <ProdName xsi:type="xsd:string">ДЖАНТИ 6.75-17.5-M22-128-10 PT (Online Store)</ProdName>
<!-- Поръчано количество и цена -->
            <QtyReq xsi:type="xsd:double">2</QtyReq>
            <Price xsi:type="xsd:string">120</Price>
         </item>
      </ITEMS>
   </order>
</urn:erpSOAPOrderC..RegOrder>

      			 

Response: (при успех)


<ns1:erpSOAPOrderC..RegOrderResponse xmlns:ns1="urn:erpgate">
   <idOrderC xsi:type="xsd:integer">8818</idOrderC>
   <OrderNum xsi:type="xsd:string">ON-00000006</OrderNum>
   <POrderNum xsi:type="xsd:string">0003</POrderNum>
   <Message xsi:type="xsd:string">Новата поръчка е регистрирана успешно! </Message>
</ns1:erpSOAPOrderC..RegOrderResponse>

      			 

Response: (при опит за регистриране на вече съществуваща поръчка)


<ns1:erpSOAPOrderC..RegOrderResponse xmlns:ns1="urn:erpgate">
   <idOrderC xsi:type="xsd:integer">8818</idOrderC>
   <OrderNum xsi:type="xsd:string" />
   <POrderNum xsi:type="xsd:string">0003</POrderNum>
   <Message xsi:type="xsd:string">Поръчка с този номер вече съществува! </Message>
</ns1:erpSOAPOrderC..RegOrderResponse>

      			 

5.3.7. Настройки в Colibri® ERP

5.3.7.1. Web service потребител

В Colibri® ERP трябва да се създаде нов потребител от вид „Потребител“ и тип „Web service“ и да му се направят необходимите настройки.

[Забележка] Забележка

Тук ще опишем само настройките, необходими за описанта функционалност.

  1. Настройка на документите;

    Този потребител трябва да може да създава „Поръчки от клиенти“.

  2. Настройка на складовете;

    Трябва да се дадат като минимум права за четене за складовете, в които клиента ще създава поръчки. Ако методиката изисква специално нарочен склад за обслужване на клиентските поръчки от този източник, този склад може да се настрои с права за запис и по този начин ще се използва като склад по подразбиране, ако не е посочен в заявките за регистриране на поръчки.

  3. Настройка на клоновете;

    Добра практика е да се създаде нов клон на фирмата, който да обединява всички клиентски поръчки, регистрирани от външния клиент. Ако има създаден нарочен склад, той може да се „прикачи“ към новия клон.

  4. Системни параметри:

    - Клиент по подразбиране;

    Добра практика е да се създаде специален клиент (в меню Списъци/Партньори/Клиенти) и този клиент да се използва при регистрирането на поръчките. След което в меню Системни параметри/Потребители секция Документи за този потребител в параметъра DOC_SELL_RETAIL_PNUM - Номер на подразбиращ се клиент при продажби на дребно записвате кода на новосъздадения клиент.

    - Процес за Поръчки от клиенти;

    Добра практика е да се създаде специален процес за Поръчки от клиенти (в Настройки/Списъци/Процеси поръчкиПоръчки от клиенти) и този процес да се използва при регистрирането на поръчките. След което в Системни параметри/Потребители секция Поръчки и резервации за този потребител в параметъра ORDER_PROCESS_DEFAULT_ORDC - Подразбиращ се процес за Поръчки записвате кода на новосъздадения процес. А в Системни параметри/Глобални секция Поръчки и резервации установявате параметъра ORDER_PROCESS_ENABLED - Използване на процес при поръчките в Да.

  5. Номерации на документи и списъци.

    Първо в Настройки/Номерации на документи и списъци секция Поръчки и логистика за Поръчки от клиенти трябва да се създаде нова маска за номерация. После в Настройки/Потребители/Номерации за нови потребители - секция Поръчки за Поръчки от клиенти избирате новосъздадената маска.

Copyright © 2006-2024 EDA Ltd.