‎2011 Mar 10 6:36 AM
Hi Experts,
We are using some Z function module which is copied from standard one change_pointers_read FM. In the function module for getting material data which has been changed we are using two select queries.
SELECT * FROM bdcpv
INTO CORRESPONDING FIELDS OF TABLE i_table
WHERE mestype = message_type
AND process = process
AND cretime IN s_creation_time
AND cdobjcl IN cdobjcl
AND tabname IN tabname
AND fldname IN fldname
AND cdobjid IN cdobjid.
SELECT * FROM bdcp2 APPENDING
TABLE i_table
WHERE mestype = message_type
AND process = process
AND cretime IN s_creation_time
AND cdobjcl IN cdobjcl
AND tabname IN tabname
AND fldname IN fldname
AND cdobjid IN cdobjid.
.
But in ECC6 SAP begins storing change pointers data in table BDCP2.So,i feel there is no need to use BDCPV in this case.Please share your thoughts on this.
This function module is used in Z program which is scheduled as a daily running job.This program is failing at the step i.e at second select query with Run time Error TSV_NEW_PAGE_ALLOC_FAILED reason. Is there any other way to code this select query for better performance.
I mean is there any standard FM available for reading this table?.
SAP suggests a note1165059 in which it say's run the report RBDCPCLR to delete obsolete changing pointers after which the system takes into account change pointers from table BDCP2.
Please shed some light on this.
Best Regards,
Lakshman.
‎2011 Mar 10 7:37 AM
‎2011 Mar 10 9:19 AM
Hi Lakshman,
Run time Error TSV_NEW_PAGE_ALLOC_FAILED occurs when there is no more storage space available for extending an internal table. Here in this case, the internal table i_table could not be extended further to hold huge number of entries.
Since you are fetching from both BDCPV and BDCP2 table and filling i_table internal table, so much entries are coming which causes this error.
You can either fetch from BDCPV or BDCP2 table. Change pointers are stored either in BDCPV table or BDCP2 table. The setting of the message type in BD60 decides which table to use for storing change pointers for that particular message type. You check for your message type in BD60 detail view, if check box 'Change Pointer: Message Type Supports Table BDCP2' is checked, then BDCP2 table will be used for storing change pointer. Else, BDCPV will be used. Accordingly you can write select query either on BDCP2 or BDCPV which will rectify the run time error 'TSV_NEW_PAGE_ALLOC_FAILED '.
Regards,
Soumya.
‎2011 Mar 10 9:47 AM
Hi Soumya,
Thanks for the helpful information. I checked BD60 transaction ,and there for MATMAS ,BDCP2OK checkbox was not enabled .
Then should i enable it for using BDCP2 in my select query.
Best Regards,
Lakshman
‎2011 Mar 10 9:55 AM
Hi Lakshman,
After checking the check box for BDCP2 in BD60, change pointers will be automatically stored to BDCP2 going forward.
SAP delivers a migration program RBDCPMIG to transfer old BDCP/BDCPS entries to BDCP2.
Check the SAP note 1165059 for more details.
Regards,
Soumya.
‎2011 Mar 10 11:41 AM