Текущее время: Сб, авг 02 2025, 06:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, янв 20 2009, 15:37 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Доброго всем времени дня!
Что то я в тупике.
пишу в своей программе такой вот код:
Code:
TABLES: GOITEM,
             GOHEAD.
             
DATA: WERKS like GOITEM-NAME1,
          LGORT like GOITEM-LGORT,
          BWART like GOITEM-BWART.

WERKS = 'KOL'.
LGORT = 'W001'.
BWART = '941'.

      SET PARAMETER ID 'WRK'  FIELD WERKS.
      SET PARAMETER ID 'LAG'  FIELD LGORT.
      SET PARAMETER ID 'BWA'  FIELD BWART.

        CALL FUNCTION 'MIGO_DIALOG'
            EXPORTING
              i_action            = 'A01'
              i_refdoc            = 'R10'
              i_notree            = 'X'
              i_no_auth_check     = ' '
              i_deadend           = 'X'
              i_skip_first_screen = 'X'
              i_okcode            = 'OK_GO'.

Но в запускаемой транзакции migo всеравно не заполняются соответствующие поля. ID параметры проверил - совпадают. Вместо CALL FUNCTION 'MIGO_DIALOG' пробовал писать просто CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN. Все равно не выходит. Хотя вроде ведь как то так можно передавать значения из транзакции в транзакцию ?
По форуму искал )) ничего не нашел..

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, янв 20 2009, 15:49 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
а что вы именно хотите сделать если просмотреть документ материала тогда
Code:
set parameter id: 'MBN' field <номер документа>.
set parameter id: 'MJA' field <год>.
call transaction  'MIGO' and skip first screen.

если пытаетесь создать док. материала , то про это уже много обсуждалось(Enjoy transactions) , используйте соот. BAPI

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, янв 20 2009, 15:53 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Hexogon написал:
Доброго всем времени дня!
Что то я в тупике.
пишу в своей программе такой вот код:
Code:
TABLES: GOITEM,
             GOHEAD.
             
DATA: WERKS like GOITEM-NAME1,
          LGORT like GOITEM-LGORT,
          BWART like GOITEM-BWART.

WERKS = 'KOL'.
LGORT = 'W001'.
BWART = '941'.

      SET PARAMETER ID 'WRK'  FIELD WERKS.
      SET PARAMETER ID 'LAG'  FIELD LGORT.
      SET PARAMETER ID 'BWA'  FIELD BWART.

        CALL FUNCTION 'MIGO_DIALOG'
            EXPORTING
              i_action            = 'A01'
              i_refdoc            = 'R10'
              i_notree            = 'X'
              i_no_auth_check     = ' '
              i_deadend           = 'X'
              i_skip_first_screen = 'X'
              i_okcode            = 'OK_GO'.

Но в запускаемой транзакции migo всеравно не заполняются соответствующие поля. ID параметры проверил - совпадают. Вместо CALL FUNCTION 'MIGO_DIALOG' пробовал писать просто CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN. Все равно не выходит. Хотя вроде ведь как то так можно передавать значения из транзакции в транзакцию ?
По форуму искал )) ничего не нашел..


Из всех перечисленных только BWART имеет ID параметр на данном экране и у того не установлены флаги set/get параметры.
У остальных нет даже ID.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, янв 20 2009, 16:03 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Оу, спасибо! Да, хочу именно создать документ. Буду копать.

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Пт, янв 30 2009, 10:04 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
В результате я сделал так.
Использовал ФМ BAPI_GOODSMVT_CREATE. Этот ФМ позволяет создавать документы через семейство транзакций MB01.
Задча была такая: Ввести на селекцонном экране интервал номеров бланков векселей и оприходовать их.
Номер бланка использовать в качестве номера партии.

Code:
REPORT  Z_BILL_INPUT.

* GMCODE Table T158G - 01 - MB01 - Goods Receipts for Purchase Order
*                      02 - MB31 - Goods Receipts for Prod Order
*                      03 - MB1A - Goods Issue
*                      04 - MB1B - Transfer Posting
*                      05 - MB1C - Enter Other Goods Receipt
*                      06 - MB11

TABLES: GOITEM.
*<--Определение таблиц для заголовка (импорт/экспорт)-------------------
DATA: head_input like BAPI2017_GM_HEAD_01 OCCURS 100 WITH HEADER LINE,
      head_output like BAPI2017_GM_HEAD_RET OCCURS 100 WITH HEADER LINE.
*--Определение таблиц для заголовка (импорт/экспорт)------------------->

data: begin of itab occurs 100.                      " Таблица для передачи полей в Документ материала
        include structure bapi2017_gm_item_create.
