Текущее время: Пн, июл 21 2025, 02:10

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


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


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 11:46 
Специалист
Специалист

Зарегистрирован:
Вт, мар 13 2012, 17:08
Сообщения: 108
hub2002 написал(а):
В принципе будут сложности... можно посмотреть...


К сожаления я в этом "0", поэтому могу только просить готовое решение.
Может быть кто-то уже решал подобные проблемы?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 11:57 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
Вот подпрограмма для изменения инфо-записи.
Вам необходимо переделать на удаление.
используется LSMW.
Code:
    clear it_bdc.

    perform bdc_dynpro using 'SAPMM06I' '0100'.
    perform bdc_field using 'BDC_CURSOR' 'EINA-LIFNR'.
    perform bdc_field using 'BDC_OKCODE' '/00'.
    perform bdc_field using 'EINA-LIFNR' wa-lifnr.
    perform bdc_field using 'EINA-MATNR' wa-matnr.
    perform bdc_field using 'EINE-EKORG' wa-ekorg.

*if isw = 'X'.
    perform bdc_field using 'EINE-WERKS' '1000'.
*else.
*    perform bdc_field using 'EINE-WERKS' werks.
*endif.

    perform bdc_field using 'RM06I-NORMB' 'X'.

    perform bdc_dynpro using 'SAPMM06I' '0101'.
    perform bdc_field using 'BDC_CURSOR' 'EINA-MAHN1'.
    perform bdc_field using 'BDC_OKCODE' '/00'.

    perform bdc_dynpro using 'SAPMM06I' '0102'.
    perform bdc_field using 'BDC_CURSOR' 'EINE-EKGRP'.
    perform bdc_field using 'BDC_OKCODE' '=KO'.
    perform bdc_field using 'EINE-APLFZ' wa-aplfz.
    perform bdc_field using 'EINE-EKGRP' wa-ekgrp.

    perform bdc_dynpro using 'SAPLV14A' '0102'.
    perform bdc_field using 'BDC_CURSOR' 'BLOCK1'.
    perform bdc_field using 'BDC_OKCODE' '=NEWD'.

    perform bdc_dynpro using 'SAPMV13A' '0201'.
    perform bdc_field using 'BDC_CURSOR' 'KONP-KONWA(01)'.
    perform bdc_field using 'BDC_OKCODE' '=SICH'.
    perform bdc_field using 'RV13A-DATAB' wa-dat1.
    perform bdc_field using 'RV13A-DATBI' wa-dat2.
    perform bdc_field using 'KONP-KBETR(01)' wa-netpr.
    perform bdc_field using 'KONP-KONWA(01)' 'RUB'.
    perform bdc_field using 'KONP-KPEIN(01)' '1'.

    if showerrs = 'X'.
*    bdc_opt-dismode = 'E'.
      bdc_opt-dismode = 'A'.
    else.
      bdc_opt-dismode = 'P'.
    endif.
    bdc_opt-updmode = 'S'.
    bdc_opt-defsize = 'X'.

    perform bdc_call_transaction using 'ME12'.


И подпрограммы используемые:
Code:
form bdc_dynpro using program dynpro.
  perform check_xdezp.

  clear wa_bdc.
  wa_bdc-program  = program.
  wa_bdc-dynpro   = dynpro.
  wa_bdc-dynbegin = 'X'.
  append wa_bdc to it_bdc.
endform.                    "BDC_DYNPRO

*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
*       запись инф о поле в bdc-таблицу
*----------------------------------------------------------------------*
form bdc_field using fnam fval.
  clear wa_bdc.
  wa_bdc-fnam = fnam.
  wa_bdc-fval = fval.

  if wa_bdc-fval(100) = '                                                                                                    '
  or wa_bdc-fval(100) = '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'.
    wa_bdc-fval = wa_bdc-fval+100.

    translate wa_bdc-fval using ', '.

    if bdc_dec_sep = ','.
      translate wa_bdc-fval using '.,'.
    endif.

    condense wa_bdc-fval no-gaps.
  endif.

  append wa_bdc to it_bdc.
