Link to home
Start Free TrialLog in
Avatar of ehout
ehout

asked on

design issues

Hi all,

A bit a larger question this time. Not really a problem, but more a design issue. I work for a company with about 500 employees, whom nearly all use MS-Office 97 (especially Word).
We use a custom build system with Word templates now to standardize correspondence, but since the number of these templates is growing (It's near 2000 templates) I decided to redisign the whole thing.

Instead of using so much different templates, I want to use the standard template and let the users get the rest out of database.  The maintemplate (In which our own code resides) is placed on a server, but the program installations are local (because of network performance issues).

I have looked in the market to some standard tools for this, but they are either too expensive or don't suit my needs.

My main questions are these:
- Does anyone know of any shareware/freeware tools that do the above?

In case I build the stuff myself, Two things are possible.
1) I use a database I connect to or
2) I use a tcp-connection and have to build a web back-end.

'bout the database, Which one could I best use? I doubt this is MS-Access, for connecting it is slow and since the software would be used constantly, I think Access gets corrupted a bit too easy. right?
Connecting Oracle through odbc could be an idea, but this connection is also not too fast.

Any bright ideas?

Thanx in advance

(Needless to say that the brigthest ideas get the points. Too lose not to many points for ideas that are useful, but not a real breakthrough solution, I initially set the points to 100. When a real good idea or suggestion is brought up, I'll raise it to 150).

Kind regards.
Avatar of ameba
ameba
Flag of Croatia image

Your question is not clear.  Hope this helps.
Avatar of ehout
ehout

ASKER

So is your comment ;-) what helps?

[serious mode back on]
What part is not clear?
>The maintemplate (In which our own code resides)
Aha, it's VBA code in .dot template

>I have looked in the market to some standard tools for this
For what?

It seems this question has nothing to do with VB.
Keeping code in template, hmm...
>It seems this question has nothing to do with VB.
or maybe it does

>the program installations are local
some VB program but I cannot figure what it does / should do.
Out of here...
Avatar of Anne Troy
ehout:

I'm a little lost too. You've got two sides here, also.

Documents:

Perhaps if you give us a scenario of a user using just one of the templates?
What kind of data is being pulled from the database?
What kind of information is being placed into these templates?
Are you performing mail merges?
What type of print material are you producing? Letters? Manuals? Policies?

Why the *hell* do you have 2000 templates? LOL. Perhaps you should be using autotext or mailmerge IF statements/INCLUDETEXT fields.

What does the code in your templates do? Should the code be stored in the normal.dot files of the users instead of in individual templates? Or is it already? Where is normal.dot, server or hard drive? Have you considered changing the STARTUP location for Word to be a server location wherein all code is kept in a template(s)?

I know I wasn't helpful with the Excel issue, but Word is my forte. If you've stuff you don't want to discuss *out loud*, feel free to email me samples/description/whatever.

Database:

I think that size would be more of a driving factor in your choice. What kind of information would reside in the DB? How many users might access it at any given point? Is the data constantly changing or fairly static?

Looks like you have a nice little bundle on your hands.
:)
Your answers to dreamboat's questions will determine the best solution.

=================================
After reading the discussion so far, I'd lean toward the following configuration.  Remember that I'm having to "guess between the gaps" of known characteristics and requirements about your application.

1. Store the client/company names and template names in a table.  This can be a read-only database table, ASCII text file, or XML file.
2. When the user opens a client-related template, the Document_Open code reads the contents of (1) and displays it in a combobox.
3. When the user selects the combobox entry, load the appropriate template.

=================================
Since your users will only have read-only access to the table of client-template items, you shouldn't have to worry about Access database corruption.

=================================
The fastest input of the client-template items is with a single Input statement of an ASCII file.  Your program will have to parse the string to load-up the combobox.

Using an XML format is slower than ASCII I/O and adding any database layer is slower than XML.
<listening>
Avatar of ehout

ASKER

Hi Y'all.

I am facing the situation daily, so it may have looked to me more clear dan appearantly to you. So I'll try to explain a bit.

