Page Flow with TRAIN STOPS

Hi! I created Bounded task flow with Train Stops, see: http://my.jetscreenshot.com/2677/20120516-4ens-9kb
So, I want to use this Flow to insert first new Department and after that employees that work in this department. So I have two questions:
1. How can I add Create/Insert operation from DC before departments VIEW and employees VIEW (see in http://my.jetscreenshot.com/2677/20120516-4ens-9kb)?
2. If I insert new department and employees that work in this department I need to do commit after each Train Stop or I can do commit operation after last Train Stop?
Waiting for Your responses, best regards, Debuger!

Debugger,
At runtime, executable bindings are refreshed based on the value of their Refresh attribute. Refreshing an iterator binding reconnects it with its underlying RowSetIterator object. Refreshing an invoke action binding invokes the action. Before refreshing any bindings, >the ADF runtime evaluates any Refresh and RefreshCondition attributes specified in the executables. The Refresh attribute specifies the ADF lifecycle phase within which the executable should be invoked. The RefreshCondition attribute specifies the conditions under >which the executable should be invoked. You can specify the RefreshCondition value using a boolean EL expression. If you leave the RefreshCondition attribute blank, it evaluates to true.For more details on refresh condition you can refer this: http://docs.oracle.com/cd/E14571_01/web.1111/b31974/bcdcpal.htm#ADFFD517
The Restore View phase of the JSF lifecycle presents three view instances: new view, initial view, and postback, with each one being handled differently. In the case of
new view :JSF builds the view of the Faces page.
initial view (the first time a page is loaded), JSF creates an empty view.
postback (the user returns to a page he/she has previously accessed): the view corresponding to the page already exists, so it needs only to be restored
Now: *${!requestContext.postback and empty bindings.exceptionsList}*
requestContext.postback+: returns true if JSF is currently processing a postback request and return false if this is a request for an initial render of a page. It means the refreshCondition evaluates to true for an Initial render of a page and no exceptions.
Hope this clarifies the line of code.

Similar Messages

  • How to use Train Component only with Task-flows as Train Stops

    Hi,
    I'm using JDeveloper version - 11.1.1.6
    I have below requirement:
    In a Page when user clicks the button, display the Popup with Train Component. I have to use bounded task flow for each Train Stop. I don't have any views to be used as Train Stops. (Most of the Train Samples have Views / JSFF Fragments as Train Stops and child task flows as Train stops)
    Please let me know if I can achieve this.
    Any pointers would be helpful.
    Thanks
    Ravi

    Hi,
    train stops must be displayed on a view. So if you have a task flow that navigates to other taskflows then it needs to have at least a single view to display the train stops. If you attempt to show. If you enter a task flow then this task flow will have its own train model. So maybe its better to look at what your use case is and why you need to quite called task flows without properly exiting them
    Frank

  • Why has page scrolling with touchpad stopped after upgrade?

    I use an Acer Aspire 7540 laptop. Page scrolling with the touch bar seems to have stopped after I upgraded to the latest version of Firefox.

    http://www.bulletsandbones.com/GB/GBFAQ.html#scrolltimeline
    (Let the page FULLY load. The link to your answer is at the top of your screen)

  • Nested page flows with a common popup

    Hello,
    I would appreciate some help with the following problem...
    I have a web application that utilizes nested page flows. I need the
    ability to popup a window (with dynamic data) that can be initialized from
    any page flow in the application. The catch is that after popup is opened,
    the active page flow in the application must be the flow that created the
    popup. Also, I want to have one copy of this JSP in my application, and it
    requires page flow data binding.
    My solution as it stands works, but throws an Exception. Basically, the
    popup has its own nested page flow that is initialized by an action in any
    other flow that needs it. The popup flow uses the response to send a
    redirect to a blank window, then forwards to a return action to get back to
    the popup flow's parent flow. Functionally this works perfectly, however,
    the following exception is thrown:
    java.lang.IllegalStateException: Cannot forward to a response that is
    already committed
    Obviously, I'm not going about this correctly. Thanks for any help in
    advance,
    Chris

    Hello,
    I would appreciate some help with the following problem...
    I have a web application that utilizes nested page flows. I need the
    ability to popup a window (with dynamic data) that can be initialized from
    any page flow in the application. The catch is that after popup is opened,
    the active page flow in the application must be the flow that created the
    popup. Also, I want to have one copy of this JSP in my application, and it
    requires page flow data binding.
    My solution as it stands works, but throws an Exception. Basically, the
    popup has its own nested page flow that is initialized by an action in any
    other flow that needs it. The popup flow uses the response to send a
    redirect to a blank window, then forwards to a return action to get back to
    the popup flow's parent flow. Functionally this works perfectly, however,
    the following exception is thrown:
    java.lang.IllegalStateException: Cannot forward to a response that is
    already committed
    Obviously, I'm not going about this correctly. Thanks for any help in
    advance,
    Chris

  • Jump in special train stop in task flow ?

    Dear Taskflow man ;
    I make simple taskflow, 5 fragment in bounded taskflow and train stop, it work fine.
    I need to make jump in this taskflow
    when I open the page go to train stop 3 and train 1,and 2 enable and editable
    because when I used the router it's jump but make the train 1 and 2 disabled
    how I can make it ??
    thanks

    can do it programmatically from backing bean or jsp
    when open task flow page go to train stop 3 automatic
    thanks
    Edited by: lover91 on Feb 9, 2012 3:29 AM

  • Train Stop Lables not Visible

    Hi All,
    I'm using Jdeveloper REL1 PS2 with ADFBC
    I'm having a problem getting my train stop labels to render. Besides the train stop label not being visible, everything else is working as advertised. I can navigate though the train stops, the data on my pages appears as expected.. etc.
    Here is what I've done so far:
    1. I created a bounded taskflow with page fragments and checked "create train" checkbox.
    2. In my task flow, I've assigned *<display-name>* values to each view activity participating in the train. See code below. According to the documentation I've read, this is what I need to set to label my train stops. However, when I run my task flow in a region, the the labels are not visible.
    I've read section 18.8 in the Fusion Developer's guide, I've followed examples in these two blogs:
    http://biemond.blogspot.com/2007/11/taskflow-train-in-jdeveloper-11g.html
    http://biemond.blogspot.com/2008/06/advanced-taskflow-train-features.html
    I've read previous posts regarding this issue like the this one:
    Re: Creating ADF Train
    Which states *"In Task flow click the View activity in structure window Right click Choose > insert inside > Display name and set the value to it."*
    I also went through the train taskflows and pages in the Fusion Order Demo app and I cannot see how my implementation of the taskflow or how I'm adding the af:train component to my .jsff pages is different from the examples that I've found.
    Any help would be appreciated. Thanks!
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-definition id="EditEventTrainFlow">
        <default-activity id="__34">EditEventDetail</default-activity>
        <transaction id="__15">
          <new-transaction/>
        </transaction>
        <data-control-scope id="__16">
          <isolated/>
        </data-control-scope>
        <view id="EditEventDetail">
          <display-name id="__10">Edit Event</display-name>
          <page>/oracle/ou/oep/ui/pages/fragments/EditEventDetail.jsff</page>
          <train-stop id="__9"/>
        </view>
        <view id="EditEventRoomAssignments">
          <display-name id="__38">Assign Rooms</display-name>
          <page>/oracle/ou/oep/ui/pages/fragments/EditEventRoomAssignments.jsff</page>
          <train-stop id="__11"/>
        </view>
        <task-flow-return id="Submit">
          <outcome id="__13">
            <name>done</name>
            <commit/>
          </outcome>
        </task-flow-return>
        <task-flow-return id="Cancel">
          <outcome id="__14">
            <name>cancel</name>
            <rollback/>
          </outcome>
        </task-flow-return>
        <view id="ConfirmEventChanges">
          <display-name id="__18">Confirm</display-name>
          <page>/oracle/ou/oep/ui/pages/fragments/ConfirmEventChanges.jsff</page>
          <train-stop id="__17"/>
        </view>
        <train/>
        <control-flow-rule id="__19">
          <from-activity-id id="__20">*</from-activity-id>
          <control-flow-case id="__21">
            <from-outcome id="__23">cancel</from-outcome>
            <to-activity-id id="__22">Cancel</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <control-flow-rule id="__24">
          <from-activity-id id="__25">ConfirmEventChanges</from-activity-id>
          <control-flow-case id="__27">
            <from-outcome id="__35">submit</from-outcome>
            <to-activity-id id="__26">Submit</to-activity-id>
          </control-flow-case>
          <control-flow-case id="__29">
            <from-outcome id="__30">goToEditEventDetail</from-outcome>
            <to-activity-id id="__28">EditEventDetail</to-activity-id>
          </control-flow-case>
          <control-flow-case id="__32">
            <from-outcome id="__33">goToRoomAssignments</from-outcome>
            <to-activity-id id="__31">EditEventRoomAssignments</to-activity-id>
          </control-flow-case>
        </control-flow-rule>
        <use-page-fragments/>
      </task-flow-definition>
    </adfc-config>

    Hi,
    You need to first name the view activity to desired name first and then change the display name.You will find a good example in JDeveloper Help Topics under Cue Cards>Work with ADF Technologies>Implement a Multi-Step page Flow with ADF Train>Step 2
    For Ex:
    In the Application Navigator, select the ViewController project and open the Create Task Flow dialog. Enter train-flow.xml in the File Name field. Select both Create as Bounded Task Flow and Create with Page Fragments. Then select Create Train and click OK.
    From the Component Palette, ADF Task Flow page, Components panel, drag View and drop it on the blank canvas in the diagrammer. Rename the activity to start. Repeat the procedure to add three more view activities, using the following names: addresses, payment, review.
    Drag and drop Task Flow Return on the diagram. Accept the default name of taskFlowReturn1. In the Component Palette, click Control Flow Case. On the diagram, click the review icon, then click the taskFlowReturn1 icon. Rename the control flow case element to commit.
    In the Structure window, expand view - start . Right-click train-stop and choose Insert inside train-stop Display Name. In the Property Inspector, enter Start in the Display Name field. Repeat the procedure in step 6 to add train stop display names to the remaining view activities: view - addresses , view - payment, view - review . Use the following values, respectively: Addresses, Payment, Review. In the Application Navigator, select the ViewController project and open the Create Task Flow dialog again. Enter childtrain-flow.xml in the File Name field. Make sure Create as Bounded Task Flow and Create with Page Fragments are selected. Then select Create Train and click OK. From the Component Palette, drag View and drop it on the diagrammer. Rename the activity to billing. Repeat the procedure to add one more view activity, using the name shipping. Drag and drop Task Flow Return on the diagram. Change the name to childFlowReturn1. Draw a Control Flow Case from shipping to childFlowReturn1. Rename the case element to done. In the Structure window, expand view - billing. Right-click train-stop and choose Insert inside train-stop Display Name. In the Property Inspector, enter Billing in the Display Name field. Repeat the procedure in step 13 to add
    Hope this helps!
    Edited by: Swathi Patnam on Sep 9, 2010 2:16 PM

  • Showing the custom train stop as default activity based on condition

    Hi Folks,
    I'm using JDeveloper version 11.1.1.5.0. I have requirement where in i have to show the custom train stop as default train stop based on some business logic instead of default activity mentioned as part of task flow with train.
    Test Case:
    I have a dynamic region where i'm loading diff task flows based on condition. Let us consider i have two task flows TF1, TF2 and One of these task flows (TF2) contains a train.
    TF2 task flows has a train with train stops as ts1, ts2 and ts3 and ts1 has been configured as default activity in TF2 task flow
    I'm loading these task flows into dynamic region based on my business logic. Currently i'm in TF1 and i'm doing some action in TF1 page. Based on my business logic in one of the button actions in TF1, i have to load TF2 into region and have to set either ts1, ts2 or ts3 as default activity. its not like every time only configured default activity as part of TF2 is shown.
    Consider this case. in IF1 i have 3 buttons b1, b2 and b3. When i click on b1, i have to load TF2 into region and ts1 as default activity. Like wise if i click on b2 in TF1, i have to load TF2 abd ts2 as default activity. Like wise if i click on b3 in TF1, i have to load TF2 abd ts3 as default activity.
    I have summarized my test case here. Its not exactly 100% same but it more or less like based on some business logic in TF1 i have to load TF2 with specific train stop as default activity.
    Please help me in this regard. Is this possible in ADF? if yes provide some pointers.
    NOTE:
    I'm able to show the specific trainstop as the selected one but its content is not showing. Though i'm able to see my intended trainstop selected but content is always the content related to the default activity configured as part of task flow.
    I have used below code to acheive ( setting atleast intended train stop as the selected on)
    TrainModel trainModel = TrainUtils.findCurrentTrainModel();
    trainModel.setCurrentTrainStop(activityId);
    [activity id i'm getting from model it self like java.util.Map<ActivityId, TrainStopModel> mapTrainStops = trainModel.getTrainStops(); and intended activityId is provided}
    // note end
    Thanks,
    Mahipal

    Hi Jobinesh,
    Thanks for your reply.
    When i try to do the navigation with in the task flow i.e. with in the train task flow, i'm able to navigate fine. But for different taskflow, i'm unable to do it.
    for ex: in my case i have three train stops ts1, ts2 and ts3. I have placed a button in ts3 and i'm returning the respective navigation el expression to navigate to either ts1 or ts2 in action method of this button. I'm able to do this successfully. but when i come from different taskflow, i'm unable to do this.
    I have tried this link as a workaround but it is not working.
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/97-deferred-trainstop-navigation-1528557.pdf
    i have tried this way, but it is not working.
    FacesContext fctx = FacesContext.getCurrentInstance();
    ExpressionFactory expressionFactory =
    fctx.getApplication().getExpressionFactory();
    ELContext elctx = fctx.getELContext();
    MethodExpression methodExpression =
    expressionFactory.createMethodExpression(elctx,
    "_adfcActivityRequest./WEB-INF/task-flow-definition.xml#task-flow-definition@*ts3*",
    String.class,
    new Class[] { });
    *//NOTE: ts3 is the activity id of third train stop*
    //queue action in region
    myspaceRegion.queueActionEventInRegion(methodExpression,
    null, null, false,
    0, 0,
    PhaseId.INVOKE_APPLICATION);
    Please let me know any pointers for this problem. is there any example with routers navigation rules which can be called from another task flow.
    Thanks,
    Mahipal

  • Weblogic portal page flow issue

    Hi,
    We are working with portal development using legacy product. This runs on weblogic portal 8.1 SP 4.
    Part of the project, we have to provide user management. We are planning to use the java page flow offered by weblogic.
    When we create a new application and new project and try to create a new page flow (with the UserManager controller) standalone, it works.
    We access the legacy portlets by IMPORTING it as a project inside weblogic portal (i.e workshop). If we follow the same steps to create the page controller in this imported project, the page flow does not work. i.e., instead of displaying the form, it generates java code in the test browser of Workshop
    Do we have to enable any project specific settings for jpf to work.
    regards
    -Ramudu

    Hi,
    Proliferation refers to the process by which changes made to the Library instance of a portal asset are pushed into user-customized instances of that asset which means that when any changes are made to the portlet in source and if you want to propagate that change to the destination, that time if that portlet is used in a desktop where many users are provided an option to customize that desktop only that particular time at destination if you change the Portal Resources Proliferation of Updates Configuration setting to either Asynchronous or off propagation will be faster because that time propagation utility will not change for each user. If the value is synchronous it changes for each user and hence some delay that too it will happen during commit operation only but not during download operation.
    So I feel, Proliferation may not be useful for your case.
    We need to find why downloading source is taking 3 hrs and destination is taking 8 hrs.
    Please let me know whether you are running downloadsource and downloaddestination.
    I suggest run downloadSource in source machine itself and downloadDestination on the destination Machine itself so that you can reduce the network latency.
    Thanks & Regards,
    Murali.
    ===========

  • How to 'get rid' of a page flow template

    I added a page flow template instead of a page flow and wanted to delete it (get rid of it forever) but couldn't see how to. So I selected 'exclude project content'. Then I created a new page flow with the same name but it went back to the other item I excluded. Then I tried to change it to a page flow but I couldn't get it back into my project. I finally closed JDev and deleted the project and am starting over. How does one delete one of these?

    I'm not sure I understand you correct.
    If you want to get rid of the template, go to the file system folder and just delete the template file. If your jdev was open you have to refresh the project. It's normaly better to close jdev before deleting the template in the file system and then start jdev again. Jdev then will rescan the directories and delete the file from the jpr file.
    Timo

  • Struts / Page Flow - forwards to home page in streaming mode

    I have a pretty complex page flow with several actions and several forwards. The
    page flow is using struts validation (using the xml file). It is also user the
    Portal User Controls.
    Everything works fine in .portal file. However, in streaming mode, from a jsp
    when I click on an netui:anchor, the action gets executed, but then it redirects
    to the home page, not to the page which has the portlet.

    More info: I can place a page component on my page flow diagram but I cannot place any other components. They won't display. Placing the page component on the diagram does not put code into the source file. Also, I get the following compile error: Error(1,1):<Line 1, Column 1>:XML-20108:(Fatal Error) Start of root element expected.
    Thanks!

  • Dynamically Add and Remove Train Stop with version 11.1.2.3

    I have found examples with prior versions, such as http://adfpractice-fedor.blogspot.com/2011/12/dynamic-adf-train-showing-train-stops.html.
    But, they do not work in 11.1.2.3.
    It appears that the APIs have changed considerably.
    Please advise as to a similiar example that is based on the API model for 11.1.2.3
    Thanks in advance for your help.

    Hi,
    I have a requirement to dynamically add different train stops at runtime, which are not part of the task flow at design time. I would like to build the train at runtime based on various conditions that occur. Is this possible?
    Train stops can only be removed from the train model before the first view renders, which means during task flow initialization. To a later point you cannot remove but hide stops. The train model is created upon task flow initialization too and any train stop that is not part of the model virtually doesn't exist. In your case I think creating a custom train model from ground up and using this with the train is the way to go. The default task flow metadata based implementation doesn't seem to do what you need it for. Alternatively, if you can predict the maximum number of train stops, you can design them at design time and then remove those you don't need at runtime using a HashMap reference in the train stop configuration and check the HashMap values upon initialization.
    Here's a write up on trains I did in the past: http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51adf-452576.html
    More documents you find on ADF Code Corner http://www.oracle.com/technetwork/developer-tools/adf/learnmore/index-101235.html (just search for train)
    Frank

  • Page flow stopped

    I have been editing a chapter for three days with no problems, and out of the blue, the page flow stopped, and I can't get the paragraphs to advance to the next page. I have tried the following things:
    checking to make sure the current and next pages have the same flow. (They do.)
    saving and closing the file, exiting FrameMaker, and restarting my computer
    using a different paragraph tag
    turning off track text edits and attempting to advance to the next page with unmarked text
    entering preview mode with track text edits turned off
    I have the following set up:
    FrameMaker 9.0p237
    Windows 7 64bit
    A very robust computer
    A client with an insane deadline
    Please help!
    Thanks,
    Karen

    Karen, as you're on a deadline I'd suggest that it's easier to resurrect the file by creating a new file rather than troubleshooting what went wrong with the current file.
    1. save your current file as-is, so that you're sure you have both the content that you've entered and the formatting. Personally I'd also do a second backup copy of the problem file with a different name, e.g. xxBAD or something.
    2. create a brand new FM file. With both documents open, in the new file do File > Import > Formats, and select the "old" file in the drop-down menu. Then select which will copy all the master pages and paratags etc. over to your new file. Save this new file with a different name, "xxNew". Be sure to note what settings you've selected on the bottom section "While updating remove", so that if you need to you can re-do the import and change these settings. The initial selection depends on how many style overrides you might have used (if any) in the original document.
    3. In the xxNew file, put your cursor in the text frame at the top of the first (and so far only) page.  Then do File > Import > File. Choose the xxOld file. At the bottom of the dialog be sure to select "copy into document". This will copy the content from the other file into the xxNew file.
    In the "Import text flow" dialog that pops up, choose the Body page flow and the default "A (Main Flow)". Because you've already imported the formats you could use either the default "Reformat Using current document's formats" or the bottom "Retain Source's Formatting" -- the choice depends a lot on whether you have ad hoc formatting in your original document, e.g. highlighted words and just clicked "Bold" from the menu, as opposed to using a character style called "Bold", or changed the alignment of a paragraph but not made a new paragraph tag for that different alignment, both of those examples are of overrides. If you have used a lot of overrides then I would suggest using "Retain source's formatting".
    4. In the xxNew file, page to the end of the document. Put your cursor before the "end of flow" symbol,
    Start typing, enter a few carriage returns, whatever, to be sure that when you reach the end of the page that FM will automatically add a new page and your typing does extend forward onto the next page as you expect.
    Assuming things are ok, then save this xxNew file as the original filename.
    That should get you back to operation, and you can work out what went wrong with the original file once the deadline has passed.
    Sheila

  • TS1398 hi my ipad is connected to my wifi but it keeps coming up with safari could not open the page because the server stopped responding its saying this know matter what i try to open what am i doing worng please help

    my ipad will not load any pages an after about 10 mins comes up with safari could not open the page because the server stopped responding but iam conected to wifi please help as i have been trying for 2 days now and is doing my head in

    Does the iPod connect to other networks OK?
    Do other devices now connect and work OK?
    Try:
    - Reset the iOS device. Nothing will be lost
    Reset iOS device: Hold down the On/Off button and the Home button at the same time for at
    least ten seconds, until the Apple logo appears.
    - Power off and then back on the router
    - Reset network settings: Settings>General>Reset>Reset Network Settings
    - iOS: Troubleshooting Wi-Fi networks and connections
    - iOS: Recommended settings for Wi-Fi routers and access points
    - Restore from backup. See:
    iOS: How to back up
    - Restore to factory settings/new iOS device.
    - Make an appointment at the Genius Bar of an Apple store.
    Apple Retail Store - Genius Bar

  • TS1398 my problem is my iphone 4s is connected to the internet(wi-fi) with full signal strength but freezes when browsing and says "Cannot Open Page, Safari could not open page because the server stopped responding".

    my problem is my iphone 4s is connected to wi-fi with full signal(3 bars) strength but freezes when browsing and says
    "Cannot Open Page"
    "Safari could not open page because the server stopped responding"
    I already reset the iphone to its factory settings and erase all contents but still the browsing speed freezes or not searching at all. Sometimes it will work and fast but then the problem uccors every now and then. Iv'e been using iphone 4 for two years and I still have it and works fine compared to this IPHONE 4S.

    Settings → scroll down to Safari → in Safari settings, I selected both Clear History and Clear Cookies and Data.
    IF that does not work -
    Restart or reset your iPhone, iPad, or iPod touch - Apple Support
    Finally - if problem still present -
    Go to Settings>General>Reset
         Reset the network settings - you will need to add the password of your home WiFi in your phone once more
    The device should turn itself off & back on then go into Settings>Wifi and join your network

  • TS3274 I am having problems with Safari  It keeps coming up with Safari could not open the page because the server stopped responding, when I click on Safari  How can I remedy this WiFi is OK.

    When I turn on my Ipad and click on Safari it says  Safari could not open the page because the server stopped responding.but I can get on internet with Google Chrome.   What is the problem and how can I repair it?

    Found the answer in the more like this panel and now working.  Thanks.
    But have 3 updates waiting in Apps but it is taking ages to update them and cannot get onto Apps by clicking Apps on the desktop.screen.

Maybe you are looking for

  • Creating new folder in sharepoint

    Hi - I am using Office 2013 and using the "Save as" function in Word want to create a new folder on the SharePoint site. there does not seem to be any way to do this through the "save as" dialog process. The "new folder" option only seems to be avail

  • Box in SAP Script

    Hello All , This issue is driving me crazy . In the Layout there are three columns one is Material , 2nd one is  Scanned  and the 3rd one is Scanned By . In the Print Preview there are no issues . But in the Actual Print , I am facing 2 issues : - 1

  • Runtime error! Please help. Has anyone found a solution?

    I just started to get the below error as soon as i open iTunes. Then it closes. Does anyone have a solution? Runtime Error! Program: c:/Program Files/ITunes/ITunes.exe This application has requested the Runtime to terminate it in an unusual way. Plea

  • Cannot get TV to mirror mid-2009 Mac Book Pro screen

    I previously had no trouble using my TV as a mirror for my mid-2009 MacBook Pro but suddenly found I could not longer do so. Sadly I cannot remember just how I set it up originally. Advice on the web entails going to Displays in Apple Preferences and

  • Re: Office 2011 on OS Lion

    I dont understand....  After upgrading to Lion on both Imac and Mac Air (2009 Model), office will only work on my Imac.  It will not work on my Mac Air.  Any help would be great.  Thanks.....