Anlegen einer Kunden eignen Korrespondenzart.
- Zeitpunkt zum Anlegen und Drucken definieren SM30 TFKFBM. Kopieren von z.B. R830 und R835 Feld für Text eventuell über ALV-Layout dazu holen.
- SPRO > Anwendungsübergreifende Komponenten > Allgemeine Anwendungsfunktion > Korrespondenz > Korrenspondenzart definieren.
- Mit Transaktion FQB2 eventuell Felder hinterlegen die bei der Anlage eines Korrespondenzeintrags mit abgespeichert werden können. siehe FuBa FKK_FLD_2_CONTAINER
- SPRO > Anwendungsübergreifende Komponenten > Allgemeine Anwendungsfunktion > Korrespondenz > Standardformularklasse für Korresponden hinterlegen
- SPRO > Anwendungsübergreifende Komponenten > Allgemeine Anwendungsfunktion > Korrespondenz > Anwendungsformular für die Korrespondenz hinterlegen
- SPRO > Finanzwesen > VKK > Programmerweiterung >Zeitpunkte
- Zeitpunkt müssen erzeugt werden.
*FuBa zum Erzeugungszeitpunkt:
function zvm_cs_mi_eigent_sample_z835.
*\"----------------------------------------------------------------------
*\"*\"Lokale Schnittstelle:
*\" IMPORTING
*\" REFERENCE(X_LANGU) TYPE SY-LANGU DEFAULT SY-LANGU
*\" REFERENCE(X_FORMKEY) TYPE EPRINTPARAMS-FORMKEY DEFAULT
*\" 'ZKV_CS_MI_EIGENT'
*\" REFERENCE(X_DELAYED_PRINT) TYPE EPRINTPARAMS-DELAYED_PRINT
*\" DEFAULT 'X'
*\" REFERENCE(X_AUSWFORM) TYPE EAUS-AUSWFORM
*\" REFERENCE(X_REPRINT) TYPE REGEN-KENNZX
*\" REFERENCE(I_GPART) TYPE GPART_KK
*\" REFERENCE(I_ANLAGE) TYPE ANLAGE
*\" REFERENCE(I_FORM_TYP) TYPE SWU_FRMTYP
*\" REFERENCE(I_PRIVAT) TYPE ZE4U_HAUSHALTSKUNDE
*\" VALUE(I_VENDE) TYPE E_VENDE
*\" REFERENCE(I_EVBEGINN) TYPE DATS
*\" REFERENCE(I_EVENDE) TYPE DATS
*\" VALUE(I_AN1_DAT) TYPE VVEAANSCHD
*\" VALUE(I_AN2_DAT) TYPE VVEAANSCHD
*\" EXPORTING
*\" VALUE(Y_FORMKEY) TYPE EPRINTPARAMS-FORMKEY
*\" EXCEPTIONS
*\" ACTION_CANCELLED
*\" ACTION_FAILED
*\" BCONTACT_FAILED
*\"----------------------------------------------------------------------
data: l_rc type sysubrc,
l_no_formkey type rfgen-kennzx,
l_blocn type blocn_kk,
l_object_id type toa_dara-object_id,
ls_printparams type eprintparams,
ls_arc_index type toa_dara,
ls_arc_params type arc_params,
ls_dfkkcoh type dfkkcoh,
ls_fkkcoinfo type fkkcoinfo,
ls_recipient type swotobjid,
ls_bpc_obj type bpc_obj,
lt_objects type bpc_obj occurs 1,
lt_dfkkcoh type dfkkcoh occurs 5 with header line,
lt_dfkkcod type dfkkcod occurs 10 with header line,
lt_ranges1 like efg_ranges occurs 1 with header line,
lt_ranges2 like efg_ranges occurs 1 with header line,
lt_ranges3 like efg_ranges occurs 1 with header line,
lt_ranges4 like efg_ranges occurs 1 with header line,
lt_ranges5 like efg_ranges occurs 1 with header line,
lt_ranges6 like efg_ranges occurs 1 with header line,
lt_ranges7 like efg_ranges occurs 1 with header line,
lt_ranges8 like efg_ranges occurs 1 with header line,
lt_ranges9 like efg_ranges occurs 1 with header line.
define ld_fkk_fld_2_container.
add 1 to l_blocn.
call function 'FKK_FLD_2_CONTAINER'
exporting
i_cotyp = ls_dfkkcoh-cotyp
i_cokey = space
i_bloid = 'CNTR'
i_blocn = l_blocn
i_entid = &1
i_structcont = &2
importing
e_dfkkcod = lt_dfkkcod.
append lt_dfkkcod.
end-of-definition.
define ld_fkk_fld_2_lt_objects.
clear ls_bpc_obj.
ls_bpc_obj-objtype = co_objtype_contract.
ls_bpc_obj-objkey = &1.
append ls_bpc_obj to lt_objects.
end-of-definition.
define ld_fkk_fld_2_ranges.
clear &2.
if &1 is initial.
&2-sign = 'E'.
else.
&2-sign = 'I'.
&2-option = 'EQ'.
&2-low = &1.
endif.
append &2.
end-of-definition.
* fill objects -> Ablage als Kontoinformation
ls_arc_params-sap_object = co_objtype_account.
ls_arc_params-ar_object = co_doctype_account.
ls_arc_index-object_id = i_gpart.
if not x_reprint is initial.
clear: ls_arc_params-sap_object,
ls_arc_params-ar_object.
endif.
ls_dfkkcoh-cotyp = 'ZCOTYP'.
ls_dfkkcoh-spras = x_langu.
ls_dfkkcoh-gpart = i_gpart.
* read addrdnumber
clear ls_printparams.
if x_formkey is initial or
not x_auswform is initial.
clear l_no_formkey.
else.
l_no_formkey = 'X'.
ls_printparams-formkey = x_formkey.
endif.
ls_printparams-formclass = 'ZFORMCLASS'.
ls_printparams-delayed_print = x_delayed_print.
if ls_printparams-formkey is initial or
ls_printparams-delayed_print is initial or
not x_auswform is initial.
call function 'EFG_GET_PRINT_PARAMETERS'
exporting
x_printparams = ls_printparams
x_archive_bor_object = ls_arc_params-sap_object
x_archive_arc_object = ls_arc_params-ar_object
x_archive_object_id = ls_arc_index-object_id
x_no_delayed_print = space
x_no_formkey = l_no_formkey
importing
y_printparams = ls_printparams
y_archive_index = ls_arc_index
y_archive_params = ls_arc_params
y_recipient = ls_recipient
exceptions
cancelled = 1
input_error = 2
others = 3.
if sy-subrc = 1.
mac_msg_putx co_msg_success 349 'EQ'
space space space space action_cancelled.
if 1 = 2.
message s349(eq).
endif.
exit.
elseif sy-subrc > 1.
mac_msg_putx_wp co_msg_success 349 'EQ' space
space space space action_failed.
if 1 = 2.
message s349(eq) with space.
endif.
exit.
endif.
endif.
y_formkey = ls_printparams-formkey.
ls_dfkkcoh-formkey = ls_printparams-formkey.
* create the header
call function 'FKK_FLDS_2_HEADER'
exporting
i_cotyp = ls_dfkkcoh-cotyp
i_cokey = space
i_entid1 = '0001'
i_structcont1 = i_gpart
i_entid2 = '0002'
i_structcont2 = i_anlage
i_entid3 = '0003'
i_structcont3 = i_form_typ
changing
c_dfkkcoh = ls_dfkkcoh.
refresh lt_dfkkcod.
* if delayed print is wanted, give data to container
if ls_printparams-delayed_print = 'X'.
* Felder in container
ld_fkk_fld_2_container '0001' i_gpart.
ld_fkk_fld_2_container '0002' i_anlage.
ld_fkk_fld_2_container '0003' i_form_typ.
ld_fkk_fld_2_container '0004' i_privat.
ld_fkk_fld_2_container '0005' i_vende.
ld_fkk_fld_2_container '0006' i_evbeginn.
ld_fkk_fld_2_container '0007' i_evende.
ld_fkk_fld_2_container '0008' i_an1_dat.
ld_fkk_fld_2_container '0009' i_an2_dat.
l_object_id = i_gpart.
call function 'FKK_WRITE_CORR'
exporting
i_fkkcoinfo = ls_fkkcoinfo
i_object_id = l_object_id
i_avoid_sender_det = 'X'
tables
t_dfkkcod = lt_dfkkcod
changing
c_dfkkcoh = ls_dfkkcoh.
mac_msg_putx co_msg_success 347 'EQ'
space space space space space.
if 1 = 2. message s347(eq). endif.
else.
call function 'FKK_WRITE_CORR'
exporting
i_fkkcoinfo = ls_fkkcoinfo
i_dont_write_to_db = 'X'
i_avoid_sender_det = 'X'
tables
t_dfkkcod = lt_dfkkcod
t_dfkkcoh = lt_dfkkcoh
changing
c_dfkkcoh = ls_dfkkcoh.
* Felder in lt_ranges
ld_fkk_fld_2_ranges i_gpart lt_ranges1.
ld_fkk_fld_2_ranges i_anlage lt_ranges2.
ld_fkk_fld_2_ranges i_form_typ lt_ranges3.
ld_fkk_fld_2_ranges i_privat lt_ranges4.
ld_fkk_fld_2_ranges i_vende lt_ranges5.
ld_fkk_fld_2_ranges i_evbeginn lt_ranges6.
ld_fkk_fld_2_ranges i_evende lt_ranges7.
ld_fkk_fld_2_ranges i_an1_dat lt_ranges8.
ld_fkk_fld_2_ranges i_an2_dat lt_ranges9.
if ls_printparams-device is initial.
ls_printparams-device = co_device_default.
endif.
loop at lt_dfkkcoh.
call function 'EFG_PRINT_EXPANDED'
exporting
x_sendcontrol = lt_dfkkcoh-sendcontrol
x_rec_addr = lt_dfkkcoh-adrnr
x_rec_persnumber = lt_dfkkcoh-persnumber
x_printparams = ls_printparams
x_archive_params = ls_arc_params
x_archive_index = ls_arc_index
x_recipient = ls_recipient
importing
y_printparams = ls_printparams
tables
xt_ranges1 = lt_ranges1
xt_ranges2 = lt_ranges2
xt_ranges3 = lt_ranges3
xt_ranges4 = lt_ranges4
xt_ranges5 = lt_ranges5
xt_ranges6 = lt_ranges6
xt_ranges7 = lt_ranges7
xt_ranges8 = lt_ranges8
xt_ranges9 = lt_ranges9
exceptions
cancelled = 6
others = 8.
case syst-subrc.
when 0.
when 6.
mac_msg_putx co_msg_success 120 'ZVM_EIGENT'
space space space space action_cancelled.
if 1 = 2.
message s120(zvm_eigent).
endif.
when others.
mac_msg_repeat co_msg_success action_failed.
endcase.
endloop.
if sy-subrc = 0.
* create customer contact for outgoing form
clear l_rc.
sort lt_dfkkcoh by gpart.
delete adjacent duplicates from lt_dfkkcoh comparing gpart.
loop at lt_dfkkcoh.
check l_rc is initial.
refresh lt_objects.
ls_bpc_obj-objtype = co_objtype_partner.
ls_bpc_obj-objkey = i_gpart.
append ls_bpc_obj to lt_objects.
* Felder in lt_objects
ld_fkk_fld_2_lt_objects i_vende.
ld_fkk_fld_2_lt_objects i_evbeginn.
ld_fkk_fld_2_lt_objects i_evende.
ld_fkk_fld_2_lt_objects i_an1_dat.
ld_fkk_fld_2_lt_objects i_an2_dat.
call function 'BCONTACT_CREATE_FROM_FORM'
exporting
x_formkey = ls_printparams-formkey
x_formclass = ls_printparams-formclass
x_partner = lt_dfkkcoh-gpart
tables
xt_objects = lt_objects
exceptions
general_fault = 1
not_authorized = 2
others = 3.
l_rc = sy-subrc.
endloop.
case l_rc.
when 0.
mac_msg_putx co_msg_success 119 'ZVM_EIGENT'
space space space space space.
if 1 = 2. message s119(zvm_eigent). endif.
when 2.
mac_msg_repeat co_msg_error bcontact_failed.
when others.
mac_msg_putx co_msg_programming_error 158 'EMV'
space space space space bcontact_failed.
if 1 = 2. message s158(emv). endif.
endcase.
endif.
endif.
endfunction.
*FuBa zum Druckzeitpunkt
FUNCTION zvm_cs_mi_eigent_sample_z830.
*\"----------------------------------------------------------------------
*\"*\"Lokale Schnittstelle:
*\" IMPORTING
*\" REFERENCE(I_DFKKCOH) TYPE DFKKCOH
*\" REFERENCE(I_ITCPO) TYPE ITCPO
*\" REFERENCE(I_EFGPP) TYPE EFG_PRINTPARAMS
*\" REFERENCE(I_ARCHIVE_PARAMS) TYPE ARC_PARAMS
*\" REFERENCE(I_ARCHIVE_INDEX) TYPE TOA_DARA
*\" TABLES
*\" T_FIMSG STRUCTURE FIMSG
*\"----------------------------------------------------------------------
DATA: l_fld TYPE fieldname,
l_object_id TYPE toa_dara-object_id,
l_applk TYPE fkkop-applk,
ls_printparams TYPE eprintparams,
ls_arc_params TYPE arc_params,
ls_arc_index TYPE toa_dara,
ls_dfkkcohi TYPE dfkkcohi,
ls_bpc_obj TYPE bpc_obj,
lt_objects TYPE bpc_obj OCCURS 1,
lt_fkkcoi TYPE fkkcoi OCCURS 10,
lt_dfkkcod TYPE dfkkcod OCCURS 10 WITH HEADER LINE,
ls_ranges TYPE efg_ranges,
lt_rg_0001 TYPE efg_tab_ranges,
lt_rg_0002 TYPE efg_tab_ranges,
lt_rg_0003 TYPE efg_tab_ranges,
lt_rg_0004 TYPE efg_tab_ranges,
lt_rg_0005 TYPE efg_tab_ranges,
lt_rg_0006 TYPE efg_tab_ranges,
lt_rg_0007 TYPE efg_tab_ranges,
lt_rg_0008 TYPE efg_tab_ranges,
lt_rg_0009 TYPE efg_tab_ranges.
FIELD-SYMBOLS TYPE efg_tab_ranges.
CALL FUNCTION 'FKK_READ_CORR'
EXPORTING
i_dfkkcoh = i_dfkkcoh
IMPORTING
e_dfkkcohi = ls_dfkkcohi
TABLES
t_fkkcoi = lt_fkkcoi
t_dfkkcod = lt_dfkkcod.
REFRESH: lt_objects.
LOOP AT lt_dfkkcod WHERE bloid = 'CNTR'.
CONCATENATE 'LT_RG_' lt_dfkkcod-entid INTO l_fld.
ASSIGN (l_fld) TO .
IF sy-subrc = 0.
CLEAR: ls_ranges,
.
IF lt_dfkkcod-cdata IS INITIAL OR
lt_dfkkcod-cdata = '00000000'.
ls_ranges-sign = 'E'.
ELSE.
ls_ranges-sign = 'I'.
ls_ranges-option = 'EQ'.
ls_ranges-low = lt_dfkkcod-cdata.
ENDIF.
APPEND ls_ranges TO .
ENDIF.
ls_bpc_obj-objtype = co_objtype_contract.
ls_bpc_obj-objkey = lt_dfkkcod-cdata.
APPEND ls_bpc_obj TO lt_objects.
ENDLOOP.
MOVE-CORRESPONDING i_efgpp TO ls_printparams.
MOVE-CORRESPONDING i_itcpo TO ls_printparams.
ls_printparams-formkey = i_dfkkcoh-formkey.
ls_printparams-formclass = 'ZFORMCLASS'.
ls_printparams-langu = i_dfkkcoh-spras.
IF ls_printparams-device IS INITIAL.
ls_printparams-device = co_device_default.
ENDIF.
CALL FUNCTION 'EFG_PRINT_EXPANDED'
EXPORTING
x_sendcontrol = i_dfkkcoh-sendcontrol
x_rec_addr = i_dfkkcoh-adrnr
x_rec_persnumber = i_dfkkcoh-persnumber
x_printparams = ls_printparams
x_archive_params = i_archive_params
x_archive_index = i_archive_index
TABLES
xt_ranges1 = lt_rg_0001
xt_ranges2 = lt_rg_0002
xt_ranges3 = lt_rg_0003
xt_ranges4 = lt_rg_0004
xt_ranges5 = lt_rg_0005
xt_ranges6 = lt_rg_0006
xt_ranges7 = lt_rg_0007
xt_ranges8 = lt_rg_0008
xt_ranges9 = lt_rg_0009
EXCEPTIONS
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
ENDIF.
* create customer contact for outgoing form
ls_bpc_obj-objtype = co_objtype_partner.
ls_bpc_obj-objkey = i_dfkkcoh-data1.
APPEND ls_bpc_obj TO lt_objects.
CALL FUNCTION 'FKK_GET_APPLICATION'
EXPORTING
i_no_dialog = 'X'
IMPORTING
e_applk = l_applk.
IF l_applk = 'R' AND
i_dfkkcoh-xtest IS INITIAL.
REFRESH lt_objects.
ls_bpc_obj-objtype = co_objtype_partner.
ls_bpc_obj-objkey = i_dfkkcoh-data1.
APPEND ls_bpc_obj TO lt_objects.
CALL FUNCTION 'BCONTACT_CREATE_FROM_FORM'
EXPORTING
x_formkey = ls_printparams-formkey
x_formclass = ls_printparams-formclass
x_partner = i_dfkkcoh-gpart
* X_ALTPARTNER = \"leave empty!
TABLES
xt_objects = lt_objects
EXCEPTIONS
general_fault = 1
not_authorized = 2
OTHERS = 3.
IF sy-subrc NE 0.
MOVE-CORRESPONDING sy TO t_fimsg.
APPEND t_fimsg.
ENDIF.
ENDIF.
ENDFUNCTION.