Текущее время: Пт, апр 26 2024, 08:29

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 08:15 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, фев 04 2009, 13:46
Сообщения: 95
Пол: Мужской
здравствуйте помогите разобраться, что не так? :?:
Использую BAPI_OBJCL_CHANGE для изменения значения признака, вот пример запонения:
Изображение

Заполнение ALLOCVALUESCHARNEW:
Изображение

Выдает результат:
Изображение

Вот сам материал:
Изображение


Читал по поиску, не разобрался:
http://sapboard.ru/forum/viewtopic.php?f=13&t=27891&hilit=ALLOCVALUESCHARNEW


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 08:36 
Специалист
Специалист

Зарегистрирован:
Чт, окт 26 2006, 16:44
Сообщения: 149
Откуда: Москва
В качестве параметра objecttable попробуйте передавать MCHA вместо MCH1.
Обычно я использую этот ФМ в связке с BAPI_OBJCL_GETDETAIL.
Сначала получаем классфикиацию, потом меняем на новую.


Последний раз редактировалось vakito Ср, мар 31 2010, 09:14, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 08:41 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Попробуйте заполнить VALUE_NEUTRAL.
и скрин классификации партии хотелось бы увидеть.
судя по ошибки в партии на признаке стоит ограничение допустимых значений.

кстати очень много примеров:
http://sapboard.ru/forum/search.php?keywords=BAPI_OBJCL_CHANGE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 09:20 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, фев 04 2009, 13:46
Сообщения: 95
Пол: Мужской
vakito написал(а):
В качестве параметра objecttable попробуйте передавать MCHA вместо MCH1.
Обычно я использую этот ФМ в связке с BAPI_OBJCL_GETDETAIL.
Сначала получаем классфикиацию, потом меняем на новую.


Вот скрин с применением MCHA:
Изображение

Изображение

Можно, пожалуйста кусок кода связки с BAPI_OBJCL_GETDETAIL.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 09:24 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, фев 04 2009, 13:46
Сообщения: 95
Пол: Мужской
RA написал:
Попробуйте заполнить VALUE_NEUTRAL.
и скрин классификации партии хотелось бы увидеть.
судя по ошибки в партии на признаке стоит ограничение допустимых значений.

кстати очень много примеров:
http://sapboard.ru/forum/search.php?keywords=BAPI_OBJCL_CHANGE



Заполнил VALUE_NEUTRAL таже ошибка.

Скрин Классификации партии:
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 10:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
А попробуйте в SE37 выполнить BAPI_OBJCL_GETDETAIL

и посмотрите как заполнены выходные таблицы и сравните с BAPI_OBJCL_CHANGE.

А так могу предложить:
1. Проверить действительно ли признак символьный
2. Нажмите F4 на признаке в партии и проверьте, что нет ограничений.
3. Очистить классификацию партии и попробовать запустить ФМ опять.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 12:26 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
kamlit, использование этого Фм-ма без 'BAPI_OBJCL_GETDETAIL' вообще очень нежелательно, потому что Вам надо передавать в BAPI_OBJCL_CHANGE все признаки и старые и новые, иначе старые затрутся. И советую Вам набросать простенькую программу для тестирования бапи, нежели использовать se37, мне кажется так удобнее. Вот простой пример.
Code:
    DATA:
    ALLON LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0 WITH HEADER LINE,
    ALLOC LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0 WITH HEADER LINE,
    ALLOCU LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0 WITH HEADER LINE,
    RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
    DATA: OBJ LIKE BAPI1003_KEY-OBJECT.

    BREAK-POINT.

    OBJ = RESULT-EQUNR.

    CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
      EXPORTING
        OBJECTKEY       = OBJ
        OBJECTTABLE     = 'EQUI'
        CLASSNUM        = RESULT-CLASS
        CLASSTYPE       = '002'
      TABLES
        ALLOCVALUESNUM  = ALLON
        ALLOCVALUESCHAR = ALLOC
        ALLOCVALUESCURR = ALLOCU
        RETURN          = RETURN.
    READ TABLE ALLOC WITH KEY CHARACT = 'PM_A87'.
    IF SY-SUBRC = 0.
      CLEAR ALLOC.
      ALLOC-CHARACT = 'PM_A87'.
      ALLOC-VALUE_CHAR = 'СИ, В РАЗРЯДЕ ИНДИКАТОРА'.
      MODIFY ALLOC INDEX SY-TABIX.
    ENDIF.

