Текущее время: Ср, июл 02 2025, 14:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:40 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
у меня такая же проблема.

Kanev написал(а):
Цитата:
Пример, транзакция ME23, смотрим поле "Заказ на поставку", имя поля BSTNR, ID параметра 'BES', соответствнное в программе пишем

Код:
SET PARAMETER ID 'BES' FIELD '49000000001'.
CALL TRANSATION 'ME23' AND SKIP FIRST SCREEN.


Должно помочь

это помогает на уровне полей ввода, а как быть с кнопками у них ведь нет идентификатора, а только код функции...
и с того же примера, кнопка "Заголовок подробно" = KOPF,
можно ли установить параметр 'BES' и выполнить функцию KOPF?
и все без пакетного ввода...


Надо после вывода me23 (на пример) нажать еще кнопку.

_________________
Мне надо учиться учиться и еще раз учиться.


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

Зарегистрирован:
Пн, апр 10 2006, 17:17
Сообщения: 77
По Batch Input вот здесь доступно написано:
http://www.sap-img.com/bdc.htm


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
у меня такая же проблема.

Kanev написал(а):
Цитата:
Пример, транзакция ME23, смотрим поле "Заказ на поставку", имя поля BSTNR, ID параметра 'BES', соответствнное в программе пишем

Код:
SET PARAMETER ID 'BES' FIELD '49000000001'.
CALL TRANSATION 'ME23' AND SKIP FIRST SCREEN.


Должно помочь

это помогает на уровне полей ввода, а как быть с кнопками у них ведь нет идентификатора, а только код функции...
и с того же примера, кнопка "Заголовок подробно" = KOPF,
можно ли установить параметр 'BES' и выполнить функцию KOPF?
и все без пакетного ввода...


Надо после вывода me23 (на пример) нажать еще кнопку.

А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 10:52 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.[/quote]
МОжно и пакетным вводом. А можно пояснить что каждая строка означает, чтоб под свои данные изменить.

_________________
Мне надо учиться учиться и еще раз учиться.


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
А почему вы так боитесь пакетного ввода... ваше нажатие кнопки будет описано в несколько строк...

Будет нечто похожее на

perform bdc_dynpro using 'SAPLSPO4' '0300'.
perform bdc_field using 'BDC_CURSOR'
'SVALD-VALUE(01)'.
perform bdc_field using 'BDC_OKCODE'
'=FURT'.

CALL TRANSACTION 'XXX' USING BDCDATA
MODE lf_mode
UPDATE CC_A
MESSAGES INTO MESSTAB.

МОжно и пакетным вводом. А можно пояснить что каждая строка означает, чтоб под свои данные изменить.[/quote]

по-хорошему, вам следовало бы посмотреть то что я писал в самом начале и пощупать самому транзакцию SHDB.
Перва форма выставляет активный номер экрана, втораю устанавливает курсор на поле, третья выполняет код, аналог кода вашей кнопки.

вот сами формы
Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.


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

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
спасибо, очень помогло,( именно call transaction using <itab> меня , наверное, и интересовал), для рассмотренного примера решение(у меня работает :wink: ) выгдядит так:

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
Kanev написал(а):
спасибо, очень помогло,( именно call transaction using <itab> меня , наверное, и интересовал), для рассмотренного примера решение(у меня работает :wink: ) выгдядит так:

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.

Ну вот! А вы боялись Batch input :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 12:09 
Президент
Президент
Аватара пользователя

Зарегистрирован:
Ср, янв 12 2005, 13:39
Сообщения: 2811
Откуда: замкадыш
Цитата:
Ну вот! А вы боялись Batch input


Ну а если он страшный:)

На самом деле пакетный ввод штука очень удобная, но, к сожалению, довольно медленная:(. Да и писанины много, но других вариантов как-то не видно.

_________________
Что бы выловить случайную ошибку нужно добиться устойчивости её появления.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 12:53 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Kanev написал(а):

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


<я не знать русский языка> использовать этот код, пишет ошибку:
The FORM "BDC_DYNPRO" does not exist.
Наверное чего-то не хватает?

Не судите строго я вообще только начинаю! Если можно подробней поясните!

_________________
Мне надо учиться учиться и еще раз учиться.


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
Kanev написал(а):

Code:
PERFORM bdc_dynpro USING 'SAPMM06E' '0105'.
PERFORM bdc_field  USING 'BDC_CURSOR' 'RM06E-BSTNR'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=KOPF'.

SET PARAMETER ID 'BES' FIELD '4500000010'.
CALL TRANSACTION 'ME23' USING bdcdata
MODE 'E'.


<я не знать русский языка> использовать этот код, пишет ошибку:
The FORM "BDC_DYNPRO" does not exist.
Наверное чего-то не хватает?

Не судите строго я вообще только начинаю! Если можно подробней поясните!


Я в своем сообщении с пояснениями привел код этих подпрограмм:
Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 25 2006, 13:27 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Всем огромное спасибо! заработало!

мой финальный код выглядит так:

[/code]DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FACT'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
CONDENSE BDCDATA-FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Code:

А теперь подскажите как сделать так чтоб при нажатии на кнопку "назад" или при нажатии на ESC сразу вываливался из программы а не переходил на то окно которые я пропустил?

_________________
Мне надо учиться учиться и еще раз учиться.


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
realsergant написал(а):
Всем огромное спасибо! заработало!

мой финальный код выглядит так:

[/code]DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field USING 'BDC_OKCODE' '=FACT'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF NOT FVAL IS INITIAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
CONDENSE BDCDATA-FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Code:

А теперь подскажите как сделать так чтоб при нажатии на кнопку "назад" или при нажатии на ESC сразу вываливался из программы а не переходил на то окно которые я пропустил?


Полагаю вам надо узнать код кнопки выхода и дальше по- аналогии :wink:


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

Зарегистрирован:
Вт, апр 25 2006, 09:17
Сообщения: 28
Откуда: Москва родом из Волгограда
Еще раз всем спасибо! Очень помогли!!!
Финальный код выглядит так:

Code:
DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE,
         MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

PERFORM bdc_dynpro USING 'SAPLES30' '0110'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-ANLAGE'.
PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=FACT'.

PERFORM bdc_dynpro USING 'SAPLES30' '0201'.

PERFORM bdc_field  USING 'BDC_CURSOR' 'EANLD-BEGRU'.
PERFORM bdc_field  USING 'BDC_OKCODE' '=SAVE'.

SET PARAMETER ID 'ANL' FIELD 'dddddddddd'.
CALL TRANSACTION 'ES31' USING bdcdata
MODE 'E'.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF NOT FVAL IS INITIAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    CONDENSE BDCDATA-FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.

_________________
Мне надо учиться учиться и еще раз учиться.


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

Зарегистрирован:
Пт, мар 10 2006, 10:26
Сообщения: 84
а где отображаютсся транзакции запущенные с помощью call transaction? через stat(stad) не увидел...


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

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
По идее это просто job... попробуйте глянуть в мониторе заданий


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

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


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

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


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

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