упаси меня боже от прямого инсерта в bseg
трабла такая: вручную создается документ, все тип топ, сделан сеанс пакетного ввода и вот программа:
Code:
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BKPF-BLDAT'
'310705'.
perform bdc_field using 'BKPF-BLART'
'ab'.
perform bdc_field using 'BKPF-BUKRS'
'1009'.
perform bdc_field using 'BKPF-BUDAT'
'310705'.
perform bdc_field using 'BKPF-MONAT'
'7'.
perform bdc_field using 'BKPF-WAERS'
'rub'.
perform bdc_field using 'BKPF-XBLNR'
'220000043405003'.
perform bdc_field using 'RF05A-NEWBS'
'40'.
perform bdc_field using 'RF05A-NEWKO'
'6804100000'.
perform bdc_dynpro using 'SAPMF05A' '0312'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BSEG-WRBTR'
'35770581,24'.
perform bdc_field using 'BSEG-FWBAS'
'198725451,32'.
perform bdc_field using 'BSEG-MWSKZ'
'dh'.
perform bdc_field using 'BSEG-ZUONR'
'1111111815'.
perform bdc_field using 'RF05A-NEWBS'
'50'.
perform bdc_field using 'RF05A-NEWKO'
'1906101000'.
perform bdc_field using 'BDC_SUBSCR'
'SAPMF05A'
& ' 0001COST_OBJ'.
perform bdc_dynpro using 'SAPMF05A' '0312'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-MWSKZ'.
perform bdc_field using 'BSEG-WRBTR'
'35770581,24'.
perform bdc_field using 'BSEG-FWBAS'
'198725451,32'.
perform bdc_field using 'BSEG-MWSKZ'
'ah'.
perform bdc_field using 'BDC_SUBSCR'
'SAPMF05A'
& ' 0001COST_OBJ'.
perform bdc_transaction using 'FB01'.
Но пакетный ввод по религиозным причинам использовать не хочется
написал такой код:
Code:
*------------ Заголовок документа -----------
BKP-BUKRS = MAIN_LIST-BUKRS.
BKP-BLART = 'AB'.
BKP-BUDAT = '31072005'.
BKP-BLDAT = '31072005'.
BKP-WAERS = 'RUB'.
BKP-MONAT = MAIN_LIST-MONAT.
BKP-XBLNR = '123'.
APPEND BKP.
NDS = MAIN_LIST-DMBTR_REESTR / 100 * 18.
*------------ первая позиция -----------------
CLEAR BSE.
BSE-NEWBS = '40'.
BSE-NEWKO = '6804100000'.
BSE-WRBTR = NDS.
BSE-FWBAS = WRBTR = MAIN_LIST-DMBTR_REESTR.
PERFORM CONVERT_SUM CHANGING BSE-WRBTR.
PERFORM CONVERT_SUM CHANGING BSE-FWBAS.
BSE-ZUONR = ZUONR.
BSE-MWSKZ = 'DH'.
BSE-ZFBDT = BKP-BLDAT.
APPEND BSE.
*------------ вторая позиция -----------------
CLEAR BSE.
BSE-NEWBS = '50'.
BSE-WRBTR = NDS.
BSE-FWBAS = WRBTR = MAIN_LIST-DMBTR_REESTR.
PERFORM CONVERT_SUM CHANGING BSE-WRBTR.
PERFORM CONVERT_SUM CHANGING BSE-FWBAS.
BSE-MWSKZ = 'AH'.
BSE-NEWKO = '1906101000'.
APPEND BSE.
CALL FUNCTION 'AC_DOCUMENT_DIRECT_INPUT'
IMPORTING
E_BUKRS = BUKRS
E_GJAHR = GJAHR
E_BELNR = BELNR
TABLES
T_BBKPF = BKP
T_BBSEG = BSE
T_BBTAX = BTAX
EXCEPTIONS
ERROR_MESSAGE = 01.
...и получаю сообщение 'В строках основного счета обработка суммы налога невозможна'.
Где я не прав?