Методические указания (1034716), страница 4
Текст из файла (страница 4)
Варианты состава транзакций
Вариант 1
Номер транзакции | Имя транзакции |
1 | Формирование платежа за процессинг для банка-эмитента за 1 день |
3 | Выборка данных о картах для эмиссии |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 2
Номер транзакции | Имя транзакции |
2 | Читать записи из таблицы «Запрос» для формирования документов, передаваемых в банки |
6 | Добавить карты для эмиссии |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 3
Номер транзакции | Имя транзакции |
4 | Сводка стоп-листов за 30 дней |
5 | Включить новый стоп-лист |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 4
Номер транзакции | Имя транзакции |
3 | Выборка данных о картах для эмиссии |
5 | Включить новый стоп-лист |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 5
Номер транзакции | Имя транзакции |
1 | Формирование платежа за процессинг для банка-эмитента за 1 день |
6 | Добавить карты для эмиссии |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 6
Номер транзакции | Имя транзакции |
2 | Читать записи из таблицы «Запрос» для формирования документов, передаваемых в банки |
5 | Включить новый стоп-лист |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 7
Номер транзакции | Имя транзакции |
4 | Сводка стоп-листов за 30 дней |
6 | Добавить карты для эмиссии |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 8
Номер транзакции | Имя транзакции |
5 | Включить новый стоп-лист |
6 | Добавить карты для эмиссии |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 9
Номер транзакции | Имя транзакции |
3 | Выборка данных о картах для эмиссии |
4 | Сводка стоп-листов за 30 дней |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Вариант 10
Номер транзакции | Имя транзакции |
1 | Формирование платежа за процессинг для банка-эмитента за 1 день |
4 | Сводка стоп-листов за 30 дней |
7 | Проверка на присутствие в стоп-листе |
8 | Проверка на принадлежность к другому ПЦ |
9 | Включить запись в таблицу «Запрос» |
10 | Изменить статус запроса |
Запросы, которые входят в транзакции
1. Транзакция «Формирование платежа за процессинг для банка-эмитента за 1 день» (запускается со станции оператора)
1. Определение числа запросов к ПЦ
select R.Ключ_банка f1, COUNT(*) into kl_bank, cnt_zapr
from Банк R, Запрос S
where R.Ключ_банка = S.Ключ_банка_эмитента
and R.БИК=Значение1 and Data(S.Дата_и_время_совершения_операции) = Значение2
group by R.ключ_банка; //select вернёт одно значение, соответствующее БИК
2. Включение платежа за процессинг
insert into Платёж_за_процессинг
(Ключ_платежа, Дата_выставления_платежа, Количество_запросов_в_банк, Комиссия_за_запрос, Сумма_платежа, Ключ_банка)
values (k1, Значение2, cnt_zapr, Значение3, z1, kl_bank);
// z1= cnt_zapr* Значение3
2. Транзакция «Читать записи из таблицы «Запрос» для формирования документов, передаваемых в банки» (запускается автоматически со станции оператора раз в сутки).
1. Читать записи
select S.* f1, R.Ключ_банка f2, R.БИК f3
from Банк R, Запрос S, Запрос_Банк P
where R.Ключ_банка = P.Ключ_банка and S.Ключ_запроса= P.Ключ_запроса
and Data(S.Дата_и_время_совершения_операции)=Значение1;
// для этого select в транзакции открывается курсор
3. Транзакция «Выборка данных о картах для эмиссии» (запускается со станции оператора)
1. Выбрать данные о картах для эмиссии по БИК банка. и дате.
select T.Номер_карты p1, T.Дата_истечения_срока p2, T.ФИО_владельца p3, Т.Платёжная_система p4, Т.Тип_шаблона_обложки p5
from Банк R, Карта_для_эмиссии T
where R.ключ_банка = T.Rлюч_банка and БИК=Значение1 and
Data(Т.Дата_и_время_поступления_заказа)=Значение2;
// для этого select в транзакции открывается курсор
4. Транзакция «Сводка стоп-листов за 30 дней» (запускается со станции оператора)
1. Выбрать данные о стоп-картах за 30 дней
select R.Наименование_банка p1, R.БИК p2, S.Дата_и_время_получения_стоп-листа p3, T.Номер_карты p4, Т.Дата_истечения_срока p5, Т.ФИО_владельца p6,
Т.Дата_и_время_принятия_заявления p7, Т.Признак_утраты p8
from Банк R, Стоп-лист S, Стоп-карта T
where Data(S.Дата_и_время_получения_стоп-листа) BETWEEN 30 дней and
R.Ключ_банка=S.Ключ_банка and S.Ключ_стоп-листа=T.Ключ_стоп-листа
// для этого select в транзакции открывается курсор
5. Транзакция «Включить новый стоп-лист» (запускается со станции оператора, объём дополнительных входных данных – 4096 байтов)
1. Найти ключ банка
select Ключ_банка f1 into kl_bank
from Банк
where БИК=Значение1;
2. Добавить новый стоп-лист
insert into Стоп-лист
(Ключ_стоп-листа, Дата_и_время_получения_стоп-листа, Ключ_банка)
values (k2, z1, kl_bank); // z1 выбирается из дополнительных входных данных
3. Добавить стоп-карты.
// этот оператор повторяется в транзакции 50 раз
insert into Стоп-карта
(Номер_в_стоп-листе, Ключ_стоп-листа, Номер_карты, Дата_истечения_срока, ФИО_владельца, Дата_и_время_принятия_заявления, Признак_утраты)
values (i, k2, z2, z3, z4, z5, z6);
// z2, z3, z4, z5, z6 выбираются из дополнительных входных данных
6. Транзакция «Добавить карты для эмиссии» (запускается со станции оператора, объём дополнительных входных данных – 10240 байтов).
1. Найти ключ банка
select Ключ_банка f1 into kl_bank
from Банк
where БИК=Значение1;
2. Добавить записи в таблицу «Карта для эмиссии
// Этот оператор повторяется в транзакции 40 раз
insert into Карта_для_эмиссии
(Ключ_карты, Номер_карты, Дата_истечения_срока, ФИО_владельца, Платёжная_система, Тип_шаблона_обложки, Дата_и_время_поступления_заказа, Дата_и_время_выполнения_заказа, Признак_выполнения_заказа, Ключ_банка)
values (k3, z1, z2, z3, z4, z5, z6, NULL, NULL, kl_bank);
// z1, z2, z3, z4, z5, z6 выбираются из дополнительных входных данных
7. Транзакция «Проверка на присутствие в стоп-листе» (запускается с банкомата, объём дополнительных входных данных - 1024 байтов )
1. Поиск карты в стоп-листах
select COUNT(*) into сnt_sl
from Стоп-карта
where Номер_карты= Значение1;
8. Транзакция «Проверка на принадлежность к другому ПЦ» (запускается из транзакции № 7 «Проверка на присутствие в стоп-листе», объём дополнительных входных данных – 1024 байтов)
1.Чтение диапазонов кодов банков
select Диапазон_ИДбанков f1
from Другой_процессинговый_центр;
// для этого оператора select в транзакции открывается курсор
9. Транзакция «Включить запись в таблицу «Запрос» (запускается из транзакции № 8 «Проверка на принадлежность к другому ПЦ», объём дополнительных входных данных – 1024 байтов)
select Ключ_банка f1 into kl_bank_1 // ключ банка-эмитента
from Банк
where ИДбанка=Значение1;
// Значение1 – это первые 6 цифр в номере карты
select Ключ_банка f2 into kl_bank_2 // ключ банка-эквайера
from Банк
where ИДбанка=Значение2;
// Значение2 – это первые 6 цифр в номере банкомата
insert into Запрос