data: end of itab.

data: begin of errmsg occurs 10.                    " Таблица сообщений о результате выполнения
        include structure bapiret2.
data: end of errmsg.

DATA: in_mch1 like MCH1 OCCURS 100 WITH HEADER LINE.  " Здесь сохраняем перечень партий(номеров бланков)
DATA: t type i,
      k type d.

SELECT-OPTIONS charg_s for GOITEM-CHARG.
PARAMETERS: BUDAT  like GOHEAD-BUDAT.



CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'  " ФМ для удаления нулей в начале числа
         EXPORTING
             INPUT  = charg_s-low
         IMPORTING
             OUTPUT = charg_s-low.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'  " ФМ для удаления нулей в начале числа
         EXPORTING
             INPUT  = charg_s-high
         IMPORTING
             OUTPUT = charg_s-high.


*<--Наполняем таблицу in_mch1 перечнем партий------
t = charg_s-high - charg_s-low.           
in_mch1-charg = charg_s-low.
APPEND in_mch1.
DO t times.
IF in_mch1-charg < charg_s-high.
  in_mch1-charg = in_mch1-charg + 1.
  APPEND in_mch1.
ENDIF.
enddo.
*--Наполняем таблицу in_mch1 перечнем партий------>

head_input-pr_uname   = sy-uname.
head_input-PSTNG_DATE = budat.
head_input-DOC_DATE   = budat.
APPEND head_input.
*<--наполняем таблицу itab позициями документа---
LOOP AT in_mch1.
  concatenate 'V' in_mch1-charg into in_mch1-charg.
  CONDENSE in_mch1-charg NO-GAPS.
  itab-MATERIAL   = '000000000100001842'.
  itab-PLANT      = 'KOL'.
  itab-STGE_LOC   = 'W001'.
  itab-BATCH      = in_mch1-charg.
  itab-MOVE_TYPE  = '941'.
  itab-mvt_ind    = ''.
  itab-ENTRY_QNT  = '1'.
* itab-move_stloc =
* itab-po_number  =        " Номер заказа на поставку
* po_item =                " Номер позиции документа закупки
* itab-move_reas  =        " Причина движения
  APPEND itab.
ENDLOOP.
*--наполняем таблицу itab позициями документа--->
*<---Собственно сам ФМ BAPI для создания документа материала через семейство транзакций mb01
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
  EXPORTING
    GOODSMVT_HEADER             = head_input
    GOODSMVT_CODE               = '05'
  IMPORTING
    GOODSMVT_HEADRET = head_output
  TABLES
    goodsmvt_item               = itab
*   GOODSMVT_SERIALNUMBER       =
  RETURN                        = errmsg.
*---Собственно сам ФМ BAPI для создания документа материала через семейство транзакций mb01-->

COMMIT WORK.
write:/ 'НомерДокументаМатериала', 'ГодДокументаМатериала', 'Создано позиций'.
write:/ head_output-MAT_DOC, '               ', head_output-DOC_YEAR, '                  ',t.
IF errmsg-message IS INITIAL.
write:/ 'Все зашибись!'.
ELSE.
write:/ errmsg-message.

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, мар 31 2009, 08:26 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Доброго всем времени суток!
С помощью CALL FUNCTION 'BAPI_GOODSMVT_CREATE' создаю документ материала с набором номеров векселей в позициях этого документа. Данное решение описано выше.
Но вот опять проблема. Запускаю транзакцию MIGO, выбираю "Просмотр", забиваю номер толькочто созданного документа (создан с помощью 'BAPI_GOODSMVT_CREATE' ), выбираю закладку "партия". В ней нажимаю кнопку "Классификация". В открывшемся экране выбираю закладку "Классификация". на подэкране "Общее" есть список названий признаков и их значений. Так вот у меня там есть название признака "Номер векселя", но напротив него в поле "Значение признака" ничего не прописано, хотя должен быть указан номер.
При создании документа материала через MIGO , это поле заполнялось автоматически.

Вопрос - как сделать так, чтобы это поле заполнялось? ))

