Текущее время: Пт, мар 29 2024, 04:47

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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