Текущее время: Ср, июн 18 2025, 23:00

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Обновление значений признаков в ЕО
СообщениеДобавлено: Вт, июл 31 2007, 14:00 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Здравствуйте.
Проблема в следующем:
Нужно через программу обновлять признаки Единицы оборудования. Попробовал через пакетник, но поля признаков заполнять программа почему то не может... Видимо поля экрана эти генерируются, и через Кол транзакшен их заполннять не получается. Возвращается subrc со значением 1.001. я так понимаю что он поля эти не находит. ПРобовал пакетники через транзакции IE02 и CL20N. Результат одинаковый. Если через SM35 запускать эти записи, то все нормально меняет. При экспорте записи в функциональный модуль, не обновляет поля.

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

Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 14:28 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Цитата:
Нужно через программу обновлять признаки Единицы оборудования.
...
Может Бапи-шка какая есть подходящая? или еще что-нибудь..

BAPI_OBJCL_CHANGE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 15:21 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Пытаюсь через эту бапи-шку сделать.
в значение OBJECTKEY подставляю CUOBJ из таблицы, но бапи выдает ошибку - "E CL 763 Объект 000000000000000002 отсутствует."

хотя он в таблице есть... какое то преобразованное значение надо подставлять?


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

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Цитата:
в значение OBJECTKEY подставляю CUOBJ из таблицы


Кажется нужно INOB-OBJEK


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 15:54 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Параметры импорта Значение

OBJECTKEY V-50086578
OBJECTTABLE EQUI
CLASSNUM VAGON
CLASSTYPE 002
STATUS
STANDARDCLASS
CHANGENUMBER
KEYDATE
NO_DEFAULT_VALUES


Таблицы Значение

ALLOCVALUESNUMNEW 0 Записи
ALLOCVALUESCHARNEW 1 Записи
ALLOCVALUESCURRNEW 0 Записи
RETURN 0 Записи


в ALLOCVALUESCHARNEW добавляю имя признака и новое значение (PRED_DEP_T 0308)

результат: S CL 506 Присвоения изменяются
S CL 737 Присвоение изменено.



но в объекте значения не изменяются... :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 15:57 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
это фрагмент из экрана тестирования ФМ... :-)


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

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Code:
  READ TABLE gt_return
    WITH KEY type = 'S' id = 'CL' number = '737'
    TRANSPORTING NO FIELDS.
  IF sy-subrc EQ 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ENDIF.


И если вы не полностью меняете значения всех признаков, а только определённые то сделайте сначала BAPI_OBJCL_GETDETAIL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 31 2007, 17:27 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Alex80, спасибо большое.
все заработало.
изменения тоже фиксируются...
:-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 11 2007, 17:09 
Начинающий
Начинающий

Зарегистрирован:
Вт, дек 11 2007, 17:02
Сообщения: 1
Использую BAPI_OBJCL_CHANGE для изменения признаков классов технических мест, бапишка возвращает :
E |C4 |023 | не допускает отклоняющейся единицы измерения.

можете подсказать в чем может быть проблема?



Code:
*>    Записи таблицы грида
      Clear: it_all_msg[].
      Loop at <dyn_table> into <dyn_wa>.
        Clear: ALLOCVALUESNUM
             , ALLOCVALUESCHAR
             , ALLOCVALUESCURR.
        ASSIGN COMPONENT 'TPLNR' of structure <dyn_wa> to <FS1>.
        OBJECTKEY = <FS1>.
        Clear it_return[].
        CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
          EXPORTING
            OBJECTKEY              = OBJECTKEY
            OBJECTTABLE            = OBJECTTABLE
            CLASSNUM               = CLASSNUM
            CLASSTYPE              = CLASSTYPE
*         KEYDATE                = SY-DATUM
*         UNVALUATED_CHARS       = ' '
*         LANGUAGE               = SY-LANGU
*       IMPORTING
*         STATUS                 =
*         STANDARDCLASS          =
          TABLES
            ALLOCVALUESNUM         = ALLOCVALUESNUM
            ALLOCVALUESCHAR        = ALLOCVALUESCHAR
            ALLOCVALUESCURR        = ALLOCVALUESCURR
            RETURN                 = it_RETURN
                  .
        LOOP AT descr_ref->components ASSIGNING <comp_wa>.
*>        Не сохраняются в классах.
          If <comp_wa>-name eq 'TPLNR'
          or <comp_wa>-name eq 'PLTXT'
          or <comp_wa>-name eq 'ZZLITERA'.
            CONTINUE.
          ENDIF.