ПОшарил по форуму, нашел ФМ 'VB_BATCH_DETERMINATION'. Как я понял, для создания/редактирования партии. Попытался применить его, но результатов это не принесло. Да и среди того, что он возвращает, нет поля ATWRT "Значение признака".
Такое же поле есть в таблице AUSP, но его заполнение тоже ничего не принесло.
Что то мне совсем непонятно что делать и FI-щик, который ставил эту задачу, также в затруднении.

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, мар 31 2009, 09:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
У меня было проблема при создании заказа ТОРО, дело в том что логика присвоения номера заказа, была прописана в user-exit-е, и мой бипи не правильно отрабатывал(присваивал не тот номер который нужно), может быть у вас похожая ситуация с автоматическим заполнением значения признака?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, мар 31 2009, 09:36 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Ммм... Вообще, я склоняюсь к тому, что BAPI 'BAPI_GOODSMVT_CREATE' работает нормально и заполняет все что надо. На вход ему подаем различные параметры, а также таблицу с перечнем партий. Ну вот этот ФМ и работает с тем что есть. Но видимо предпологается что партии уже ранне были созданы. А я ему записываю во входную таблицу партии, которых еще нет. В документе материала они конечно прописываются.
Я думаю, что у партии есть какой то набор атрибутов, который должен создаваться не выше указанным ФМ, а с помощью каких то других инструментов (транзакций или специлизированных ФМ).

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, мар 31 2009, 10:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Заполнение признаков партии можно сделать в BAdI MB_MIGO_BADI, метод POST_DOCUMENT.
Для изменения классификации нужно использовать BAPI_OBJCL_CHANGE.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Вт, мар 31 2009, 10:32 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Спасибо, буду смотреть

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: передача значений в транзакцию MIGO
СообщениеДобавлено: Ср, апр 01 2009, 06:51 
Специалист
Специалист

Зарегистрирован:
Чт, сен 04 2008, 12:40
Сообщения: 119
Откуда: Пермь
Пол: Мужской
Г-ну Удаву, огромное спасибо!
Сделал вот так.
Code:
... Селекционный экран, где задаем номера бланков векселей, которые являются
номерами несуществующих пока еще партий
...ФМ   CALL FUNCTION 'BAPI_GOODSMVT_CREATE' " Создание документа материала
                                                                               с бланками векселей в позициях
А теперь заполняем значение признака (В тр-ии MIGO
просматриваем созданный документ материала: кнопка "Классификация"/закладка "Классификация")
*--Определение данных для ФМ 'BAPI_OBJCL_CHANGE'.
data: git_bapi1003 type table of bapi1003_alloc_values_num,
      git_values_char type table of bapi1003_alloc_values_char,
      git_values_curr type table of bapi1003_alloc_values_curr,
      git_bapiret2 type table of bapiret2,
      ls_bapiret2 type bapiret2.

" Определение промежуточных переменных
data: gs_bapi1003 type bapi1003_alloc_values_num,
      gs_values_char type bapi1003_alloc_values_char,
      gs_values_curr type bapi1003_alloc_values_char,
      gc_flag_x(1) type c value 'X'.

  IF ERRMSG-MESSAGE IS INITIAL. " заполнять поле только в случае удачной проводки
    LOOP AT itab. " Это таблица goodsmvt_item в ФМ   'BAPI_GOODSMVT_CREATE'
      CONCATENATE '000000000100001842' ITAB-BATCH INTO objek.
      SELECT * FROM INOB INTO CORRESPONDING FIELDS OF INOB
         WHERE KLART = '023' and
               OBJEK = objek.
      ENDSELECT.
*--Присвоение промежуточных данных данным для ФМ
      gs_values_char-charact    = 'NOMER_VEKSEL_SOB'. "Characteristics
      gs_values_char-value_char = ITAB-BATCH+1.       "characteristics value
      gs_values_char-CHARACT_DESCR = 'NOMER_VEKSEL_SOB'.
      gs_values_char-VALUE_NEUTRAL = ITAB-BATCH+1.
      append gs_values_char to git_values_char.

      CALL FUNCTION 'BAPI_OBJCL_CHANGE'
      EXPORTING

      objectkey           = objek            "Customer
      objecttable         = 'MCH1'
      classnum            = 'PRIZNAK_VEKSEL' "Class Number
      classtype           = '023'              "Class Type
* STATUS            = '1'
* STANDARDCLASS     =
* CHANGENUMBER      =
* KEYDATE           = SY-DATUM
* NO_DEFAULT_VALUES = ' '
* IMPORTING
* CLASSIF_STATUS    =

      TABLES

      allocvaluesnumnew   = git_bapi1003
      allocvaluescharnew  = git_values_char
      allocvaluescurrnew  = git_values_curr

      return              = git_bapiret2.

      CLEAR git_values_char.
      REFRESH git_values_char.

    ENDLOOP.
  ENDIF.

http://sapprograms.blogspot.com/2008/11/bapiobjclchange-for-modifying.html

_________________
Если долго биться головой об стену, то вскоре в стене появится небольшое отверстие ...


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

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


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

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


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

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