Меню

Сортировать:

Новое Популярное
Обмен с ЭТРАН в режиме АСУ-АСУ (4)

Комментарий от  

Сергей Мокин

  |  18 июля 2017, 08:05

Наталья, спасибо за интересную статью.
Было бы интересно ознакомиться с вашим опытом взаимодействия с ЭТРАН в части расчёта провозной платы (Прейскурант № 10-01).
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Олег Точенюк

  |  13 июля 2017, 19:45

Иван Рыбкин 13 июля 2017, 12:46

Олег, добрый день. Если не трудно, напишите плз, какие возникают проблемы при использовании нового синтаксиса? ( не считая того , что надо использовать 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.
 
На самом деле старый метод написан не правильно, эквивалент нового метода должен быть таким:
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.
 
Как можно понять производительность при этом проседает, хотя написание кода более короткое и визуально воспринимается проще.
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Иван Рыбкин

  |  13 июля 2017, 12:46

Олег Точенюк 05 июля 2017, 15:43

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

Олег, добрый день. Если не трудно, напишите плз, какие возникают проблемы при использовании нового синтаксиса? ( не считая того , что надо использовать TRY..  ENTRY ).  Чисто практический интерес..
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Сергей Левченко

  |  13 июля 2017, 11:31

Олег Точенюк 04 июля 2017, 21:43

Ознакомить то оно конечно полезно, только в таком виде лучше бы не делать этого. А то ведь послушают вас и возьмут на вооружение, например предложенный вами последний пример:
 
* Старый метод доступа
READ TABLE itab_multi_comp INTO ls_comp WITH KEY kunnr = '123'.
WRITE: / ls_comp-ort01.
 
* Новый метод доступа
WRITE: / itab_multi_comp[ kunnr = '123' ]-ort01.
 
а потом плакать будут, окружающие, ну зато мне работы может подкинут :-) в перспективе, так как суть старого и нового методов различна и сравнивать их в таком виде очень не рекомендуется, а вы вот сравниваете и не понимаете в чем существенная разница.

Олег, лучше напиши какие могут быть проблемы. Воспитание учителей неблагодарный труд. :)
Вообше непонятно, зачем АБАПу новые операторы, если все "старые" языки пошли в библиотеки.
 
С уважением
Сергей
SAP Secrets. Интервью с Александром Гавриленко, консультантом SAP FI (1)

Комментарий от  

Андрей Буданов

  |  12 июля 2017, 21:38

Мария, спасибо за видео!
 
Планируется ли подобное видео о таком направлении, как SAP CRM?
Система управления электронной почтой (ERMS) на базе решения SAP CRM. Часть 1 (6)

Комментарий от  

Андрей Буданов

  |  12 июля 2017, 21:35

Олег Башкатов 20 июня 2017, 20:27

Андрей, спасибо за статью!
 
Проясните, пожалуйста, что Вы понимаете под клиентом в данной статье: это Дебитор/бизнес-партнер в CRM/ERP или это любой потенциальный клиент на рынке?

Олег, привет!
 
В статье под Клиентом подразумевается - любой потенциальный клиент на рынке. А вот уже на основании его обращения в компанию, которое представлено в системе SAP CRM как входящее письмо, может быть создана сущность "Деловой партнер (ДП)" в CRM. И как следствие дальнейшее взаимодействие с Клиентом будет выполняться уже в привязке к сущности "ДП".
Системы НСИ: Новый подход vs Классического подхода (33)

Комментарий от  

Александр Кузнецов

  |  12 июля 2017, 14:37