I am responsible for the installation and use of MS-Office in my organization.  This organization is a bank and insurance company (not a reseller, but we actually insure people and provide people with mortgages (sorry if my english is a bit bad, but I often don't discuss things other than computer related in english, so...)). Therefore we have many letters, drafts, contacts, etc... etc... dat go out to people which nearly are the same, exept amounts and personal data of the recipients. So a couple of years ago some smart-ass thought it would be nice to have all those letters at hand for the people who use 'em. So the system is now as follows:
Each word installation points for it's workgroup templates to the standard template location on the server. All users are member of an (NT-security) group which only has collegues of the same department/workgroup (mostly between 5 and 20 people per group, with here and there an exception). The standard template directory is devided in about 30 or 40 subdirectories. All templates valid for a certain department are put in such a subdir. and only that department has access to it. So this means that when that user opens the "new document" screen form Word, the user has the "general" tabfolder and only 3 or 4 other tabs, because Word only generates tabs for dirs it can read and where it find 1 or more .dot files.
So though the company as a whole has about 2000 templates, but usually each department only sees 50 or less. Each departmet also has 1 or more people who are authorized to mainain "their" templates. All the others only have read access.

My problem is the vulnarability of the system (e,g, if all rigths accidentily are reset, which sad enough sometimes occurs) and the large amount of time that is neede for maintenance of all those templates. Recently we changed the standard company font, so all documents had to be changed. I tell you, this was not a nice operation.

My idea was this:
A document usually consists of (max.) 4 parts. Header, body, footer and attachments. So if I Tear all templates appart in those 4 parts, dump the whole thing in a database and let the users "build" their letters out of the database (selecting the "right" parts), I can have the users go back to a couple of templates in which all settings are made. The contents of the letters then are chosen by the user and the word program then smashes these blocks in the document.

I hope this clears things up a bit?

So my main questions still are:
- Does anyone know of any shareware/freeware tools that do the above?

In case I build the stuff myself, Two things are possible.
1) I use a database I connect to or
2) I use a tcp-connection and have to build a web back-end.

'bout the database, Which one could I best use? I doubt this is MS-Access, for connecting it is slow
and since the software would be used constantly, I think Access gets corrupted a bit too easy. right?
Connecting Oracle through odbc could be an idea, but this connection is also not too fast.

Kind regards
I'd take the simple approach.  If they don't already exist, create departmental directories allocated/mapped  automatically at network logon.  Move your existing departmental template directories underneath the departmental directory.

Change/set the "Workgroup Templates" option in Word to point to the newly relocated departmental templates directory.
Avatar of ehout

ASKER

What would be the benefit of this? I'ld still need the huge number of templates, And the userrights problem only is moved to a mapping issue. But the point is nearly the same. The crux is I want to eliminate that huge number of templates.

Grtx
I thought the templates solved a real business problem (appropriate letter templates to help speed responses in a standard format).  My simplistic solution reduces the number of templates that any one person can see.

If it helps, you can also rename the templates to help your users better identify which one they need.

==================================================
Unless you can abstract the template scheme, creating a wizard, you aren't going to solve your problem with fewer templates.  Ask yourself the following:
1. How many different headers are there?
2. How many different body texts are there?
3. How many different footers are there?
4. What criteria can you use to reasonably specify the right combination of document parts?

Stick to the business problem at hand.  What is the nature of the problem? (maintenance, confusion, administration, efficiency, errors, user disatisfaction, etc.)  If you are the one having the problem (not your users), then rephrase your question.
Avatar of ehout

ASKER

In my comment of january 21 I tried to explain that all users only can see the templates that are appropriate. No standard user will see more than 50 templates spread out over 3 or 4 tabpages.

I'll sketch the future scenario I have in mind now.
A user starts a blanc document. The user clicks on a nice button. A screen comes up and has the user choose the parts of the document. Suppose he only needs to send a certain letter containing a header a body and a footer. The user gets a window with a listbox listing all appropriate headers in the database. He picks one. Then all appropriate bodies all show (short title for them). User selects one. Then the footer is choosen in the same way. The user selects save and/or modify and/or print. Then the job is done. Next doc.

Additional feature would be to predifine documents (for example contract a consists of header 3, body 27 and footer 6). In the first window after clicking a button user then chooses a predefined document or chooses to put one together him-/herself.

For this situation only 1 global blanc template is needed. All the rest comes out of the database. However, formatting must be maintained so the database must be capable of storing blobs.

Kind regards.

I disagree that blobs must be stored.  

So, instead of one decision, your users will have to make three decisions.

====================================
Alternative thinking...

1. When the user selects a document part (header, body, footer, etc.), use Word automation to insert that part into a new document from a hidden secure directory of Word templates.

2. As the user selects certain parts, future user selections are limited to those Word templates that contain those parts.  This eliminates the possibility that the user will mis-match document parts.
Wow. I been listening since I posted. I keep coming back to autotext. Just create a menu/toolbar that runs (inserts) all the autotext entries for that department/division. Put this template into a network drive folder. Change their Startup location to that network drive folder.

No Access, no nothing else involved but Wordstuff...

I don't mind the userform too much, but what if they make a mistake or decide later they should have...? Are you going to build all that "edit this/edit that" into it? Error correction? Yuk.

