<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>