Best Practices for Connecting to WebHelp via an application?

Greetings,
My first post on these forums, so I appologize if this has already been covered (I've done some limited searching w/o success).  I'm developing a .Net application which is accessing my orginazation's RoboHelp-generated webhelp.  My organization's RoboHelp documentation team is still new with the software and so it's been up to me to chart the course for establishing the workflow for connecting to the help from the application.  I've read up on Peter Grange's 'calling webhelp' section off his blog, but I'm still a bit unclear about what might be the best practices approach for connecting to webhelp.
To date, my org. has been delayed in letting me know their TopicIDs or MapIDs for their various documented topics.  However, I have been able to acquire the relative paths to those topics (I achieved this by manually browsing their online help and extracting out the paths).  And I've been able to use the strategy of creating the link via constructing a URL (following the strategy of using the following syntax: "<root URL>?#<relative URI path>" alternating with "<root URL>??#<relative URI path>").  It strikes me, however, that this approach is somewhat of a hack - since RoboHelp provides other approaches to linking to their documentation via TopicID and MapID.
What is the recommended/best-practices approach here?  Are they all equally valid or are there pitfalls I'm missing.  I'm inclined to use the URI methodology that I've established above since it works for my needs so far, but I'm worried that I'm not seeing the forest for the trees...
Regards,
Brett
contractor to the USGS
Lakewood, CO
PS: we're using RoboHelp 9.0

I've been giving this some thought over the weekend and this is the best answer I've come up with from a developer's perspective:
(1) Connecting via URL is convenient if (#1) you have an established naming convention that works for everyone (as Peter mentioned in his reply above)
(2) Connecting via URL has the disadvantage that changes to the file names and/or folder structure by the author will break connectivity
(3) Connecting via TopicID/MapID has the advantage that if there is no naming convention or if it's fluid or under construction, the author can maintain that ID after making changes to his/her file or folder structure and still maintain the application connectivity.  Another approach to solving this problem if you're working with URLs would be to set up a web service that would match file addresses to some identifier utilized by the developer (basically a TopicID/MapID coming from the other direction).
(4) Connecting via TopicID has an aesthetic appeal in the code since it's easy to provide a more english-readable identifier.  As a .Net developer, I find it easy and convenient to construct an enum that matches my TopicIDs and to utilize that enum to construct my identifier when it comes time to make the documentation call.
(5) Connecting via URL is more convenient for the author, since he/she doesn't have to worry about maintaining IDs
(6) Connecting via TopicIDs/MapIDs forces the author to maintain those IDs and allows the documentation to be more easily used into the future by other applications worked by developers who might have their own preference in one direction or another as to how they make their connection.
Hope that helps for posterity.  I'd be interested if anyone else had thoughts to add.
-Brett

Similar Messages

  • Best practices for connecting to DB

    Hi,
    I am having 3 different java classes which will contact the DB for getting the data from the table. I wrote a separate java class for DB connection like this :
    public class DBConnection {
    private Connection con;
    public Connection getConnection() {
    try {
    Class.forName("org.apache.derby.jdbc.ClientDriver");
    con = DriverManager.getConnection("jdbc:derby://localhost:1527/StrutsDB", "username", "password");
    } catch (SQLException ex) {
    Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
    } catch (ClassNotFoundException ex) {
    Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
    return con;
    How to use this single connection object in all of the 3 classes? What are all the ways of doing so?
    Is there any best practices for connecting to DB?
    Thanks in advance,

    The problem with "best practice" is it really depends on your situation. If you are creating a single user, desktop application then what you are doing will work but would be more efficient if the connection was declared as static and you used the singleton pattern.
    public class DBConnection {
        private static final Connection con;
        private DBConnection() {
            try {
                Class.forName("org.apache.derby.jdbc.ClientDriver");
                con = DriverManager.getConnection("jdbc:derby://localhost:1527/StrutsDB", "username", "password");
            } catch (SQLException ex) {
                Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(DBConnection.class.getName()).log(Level.SEVERE, null, ex);
        public static Connection getConnection() {
            return con.
    }The private constructor guarantees only one instance of the class will be created (since you can't use 'new' to create one) and initialized the database connection. Then any other object that require a connection simply call DBConnection.getConnection() and they will get the same database connection each time.
    Note that this is a little simplistic and is not thread safe. If your classes will be executing on different threads you will need a more sophisticated approach. You will also need to make sure you commit or rollback any transactions when done or the next time you get the connection you may be in the middle of an existing transaction.

  • What are the best practices for exception handling in n-tier applications?

    What are the best practices for exception handling in n-tier applications?
    The application is a fat client based on MVVM pattern with .NET framework.

    What are the best practices for exception handling in n-tier applications?
    The application is a fat client based on MVVM pattern with
    .NET framework.
    That would be to catch all exceptions at a single point in the n-tier solution, log it and create user friendly messages displayed to the user. 

  • What is the best practice for connecting to different schemas?

    Hi all,
    We are porting an application from SQL Server to oracle and would like to know what the best practices are in oracle for user connections to an Oracle instance.
    More or less the question could be put like this:
    1) The equivalent of a SQL Server Database in Oracle is a Schema. (more or less)
    2) A specific application has it's own schema where it keeps all related objects (Tables, etc)
    3) In SQL Server you grant access to the Database and its objects (Tables, etc) to all users of the application.
    4) In Oracle do you grant access to the Schema and its objects (Tables, etc) to all users of the application also? Or do all users log
    in as the schema owner?
    So in Oracle if there existed [SchemaApplication].[table1], how would [userChris] and [userDave] query [SchemaApplication].[table1]?
    Would Chris and Dave log in as [userChris] and [userDave], or would they normally log in as [userApplication]?
    finally, is it good practice to log in as a unique user eg [userChris] and then issue the
    alter session set current_schema = shemaApplication;
    command to change the way references to tables are interpreted?

    We are porting an application from SQL Server to oracle and would like to know what the best practices are in oracle for user connections to an Oracle instance.
    More or less the question could be put like this:
    1) The equivalent of a SQL Server Database in Oracle is a Schema. (more or less)
    2) A specific application has it's own schema where it keeps all related objects (Tables, etc)
    3) In SQL Server you grant access to the Database and its objects (Tables, etc) to all users of the application.
    4) In Oracle do you grant access to the Schema and its objects (Tables, etc) to all users of the application also? Or do all users log
    in as the schema owner?There are ways to implement the same.
    Case 1.
    Create different roles, such as APP_ROLE, READONLY_ROLE. Create public synonym for objects in SchemaApplication user. Grant these role to single user say appUser this is different from you SchemaApplication user. Use appUser to connect to application and for different user like userChris, userDave provide another layer of security. Say userDave is allowed only to deal with cash related transaction, so allow him to open only those screens which are related to cash transaction only.
    Case 2.
    Create public synonym and grant privilege on tables from SchemaApplication to different users (say userChris, userDave).
    So in Oracle if there existed [SchemaApplication].[table1], how would [userChris] and [userDave] query [SchemaApplication].[table1]?This is resolved by public synonym. There are private synonym as well, you can create this also but in this case you have to create private synonym for each of the users.
    Would Chris and Dave log in as [userChris] and [userDave], or would they normally log in as [userApplication]? I would suggest you to connect either using a new user(Case 1) or the user itself has account in the database(Case2).
    finally, is it good practice to log in as a unique user eg [userChris] and then issue the
    alter session set current_schema = shemaApplication;
    No. It is not a good practice to allow the user to login to database using the application owner.
    command to change the way references to tables are interpreted?The public/private synonym can be used to resolve the schema.object value. For example, if SchemaApplication has table T, then you can create public synonym as 'CREATE PUBLIC SYNONYM T FOR SchemaApplication.T'; and now you can refer this table as T from any other schema(user).
    HTH
    Virendra

  • Best Practices for Loading Master Data via a Process Chain

    Currently, we load attributes, text, and hierarchies before loading the transactional data.  We have one meta chain.  To load the master data it is taking more than 2 hours.  Most of the master data is full loads.  We've noticed that a lot of the master data, especially text, has not changed or changed very little since we implemented 18 months ago.  Is there a precedence or best practice to follow such as do we remove these processes from the chain?  If so, how often should it be run?  We would really like to reduce the amount of the master data loading time.  Is there any documentation that I can refer to?  What are other organizations doing to reduce the amount of time to load master data?
    Thanks!
    Debby

    Hi Debby,
    I assume you're loading Master Data from a BI system? The forum here are related to SAP NetWeaver MDM, so maybe you should ask this question in a BI forum?
    Nevertheless, if your data isn't changed this much, maybe you could use a delta mechanism for extraction? This would send only the changed records and not all the unchanged all the time. But this depends on your master data and of course on your extractors.
    Cheers
    Michael

  • Best Practice for Updating Infotype HRP1001 via Class / Methods

    I want to update an existing (custom) relationship between two positions.
    For example I want
    Position 1 S  = '50007200'
    Position 2 S =  '50007202'
    Relationship = 'AZCR'
    effective today through 99991231
    Is there a best practice or generally accepted way for doing this using classes/methods rather than RH_INSERT_INFTY ?
    If so, please supply an example.
    Thanks...
    ....Mike

    Hi Scott
    You can use a BAPI to do that.
    Check the following thread:
    BAPI to update characteristics in Material master?
    BR
    Caetano

  • What are best practices for connecting asa to nexus 5000

    just trying to get a feel for the best way to connect redundant asa to redundant nexus 5000
    using a vpc vlan is fine, but then running a routing protocol isn't supported, so putting static routes on 5000 works, but it doesn't support ip sla yet so you cant really stop distributing the default if your internet goes down. just looking for what was recommended.

    you want to test RAC upgrade on NON RAC database. If you ask me that is a risk but it depends on may things
    Application configuration - If your application is configured for RAC, FAN etc. you cannot test it on non RAC systems
    Cluster upgrade - If your standalone database is RAC one node you can probably test your cluster upgrade there. If you have non RAC database then you will not be able to test cluster upgrade or CRS
    Database upgrade - There are differences when you upgrade RAC vs non RAC database which you will not be able to test
    I think the best way for you is to convert your standalone database to RAC one node database and test it. that will take you close to multi node RAC

  • Best Practice for Showing Videos in a Windows Application

    I am building a windows 8 application that has multiple articles.  Each article will have anywhere from 0-3 videos associated with it.  I was wondering where I could find some guidelines, best practices or examples about the how best to do this
    from a design stand point, so that app is in line with the Windows Application guidelines.
    Any help would be appreciated!
    Thanks!

    Hi bcp1978,
    >>I was wondering where I could find some guidelines, best practices or examples about the how best to do this from a design stand point, so that app is in line with the Windows Application guidelines
    To design a windows app, we need to understand Microsoft design principles first:
    https://msdn.microsoft.com/library/windows/apps/hh781237.aspx Use these principles as you plan your app, and let them guide your design and development choices
    Microsoft also provide a page of design guideline:
    https://dev.windows.com/en-us/design
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Best practice for connecting to SAP backend from JSPDynPage

    Hi,
    Can anyone help clear up some confusion I have over connecting to SAP from Java?
    We have a number of JSPDynPage portal applications on EP7 Ehp1 that connect to SAP ECC6.
    We currently use 2 methods to call remote functions on the ECC system.
    1) Enterprise connector and JCo Client Service
    This method has the advantage of automatically generated proxy classes and typed access to function module parameters. It is also more closely aligned to Web Dynpro from a design time point of view
    However it also has a number of disadvantages in that it does not support table APPEND structures and requires regeneration for every change to the ABAP structures involved even if the field that has changed is not being referred to. In addition the use of the JCo client service means that the connection pooling must be handled ourselves explicitly
    2) Connector Framework - SAP System Connector
    This method has the advantage that connection management is handled by the framework. It also has the advantage that fields are referred to by name so if an ABAP structure changes then the remote call will not fall over as long as the named fields are still available.
    However this method is more cumbersome because no proxy classes are generated and function module parameters are referred to generically so errors are not picked up by the complier.
    Given the limitations of the above 2 methods, what is the recommended approach?
    In the book u2018Inside Web Dynpro for Javau2019 Chris Whealy says the following about the Adaptive RFC Layer:
    u2018Any Java program running in the AS Java u2013 not just Web Dynpro u2013 can make use of the Adaptive RFC layeru2019
    Has anyone been able to use the Adaptive RFC layer from a NON-WebDynpro java application?
    Any thoughts on the above would be most welcome.
    Thanks,
    Denis.

    Hello,
    The recommended way is with JCA Connector.
    Adaptive RFC is included from NW7.1,
    See "Creating an Adaptive RFC2 Sample Application without using Web Dynpro"
    in the SAP HELP of NWCE7.1 or NWCE7.2.
    Seems to be based in JCo 3.0 and Java5 so it will not work in NW70.
    For older Versions like EP 5 there is also a JCo ClientService available.
    Regards
    Johannes

  • What is the best adapter for connecting multiple monitors via Thunderbolt?

    Currently using two 24" Dell monitors (one T-bolt, one via usb adapter), but have consistently poor performance with USB video adapters.  I'm looking to replace one monitor with a 32" LED display via hdmi and would like to move to dual 32's in the future.  Recommendations?

    I have a mid-2012 MacBook Pro with Retina Display and I use two 24" external monitors.
    One is connected via HDMI and the other is connected via Mini DisplayPort to HDMI adapter and I have no problems whatsoever.

  • Best practices for migrating merged WebHelp from RH7 to RH8?

    We're using RH7 and we'll be migrating to RH8 in November. I'm startingto get the impression I should budget the time to build up each project anew in RH8 rather than just opening copies in the new UI and hoping it all works. Has anyone blazed this trail? Willing to chat about it?
    Thanks
    .MW

    Hi Roy.
    If the networked file was purely a backup there shouldn't have been a problem. If however the file was a source file for a project that was opened on a network drive it could very easily have caused you problems. Unfortunately most people find out the hard way
    Read the RoboColum(n) for a tips, tricks and musings on the Technical Communication Suite products.

  • Best practice for sharing LOV's over multiple Application Definitions?

    We want to define/generate (complex) LOV's in 1 place and use them in multiple sub-applications (different application definition files).
    What is the best practive to accomplish this?
    Frank

    Frank,
    Here is what you do:
    - Generate the LOV the "normal" way using your first app def file
    - In all other app def files, you create a "dummy" LOV group by the same name with the same items, so you can associate items with the LOV and specifiy return values
    - For each "dummy" LOV group uncheck the checkboxes "Generate Pages", "Generate Page Definitions" and "Generate Controller Group". (only visible in expert mode)
    - Make sure you first generate the first app def file before you run the [ages generated by other app def files.
    Steven Davelaar,
    JHeadstart Team.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • What are the best practices for the RCU's schemas

    Hi,
    I was wondering if there is some best practices about the RCU's schemas created with BIEE.
    I already have discoverer (and application server), so I have a metadata repository for the Application Server. I will upgrade Discoverer 10g to 11, so I will create new schema with RCU in my metada repository (MR) of the Application Server. I'm wondering if I can put the BIEE's RCU schemas in the same database.
    Basically,
    1. is there a standard for the PREFIX ?
    2. If I have multiple components of Fusion in the same Database, I will have multiples PREFIX_MDS schema ? Can they have the same PREFIX ? Or They all need to have a different prefix ?
    For exemple: DISCO_MDS and BIEE_MDS or I can have DEV_MDS and this schema is valid for both Discoverer and BIEE.
    Thank you !

    What are the best practices for exception handling in n-tier applications?
    The application is a fat client based on MVVM pattern with
    .NET framework.
    That would be to catch all exceptions at a single point in the n-tier solution, log it and create user friendly messages displayed to the user. 

  • Best/Easiest Practice for Distribution of Webhelp files for Fat(ish) Client Application

    So another in my long line of questions in trying to change the implementation of the help systems at my new employer.
    So, the pressure is to convince the existing guard to toss out the old method and go with a new method... One of the issues has come up for CSH Webhelp (via RH10)...
    Apparently, in the old method (where every help topic was it's own CHM - no, I'm not kidding).  They kept it that way so that any time a help file was updated, they could just send out that one chm to update that one topic.
    Now they are worried that if we switch to webhelp using topics in one single big project that we can't just send out a single updated file any more...
    So I'm trying to get ammunition as to how updates to the help can be distributed without it being a big hassle...
    We do have small updates that go out about every week, and they are afraid that going to the webhelp (1 project with lots of topics) method will require more time and effort for the techs because they will have to complete the update of a huge help system every time.
    One solution we have suggested is that we only update help files on major releases and add any changes to help procedures in the Release Notes or in a separate PDF and also include a note that the help files "will be updated to reflect this change in the XX/2015 XYZ Release).
    Does ANYONE have any other ideas of how distribution could be done efficiently so that we don't have to continue this "project per topic" fiasco?
    HELP!!! PLEASE!!!!

    Amebr - you hit the nail on the head... i want to apologize to everyone for all this mass hysteria...but this has been a freaking rollercoaster... one day they are happy with the plan, the next day they decided they want to complicate it more... So now my job is to find out how viable and how tricky and perhaps how dangerous it will be to send out JUST the files that have been changed.  Especially for CSH! 
    Anyone have any experience with this or have any advice?  Peter?  I suspect you might know how this might work... are they any pitfalls to watch out for.. I just have this fear of sending out a few files from an entire project... Altho, it appears when I publish, ONLY the files that have been edited in some way show a new date.. that includes non-topic files - so i'm assuming sending all those will keep the TOC, Index, and Search features working properly... as well as incoming and outgoing links from an edited topic?
    Another question would be how to handle new images in a project... as the image folder tends to be the largest, i don't want to have to send the entire image folder... Thoughts...????  Advice?  Jeff? Peter? Amebr? Bueller?  Bueller?  Bueller....?
    THANKS!Best/Easiest Practice for Distribution of Webhelp files for Fat(ish) Client Application
    OH... and Jeff... my apologies for the misnomer of using the term "Fat-ish" client in reference to this... I totally misspoke and should have said Mobile App... but in my mind, any time you have to download something to use it, it's a fat client... sorry!  :-/

  • BEST PRACTICES FOR CREATING DISCOVERER DATABASE CONNECTION -PUBLIC VS. PRIV

    I have enabled SSO for Discoverer. So when you browse to http://host:port/discoverer/viewer you get prompted for your SSO
    username/password. I have enabled users to create their own private
    connections. I log in as portal and created a private connection. I then from
    Oracle Portal create a portlet and add a discoverer worksheet using the private
    connection that I created as the portal user. This works fine...users access
    the portal they can see the worksheet. When they click the analyze link, the
    users are prompted to enter a password for the private connection. The
    following message is displayed:
    The item you are requesting requires you to enter a password. This could occur because this is a private connection or
    because the public connection password was invalid. Please enter the correct
    password now to continue.
    I originally created a public connection...and then follow the same steps from Oracle portal to create the portlet and display the
    worksheet. Worksheet is displayed properly from Portal, when users click the
    analyze link they are taken to Discoverer Viewer without having to enter a
    password. The problem with this is that when a user browses to
    http://host:port/discoverer/viewer they enter their SSO information and then
    any user with an SSO account can see the public connection...very insecure!
    When private connections are used, no connection information is displayed to
    SSO users when logging into Discoverer Viewer.
    For the very first step, when editing the Worksheet portlet from Portal, I enter the following for Database
    Connections:
    Publisher: I choose either the private or public connection that I created
    Users Logged In: Display same data to all users using connection (Publisher's Connection)
    Users Not Logged In: Do no display data
    My question is what are the best practices for creating Discoverer Database
    Connections.
    Is there a way to create a public connection, but not display it in at http://host:port/discoverer/viewer?
    Can I restrict access to http://host:port/discoverer/viewer to specific SSO users?
    So overall, I want roughly 40 users to have access to my Portal Page Group. I then want to
    display portlets with Discoverer worksheets. Certain worksheets I want to have
    the ability to display the analyze link. When the SSO user clicks on this they
    will be taken to Discoverer Viewer and prompted for no logon information. All
    SSO users will see the same data...there is no need to restrict access based on
    SSO username...1 database user will be set up in either the public or private
    connection.

    You can make it happen by creating a private connection for 40 users by capi script and when creating portlet select 2nd option in Users Logged in section. In this the portlet uses there own private connection every time user logs in.
    So that it won't ask for password.
    Another thing is there is an option of entering password or not in ASC in discoverer section, if your version 10.1.2.2. Let me know if you need more information
    thnaks
    kiran

Maybe you are looking for

  • Plans for Window 8 RT support ?

    Any plans to release a Jabber application for Windows 8 RT ?

  • How can I create a bulleted list where each line builds in independently?

    I would like to make a bulleted list in my video where each bullet fades in as the person says them in the video (it is not at a constant rate). So far the only way I've accomplished this is to stack 6 or 7 of the 'Fade' title generators on top of ea

  • Arch as production server

    Hi, can you recommend Archlinux as production server? I really like all the cutting-edge technologies.. But I had problems with Arch on my VPS (after-update kind) and I'm not sure if they are caused by Arch or by OpenVZ.. But production server simply

  • Text to Speech - cursor over to talk instead of selecting text?

    I typically use TTS in Chrome and select the text, right click and select speech. I know there's a keyboard shortcut instead of right clicking, but is there a way to make TTS work like Narrator in WIndows 8? There, you put the cursor over the text an

  • Hi all, Have a problem, Please let me know urgently.

    Hi All,         I have a scenario like characteristic is having lengh 50.Now I want to create a hierarchy for this characteristic. But Hirarchy allows maximum lengh 32chrs only. So could you please let me know how to create a hirarchy for this charac