Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

COPA Fields using the FM PRELIMINARY_POSTING_FB01

Former Member
0 Kudos

Hi everyone,

I am using the Function modules PRELIMINARY_POSTING_FB01 to park the GL invoice documents. I am not able to populate the COPA fields of the document. How do we pass copa fields to the FM PRELIMINARY_POSTING_FB01?

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

First populate PAOBJNR, PASUBNR from function module COPA_PRELIMINARY_SEGMENT and pass these to PRELIMINARY_POSTING_FB01 - TBSEG-PAOBJNR AND TBSEG-PASUBNR.

Populating PAOBJNR:

FORM get_paobjnr TABLES pt_tbkpf TYPE gty_tbkpf

pt_tbseg TYPE gty_tbseg.

DATA: lv_tabix TYPE sy-tabix,

lv_kokrs TYPE kokrs,

wa_cobl TYPE cobl,

wa_cobl1 TYPE cobl.

READ TABLE pt_tbkpf INTO wa_tbkpf INDEX 1.

READ TABLE gt_bukrs INTO wa_bukrs WITH KEY bukrs = wa_tbkpf-bukrs BINARY SEARCH.

IF sy-subrc = 0.

READ TABLE it_tka01 INTO wa_tka01 WITH KEY ktopl = wa_bukrs-ktopl BINARY SEARCH.

IF sy-subrc = 0.

lv_kokrs = wa_tka01-kokrs.

ENDIF.

ENDIF.

LOOP AT it_bseg INTO wa_bseg WHERE ( copa_kunnr IS NOT INITIAL OR

copa_matnr IS NOT INITIAL OR

copa_werks IS NOT INITIAL OR

copa_vkorg IS NOT INITIAL OR

copa_vtweg IS NOT INITIAL OR

copa_spart IS NOT INITIAL OR

copa_pspnr IS NOT INITIAL OR

copa_prctr IS NOT INITIAL ) AND

copa_valid = c_x.

lv_tabix = sy-tabix.

wa_cobl-glvor = 'RFBU'.

wa_cobl-vorgn = 'RFBU'.

wa_cobl-process = 'BELEGPOS'.

wa_cobl-event = 'PRUEFEN'.

wa_cobl-budat = wa_tbkpf-budat.

wa_cobl-bldat = wa_tbkpf-bldat.

wa_cobl-bukrs = wa_tbkpf-bukrs.

wa_cobl-hkont = wa_bseg-hkont.

wa_cobl-koart = c_s.

wa_cobl-kokrs = lv_kokrs.

wa_cobl-gjahr = wa_tbkpf-gjahr.

wa_cobl-blart = wa_tbkpf-blart.

wa_cobl-bschl = wa_bseg-bschl.

wa_cobl-waers = wa_tbkpf-waers.

wa_cobl-wrbtr = wa_bseg-wrbtr.

wa_cobl-kunnr = wa_bseg-copa_kunnr.

wa_cobl-vkorg = wa_bseg-copa_vkorg.

wa_cobl-vtweg = wa_bseg-copa_vtweg.

wa_cobl-spart = wa_bseg-copa_spart.

wa_cobl-matnr = wa_bseg-copa_matnr.

wa_cobl-werks = wa_bseg-copa_werks.

CALL FUNCTION 'COPA_PROFITABILITY_SEGMENT'

EXPORTING

dialog = space

i_cobl = wa_cobl

i_update = c_x

IMPORTING

e_cobl = wa_cobl1

EXCEPTIONS

abnormal_leave = 1

btrans_not_relevant = 2

error_copa = 3

OTHERS = 4.

IF sy-subrc = 0.

READ TABLE pt_tbseg INTO wa_tbseg INDEX lv_tabix.

IF sy-subrc = 0.

wa_tbseg-paobjnr = wa_cobl1-paobjnr.

wa_tbseg-pasubnr = wa_cobl1-pasubnr.

