Меню

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

Новое Популярное
Опыт построения системы планирования и учёта производственной деятельности на базе SAP ERP (4)

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

Владимир Гридасов

  |  04 декабря 2014, 09:09

Интересный отчет о стандартной ERP.
А есть ли опыт интеграции с MES или PDM  системами. Интересно было бы почитать какие задачи были поставлены и как они решались.
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  01 декабря 2014, 23:22

Денис Озорнов 25 ноября 2014, 12:21

прошу прощения не корректно скопировал.
выборка из мкпф конечно же по полному первичному ключу
  SELECT SINGLE *
    INTO mkpf
    FROM mkpf
    WHERE mblnr  = lmblnr
      and mjahr = lmjahr.

Да это понятно, доберусь до системы с ключом разработчика, приведу свой пример. Пока негде к сожалению.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  25 ноября 2014, 12:23

Александр Дублин 24 ноября 2014, 11:27

"Я Пастернака не читал, но осуждаю...
...
И как мать, и как женщина ...."

Скажите, пожалуйста, а вы всегда, когда вам сказать по существу нечего, начинаете известных людей цитировать, что бы скрыть отсутствие аргументов?
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  25 ноября 2014, 12:21

Денис Озорнов 25 ноября 2014, 11:57

Тестовый пример, исключительно для иллюстрации,  создает движение ММ, после чего проверяет наличие созданного документа в MKPF.
Привожу пример с асинхронным сохранением, опустив заполнение параметров BAPI. В таком виде выдает  результат "не ок". При замене на commit work and wait - выдает ok.
 
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header  = lmmdocheader
      goodsmvt_code    = lgmcode
      testrun          = abap_false
    IMPORTING
      goodsmvt_headret = lmmdocheader_ret
      materialdocument = lmblnr
      matdocumentyear  = lmjahr
    TABLES
      goodsmvt_item    = lt_mmdocitems
      return           = lt_bapiret.
 

  COMMIT WORK.
 
  SELECT SINGLE *
    INTO mkpf
    FROM mkpf
    WHERE mblnr = lmblnr.
 
  IF sy-subrc = 0.
    WRITE: / 'ok'.
  ELSE.
    WRITE: / 'не ok'.
  ENDIF.
 
WRITE:/ lmblnr.

прошу прощения не корректно скопировал.
выборка из мкпф конечно же по полному первичному ключу
  SELECT SINGLE *
    INTO mkpf
    FROM mkpf
    WHERE mblnr  = lmblnr
      and mjahr = lmjahr.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  25 ноября 2014, 11:57

Олег Точенюк 25 ноября 2014, 00:12

2. Код в студию, что вы и как проверяли. Если боитесь за авторство схематично блоки кода.

Тестовый пример, исключительно для иллюстрации,  создает движение ММ, после чего проверяет наличие созданного документа в MKPF.
Привожу пример с асинхронным сохранением, опустив заполнение параметров BAPI. В таком виде выдает  результат "не ок". При замене на commit work and wait - выдает ok.
 
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header  = lmmdocheader
      goodsmvt_code    = lgmcode
      testrun          = abap_false
    IMPORTING
      goodsmvt_headret = lmmdocheader_ret
      materialdocument = lmblnr
      matdocumentyear  = lmjahr
    TABLES
      goodsmvt_item    = lt_mmdocitems
      return           = lt_bapiret.
 

  COMMIT WORK.
 
  SELECT SINGLE *
    INTO mkpf
    FROM mkpf
    WHERE mblnr = lmblnr.
 
  IF sy-subrc = 0.
    WRITE: / 'ok'.
  ELSE.
    WRITE: / 'не ok'.
  ENDIF.
 
WRITE:/ lmblnr.
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  25 ноября 2014, 00:12

Денис Озорнов 24 ноября 2014, 16:28

Это я за просто так вывел косяки в вашей заметке. Вы же на это не смогли привести ни одного аргумента.
1) Вы так и не сказали , в каком месте я не правильно прочитал хелп, упомянув при этом что "место правильное, но понимаю я его не правильно"
2) пример из вашей статьи я воспроизвел с COMMIT WORK AND WAIT. Все работает как часы согласно хелпа.
3) вы сделали выводы о том как я работаю , приписав мне слова, которых я не говорил (начиная о сферических кэшах(при том, что я дал ссылку на конкретную статью об оракле) и заканчивая выводами о моем стиле программирования, при том что не видели не единой строки моего кода)
4) Чего стоит ваш пассаж ниже в камменте о хэш-табле, когда вы как-то незаметно начинаете говорить о БД, не смотря на то что речь шла именно о хэш-табле, т.е. объекте которого в БД просто нет.
 
