[b]4.0[/b] У нас такой случай. Мы call t... ME21 создаём заказ с одной позицией со ссылкой на контракт. Работает такой код:
[color=red]перед call t... устанавливаем параметр EVO в 01[/color]этим подавляем 120 экран (просмотр в одну строку)
принудительно выводим 121 (просмотр в две строки)
Заказ с одной позицией с большой долей вероятности умещается на экране пользователя (расширение не меньшее 800 600 экран полностью развернут) Пакетный ввод не валится...
[code]refresh bdcdata.
perform bdc_dynpro using 'SAPMM06E' '0100'.
perform bdc_field using: 'EKKO-LIFNR' space,
'RM06E-BSART' t_sp-bsart,
'RM06E-BEDAT' wl_data,
'RM06E-BSTNR' space,
'EKKO-EKORG' space,
'EKKO-EKGRP' space,
'RM06E-EPSTP' space,
'RM06E-KNTTP' space,
'RM06E-EEIND' space,
'RM06E-LPEIN' 'T',
'RM06E-WERKS' space,
'RM06E-LGORT' space,
'RM06E-MATKL' space,
'RM06E-BEDNR' space,
'RM06E-PRDAT' space,
'RM06E-LTSNR' space,
'RM06E-AKTNR' space,
'RM06E-KZABS' space,
'BDC_OKCODE' '=SL'.
perform bdc_dynpro using 'SAPMM06E' '0502'.
perform bdc_field using: 'EKKO-KONNR' t_sp-ebeln,
'RM06E-KTRPV' t_sp-ebelp,
'RM06E-KTRPB' space,
'BDC_OKCODE' '=ENTE'.
perform bdc_dynpro using 'SAPMM06E' '0124'.
perform bdc_field using: 'EKPO-MENGE(01)' wl_ktmng,
'RM06E-LPEIN(01)' 'T',
'RM06E-EEIND(01)' space,
'EKPO-LGORT(01)' space,
'BDC_CURSOR' 'RM06E-EVRTP(01)',
'BDC_OKCODE' '=REFH'.
perform bdc_dynpro using 'SAPMM06E' '0111'.
if t_sp-bsart .......
if of_lifnr ......
perform bdc_field using 'EKPO-KNTTP' 'S'.
else.
perform bdc_field using 'EKPO-KNTTP' 'K'.
endif.
elseif t_sp-bsart......
perform bdc_field using 'EKPO-KNTTP' 'V'.
endif.
perform bdc_field using: 'EKPO-TXZ01' t_sp-xz01,
'EKPO-LGORT' space,
'EKPO-MENGE' wl_ktmng,
'EKPO-SPINF' ' ',
'EKPO-NETPR' wl_netpr,
'EKPO-PEINH' wl_peinh,
'EKPO-BPRME' t_sp-bprme,
'EKPO-SCHPR' space,
'EKPO-BPUMN' '1',
'EKPO-BPUMZ' '1',
'EKPO-PRSDR' 'X',
'RM06E-EEIND' wl_data,
'RM06E-LPEIN' 'T',
'EKPO-MAHN1' space,
'EKPO-BSTAE' space,
'EKPO-KZABS' space,
'EKET-SLFDT' wl_data,
'EKPO-MAHN2' space,
'EKPO-LABNR' space,
'EKPO-MAHN3' space,
'EKPO-BEDNR' space,
'EKPO-WEBAZ' space,
'EKPO-IDNLF' space,
'EKPO-UNTTO' space,
'EKPO-INSMK' space,
'EKPO-UEBTO' space,
'EKPO-UEBTK' space.
if of_lifnr ......
perform bdc_field using: 'EKPO-MWSKZ' t_sp-MWSKZ
'EKPO-BWTAR' t_sp-bwtar,
'EKPO-WEUNB' '',
'EKPO-REPOS' 'X',
'EKPO-WEPOS' '',
'EKPO-EVERS' space,
'EKPO-WEBRE' '',
'BDC_OKCODE' '=KN'.
else.
perform bdc_field using: 'EKPO-MWSKZ' t_sp-mwskz,
'EKPO-BWTAR' t_sp-bwtar,
'EKPO-WEUNB' '',
'EKPO-REPOS' 'X',
'EKPO-WEPOS' 'X',
'EKPO-EVERS' space,
'EKPO-WEBRE' 'X',
'BDC_OKCODE' '=KN'.
endif.
perform bdc_dynpro using 'SAPMM06E' '0511'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
if t_sp-bsart .....
perform bdc_field using 'COBL-KOSTL' t_sp-kostl.
endif.
perform bdc_field using: 'COBL-FISTL' t_sp-fistl,
'COBL-FIPOS' t_sp-fipos.
perform bdc_dynpro using 'SAPMM06E' '0121'.
perform bdc_field using 'BDC_OKCODE' '=BU'.
if t_sp-bsart ......
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
endif.
get parameter id 'EVO' field wl_oldevo.
if wl_oldevo ne '01'.
set parameter id 'EVO' field '01'.
endif.
call transaction 'ME21' using bdcdata mode 'E'
update 'S'
messages into t_mes.
get parameter id 'EVO' field wl_evo.
if wl_evo ne wl_oldevo.
set parameter id 'EVO' field wl_oldevo.
endif. [/code]
[/code]
|
|