<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problem for Accessing the Table BDCP..CDPOS..CDHDR.. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227273#M478839</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prabhu!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just define your own change pointer (WE81) and assign only the fields (BD52) you are interested in. (Don't forget to activate the message (BD50). Then you only get change pointers for DMEAN / KEY and MARA / EAN11 and you can use the standard FM CHANGE_POINTERS_READ for reading and CHANGE_POINTERS_STATUS_WRITE for setting the process flag (otherwise you would read the pointers not only once).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 03 May 2007 10:55:33 GMT</pubDate>
    <dc:creator>christian_wohlfahrt</dc:creator>
    <dc:date>2007-05-03T10:55:33Z</dc:date>
    <item>
      <title>Problem for Accessing the Table BDCP..CDPOS..CDHDR..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227272#M478838</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have the problem of accessing the BDCP table.it is working fine in development and testing server.it is taking more time in background in Production server..can anyone help me to optimize this code and please suggest me if i can change anyof the below logic..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_cdobjid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    objectid-low  = t_cdobjid-cdobjid.&lt;/P&gt;&lt;P&gt;    objectid-sign = 'I'.&lt;/P&gt;&lt;P&gt;    objectid-option = 'EQ' .&lt;/P&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND objectid.&lt;/P&gt;&lt;P&gt;    CLEAR  objectid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    count = count + 1.&lt;/P&gt;&lt;P&gt;    IF count = 50.&lt;/P&gt;&lt;P&gt;      CLEAR count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM bdcp APPENDING TABLE t_bdcp&lt;/P&gt;&lt;P&gt;      WHERE cretime IN r_cretime AND&lt;/P&gt;&lt;P&gt;            tabname = 'DMEAN' AND&lt;/P&gt;&lt;P&gt;            fldname = 'KEY' AND&lt;/P&gt;&lt;P&gt;      cdobjid IN objectid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : objectid.&lt;/P&gt;&lt;P&gt;      REFRESH: objectid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT objectid[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT * FROM bdcp APPENDING TABLE t_bdcp&lt;/P&gt;&lt;P&gt;      WHERE cretime IN r_cretime AND&lt;/P&gt;&lt;P&gt;            tabname = 'DMEAN' AND&lt;/P&gt;&lt;P&gt;            fldname = 'KEY' AND&lt;/P&gt;&lt;P&gt;    cdobjid IN objectid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR : objectid.&lt;/P&gt;&lt;P&gt;    REFRESH: objectid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_bdcp[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_bdcp_val[] = t_bdcp[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE t_bdcp_val LINES l_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_max = 50.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_mod = l_lines MOD l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF l_mod &amp;gt; 0.&lt;/P&gt;&lt;P&gt;      l_loopcount = ( l_lines DIV l_max ) + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_loopcount = l_lines DIV l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO l_loopcount TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR t_bdcp_emt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      REFRESH t_bdcp_emt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-index = l_loopcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        t_bdcp_emt[] = t_bdcp_val[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND LINES OF t_bdcp_val FROM 1 TO l_max TO t_bdcp_emt.&lt;/P&gt;&lt;P&gt;        DELETE t_bdcp_val FROM 1 TO l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM cdpos APPENDING TABLE t_cdpos_upc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN t_bdcp_emt&lt;/P&gt;&lt;P&gt;                   WHERE&lt;/P&gt;&lt;P&gt;                   objectclas = 'MATERIAL' AND&lt;/P&gt;&lt;P&gt;                   objectid   = t_bdcp_emt-cdobjid AND&lt;/P&gt;&lt;P&gt;                   changenr   = t_bdcp_emt-cdchgno  AND&lt;/P&gt;&lt;P&gt;                   tabname IN ('DMEAN', 'MARA' ) AND&lt;/P&gt;&lt;P&gt;                   fname   IN ('KEY', 'EAN11' ) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR   : l_lines ,&lt;/P&gt;&lt;P&gt;              l_mod ,&lt;/P&gt;&lt;P&gt;              l_loopcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT t_cdpos_upc[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_cdpos_del[] = t_cdpos_upc[] .&lt;/P&gt;&lt;P&gt;      DELETE t_cdpos_del WHERE tabname EQ 'MARA' .&lt;/P&gt;&lt;P&gt;      SORT t_cdpos_del BY changenr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_cdpos_upc .&lt;/P&gt;&lt;P&gt;        READ TABLE t_cdpos_del WITH KEY&lt;/P&gt;&lt;P&gt;                   changenr = t_cdpos_upc-changenr&lt;/P&gt;&lt;P&gt;                   BINARY SEARCH .&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0  AND&lt;/P&gt;&lt;P&gt;          t_cdpos_upc-chngind = 'U' .&lt;/P&gt;&lt;P&gt;          DELETE t_cdpos_upc WHERE changenr = t_cdpos_upc-changenr&lt;/P&gt;&lt;P&gt;                              AND  chngind  = 'D' .&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        t_upc_matnr-matnr = t_cdpos_upc-objectid .&lt;/P&gt;&lt;P&gt;        APPEND t_upc_matnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SORT t_upc_matnr BY matnr .&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM t_upc_matnr COMPARING matnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF NOT t_cdpos_upc[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        t_cdpos_upc_val[] = t_cdpos_upc[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        DESCRIBE TABLE t_cdpos_upc_val LINES l_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_max = 50.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        l_mod = l_lines MOD l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_mod &amp;gt; 0.&lt;/P&gt;&lt;P&gt;          l_loopcount = ( l_lines DIV l_max ) + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          l_loopcount = l_lines DIV l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        DO l_loopcount TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CLEAR t_cdpos_upc_emt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          REFRESH t_cdpos_upc_emt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-index = l_loopcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            t_cdpos_upc_emt[] = t_cdpos_upc_val[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            APPEND LINES OF t_cdpos_upc_val FROM 1 TO l_max TO&lt;/P&gt;&lt;P&gt;                                                t_cdpos_upc_emt.&lt;/P&gt;&lt;P&gt;            DELETE t_cdpos_upc_val FROM 1 TO l_max.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SELECT * FROM cdhdr APPENDING TABLE it_cdhdr_upc&lt;/P&gt;&lt;P&gt;                           FOR ALL ENTRIES IN t_cdpos_upc_emt&lt;/P&gt;&lt;P&gt;                            WHERE objectclas EQ 'MATERIAL'&lt;/P&gt;&lt;P&gt;                           AND   objectid  = t_cdpos_upc_emt-objectid&lt;/P&gt;&lt;P&gt;                           AND   changenr  = t_cdpos_upc_emt-changenr.&lt;/P&gt;&lt;P&gt;        ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Prabhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2007 10:36:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227272#M478838</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-03T10:36:43Z</dc:date>
    </item>
    <item>
      <title>Re: Problem for Accessing the Table BDCP..CDPOS..CDHDR..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227273#M478839</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prabhu!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just define your own change pointer (WE81) and assign only the fields (BD52) you are interested in. (Don't forget to activate the message (BD50). Then you only get change pointers for DMEAN / KEY and MARA / EAN11 and you can use the standard FM CHANGE_POINTERS_READ for reading and CHANGE_POINTERS_STATUS_WRITE for setting the process flag (otherwise you would read the pointers not only once).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Christian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2007 10:55:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227273#M478839</guid>
      <dc:creator>christian_wohlfahrt</dc:creator>
      <dc:date>2007-05-03T10:55:33Z</dc:date>
    </item>
    <item>
      <title>Re: Problem for Accessing the Table BDCP..CDPOS..CDHDR..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227274#M478840</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One way to optimize this code is to move the select queries outside the loop. You can do it by fetching the data in an internal table n then use FOR ALL ENTRIES in SELECT query.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Its taking more time in production because you might have large data in production.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2007 15:19:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227274#M478840</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-03T15:19:50Z</dc:date>
    </item>
    <item>
      <title>Re: Problem for Accessing the Table BDCP..CDPOS..CDHDR..</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227275#M478841</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use the PACKAGE SIZE oprion of the SELECT statement:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
LOOP AT t_cdobjid.

  objectid-low = t_cdobjid-cdobjid.
  objectid-sign = 'I'.
  objectid-option = 'EQ' .

  APPEND objectid.
  CLEAR objectid.

ENDLOOP.

SELECT * FROM bdcp APPENDING TABLE t_bdcp
  PACKAGE SIZE 5000
  WHERE cretime IN r_cretim AND
        tabname = 'DMEAN'   AND
        fldname = 'KEY'     AND
        cdobjid IN objectid.

ENDSELECT.

IF NOT objectid[] IS INITIAL.
.
.
.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 May 2007 19:40:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-for-accessing-the-table-bdcp-cdpos-cdhdr/m-p/2227275#M478841</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-03T19:40:52Z</dc:date>
    </item>
  </channel>
</rss>

