четверг, 10 ноября 2011 г.
четверг, 14 июля 2011 г.
Дебиторский счет в фактуре
STATICS ls_t001 TYPE t001.
DATA ls_vbrk TYPE vbrk.
DATA ls_vbrp TYPE vbrp.
DATA ls_tvfk TYPE tvfk.
DATA ls_komkcv TYPE komkcv.
DATA ls_kompcv TYPE kompcv.
DATA ls_c000 TYPE c000.
SELECT SINGLE *
INTO ls_vbrk
FROM vbrk
WHERE vbeln EQ im_vbeln.
CHECK sy-subrc EQ 0.
SELECT SINGLE *
INTO ls_vbrp
FROM vbrp
WHERE vbeln EQ im_vbeln
AND posnr EQ im_posnr.
CHECK sy-subrc EQ 0.
SELECT SINGLE *
INTO ls_tvfk
FROM tvfk
WHERE fkart EQ ls_vbrk-fkart.
CLEAR ls_komkcv.
MOVE-CORRESPONDING ls_vbrk TO ls_komkcv.
IF ls_t001-bukrs NE ls_vbrk-bukrs.
SELECT SINGLE *
INTO ls_t001
FROM t001
WHERE bukrs EQ ls_vbrk-bukrs.
ENDIF.
ls_komkcv-ktopl = ls_t001-ktopl.
ls_komkcv-kappl = ls_tvfk-kappl.
CLEAR ls_kompcv.
MOVE-CORRESPONDING ls_vbrp TO ls_kompcv.
CALL FUNCTION 'ACCOUNT_ALLOCATION_GENERAL'
EXPORTING
i_application = 'VB'
i_scheme = ls_tvfk-kalsmcb
i_header_communication = ls_komkcv
i_item_communication = ls_kompcv
IMPORTING
e_c000 = ls_c000.
re_saknr = ls_c000-sakn1.
DATA ls_vbrk TYPE vbrk.
DATA ls_vbrp TYPE vbrp.
DATA ls_tvfk TYPE tvfk.
DATA ls_komkcv TYPE komkcv.
DATA ls_kompcv TYPE kompcv.
DATA ls_c000 TYPE c000.
SELECT SINGLE *
INTO ls_vbrk
FROM vbrk
WHERE vbeln EQ im_vbeln.
CHECK sy-subrc EQ 0.
SELECT SINGLE *
INTO ls_vbrp
FROM vbrp
WHERE vbeln EQ im_vbeln
AND posnr EQ im_posnr.
CHECK sy-subrc EQ 0.
SELECT SINGLE *
INTO ls_tvfk
FROM tvfk
WHERE fkart EQ ls_vbrk-fkart.
CLEAR ls_komkcv.
MOVE-CORRESPONDING ls_vbrk TO ls_komkcv.
IF ls_t001-bukrs NE ls_vbrk-bukrs.
SELECT SINGLE *
INTO ls_t001
FROM t001
WHERE bukrs EQ ls_vbrk-bukrs.
ENDIF.
ls_komkcv-ktopl = ls_t001-ktopl.
ls_komkcv-kappl = ls_tvfk-kappl.
CLEAR ls_kompcv.
MOVE-CORRESPONDING ls_vbrp TO ls_kompcv.
CALL FUNCTION 'ACCOUNT_ALLOCATION_GENERAL'
EXPORTING
i_application = 'VB'
i_scheme = ls_tvfk-kalsmcb
i_header_communication = ls_komkcv
i_item_communication = ls_kompcv
IMPORTING
e_c000 = ls_c000.
re_saknr = ls_c000-sakn1.
пятница, 25 февраля 2011 г.
Export to Excel via XML transformation
*&---------------------------------------------------------------------*
*& Form CREATE_XLS
*&---------------------------------------------------------------------*
* Вывод XLS
*----------------------------------------------------------------------*
FORM create_xls USING p_sel ps_hdr pt_xls TYPE table.
DATA lv_temp_dir TYPE string.
DATA lv_filename TYPE string.
DATA lr_xml TYPE REF TO if_ixml.
DATA lr_document TYPE REF TO if_ixml_document.
DATA lr_stream_factory TYPE REF TO if_ixml_stream_factory.
DATA lr_istream TYPE REF TO if_ixml_istream.
DATA lr_ostream TYPE REF TO if_ixml_ostream.
DATA lt_data_xml TYPE swxmlcont.
DATA lo_excel TYPE ole2_object.
DATA lo_wbook TYPE ole2_object.
DATA lo_abook TYPE ole2_object.
DATA lv_rc TYPE char8.
DATA lv_trans_name TYPE char30.
* Директория TEMP
cl_gui_frontend_services=>get_temp_directory( CHANGING temp_dir = lv_temp_dir ).
cl_gui_cfw=>flush( ).
CONCATENATE lv_temp_dir '\' 'Выгрузка_' sy-datum '_' sy-timlo '.xls'
INTO lv_filename.
* Создание XLM
lr_xml = cl_ixml=>create( ).
lr_document = lr_xml->create_document( ).
lr_stream_factory = lr_xml->create_stream_factory( ).
lr_ostream = lr_stream_factory->create_ostream_itable( table = lt_data_xml[] ).
* Трансформация
CONCATENATE 'ZTR_NAME' p_sel
INTO lv_trans_name.
CALL TRANSFORMATION (lv_trans_name)
SOURCE is_hdr = ps_hdr it_outtab = pt_xls[]
RESULT XML lr_ostream.
* Выгрузка на локальную машину
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = lv_filename
filetype = 'BIN'
CHANGING
data_tab = lt_data_xml[]
EXCEPTIONS
file_write_error = 1
OTHERS = 99.
* Преобразование
CREATE OBJECT lo_excel 'Excel.Application'.
SET PROPERTY OF lo_excel 'Visible' = 0.
SET PROPERTY OF lo_excel 'DisplayAlerts' = 'False'.
GET PROPERTY OF lo_excel 'WorkBooks' = lo_wbook.
CALL METHOD OF lo_wbook 'Open' = lv_rc
EXPORTING
#1 = lv_filename.
GET PROPERTY OF lo_excel 'ActiveWorkBook' = lo_abook.
CALL METHOD OF lo_abook 'SaveAs' = lv_rc
EXPORTING
#1 = lv_filename
#2 = 56.
CALL METHOD OF lo_abook 'Close'.
CALL METHOD OF lo_excel 'Quit'.
CLEAR: lo_excel, lo_wbook.
* Открытие файла
cl_gui_frontend_services=>execute( document = lv_filename operation = 'OPEN' ).
*
ENDFORM. " CREATE_XLS
transformation XXX
< xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:asx="http://www.sap.com/abapxml" version="1.0">
< xsl:strip-space elements="*"/>
< xsl:template match="/">
< ?xml version="1.0"?>
< ?mso-application progid="Excel.Sheet"?>
< xsl:processing-instruction name="mso-application" progid="Excel.Sheet"?>
< xsl:text?>progid="Excel.Sheet"?>
< /xsl:processing-instruction?>
< Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" * / Example of table fill < xsl:for-each select="asx:abap/asx:values/IT_OUTTAB/ZS_FI_EXCEL">
< Row ss:Height="13.5" ss:StyleID="s94">
< Cell ss:StyleID="s91">< xsl:value-of select="LIFNR_NAME"/>< /Data>< /Cell>
< /Row>
< /xsl:for-each>
*/ Example of single field in structure
< Cell ss:StyleID="s96">< xsl:value-of select="asx:abap/asx:values/IS_HDR/SUM_WRBTR"/>< /Data>< /Cell>
< /Workbook>
< /xsl:template>
< /xsl:transform>
*& Form CREATE_XLS
*&---------------------------------------------------------------------*
* Вывод XLS
*----------------------------------------------------------------------*
FORM create_xls USING p_sel ps_hdr pt_xls TYPE table.
DATA lv_temp_dir TYPE string.
DATA lv_filename TYPE string.
DATA lr_xml TYPE REF TO if_ixml.
DATA lr_document TYPE REF TO if_ixml_document.
DATA lr_stream_factory TYPE REF TO if_ixml_stream_factory.
DATA lr_istream TYPE REF TO if_ixml_istream.
DATA lr_ostream TYPE REF TO if_ixml_ostream.
DATA lt_data_xml TYPE swxmlcont.
DATA lo_excel TYPE ole2_object.
DATA lo_wbook TYPE ole2_object.
DATA lo_abook TYPE ole2_object.
DATA lv_rc TYPE char8.
DATA lv_trans_name TYPE char30.
* Директория TEMP
cl_gui_frontend_services=>get_temp_directory( CHANGING temp_dir = lv_temp_dir ).
cl_gui_cfw=>flush( ).
CONCATENATE lv_temp_dir '\' 'Выгрузка_' sy-datum '_' sy-timlo '.xls'
INTO lv_filename.
* Создание XLM
lr_xml = cl_ixml=>create( ).
lr_document = lr_xml->create_document( ).
lr_stream_factory = lr_xml->create_stream_factory( ).
lr_ostream = lr_stream_factory->create_ostream_itable( table = lt_data_xml[] ).
* Трансформация
CONCATENATE 'ZTR_NAME' p_sel
INTO lv_trans_name.
CALL TRANSFORMATION (lv_trans_name)
SOURCE is_hdr = ps_hdr it_outtab = pt_xls[]
RESULT XML lr_ostream.
* Выгрузка на локальную машину
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = lv_filename
filetype = 'BIN'
CHANGING
data_tab = lt_data_xml[]
EXCEPTIONS
file_write_error = 1
OTHERS = 99.
* Преобразование
CREATE OBJECT lo_excel 'Excel.Application'.
SET PROPERTY OF lo_excel 'Visible' = 0.
SET PROPERTY OF lo_excel 'DisplayAlerts' = 'False'.
GET PROPERTY OF lo_excel 'WorkBooks' = lo_wbook.
CALL METHOD OF lo_wbook 'Open' = lv_rc
EXPORTING
#1 = lv_filename.
GET PROPERTY OF lo_excel 'ActiveWorkBook' = lo_abook.
CALL METHOD OF lo_abook 'SaveAs' = lv_rc
EXPORTING
#1 = lv_filename
#2 = 56.
CALL METHOD OF lo_abook 'Close'.
CALL METHOD OF lo_excel 'Quit'.
CLEAR: lo_excel, lo_wbook.
* Открытие файла
cl_gui_frontend_services=>execute( document = lv_filename operation = 'OPEN' ).
*
ENDFORM. " CREATE_XLS
transformation XXX
< xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:asx="http://www.sap.com/abapxml" version="1.0">
< xsl:strip-space elements="*"/>
< xsl:template match="/">
< ?xml version="1.0"?>
< ?mso-application progid="Excel.Sheet"?>
< xsl:processing-instruction name="mso-application" progid="Excel.Sheet"?>
< xsl:text?>progid="Excel.Sheet"?>
< /xsl:processing-instruction?>
< Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" * / Example of table fill < xsl:for-each select="asx:abap/asx:values/IT_OUTTAB/ZS_FI_EXCEL">
< Row ss:Height="13.5" ss:StyleID="s94">
< Cell ss:StyleID="s91">< xsl:value-of select="LIFNR_NAME"/>< /Data>< /Cell>
< /Row>
< /xsl:for-each>
*/ Example of single field in structure
< Cell ss:StyleID="s96">< xsl:value-of select="asx:abap/asx:values/IS_HDR/SUM_WRBTR"/>< /Data>< /Cell>
< /Workbook>
< /xsl:template>
< /xsl:transform>
четверг, 24 февраля 2011 г.
POSTING_INTERFACE
IF NOT ls_bkpf_key_1 IS
INITIAL AND NOT ls_bkpf_key_2 IS INITIAL.
* Выравниванием получившиеся документы
CALL FUNCTION 'POSTING_INTERFACE_START'
EXPORTING
i_function = 'C'
i_mode = md_mode
EXCEPTIONS
OTHERS = 0.
* Header
ls_ftpost-stype = 'K'. "header indicator
ls_ftpost-count = 1.
ls_ftpost-fnam = 'BKPF-BLDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BLART'.
ls_ftpost-fval = 'KA'.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUKRS'.
ls_ftpost-fval = -bukrs.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-WAERS'.
ls_ftpost-fval = -unitpriceunit.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-XBLNR'.
ls_ftpost-fval = -recntxtold(16).
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BKTXT'.
ls_ftpost-fval = -recntxtold.
APPEND ls_ftpost TO lt_ftpost.
* Items for clearing
ls_ftclear-agkoa = 'K'.
ls_ftclear-agkon = -partner.
ls_ftclear-agbuk = -bukrs.
ls_ftclear-xnops = 'X'.
ls_ftclear-agums = ' '.
ls_ftclear-selfd = 'BELNR'.
ls_ftclear-selvon = ls_bkpf_key_1-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_1-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
ls_ftclear-selvon = ls_bkpf_key_2-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_2-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
CALL FUNCTION 'POSTING_INTERFACE_CLEARING'
EXPORTING
i_auglv = 'UMBUCHNG'
i_tcode = 'FB05'
IMPORTING
e_msgid = l_msgid
e_msgno = l_msgno
e_msgty = l_msgty
e_msgv1 = l_msgv1
e_msgv2 = l_msgv2
e_msgv3 = l_msgv3
e_msgv4 = l_msgv4
e_subrc = l_subrc
TABLES
t_blntab = lt_blntab
t_ftclear = lt_ftclear
t_ftpost = lt_ftpost
t_fttax = lt_fttax
EXCEPTIONS
clearing_procedure_invalid = 1
clearing_procedure_missing = 2
table_t041a_empty = 3
transaction_code_invalid = 4
amount_format_error = 5
too_many_line_items = 6
company_code_invalid = 7
screen_not_found = 8
no_authorization = 9
OTHERS = 10.
IF sy-subrc = 0 AND l_subrc = 0.
-status = mc_stat_good.
LOOP AT lt_blntab INTO ls_blntab.
ls_items-bukrs = ls_blntab-bukrs.
ls_items-lifnr = -partner.
ls_items-zuonr = -recnnr.
ls_items-flowtype = -flowtype.
ls_items-taxcode = -taxcode.
ls_items-belnr = ls_blntab-belnr.
ls_items-gjahr = ls_blntab-gjahr.
COLLECT ls_items INTO mt_items.
ENDLOOP.
ELSE.
IF sy-subrc <> 0.
es_message-msgty = sy-msgty.
es_message-msgid = sy-msgid.
es_message-msgno = sy-msgno.
es_message-msgv1 = sy-msgv1.
es_message-msgv2 = sy-msgv2.
es_message-msgv3 = sy-msgv3.
es_message-msgv4 = sy-msgv4.
ELSE.
es_message-msgty = l_msgty.
es_message-msgid = l_msgid.
es_message-msgno = l_msgno.
es_message-msgv1 = l_msgv1.
es_message-msgv2 = l_msgv2.
es_message-msgv3 = l_msgv3.
es_message-msgv4 = l_msgv4.
ENDIF.
ENDIF.
* Другой пример
AUGLV EINGZAHL
TCODE FB05
FTPOST[]
1 K 001 BKPF-BLDAT 25.05.2012
2 K 001 BKPF-BLART KZ
3 K 001 BKPF-BUKRS 0700
4 K 001 BKPF-BUDAT 25.05.2012
5 K 001 BKPF-WAERS EUR
6 K 001 BKPF-XBLNR GPB1 EURC 12525
7 K 001 BKPF-BKTXT 0000053400001
8 K 001 RF05A-AUGTX Поступление валюты. Договор пос
9 P 001 BSEG-BSCHL 40
10 P 001 BSEG-HKONT 5212011021
11 P 001 BSEG-WRBTR 2.500,00
12 P 001 BSEG-VALUT 25.05.2012
13 P 001 BSEG-ZUONR 0000053400001EUR
14 P 001 BSEG-SGTXT Поступление валюты. Договор пос
FTCLEAR[]
1 K 0005000011 0700 C BELNR 1500000021
2 K 0005000011 0700 C BELNR 1500000023
* Выравниванием получившиеся документы
CALL FUNCTION 'POSTING_INTERFACE_START'
EXPORTING
i_function = 'C'
i_mode = md_mode
EXCEPTIONS
OTHERS = 0.
* Header
ls_ftpost-stype = 'K'. "header indicator
ls_ftpost-count = 1.
ls_ftpost-fnam = 'BKPF-BLDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BLART'.
ls_ftpost-fval = 'KA'.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUKRS'.
ls_ftpost-fval = -bukrs.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BUDAT'.
WRITE l_datum TO ls_ftpost-fval DD/MM/YYYY.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-WAERS'.
ls_ftpost-fval = -unitpriceunit.
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-XBLNR'.
ls_ftpost-fval = -recntxtold(16).
APPEND ls_ftpost TO lt_ftpost.
ls_ftpost-fnam = 'BKPF-BKTXT'.
ls_ftpost-fval = -recntxtold.
APPEND ls_ftpost TO lt_ftpost.
* Items for clearing
ls_ftclear-agkoa = 'K'.
ls_ftclear-agkon = -partner.
ls_ftclear-agbuk = -bukrs.
ls_ftclear-xnops = 'X'.
ls_ftclear-agums = ' '.
ls_ftclear-selfd = 'BELNR'.
ls_ftclear-selvon = ls_bkpf_key_1-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_1-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
ls_ftclear-selvon = ls_bkpf_key_2-belnr.
ls_ftclear-selvon+10 = ls_bkpf_key_2-gjahr.
ls_ftclear-selvon+14 = '001'. "BELNR/GJAHR/BUZEI
CONDENSE ls_ftclear-selvon NO-GAPS.
APPEND ls_ftclear TO lt_ftclear.
CALL FUNCTION 'POSTING_INTERFACE_CLEARING'
EXPORTING
i_auglv = 'UMBUCHNG'
i_tcode = 'FB05'
IMPORTING
e_msgid = l_msgid
e_msgno = l_msgno
e_msgty = l_msgty
e_msgv1 = l_msgv1
e_msgv2 = l_msgv2
e_msgv3 = l_msgv3
e_msgv4 = l_msgv4
e_subrc = l_subrc
TABLES
t_blntab = lt_blntab
t_ftclear = lt_ftclear
t_ftpost = lt_ftpost
t_fttax = lt_fttax
EXCEPTIONS
clearing_procedure_invalid = 1
clearing_procedure_missing = 2
table_t041a_empty = 3
transaction_code_invalid = 4
amount_format_error = 5
too_many_line_items = 6
company_code_invalid = 7
screen_not_found = 8
no_authorization = 9
OTHERS = 10.
IF sy-subrc = 0 AND l_subrc = 0.
-status = mc_stat_good.
LOOP AT lt_blntab INTO ls_blntab.
ls_items-bukrs = ls_blntab-bukrs.
ls_items-lifnr = -partner.
ls_items-zuonr = -recnnr.
ls_items-flowtype = -flowtype.
ls_items-taxcode = -taxcode.
ls_items-belnr = ls_blntab-belnr.
ls_items-gjahr = ls_blntab-gjahr.
COLLECT ls_items INTO mt_items.
ENDLOOP.
ELSE.
IF sy-subrc <> 0.
es_message-msgty = sy-msgty.
es_message-msgid = sy-msgid.
es_message-msgno = sy-msgno.
es_message-msgv1 = sy-msgv1.
es_message-msgv2 = sy-msgv2.
es_message-msgv3 = sy-msgv3.
es_message-msgv4 = sy-msgv4.
ELSE.
es_message-msgty = l_msgty.
es_message-msgid = l_msgid.
es_message-msgno = l_msgno.
es_message-msgv1 = l_msgv1.
es_message-msgv2 = l_msgv2.
es_message-msgv3 = l_msgv3.
es_message-msgv4 = l_msgv4.
ENDIF.
ENDIF.
* Другой пример
AUGLV EINGZAHL
TCODE FB05
FTPOST[]
1 K 001 BKPF-BLDAT 25.05.2012
2 K 001 BKPF-BLART KZ
3 K 001 BKPF-BUKRS 0700
4 K 001 BKPF-BUDAT 25.05.2012
5 K 001 BKPF-WAERS EUR
6 K 001 BKPF-XBLNR GPB1 EURC 12525
7 K 001 BKPF-BKTXT 0000053400001
8 K 001 RF05A-AUGTX Поступление валюты. Договор пос
9 P 001 BSEG-BSCHL 40
10 P 001 BSEG-HKONT 5212011021
11 P 001 BSEG-WRBTR 2.500,00
12 P 001 BSEG-VALUT 25.05.2012
13 P 001 BSEG-ZUONR 0000053400001EUR
14 P 001 BSEG-SGTXT Поступление валюты. Договор пос
FTCLEAR[]
1 K 0005000011 0700 C BELNR 1500000021
2 K 0005000011 0700 C BELNR 1500000023
FB1S batch input
WRITE i_augdt TO lv_fval DD/MM/YYYY.
PERFORM bdc_dynpro USING 'SAPMF05A' '0131'.
PERFORM bdc_field USING:
'RF05A-AGKON' i_hkont,
'BKPF-BUDAT' lv_fval,
'BKPF-BUKRS' i_bukrs,
'BKPF-WAERS' i_waers,
'RF05A-XPOS1(03)' 'X',
'BDC_OKCODE' '=SLB'.
LOOP AT it_belnr ASSIGNING.
CONCATENATE i_augdt(4)
INTO lv_fval.
PERFORM bdc_dynpro USING 'SAPMF05A' '0733'.
PERFORM bdc_field USING:
'RF05A-FELDN(01)' 'BELNR',
'RF05A-SEL01(01)' lv_fval,
'BDC_OKCODE' '/00'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF05A' '0733'.
PERFORM bdc_field USING 'BDC_OKCODE' '=PA'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OMX'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=Z+'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_transaction USING 'FB1S'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0131'.
PERFORM bdc_field USING:
'RF05A-AGKON' i_hkont,
'BKPF-BUDAT' lv_fval,
'BKPF-BUKRS' i_bukrs,
'BKPF-WAERS' i_waers,
'RF05A-XPOS1(03)' 'X',
'BDC_OKCODE' '=SLB'.
LOOP AT it_belnr ASSIGNING
CONCATENATE
INTO lv_fval.
PERFORM bdc_dynpro USING 'SAPMF05A' '0733'.
PERFORM bdc_field USING:
'RF05A-FELDN(01)' 'BELNR',
'RF05A-SEL01(01)' lv_fval,
'BDC_OKCODE' '/00'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF05A' '0733'.
PERFORM bdc_field USING 'BDC_OKCODE' '=PA'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=OMX'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=Z+'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_transaction USING 'FB1S'.
понедельник, 31 января 2011 г.
ALV variant F4
FORM f4_alvariant USING p_handle
CHANGING p_variant
.
DATA: ls_var TYPE salv_s_layout ,
lr_layout TYPE REF TO cl_salv_layout ,
ls_key TYPE salv_s_layout_key .
ls_var-layout = p_variant .
ls_key-report = sy-repid .
ls_key-handle = p_handle .
CREATE OBJECT lr_layout .
CALL METHOD lr_layout->set_key
EXPORTING
value = ls_key.
CALL METHOD lr_layout->f4_layouts
RECEIVING
value = ls_var.
IF NOT ls_var-layout IS INITIAL .
p_variant = ls_var-layout .
ENDIF.
ENDFORM. " F4_ALVARIANT
CHANGING p_variant
.
DATA: ls_var TYPE salv_s_layout ,
lr_layout TYPE REF TO cl_salv_layout ,
ls_key TYPE salv_s_layout_key .
ls_var-layout = p_variant .
ls_key-report = sy-repid .
ls_key-handle = p_handle .
CREATE OBJECT lr_layout .
CALL METHOD lr_layout->set_key
EXPORTING
value = ls_key.
CALL METHOD lr_layout->f4_layouts
RECEIVING
value = ls_var.
IF NOT ls_var-layout IS INITIAL .
p_variant = ls_var-layout .
ENDIF.
ENDFORM. " F4_ALVARIANT
Подписаться на:
Сообщения (Atom)