Статья интересная, но подразумеваемый в ней "новый подход" в ОАО "РЖД" используется с 2000 года ...
Перспективы развития систем НСИ. Основополагающие документы давно написаны - ГОСТ P 51725.(0-21),рекомендации  Р 50.5.(001-009),ГОСТ P 56214/ISO/TS 8000, ГОСТ P 56213/ISO/TS 29002, ГОСТ P ИСО 22745, а вот успешных внедрений с полноценным созданием открытых технических словарей  нет (по крайней мере не видел). Промышленных систем использующих математические алгоритмы (вероятностный поиск)  единицы. Большинство используют алгоритм Лёвенштайна и его модификации.
НСИ в составе которых имеются ФИО, координаты, адреса являются наиболее простыми.
Проблемные вопросы при внедрении проекта (рассматриваю справочник товаров). Основную беду при внедрении, вижу не в необходимости нормализации  (поскольку это  дело техники, времени и квалификации специалистов НСИ), а в необходимости согласования терминологической базы и последующем отстаивании позиций службой НСИ.
Примеры:
Что является комплектом, набором, восстановленной номенклатурой, отремонтированной, старогодней, агрегатом, индивидуальным заказом ... ?  
Со временем в компании появляется множество несвязанных организационно-распорядительных документов, которые оказывают косвенное влияние на правильность ведения НСИ и никак не согласовываются с причастными. Пример: порядок ведения инвестиционной программы,  предполагает жесткий регламент по срокам (при наличии рисков срыва сроков инвест. программы, качество данных уходит на второй план), стоимости заказа (происходит агрегация товара для обеспечения заказа через инвестиционный бюджет, рождается «чудо номенклатура»).    
Хотелось бы пообщаться с представителями организаций, у которых реализован параметрический (описаны свойства и характеристики оказываемых работ/услуги) справочник работ/услуг.
Системы НСИ: Новый подход vs Классического подхода (33)

Комментарий от  

Дмитрий Бычков

  |  12 июля 2017, 11:58

Не согласен с:
1. "Невозможно поддерживать и развивать фасетную классификацию всего справочника ТМЦ..." - более 1.5 млн. уникальных записей.
2. "...будет меняться и классификатор, и все позиции в нем". - Мы у себя реализовали некоторые из потребностей "бизнеса" и при этом ни одна позиция не поменялась.
Можно почитать на Wiki статью - СК-МТР
В Едином реестре российских программ для электронных вычислительных машин и баз данных № 7702178020
Методика создания варианта транзакции: транзакция SHD0 (12)

Комментарий от  

Олег Точенюк

  |  10 июля 2017, 13:11

Олег Точенюк 10 июля 2017, 13:04

Как вариант решения проблемы, нашел тут у себя создание системного варианта транзакции MBPM. Думаю в данном случае можно попробовать так тоже сделать.
 
===
Для этого запускаем стандартную транзакцию MBPM и по меню выбираем "Перейти к" - "Варианты" - "Сохранить как вариант" и попадаем в ведение вариантов как на рисунке MBPM.png.
 

 
Обратите внимание что вариант должен начинаться с CUS&, иначе ничего не получится. А дальше как обычно защищаем сам вариант и требуемое нам поле от изменений. В данном случае чтобы пользователи не могли запустить отчет с удалением данных. Сохраняем вариант. Система скажет, что вариант будет системным, соглашаемся с этим и затем будет выдано окно для ввода запроса на перенос варианта. Создаем запрос.
 
Затем надо задать это вариант для транзакции MBPM. Для этого идем в транзакцию SE93 - Ведение транзакций и там вводим код MBPM, как на рисунке ниже. Жмем изменение транзакции, кстати для этого ключ на объект получать не нужно. Систем спрашивает на каком языке буде ведение, выбираем на языке регистрации и дальше в поле "Запуск с вариантом" вносим наш вариант. Затем сохраняем транзакцию, само собой спросит запрос для переноса. Выбираем запрос созданный на предыдущем шаге и все... теперь транзакция MBPM будет запускаться по умолчанию с заблокированным для ввода полем "Немедленное удаление"

Единственное что возможно понадобиться сделать вариант транзакции, при этом вариант делать в манданте 000.
Методика создания варианта транзакции: транзакция SHD0 (12)

Комментарий от  

Олег Точенюк

  |  10 июля 2017, 13:04

Михаил Калябин 07 июля 2017, 15:19

Олег, большое спасибо!

Как вариант решения проблемы, нашел тут у себя создание системного варианта транзакции MBPM. Думаю в данном случае можно попробовать так тоже сделать.
 
===
Для этого запускаем стандартную транзакцию MBPM и по меню выбираем "Перейти к" - "Варианты" - "Сохранить как вариант" и попадаем в ведение вариантов как на рисунке MBPM.png.
 

 
Обратите внимание что вариант должен начинаться с CUS&, иначе ничего не получится. А дальше как обычно защищаем сам вариант и требуемое нам поле от изменений. В данном случае чтобы пользователи не могли запустить отчет с удалением данных. Сохраняем вариант. Система скажет, что вариант будет системным, соглашаемся с этим и затем будет выдано окно для ввода запроса на перенос варианта. Создаем запрос.
 
