Так же можно формировать условие по нескольким условиям, при этом значения в filterField, filterValue и filterCond должны разделяться запятыми. filterCond в этом случае не имеет условий по умолчанию. Условия объединяются по логическому 'И'.
Пример запроса с несколькими условиями
<getNSI>
<tableName value="T_INV_TRANSP_CLAUSE"/>
<filterField value="TRANSPCLAUSE_ID, TRANSPCLAUSE_ID, CC_IDTARIFMARK, DESCRIPTION"/>
<filterCond value=">,<,is, like"/>
<filterValue value="100,900,NULL,%сертификат%"/>
</getNSI>
Будет сформированы записи, имеющие TRANSPCLAUSE_ID в диапазоне от 100 до 900, пустое поле CC_ID и содержащие в поле DESCRIPTION текст “сертификат”.
Запрос по справочнику опасных грузов, принадлежащих тарифной группе НЕФТЬ И НЕФТЕПРОДУКТЫ:
<getNSI>
<tableName value="DF_DANGER"/>
<filterField value="ETSNG"/>
<filterCond value="like"/>
<filterValue value="2%"/>
</getNSI>
При задании значений по условию fromTransID будут выбираться значения из запрашиваемой таблицы имеющие поле Trans_ID > fromTransID. При этом выдаваемое количество записей будет ограничиваться – будет выдано примерно 200 (или больше записей – для условия чтобы текущий Trans_ID был выбран полностью). По умолчанию fromTransID имеет значение равное 0.
Справочники НСИ содержит поля RecDateBegin и RecDateEnd – эти поля нужны для определения действующей записи.
Например, как работает удаление записей: у такой записи изменится
поле TransID и выставится RecDateEnd = дате удаления.
Также работает и изменение текущей записи - старая удаляется описанным
способом и заводится новая запись с тем же ID и нужными значениями. Т. е. при получении каждой записи, кроме внесения новых записей, необходимо обновить имеющиеся данные с таким же ID. Пример:
UPDATE station
set RecDateEnd=(дата начала новой записи)
WHERE RecDateEnd>(дата начала новой записи)
and ST_ID=(ID станции)
and TRANS_ID<(trans_id новой записи)
Если в справочнике есть поля RecDateBegin и RecDateEnd и нет поля Trans_ID, то выдаваемые записи будут ограничены условием: RecDateBegin <= (текущая дата) и RecDateEnd > (текущая дата) – т. е. будут выданы только действующие записи. Если задать условие на данные поля, то это ограничение снимается.
В большинстве случаях таблицы без поля Trans_ID и полей RecDateBegin и RecDateEnd малы по размеру, и обновление можно проводить, полностью вычитывая и заменяя данные.
Также можно поступать с таблицами, не имеющими поля TransID и имеющие поля RecDateBegin и RecDateEnd. Однако, если это нежелательно, то для определения удаленные или изменненые записи с определенной даты (например, с последнего обновления НСИ) для таких таблиц необходимо выполнить два запроса:
- с определением удаленных записей: RecDateEnd > (дата определения) и RecDateEnd < (текущая дата)
- с получением новых записей: RecDateBegin > (дата определения), RecDateBegin <= (текущая дата) и RecDateEnd > (текущая дата)
Ответ запроса приведен в пункте «Данные нормативно-справочной информации»
4. Описание доступной НСИ.
4.1. Грузы
Назначение: Классификатор грузов
Таблица: FREIGHT
Поле | Тип данных | Первичный ключ | Комментарий |
TRANS_ID | NUMBER(9) | * | Номер транзакции |
FR_ID | NUMBER(8) | * | Условный идентификатор |
RECDATENEW | DATE | Дата появления записи в таблице | |
RECDATEBEGIN | DATE | Дата ввода в действие | |
RECDATEEND | DATE | Дата вывода из действия | |
ORDER_NO | VARCHAR(40) | Номер приказа на изменение классификатора | |
FR_CODE_ETSNG | VARCHAR2(6) | Код ЕТСНГ | |
FR_GG_NUMBER | NUMBER(3) | Идентификатор группы груза (Sum_Freight. GG_Number) | |
FR_CODE_GNG | VARCHAR2(2) | Код ГНГ | |
FR_SHORT_NAME | VARCHAR2(15) | Наименование сокр | |
FR_NAME | VARCHAR2(150) | Наименование полное | |
FR_CLASS | VARCHAR2(2) | Класс груза | |
FR_GO6_ID | NUMBER(2) | Код груза по ГО-6(GO6_Freight. GO6_CODE) | |
FR_GO10_ID | NUMBER(2) | Код груза по ГО-10, ГО-10А, ЦО-29 (GO10_Freight. GO10_CODE) | |
FR_CO11_ID | NUMBER(2) | Код груза по ЦО-11 | |
GUARD | CHAR(1) | Признак обязательной охраны | |
SKOROPORT | CHAR(1) | Признак скоропортящегося груза | |
NAVAL | CHAR(1) | Груз можно везти навалом | |
NASIP | CHAR(1) | Груз можно везти насыпью | |
NALIV | CHAR(1) | Груз можно везти наливом | |
KARANTIN | CHAR(1) | Карантинный груз | |
OPENVAGONS | CHAR(1) | Признак перевозки на открытом подвижном составе | |
SOPROVOD | CHAR(1) | Груз требует сопровождения | |
SMERZ | CHAR(1) | Признак смерзающегося груза | |
ALPH_EXIST | CHAR(1) | Признак не группирующего груза - присутствие в алфавитном справочнике | |
EXACT_NAME | CHAR(1) | Требует ввода точного наименования | |
FR_CO15_ID | NUMBER (3) | ID группы по ЦО-15(FREIGHT_CO15.CO15_ID) |
4.2. Грузы ГНГ
Назначение: Гармонизированная номенклатура грузов (устарело)
Таблица: GNG_FREIGHT
Поле | Тип данных | Первичный ключ | Комментарий |
TRANS_ID | NUMBER(9) | * | Номер транзакции |
GF_ID | NUMBER(5) | * | Условный идентификатор |
RECDATENEW | DATE | Дата появления записи в таблице | |
RECDATEBEGIN | DATE | Дата ввода в действие | |
RECDATEEND | DATE | Дата вывода из действия | |
ORDER_NO | VARCHAR(40) | Номер приказа на изменение классификатора | |
GF_CODE | VARCHAR2(6) | Код груза | |
ETSNG | VARCHAR2(3) | Соотв. грузы ЕТСНГ(первые 3зн. кода ЕТСНГ) | |
GF_NAME | VARCHAR2(175) | Наименование груза | |
GNG_FREIGHT_2001_GF_CODE | VARCHAR2(8) | ||
DOPKOD | VARCHAR2(8) |
4.3. Грузы ГНГ 2001
Назначение: Гармонизированная номенклатура грузов (8-значные грузы ГНГ)
Таблица: GNG_FREIGHT_2001
Поле | Тип данных | Первичный ключ | Комментарий |
TRANS_ID | NUMBER(9) | * | Номер транзакции |
GF_ID | NUMBER(5) | * | Условный идентификатор |
RECDATENEW | DATE | Дата появления записи в таблице | |
RECDATEBEGIN | DATE | Дата ввода в действие | |
RECDATEEND | DATE | Дата вывода из действия | |
ORDER_NO | VARCHAR(40) | Номер приказа на изменение классификатора | |
GF_CODE | VARCHAR2(8) | Код груза | |
GF_NAME | VARCHAR2(1000) | Наименование груза | |
ETSNG | VARCHAR2(31) | Соотв. грузы ЕТСНГ (первые 3 зн. кода ЕТСНГ) может быть список через запятую | |
GF_CODE_OLD | VARCHAR2(6) | Старый код ГНГ | |
FR_ID | NUMBER(8) | Ссылка на груз ЕТСНГ |
4.4. Группы груза
Назначение: Номенклатурные группы
Таблица: SUM_FREIGHT
Поле | Тип данных | Первичный ключ | Комментарий |
TRANS_ID | NUMBER(9) | * | Номер транзакции |
GG_NUMBER | NUMBER(3) | * | Порядковый номер |
RECDATENEW | DATE | Дата появления записи в таблице | |
RECDATEBEGIN | DATE | Дата ввода в действие | |
RECDATEEND | DATE | Дата вывода из действия | |
ORDER_NO | VARCHAR(40) | Номер приказа на изменение классификатора | |
GG_NAME | VARCHAR2(150) | Наименование номенклатурных групп | |
GG_CHAR_NAME | VARCHAR2(2) | Буквенное обозначение групп (шифр) | |
STAT_MIN | NUMBER(3) | Минимальная норма загрузки данного груза на вагон | |
STAT_MAX | NUMBER(3) | Максимальная норма загрузки данного груза на вагон | |
GG_TYPE | CHAR(1) | Для фиктивных групп (40,41,42) должен быть 1, для всех остальных - null | |
GG_NEED_WEIGHT | CHAR(1) | Признак необходимости указания веса груза в п. д. |
4.5. Дороги
Назначение: Классификатор железных дорог СНГ
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |


