Автор Тема: Вызов 2-х БАПИшек в одной транзакции (контексте)  (Прочитано 15567 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Вообщем ситуация такая: была (и есть  ;-) ) ФМ-ка в которую передавались список позиций для проводки и производился вызов

Код: You are not allowed to view links. Register or Login
IF gtitem[] IS NOT INITIAL.
     CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
       ......
      TABLES
        goodsmvt_item    = gitem
        return           = gt_bapiret2.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
....
Теперь приходится разделять данную ФМ на 2 цикла с вызовом BAPI_GOODSMVT_CREATE  см. You are not allowed to view links. Register or Login,
так вот как бы сделать так что бы если в 2-вой части произошла (при втором вызове BAPI_GOODSMVT_CREATE ), отменялись изменения (создание документов материал) сделанные при первом вызове?

Достаточно ли будет только после обоих вызовов сделать
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' или еще какие то телодвижения нужны?

Где то слышал что есть конструкция, которая позволяет запускать ФМ, транзакции и т.д.
в контексте одной LUW?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Пока сделал после вызова обоих форм
Код: You are not allowed to view links. Register or Login
  IF err = 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    RAISE er_gm.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'.
  ENDIF.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Что никто не знает?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Что никто не знает?
Данная ФМ CALL FUNCTION 'BAPI_GOODSMVT_CREATE', не является повторно вызываемой, так что никак!

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
Данная ФМ CALL FUNCTION 'BAPI_GOODSMVT_CREATE', не является повторно вызываемой, так что никак!

А что значит
Цитировать
повторно вызываемой
?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
так вот как бы сделать так что бы если в 2-вой части произошла (при втором вызове BAPI_GOODSMVT_CREATE ), отменялись изменения (создание документов материал) сделанные при первом вызове?
Паганель, в следующий раз, когда будешь задавать вопрос, представь, что читать его будет не телепат... ;D ;D ;D
Если я правильно понял, то внутри ФМ у тебя организованы 2 цикла по внутренним таблицам, в каждом из которых осуществляются массовые проводки движения материалов посредством указанного BAPI. Вопрос: зачем 2 цикла, неужели нельзя точно определить, что тебе необходимо провести, а что нет? Как-то не совсем стройный алгоритм в плане здравого смысла и быстродействия: проводим, чтобы потом откатить... ??? 

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
Паганель, в следующий раз, когда будешь задавать вопрос, представь, что читать его будет не телепат... ;D ;D ;D

Да вроде бы понятно написал, ну ладно, буду старатся, ссори  :)

You are not allowed to view links. Register or Login
Если я правильно понял, то внутри ФМ у тебя организованы 2 цикла по внутренним таблицам, в каждом из которых осуществляются массовые проводки движения материалов посредством указанного BAPI. Вопрос: зачем 2 цикла, неужели нельзя точно определить, что тебе необходимо провести, а что нет? Как-то не совсем стройный алгоритм в плане здравого смысла и быстродействия: проводим, чтобы потом откатить... ??? 

Такой так сказать, бизнес-процесс, надо сначала провести все Дт, а потом Кт.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Первый цыкл - приходует Готовую продукцию, второй - списывает Сырье.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
А что значит ?
Это значит, что пока данные будут не откоммичены, повторный вызов этой ФМ невозможен... получишь ошибку. Так что кина не будет, вариант только остается  с логированем выполненных действий, чтобы в случае войны откатить все приходы по которым не получились отпуски.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Кстати, а что мешает делать в одном документе приход и расход?

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Вызов 2-х БАПИшек в одной транзакции (контексте)
« Ответ #10 : Апрель 09, 2009, 05:54:36 pm »
точно не скажу, типа получилось что суммы проводок нулевые (типа система видет что делаем + потом -, значит не меняется себестоимость)

короче расспрошу и разберусь отвечу
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Вызов 2-х БАПИшек в одной транзакции (контексте)
« Ответ #11 : Апрель 09, 2009, 05:55:47 pm »
You are not allowed to view links. Register or Login
Это значит, что пока данные будут не откоммичены, повторный вызов этой ФМ невозможен... получишь ошибку. Так что кина не будет, вариант только остается  с логированем выполненных действий, чтобы в случае войны откатить все приходы по которым не получились отпуски.

ага для полной ж.... счастььььья в смысле  :(, еще не хватало мне делать обратные проводки, такое вылезет, перевое так это себестоимость
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Вызов 2-х БАПИшек в одной транзакции (контексте)
« Ответ #12 : Апрель 09, 2009, 10:35:13 pm »
You are not allowed to view links. Register or Login
ага для полной ж.... счастььььья в смысле  :(, еще не хватало мне делать обратные проводки, такое вылезет, перевое так это себестоимость
Куда вылезет и зачем вылезет? Опять же что-то мне подсказывает, что явно у вас с идеологией не в порядке...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Re: Вызов 2-х БАПИшек в одной транзакции (контексте)
« Ответ #13 : Апрель 10, 2009, 09:23:32 am »
You are not allowed to view links. Register or Login
Куда вылезет и зачем вылезет? Опять же что-то мне подсказывает, что явно у вас с идеологией не в порядке...
долго рассказывать, потом как то ..... может быть  ;-)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Вызов 2-х БАПИшек в одной транзакции (контексте)
« Ответ #14 : Апрель 10, 2009, 09:26:01 am »
You are not allowed to view links. Register or Login
долго рассказывать, потом как то ..... может быть  ;-)
Тогда как бы не ясен вопрос и дальнейшее развитие темы... а посему значит тема закрывается до снятия завесы секретности с процессов, которые пытаются автоматизировать, на срок как я понимаю минимум 50 лет, а значит мало кто доживет до этих времен!

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
Данная ФМ CALL FUNCTION 'BAPI_GOODSMVT_CREATE', не является повторно вызываемой, так что никак!

Хорошо, а если ФМ все-таки является "повторно вызываемой" то как тогда поступать? Какая языковая конструкция?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Хорошо, а если ФМ все-таки является "повторно вызываемой" то как тогда поступать? Какая языковая конструкция?
call ФМ1
call ФМ1
COMMIT WORK.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
call ФМ1
call ФМ1
COMMIT WORK.

Просто однако .... хотя если roolback work - то должно все откатится  :)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 767
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Просто однако .... хотя если roolback work - то должно все откатится  :)
Ну почему должно... откатиться, фактически это же группа записей вставленная в БД, так что если никакая зараза где-то в теле ФМ не вставили промежуточный COMMIT, то все и откатиться.