Прекрасный показатель вашего уровня дискуссий и ваших статей\книг и лекций.
 
PS: по поводу отсылки к Василию Ковальскому: я вообще в экстазе. Так и представляю, как Василий, читая курс BC414 на космодаминской набережной, долго рассказывает то, как изложено в хелпе и курсе, а потом на вопрос слушателя "А вот Точенюк в своей книге и статьях говорит, что  синхронное обновление в хелпе определено не верно" удивленно смотрит на вопрошающего.
Ага.

2. Код в студию, что вы и как проверяли. Если боитесь за авторство схематично блоки кода.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  24 ноября 2014, 16:28

Олег Точенюк 23 ноября 2014, 20:35

За бесплатно - лично для вас НЕТ. Учите английский и матчасть. Сторону копания я вам указал, дальше вопрос закрыт :-)

Это я за просто так вывел косяки в вашей заметке. Вы же на это не смогли привести ни одного аргумента.
1) Вы так и не сказали , в каком месте я не правильно прочитал хелп, упомянув при этом что "место правильное, но понимаю я его не правильно"
2) пример из вашей статьи я воспроизвел с COMMIT WORK AND WAIT. Все работает как часы согласно хелпа.
3) вы сделали выводы о том как я работаю , приписав мне слова, которых я не говорил (начиная о сферических кэшах(при том, что я дал ссылку на конкретную статью об оракле) и заканчивая выводами о моем стиле программирования, при том что не видели не единой строки моего кода)
4) Чего стоит ваш пассаж ниже в камменте о хэш-табле, когда вы как-то незаметно начинаете говорить о БД, не смотря на то что речь шла именно о хэш-табле, т.е. объекте которого в БД просто нет.
 
Прекрасный показатель вашего уровня дискуссий и ваших статей\книг и лекций.
 
PS: по поводу отсылки к Василию Ковальскому: я вообще в экстазе. Так и представляю, как Василий, читая курс BC414 на космодаминской набережной, долго рассказывает то, как изложено в хелпе и курсе, а потом на вопрос слушателя "А вот Точенюк в своей книге и статьях говорит, что  синхронное обновление в хелпе определено не верно" удивленно смотрит на вопрошающего.
Ага.
Заметки старого АБАПника (46)

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

Александр Дублин

  |  24 ноября 2014, 11:27

Олег Точенюк 23 ноября 2014, 18:55

Саша он не будет читать, он английский знает... а я его не знаю, поэтому приходится все что прочитано проверять на практике :-)

"Я Пастернака не читал, но осуждаю...
...
И как мать, и как женщина ...."
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  24 ноября 2014, 01:22

Денис Озорнов 23 ноября 2014, 20:47

На создаваемый - естественно не будет.
И кстати говоря, я совершенно спокойно могу ставить блокировки на не существующий в базе объект.
И соответственно у вас опять в мануале чушь написана: вы предлагаете с помощью установки блока проверить, а создался ли этот док, при том, что при его создании как раз блокировки не будет вообще, а система на не существующие номера блокировки ставить позволяет.
Для хранения блокировок и их чтения\записи используются си-щные функции ядра. Поэтому БД там не читается. Вам исходник приведенного мной ФМ кинуть, если вы не в силах его посмотреть в системе сами?

Убедили ставьте. Устал знаете ли, поэтому ушел.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:59

Олег Точенюк 23 ноября 2014, 20:33

1. А с чего вы решили что я там в примерах да еще на разных системах, с разным количеством пользователей, а записи точно в кэще будут, потому что они наиболее частыми оказались? Не ну опять же не вопрос, теоретизируйте дальше, у меня практические выкладки и проверены они на разных системах с разными интервалами выполнения запросов. Но для вас это ни что. Я вообще-то вас не убеждаю.
 
3. Ну выражаясь вашими словами, мне за это лично вы не платите,поэтому не очень понимаю почему я вам обязан что-то объяснять так чтобы вы именно поняли. Я и так достаточно за бесплатно вас проконсультировал, вы считаете что я пишу ерунду, еще десяток людей который участвовали в написании книги тоже несут пургу. Ну дальше как бы смысла продолжать. Кстати про описанную ниже функцию чтения записей блокирования для проверки объектов, это пять... вы даже не очень понимаете сами что предлагаете, ну да это не важно вы же я так понял прожженный абапер. Любитель циклических вызовов разных ФМ-ов. Не возражаю, пишите и дальше в таком же духе. Да в и вообще оптимизация вещь вредная, кому не хватает купят сервер по мощнее, базу побыстрее и т.д.

