Текущее время: Пн, авг 04 2025, 16:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Изменение признаков партии (MM)
СообщениеДобавлено: Вт, окт 14 2008, 17:38 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 29 2008, 10:19
Сообщения: 13
Откуда: Великое княжество Литовское, Русcкое, Жемойтское и иных
Как можно програмно поменять значения признаков партии?

Заранее спасибо.


Последний раз редактировалось ko Ср, окт 15 2008, 16:36, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение характеристик партии (MM)
СообщениеДобавлено: Ср, окт 15 2008, 07:44 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
ko написал(а):
Как можно програмно поменять значения характеристик партии?

Заранее спасибо.
BAPI_BATCH_CHANGE

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 08:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Если Вы имели в виду признаки партии то:

BAPI_OBJCL_CHANGE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 16:42 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 29 2008, 10:19
Сообщения: 13
Откуда: Великое княжество Литовское, Русcкое, Жемойтское и иных
RA написал:
Если Вы имели в виду признаки партии то:

BAPI_OBJCL_CHANGE


Да, признаки. Исправил заголовок.

BAPI_OBJCL_CHANGE возвращает ошибку "Assignment does not exist or is not valid on"
Не подскажите, чтобы это могло быть?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 16:46 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
ko написал(а):
RA написал:
Если Вы имели в виду признаки партии то:

BAPI_OBJCL_CHANGE


Да, признаки. Исправил заголовок.

BAPI_OBJCL_CHANGE возвращает ошибку "Assignment does not exist or is not valid on"
Не подскажите, чтобы это могло быть?
Ошибка в заполнении OBJECTKEY
OBJECTTABLE
CLASSNUM
CLASSTYPE
или же классификации действительно нет.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 17:01 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 29 2008, 10:19
Сообщения: 13
Откуда: Великое княжество Литовское, Русcкое, Жемойтское и иных
Alex80 написал:
Ошибка в заполнении OBJECTKEY
OBJECTTABLE
CLASSNUM
CLASSTYPE
или же классификации действительно нет.



OBJECTKEY получается путём конкатенации matnr+werks+charg (со всеми нулями)? Иначе получаю ошибку "Object XXX does not exist". Где XXX - то, что указано в OBJECTKEY.

Классификация точно есть. В MSC3N во вкладке "Классификация" есть заполненые значения.

Может, код вызова поможет прояснить ситуацию:
Code:
     
      CONCATENATE cs_goitem-matnr cs_goitem-werks cs_goitem-charg INTO v_key.

      CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
        EXPORTING
          objectkey              = v_key
          objecttable            = 'MCHA'
          classnum               = 'GR_DATA_EXTRA'
          classtype              = '023'
        TABLES
          allocvaluesnum        = git_bapi1003
          allocvalueschar       = git_values_char
          allocvaluescurr       = git_values_curr
          return                   = git_bapiret2.


Последний раз редактировалось ko Ср, окт 15 2008, 17:07, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 17:06 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
ko написал(а):
Alex80 написал:
Ошибка в заполнении OBJECTKEY
OBJECTTABLE
CLASSNUM
CLASSTYPE
или же классификации действительно нет.



OBJECTKEY получается путём конкатенации matnr+werks+charg (со всеми нулями)? Иначе получаю ошибку "Object XXX does not exist". Где XXX - то, что указано в OBJECTKEY.

Классификация точно есть. В MSC3N во вкладке "Классификация" есть заполненые значения.
Есть подозрение что WERKS не нужно. Но лучше наверное посмотреть в сторону связки
ФМ VB_BATCH_DEFINITION и BAPI_OBJCL_CONCATENATEKEY для определения OBJECTKEY. (Вытащить дату поступления партии вне R/3)

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 16 2008, 08:50 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, сен 18 2006, 10:37
Сообщения: 177
Откуда: Беларусь
Пол: Мужской
OBJECTKEY = Материал + Партия. Завод не нужен.

_________________
Regards


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 16 2008, 11:16 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 29 2008, 10:19
Сообщения: 13
Откуда: Великое княжество Литовское, Русcкое, Жемойтское и иных
FoLKo написал:
OBJECTKEY = Материал + Партия. Завод не нужен.

Завод ведь тоже ключевое поле?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 16 2008, 15:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ko написал(а):
FoLKo написал:
OBJECTKEY = Материал + Партия. Завод не нужен.

