Интерпретация логов интернет-заказов

При запросе списка валют (запрос currency) события в журнале событий будут выглядеть следующим образом (примерный сценарий!).

На входе делается проверка по sid (неуспешные попытки не пишутся в логи, чтобы не спамили логи):

Authorization successful
CODE

Затем проверяется наличие лицензии:

Checking master lincense for object 199994545
Master lincense is actual for object 199994545
CODE

Если лицензия действительна, то далее делается запрос списка валют из кэша:

Get data of currencies for object=199994545
Get a list of currency for objectId=199994545
CODE

Данные в кэше устарели или их там нет, надо запрашивать у RK7:

Demand a data of currencies from RK7 directly
CODE

Данные запрашиваются в фоновом режиме. Однако, если возвратить пользователю нечего, то приходится ожидать ответа от RK7:

List of currency is empty. Waiting, while will load list to cache from RK7 throuth WS.
Send a request to WS: objectId=199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
CODE

Запрос «ушел» к WS:

WsApi:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=390,
filename=request_c133d79d-8cc0-435b-a388-f993630d9468.xml,
CODE
<RQ cmd="exec_rk7call" tasktype="any_call" callback="http://172.22.5.223:5000/api/v1/callback/c133d79d-8cc0-435b-a388-f993630d9468" guid="c133d79d-8cc0-435b-a388-f993630d9468" timeout="90"><PARAM name="object_id" val="199994545"/><RK7Query><RK7CMD CMD="GetRefData" RefName="Currencies" IgnoreEnums="1" WithMacroProp="1" OnlyActive="1" PropMask="items.(ident, name, gen*)"/> </RK7Query></RQ>
XML

Ответ WS:

WsApi:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=119,
filename=response_c133d79d-8cc0-435b-a388-f993630d9468.xml,
XML
<?xml version="1.0" encoding="utf-8"?> <RP taskguid="27c800a0-64e6-4994-9250-fc12c92231f4" code="0" version="1.9.0" />
XML

WS успешно принял наш запрос- ждём ответа:

Request was sent to WS successfuly: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
Waiting an answer from WS: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
XML

WS передал ответ от RK7:

Callback procedure has executed:
taskGUID=c133d79d-8cc0-435b-a388-f993630d9468,
size=1645,
filename=callback_c133d79d-8cc0-435b-a388-f993630d9468.xml
XML
<?xml version="1.0" encoding="UTF-8"?>
<RP cmdguid="27c800a0-64e6-4994-9250-fc12c92231f4" posid="7D3B75E3-761E-4BD5-BDD2-BF9931D7E68A">
	<RK7QueryResult ServerVersion="7.6.0.108" XmlVersion="244" NetName="TEST_MIDSRV" Status="Ok" CMD="GetRefData" ErrorText="" DateTime="2019-01-18T15:42:06" WorkTime="0" Processed="1">
		<RK7Reference DataVersion="35" ClassName="TCurrencies">
			<Items>
				<Item Ident="1" Name="Рубли" genForDelivery="1"/>
				<Item Ident="2" Name="Евро" genForDelivery="1"/>
				<Item Ident="3" Name="Доллар США" genForDelivery="1"/>
				<Item Ident="4" Name="VISA" genForDelivery=""/>
				<Item Ident="5" Name="Master Card" genForDelivery=""/>
				<Item Ident="6" Name="American Express" genForDelivery=""/>
				<Item Ident="7" Name="Diners Club" genForDelivery=""/>
				<Item Ident="8" Name="Euro Cirrus Maestro" genForDelivery=""/>
				<Item Ident="9" Name="JCB" genForDelivery=""/>
				<Item Ident="10" Name="ПДС оплата" genForDelivery=""/>
				<Item Ident="11" Name="Безнал" genForDelivery=""/>
				<Item Ident="12" Name="номер" genForDelivery=""/>
				<Item Ident="100369" Name="Жетоны" genForDelivery=""/>
				<Item Ident="100384" Name="Фишки" genForDelivery=""/>
				<Item Ident="100385" Name="Фантики" genForDelivery=""/>
				<Item Ident="100401" Name="ооо гарус" genForDelivery=""/>
				<Item Ident="100465" Name="Талоны" genForDelivery=""/>
				<Item Ident="100733" Name="Бенал_1" genForDelivery=""/>
				<Item Ident="1000033" Name="Купон на бар" genForDelivery="1"/>
				<Item Ident="1000221" Name="Бесплатно" genForDelivery="1"/>
			</Items>
		</RK7Reference>
	</RK7QueryResult>
</RP>
XML

Констатируем факт, что ответ от WS корректный и разбираем его:

Answer was received from WS successfuly: 199994545, taskGUID=c133d79d-8cc0-435b-a388-f993630d9468
Parse answer from WS
XML

Пришедший ответ передан в для дальнейшей обработки в исходную процедуру (api/v1/Currency):

Return answer from WS
XML

Новые данные кэшируем:

Loading data to cache from RK7 throuth WS was successful
Extract data of currencies from cache
Extracting data of currencies from cache was successful.
XML

Преобразуем в JSON:

Transfer data from RK format to JSON format
Prepare data for response
XML

Возвращаем ответ:

{"data":[{"curid":1,"name":"Рубли","promised":""},{"curid":2,"name":"Евро","promised":""},{"curid":3,"name":"Доллар США","promised":""},{"curid":1000033,"name":"Купон на бар","promised":""},{"curid":1000221,"name":"Бесплатно","promised":""}],"ver":"1.2.17.24","timestamp":"2019-01-18T15:42:06","status":"Ok","requestId":"71547412cf1845d487196ae4f8bd8d74"}
YML

При запросе данных по заказу (запрос order) события в журнале событий будут выглядеть следующим образом (примерный сценарий!).

На входе делается проверка по sid (неуспешные попытки не пишутся в логи, чтобы не спамили логи):

Authorization successful
CODE

Затем проверяется наличие лицензии:

Checking master lincense for object 199994545
Master lincense is actual for object 199994545
CODE

Если лицензия действительна, то далее делается запрос заказа через WS. Эта строка отмечает начало выполнения запроса:

Create request for WS: objectId=199994545, visitId=449382193
CODE

Далее выполняется сам запрос. Начинается с формирования команды для RK7 на получения данных по заказу:

Create command 'Get order': visitId=449382193
Command 'Get order' was created: visitId=449382193
CODE

Созданная команда отсылается на WS:

Send request to WS: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
CODE

Подробное описание посылаемой команды:

WsApi:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=416,
filename=request_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml,
CODE
<?xml version="1.0" encoding="utf-16"?>
<RQ cmd="exec_rk7call" tasktype="any_call" callback="http://172.22.5.223:5000/api/v1/callback/37cdc62b-b198-433b-9bdf-cd97506eaa67" guid="37cdc62b-b198-433b-9bdf-cd97506eaa67" timeout="90">
  <PARAM name="object_id" val="199994545" />
  <RK7Query>
    <RK7Command CMD="GetOrder">
      <Order orderIdent="256" visit="449382193" />
    </RK7Command>
  </RK7Query>
</RQ>
XML

Ответ WS:

WsApi:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=119,
filename=response_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml,
CODE
<?xml version="1.0" encoding="utf-8"?>
<RP taskguid="b0840921-1eee-4bc8-9523-58cbea112bdf" code="0" version="1.9.0" />
XML

Констатируем факт, что запрос в WS ушёл успешно и ждем ответа от RK7:

Request was sent to WS successfuly, wait an answer: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
CODE

Пришел ответ от RK7 через WS:

Callback procedure has executed:
taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67,
size=544,
filename=callback_37cdc62b-b198-433b-9bdf-cd97506eaa67.xml
CODE
<?xml version="1.0" encoding="UTF-8"?>
<RP cmdguid="b0840921-1eee-4bc8-9523-58cbea112bdf" posid="7D3B75E3-761E-4BD5-BDD2-BF9931D7E68A">
	<RK7QueryResult ServerVersion="7.6.0.108" XmlVersion="244" NetName="TEST_MIDSRV" Status="Query Executing Error" Processed="0" ErrorText="No order 449382193.1 (1AC9073100000100H)." RK7ErrorN="2006">
		<CommandResult CMD="GetOrder" Status="Query Executing Error" ErrorText="No order 449382193.1 (1AC9073100000100H)." DateTime="2019-01-18T15:13:02" WorkTime="0" RK7ErrorN="2006"/>
	</RK7QueryResult>
</RP>
XML

Пришедший ответ передан в для дальнейшей обработки в исходную процедуру (api/v1/Order):

An answer was received from WS: taskGUID=37cdc62b-b198-433b-9bdf-cd97506eaa67, objectId=199994545
CODE

Разбор ответ:

Parse answer from WS
CODE

Возврат ответа пользователю:

Return parsing answer from WS
CODE
{"ver":"1.2.17.24","timestamp":"2019-01-18T15:13:02","status":"Err","requestId":"6f81481401ae4e8a9e47fb4c7850d7d9","error":[{"code":"DLW-0017","text":"RK7 order creation error","details":"[2006] No order 449382193.1 (1AC9073100000100H)."}]}
CODE