Затем надо задать это вариант для транзакции MBPM. Для этого идем в транзакцию SE93 - Ведение транзакций и там вводим код MBPM, как на рисунке ниже. Жмем изменение транзакции, кстати для этого ключ на объект получать не нужно. Систем спрашивает на каком языке буде ведение, выбираем на языке регистрации и дальше в поле "Запуск с вариантом" вносим наш вариант. Затем сохраняем транзакцию, само собой спросит запрос для переноса. Выбираем запрос созданный на предыдущем шаге и все... теперь транзакция MBPM будет запускаться по умолчанию с заблокированным для ввода полем "Немедленное удаление"
Методика создания варианта транзакции: транзакция SHD0 (12)

Комментарий от  

Михаил Калябин

  |  07 июля 2017, 15:19

Олег Точенюк 07 июля 2017, 12:13

Ну в общем глянул как там написано, в общем привет даже не знаю кому, индусам или не индусам, но транзакция вызывает при старте экран 100, а внутри него в BPO-логике, при первом входе, когда идет инициализация параметров работы и создаются графические элементы, внутри вызывается селекционный экран 1100 запроса ограничений. Поэтому SHD0 не видит селекционного экрана, а выдает только данные экрана 100, на котором и находится один несчастный TREE_CONTAINER который и предлагается для ведения. Так что тут похоже ловить нечего. Ну как вариант написать обертку вокруг данной транзакции и уже из нее вызывать BD87 с нужными параметрами. В общем придется типа покувыркаться, чтобы решать задачку.

Олег, большое спасибо!
Методика создания варианта транзакции: транзакция SHD0 (12)

Комментарий от  

Олег Точенюк

  |  07 июля 2017, 12:13

Михаил Калябин 06 июля 2017, 10:09

Олег, спасибо за ответ на пропавший вопрос.
Попробовал так, но сталкиваюсь с той же проблемой.Транзакция варианта создана

затем SHD0

и появляется первый экран транзакции.
В случае ММ01 после предварительного заполнения первого экрана и нажатия Enter появлялось окно настройки полей, как на рисунке 3 статьи: SHD0-3.png
Но для BD87 при нажатии на Enter реакции нет. Если в этот момент выйти из транзакции, появится окно без возможности делать настройки

Если перейти на следующий экран (F8), и затем выйти, то также нет возможности редактировать поля первого экрана

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

Ну в общем глянул как там написано, в общем привет даже не знаю кому, индусам или не индусам, но транзакция вызывает при старте экран 100, а внутри него в BPO-логике, при первом входе, когда идет инициализация параметров работы и создаются графические элементы, внутри вызывается селекционный экран 1100 запроса ограничений. Поэтому SHD0 не видит селекционного экрана, а выдает только данные экрана 100, на котором и находится один несчастный TREE_CONTAINER который и предлагается для ведения. Так что тут похоже ловить нечего. Ну как вариант написать обертку вокруг данной транзакции и уже из нее вызывать BD87 с нужными параметрами. В общем придется типа покувыркаться, чтобы решать задачку.
Методика создания варианта транзакции: транзакция SHD0 (12)

Комментарий от  

Михаил Калябин

  |  06 июля 2017, 10:09

Олег Точенюк 29 июня 2017, 12:53

Был вопрос, но куда-то пропал по транзакциям типа BD87, там не получалось настроить свой вариант. Для таких транзакций последовательность действий чуть другая, для примера это транзакция BD87 - Монитор статуса сообщений ALE, тут сначала идем в создание транзакции варианта. Вводим там код варианта, который не существует и сохраняем транзакцию:
 

 
При сохранении будет выдано сообщение что вариант не существует, но так как это сообщение типа W, то нажав ввод, таки сохраняем транзакцию, а вот после этого идем уже в создание самого варианта в SHD0:
 

 
А дальше уже все как было описано выше вроде как работает.

Олег, спасибо за ответ на пропавший вопрос.
Попробовал так, но сталкиваюсь с той же проблемой.Транзакция варианта создана

затем SHD0

и появляется первый экран транзакции.
В случае ММ01 после предварительного заполнения первого экрана и нажатия Enter появлялось окно настройки полей, как на рисунке 3 статьи: SHD0-3.png
Но для BD87 при нажатии на Enter реакции нет. Если в этот момент выйти из транзакции, появится окно без возможности делать настройки

Если перейти на следующий экран (F8), и затем выйти, то также нет возможности редактировать поля первого экрана

 
Если действовать указанным образом можно, например, деактивировать функции и кнопки, но настроить экраны мне не удалось.
 
