ODS based on R/3 FM

I want to build an ODS based on a function module in R/3? How can I achieve this
Thanks

Hi ,
you can create a generic data source in RSo2.
your source can be FM.
you can design this functional module by:
cpying
A simple way of creating a syntactically correct module is to copy functional module RSAX_BIW_GET_DATA_SIMPLE. into its own function group and then to cope the rows of the top-include of function group RSAX (LRSAXTOP) into the top-include of its own function group. Afterwards, the copied function module must be adjusted to the individual requests.
Regards
Rahul Bindroo

Similar Messages

  • Start routine to update some fields of a ODS based on the another ODS

    Hi I know i have to do abap coding at the start routine to update a ODS based on another ODS. I have tried doing the code for quite some time now and i have not been successful. I think I havenu2019t followed the definition required for this routine.
    I have 2 ODS, ODS1 has 3 key fields and ODS2 has 1 key field
    I have to map the ODS based on a 1:3 relation.
    I am writing this start routine for the update rules from ODS2 to ODS1.
    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Like key field 1 of ODS1 has length 10. Key field 2 of ODS1 has length 10 and key field 3 of ODS1 has length 20 and all these fields are not alpha converted, but the key field of ODS2 has length 60 and it is alpha converted.
    Can anyone please help me in this code.
    My Code is as below.
    ITAB1-T_BOL = DATA_PACKAGE-/BIC/ZLBOL.
    ***********NISTEVO SELECT******************************
      SELECT /BIC/ZLBOL FROM /BIC/AWLONST0100 INTO ITAB1-T_BOL
                  WHERE /BIC/ZLBOL = ITAB1-T_BOL .
    **************R/3 SELECT*******************************
        SELECT /BIC/ZLRDELNU /BIC/ZLRSHIPNU /BIC/ZLREXTID
                  FROM /BIC/AWLOR3O0400
                  INTO CORRESPONDING FIELDS OF ITAB1
                  WHERE
                  /BIC/ZLRDELNU = ITAB1-T_BOL OR
                   /BIC/ZLRSHIPNU = ITAB1-T_BOL OR
                   /BIC/ZLREXTID = ITAB1-T_BOL .
          SORT ITAB1 BY T_DELNU T_SHIPNU T_EXTID .
          LOOP AT DATA_PACKAGE.
            READ TABLE ITAB1 WITH KEY T_DELNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_SHIPNU = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            READ TABLE ITAB1 WITH KEY T_EXTID = DATA_PACKAGE-/BIC/ZLBOL.
            IF SY-SUBRC = 0.
              EXIT.
            ENDIF.
            DELETE DATA_PACKAGE .
          ENDLOOP.
        ENDSELECT.
      ENDSELECT.
    Points will be awarded.
    Edited by: satish rajaram on Nov 6, 2008 4:51 PM
    Edited by: satish rajaram on Nov 7, 2008 11:40 AM
    Edited by: satish rajaram on Nov 7, 2008 11:43 AM

    The logic is if the key field of ODS2 is equal to either Key field 1 or Key field 2 or Key field 3 of ODS1 then that record from ODS2 has to be updated to the corresponding matching record of ODS1, else no update. The 3 key fields of ODS1 have different character length and character types and the key field of ODS2 has a different character length and type when compared to the any of the key fields of ODS2 can match any of those.
    Can you try below logic :
    Below is not code it needs to be manipulated as per requirement.
    ODS2 ---> ODS1
    SELECT <key fields of ODS1>
    FROM /BIC/A<ODS1>00
    INTO ITAB
    FOR ALL ENTRIES IN DATA_PACKAGE
    WHERE
    keyfield1 = data_package-key1
    or
    keyfield2 = data_package-key2
    or
    keyfield3 = data_package-key3
    **Now itab has all entries which neednot be deleted from data_package.****
    if sy-subrc=0.
    ***Check Itab and delete only those records not present in itab from data_package****
    endif.
    Hope this helps.

  • How to create an ODS based on a particular table

    Can Anybody tell me how to create an ODS based on a particular table and what are the basic requirements for that

    Hi Priya,
    If my understanding is right, you want to create an ODS based on a database table.
    Here, I will assume that you already know how to create an ODS. Otherwise, do let me know so that I can guide you on how to do it.
    Basically, an ODS consists of two important sections i.e.
    1. Key Fields
    2. Data Fields
    First, we must identify what are the field(s) in the table that make its records unique. You can think of this as database's primary key(s) e.g. Document Number. These field(s) must be inserted in ODS' Key Fields section. You can only insert Characteristics in Key Fields and the InfoObjects in this section will uniquely identify an ODS record or line item.
    Next, you can include the rest of the fields (either Characteristics and Key Figures) in ODS' Data Fields and activate the ODS.
    Having done that, you have already successfully create an ODS based on a database table.
    Hope that helps.
    Best wishes,
    Syuhair.

  • Adding few fields to the ODS based on a condition

    Need suggestions in adding few fields to the ODS based on a condition.
    The following is the requirement.
    Do a calday and 'Sales Org' based selection:
    0CALDAY=20041101-99991231; All Sales Orgs except AM01
    0CALDAY=20030701-20070930; All Sales Orgs except AM01

    Hi Dolly,
                   You can do this by writing a simple end routine in your transformation rules.It is just an  conditional statement.
    In that statement write
    If <RESULT_FIELDS>CALDAY EQ 20041101-99991231 and If <RESULT_FIELDS>Sales Org NE AM01
    <write the statements which populate the fields>
    endif.
    In the same way you can write the code.
    Hope this helps
    Regards
    Karthik

  • Dynamically (auto) creation of ODS based on a key or reaching a max size

    BW 3.5 Receiving data from a RDBMS (likely dbconnect):
    I am working for an aviation company where we are expecting to receive large  number of records from flying aircrafts. Since the number of aircraft could be in thousands and data could reach 2 GB per flight, we must create ODSs dynamically. Firstly, a new ODS should be created for a new plane as the plane sends in first chunk of data. Secondly if an ODS reaches to a certain size, we would like to create a new one just so that the size wouldn't kill performance. Lastly we have to also store binary data in the ODS.
    Any ideas? Clue or code for creating an ODS dynamically and not messing the BW system integrity. Also best way to deal with binary data in an ODS table.
    I'll appreciate any ideas and examples of succesful implementations. Thanks a lot.

    Hi!
    Actually, you can use the search feature in your guide. Just press Menu and go to search and you can search for a program by keywords there. Once you find the program you're looking for, you can click on it and set it to record either as a series recording or a one time recording instead. We hope that this helps you as for the search function.
    Thanks,
    CJ

  • How to create ODS based on a table (e.g. TCURR)

    Hello!
    I need to have access to V_TCURR in my BEx reports, cause I want to show relevant rates.
    Could you give me some links (if they exists) where I can find information about this?
    And I'd be really pleased if someone write a step-by-step instruction, because I tried to do it (I found some instructions in different topics) and failed.
    Thanks for responses.

    Hi,
    why dont you go for generic extraction to extract the data from the table TCURR to ODS.
    create the objects according to the fields in the table and design the ODS. map the fields with the objects and extract the data. The you can report on the ODS.
    Sunil

  • UPDATE ROUTINE --- CUBE --- ODS Very Very URGENT

    Hi Collegues/Friends ,
    First I need to thank for the intiators of this site , as I came to know that for many
    problems we will get different best solutions ... Hoping the same I am posting a question
    which is very very very urgent as the client is running after me for this .
    My Requirement is as Follows. ..
    I Moving the data from Cube to ODS . While i need to write a routine for an extra field in
    ODS based on Billing Quantity in Base Unit of Measure . The Key Field in the ODS Is UNIQKEY
    Transaction and It is a Characterstic in the Cube and we have MAterial as another
    Characteristic  and core element as navigational attribute .
    In the Cube for every UNIQKEY transaction- there are more than One line items. 
    My data fields in the ODS are Billing Quantity in Base Unit of MEasure and and EXTRA FIELD
    : No of Items in Transaction . But the thing is that I have only Billing Quantity in Base
    Unit of Measure in cube as a key figure
    BAsing on the UNIQKEY transcation and Billing Quantity In Base Unit Of Measure I need to
    populate the No of Items in Transaction... For this i need to write a routine .
    Let suppose say that for the Materials the core elements are as follows
    Material  Core element
    10         1 -- fuel -- In liters
    20         2 -- Cigar - in PAck
    30         3 -- Coke - in Cans
    Now Lets see how the records are there in InfoCUbe
    Uniqkey  /  Material  / Core element /Billin Quantiy
    A          /   10      /     1        /    22
    B          /   30      /     3        /    2
    C          /   10      /    1         /  15
    C          /   30      /     3        /     2
    D          /   20      /     2        /    10
    D          /   30      /     3        /    2
    And IN the ODS -- I need to Populate the No OF items in Transaction.
    the Logic behind this as follows .
    1.if Materail is of type  1(Mean if the core element - 1)
    I need to Populate the No of items in tnx = 1
    2.If Material id of type 2 or 3 I need to populate the billing quantity to the no of
    transcations.
    3. If the Uniqkey tanscation contains two line items as  suppose that you have 20 litres of
    fuel and 2 cans of coke, then No of Items in the transaction should be 3 and Billing
    Quantity in BUoM 22
    billing quantity in BUoM = 20 litres for the first line item and 2 for the second line
    item...
    then as the first line item is fuel, field No OF Items in the Transcation should be 1
    (replacing the 20) + 2 = 3
    so the final result in the ODS should be billing quantity in BUoM = 22 and The Items in the
    Transcation = 3
    For this I have Written a Rouinte like this for that field
    PROGRAM UPDATE_ROUTINE.
    $$ begin of global - insert your declaration only below this line  -
    TABLES: /BI0/PMATERIAL.
    DATA: TITEMS LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS,
           CORE_ELEMENT like /BI0/PMATERIAL-RPA_WGH1.
    $$ end of global - insert your declaration only before this line   -
    FORM compute_data_field
      TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
      USING    COMM_STRUCTURE LIKE /BIC/CS8ZPOCTUS04
               RECORD_NO LIKE SY-TABIX
               RECORD_ALL LIKE SY-TABIX
               SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
      CHANGING RESULT LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS
               RETURNCODE LIKE SY-SUBRC "Do not use!
               ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line        -
    fill the internal table "MONITOR", to make monitor entries
    check not COMM_STRUCTURE-material is initial.
      select SINGLE RPA_WGH1
            INTO CORE_ELEMENT
            from /BI0/PMATERIAL
            where
            material = COMM_STRUCTURE-material
            and  OBJVERS <>'D'.
       IF CORE_ELEMENT EQ '1'.
       TITEMS = '1'.
         CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
           EXPORTING
             input         = titems
          IMPORTING
            OUTPUT        = titems
       ELSE.
       TITEMS = COMM_STRUCTURE-BILL_QTY.
       ENDIF.
    result value of the routine
      RESULT = TITEMS..
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    $$ end of routine - insert your code only before this line         -
    Does it satisfy all the conditions ?? mentioned above if . As far As i know as the only key
    field in the transcation it will satisfy the first two conditions .
    I want to know or If possioble anybody pls take some pain for me to send the code or any
    Ideas for satisfying all the conditions.
    Hope I will get immediate replies....
    Mail me to [email protected]

    Reddy,
    Please do not post in all sections ... makes it hard to follow up on posts..
    Arun

  • How to add a new field in target ODS that is not available in source ODS ?

    Hello every one , this is the first time i am placing a question
    - Currently we have an existing ODS based on 2LIS_02_SCL data source. This ODS is already in production.
    We have a requirement to use this existing ODS as our source to load required data in to two different data targets which also are ODS.Their update rules are different.
    Problem: There is  now a requirement to include a new field (PO need date) in the two target ODS. As this field in not available in our source ODS . How do we go about adding this.
    concern: As the source ODS is already in Production, How do we go about loading data if this new field is added.
    Anticipating your co operation.

    The new field is 0SCL_DELDATE  (planned delivery date of document schedule line)
    It is already there in the comm structure of our source ODS. But as it was not needed earlier in the source ODS, it was not used/added.(i.e not there is the source ODS update rules)
    But now as we are basing our targets on this source ODS.
    How do i go about doing this.
    The main idea of doing it this way is because we do not want to reload data from R/3.

  • Reporting from more than one infocube and also from multiple ODS

    Hi all,
            Someone please help me in these issues.
    How can we do reporting from more than one cube ( if data in all the cubes are required, but only a few fields from each cube). And how to do the same with more than one ODS.
    Thanks in advance,
    Sekhar

    Hi Sekahr
    Can u jus create a multiprovider.
    Before creating the multiprovider..Just check the Common charcterstics avilable in
    all the ods based on that give the mapping ..
    and then once u have completd the creation of multiprovider execute the same in
    the tcode <b>Listcube</b> and then create the querys as per the user thats it...
    Regards
    R M K
    Assining points is the only way of saying thanx in SDN ***

  • How to load delta to 2 target ODS 's from a single ODS using process chains

    Hi BW Gurus
    I am having a current ODS based on 2LIS_02_SCL, deltas also are working fine for it.
    our  requirement was based to have 2 target ODS on this existing ODS by using export generate datasource.
    I have to build a process chain that should enable us to load delta in our target ODS.
    Earlier manually for DEV purposes ,i was using the Update data into data targets from the source ODS, this was enabling us to load deltas. But to automate this process we will require a process chain.
    Finally , is there any process type in process chain for " Export generate Datasource".
    please suggest a good methodology for this scenario.
    Thanks in advance.

    Hi Ashfaq,
       Loading from ODS to CUBE is same as loading from datasource to ODS only.
    1. Create export datasource.
    2. Create update rules from ODS(export datasouce) to CUBE.
    3. Create infopackages(if you dont want to use generated once).
    4. include infopackage in process chain to load fromODS to CUBE.
        Intialize first manually and change settings in process chain infopackage to "Delta".
    5. You can append/enhance existing process chain(loading from datasource to ODS).
    Hope it Helps
    Srini

  • Master datasource to ods through flexi update

    hi
    i tried to load master data from r/3 using standard master data datasource to ODS object through flexible update. i created infosource in bw and assigned it to the datasource. after that i created ods based on the infosource when i tried to activate the ods its asking for delta field. i need to add 0recordmode in the infosource if it so to which field of the datasource i have to map it.how to do it?

    Hi Rajan,
    infobject 0RECORDMODE is needed for the delta load and is added by the system if a DataSource is delta-capable.
    In the ODS object the field is generated during the creation process.
    If in your datasource (it's a master data datasource!) there is no 0STORNO (and, consequently, no ROCANCEL field), let 0RECORDMODE not mapped and, in your update rules, always use 'overwrite' as update method !
    To call up documentation on 0RECORDMODE (BW Delta process: Update mode), call Transaction SE11, display data type RODMUPDMOD -> Pushbutton Documentation.
    Here you will find more useful information on the five possible features for InfoObject 0RECORDMODE (space,X,A,D,R).
    Hope it helps (and please don't forget to assign some points by clickin'on the yellow star to the contributors that help you !!!).
    Bye,
    Roberto

  • How will i combine Purchasing and inventory datasources

    Dear Folks,
    I created one ODS based on 2lis_02_HDR and 2lis_02_itm and other ODS based on 2lis_03_bf and 2lis_03_bf
    here requirement is display a report with contract no,validity end date,material grp,vendor,pur grp,cost breakup(subtotal 1---6), Target value, and consumed value based on PO date
    for that i am combining above two ODS.
    My question is based on which commonfileds i have create an Infoset..
    otherwise is there any other way to get the above fields..
    Thanks in Advance

    Hi
    Multiprovider works on union condition
    Infoset works on join condtions
    If you have two ODS with different granular level of Infoset is the better option
    Regards
    N Ganesh
    assign points if useful **

  • Bad PBR sig and dual booting with Windows

    This site's menu config is too difficult for me...
    fyi.
    =>
    Below is the cases that happened in my environment
    when installing Solaris 8 Operating Environment, Intel Platform Edition
    Some will help you, and some may be just for your thinking.
    Bad PBR sig
    You know what it means?
    I don't know.
    If you know, let me know please...
    @ Case 1
    My Seagate ST39236LW 9.2GB HARD DISK fdisk info
    Total disk size is 14342 cylinders
    Cylinder size is 1251 (512 byte) blocks
    Partition Status Type Start End Length %
    ========= ====== ============ ===== === ====== ===
    1 IFS:NTFS 0 7165 7166 50
    2 Active x86 boot 7166 7182 17 0
    3 Solaris 7183 14341 7159 50
    (I use cylinder number to partition hard disk. Why?
    When I use % and insert 1% to partition 2 then
    fdisk makes start cylinder 7155.
    It overlays with partition 1's end cylinder number.
    So fdisk save(menu no 4) fails...
    because the partition 1's start cylinder number is 0 ?)
    After rebooting, bizarre Bad PBR sig, and my system dies...
    So I boots my PC with Windows(or Dos) booting diskette.
    A> fdisk
    First Hard Disk partition info
    1 NTFS 4377 50%
    2 NON-DOS 10 0%
    3 A NON-DOS 10 0% <= Solaris created x86 boot
    4 NON-DOS 4363 0%
    Solaris created extra X86 boot partition 3 and made it active.
    But partition 3 could not boot...
    I made partition 2 active from dos fdisk menu,
    and pc boots well.
    After rebooting, my disk partition info is like this
    Total disk size is 14342 cylinders
    Cylinder size is 1251 (512 byte) blocks
    Partition Status Type Start End Length %
    ========= ====== ============ ===== === ====== ===
    1 IFS:NTFS 0 7165 7166 50
    2 Active x86 boot 7166 7182 17 0
    3 x86 boot 7183 7199 17 0
    4 Solaris 7200 14341 7142 50
    Then after installation?
    Partition Status Type Start End Length %
    ========= ====== ============ ===== === ====== ===
    1 IFS:NTFS 0 7165 7166 50
    2 Active x86 boot 7165 7181 17 0
    3 Solaris 7200 14341 7142 50
    Partition 2 and 3 changed...
    Where did partition 3 go???
    Just deleted?
    Then why partition 2 Start cylinder changed?
    @ Case 2.
    Another queer thing....
    Total disk size is 14342 cylinders
    Cylinder size is 1251 (512 byte) blocks
    Partition Status Type Start End Length %
    ========= ====== ============ ===== === ====== ===
    1 IFS:NTFS 0 7165 7166 50
    2 Active Solaris 7166 14341 7176 50
    In Solaris x86 format fdisk menu,
    if I've allocated remaining disk space all to Solaris(without x86 boot),
    then Solaris also makes x86 boot partition(size 10MB), reboots well.
    But install fails due to not enough free disk space
    when install begins slicing Solaris partition.
    error log says
    Installing 32 Bit Solaris Packages
    - Configuring boot device
    - Using disk(c0t0d0) for "rootdisk"
    - Deleting x86 boot fdisk partition (c0t0d0)
    - Creating x86 boot fdisk partition (c0t0d0)
    ERROR:Not enough free space to create x86 Boot fdisk partition(c0t0d0)
    Why does Solaris delete and create x86 boot partition?
    Why did it exist?
    Case 3.
    If I've fdisked like this, what will happen???
    Total disk size is 14342 cylinders
    Cylinder size is 1251 (512 byte) blocks
    Partition Status Type Start End Length %
    ========= ====== ============ ===== === ====== ===
    1

    BAD PBR SIG message comes from your BIOS - no partition boot record.
    Sorry but it's not clear what else is going on - might be worth running a ODS based fdisk to clear the disk before installing Solaris?

  • Update- statement in JDBC sender Adapter

    Hi ,
    I have a requirement where I am trying to fetch data from ODS based on some flag and immediately I want to update the flag status . So I used selected and update in JDBC sender adapter .
    But I have one question , in the small timeframe where  XI has done a select and just before  XI could  issue the update statement  if a new record is added to ODS . Then  that new record will also get updated though it wasnot selected in select statement .
    Can someone let me know how to overcome this problem ; as I want to make sure I update only those recrods which are selected in select statement ??
    Thanks & Regards,
    Suvarna

    Hi,
    Check out the following thread. It gives the exact answer to this question.
    JDBC Sender Update Query
    One of the replies in the above thread:
    I put in an OSS note asking this exact question with your specific example, and got a reply. I was referred to OSS note 0000831162, where it is explained very unambiguously that the SELECT and UPDATE queries are run in the same transaction.
    Regards,
    P.Venkat
    Message was edited by:
            Venkataramanan

  • FIAR report..

    Hi all ,
    We r working on FIAR overdue report .
    I have to display the Amount key figure from the 0FIAR_O03 ODS based on the following conditions:
    1.Key date(in selection screen) > Net due date
    2.Posting date <= key date(in selection screen)
    3.Clearing date > Key date(in selecvtion screen)
    I have created the restricted key figures and used variable offsets like below
    to calculate Overdue Amounts < 180 and > 180 days.
    ex. for < 180 days overdue amount
    For less than 180 days:  Restricted keyfigure with netduedate >= keyduedate-180;keyduedate-1
    For greater than 180 days : Restrcited keyfigure with net duedate < keyduedate - 180 .
    Now user wants instead of having 180 days, he wants to enter Days in selection screen alongwith key date.
    For ex.user may want to enter 30 days or 60 days or 90 days.
    User dont want to create more columns for 30,60,90 insteand of that he wants to enter in selection screen.So that report has to be generated based on the user input.

    So for this i creates a bex exit variable in CMOD -RSR00001-EXIT_SAPLRRS0_001.
    Let me explain in more detail .
    ZVAR4 is my bex variable ( single value ) .
    0P_KEYDT is my Keydate.
    ZDAY is my User enterd variable .
    for greater than 180 : Restricted keyfigure netduedate < ZVAR4 .
    for less than 180 : Restricted keyfigure netduedate in between [ZVAR4 AND KEYDATE]
    Iam using the following code
    CASE I_VNAM.
      WHEN 'ZVAR4'.
        IF I_STEP = 2.
          CLEAR L_S_RANGE.
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
          WHERE VNAM = '0P_KEYDT'.
            key_date = LOC_VAR_RANGE-LOW.
            EXIT.
          ENDLOOP.
          LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
          WHERE VNAM = 'ZDAY'.
            offset = LOC_VAR_RANGE-LOW.
            offset = offset - 1.
            EXIT.
          ENDLOOP.
          key_date = key_date - offset.
          L_S_RANGE-LOW = key_date.
          L_S_RANGE-SIGN = 'I'.
          L_S_RANGE-OPT = 'EQ'.
          APPEND L_S_RANGE TO E_T_RANGE.
        ENDIF.
    endcase.

Maybe you are looking for

  • Help on regular expression

    hi all i need to validate telephone number , and i tried to use the following expression : "[\\d][\\d][\\d]-[\\d][\\d][\\d][\\d]" or "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" they did not seem to work. can anyone provide some help on this? thanks in adv

  • Date format in prompts

    Hi all, I'm having an issue with dates formats in infoview, I have users in different regions and they are seeing  different date formats and sometimes the reports show errors because of the date format. I don't want to tell the users to change their

  • Ipod working on one machine but not another

    I purchased a 30gb iPod video today, the problem is after I installed iTunes and plugged the iPod in I got an error message stating my ipod was possibly corrupted and suggesting that I restore it. When I try to restore it says this isnt possible beca

  • How to make the light of screen the same every time

    every time I restart the laptop, the light of LCD will return to the maximum. I hope I could change it one time. Thank you.

  • IMovie Unexpectedly quitting when trying to select a clip

    I am suspecting that I may have a corrupted project. Then again, it could just be a major problem with my Mac. At one point during my import, iMovie unexpectedly quit. I was able to reopen the project and continue the import. Once the import was comp