Let me know what you think, ehout, I can expand a lot more on it, but have been typing all night...
:)
Dreamboat,

1. You still have to determine what autotext to expand. (choices and decisions)
2. Although autotext will work in the header and footer area, you still have position the cursor.
3. Autotext doesn't necessarily address attachments.
4. I worry about the size of one template with all the autotext in it.

============================================
The general idea about the user interface is the presentation of valid choices.  There really won't be any validation code required.
Avatar of ehout

ASKER

Hi

Dreamboat: Nice discussion, right? If I put all text in 1 template, autotext for sure would make this thing big as aikimark states.  We are speaking of 1500 to 2500 pages of text here! (Thought I'm sure a several hundred pages are redundant, that's one of the the reasons for going into this). Besides that, The autotext entries either come from outside word, and I would still need a database, or from inside word (stored in a template) and then I would need to have an intelligent way to handle userautorisation. So autotext might not be as simple as it looks.

About who's going to build it, Yes it's probably me. Actually I've rewritten the current code also. (At this very moment our maintemplate which contains the general VBA code and forms is about 350 Kb after using wordcleaner).

Aikimark: Why do you disagree on blobs? If I want to store paragraphs in a database, and later on I need to place it in a document, I want it complete with text I've set bold, italic, indents, etc. Is there any other option then storing it binairy?

When I keep the hidden secure directory option, I'ld still have all templates to process when ther's the need of processing them all when something changes. Rmember that templates also store info on how to print (proper trays), page info, etc... I'ld like to have all that info stored, So any adjustment I make are not options in a document, but just parameters in a document definition. The program code then at the moment of creating the document assign all necessary ocument and page properties.

Kind regards
ehout,

Where do I begin?  Although numbered for easy reference, there is no priority in the following remarks.

1. There is more to paragraph formatting than the formatting of text.
2. There might be a mixture of paragraph formats within a single document.
3. Your code must do the translation of a Word object to a binary object, and back again.
4. Currently, templates are legally and functionally correct.  How are you going to prevent the mixing of template parts?
5. Your code is still responsible for navigating to the correct parts of the document.
6. Reread my prior comments.
7. KISS - Keep It Simple and Stupid
8. Some good might come of your analysis on distinct template elements and formats.
9. A template is a whole document, not just a paragraph.

The simplest implementation is the best implementation (7).

=================================================
Now you've gotten to the heart of your problem:
"I'd still have all templates to process when there's
the need of processing them all when something changes."

This is all about template maintenance, isn't it?

You can create a maintenance program, either in Word/VBA or in VB/WordAutomation, that opens all the templates and performs the appropriate maintenance.
Avatar of ehout

ASKER

Template maintenance is only 1 of the issues. But we're going off-topic again. I have a certain design available. This topic is about the technical details of it, How to reach the database where all things are stored.

I almost made up my mind for the brand of database. I think it 'll be Oracle 8i.

However i still need to decided how to reach it. (Via straight tcp connection, via ODBC (yech...), ADO, OLE connection, etc...)

Kind regards
Hi,

Hope, as far as performance is concerned w.r.t. to Oracle, OLEDB Connection with ADO should be faster, compared to ODBC and TCP/IP.

Cheers.
ehout,

The question title is "Design Issues", however, you already seem to have the design set in stone.  I've tried to change your mind without success, so I'm stepping away from this discussion.  

You seem to only have a "database access choice" question, which valli_an successfully answered.

My parting comments:

1. If you have not done enough analysis to determine the "huge number" of distinct template parts, you shouldn't have settled on either a design or an implementation.

2. This seems to me to be a programming exercise that doesn't address real business problems.
"The best programming/database in the world won't compensate for bad design."  -- Not my quote, but still valid after more than 25 years.

3. KISS.  Create a wizard to help the user select the appropriate template rather than building the document from template parts stored in the database.  

4. Remember that you are (in essence) replacing the File|New dialog box.

5. valli_an is correct that OLEDB/ADO is a faster connection.  Use the Oracle provider.

6. How have you cost-justified this project?

7. Show your boss this entire discussion and see if they still agree with you.
Avatar of ehout

ASKER

Hi,

Aikimark,

Thanx for your concerns. I can imagine the objectives, but this place is just to small to describe the whole system here, including the maintenance problems that come with it.

The title indeed is design issues. I do not think you are in the correct place or have the correct information to judge wheteher my intended solution addresses real business issues or not. Further, if you are that known with programming, you should also be aware of the fact that design can be functional or technical. I don't know your age or experience, but you seem to be someone of the latter generations who never have dealt with real functional AND technical designs because of the so called "rapid prototyping" models which actually seem to be misused as an excuse for quick fixes.

