2016 Mar 17 1:31 PM
Hello All,
In the Customer Exit (tcode cmod in R/3) for a specific DataSource I have an access to a table, as in this example
SELECT kostl UP TO 1 ROWS FROM cobrb INTO c_opa_6-zzbiocosts
WHERE objnr = aufk-objnr
AND perbz = 'PER'.
ENDSELECT.
For performance reasons I want to access to this table outside of the datapackage loop and to use FOR ALL ENTRIES option.
How can I implement this possible solution?
Any help or simple example will be greatly appreciated.
Thanks in advance for your kind support.
Regards,
Giovanni
Hello All,
In the Customer Exit (tcode cmod in R/3) for a specific DataSource I have an access to a table, as in this example
SELECT kostl UP TO 1 ROWS FROM cobrb INTO c_opa_6-zzbiocosts
WHERE objnr = aufk-objnr
AND perbz = 'PER'.
ENDSELECT.
For performance reasons I want to access to this table outside of the datapackage loop and to use FOR ALL ENTRIES option.
How can I implement this possible solution?
Any help or simple example will be greatly appreciated.
Thanks in advance for your kind support.
Regards,
Giovanni
2016 Mar 17 1:43 PM
It would help if you gave the enhancement name and function module you are looking at because there might then be another exit (such as a BTE etc) that does what you want, but not knowing what exit you are using we can't help.
Also, I hope you're not using SELECT-ENDSELECT blocks....
Rich
2016 Mar 17 3:16 PM
Customer exits EXIT_SAPLRSAP_001 and EXIT_SAPLRSAP_002 receive a batch of records by package, so yes you could use a FOR ALL ENTRIES IN it_data or ct_data. Only exceptions would come from buffered tables.
But in you example you read data related to an InfoObject (Order), not from the actual document (0CO_OM_OPA_6 actual cost in delta mode?) so shouldn't this data be appended to an attribute 0COORDER filled with 0COORDER_ATTR, then used in some attributes of the final Info Provider. In your solution what will happen if order is modified after extraction of those costs?
Regards,
Raymond
2016 Mar 17 4:04 PM
Giovanni,
You mentioned DataSource and data package in your message, so I am assuming this is BW related.
However, it is not clear as to which DataSource user exit you are working on.
Assumptions: (1) the data structure already has OBJNR in it.
(2) redundant OBJNR values will exist in the data package
<define an internal table just like the C_T_DATA structure and call it t_objnr.>
<define another internal table for two fields: aufk-objnr and cobrb-kostl. and call it t_kostl>
t_objnr[] = c_t_data[].
SORT t_objnr BY objnr.
DELETE ADJACENT DUPLICATES FROM t_objnr COMPARING objnr.
SELECT objnr
kostl
INTO TABLE t_kostl
FROM cobrb
FOR ALL ENTRIES IN t_objnr
WHERE objnr = t_objnr-objnr
AND perbz = 'PER'.
SORT t_kostl by OBJNR.
FREE t_objnr.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |