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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Изменение системного статуса СПП-элементов через BAPI.. DUMP
СообщениеДобавлено: Пт, фев 08 2008, 16:39 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Всем доброго дня!!!

Использую 'BAPI_BUS2054_CREATE_MULTI' для создания СПП-элементов. Элемент создается все ок.. Делаю изменение системного статуса через 'BAPI_BUS2054_SET_STATUS'
Code:
    CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
    CALL FUNCTION 'BAPI_BUS2054_SET_STATUS'
      importing
        RETURN = return
      TABLES
        i_wbs_system_status  = i_wbs_system_status
        e_result             = e_result.

после делаю
Code:
  CALL FUNCTION 'BAPI_PS_PRECOMMIT'
    TABLES
      et_return = et_return.
  COMMIT WORK AND WAIT.

При выполнении 'BAPI_PS_PRECOMMIT' падает в дамп... :(

    Динамическая ошибка MESSAGE_TYPE_X
    Возникла: 08.02.2008 в 16:23:52



    Что произошло?


    The current application program detected a situation which really
    should not occur. Therefore, a termination with a short dump was
    triggered on purpose by the key word MESSAGE (type X).


    Что Вы можете сделать?


    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.

    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.



    Анализ ошибки


    Short text of error message:


Подскажите пожалуйста... Как можно решить проблему???

За ранее благодарен за вашу помощь!!!
:oops: :oops: [/code]


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Смотрел в отладчике..
при выполнении BAPI_BUS2054_SET_STATUS

Функция CJDW_INTEGRATED_STATUS_CHANGE выполняется с
exceptions WRONG_ACTIVITY = 1

Ошибка видимо записывается в глобальные флаги
и при проверке флагов, в прекоммите, валится в дамп.. :(

    000090 FORM chk_precommit.
    000100
    000110 DATA: chk_precommit_ok TYPE c,
    000120 chk_error type c.
    000130
    000140 CALL FUNCTION 'PS_FLAG_GET_GLOBAL_FLAGS'
    000150 IMPORTING
    000160 e_precommit_ok = chk_precommit_ok
    000170 e_error = chk_error.
    000180
    000190 IF chk_precommit_ok = space.
    000200 * Precommit wurde noch nicht aufgerufen.
    000210 MESSAGE x030(cnif_pi).
    000220 ELSEIF chk_precommit_ok <> 'Y'.
    000230 * Precommit wurde nicht erfolgreich durchlaufen.
    > MESSAGE x033(cnif_pi).
    000250 elseif not chk_error is initial.
    000260 * At least one single BAPI failed
    000270 MESSAGE x056(cnif_pi).
    000280 ENDIF.
    000290
    000300 * commit work was called successfully after the precommit.
    000310 PERFORM ps_bapi_init_global_variables.
    000320
    000330 ENDFORM. " CHK_PRECOMMIT


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Не нужно в процесс создания СПП-элемента включать установку статуса.
Сперва создаем
Code:
  CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

  ELEMENT-WBS_ELEMENT = POSID.
  ELEMENT-DESCRIPTION = POST1.
  APPEND ELEMENT TO WBS_ELEMENT.

  CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
    EXPORTING
      I_PROJECT_DEFINITION = GS_PROJ-PSPID
    TABLES
      IT_WBS_ELEMENT       = WBS_ELEMENT.

  CALL FUNCTION 'BAPI_PS_PRECOMMIT'.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'.

После устанавливаем статус. Для пользовательского статуса можно использовать STATUS_CHANGE_EXTERN, для системного - STATUS_SET_INTERN. Завершаем все

Code:
CALL FUNCTION 'STATUS_UPDATE_ON_COMMIT'.
COMMIT WORK.


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Я так и делаю.. Сперва создаю СПП-элемент делаю коммит.. только потом тексты.. и потом статусы..

а за функцию STATUS_SET_INTERN спасибо щас попробую может с ней получится..

Спасибо большое!!! :)


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
John Doe подскажите еще пожалуйста как можно определить какое значение системного статуса надо в функцию передавать?? Там какой то номер типа такого I0042... Как узнать для статуса "Деблокированно"??


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Системные статусы хранятся в табличкеTJ02, их тексты в TJ02T. Вам нужен статус I0002


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Спасибо большое за помощь!!!


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
John Doe, извините за мою навязчивость.. :oops: Не подскажете еще один момент?? Есть ли возможность все в том же СПП-элементе деактивировать(сделать неактивным) системный статус? т. е. Стоял активный статус откр., я поставил еще два статуса.. Теперь они все три активны.. А надо бы откр сделать неактивным..

Спасибо за ранее!!!


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

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
По идее, если нужно СПП-элемент создать и деблокировать надо после создания сделать:
Code:
        CALL FUNCTION 'STATUS_CHANGE_FOR_ACTIVITY'
          EXPORTING
            objnr                = prps-objnr
            vrgng                = 'BFRE'
          EXCEPTIONS
            activity_not_allowed = 1
            object_not_found     = 2
            status_inconsistent  = 3
            status_not_allowed   = 4
            wrong_input          = 5
            warning_occured      = 6
            OTHERS               = 7.

После этого статус ОТКР должен стать не активным. Тогда, наверное, не нужно STATUS_SET_INTERN делать для I0002.


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Спасибо большое, John Doe! Вы мне очень помогли... Эта функция по моему как раз обрабатывается в BAPI_BUS2054_SET_STATUS, Только почему то OBJNR в нее какой то левый писался.. И на ней как раз видимо и возникала ошибка, которая попадала в глобальные флаги Error из за чего прекоммит прерывался дампом..

Еще раз спасибо за помощь!!!


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
И все таки не выходит каменный цветок!!! :( Если создаю СПП-элемент с галкой "Элемент контировки", ставлю статус НКС и делаю деблокирование функцией 'STATUS_CHANGE_FOR_ACTIVITY',вроде все хорошо вижу два активных статуса ДЕБЛ НКС и неактивный ОТКР.. Все казалось бы так как нужно.. Но при попытке удаления СПП-элемента выдается ошибка: Ошибка обработки объекта НКС к СПП-элементу, так же как если бы я попытался деблокировать СПП не устанавливая статус НКС и при наличии галки "Элемент контировки".. Не понимаю... Если по меню Из тр cj20n перехожу Обработать/СПП-элемент/Инвестиционные программы/НКС.. На открывшемся экране просто нажимаю Энтер и ухожу по стрелке Назад.. Все прекрасно больше ни на что не ругается... :( :cry:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 11 2008, 14:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Не уверен, что смогу помочь в этой ситуации... Хочу спросить каким образом делаете удаление?


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Удаление делаю руками!! (удаление программно мне не надо) Через CJ20n, просто нажимаю карзинку на панели... Проблема в том, что видимо даже если статус стоит.. этого недостаточно.. Где то какие то данные еще должны были прописаться для СПП с таким статусом.. Что то вроде ОснСр, Класс ОснСр..

Если руками через CJ20n сделать переход по меню как я писал выше.. на экране по умолчанию подставляется значение класса основного средства.. Нажимаю Энтер и в этот момент все данные и подтягиваются.. И куда то пишутся.. Не могу отловить когда пишутся... :(


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Вызываются функции из группы функций AIST... Но не пойму в какой момент данные записываются..


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

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
John Doe кажется нашел причину проблемы с дампом... Оказывается там в Function exit была прописана проверка на коды транзакций.. Моей там естественно нет.. А прога в которой я подсмотрел BAPI валилась в дамп при запуске из SE38 а через транзакцию отрабатывала корректно... Наверно попробую через BABI все же статус устанавливать...

Вам спасибо!!


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

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


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

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


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

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