endform.                    "BDC_FIELD


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 11:59 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
Или еще вот...
Но тут тоже создание или изменение:
Code:
  loop at it_in into wa_in.
    CALL FUNCTION 'Z_DC_PAD_MATNR'
      CHANGING
        MATNR         = wa_in-matnr.
    CALL FUNCTION 'Z_DC_PAD_LIFNR'
      CHANGING
        LIFNR         = wa_in-lifnr.
    select count( * ) from eina
      into i
      where lifnr = wa_in-lifnr and
            matnr = wa_in-matnr.
    if i > 0.
      tr = 'ME12'.
    else.
      tr = 'ME11'.
    endif.

    clear: bdc.
    clear wa_b. wa_b-program  = 'SAPMM06I'. wa_b-dynpro = '0100'. wa_b-dynbegin = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'BDC_OKCODE'. wa_b-fval = '/00'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-LIFNR'. wa_b-fval = wa_in-lifnr. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-MATNR'. wa_b-fval = wa_in-matnr. append wa_b to bdc.

    clear wa_b. wa_b-program  = 'SAPMM06I'. wa_b-dynpro = '0101'. wa_b-dynbegin = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'BDC_OKCODE'. wa_b-fval = '=TEXT'. append wa_b to bdc.

    clear wa_b. wa_b-program  = 'SAPMM06I'. wa_b-dynpro = '0103'. wa_b-dynbegin = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'BDC_OKCODE'. wa_b-fval = '=BU'. append wa_b to bdc.

    dlinme = dlinme0.
    s = wa_in-text.
    n = strlen( s ).
    i1 = n div dlinme0.
    i2 = n mod dlinme0.
    if i2 > 1.
      i1 = i1 + 1.
    endif.
    do i1 times.
      s1 = sy-index.
      s1 = s1(1).
      concatenate 'RM06I-' 'LTEX' s1 '(01)' into s1.
      i3 = ( sy-index - 1 ) * dlinme.
      if i3 < n.
        i5 = i3 + dlinme.
        if i5 > n.
          dlinme = dlinme - ( i5 - n ).
        endif.
        s2 = s+i3(dlinme).
        clear wa_b. wa_b-fnam = s1. wa_b-fval = s2. append wa_b to bdc.
      endif.
    enddo.

    opt-dismode = 'P'.
    opt-updmode = 'S'.
    opt-defsize = 'X'.

    call transaction tr
      using bdc
      options from opt
      messages into msgs1.

      loop at msgs1 into wa_msgs1.
        if ( wa_msgs1-msgtyp = 'E' ) or ( wa_msgs1-msgtyp = 'A' ) or ( sy-subrc <> 0 ).
          MOVE-CORRESPONDING wa_msgs1 to wa_error.
          append wa_error to err_msg.
        endif.
      endloop.
      loop at err_msg into wa_error.
        wa_err_text = ''.
        perform get_message using wa_error changing wa_err_text.
        append wa_err_text to errors.
      endloop.
      loop at errors into wa_errors.
        write / wa_errors.
      endloop.

  endloop.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 12:05 
Специалист
Специалист

Зарегистрирован:
Вт, мар 13 2012, 17:08
Сообщения: 108
to hub2002

Очень большое спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 12:27 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
Вот что быстро накидалось:
Инфо записи будет помечены на удаление полностью.
соответственно это необходимо поместить в loop
а в таблицу выбрать записи которые необходимо пометить на удаление.

Code:
data:
  wa_in type eina,
  wa_in1 type eine,
  bdc               type table of bdcdata,
  opt               type ctu_params,
  wa_b              type bdcdata,
  msgs1             type table of bdcmsgcoll,
  wa_msgs1          type bdcmsgcoll.

    clear: bdc.
    clear wa_b. wa_b-program  = 'SAPMM06I'. wa_b-dynpro = '0100'. wa_b-dynbegin = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'BDC_OKCODE'. wa_b-fval = '/00'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-LIFNR'. wa_b-fval = wa_in-lifnr. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-MATNR'. wa_b-fval = wa_in-matnr. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-EKORG'. wa_b-fval = wa_in1-ekorg. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-WERKS'. wa_b-fval = wa_in1-werks. append wa_b to bdc.

    clear wa_b. wa_b-program  = 'SAPMM06I'. wa_b-dynpro = '0104'. wa_b-dynbegin = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'BDC_OKCODE'. wa_b-fval = '=BU'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINA-LOEKZ'. wa_b-fval = 'X'. append wa_b to bdc.
    clear wa_b. wa_b-fnam = 'EINE-LOEKZ'. wa_b-fval = 'X'. append wa_b to bdc.

    opt-dismode = 'P'.
    opt-updmode = 'S'.
    opt-defsize = 'X'.

    call transaction 'ME15'
      using bdc
      options from opt
      messages into msgs1.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение инфозаписи закупки
СообщениеДобавлено: Ср, июл 18 2012, 14:30 
Специалист
Специалист

Зарегистрирован:
Вт, мар 13 2012, 17:08
Сообщения: 108
to hub2002:

Большое спасибо


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

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


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

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


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

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