SAPфорум.RU
https://sapboard.ru/forum/

Строка поиска для ИНН в выписке MT940
https://sapboard.ru/forum/viewtopic.php?f=5&t=94453
Страница 1 из 1

Автор:  WillyWonka [ Ср, фев 22 2017, 13:53 ]
Заголовок сообщения:  Строка поиска для ИНН в выписке MT940

Впервые сталкиваюсь с созданием строки поиска, возможно, упустила какой-то нюанс.

Задача состоит в том, что нужно найти ИНН в выписке (формат MT940 с структурированным 86 полем) и подставить его в поле FEBEP-INFO1.
ИНН лежит в 86 поле в подстроке 60, в качестве разделителя используется знак ?
Настроила строку поиска ?60##########
Мэппинг отрабатывает корректо, т.е. если подать значение ?606025000620?618430?62?63? то мэппится значение 6025000620, что верно.
Но при загрузке выписки в поле FEBEP-INFO1 попадает значение 2500062084

Подскажите, пожалуйста, как заставить записывать значение после первого числа 60?

Автор:  darkduck [ Ср, фев 22 2017, 16:43 ]
Заголовок сообщения:  Re: Search string для поиска ИНН в выписке MT940

У Вас 60 в строке встречается 2 раза, а ? по умолчанию - любой символ. Поэтому при загрузке выписки строка отрабатывает 2 раза, и в значение поля записывается черт знает что. Чтобы искать именно ?, нужно перед ним поставить escape symbol \.
Попробуйте настроить строку поиска

\ -> (пусто)
? -> (пусто)
6 -> (пусто)
0 -> (пусто)
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #

Автор:  darkduck [ Пт, фев 24 2017, 10:53 ]
Заголовок сообщения:  Re: Строка поиска для ИНН в выписке MT940

Кстати, ИНН может быть еще и 11-значным. Вы про это думали?

Автор:  WillyWonka [ Вт, фев 28 2017, 15:41 ]
Заголовок сообщения:  Re: Строка поиска для ИНН в выписке MT940

Конечно подумали. Планировали создать к одной внешней операции 2 строки поиска для 10 символов в ИНН и 12 символов в ИНН для физлиц и ИП.
Попробовали настроить строку поиска, как вы советуете, система объединяет знаки \? в одном поле "Источник" и получается то же самое.
\? -> (пусто)
6 -> (пусто)
0 -> (пусто)
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #
# -> #

Примечательно, что с ИНН, которые начинаются на другие цифры (не 60) строка поиска не срабатывает вообще при загрузке, хотя при тесте мэппится как надо.
Написали user-exit, который просто берет все символы между ?60 и ?61

Автор:  darkduck [ Вт, фев 28 2017, 16:44 ]
Заголовок сообщения:  Re: Строка поиска для ИНН в выписке MT940

А Вы выписку загружаете как 86-структурированную или неструктурированную? Возможно, Ваша строка не отрабатывает, потому что при "структуризации" "?60" вообще выкидывается из содержимого. Тогда нужно искать просто 10- или 12-значные цифровые строки.

Автор:  WillyWonka [ Ср, мар 01 2017, 01:39 ]
Заголовок сообщения:  Re: Строка поиска для ИНН в выписке MT940

Загружаем как 86-структурированную.
Вы правы, похоже, причина именно в этом.
Если искать по цифровым строкам, то можем наткнуться на подстроку ?61, в которой хранится номер пп, который вполне может быть 10-значным.

Решили проблему user-exit'ом, который берет все цифры после ?60 и до ?61 (сколько бы их ни было) и кладет в FEBEP-INFO1

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/