Про кэш.Я пытался на таком простом примере показать качество вашего текста. Вы не описываете условия проведения примеров. Есть научный метод(погуглите что ли): полностью описывайте условия эксперимента, что бы при воспроизведении в др. лабах сходились его результаты.
 
Т.е. все в итоге как и остальное у вас "хелп не правильный, я знаю лучше". Ок. знайте. Только другим не надо впаривать свои кривые знания. Я думаю, те кто читали эту дискуссию все про вас поняли. От вас не поступило ни одного потвержденного документацией  аргумента, только хамство в итоге
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:47

Олег Точенюк 23 ноября 2014, 20:25

Ну что вам сказать... с чего вы решили что блокировка на создаваемый объект будет в буфере блокирования при создании записи? В справке прочитали? А при изменении, ну замерьте что быстрее будет установка/снятие блокировки или чтение таблицы? Вы кстати ее как читать будете? В цикле пока там запись не пропадет? Успехов... так сказать.

На создаваемый - естественно не будет.
И кстати говоря, я совершенно спокойно могу ставить блокировки на не существующий в базе объект.
И соответственно у вас опять в мануале чушь написана: вы предлагаете с помощью установки блока проверить, а создался ли этот док, при том, что при его создании как раз блокировки не будет вообще, а система на не существующие номера блокировки ставить позволяет.
Для хранения блокировок и их чтения\записи используются си-щные функции ядра. Поэтому БД там не читается. Вам исходник приведенного мной ФМ кинуть, если вы не в силах его посмотреть в системе сами?
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:41

Олег Точенюк 23 ноября 2014, 20:33

1. А с чего вы решили что я там в примерах да еще на разных системах, с разным количеством пользователей, а записи точно в кэще будут, потому что они наиболее частыми оказались? Не ну опять же не вопрос, теоретизируйте дальше, у меня практические выкладки и проверены они на разных системах с разными интервалами выполнения запросов. Но для вас это ни что. Я вообще-то вас не убеждаю.
 
3. Ну выражаясь вашими словами, мне за это лично вы не платите,поэтому не очень понимаю почему я вам обязан что-то объяснять так чтобы вы именно поняли. Я и так достаточно за бесплатно вас проконсультировал, вы считаете что я пишу ерунду, еще десяток людей который участвовали в написании книги тоже несут пургу. Ну дальше как бы смысла продолжать. Кстати про описанную ниже функцию чтения записей блокирования для проверки объектов, это пять... вы даже не очень понимаете сами что предлагаете, ну да это не важно вы же я так понял прожженный абапер. Любитель циклических вызовов разных ФМ-ов. Не возражаю, пишите и дальше в таком же духе. Да в и вообще оптимизация вещь вредная, кому не хватает купят сервер по мощнее, базу побыстрее и т.д.

Я попробовал предлагаемый вами пример чтения из MKPF после создания документа ММ. У меня все прочиталось согласно хелпу по commit work and wait. Что я делаю не так?
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:39

Олег Точенюк 23 ноября 2014, 20:25

Ну что вам сказать... с чего вы решили что блокировка на создаваемый объект будет в буфере блокирования при создании записи? В справке прочитали? А при изменении, ну замерьте что быстрее будет установка/снятие блокировки или чтение таблицы? Вы кстати ее как читать будете? В цикле пока там запись не пропадет? Успехов... так сказать.

Читать что? Вы не знаете как хранятся блокировки в базе? Это стандартный модуль почтению блокировки. Он работает быстрее чем 2 операции: установка и снятие. Замерьте уже тем самым se30 и sat
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  23 ноября 2014, 20:35

Денис Озорнов 23 ноября 2014, 20:09

Т.е. ответить на вопрос "что же именно я понял не правильно?" вы не в состоянии? Ок. Так и зафиксируем. Объяснить - не способны.

За бесплатно - лично для вас НЕТ. Учите английский и матчасть. Сторону копания я вам указал, дальше вопрос закрыт :-)
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  23 ноября 2014, 20:33

Денис Озорнов 23 ноября 2014, 20:09

1) Еще раз. Не бесконечный кэш. В кэше остаются данные которые читаются чаще всего. Прочитали строку А при поиске с индексом 5 раз - Она осталась в кэше. прочитали ту же строку но с поиском в фуллскане - она все равно останется, как часто читаемая.
3) Т.е. так и записываем объяснить что же я не правильно понял в хелпе - вы не можете.

1. А с чего вы решили что я там в примерах да еще на разных системах, с разным количеством пользователей, а записи точно в кэще будут, потому что они наиболее частыми оказались? Не ну опять же не вопрос, теоретизируйте дальше, у меня практические выкладки и проверены они на разных системах с разными интервалами выполнения запросов. Но для вас это ни что. Я вообще-то вас не убеждаю.
 
