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

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


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

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


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

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