44 Replies Latest reply: Aug 17, 2010 5:51 AM by At titude RSS

    Incremental Load Problem!

      Hi All,

      I tried to do the incremental load with the help of the document which is given in the below link.

      http://community.qlik.com/media/p/125837.aspx

      But as per me it is not working . Requesting you to let me know what changes I need to do so that it works as expected.

      Explanation about the problem given below:

      ~~~~~~~~

      I tried the incremental load application with the data of mine. I am facing few issues when I was trying with my data. It is not working as expected. Explained about the problem in the screen shot which is given below. Hope you can look into it and provide some solution for the same.

      error loading image

      error loading image

      I have attached the document which I was trying with.

      ~~~~~~~~

      Thanks and Regards,

      Rikab Kothari

        • Incremental Load Problem!
          s j

          Dear Rikab,

          Pls Use Rob's QVW File for incremental load. It work fine. Because I tested that application on more than 15 crore of record of one table of SAP.

          Regards

          Sunil Jain.

           

            • Incremental Load Problem!

              Hi Sunil,

              Many times I tried and failed to do the incremental load after referring to his document. So many them suggested his document and but I don't know why I am not able to do the same with the help of his document. If you are able to understand how it work using his document can you please do the required changes in my document?

              Expecting a positive reply from you side!

               

               

                • Incremental Load Problem!
                  s j

                  Rob's that Application working fine if and only if you have primary key in table . otherwise that application is failed.

                   

                    • Incremental Load Problem!
                      s j

                      Rikab,

                      I checked your application . It extracting full data from qvd for comparison with CSV.

                      and Increamental load check with full data of QVD because there is no limit on backdate updation. and It happening in my case when I developed increamental load application with SAP R/3.

                      One Solution is if your data is fixed for particular period then you can make seperate qvd for that. and compare key field for limited period only.

                       

                      Regards

                      Sunil Jain.

                       

                        • Incremental Load Problem!

                           


                          Sunil Jain wrote:
                          I checked your application . It extracting full data from qvd for comparison with CSV.
                          and Increamental load check with full data of QVD because there is no limit on backdate updation. and It happening in my case when I developed increamental load application with SAP R/3.
                          One Solution is if your data is fixed for particular period then you can make seperate qvd for that. and compare key field for limited period only. <div></div>


                          Many thanks for your reply! I cannot make separate qvd for particular period as it is not fixed.

                          By the way please let me know which method is reliable? Rob's method or this method? Please let me know the reason for the same.

                           

                           

                            • Incremental Load Problem!
                              s j

                               

                              Rob's Methos is faster because It is work on the basis of indexing on primary key.

                              It takes lesser time to update and insert record in existing QVD. I tested this logic on 6 crore of records. And Happy with the performance of Rob's Application.

                              Regards

                              Sunil Jain

                               

                                • Incremental Load Problem!

                                   


                                  Sunil Jain wrote:
                                  Rob's Methos is faster because It is work on the basis of indexing on primary key.
                                  It takes lesser time to update and insert record in existing QVD. I tested this logic on 6 crore of records. And Happy with the performance of Rob's Application. <div></div>


                                  Many thanks for sharing your experience on Rob'd method. As suggested I will also follow Rob' method only.

                                  By the way I have one more doubt in the Rob's method. In his document he is mentioned that "It Does Not Handle Deletes" but I want that also to be taken care in my document. Is there is any way to handle the same with this method.

                                  Please do let me know!

                                   

                                    • Incremental Load Problem!
                                      s j

                                      Dear Rikab,

                                      What are the probabilities to delete customer in your case ?.

                                      I think It rarely happen in real Business Scenario. Because If Ones Customer Created It affect all the functional data like sales , Finance, Inventory. so I think no one want to disturb their Business process in reality.

                                      Regards

                                      Sunil Jain.

                                       

                                       

                                        • Incremental Load Problem!

                                          Hi Sunil,

                                          As our implementation are not well processed chances are there there may so several wrong entries. So we tend to delete all those wrong entries from the back end instead of doing it from the front end. So in that case I wish Rob's method should handle deletes also.

                                          So in my case if the incremental load doesn't handle deletes then there will be lots of unnecessary records will be available in the document.

                                           

                                            • Incremental Load Problem!
                                              s j

                                              Dear Rikab,

                                              suppose I have One Record Which have primary key as p1 . If I delete that record in your scenario and Add new record inmplace of that record what will be primary key ?.

                                               

                                                • Incremental Load Problem!

                                                   


                                                  Sunil Jain wrote:
                                                  suppose I have One Record Which have primary key as p1 . If I delete that record in your scenario and Add new record inmplace of that record what will be primary key ?. <div></div>


                                                  Oh ya! I think it will those primary keys will be replaced by this new one. So deleted records will not be available in the QVD. Correct me If I am wrong!

                                                  But my question is while concatenation we check whether the PK is already existing or not, if it doesn't exists then we used to concatenate the news rows. But old rows will be already there in the qvd right? Am I right? So what I mean to say is that it may contain deleted also!

                                                  Please let me know your suggestion for the same

                                                   

                                                    • Incremental Load Problem!
                                                      s j

                                                      Rikab, You are right .

                                                      If Data deletion is in rare case then full extract that types of table in one time a year. It Increase consistency in that case.

                                                      Whatever we discuss till now regarding Rob's method it working fine and I am agree with you on above your understanding regarding increamental load.

                                                      Nice to discuss with you.

                                                      If you have still any query.

                                                      pls reply me.

                                                      Regards

                                                      Sunil Jain.

                                                       

                                                       

                                                        • Incremental Load Problem!

                                                           


                                                          Sunil Jain wrote:
                                                          But my question is while concatenation we check whether the PK is already existing or not, if it doesn't exists then we used to concatenate the news rows. But old rows will be already there in the qvd right? Am I right? So what I mean to say is that it may contain deleted also!<div></div>


                                                          I need clarity on above doubt. Please explain!

                                                          By the way I too had a nice discussion with you and so many other member from QlikCommunity.I still have few doubts will send you later some time.

                                                          QlikCommunity helps me alot as I am the only person in my organization who works in qlikview. So it provides me great assistance as it is the only way to get good knowledge when no one else is working along with me in real time.

                                                           

                                                           

                                                           

                                                          • Incremental Load Problem!

                                                            Hi Haneesh and Sunil,

                                                            I am not able to understand how the incremental Update(tab) script works. Will be much thankful to you if you can explain me in much better way.

                                                            Main problem I am little confused which is the left table and which is the right where we are using the right join. Requesting you to explain how the the complete script works.

                                                             

                                                          • Incremental Load Problem!
                                                            haneesh iqbal noormohammed

                                                             


                                                            Rikab Kothari wrote:
                                                            Oh ya! I think it will those primary keys will be replaced by this new one. So deleted records will not be available in the QVD. Correct me If I am wrong!


                                                            Hi Rikab,

                                                            You are right. The PK for the deleted records will be replaced by the new records and so, in your case, the deleted records are also handled by the incremental load doc.

                                                             


                                                            Rikab Kothari wrote:But my question is while concatenation we check whether the PK is already existing or not, if it doesn't exists then we used to concatenate the news rows. But old rows will be already there in the qvd right? Am I right? So what I mean to say is that it may contain deleted also!


                                                            If you look at the incremental Tab in the load script, it first loads the new data. Then it loads the data from QVD with 'WHERE NOT exists(PK, $(PKexp))' condition. So, here only the rows which do not have the PK values in the new records will be loaded and concatenated.

                                                            If the deleted records' PK is replaced by a new row in DB table then it will be changed in the QVD. But, if the deleted records' PK is not replaced in the DB table, then it will still reside in the QVD.

                                                            Let me knoe if you are still unclear.

                                                            -Haneesh

                                                             

                                                              • Incremental Load Problem!

                                                                Hi Haneesh,

                                                                Thanks for your effort in explaining me in detail. But I am still not clear how the incremental update script tab works. If you can explain me then I think It can help me to understand the above post.

                                                                  • Incremental Load Problem!
                                                                    haneesh iqbal noormohammed

                                                                    Hi,

                                                                    Please find the details below:

                                                                     


                                                                    Directory;
                                                                    // If incremental reload, load previous data and concatenate to data just read.
                                                                    // Note that the composite primary key is *not* stored with the QVD. It is instead created
                                                                    // on the fly. This allows us to use autonumber() which creates compact integer keys.
                                                                    IF $(QVD_EXISTS) THEN
                                                                    // Create the PK for the incremental rows
                                                                    RIGHT JOIN ($(datatable)) LOAD DISTINCT
                                                                    *
                                                                    ,$(PKexp) as PK
                                                                    RESIDENT $(datatable)
                                                                    ;


                                                                    The above script works as follows:

                                                                    1. Checks if there is a QVD

                                                                    2. If QVD exists, create a Primary Key from the existing new records and join it in turn with the same table

                                                                     


                                                                    // Use CONCATENATE to explicitly name the table in case we've added any new fields.
                                                                    CONCATENATE ($(datatable)) LOAD * FROM $(QVDFILE) (qvd)
                                                                    WHERE NOT exists(PK, $(PKexp))
                                                                    //AND Date >= AddMonths(today(),-36) //?? Optional - roll data off the back
                                                                    ;
                                                                    DROP FIELD PK; // Don't keep PK
                                                                    END IF

                                                                    STORE $(datatable) INTO $(QVDFILE);


                                                                    The above script part does the following:

                                                                    1. The data from QVD is concatenated with the newly loaded data.

                                                                    2. While loading, it checks if the PK in new data matches with PK generated from the QVD, if so, that record is ignored and only the non matching records are concatenated. This ensures that all the updated records are loaded and the corresponding old existence are removed.

                                                                    3. The temporary 'PK' field is dropped

                                                                    4. The final data is loaded into the QVD.

                                                                    These are the processes done in the script in 'Incremental Update' tab. Hope this is now clear to you.

                                                                    -Haneesh

                                                                      • Incremental Load Problem!

                                                                         


                                                                        Haneesh wrote:<blockquote><pre>
                                                                        Directory;
                                                                        // If incremental reload, load previous data and concatenate to data just read.
                                                                        // Note that the composite primary key is *not* stored with the QVD. It is instead created
                                                                        // on the fly. This allows us to use autonumber() which creates compact integer keys.
                                                                        IF $(QVD_EXISTS) THEN
                                                                        // Create the PK for the incremental rows
                                                                        RIGHT JOIN ($(datatable)) LOAD DISTINCT
                                                                        *
                                                                        ,$(PKexp) as PK
                                                                        RESIDENT $(datatable)
                                                                        ;

                                                                        The above script works as follows:

                                                                        1. Checks if there is a QVD

                                                                        2. If QVD exists, create a Primary Key from the existing new records and join it in turn with the same table

                                                                         

                                                                        I am not clear with the above explanation either! Sorry for the trouble! I am very new!

                                                                        Do you mean to say that table here is the one which is there in the Data Load tab of the script. If yes then let me know what the below one does. Does it refers to the same table which is said above? If yes then what is the use of joining with the same table. Is the used to generate the PK??? Please explain sorry for the trouble!

                                                                         


                                                                        LOAD DISTINCT
                                                                        *
                                                                        ,$(PKexp) as PK
                                                                        RESIDENT $(datatable)


                                                                        • Incremental Load Problem!

                                                                          Hi Haneesh,

                                                                          Was I am understanding correctly which is left and which right table as shown below. Correct me If I am wrong!

                                                                           

                                                                          Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4

                                                                          Left Table

                                                                          Right Table

                                                                          Directory;

                                                                          LOAD dwrstkcode,

                                                                          stkaddress1,

                                                                          stkaddress2,

                                                                          stkaddress3,

                                                                          stkaddress4,

                                                                          stkcode,

                                                                          stkname,

                                                                          stkphone,

                                                                          stkstatus,

                                                                          stksubareaname,

                                                                          stockist_modified_on

                                                                          FROM

                                                                          DSC.xls

                                                                          (biff, embedded labels, table is Sheet1$)

                                                                          //WHERE ModDate >= $(MAX_DATA_DATE) // Using the maxdate we set earlier

                                                                          $(INCREMENTAL_EXP)

                                                                          ;

                                                                           

                                                                          LOAD DISTINCT

                                                                          *

                                                                          ,$(PKexp) as PK

                                                                          RESIDENT $(datatable)

                                                                          ;

                                                                           



                                                                      • Incremental Load Problem!

                                                                        Hi All,

                                                                        One more which I am facing here is,

                                                                        If I change some data in one of the rows and change the modified date as "12/05/10 5:39:24 . AM" and then again on the same row i am changing the data and the changing the modified date as "10/05/10 5:39:24 . AM" which is less than the previous one. In this case the row which I modified in the 2nd time is not getting loaded. If the I am giving the modified date higher than the first one then it is getting loaded. So let me know does it works as expected. Do I need to remember the highest modified date each time whenever I am modifying any rows and updating the date.

                                                                        Please explain!

                                                                  • Incremental Load Problem!
                                                                    haneesh iqbal noormohammed

                                                                    Hi Rikab,

                                                                    Rob's incremental load file does not handle deleted records. We cannot handle the deletion of deleted records unless we have that information stored somewhere.

                                                                    Say we have deleted 300 rows today in fact table and you want to delete these records from the QVD in the next reload. This can't be done in the existing script since, there is no reference for these deleted records in the database.

                                                                    This can be done in the following ways,

                                                                    1. Instead of deleting the unwanted rows, update those rows with '0' or null as value for the fact fields. So, our incremental reload script will identify these update and will load the latest value into the QVD. This option is not efficient since we will have to load rows with no values and this will increase the QVD/document size.

                                                                    2. The next option will be to maintain a separate table where the primary key of the deleted records are updated. We should load these values and remove all the rows in fact QVD corresponding to these primary key values. This will result in addition of a new script in our incremental load file to load the PK from deleted rec table and compare this with the QVD data and ignore these data.

                                                                    Let me know if you need any clarification.

                                                                    -Haneesh

                                                        • Incremental Load Problem!

                                                          May be!

                                                          Primary key is there in my document. In the attached document of mine primary key is "dwrstkcode". To be frank I was not able to understand how it works so I never tried with his document.

                                                          If you are able to understand his document can you work with my data.

                                                           

                                                      • Incremental Load Problem!

                                                        Hi Sunil,

                                                        To avoid giving you the trouble I have myself did the required changes in the Rob' Incremental load document. This was the outcome once I loaded my data into this document.

                                                        http://community.qlik.com/forums/t/32765.aspx

                                                        I need your help there so that I can move further.

                                                          • Incremental Load Problem!
                                                            s j

                                                            Dear Rikab,

                                                            I Implemented Rob's Logic on your document. pls check attached File. If you any query pls reply me.

                                                            if you want to update data from specific date then

                                                             

                                                             

                                                             

                                                             

                                                             



                                                             

                                                             

                                                             

                                                             

                                                             

                                                             

                                                             

                                                             

                                                             



                                                             

                                                             

                                                             

                                                             

                                                            ELSE

                                                             



                                                             

                                                             

                                                            // QVD does not exist

                                                             

                                                             

                                                             

                                                             

                                                             

                                                            LET INCREMENTAL_EXP = '';

                                                            // No QVD. Force full reload

                                                             

                                                             

                                                             



                                                             

                                                            //LET INCREMENTAL_EXP = 'WHERE ModDate >=' & MakeDate(2005,01,01); //?? Could also set it to some floor date

                                                             

                                                             

                                                             

                                                            END

                                                             

                                                             



                                                            IF

                                                             

                                                             

                                                             

                                                             

                                                             

                                                            pls MakeDate(2005,01,01) Change Date here.

                                                            Regards

                                                            Sunil jain.

                                                             

                                                             







                                                              • Incremental Load Problem!

                                                                Hi Sunil,

                                                                Thanks for your help!

                                                                I tried your document also! Same thing I am noticing when I reload the data for the 2nd time.

                                                                It is loading all the data again when I reload for the 2nd time which shouldn't happen in incremental load I suppose. Correct if I am wrong! :-)

                                                                  • Incremental Load Problem!
                                                                    haneesh iqbal noormohammed

                                                                    Hi Rikab,

                                                                    Is this 65,535 lines loaded from QVD? if so, this is expected as we have to load the data from QVD in order to perform the update.

                                                                    Let me know, if this is loaded from DB.

                                                                    -Haneesh

                                                                      • Incremental Load Problem!

                                                                        Hi Haneesh,

                                                                        I am not sure from where it is loading. Are you sure that this is what we can expect when we are doing incremental load. Please clarify me!

                                                                        As these days I thought incremental load means loading only the updated data(Inserted,Updated and Deleted). Means it will not load those records which already exists, it will load load only the updated data.

                                                                        If you say this is what it is expected then,

                                                                        When I load the data directly from the source it is taking 3 seconds only but when I load the data from QVD it is taking 4 seconds. One of the basic purpose of doing the incremental load is to reduce the loading time. But where as here it is taking more time when compared to loading from the source. Please clarify me! As I don't have much experience in handling the incremental load.

                                                                         

                                                                         

                                                                         

                                                                          • Incremental Load Problem!
                                                                            haneesh iqbal noormohammed

                                                                            Hi Rikab,

                                                                            We will have to load the already existing data in QVD in order to concatenate it with the new data and load it into the same QVD.

                                                                            Also, you mentioned that it takes only 3 sec to load DB data where as QVD takes 4 sec. How many records are retrieved in each load? I guess QVD should have more rows.

                                                                            Assume a production scenario where fact table has 2000000 rows and everyday around 20000 records are added. If we implement incremental load today, then for the first time it will load all the 2000000 rows from DB which might take 45 min. Tomorrow when incremental load is run, it will fetch only the new 20000 rows from fact and it will take less than 5 min and will take around 10 min to load the QVD data and overall the entire loading will be done within 20 min.

                                                                            If we do full reload everyday, then the load time will be more than 50 min and it increases as the volume grows. Hence we go for incremental load approach to save time.

                                                                            Please note that all the reload time mentioned here are based on assumptions. Let me know if you are still unclear on any of the point.

                                                                            Regards,

                                                                            Haneesh

                                                                          • Incremental Load Problem!

                                                                            Hi Haneesh,

                                                                            Can you please recheck with the attached document and let me know from where it is loading. Whether it is loading from the source or the QVD.

                                                                             

                                                                              • Incremental Load Problem!
                                                                                kerem pekçabuk

                                                                                Hi Rakop

                                                                                My document is working daily.If you want to make that document hourly or minutely you must format the dates like timestamps.After that you can see that document is working.

                                                                                 

                                                                                Just do those three steps.

                                                                                1-Make all the date\timestamp formats same and minutely or hourly.

                                                                                2-Delete the qvd file and reload the document.

                                                                                3-Add new lines to excel.But don't forget the add the modifed date column.And reload document again.

                                                                                 

                                                                                I'm in consultancy today so I'll not be available to answer but at lunch i'll try to answer your other questions.

                                                                                 

                                                                                  • Incremental Load Problem!

                                                                                    Hi kerempekcabuk,

                                                                                    Thanks for your response! I don't want to reload the document on hourly or minutely based. I just wanted to do the incremental load whenever I reload the data.

                                                                                    Please reply me when you are free. It's not that necessary to reply me in that lunch time :-). Take enough time for your lunch if time is there please reply me.


                                                                              • Incremental Load Problem!
                                                                                s j

                                                                                Dear Rikab,

                                                                                Uncomment following part and Add date from which you want to update record in QVD.

                                                                                MakeDate(2005,01,01) Change Date here.

                                                                                Regards

                                                                                Sunil Jain.

                                                                                 

                                                                                  • Incremental Load Problem!

                                                                                     


                                                                                    Sunil Jain wrote:
                                                                                    Uncomment following part and Add date from which you want to update record in QVD.
                                                                                    MakeDate(2005,01,01) Change Date here. <div></div>


                                                                                    I don't want to load the data on specific date. I have not tried with your suggestion yet!

                                                                                    I was just wondering what made you to give this as your suggestion to load the data using specific date. Did I asked you anywhere that I want to load the data on specific date. Please let me know!

                                                                                     

                                                                                      • Incremental Load Problem!
                                                                                        s j

                                                                                        Dear Rikab,

                                                                                        Specific Date in a sense that suppose I have 10 yrs data and first five years data is freeze and never require to update so in that case we can give date for updation of data of last five yrs only. there is no others meaning of that statement.

                                                                                        Regards

                                                                                        Sunil Jain.

                                                                                          • Incremental Load Problem!

                                                                                             


                                                                                            Sunil Jain wrote:
                                                                                            Specific Date in a sense that suppose I have 10 yrs data and first five years data is freeze and never require to update so in that case we can give date for updation of data of last five yrs only. there is no others meaning of that statement. <div></div>


                                                                                            Oh yes! That seems to be a better option which I never thought of it. Will defiantly take this in to consideration as this will help to increase the performance.

                                                                                             

                                                                                    • Incremental Load Problem!

                                                                                       


                                                                                      Sunil Jain wrote:
                                                                                      I Implemented Rob's Logic on your document. pls check attached File. If you any query pls reply me.
                                                                                      if you want to update data from specific date then



                                                                                      ELSE


                                                                                      // QVD does not exist

                                                                                      LET INCREMENTAL_EXP = '';
                                                                                      // No QVD. Force full reload
                                                                                      //LET INCREMENTAL_EXP = 'WHERE ModDate >=' & MakeDate(2005,01,01); //?? Could also set it to some floor date


                                                                                      END

                                                                                      IF

                                                                                      pls MakeDate(2005,01,01) Change Date here. <div></div>


                                                                                      Hi Sunil,

                                                                                      I don't want to do update the data from specific date. I just wanted to do the incremental load whenever I reload the data. Have seen the document which you have attached. Think it is working. If any doubts are there will get back to you.

                                                                                       

                                                                                       

                                                                                • Incremental Load Problem!
                                                                                  haneesh iqbal noormohammed

                                                                                  Hi Rikab,

                                                                                  Yes, it is loaded from the QVD when ran second time. I ran it for the first time and it is loaded from excel. I ran it again and it is loaded from QVD. Please refer the attached log files. The 'incrementalload.qvw.2010_08_13_13_03_39.log' file is generated for first run and 'incrementalload.qvw.2010_08_13_13_04_02.log for the second. You can find the details of data loaded here.

                                                                                  In this case since the source is excel, there might not be huge difference in reload time. But, when you have DB as source, which is in another machine, then there will be huge time difference between DB load and QVD load. I guess, this clears your doubt.

                                                                                  -Haneesh

                                                                                   

                                                                                    • Incremental Load Problem!

                                                                                       


                                                                                      Haneesh wrote:
                                                                                      Yes, it is loaded from the QVD when ran second time. I ran it for the first time and it is loaded from excel. I ran it again and it is loaded from QVD. Please refer the attached log files. The 'incrementalload.qvw.2010_08_13_13_03_39.log' file is generated for first run and 'incrementalload.qvw.2010_08_13_13_04_02.log for the second. You can find the details of data loaded here.
                                                                                      In this case since the source is excel, there might not be huge difference in reload time. But, when you have DB as source, which is in another machine, then there will be huge time difference between DB load and QVD load. I guess, this clears your doubt. <div></div>


                                                                                      Yes I saw the log files which you have told me to refer. I will surely try to load the data from the database so that I can feel the difference.

                                                                                       

                                                                                    • Incremental Load Problem!
                                                                                      Jonathan Dienst

                                                                                      Rikab

                                                                                      I think your problem may be that you are misreading the script execution dialog. As I see it, on your first run, 65535 records were loaded from the spreadsheet as there is no QVD file. On the second run, nothing was loaded from the spreadsheet (Sheet1$ 0 lines fetched), and 65535 lines were loaded from the QVD file (DSC 65,535 lined fetched).

                                                                                      If you change a line in the source data (change one cell in the column stockist_modified_on to a future date), you should see 1 record loaded from the Sheet1$ and 65,534 records loaded from the QVD file (DSC).

                                                                                      This is the correct behaviour for an incremental load. Haneesh's log files should show the same thing, and if you examine the each of the log files of your own run from Rob's example, you shoud see the same. (Don't forget to rename the log file after the first run as it will be overwritten on the second run).

                                                                                      Are you perhaps misunderstanding what is meant by incremental load? By incremental load we mean that we are reducing the number of records being fetched from the original source data by storing records in a QVD after loading. On subsequent loads, we need to load only new/changed records, and load the unchanged date from the QVD. The same amount of data is loaded, only some comes from a QVD file rather than the original data source.

                                                                                      Hope this helps

                                                                                      Jonathan

                                                                                        • Incremental Load Problem!

                                                                                          Hi Jonathan,

                                                                                          Yes you are correct I misunderstood on incremental load concept. These days I was thinking that once the data has been loaded first time and from there on it will load only those data which are new(inserted,modified and deleted).

                                                                                          Many thanks for explaining me on how exactly incremental load happens. It really helped me!

                                                                                          There are some doubts in the script hope you will help me out there also.