3. Ну выражаясь вашими словами, мне за это лично вы не платите,поэтому не очень понимаю почему я вам обязан что-то объяснять так чтобы вы именно поняли. Я и так достаточно за бесплатно вас проконсультировал, вы считаете что я пишу ерунду, еще десяток людей который участвовали в написании книги тоже несут пургу. Ну дальше как бы смысла продолжать. Кстати про описанную ниже функцию чтения записей блокирования для проверки объектов, это пять... вы даже не очень понимаете сами что предлагаете, ну да это не важно вы же я так понял прожженный абапер. Любитель циклических вызовов разных ФМ-ов. Не возражаю, пишите и дальше в таком же духе. Да в и вообще оптимизация вещь вредная, кому не хватает купят сервер по мощнее, базу побыстрее и т.д.
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  23 ноября 2014, 20:25

Денис Озорнов 23 ноября 2014, 20:21

И это я еще не упомянул про ваш вредный совет использовать установку-снятие блокировки, вместо простого вызова ENQUEUE_READ

Ну что вам сказать... с чего вы решили что блокировка на создаваемый объект будет в буфере блокирования при создании записи? В справке прочитали? А при изменении, ну замерьте что быстрее будет установка/снятие блокировки или чтение таблицы? Вы кстати ее как читать будете? В цикле пока там запись не пропадет? Успехов... так сказать.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:21

Олег Точенюк 23 ноября 2014, 18:50

1. Не вопрос. Про сферический кэш СУБД убедили, он бесконечный и в нем все остается.
 
2. Не вопрос, как раза если задача утилитарная, то и опыт ее экстраполируется на другие утилитарные задачи. Этот опыт и рекомендации и описаны. Применять их или нет, ваше право.
 
3. Тоже не вопрос, пребывайте и дальше в своих заблуждениях, опровергается это очень просто тестовым примером, минут за 30. Проводка документов ММ через стандартную BAPI, с последующим чтением проведенного документа. Что и описано в примерах. Для вас это не убедительно, опять же ваше право. Я это проверил практически, вы чисто теоретически прочитав английский курс/справку и не поняв что там написано, пытаетесь меня убедить в обратном. Ну тоже не вопрос, считайте и дальше что вы правильно поняли написанное в курсе/справке.

И это я еще не упомянул про ваш вредный совет использовать установку-снятие блокировки, вместо простого вызова ENQUEUE_READ
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:09

Олег Точенюк 23 ноября 2014, 18:50

Ну зачем же мне приводить вашу же ссылку. Ссылка правильная, а вот что в ней написано вы понимаете не правильно. Оставайтесь в своем заблуждении и далее.

Т.е. ответить на вопрос "что же именно я понял не правильно?" вы не в состоянии? Ок. Так и зафиксируем. Объяснить - не способны.
Заметки старого АБАПника (46)

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

Денис Озорнов

  |  23 ноября 2014, 20:09

Олег Точенюк 23 ноября 2014, 18:50

1. Не вопрос. Про сферический кэш СУБД убедили, он бесконечный и в нем все остается.
 
2. Не вопрос, как раза если задача утилитарная, то и опыт ее экстраполируется на другие утилитарные задачи. Этот опыт и рекомендации и описаны. Применять их или нет, ваше право.
 
3. Тоже не вопрос, пребывайте и дальше в своих заблуждениях, опровергается это очень просто тестовым примером, минут за 30. Проводка документов ММ через стандартную BAPI, с последующим чтением проведенного документа. Что и описано в примерах. Для вас это не убедительно, опять же ваше право. Я это проверил практически, вы чисто теоретически прочитав английский курс/справку и не поняв что там написано, пытаетесь меня убедить в обратном. Ну тоже не вопрос, считайте и дальше что вы правильно поняли написанное в курсе/справке.

1) Еще раз. Не бесконечный кэш. В кэше остаются данные которые читаются чаще всего. Прочитали строку А при поиске с индексом 5 раз - Она осталась в кэше. прочитали ту же строку но с поиском в фуллскане - она все равно останется, как часто читаемая.
3) Т.е. так и записываем объяснить что же я не правильно понял в хелпе - вы не можете.
Заметки старого АБАПника (46)

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

Олег Точенюк

  |  23 ноября 2014, 18:55

Александр Дублин 23 ноября 2014, 00:55

Так почитайте :-)

Саша он не будет читать, он английский знает... а я его не знаю, поэтому приходится все что прочитано проверять на практике :-)