7 Replies Latest reply: Mar 21, 2013 10:35 AM by s j RSS

    Loading BSEG and BKPF

    Julian Villafuerte

      Hi,

       

      I'm trying to get faster extractions from SAP. In this case I'm loading BKPF (header) and BSEG (lines). I have some filters for BKPF in the WHERE clause, so I only get around 20% of the total number of records. After that, I only want to load the lines that correspond to the loaded headers.

       

      With QlikView syntax I'd use the EXIST function, something like this:

       

            WHERE Exists([Document Number_BELNR]);

       

      But I want to filter directly on the extraction from SAP so I don't get all the records in my QVDs, but only the 20% that I really need. Any suggestions???

        • Loading BSEG and BKPF

          Hi Villafuerte,

           

          we did a load of 153 mlj records for 100 columns.

          PLS do not put a where clause in place this will cost a lot of loadtime.

          If you do it pls on an indexed field or fill out the full key of the BSEG.

          There is a chance that your oracle (or whatever DB) will time out or has  too small buffers for these vast amounts of data that most BSEG's contain. than you can easily split up your load into parts (FiscalYear Periods ) or other time fields. You can perform these loads in parallel if you like.

           

          Best thing (in our case) was to download the complete set with just the columns you need (strange if this will be more than 20 ). A load of the complete set (153 mlj records) with only 1 column took us less than an hour with 20 columns 8 hours and 100 columns ca. 30 hours. Further selection you can do within QlikView  on the generated QVD files. This will be much faster. Ofcourse it will help when the server of the SAP database is not used for other loads etc. at the same time as yours.

           

          Good luck.

          Felix

          • Loading BSEG and BKPF
            s j

            You Can use following logic.

            Selct * From BSEG where BELNR = (Select BELNR From BKPF where Creation date = 'XXXXXX');