Как говорится, что я делаю не так?
Интегрированного управления в российских цепочках поставок нет или К чёрту ваши ERP !!! (2)

Комментарий от  

Кирилл Малыгин

  |  05 июля 2017, 16:27

Добрый день, есть более подробная информация о Collaborative Master Data?
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Леонид Мартынов

  |  05 июля 2017, 16:15

Олег Точенюк 05 июля 2017, 15:40

А очно вы себе это как представляете, я к вам в гости или вы ко мне? Комментарии к статье как бы и предназначены для общения и высказывания своего мнения по прочитанному. Не очень понимаю в чем была проблема?  Ну добавьте в следующий раз в конце статьи, что просьба по статье не высказываться, раз это сильно почему-то задевает.
 
По поводу решил программист, согласитесь для того, чтобы что-то решить, нужно представлять последствия своих решений (например использовать BAPI или вкатить прямой апдейт таблиц). Из написанного вами получается, что последствий никаких, это просто новый, более компактный метод записи кода. Я правильно понял донесенную вами мысль?

Не совсем =) пример был рассчитан на "показать пример" - это не руководство так делать, писать в таблице конечно)) "преступление"...хотя даже бывает и он необходим))) в экстренно оперативных случаях
 

Спасибо за ваше мнение!
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Леонид Мартынов

  |  05 июля 2017, 16:14

Олег Точенюк 05 июля 2017, 15:43

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

Верю вам! =) Я не сомневаюсь в вашем опыте, я тоже много всего видел, и конечно проблема оптимизации очень неприятная, особенно выправление.....тут я не могу с вами не согласиться, многие например не только забывают о хеширвоанных и сортированных таблицах, но и не используют банальный двоичный поиск. Поверьте, просто , что цель была совсем другая, кто касается примеров, может они и не удачные, соглашусь (и в след раз постараюсь подобрать более жизненные). Удачного вам вечера!
Для чего служит Налоговая категория счета Главной Книги? (3)

Комментарий от  

Пётр Ромащенко

  |  05 июля 2017, 16:07

полезный материал, спасибо!
bilimba
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Олег Точенюк

  |  05 июля 2017, 15:43

Леонид Мартынов 05 июля 2017, 06:00

Удивляюсь только одному, сколь много людей  готовы выразить  многозначность своего ЭГО и показать свой великолепный ум, на таком мелком материале....без зазрения совести уверенные, что у других нет возможности отличить черное от белое, или скажем доступ к одному полю и чтение в структуру....беда!

Вы даже не представляете какая беда... уже попал на любителей нового синтаксиса, оказывается, таки не понимают.
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Олег Точенюк

  |  05 июля 2017, 15:40

Леонид Мартынов 05 июля 2017, 05:44

я лишь показал примеры использования новых моделей, как их лучше применять решит каждый в зависимости от задачи, не правда ли? Использовать ли первую (скажем с лог. поиском) или простую вторую конструкцию - решит программист,не было целью обучать программированию, целью было продемонстрировать. Если вы готовы судить о том, чтО я понимаю , а что нет то мне жаль, что вы готовы это делать заочно. Еще раз повторюсь - цель показать примеры!
 
Тем не менее спасибо за комментарий =)

А очно вы себе это как представляете, я к вам в гости или вы ко мне? Комментарии к статье как бы и предназначены для общения и высказывания своего мнения по прочитанному. Не очень понимаю в чем была проблема?  Ну добавьте в следующий раз в конце статьи, что просьба по статье не высказываться, раз это сильно почему-то задевает.
 
По поводу решил программист, согласитесь для того, чтобы что-то решить, нужно представлять последствия своих решений (например использовать BAPI или вкатить прямой апдейт таблиц). Из написанного вами получается, что последствий никаких, это просто новый, более компактный метод записи кода. Я правильно понял донесенную вами мысль?
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

Комментарий от  

Леонид Мартынов

  |  05 июля 2017, 08:32

Коллеги, в любом случае спасибо за проявленный интерес и критические замечания, думаю, что я учту это, если буду писать что-то подобное еще в будущем. Как я уже писал, мне было любопытно рассказать о таких конструкциях (на мой субъективный взгляд редких). Конечно же, как и применять лучше, где и в каком случае, не входило в планы, использованные примеры, служили лишь примерами. Я буду рад увидеть ваши статьи на эту тему, и готов конечно поучиться и методам применения best practice и в целом у вас! Я всегда открыт к новому и обучению. Всем творческих успехов, спасибо!