*<
          DATA : ATFOR type ATFOR
                ,ANZST type ANZST
                ,ANZDZ type ANZDZ
                ,MSEHI type MSEHI.
          Clear: ATFOR, ANZST, ANZDZ.

          ASSIGN COMPONENT <comp_wa>-name of structure <dyn_wa> to <FS1>.
          Condense <FS1>.

          Select single a~ATFOR "as DATATYPE        " тип данных
                        a~ANZST "as DD_outLEN      " колво знаков
                        a~ANZDZ "as DECIMALS_O    " колво дес знаков
                        a~MSEHI
            into (ATFOR
                 ,ANZST
                ,ANZDZ
                ,MSEHI)
            from CABN as A
           Where ATNAM eq <comp_wa>-name.

          Case ATFOR. "<comp_wa>-type_kind.
            When 'CHAR' OR 'DATE'.
              Read Table ALLOCVALUESCHAR into l_ALLOCVALUESCHAR with key CHARACT = <comp_wa>-name.
              index = sy-tabix.
              If sy-subrc = 0.
                If <fs1> is not initial.
                  l_ALLOCVALUESCHAR-VALUE_NEUTRAL = <fs1>.
                  modify ALLOCVALUESCHAR[] from l_ALLOCVALUESCHAR index index.
                else.
                  delete ALLOCVALUESCHAR[] index index.
                endif.
              Else.
                If <fs1> is not initial.
                  l_ALLOCVALUESCHAR-CHARACT = <comp_wa>-name.
                  l_ALLOCVALUESCHAR-VALUE_NEUTRAL = <fs1>.
                  l_ALLOCVALUESCHAR-VALUE_CHAR = <fs1>.
                  APPEND l_ALLOCVALUESCHAR TO ALLOCVALUESCHAR.
                EndIf.
              EndIf.

            When Others.
              Read Table ALLOCVALUESNUM into l_ALLOCVALUESNUM with key CHARACT = <comp_wa>-name.
              index = sy-tabix.
              If sy-subrc = 0.
                If <fs1> is not initial.
                  TRANSLATE <fs1> USING ',.'.
*                  conver_num = <FS1>.
                  l_ALLOCVALUESNUM-VALUE_RELATION = 1.
*                  l_ALLOCVALUESNUM-UNIT_FROM = MSEHI.
*                l_ALLOCVALUESNUM-UNIT_TO   = MSEHI.
                  CONDENSE <FS1>.
                  Compute l_ALLOCVALUESNUM-VALUE_FROM = <FS1>. "conver_num.
*                Compute l_ALLOCVALUESNUM-VALUE_TO   = <FS1>. "conver_num.
                  modify ALLOCVALUESNUM[] from l_ALLOCVALUESNUM index index.
                Else.
                  delete ALLOCVALUESNUM[] index index.
                EndIf.
              Else.
                If <fs1> is not initial.
                  TRANSLATE <fs1> USING ',.'.
*                  conver_num = <FS1>.
                  l_ALLOCVALUESNUM-CHARACT = <comp_wa>-name.
                  l_ALLOCVALUESNUM-VALUE_RELATION = 1.
*                  l_ALLOCVALUESNUM-UNIT_FROM = MSEHI.
*                l_ALLOCVALUESNUM-UNIT_TO   = MSEHI.
                  Condense <FS1> .
                  Compute l_ALLOCVALUESNUM-VALUE_FROM = <FS1>. "conver_num.
*                Compute l_ALLOCVALUESNUM-VALUE_TO =   <FS1>. "conver_num.
                  APPEND l_ALLOCVALUESNUM TO ALLOCVALUESNUM.
                EndIf.
              EndIf.
          Endcase.
        ENDLOOP.


        CALL FUNCTION 'BAPI_OBJCL_CHANGE'
           EXPORTING
             OBJECTKEY                = OBJECTKEY
             OBJECTTABLE              = OBJECTTABLE
             CLASSNUM                 = CLASSNUM
             CLASSTYPE                = CLASSTYPE
*           STATUS                   = '1'
*           STANDARDCLASS            =
*           CHANGENUMBER             =
*           KEYDATE                  = SY-DATUM
*           NO_DEFAULT_VALUES        = ' '
*         IMPORTING
*           CLASSIF_STATUS           =
           TABLES
             ALLOCVALUESNUMNEW        = ALLOCVALUESNUM
             ALLOCVALUESCHARNEW       = ALLOCVALUESCHAR
             ALLOCVALUESCURRNEW       = ALLOCVALUESCURR
             RETURN                   = it_return
                   .



Нырял в отладку, но наскоком выяснить не получилось (
Терпения не хватило.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 11 2007, 22:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Смысл ошибки в том, что бапишка не может сконвертировать количество в заданные (а точнее не заданные) единицы измерения.
Все строчки, где передаётся MSEHI закомментированы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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