Завод ведь тоже ключевое поле?

Для таблицы MCHA.
А в таблице MCH1 такого поля нет :)
Все зависит от того, как настроено управление партиями - на уровне материала или на уровне материал-завод.
По умолчанию активировано управление партиями на уровне материала.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 16 2008, 15:51 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, сен 29 2008, 10:19
Сообщения: 13
Откуда: Великое княжество Литовское, Русcкое, Жемойтское и иных
Удав написал(а):
Для таблицы MCHA.
А в таблице MCH1 такого поля нет :)
Все зависит от того, как настроено управление партиями - на уровне материала или на уровне материал-завод.
По умолчанию активировано управление партиями на уровне материала.

Да, действительно, в моём случае надо было указывать таблицу MCH1. Соответственно, OBJECTKEY = Материал + Партия. Всё заработало. Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение признаков партии (MM)
СообщениеДобавлено: Ср, май 06 2009, 11:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 19 2009, 11:17
Сообщения: 71
Пол: Мужской
Добрый день!
Возникла такая проблемка - для получении признака партии использую ФМ 'CLAF_CLASSIFICATION_OF_OBJECTS' , в качестве OBJECTTABLE указываю MCH1 и всё работает правильно, признак находится. Затем пытаюсь изменить признак с помощью ФМ 'BAPI_OBJCL_CHANGE', но внутри него при проверке в таблице TCLA для данного класса OBJECTTABLE считается равной MCHA и поэтому ФМ выдает ошибку.
Что не так? Не указаны какие-то настройки в спро для TCLA? Ведь если отрабатывает первый модуль, то получается, что данные на вход идут правильные.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение признаков партии (MM)
СообщениеДобавлено: Ср, май 06 2009, 11:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
TCLA здесь ни при чем. Может, в objectkey ошиблись?
Вот рабочий код, в TCLA запись 023 MCHA:
Code:
  CALL FUNCTION 'BAPI_OBJCL_CHANGE'
    EXPORTING
      objectkey          = l_objectkey
      objecttable        = 'MCH1'
      classnum           = it_class-classnum
      classtype          = '023'
    IMPORTING
      classif_status     = l_status
    TABLES
      allocvaluesnumnew  = it_num
      allocvaluescharnew = it_char
      allocvaluescurrnew = it_curr
      return             = it_return2.

_________________
С уважением,
Удав.


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

Зарегистрирован:
Пн, янв 19 2009, 11:17
Сообщения: 71
Пол: Мужской
Так objectkey тот же, который использую в 'CLAF_CLASSIFICATION_OF_OBJECTS' , в качестве objecttable = 'MCH1', получаю нужный признак, всё правильно, значит objectkey в порядке.
Потом с теми же objectkey и objecttable пытаюсь изменить признак с помощью 'BAPI_OBJCL_CHANGE'. А внутри него при отработке ФМ 'CLCA_CHECK_CLASSTYPE' :
Code:
  IF OBTAB NE TCLA-OBTAB.
    MESSAGE E650 WITH OBTAB CLASSTYPE RAISING INVALID_CLASSTYPE.
*    Für Objekt & ist die Klassenart & nicht definiert
  ENDIF.

тут и выдает ошибку, т.к. TCLA-OBTAB = 'MCHA', а OBTAB (objecttable ) = 'MCH1' :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение признаков партии (MM)
СообщениеДобавлено: Ср, май 06 2009, 12:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
А где именно этот ФМ вызывается внутри BAPI_OBJCL_CHANGE? :shock:
В 4.7 проверка происходит только внутри ФМ CLAP_DDB_UPDATE_CLASSIFICATION, и проверяется по таблице TCLAO:
Code:
* Adjust flags: possibly several objects of different class types
* (with different multobj's) were copied in this trx via
* clfm-object-classification.
  if iklart-multobj is initial.
    l_obtab = sobtab.
    clear pobtab.
    clear multi_obj.
  else.
    if mafid = mafido.
*     check imported parameters: object type allowed in classtype ?
      select single * from tclao
                     where klart = classtype
                       and obtab = sobtab.
      if sy-subrc <> 0.
        raise table_no_multitab.
      endif.
    endif.
    l_obtab       = sobtab.
    multi_obj     = kreuz.
    all_multi_obj = kreuz.
  endif.

_________________
С уважением,
Удав.


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

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


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

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


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

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