TOC not updating

hi - i am really struggling with all aspects of ibooks author - in particular the table of contents is not 'automatically" updating as i add pages  - is there a fault or - more likely human error on my part - thanks for any ideas

Wow.. some deep emotions are coming out. Those who decry  iBA as not being "professional" or a serious app or that Apple does not listen to feedback - are all wrong!
Do tell tell us how many days you have been using the app and what self learning process you used.
For example did you set out making a test book ie not open a template and start inserting your prospective top selling eBook content?
Sonia, you have shown screen shots of the tree... now show  the TOC screen and the missing chapters.
Second.. open the same template in a new name with default content. Then  just add a couple of chapters, save it, preview it in your iPad. Are there missing chapters still?  
Nextd do the same with a different template.
The basic idea is you need to check if your computer, iBA and a variety of the free templates work OK, did you  make any changes to the actual template did you know that you can actually do this?.
People have diferent Mac setups.. etc,. Like any project you first need to check your tools and equipment are in order before you input your  content.
"APPLY CHANGES"  is relevant to changing the  basic template to customise to your requirements.
This forum has an history of problems and solutions and a search function that opens a wealth of knowledge.
iBook Author is a superb piece of software - but too many - me included - often ignore the help files and set out on a project without learning  and testing the functions.

Similar Messages

  • TOC not updating when project is saved

    The Table of Contents is not saving when project is saved. To see saved changes, I have to close and reopen.

    Hi there
    Just to be clear, this *IS* RoboHelp HTML, no?
    In RoboHelp HTML, there is no dynamic link between the TOC items and Topic Names. Sure, if you rename the File Name in a topic so the HTML file name changes, it will automatically update the TOC so that the link isn't broken. But the TOC elements are stored in a separate file completely. So I'm really confused as to what you are seeing or expect to see. Once you have a topic in the TOC, the TOC node may represent the Topic Title. Perhaps:
    How to confgure the gizmo.
    But if you later change that Topic Title to read:
    How to configure the widget
    The TOC will not change automagickally. You will have to either re-run the wizard to create a new TOC or you will need to manually edit the TOC node so it is now correct.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7 or 8 within the day - $24.95!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

  • TOC not updating when creating PDF from Robo9

    I have not really created PDFs from Robo before, so I might be missing something basic. I am trying to create Word and PDF documents from my Robo9 project. My problem is that some of my topics are not being generated, in either the Word output or the PDF output. The topics are indeed part of the TOC in the Robo project, but they are not part of the TOC in the Word and PDF output. The strange thing is, all of the TOC books make the conversion, but the one book I am having the issue with includes one topic, but all of the other topics in that book do not get converted. I tried recreating the TOC, and it still does the same thing. It's almost like the printed documentation generation is ignoring any new changes to the TOC, as it's the same every time no matter what I change. I tried making some changes to topics that are generated, and I can indeed see the changes in the printed output docs.
    Anything glaring I am missing, or should try? Thanks.
    Mark

    Likely a common misunderstanding.
    The first time you create printed documentation, the topics are based on the TOC. Thereafter there is no link.
    When you add new topics to the project, they are not automatically in any of the TOCs. You have to add them to each TOC. It's the same with print, you have to add them in the print layout.
    Easiest way is to simply use the double left chevrons to remove the topics in the print layout and then use the double right chevron to back in, the difference being it will add all the topics in the TOC and as you added the new topics there, they will be in the print layout.
    There's more in Printed Documentation on my site.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • TOC not appearing in Printed output

    Hello,
    For some reason, my TOC no longer appears in my printed documentation. It worked, at one point, but now I just see "TOC not found" in the document. I'm not sure what happened to cause this. This only happens in the printed documentation. I've tried creating a new TOC, same results. The TOC works in the sample projects. Can anyone help?
    Louley

    Egh? Updating the table. Please use the camera icon in the screen where you reply and include a screenshot of the TOC in Word, or the error it is showing.
    See www.grainge.org for RoboHelp and Authoring tips
    @petergrainge

  • Frame Maker 10 with S1000D - Figure TOC not in format

    I am using Frame Maker 10 with S1000D Application Pack, i have new document from S1000D->New->Crew Modle, inputing the data as per the Elements and updating the TOC S1000D->Update TOCs all works fine, but when i insert the Figure and updated the TOCs its not in the format
    When i checked the sample document which is given in FM 10 S1000D, Once i Insert the Element "Figure Title" it inputs auto number...but not in Crew Modle.
    Please help me how to go with this

    This formatting error is due to a missing text format rule in the Crew Module application. The quickest way to fix this is as follows:
    Locate the S1000D application files within the FrameMaker installation folder.
    Open the EDD for the Crew application: crew_401.edd.fm.
    Also open the EDD for the Description application: description_401.edd.fm.
    In the crew EDD locate the figureTitle element definition which is in the Graphics section. You should see that figureTitle has no formatting rules.
    The Description EDD does include the required formatting rules, so simply copy those rules into the Crew EDD.
    Save the Crew EDD. This may require changing the EDD's file permissions to allow read/write access.
    Open the Crew template: crew_401.tpl.fm.
    Import the EDD into the template using File > Import > Element Definitions...
    Save the Crew template.
    Open the crew data module, the List of Figures will now show the correct formatting.
    Note: Do not import the EDD directly into an open data module as that will overwrite the attribute values as defined by the BREX mapping.
    Regards
    Ian

  • FrameMaker update book icon not updating and custom formatting help

    Hi,
    I am fairly new to FrameMaker, and I am currently experiencing two issues:
    First Issue
    I am currently trying to create a book that currently has three chapters. I am trying to break it out into the following format:
    Main TOC - includes all the headers and related pages for the entire book
    Mini TOC - includes a mini TOC that highlights all the headers and pages associated with Chapter Source File A
    Chapter Source File A - includes all related content to Chapter Source File A
    Mini TOC - includes a mini TOC that highlights all the headers and pages associated with Chapter Source File B
    Chapter Source File B - includes all related content to Chapter Source File B
    Mini TOC - includes a mini TOC that highlights all the headers and pages associated with Chapter Source File C
    Chapter Source File C - includes all related content to Chapter Source File C
    Whenever I click the Update Book icon, however, it does not update the headers and page numbers. They still remain the same way when I first generated them. This occurs for both the main TOC and mini TOC.
    Second Issue
    In addition to the format structure I designed for my book, I also wanted to create a custom format look that remains constant whenever I update my TOC. I have tried testing this, but I noticed every time I generate a new TOC it is always in the unformatted FrameMaker style which you have reformat each time.
    Is there a way to create a custom format look that can retain the design and simply update the TOC headers and page numbers each time it needs to be updated?
    Any help is greatly appreciated
    Thank you!

    First I'd highly recommend getting Matt Sullivan's Publishing Fundamentals: Unstructured FM11 book - it's a pretty complete reference one to have on FM.
    Second, it sounds like you may not have your ToC reference pages set up correctly - if nothing changes when you've added content that should have created more ToC headings and shift pages around, then something is amiss. Your formatting problem is solved by doing a bit of a dodge - you create a ToC and generate it, then replace it with your formatted .fm doc keeping the exact name as the generated doc; then update again. Now the content is formatted the way you want and keeps being updated each time you update.

  • JTextField.replaceSelection is not updating

    Hey,
    I have never worked with the Document class before, and I dont really understand Threads at all for that matter, but can someone explain this for me:
    Basically I have overridden the backspace key to modify backspace and it works fine, except for this small part in which I try to remove all selected text. The code below takes place within the keyTyped method of a KeyListener, which is within a class that extends JFrame, and textField is a JTextField within that class.
    if(textField.getSelectedText() != null)
         textField.replaceSelection("");
    }//the above code updates the Document, because when i retrieve textField.getDocument().getText() and print it it looks correct, but textField doesn't update.
    Adding textField.notifyAll(); after textField.replaceSelection(""); updates textField (not sure why exactly), but it also throws a java.lang.IllegalMonitorStateException. When I synchronized(textField){textField.notifyAll();} no error is thrown, but textField does not update. Im not even sure notifyAll() is the method I want to use, but I dont even understand the root of this problem!!!
    If anyone has any clue about this please let me know, thanks.
    Other Notes: i consumed the KeyEvent for backspace through consuming both keyPressed and keyTyped KeyEvents. Im not sure if the code works stand-alone without being in the class but I will check that out and update...
    Update: When testing stand-alone i realized the error was within the key listener not with the replaceSelection() method. I will update one more time when i figure out what the problem is.
    Update: I basically figured out that the backspace character sucks. Sometimes it requires you to add identical code in both the keyTyped and keyPressed methods (such as when you are disabling it with e.consume()). This also applies for my case, when you use JTextField.replaceSelection(): you must put code in both methods for some reason?! Also, notify was not required. Does anyone know why that could have possibly fixed the problem to some extent though?
    Edited by: boldafashizzle on Feb 23, 2008 11:13 AM

    I have overridden the backspace key to modify backspace Why?
    i realized the error was within the key listener You should be using "Key Bindings":
    http://java.sun.com/docs/books/tutorial/uiswing/TOC.html
    basically figured out that the backspace character sucks.Maybe this posting will help explain what is going on:
    http://forum.java.sun.com/thread.jspa?threadID=359205&forumID=57
    If you need further help then you need to create a "Short, Self Contained, Compilable and Executable, Example Program (SSCCE)", that demonstrates the incorrect behaviour.
    http://homepage1.nifty.com/algafield/sscce.html

  • IPod 4,1 will not update to iOS 7. I updated my iMac to 10.9.1 (maverick). Latest Numbers version on iMac is not compatible with Numbers on iPod. Ideas? Can I go back a version with Numbers?

    iPod 4,1 will not update to iOS 7. I updated my iMac to 10.9.1 (maverick). Latest Numbers version on iMac is not compatible with Numbers on iPod. Ideas? Can I go back a version with Numbers? I downloaded old version of Numbers 2.0.1 from DVD but with both versions the 2.0.1 will not open.  So both versions are present but only the new version functions. I tried to drag the new version to the trash but the old version still runs error message and will not open. I did not try to restart with the new version in the trash.

    Maybe. See:
    Reverting to previous version of Numbers

  • IPod will not update in iTunes with Windows Vista

    Every time I connect my ipod to my computer, my computer locks up and it does not update. The only way I can even connect my ipod is to use manual update.

    iTunes does not yet support Windows Vista. There are numerous problems running iTunes on it. The latest release of iTuens 7.1 fixed some of them but not all.

  • Previews in Adobe Bridge in Essentials View do not update after manipulation in Adobe Camera Raw

    When I open a RAW file in Bridge and manipulate it in ACR, the preview is not updated in Bridge Essentials View.  The only way I can get it to update the preview is to open the file in "Preview" view, then it updates and looks fine in Essentials view.

    Is Bridge set up to store the ACR modifications to those XMP files? Only then it can update the preview right after working on it. Else you need to refresh the preview cache.

  • Can not update request in data target

    Hi,
    We have a process chain for master data (10 parallel) loads.  One of the load
    failed with error "can not update request REQU_46xxxxxxxxxxxxxx in data target".
    When I checked the InfoPackage
    (a) update: full load
    (b) it has data selection
    (c) processing :PSA and then to data targets
    (d) Data targets: update in all data targets for which active rules exist.
    But I do not see any list of data targets here.
    Can some one please suggest me how do I correct this load failure.
    Thanks

    Hi Wondewossen, NS and Nagesh,
    Thanks for the information. I am in support, and the developer is
    not here now.
    I have checked Header tab in the monitor, in this there
    is a update symbol and infosource name and an -->
    but after arrow there is nothing.
    when I click on this I get a message
    "No active update rules exist".
    Can you please advice me how to I correct this.
    Thanks

  • Exporting catalog, making changes, then importing catalog does not update file movements and deletions

    I export part of my master catalog to a laptop.  I include the image files so I can edit the files at full res.  After managing and editing files I import the catalog back into the master catalog. When importing I check to replace metadata, develop settings and negative files. I have been running some tests to be sure all my work is being captured in the master catalog by this process.  I find that if I change develop settings or photo ratings this is detected when the file is imported and the data in the master catalog is updated properly.  The surprise is that if I delete files or move files among folders in the exported catalog these changes are not detected and these changes are not updated inthe master catalog.  It seems bizarre to me that such changes are not detected but I do not see how to get LR to recognize these changes and include them in the catalog update.  Without this capability I don't see how to use catalogs to move part of a catalog to another computer for edits and file management and then move back to the master catalog.

    There are various reasons why Lightroom works this way, but you'll need use pick flags to indicate photos to be deleted, and other metadata like colours or collections.

  • Can not update tab if its not the default sub-tab.

    Can not update tab if its not the default sub-tab.
    JDeveloper Version 10.1.2.1.0 (Build 1913)
    Hi. I have a problem with a “lovOpenWindowAction”
    The UIX is created with a master UIX and have several sub-tab that is included as UIX-pages.
    The lovOpenWindowAction lies in the included UIX-page
    The sub-tab I have a problem with has a table with users. Then I have a “Create New” button than I want to click on and select a new user that should be included in the table in the sub-tab.
    When I click on the button I open a LOV-window. Here I select the user that I want to add.
    In the LOV Action-class I save my new value in the database. Then in the method “onLovUpdate” I update the iterator with the new values from the database.
    But in my GUI the subtab is not updated until I click on it.
    But if I make the subtab the default subtab then it all works just fine and the GUI is updated directly.
    Here is the code for the tableAction in the subtab. This code lies in an included UIX-page. Target is the table id.
    <tableActions>
    <button text="Create New" id=" createNewRollperson" accessKey="N">
    <primaryClientAction>
    <lovOpenWindowAction destination="FiskeRollpersonerLOV.do"
    source=" createNewRollperson "
    targets="joinedRollpersfiskeer message"/>
    </primaryClientAction>
    </button>
    </tableActions>
    Here is some code from the master UIX-page
    <subTabLayout id="flikar">
    <subTabs>
    <subTabBar selectedIndex="${ui:defaulting(param.index,0)}">
    <contents>
    <link id="resorFlik" text="Resor"
    disabled="${sessionScope.fiske.id == null}"
    selected="${(param.source == 'resorFlik') or empty param.source}">
    <primaryClientAction>
    <firePartialAction event="changeTab" targets="flikar globalHeader">
    <parameters>
    <parameter key="source" value="resorFlik"/>
    </parameters>
    </firePartialAction>
    </primaryClientAction>
    </link>
    <link id="rollpersonerFlik" text="Rollpersoner"
    disabled="${sessionScope.fiske.id == null}"
    selected="${param.source == 'rollpersonerFlik'}">
    <primaryClientAction>
    <firePartialAction event="changeTab" targets="flikar globalHeader">
    <parameters>
    <parameter key="source" value="rollpersonerFlik"/>
    </parameters>
    </firePartialAction>
    </primaryClientAction>
    </link>
    </contents>
    </subTabBar>
    </subTabs>
    <contents>
    <switcher childName="${param.source}"
    defaultCase=”ResorFlik">
    <case name="resorFlik">
    <include node="${ctrl:parsePage(uix, 'includes/ResorFlik')}"/>
    </case>
    <case name="rollpersonerFlik">
    <include node="${ctrl:parsePage(uix, 'includes/FiskeRollpersonerFlik')}"/>
    </case>
    </switcher>
    </contents>
    </subTabLayout>
    What am I missing?? I can’t have this subtab as the default subtab! Please help me with a solution!

    hi,
    Change the condition type to manual entry.
    or
    for example delivery costs will be different at the time of PO and actual delivery costs then at the time of invoice we select planned delivery costs and settle them first with the actual delivery cost.
    Thanks & Regards,
    Kiran

  • Data in server is not updated

    i have modify the data STREET to "ANG MO KIO"
    http://i192.photobucket.com/albums/z231/yzme/d1.gif
    but the data in server still "HEAVEN ST"
    http://i192.photobucket.com/albums/z231/yzme/d2.gif
    I am using Time2Way T01, if it is when i sync the data will be uploaded, or do i need to configure somewhere to get the data upload ?
    if the data in client and middleware is different, when i sync , the data from the middleware will again download to the client replace the modified values
    OR
    the data in the client will uploaded to the middleware and trigger the MODIFY bapi wrappers ?
    <b>
    when i check my MEREP_MON, and MEREP_LOG there is no data inside this meaning after i changed the values and perform the sync, Inbox and Outbox still remain the previous data as well as inside the MEREP_LOG,
    is it the bapi wrapper not call by the client ?
    </b>
    and i find out that my bapi not get called, what additional code should i add instead of the code below.
    DO I NEED TO IMPLEMENT SOME CODE FOR UPLOADER ??
    do i have to change the reqDirectSync="true", if yes, how do i changed, just change inside the editor, or there is somewhere to configure in sapgui
    after i changed the data , i try to sync, and i check on merep_mon
    what specific or additional steps i need to configure, on uploader / receiver or synchronizer
    <b>i do not implement any syncBoDelta or global reset ?</b>Can someone explain the term "delta" to me and its activities?
    if i have upload something, and sync, the Inbox should have something right ??
    i just put add this code to modify my records
    public String modifyRecord(String eventName,boolean didNavigate){
                             String syncBoName="ZCON";
                             String syncKey="0001230297";
                             tableViewBean.setString(syncBoName +" "+syncKey);
                             System.out.println("SyncBoName: " +syncBoName + " syncKey: " +syncKey);
                             tcp = TableContentProvider.instance(syncBoName);
                             tcp.modifyTable(syncBoName,syncKey);                                   return JSP_DETAIL_SYNCBOINSTANCE;
    public void modifyRecord(String syncBoName,String syncKey){
    SyncBoDescriptor sbd=null;
    sbd=descriptorFacade.getSyncBoDescriptor(syncBoName);
    SyncBo sb=null;
    try{
    System.out.println("bp 2");
    sb=dataFacade.getSyncBo(sbd,syncKey);
    }catch(PersistenceException pex){
    System.out.println("Exception in modifyRecordLoc:" +pex.getMessage());
    SmartSyncTransactionManager transactionManager;
    try{  transactionManager=dataFacade.getSmartSyncTransactionManager();
    if(!transactionManager.isTransactionStarted()){
    transactionManager.beginTransaction();
    boolean b8=false;
    b8=setHeaderFieldValue2(sb,"STREET","ANG MO KIO");
    transactionManager.commit();
    SetSendType();
    listAllOutDelta();
    checkInboxConflict();
    }catch(Exception e){
    System.out.println("Exception in modifyRecordAmt2:" +e.getMessage());
    public void checkInboxConflict(){
              ErrorConflictInbox errorConflictInbox= SmartSyncRuntime.getInstance().getInboxNotifier().getErrorConflictInbox();
              MeIterator iter;
              SyncBoResponse resp;
              try {
              iter= errorConflictInbox.getAllSyncBoResponses();
              while(iter.hasNext()){
              resp= (SyncBoResponse)iter.next();
              String bo=resp.getSyncBoDescriptor().getSyncBoName();//SyncBo Name
              String state=resp.getSyncBoResponseState().toString();
              String res=resp.getResponseType().toString();//Get the SyncBo response type (conflict or ERROR)
              String msg=resp.getText();// This will return the exact message from the server
              System.out.println("bo:" +bo +" state: " +state +" res: " +res +" msg:" +msg);
              System.out.println("state:" +resp.getSyncBoResponseState().toString());
              if(resp.getSyncBoResponseState().equals(SyncBoResponseState.INITIAL)){
                   String a=resp.getSyncBoResponseState().toString();
                   resp.acceptClientSyncBo();
                   String b=resp.getSyncBoResponseState().toString();
                   resp.delete();
                   System.out.println("state1: " +a +"state2: " +b);
              boolean syncStatusComplete= SmartSyncRuntime.getInstance().getInboxNotifier().isSyncStatusComplete();
              System.out.println("syncStatus:" +syncStatusComplete);
              }catch (Exception e) {
              e.printStackTrace();
    public void listAllOutDelta(){
              SyncBoOutDeltaFacade deltFac=SmartSyncRuntime.getInstance().getSyncBoOutDeltaFacade();
              MeIterator allDelta;
              try {
                   allDelta = deltFac.getAllDelta();
                   while(allDelta.hasNext()){
                             SyncBoOutDelta outDelta=(SyncBoOutDelta)allDelta.next();
                             System.out.println("SyncKey:" +outDelta.getSyncKey() +" Action:" +outDelta.getAction()
                                       +" State:" +outDelta.getStateId() +" SendType:"+outDelta.getSendType());
              } catch (SmartSyncException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (PersistenceException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    public void SetSendType(){
              SmartSyncRuntime ssRuntime = SmartSyncRuntime.getInstance();
              SyncBoOutDeltaFacade boDeltaFacade = ssRuntime.getSyncBoOutDeltaFacade();
              SyncBoDescriptorFacade descF = ssRuntime.getSyncBoDescriptorFacade();
              SyncBoDescriptor myBO = descF.getSyncBoDescriptor("ZCON");
              boDeltaFacade.setSendType(myBO, SyncBoOutDeltaSendType.SEND_DIRECT);
    //SyncManager.getInstance().synchronizeWithBackend(VisibilityType.USER_SHARED);
         public boolean setHeaderFieldValue2(
              SyncBo sb,
              String headerFieldName,
              Object value) {
              SyncBoDescriptor sbd = sb.getSyncBoDescriptor();
              //RowDescriptor trd = sbd.getTopRowDescriptor();
              System.out.println("bp 10");
              RowDescriptor trd=sbd.getRowDescriptor("010");
              System.out.println("bp 11");
              FieldDescriptor fd = trd.getFieldDescriptor(headerFieldName);
              System.out.println("fd:" +fd.getFieldName());
              if (fd != null) {
              BasisFieldType bft = fd.getFieldType();
              //Row header = sb.getTopRow();
              System.out.println("bp 12");
              //Row header = null;
              Row[] header=null;
              //try {
                   //header = sb.getRow("0001211181");
                   //header=sb.getTopRow();
                   header=getItemInstances(sb,"010");
                   if(header==null){
                        System.out.println("is null");
                   }else{
                        System.out.println("not null");
              //} catch (PersistenceException e1) {
                   // TODO Auto-generated catch block
              //     System.out.println("Exception getRow:" +e1.getMessage());
              //     e1.printStackTrace();
              System.out.println("bp 13");
              try {
    //             Integer operator
              if (bft == BasisFieldType.N) {
                   System.out.println("Numeric");
              NumericField nf = header[0].getNumericField(fd);
              if (nf != null) {
              BigInteger ii = new BigInteger(value.toString());
              nf.setValue(ii);
              return true;
              } else {
              return false;
    //             Character operator
              if (bft == BasisFieldType.C) {
                   System.out.println("Character");
              CharacterField cf = header[0].getCharacterField(fd);
              if (cf != null) {
              cf.setValue(value.toString());
              return true;
              } else {
              return false;
    //             Decimal operator
              if (bft == BasisFieldType.P) {
                   System.out.println("Decimal");
              DecimalField df = header[0].getDecimalField(fd);
              System.out.println("bp 1.1");
              if (df != null) {
                   System.out.println("bp 1.2");
              BigDecimal bd = new BigDecimal(value.toString());
              System.out.println("bp 1.3");
              df.setValue(bd);
              System.out.println("bp 1.4");
              return true;
              } else {
                   System.out.println("bp 1.5");
              return false;
    //             Similar operation for time and date operator fields
              if (bft == BasisFieldType.D) {
                   System.out.println("Date");
              DateField df = header[0].getDateField(fd);
              if (df != null) {
              if (value.toString().equals("0")) {
              Date dat = Date.valueOf("0000-00-00");
              df.setValue(dat);
              } else if (!value.toString().equals("")) {
              Date dat = Date.valueOf(value.toString());
              df.setValue(dat);
              } else {
              Calendar cal = Calendar.getInstance();
              java.sql.Date bd =
              new java.sql.Date(cal.getTime().getTime());
              df.setValue(bd);
              return true;
              } else {
              return false;
    //             Similar operation for time and date operator fields
              } catch (SmartSyncException ex) {
              System.out.println(ex.getMessage());
              } catch (PersistenceException e) {
              System.out.println(e.getMessage());
              return false;
    SyncType: T01 Wrapper: GetList,GetDetail,Modify
      <?xml version="1.0" encoding="utf-8" ?>
    - <MeRepApplication schemaVersion="1.1" id="ZCON" version="01">
      <Property name="CLIENT.BUILDNUMBER" />
      <Property name="C_APPLRESOLVE" />
      <Property name="DATA_VISIBLE_SHARED">X</Property>
      <Property name="E_APPLRESOLVE" />
      <Property name="FACADE_C_CLIENT">X</Property>
      <Property name="FACADE_E_CLIENT">X</Property>
      <Property name="HOMEPAGE.INVISIBLE" />
      <Property name="INITVALUE" />
      <Property name="RUNTIME">JSP</Property>
      <Property name="TYPE">APPLICATION</Property>
    - <SyncBO id="ZCON" version="1" type="timedTwoWay" allowCreate="false" allowModify="true" allowDelete="false" reqDirectSync="false" downloadOrder="1">
    - <TopStructure name="TOP">
    - <Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
      <Input type="create">false</Input>
      <Input type="modify">false</Input>
      </Field>
    - <Field name="PERSNUMBER" type="N" length="10" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <ChildStructure name="010">
    - <Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
      <Input type="create">false</Input>
      <Input type="modify">false</Input>
      </Field>
    - <Field name="PERSNUMBER" type="N" length="10" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <Field name="CITY1" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <Field name="CITY2" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <Field name="STREET" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <Field name="HOUSE_NUM" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
    - <Field name="REGION" type="C" length="40" decimalLength="0" signed="false" isKey="false" isIndex="false">
      <Input type="create">false</Input>
      </Field>
      </ChildStructure>
      </TopStructure>
      </SyncBO>
      </MeRepApplication>
    Message was edited by:
            yzme yzme

    <u>my intention is very simple, i just need to  update a field in a row and update to the middleware so that the backend will reflect the changes. </u>
    >2 if i set the conflict/error handling to application, then i should have to implement some code for it, right ?
    >3) List syncbooutdelta
    <b>SyncKey:0001233035 Action:M SendType:SEND</b>
    doesnt it mean that when i sync , the uploader will pick up this data and do a modification ??
    i have change the metadata like this
    <SyncBO id="ZCON" version="1" type="timedTwoWay" allowCreate="false" allowModify="true" allowDelete="false" reqDirectSync=<b>"true" </b>downloadOrder="1">
    1) i try to sync the application and check the worklist monitor, there is nothing in the inbox ? how come ?
    2)if i test using emulator, i try to modify a value and execute, i am getting the following error.
    <u>
    Header action from mobile="MOD", R/3 action="ADD"
    Return code 1 (DOWNLOADER)
    </u>
    i try to modify not "Add"
    3) I am using Time 2 Way , how to check it is synchronous or asynchronous ? in merep_sbuilder, the default asyn. is checked, meaning async ??
    the type is T01 , ASYNC
    4)
    public void checkInboxConflict(){
              ErrorConflictInbox errorConflictInbox= SmartSyncRuntime.getInstance().getInboxNotifier().getErrorConflictInbox();
              MeIterator iter;
              SyncBoResponse resp;
              try {
              iter= errorConflictInbox.getAllSyncBoResponses();
              while(iter.hasNext()){
              resp= (SyncBoResponse)iter.next();
              String bo=resp.getSyncBoDescriptor().getSyncBoName();//SyncBo Name
              String state=resp.getSyncBoResponseState().toString();
              String res=resp.getResponseType().toString();//Get the SyncBo response type (conflict or ERROR)
              String msg=resp.getText();// This will return the exact message from the server
              System.out.println("bo:" +bo +" state: " +state +" res: " +res +" msg:" +mtext);
              boolean syncStatusComplete= SmartSyncRuntime.getInstance().getInboxNotifier().isSyncStatusComplete();
              System.out.println("syncStatus:" +syncStatusComplete);
              }catch (Exception e) {
              e.printStackTrace();
    <u>bo:ZCON state: INITIAL res: CONFLICT msg:Conflict: R/3 = delete, device = modify
    SyncStatus=true (complete)
    </u>
    5) after that i change my code to this
    while(iter.hasNext()){
      if(resp.getSyncBoResponseState().equals(SyncBoResponseState.INITIAL)){
        String a=resp.getSyncBoResponseState().toString();
        String a1=syncBO.getSyncState().toString();
        resp.acceptClientSyncBo();   //No transaction stated to commit
        resp.delete();
    String b=resp.getSyncBoResponseState().toString();
    String b2=syncBO.getSyncState().toString();
    System.out.println("state1: " +a +"state2: " +b);
    System.out.println("SyncState1: " +a1 +"SyncState2: " +b1);
    <u>state1: INITIAL state2: RESOLVED </u>
    <u>SyncStatus1:QUANRANTINE SyncStatus2: INCONSISTENT</u>
    and i try to sync ...no data in worklist
    6)i try to list out all the delta to be uploaded
    ListAllOutDelta to be upload
    <u>SyncKey:0001233349 Action:I State:99925F8E24DFFE49A4563C5E018E9B61 SendType:SEND
    </u>
    i am modifying the rows, not Insert a new row, the Action:'I' instead of 'M',  pls clarify on this.
    after i sync, i found out that there is 2 record with different syncKey but same primary key and all attributes appear to be same except the attribute that i changing.
    <u>SYNCKEY    PERSNUMBER CITY STREET HOUSENO</u>
    0001230298 000000000  HELL <u>ANG MO KIO</u> 0123456789 (modified record)
    0001230299 000000000  HELL <u>HEAVEN ST</u>  0123456789(old record)
    i check the application and found out that the previous record that i modify have its value changing locally but not updated into the backend, after sync, there is another record downloaded into this application which is the old record before i modify with different syncKey.
    but when i check the backend table, there is only 1 record inside, because i dont implement the 'Create' Bapi.
    does it make sense ?
    7) when i check my client , the data is persisted with modified value , but the changes is not reflected in the server, how come the data in client is not uploaded to the server.
    acceptClientSyncBo will make the client wins how come the data is not get updated in server ?
    Re: Regarding modifying Sync BO
    According to him, can anyone translate the things highlighted below
    for modifying one sync bo instance , there is no need to use createUnlinkedCopy()..
    just use like this..
    sb = dataFacade.getSyncBo(sbd,key);
    SmartSyncTransactionManager transactionManager;
    transactionManager = dataFacade.getSmartSyncTransactionManager();
    transactionManager.beginTransaction();
    setHeaderFieldValue(sb,"PERSNUMBER","9866321467");
    setHeaderFieldValue(sb,"FIRSTNAME","RajaSekhar");
    setHeaderFieldValue(sb,"LASTNAME","Varigonda");
    setHeaderFieldValue(sb,"PROFESSION","Technical Specialist");
    setHeaderFieldValue(sb,"***","MALE");
    setHeaderFieldValue(sb,"BIRTHDAY","1977-09-28");
    setHeaderFieldValue(sb,"HEIGHT","165");
    setHeaderFieldValue(sb,"WEIGHT","75");
    // Commit the transaction
    transactionManager.commit();
    setHeaderFieldValue - can be used to set value in new sync bo instance , or modify the instance.
    <b>
    But one main think here have to consider is , if you have created one Sync Bo instance , not synchronized with back end and u have modified that, then thats just like a creation .So during sync this will call Create Bapi Wrapper.
    </b>
    But after synchronization , is u are modifying that instance , then it is a modification(will call MODIFY Wrapper in back end during synchronization). u must have the right to modify this instance in the client side.
    hope u got it.
    u can debug MI Applications in NWDS.
    refer this blog written by Arun
    /people/arunkumar.ravi/blog/2006/02/22/execute-debug-your-mi-code-from-nwds
    let me know , if u have doubts
    Regards
    Kishor Gopinathan
    pls comment...

  • Can not update an assignment block with on_new_focus

    Hello Experts,
    I have the following problem. I created a new component which is similar to the component BP_BPBT to create activities for Business Agreements. In the overview page of the business agreement in WebUI, I have now the assigment blocks "Plannend activities" and "Interaction History".
    When I create a new activity in the assigment block "planned activities" with the new button and save the activity with the buttons "SAVE" or "SAVE AND BACK". The new created actity is shown, depending on the "Active Status" , in one of the assignment blocks "Plannend activities" and "Interaction History". When I create an another activity in the same way, the new actiity is not shown in the assignment blocks. But when I reload the page again, I can see the new created activity.
    During debugging, I see, that the first creating activity is in the collection in the method ON_NEW_FOCUS. When I create an another activity, the collection is not updated. Here is my coding:
    * get collection of dependent nodes
      TRY.
          entity ?= focus_bo.  "BuAg Entity 
        CATCH cx_sy_move_cast_error.
          RETURN.
      ENDTRY.
      TRY.
      lr_entity = entity->get_related_entity( iv_relation_name = 'BuAgBuPaRel' ).
         lv_collection = lr_entity->get_related_entities(
             iv_relation_name = 'BuilInteractionHistoryRel'
    *  D022159: Performance optimization
             iv_mode          = lv_mode ).
    Can anyone explain me, why the activities (after the first one) are not in my collection.
    Can anyone help me to fix this problem?
    Kind Regards,
    John H.

    Hi,
    Please check if you have added your entity to collection after you save the entry. It looks like your value is saved in DB but its not reflected on UI because you are not refreshing your collection.
    I would suggest that you write a code after you save and commit to refresh your collection of the context node.
    Regards,
    Bhushan

Maybe you are looking for