3 Replies Latest reply on Jun 15, 2009 7:34 PM by Tech Writer KC

    Using Automated Build for Multiple Layouts

    Tech Writer KC Level 1



      We are currently on RH7, with a .chm-based Help system consisting of 1 parent and ~20 children .CHMs.We are planning on adding a WebHelp version of our help file - same content and layout, just a different format.


      I've gotten good advice on WebHelp itself - what intimidates me is figuring out how to do the automated build.


      Currently, we use Team Foundation Server (TFS) for source control, and FinalBuilder 6 on our build machine. Our current setup for our HTML help is for FinalBuilder to check out the help projects from TFS, use the copy of RH7 on the build machine to create the new CHM files, and then check them back into TFS.


      Ideally, we would add WebHelp to this by simply duplicating the existing command lines and altering them to produce WebHelp instead of HTMLhelp. This is the confusing bit, as I don't know exactly how to set this up. In addition to the layout, the only other change would be where the finished files are saved when they are checked back into TFS.


      To begin with the layout, from reading RH help and previous discussion on the forum, my understanding is that there's a "-l (WebHelp)" condition that can be added to the command line to specify using a different layout than the primary one.


      However, attempting to add this condition hasn't worked.(Hopefully someone here uses FinalBuilder or similar to make sense of the following.)


      When I open FinalBuilder and view one of our existing command lines in the "Run DOS Command / Batch File" window, the command line appears twice:


      • Under the General Tab, there's an Action Description field containing the following:



      Run DOS Command / Batch File [ rhcl "C:\ABC\123\Current\Help\Project1\Project1.xpj" ]


      Adding "-l (WebHelp)" to the end of this doesn't seem to have any affect. Project still builds a CHM file.


      • Under the Program Tab, there's a DOS Command field containing the same basic command line:



      rhcl "C:\ABC\123\Current\Help\Project1\Project1.xpj"


      Adding the condition here causes an error resulting in the project failing to build.


      Additionally, there's an "Execute Condition" field in the Runtime Tab, but this too results in an error if I try to add the above condition.


      So far, I'm stumped as to where I need to add this layout condition. Am I trying to add this to the wrong area in FinalBuilder?


      Regarding the issue of where to set the save location, do I need to manually build a WebHelp version of the project, switch the primary layout back to HTML, and then check into TFS first?


      I was thinking that if I manually build it first, RH might save the designated WebHelp path for each project and use it for the WebHelp builds. However, I'm not sure if RH saves that information if WebHelp is not officially designated the primary layout).


      Any help is greatly appreciated! (and apologies for the length of this post!!)

        • 1. Re: Using Automated Build for Multiple Layouts
          ElisaFnord Level 2

          I haven't used the command line syntax (we're in the process of upgrading from RH6 to RH8, but looking at your post sparks the following thoughts:


          1. What is the name of your WebHelp single source layout? If you created a custom WebHelp SSL or renamed the WebHelp SSL in your Projects tab > Single-source folder, I think the new layout name needs to be in the parens.


          2. Did you actually add -l (WebHelp) at the end of the command line, or did you put it after rhcl? (i.e.


          rhcl -l (WebHelp) "C:\ABC\123\Current\Help\Project1\Project1.xpj"


          3. About the location of the WebHelp files to check in - the output files are generated to the folder that you designate in the WebHelp single source layout.


          As a rule, RH experts recommend not checking generated help files into source control. However, I've been in the trenches on this automated build thing, and I understand that your FinalBuilder app needs to check them in so it can put the application package together.


          This is much easier with the .chms, since there is one .chm per project. You can just overwrite the old .chm with the new .chm. However, there are lots and lots of output files in any single WebHelp output, and they tend to come and go as topics are added and deleted. This is why RoboHelp clears the designated output folder before creating any new output files when generating WebHelp - it's the only way to be sure that old unwanted files are gone.


          I don't know what is the best way to do this, but I think that armed with this information, you and your FinalBuilder admins can work out the best way to manage this source control issue.


          Good luck, and do post back with your solution - I'm especially interested in the "WebHelp results under source control" piece, since that's an issue I've run into myself in the past.

          • 2. Re: Using Automated Build for Multiple Layouts
            Gravenstein Level 2

            When you added the -l for another layout, did you specify the name of the webhelp ssl that you wanted to use?


            If it's of any help, here's a command line that I use successfully. (It's for RH6; if you need to specify the rhcl path, you'll want to point to the appropriate RH folder.)


            "C:\Program Files\Adobe\RoboHelp 6.0\RoboHTML\rhcl" C:\source_project_path\projname.xpj -l ssl_name -o C:\output_path\output_folder




            • 3. Re: Using Automated Build for Multiple Layouts
              Tech Writer KC Level 1



              I figured out my error - typing mistake on my part, d'oh!


              It appears that FinalBuilder couldn't understand what I was trying to do because of the parentheses - the correct parameter is "-l webhelp", not "-l (webhelp)".


              Makes sense, and I'm not sure where I got the idea that parentheses were involved, but once I entered things correctly, RoboHelp appears to get the right command.


              We're still not building WebHelp yet, but that appears to be due to needing to apply a specific update/patch to our copy of RoboHelp. Once we get that resolved, I'll report further results.





              Thanks for the output suggestion, I'll have to try it!