Тут изменяем   
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
      EXPORTING
        OBJECTKEY          = OBJ
        OBJECTTABLE        = 'EQUI'
        CLASSNUM           = RESULT-CLASS
        CLASSTYPE          = '002'
        NO_DEFAULT_VALUES  = 'X'
      TABLES
        ALLOCVALUESNUMNEW  = ALLON
        ALLOCVALUESCHARNEW = ALLOC
        ALLOCVALUESCURRNEW = ALLOCU
        RETURN             = RETURN.
    .
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 13:49 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 229
Besa написал:
... надо передавать в BAPI_OBJCL_CHANGE все признаки и старые и новые, иначе старые затрутся.


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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 14:06 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
demst написал(а):
Besa написал:
... надо передавать в BAPI_OBJCL_CHANGE все признаки и старые и новые, иначе старые затрутся.


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

в 4.7 затирает, только что попробовал.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 14:10 
Специалист
Специалист

Зарегистрирован:
Чт, окт 26 2006, 16:44
Сообщения: 149
Откуда: Москва
В 4.6С тоже затирает.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Ср, мар 31 2010, 15:07 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 229
ну хз... ЕРП2005 вроде ничо не затирает...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Вт, окт 12 2010, 07:58 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 18 2009, 22:40
Сообщения: 16
Откуда: НЧ-КМ
Пол: Мужской
Доброго дня всем!!
В продолжении темы...
Использую CALL FUNCTION 'BAPI_OBJCL_CHANGE' (меняется 2 признака для объекта).
После его вызова - CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
Обновление проходит.

Однако бывают ситуации, когда этот ФМ вызывается дважды по одному и тому же объекту.
Вот тут начинаются проблемы - "Объект уже заблокирован пользователем ХХХ".
Судя по всему, этот объект остается блокированным после первого обновления.

При повторном запуске - уже без ошибок.
Как это решить??

На заморских сайтах была ссылка на тр-ю "Настройка блокирования материалов" (OMJI).
У нас там установлена "Монопольная блокировка", а значение для "Поздняя монопольная блокировка" = 10 секунд.
Пробовал перед 'BAPI_OBJCL_CHANGE ждать WAIT UP TO 11 SECONDS :)))
Т.о. обновляется,но это же не нормально...

Вижу пока еще один выход - группировать данные т.о., чтобы вызов изменения происходил только один раз.
Но тут я тоже кое-что теряю....


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Вт, окт 12 2010, 08:13 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 18 2009, 22:40
Сообщения: 16
Откуда: НЧ-КМ
Пол: Мужской
хааа
ларчик просто открывался :)
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.

решает всё)))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Вт, окт 12 2010, 16:06 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, окт 09 2007, 15:00
Сообщения: 79
В тему связки BAPI_OBJCL_CHANGE и BAPI_OBJCL_GETDETAIL.
Работал на поддержке 4.7, там проект, в одной из своих разработок, изменял признаки партий. Так эти умельцы сделали CHANGE без GETDETAIL, протестировали в лучших традициях "да забей, всё нормально будет", и в итоге позатирали кучу партий в продуктиве.
Мораль сей басни - используйте GETDETAIL, от греха подальше.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: изменения признаков (BAPI_OBJCL_CHANGE)
СообщениеДобавлено: Вт, июл 09 2019, 10:04 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 23 2015, 14:48
Сообщения: 90
Подскажите. Использую BAPI_OBJCL_CHANGE. Все признаки ложу в ALLOCVALUESCHARNEW,хотя среди них есть признаки,которые нужно ложить в ALLOCVALUESNUMNEW,т.е. цифровые. Тем и менее все нормально записывается. Может кто подскажет,есть ли смысл переделывать и ложить num,int в ALLOCVALUESNUMNEW, или можно все оставить как есть. Волнуюсь не "выльется" ли мне это потом где-нибудь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB