<div dir="ltr"><p>Hi Framers,\</p><p><br></p><p> I am trying to run to traverse through the 
paragraph tags in the book files and check for a condition applied on 
them using  the following script<font size="1"><span style="font-family:comic sans ms,sans-serif">:</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">var openedBook = app.ActiveBook</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">//openBookFiles(openedBook)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">//savePdf(openedBook,bookFile + ".pdf")\ </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   var arr_ChapterIds=new Array();</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif"> var bookChapter=openedBook.FirstComponentInBook</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">  var chapterId = bookChapter.id</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif"> var pgfText = null;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">var msg = null;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">var totalPgfs = 0;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif"> /*  Calculating the number of chapters in the book */</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    while(chapterId)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    { </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">      var chapterId = bookChapter.id</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    var chapterName = bookChapter.Name</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    chapterId=openFile(chapterName)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    <br></span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         if(chapterId!=0 && chapterId!="")</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         {</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            arr_ChapterIds.push(chapterId) </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         } </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         bookChapter = bookChapter.NextComponentInBook;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         chapterId = bookChapter.id;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">                </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">     }</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">  //  Err(arr_ChapterIds.length);</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif"> /*Processing the tasks for each chapter*/</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   for(i=0; i<arr_ChapterIds.length;i++)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   {</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        var objcid=arr_ChapterIds[i];</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        cid=<a href="http://objcid.id">objcid.id</a>;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        cname=objcid.Name;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">     /* Traversing through the paragraphs*/</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">     var pgf = objcid.MainFlowInDoc.FirstTextFrameInFlow.FirstPgf;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">      while(pgf.ObjectValid() == true)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    {</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">      </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        totalPgfs = totalPgfs + 1;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        var formatName = pgf.Name;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">       var textRange = new TextRange();</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        textRange.beg.obj = pgf;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        textRange.beg.offset = 0;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        textRange.end.obj = pgf;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        textRange.end.offset = Constants.FV_OBJ_END_OFFSET;</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        var textItems = objcid.GetTextForRange(textRange, Constants.FTI_String);</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">      </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        if(textItems.length > 0)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        {</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">          </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            pgfText = textItems[0].sdata;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">          </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            if(pgfText.length > 50) </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">                pgfText = pgfText.substring(0, 50);</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        }</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        else pgfText = "(No text!)";        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        if(pgf.Name=="Related_Topics" && textItems.length>0)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">            </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">         { Err ("Related Topics tag is applied for:"+pgfText+"\n\n");}</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">        pgf = pgf.NextPgfInFlow;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    }</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">     </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   var getChangeBarVal=objcid.AutoChangeBars;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   if (getChangeBarVal==1)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">           Err("Change Bars are on for:"+cname+"\n\n");</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">   else</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">           Err("Change Bars are off for:"+cname+"\n\n");</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">}</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">function openFile(chapterName)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">{</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    openProp = GetOpenDefaultParams()</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    retParm = new PropVals()</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    fileOpen=Open(chapterName,openProp,retParm)</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">    return fileOpen;</span></font></p><p><font size="1"><span style="font-family:comic sans ms,sans-serif">}</span></font></p><p style="min-height:8pt;padding:0px"><font size="1"><span style="font-family:comic sans ms,sans-serif"> </span></font></p><p>This
 script runs fine for the first time and displays the result on the 
FrameMaker console. However, here are the issues that I am facing:</p><ul><li>After the execution is finished for  the first time and as I try to save the book file, FrameMaker displays an error message</li><li>If I run the script the next time, FrameMaker becomes completely unresponsive needing a forced shutdown</li></ul><p style="min-height:8pt;padding:0px"> </p><p>There
 are many paragraph tags that the script traverses through and probably 
stores in a variable. Therefore, I think it may be a memory issue.</p><p style="min-height:8pt;padding:0px"> </p><p>Can you please go through the script and help me in debugging the issue. Thanks.</p><p style="min-height:8pt;padding:0px"> </p><p>Regards,</p><p>Bhavna</p></div>