posted Dec 1, 2010, 12:12 AM by Sen Long
[
updated Dec 1, 2010, 12:13 AM
]
Summary Symptom The
CO line item reports already provide a large number of fields for
displaying.Nevertheless, you may need additional, user-defined fields
from time to time. With a customer exit you can add user-defined
fields to the CO line item reports.The documentation is included in
project "COOMEP01", which is accessible via Transaction SMOD. You
can actually add fields to the actual costs line item reports (for
example, KSB1, KOB1, CJI3), the planned costs line item reports (for
example, KSBP, KOBP, CJI4) and the commitment line item reports (for
example, KSB2, KOB2, CJI5). The budget line item reports that have been
developed for Release 4.6 may also be extended (for example, KOB4). This note contains a more detailed explanation of the procedure as there are still questions concerning this problem. Other terms RKAEP000, KAEP, SMOD, CMOD, customer enhancement, CI_RKPOS EXIT_SAPLKAEP-001, EXIT_SAPLKAEP_002, EXIT_SAPLKAEP_003, CJI3 Reason and Prerequisites - Filling the field requires programming an ABAP exit.Thus, ABAP knowledge is needed.
- Moreover, you have to know of course where to find the data which is to be filled into the new field.
- You
have to know how to use Transaction SMOD and CMOD, the documentation
can be called up via the initial screen of CMOD by choosing "Utilities
--> Apllication help".
Solution - First
you have to decide, whether you want to extend an actual, plan or
commitment line item report.Depending on the report, you have to use
different exits:
Actual EXIT_SAPLKAEP_001 Plan EXIT_SAPLKAEP_002 Commitment EXIT_SAPLKAEP_003 Budget EXIT_SAPLKAEP_004 The exits are also included in Transaction SMOD/CMOD. - You have to execute the following steps that are explained in detail below:
a) The output structure has to be extended by the user-defined field. b) The exit has to be programmed to fill the field. c) View V_TKALV has to be maintained to tell the report what technical information on the new field is required. - In
the following we use the extension of the actual cost line item report
by the "Cost Center Manager" field as an example.The cost center
manager is contained in the master data table of the cost centers CSKS
in the VERAK field.
- The first step is to extend the
output structure of the line item report by the new field.These output
structures include customer Include structures which are intended for
the enhancement:
Output structure Customer include structure Actual KAEP_COAC CI_RKPOS Plan KAEP_COPL CI_KAEP_COPL Commitment KAEP_CM CI_RKPOA Budget KAEP_BDG CI_KAEP_BDG Thus,
to extend the actual line item report by the cost center manager, you
extend structure CI_RKPOS.Add a new field ZZ_VERAK to this structure,
as data element/component type enter VERAK (the same type that you find
for the VERAK field in the CSKS). Save and activate the structure. - In
the next step you have to program the exit.Fist select the correct exit
(for the extension of the actual line item report, this is
EXIT_SAPLKAEP_001).
The exit is called up for every read line item.Via the interface of the function module you recieve - parameter
I_REP_OBJ, which you can use to distinguish from which line item report
the exit was called.The possible characteristic values can be found via
the fixed values for domain KAEP_OBJ.You need this parameter because
the same exit is called up for all actual (or plan or commitment) line
item reports.This way you avoid possible extra work with extensions
that are to be carried out for all line item reports.
- structure
CS_RECORD which contains the complete line item that is read and
processed by the database, including the new field.However, this is
still blank when being accessed and has to be filled with ABAP.
Please
note that this exit is passed through once for every line item!A
complex or a poorly programmed exit can considerably extend the runtime
of the line item reports! In the example of the cost center manager,
you should only fill the field if the cost center line item report is
actually executed.In this case I_REP_OBJECT = "KS".The first line of
the exit should contain
Check i_rep_object = 'KS'.
This ensures that it is not further processed with other line item reports and thus does not extend their runtime. Now the cost center manager has to be determined.Table CSKS has to be read for this. select single verak from csks into cs_record-zz_verak where kokrs = cs_record-kokrs and kostl = cs_record-kostl and datbi >= cs_record-budat and datab <= cs_record-budat.
- Finally
you have to maintain view V_TKALV.Here you provide the required
information to the line item report which ensure that the report always
correctly displays the field.
Call up Transaction SM34, enter "V_TKALV" and choose "Change". - First
of all you have to provide the field and its technical settings:To do
this go to the "Field catalog information" and create a new entry. As
field structure enter the corresponding output structure (see above,
for the actual line item reports this would be KAEP_COAC), and as Field
name enter the name of the new field.For the Field group select "K",
this ensures that you will find the field with the user-defined fields
in the display variant/layout maintenance.You can leave the other
fields blank for the time being.The meaning of the fields in detail:
- Key flag: This characterizes the field as key field in output. -
"Tech. Field", "Col.pos.default" and "Edit mask" are not important for
user-defined fields and should therefore be left blank. - Text field
(only as of Release 4.5):If you not only extend the report by one field
but by two fields - one with a technical code and a second with the
corresponding text - it is recommended to enter the name of the text
field in this field for the field with the technical code.With
subtotalling via the key field, the system also fills and displays the
text field in the totals rows.
- Secondly you
have to provide the fields of the line item for the report that are
required to fill the user-defined field in the exit.Select the newly
created field in the "Field catalog information" and go to the
"Selection dependencies".
Here, add an entry for every field that
you need to fill your new field. Always enter the name of your new
field in the left column and to the right the field that you require to
fill your field. You have to do this to tell the report which fields
it must read in any case if the new field is to be displayed.In
background processing the system only reads the fields from the
database that are absolutely necessary.These are the fields of the
display variant which is used for the output, plus the fields that are
needed to fill the fields of the display variant. In the example,
the fields KOKRS, KOSTL and BUDAT are needed to fill the field
ZZ_VERAK.However, there is a selection dependency for the field OBJNR
(you can display this by selecting the field KOSTL in the field catalog
information and then display the selection dependencies).Thus, you have
to add 3 entries for the selection dependencies:
Field name Database field to be read ZZVERAK KOKRS ZZVERAK OBJNR ZZVERAK BUDAT
- The
extension is completed! Should the system not yet display the new field
in the output, this is either due to a special buffer mechanism of the
field catalogs for the output (read Note 122975 for this) or due to the
fact that the new field is not yet filled (read Notes 359691 and 327821
for this).
|
|