I still believe in the strenghts of having both a functional and a technical design. Functional I desided to use a database and get rid of the major part of all our templates. In the technical design I describe systems, connections, actual tables fields and all other technical issues.

So please keep your opinions about the validity of someones choices inside your head as you don't now the entire situation only from some messages on this board.

OK, Back on topic again.
Of course there will be some wizard. And yes, for most users the actions will be almost the same as if they were using the "file|new" box.

At this very moment I am testing Oracle objects for Ole. The results are quite promising until now.

BTW, My boss totally relies on my judgement, because I'm in full charge of the entire MS-Office part of the automation over here.
ASKER CERTIFIED SOLUTION
Avatar of Valliappan AN
Valliappan AN
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ehout,

You're welcome.

Thank you.  Since this site is "Experts Exchange", I have qualified as an expert in the eyes of the site owners (30000+ points), 25 years earning a living in the DP field (I updated my profile persuant to your question about my experience), and you asked the question in the first place, I have no reservations about offering my opinions as long as I remain professional and attempt to be helpful.

I tried to part ways with this question.  Since you responded to me as you did, please allow me to respond.

1. "I can imagine the objectives"
Since you already have the design in mind, you'd better KNOW the objectives.  If we (experts) had known your objectives, maybe we could give you more pertinent/helpful comments.

2. "The title indeed is design issues."
Didn't I suggest designs?!?

3. "I want to use the standard template and let the users
get the rest out of database."
Accessing a database with a template-content field and template names (pointing to a .DOT file) are two different implementations that seemed to meet your criteria.  One is much simpler than the other.

4. "...but they are either too expensive or don't suit my needs."
If you wanted to know of shareware/freeware alternatives, what quality of answers did you expect without having given us sufficient information, including those you'd already found?

5. "...keep your opinions about the validity of someones choices inside your head as you don't now the entire situation only from some messages on this board"
Early comments from Dreamboat, ameba, and I, indicate that we were all trying to understand your problem.  Any unhelpful comments were a result of incomplete information.  If you weren't open to alternative solutions, then why even ask the question the way you did?!?

6. "My boss totally relies on my judgement, because I'm in full charge..."
Then you shouldn't have any reservations about a review of this question and our comments by either your boss or your peers.  Being in charge doesn't imply correctness of your decisions.  Look at Dilbert's Pointy Haired Boss.

7. "The results are quite promising until now."
It's one thing to design something, another entirely different to build and implement it.  

8. As far as 'Functional and Technical designs' or 'the solution to real business problems' are concerned, how are we experts supposed to know these things without you describing them in your original question, pointing to a web site where we might read them, or offering to send them to us via e-mail?

============================================
I wish you the best of luck with the project, and I hope that you find an acceptable implementation to your design.
Avatar of ehout

ASKER

Aikimark,

OK, No hard fealings please.
Do not think I don't appreciate all the efforts you and others are making, trying to answer my question(s). As I am no native english speaker, please don't take my words too litterally when judging my answers.

However, when you look at my initial question, I have 2 standard questions over there.

1 about shareware/freeware tools. The other about what kind of database to use. The next day I'm in the middle of a design discussion I never wanted to start. I did not ask people to look oer my design. I just asked opinions about some aspects of amy technical design.

I can imagine a bit that a must be difficult to understand the system we're using here, so I suggest we leave it hereby OK?

I'll pick 1 one of the comments here, accept that as an answer and close the question that way.
No hard feelings, but please do not pick one of my answers.
Come on guys, no feelings at all. :)

We know that this site is so friendly to members, and therefore no need for such things. This qn. seem to be more of discussions rather than the question topic.

ehout, if you find this qn. not solved for your problem, you can delete it, and repost a clean question, stating exactly what you want. Since the question title is just "design issues", I think experts started answering on their views. To me, initially I read, I dont understand many things since I am not much familiar with VBA.

Cheers.
I ducked out of this question too when it was clear that it was not about Word but the handling of the automation end of things. I know Access fairly well, but don't do code. I support Access where I work, and haven't heard of many corrupt databases at all, so I did give that opinion. As to Oracle -vs- Access, haven't a clue. I'm very experienced as both a user, troubleshooter, and "designer" of Word documents, hence I responded from the user end here. You can have the best-designed automation in the world, but if it's not user-friendly, then it is not automated at all. ehout has a point--I don't know his users. What I'm still trying to figure out is how to format those paragraphs that come out of a database to look the same as the document's formatting, but perhaps ehout has it covered. And I don't do Word VBA either.

I too would not mind if you chose to delete the question, ehout. I think it's been a learning process for us all.

:)
Actually, after further thought--you should PAQ it. It's an interesting discussion.

:)
Thanks.