Станьте участником SAPLAND и получите доступ к самым интересным публикациям SAPPRO
Зарегистрироваться
К тому же для конструкции:
WRITE: /
itab_multi_comp[ kunnr = '123' ]-ort01.
нельзя будет забывать писать
TRY.
CATCH CX_SY_ITAB_LINE_NOT_FOUND.
ENDTRY.
Иначе, приведет к неминуемому дампу, если такой записи во внутренней таблице нет.
Статья интересная, но подразумеваемый в ней "новый подход" в ОАО "РЖД" используется с 2000 года ...
Перспективы развития систем НСИ. Основополагающие документы давно написаны - ГОСТ P 51725.(0-21),рекомендации Р 50.5.(001-009),ГОСТ P 56214/ISO/TS 8000, ГОСТ P 56213/ISO/TS 29002, ГОСТ P ИСО 22745, а вот успешных внедрений с полноценным созданием открытых технических словарей нет (по крайней мере не видел). Промышленных систем использующих математические алгоритмы (вероятностный поиск) единицы. Большинство используют алгоритм Лёвенштайна и его модификации.
НСИ в составе которых имеются ФИО, координаты, адреса являются наиболее простыми.
Проблемные вопросы при внедрении проекта (рассматриваю справочник товаров). Основную беду при внедрении, вижу не в необходимости нормализации (поскольку это дело техники, времени и квалификации специалистов НСИ), а в необходимости согласования терминологической базы и последующем отстаивании позиций службой НСИ.
Примеры:
Что является комплектом, набором, восстановленной номенклатурой, отремонтированной, старогодней, агрегатом, индивидуальным заказом ... ?
Со временем в компании появляется множество несвязанных организационно-распорядительных документов, которые оказывают косвенное влияние на правильность ведения НСИ и никак не согласовываются с причастными. Пример: порядок ведения инвестиционной программы, предполагает жесткий регламент по срокам (при наличии рисков срыва сроков инвест. программы, качество данных уходит на второй план), стоимости заказа (происходит агрегация товара для обеспечения заказа через инвестиционный бюджет, рождается «чудо номенклатура»).
Хотелось бы пообщаться с представителями организаций, у которых реализован параметрический (описаны свойства и характеристики оказываемых работ/услуги) справочник работ/услуг.
Не согласен с:
1. "Невозможно поддерживать и развивать фасетную классификацию всего справочника ТМЦ..." - более 1.5 млн. уникальных записей.
2. "...будет меняться и классификатор, и все позиции в нем". - Мы у себя реализовали некоторые из потребностей "бизнеса" и при этом ни одна позиция не поменялась.
Можно почитать на Wiki статью - СК-МТР
В Едином реестре российских программ для электронных вычислительных машин и баз данных № 7702178020
Да я просто не знаю, как бы статья не моя, наверное лучше чтобы автор продолжил раскрывать данную тему, ну как мне кажется.
Хорошо, буквально один пример, из приведенного выше, который я использовал в самом начале.
* Старый метод доступа
READ TABLE itab_multi_comp INTO ls_comp WITH KEY kunnr = '123'.
WRITE: / ls_comp-ort01.
* Новый метод доступа
WRITE: / itab_multi_comp[ kunnr = '123' ]-ort01.
На самом деле старый метод написан не правильно, эквивалент нового метода должен быть таким:
READ TABLE itab_multi_comp INTO ls_comp WITH KEY kunnr = '123' TRANSPORTING ort01.
т.е. вы фактически читаете значение одного поля. К чему это ведет с точки зрения производительности. В старой конструкции обычно читали всю запись, а дальше фактически вы могли работать со всеми полями считанной записи. В новой методике многие начинать писать так:
WRITE: /
itab_multi_comp[ kunnr = '123' ]-ort01,
itab_multi_comp[ kunnr = '123' ]-ort02,
itab_multi_comp[ kunnr = '123' ]-ort03,
itab_multi_comp[ kunnr = '123' ]-ort04.
Абап не умеет оптимизировать такие конструкцию, фактически это приводит к 4 последовательными чтениям т.е. в старых терминах можно считать что будет выполняь следующий код:
READ TABLE itab_multi_comp INTO:
ls_comp WITH KEY kunnr = '123' TRANSPORTING ort01,
ls_comp WITH KEY kunnr = '123' TRANSPORTING ort02,
ls_comp WITH KEY kunnr = '123' TRANSPORTING ort03,
ls_comp WITH KEY kunnr = '123' TRANSPORTING ort04.
Как можно понять производительность при этом проседает, хотя написание кода более короткое и визуально воспринимается проще.
Екатерина, здравствуйте,
Могли бы Вы уточнить, к какому решению относятся ракурсы ZTEDT_DOCTYPE и ZTEDT_PROCEDURE. Как я понимаю, эта часть настроек не относится к SAP-стандартным.
Также добавлю, что возможность активации FIN_LOC_CI_41 FI, LO Localization Topics for Russia 8 существет только для версий старше EHP 7 SP4 и EHP 6 SP12
Наталья, спасибо за интересную статью.
Было бы интересно ознакомиться с вашим опытом взаимодействия с ЭТРАН в части расчёта провозной платы (Прейскурант № 10-01).
Олег, добрый день. Если не трудно, напишите плз, какие возникают проблемы при использовании нового синтаксиса? ( не считая того , что надо использовать TRY.. ENTRY ). Чисто практический интерес..
Вы даже не представляете какая беда... уже попал на любителей нового синтаксиса, оказывается, таки не понимают.
Ознакомить то оно конечно полезно, только в таком виде лучше бы не делать этого. А то ведь послушают вас и возьмут на вооружение, например предложенный вами последний пример:
* Старый метод доступа
READ TABLE itab_multi_comp INTO ls_comp WITH KEY kunnr = '123'.
WRITE: / ls_comp-ort01.
* Новый метод доступа
WRITE: / itab_multi_comp[ kunnr = '123' ]-ort01.
а потом плакать будут, окружающие, ну зато мне работы может подкинут :-) в перспективе, так как суть старого и нового методов различна и сравнивать их в таком виде очень не рекомендуется, а вы вот сравниваете и не понимаете в чем существенная разница.
Андрей, спасибо за статью!
Проясните, пожалуйста, что Вы понимаете под клиентом в данной статье: это Дебитор/бизнес-партнер в CRM/ERP или это любой потенциальный клиент на рынке?
Как вариант решения проблемы, нашел тут у себя создание системного варианта транзакции MBPM. Думаю в данном случае можно попробовать так тоже сделать.
===
Для этого запускаем стандартную транзакцию MBPM и по меню выбираем "Перейти к" - "Варианты" - "Сохранить как вариант" и попадаем в ведение вариантов как на рисунке MBPM.png.
Обратите внимание что вариант должен начинаться с CUS&, иначе ничего не получится. А дальше как обычно защищаем сам вариант и требуемое нам поле от изменений. В данном случае чтобы пользователи не могли запустить отчет с удалением данных. Сохраняем вариант. Система скажет, что вариант будет системным, соглашаемся с этим и затем будет выдано окно для ввода запроса на перенос варианта. Создаем запрос.
Затем надо задать это вариант для транзакции MBPM. Для этого идем в транзакцию SE93 - Ведение транзакций и там вводим код MBPM, как на рисунке ниже. Жмем изменение транзакции, кстати для этого ключ на объект получать не нужно. Систем спрашивает на каком языке буде ведение, выбираем на языке регистрации и дальше в поле "Запуск с вариантом" вносим наш вариант. Затем сохраняем транзакцию, само собой спросит запрос для переноса. Выбираем запрос созданный на предыдущем шаге и все... теперь транзакция MBPM будет запускаться по умолчанию с заблокированным для ввода полем "Немедленное удаление"
Олег, большое спасибо!
Ну в общем глянул как там написано, в общем привет даже не знаю кому, индусам или не индусам, но транзакция вызывает при старте экран 100, а внутри него в BPO-логике, при первом входе, когда идет инициализация параметров работы и создаются графические элементы, внутри вызывается селекционный экран 1100 запроса ограничений. Поэтому SHD0 не видит селекционного экрана, а выдает только данные экрана 100, на котором и находится один несчастный TREE_CONTAINER который и предлагается для ведения. Так что тут похоже ловить нечего. Ну как вариант написать обертку вокруг данной транзакции и уже из нее вызывать BD87 с нужными параметрами. В общем придется типа покувыркаться, чтобы решать задачку.
Олег, спасибо за ответ на пропавший вопрос.
Попробовал так, но сталкиваюсь с той же проблемой.Транзакция варианта создана
затем SHD0
и появляется первый экран транзакции.
В случае ММ01 после предварительного заполнения первого экрана и нажатия Enter появлялось окно настройки полей, как на рисунке 3 статьи: SHD0-3.png
Но для BD87 при нажатии на Enter реакции нет. Если в этот момент выйти из транзакции, появится окно без возможности делать настройки
Если перейти на следующий экран (F8), и затем выйти, то также нет возможности редактировать поля первого экрана
Если действовать указанным образом можно, например, деактивировать функции и кнопки, но настроить экраны мне не удалось.
Как говорится, что я делаю не так?
Был вопрос, но куда-то пропал по транзакциям типа BD87, там не получалось настроить свой вариант. Для таких транзакций последовательность действий чуть другая, для примера это транзакция BD87 - Монитор статуса сообщений ALE, тут сначала идем в создание транзакции варианта. Вводим там код варианта, который не существует и сохраняем транзакцию:
При сохранении будет выдано сообщение что вариант не существует, но так как это сообщение типа W, то нажав ввод, таки сохраняем транзакцию, а вот после этого идем уже в создание самого варианта в SHD0:
А дальше уже все как было описано выше вроде как работает.
Комментарий от
Дмитрий Бычков
| 27 июля 2017, 10:21
Кирилл Малыгин 21 июля 2017, 16:29
Спасибо!
OTD хорошая идея. Возможно новый виток развития принесет "интернет вещей".
Какие объекты НСИ ведет служба в РЖДС?