The Kat's Work - Blog
Main | Blog | Registration | Login
Thursday
2024-03-28
2:14 PM
Welcome Guest | RSS
Main » 2011 » June » 02


From discussion with others recently it became clear that we really should log lotus notes bugs. Not with IBM source of the infamous "We are aware of this problem. There are no plans currently to deal with this problem.” Somewhere that updates and workarounds can be added. In short here.

I'll try to be as objective as possible, and swear to let my blood cool before posting any.

First up, for no other reason than I came across it (again) most recently is....

The fact that you can not show a newly created document in a frame. (or editDocument ,setFrame and new notesdocument error.)

A little background to this error is that it has been present since release 5 and is still present in 8.5.

In essence the following code will not work.

Dim ws as new notesuiworkspace

call ws.setTargetFrame("NotesView”)

dim session as new notessession

dim doc as notesdocument

set doc = session.currentDatabase.createDocument
doc.form = "myForm”
doc.field1 = "1”


call ws.editDocument(false,doc)

Now it doesn't throw an error as it is valid code. It just doesn't work. Many people will ask why not use the compose method. Firstly why should we have to when this command should work (and does if we don't target a frame.) Secondly as you can see we are trying to pre-fill some fields with data (in this case field1).

Several workarounds exist:

1.use NotesUiWorkspace method compose. Get a handle to the compsed uidoc set any fields you need using uidoc methods than call a refresh of the uidoc. i.e.

    Dim ws As New NotesUIWorkspace
    Call ws.SetTargetFrame("NotesView")
    Dim uidoc As NotesUIDocument

    Set uidoc =  ws.ComposeDocument("","","myForm")   
   
    Call uidoc.Document.ReplaceItemValue("field1","1")
    Call uidoc.Refresh


2.Call a save of the document before calling ws.editDocument. Yes that correct if the document has been saved it works. This however is not appropriate for forms that either shouldn't be saved or or need saving at the users request.

3.Use formula on the form to fill your fields on compose, pass parameters using environment variable.

As you can see none of the workarounds are perfect. The first one is almost their but will cause some screen flicker. IBM have deemed this bug not worthy to fix in 3 whole release and countless updates. Possibly the existence of the above bodges stop them from caring. This however is a common problem in Lotus notes programming that you often come up against cases where something should work but doesn't and you must find the specifc work around for you problem.

Views: 1296 | Added by: The_Kat | Date: 2011-06-02 | Comments (0)


In IT we tend to get a lot of problems raised(Calls) where the information provided is insufficient or inappropriate for the solution of the problem. This often leads to extended resolution times due to having to fill in the background information on a problem before even starting to look for a solution. This isn’t just inefficient its poor customer service to have to contact the customer to fill in details on a problem they have raised. While we IT staff are guilty ourselves for not providing sufficient logging of errors, even the best logging of errors is only an aid to a user generated call.

Lets look at simple non-technical example (I’ll post a more detailed study later in this document.)

The Situation

"I had just been grocery shopping. I tried to open the door to the kitchen, but the handle didn’t work.”

Possible Problems Raised (Calls)

"Unable to put shopping in fridge.”
"Unable to get through door.”
"Handle broke on door to IT Kitchen.”

As you can see the quality of the calls can change wildly from being nothing to do with the actual problem, to very helpful.

If we look at the first call "Unable to put shopping in fridge.” It may look silly but from the users point of view this is the actual problem. They can’t get to the fridge to put their shopping into it. It will however lead to a highly inefficient solution process.

Firstly there is no information about which fridge the user is unable to access. So more data will have to be gathered, either by contacting the user again or checking which fridges the user has access to and checking them all. Once they know which fridge, they can than send their fridge specialist to take a look. Once on site he will find that the real problem is with the door to the kitchen. This will than be reassigned to a locksmith who in turn will have to visit the site at a later date.

When raising a call you should follow the following guidelines.

Try to be specific about the problem you had, Superfluous, non-related or demographic information will only confuse and slow the problem solving process.

Describe exactly what you were doing when the problem occurred, (but keep it task related they don’t need to know you was drinking a brew.)

Be detailed in your description of the actual problem. Every bit of information about the problem is one bit of information the problem solver doesn’t have to find or ask you about at a later date. To you it might be that you got an error while saving a record, to them it may be that the button you pressed to save didn’t work properly.

Always give reference numbers, where available.

Give a time and date for the problem, as accurately as you can.

So next I’ll give a detailed technical example to illustrate the differing levels. You will be surprised the number of calls I have received of type 1 & 2. Mostly calls fall into types 4-7 and this does tend to increase overheads to problem resolution. (I have never received a type 10 or better call and have only received a handful of 9s.

Situation


While in the company’s HR system, a user is amending absence records so that the monthly absence can be created. They are adding an occurrence of absence for employee 100001. When they save the record they get an error message. The error message reads "Exception 27 during insert of Absence Record”.

Now there is a spectrum of ways in which this problem could be raised. Each of them having impact on the efficiency of the problem resolution. Here are some examples and the problems with each.

Very low Efficiency

1.    "I got an error.”
2.    "Can’t run monthly Absence Reports.”
3.    "I was in the hr system and got an Error”
4.    "I was in the absence module of the HR system and got an error.”
5.    "I was adding an absence and got an Error.”
6.    "I had entered a new absence record. When I tried to save it I got an error.”
7.    "I had entered a new absence record. When I tried to save it I got the error Exception 27 during insert of Absence Record.”
8.    "I had entered a new absence record for employee number 1000001. When I tried to save it I got the error Exception 27 during insert of Absence Record.”
9.    "I had entered a new absence record for employee number 1000001. When I tried to save it I got the error Exception 27 during insert of Absence Record. This error occurred on the 12th July at 1pm.”
10.    "I had entered a new absence record for employee number 1000001. I put the following information in…………..When I clicked the "save” button at the top right hand corner I got the error Exception 27 during insert of Absence Record. This error occurred on the 12th July at 1pm.”

Highly Efficient


As you can see the difference a few important facts make to a call can be amazing. By providing the information that someone needs to tackle your problem straight away you are ensure your problem is fixed as soon as possible. The only problem being that the first time you log a type ten call, they’ll probably be so awed by the detail they sit and admire it for a while.
Views: 771 | Added by: The_Kat | Date: 2011-06-02 | Comments (0)

Login form
Adverts
Search
Calendar
«  June 2011  »
SuMoTuWeThFrSa
   1234
567891011
12131415161718
19202122232425
2627282930
Entries archive
Site friends
  • Create your own site
  • Spree4.com
  • My Blog
  • Statistics

    Total online: 1
    Guests: 1
    Users: 0
    spree4
    Copyright MyCorp © 2024
    Website builderuCoz