Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Dynamic Organizational Chart Generation Software? 8

MrEfficient asks: "I'm searching for an Oranizational Chart software package that stores employee data in a database. Ideally, it would be web based, or if not, at least allow client programs to access a remote database over an intranet or the internet. It can be either Linux or Windows based. All the software I've seen is little more than a drawing program which allows one to manually create a visual chart but with no way to manage the data behind it (OrgPlus is the one I've been using). This is fine when your company has less than twenty people, but completely inadequate when the company size is in the thousands. The lack of a database-backed organizational chart program is strange when you consider that the organizational chart is the most common example used when discussing trees in SQL. I've considered Kivio, a flowchart program for KDE, which isn't designed for organizational charts but looks like it could serve as one given its scriptablity. So, what do you think, does anyone have any suggestions?"
This discussion has been archived. No new comments can be posted.

Dynamic Organizational Chart Generation Software?

Comments Filter:
  • by scotpurl ( 28825 ) on Thursday February 15, 2001 @10:57AM (#428778)
    Yeah, I know it's not charting, but since the standard LDAP records indicate boss and underlings as the fields, it at least stores (primitively) the relationship of one person to another.

    From there, it's an iterative LDAP query starting at a selected person, then working down.

    Not pretty, but I bet you could generate decent text lists. For some organizational charts, I don't think 5-D space is sufficient to allow for complexity.
  • by po_boy ( 69692 ) on Thursday February 15, 2001 @11:18AM (#428779) Homepage
    so now you've got the data in a decent structure. Perhaps you could use graphviz [graphviz.org] webdot or something to automatically draw graphs from it.

    All your events [openschedule.org] are belong to us.
  • Does anyone else share my suspicion of a company that needs dynamically-generated org charts? I always think of such outfits as either constantly reorganizing, or excessively self-absorbed with the class hierarchy. And who is it that needs a diagram of an organization anyway? I've never worked anywhere where a question aboout who was in charge of what section couldn't be answered by looking in the company phone book.
  • Visio is designed for this kind of stuff. Use a SQL backend and a Visio front-end.

    It would be _cake_ to write.

    I believe there's even some canned stuff for this.
  • My situation concerns state government agencies, where the organizational chart of each agency would be viewed by people outside the organization, such as legislators, executive branch personnel, etc..

    That combined with a large number of people (about 40,000 statewide), creates the need for something more efficient than the methods currently being used. My major desire is for a system which uses a database to store data and generate graphs. I've read about tree traversal algorithms which describe the location of each position on a chart, and which sounds like good logic to use in such an application. Relative to other complex software out there, this should be a fairly simple thing (although still beyond my capabilities I'm afraid), and it suprises me that it hasn't already been done. Many companies use org charts, they're not necesarry for most, but it allows information to be absorbed more easily when its presented as a graph.

  • If you are looking for a commercial solution, I believe Oblix Publisher provides this functionality. www.oblix.com You do need to use an LDAP directory, however.

    Microsoft Exchange 5.5 implements an LDAP interface (ADSI) and Exchange supports a manager link in its Global Address List, but I warn you against using that...see the LDAP explanation below.

    Active Directory probably has a suitable configuration for this already.

    As for Visio, MS Visio 2000 Enterprise supports multiple formats for imports that will dynamically generate organization charts.

    Visio can import data from TAB, CSV or Excel files and Visio documentation explains the fields it requires.

    It can also import from Peoplesoft, SAP or Exchange if they are configured properly with the right attributes.

    You can also quite easily setup an LDAP server with a recursive program that takes advantage of the links between objects in the directory.

    If you are attempting to do this, there are a few issues you should be aware of.

    Rarely are organization charts two dimensional. Given the problem, most of us would believe that every employee has a manager and that the relationship is direct. However, its probably more fuzzy in practice. It is definitely a problem in more bureaucratic organizations where for example you may have Vice Presidents, Assistant Vice Presidents, Associate Vice Presidents etc and the various ranks are not consistent across business lines.

    Pre-defined schemas exist in the X.500/LDAP world already to represent this type of data.

    The key with LDAP or with SQL is to make sure you don't link names, or you will end up with too many dangling pointers.

    Use an organizationalRole attribute and assign a roleOccupant to it. Then employees and/or other organizations can link to the organization, instead of the person managing it.

    This is important as vacancies or underfill designations can really screw up your logic.

    In any organization chart there is an implicit dual-relationship. One is person-to-person eg: employee to manager and the other is organization-organization eg: unit manager to department manager.

    I recently completed an exercise to complete this type of system in my organization.

    Once the data was there it could also be used to compile groups in the directory server based on the organizations. With these groups, implementing ACLs and e-mail distribution lists based on the same organizations was easy.

    If your organization is re-org happy, you can always write a function that will randomly generate org charts in all sorts of different scenarios based on the data you have.
  • Check out GraphViz [graphviz.org]. Its an open source chart drawing package from the AT&T research people. We've been using it for 6-8 months now to draw all sorts of charts including call trees for a hundred or so shell scripts.

    Then input for graphviz is an amazingly simple file which need only contain the relationship between your nodes -- like this:


    Graphviz figures out where to draw all the lines and the best placement for the nodes. Of course, input files can be much more complex with many attributes to specify. Graphviz even does spline fits to preferred edge paths to connect the nodes with non-overlapping curved lines. In my opinion, this is much better than Visio's drawing method, especially when you get into densely populated graphs. Visio draws all of its connections at 90 degrees (or we're just stupid and couldn't turn it off) causing lots of confusion and ambiguity in the charts. Graphviz also runs like greased lightening. We looked into scripting Visio and the results were pretty sad. Visio took 3 minutes to generate a diagram of a large program's call tree while webdot took about 2 seconds. This was the hands down decision maker since we were going for dynamic generation for web pages.

    The graphviz package includes a utility call webdot that acts as a chart server for the web. You make calls of the form

    http://machine1.com/cgi-bin/webdot.cgi/http://ma ch ine2/some/path/mychart.dot.gif

    The first machine is the webdot server with webdot running out of cgi. The second half of the url tells webdot where to get its input file (mychart.dot) and the last extension (.gif) tells webdot what output to use. Output possiblities incluing gif, ps, pdf, clickable imagemap, tcl and lots of others. The tcl one is cool because (if the web browser has the pluging) you can zoom in and move around your chart. Obviously, the URL for the input file can be anything including dynamic information generated from cgi, jsp, asp, etc.

    Graphviz is cool. We like Graphviz.

    Basically, to draw these organizational charts, you just need some perl script that pulls your data from your data store (rdb, ldap, flatfile) and generates the dot file for input. Graphviz can do the rest. The tcl plug-in is especially useful for large, complex graphs.
  • Suspicion, sure, but I've been places where such would have been a great help.

    As a learning tool for new-hires/contractors/temps it would be invaluable. A production supervisor in one city might be a bit hazy about exactly those people *do* in the new division, or who his peers might be for reference to problem X - this would help.

    Maybe I miss the military a bit too much. When we first gave them Banyan Vines based Email we assigned email addresses by function - AirOpsOfficer@G3@III MEF for example - and the billet holders name/rank in the description field. AirOps could quickly sort through the directory to find other AirOps at diff. levels and functions, and address them directly and informally.

    This would be a great tool for those guys, as well. Maybe also reinforces your comment about self-absorbed with class hierarchy. Maybe I'm just pretty damn tired.

    Side Note - I'll bet some genius has gone and installed Exchange world wide in the Marines and really screwed up what had been a damn fine mail system.

"If you lived today as if it were your last, you'd buy up a box of rockets and fire them all off, wouldn't you?" -- Garrison Keillor