MODIFY pt_tbseg FROM wa_tbseg INDEX sy-tabix TRANSPORTING paobjnr pasubnr.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " GET_PAOBJNR

1 REPLY 1

Former Member
0 Kudos

Hi,

First populate PAOBJNR, PASUBNR from function module COPA_PRELIMINARY_SEGMENT and pass these to PRELIMINARY_POSTING_FB01 - TBSEG-PAOBJNR AND TBSEG-PASUBNR.

Populating PAOBJNR:

FORM get_paobjnr TABLES pt_tbkpf TYPE gty_tbkpf

pt_tbseg TYPE gty_tbseg.

DATA: lv_tabix TYPE sy-tabix,

lv_kokrs TYPE kokrs,

wa_cobl TYPE cobl,

wa_cobl1 TYPE cobl.

READ TABLE pt_tbkpf INTO wa_tbkpf INDEX 1.

READ TABLE gt_bukrs INTO wa_bukrs WITH KEY bukrs = wa_tbkpf-bukrs BINARY SEARCH.

IF sy-subrc = 0.

READ TABLE it_tka01 INTO wa_tka01 WITH KEY ktopl = wa_bukrs-ktopl BINARY SEARCH.

IF sy-subrc = 0.

lv_kokrs = wa_tka01-kokrs.

ENDIF.

ENDIF.

LOOP AT it_bseg INTO wa_bseg WHERE ( copa_kunnr IS NOT INITIAL OR

copa_matnr IS NOT INITIAL OR

copa_werks IS NOT INITIAL OR

copa_vkorg IS NOT INITIAL OR

copa_vtweg IS NOT INITIAL OR

copa_spart IS NOT INITIAL OR

copa_pspnr IS NOT INITIAL OR

copa_prctr IS NOT INITIAL ) AND

copa_valid = c_x.

lv_tabix = sy-tabix.

wa_cobl-glvor = 'RFBU'.

wa_cobl-vorgn = 'RFBU'.

wa_cobl-process = 'BELEGPOS'.

wa_cobl-event = 'PRUEFEN'.

wa_cobl-budat = wa_tbkpf-budat.

wa_cobl-bldat = wa_tbkpf-bldat.

wa_cobl-bukrs = wa_tbkpf-bukrs.

wa_cobl-hkont = wa_bseg-hkont.

wa_cobl-koart = c_s.

wa_cobl-kokrs = lv_kokrs.

wa_cobl-gjahr = wa_tbkpf-gjahr.

wa_cobl-blart = wa_tbkpf-blart.

wa_cobl-bschl = wa_bseg-bschl.

wa_cobl-waers = wa_tbkpf-waers.

wa_cobl-wrbtr = wa_bseg-wrbtr.

wa_cobl-kunnr = wa_bseg-copa_kunnr.

wa_cobl-vkorg = wa_bseg-copa_vkorg.

wa_cobl-vtweg = wa_bseg-copa_vtweg.

wa_cobl-spart = wa_bseg-copa_spart.

wa_cobl-matnr = wa_bseg-copa_matnr.

wa_cobl-werks = wa_bseg-copa_werks.

CALL FUNCTION 'COPA_PROFITABILITY_SEGMENT'

EXPORTING

dialog = space

i_cobl = wa_cobl

i_update = c_x

IMPORTING

e_cobl = wa_cobl1

EXCEPTIONS

abnormal_leave = 1

btrans_not_relevant = 2

error_copa = 3

OTHERS = 4.

IF sy-subrc = 0.

READ TABLE pt_tbseg INTO wa_tbseg INDEX lv_tabix.

IF sy-subrc = 0.

wa_tbseg-paobjnr = wa_cobl1-paobjnr.

wa_tbseg-pasubnr = wa_cobl1-pasubnr.

MODIFY pt_tbseg FROM wa_tbseg INDEX sy-tabix TRANSPORTING paobjnr pasubnr.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " GET_PAOBJNR