Проблема
Заключается сделка на Московской Бирже. В терминале заполняется поле "Комментарий" (TRADE_REF в SEC_BROKER_DEALS), по которому должен определиться "Брокер" (В сделках покупки/продажи ценных бумаг и РЕПО – таблица "SEC_DEAL" поле "BROKER_ID". В конверсионных сделках – таблица "FX" поле "BROKERID1"). По какой-либо причине поле "Брокер" в сделку не передается.
Решение
Пример заполнения поля, где 76 – тэг брокера:
Без форматирования |
---|
TRADE_REF = #76:CHASE# |
Для реализации функционала необходимо соблюдение требований:
- Используется тег брокера – "76" .
- Код "CHASE" необходимо привязать в справочнике Коды (cущность – контрагенты).
В Администраторе указаны соответствующие символы и разделители.
Раскрыть title Подробнее... Для настройки запустите resadm.exe, выберите вкладку "Система" – "Общие настройки" – "Настройки RN" – "Загрузка сделок, платежей" и настройте параметры:
Разделитель заголовка и значения параметра FIX протокола SEC_LOAD_FIX_HEAD_DELIMITER ':' Разделитель параметров FIX протокола в референсе SEC_LOAD_FIX_PARAM_DELIMITER ';' Символ начала и окончания строки FIX протокола в референсе SEC_LOAD_FIX_PROT_BEGIN_END '#'
После приведения всех настроек в соответствие, при загрузке сделки будет корректно определяться брокер.
Проверка настроек
Блок кода | ||
---|---|---|
| ||
DECLARE
vTradeRef VARCHAR2 (128);
VFIXSTR VARCHAR2 (128);
VRESULT VARCHAR2 (128);
VBROKSTR VARCHAR2 (128);
vBrokerId number;
VSYSTEM_ALIASE number;
vBOURSE_ALIASE VARCHAR2(100);
BEGIN
select trade_ref,BOURSE_ALIASE
into vTradeRef,vBOURSE_ALIASE
from SEC_BROKER_DEALS where id = :YourIdDealFromSBD;
--vTradeRef := '#76:BDOT#50833';
select max (SYSTEM_ALIASE)
into VSYSTEM_ALIASE
from EXT_SYSTEMS
where SYSTEM_ALIASE = vBOURSE_ALIASE;
--VSYSTEM_ALIASE := 3; -- Change to your extSystemId from ext_systems
--RESMAN.PKG_SEC_BROKER_DEALS.ANALYZETRADEREF (vTradeRef);
PKG_COMMON.TRIMSUBSTR (vTRADEREF --
,F_PARAMETER_STR ('SEC_LOAD_FIX_PROT_BEGIN_END', '#') --
,F_PARAMETER_STR ('SEC_LOAD_FIX_PROT_BEGIN_END', '#') --
,VFIXSTR --
,VRESULT);
IF VFIXSTR IS NOT NULL THEN
-- брокер - параметр 76 (задача 9816)
VBROKSTR := PKG_COMMON.FUNC_GETSTRPARAMETER ( VFIXSTR --
,'76' || F_PARAMETER_STR ('SEC_LOAD_FIX_HEAD_DELIMITER', ':') --
,F_PARAMETER_STR ('SEC_LOAD_FIX_PARAM_DELIMITER', ';') --
,'True' --
,'True' --
);
IF VBROKSTR IS NOT NULL THEN
vBrokerId := PKG_CODES.F_CODE_RN_FROM_EXT_SYSTEM (VSYSTEM_ALIASE, 2, VBROKSTR);
END IF;
ELSE
zzz_Ex(' VFIXSTR = '||NVL (VFIXSTR,' Empty '));
END IF;
IF vBrokerId is null then
zzz_ex ('Code not Found. Check your next settings.
SEC_LOAD_FIX_PROT_BEGIN_END = '|| F_PARAMETER_STR ('SEC_LOAD_FIX_PROT_BEGIN_END', '#')|| '
SEC_LOAD_FIX_PARAM_DELIMITER = '||F_PARAMETER_STR ('SEC_LOAD_FIX_PARAM_DELIMITER', ';')|| '
VBROKSTR = '||VBROKSTR
);
end if;
zzz_Ex(' VBROKSTR = '||VBROKSTR || ' vBrokerId = '||NVL (vBrokerId,'-1'));
END;
/
|
Похожие статьи
Содержимое по меткам | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Свойства страницы | ||
---|---|---|
| ||
|