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

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


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

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


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

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