Текущее время: Вс, июл 20 2025, 17:23

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


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

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