• Browse Blogs
  • My Blog
  • My Updates

+Tags Get help with tags?

  • View as cloud  | list

+ Similar Blogs

photo

Beyond The Ye...

330 Entries |  Peter Presnell
Updated 
RatingsRatings 21     CommentsComments 572
photo

Jan Schulz

43 Entries |  Jan Schulz
Updated 
No RatingsRatings 0     CommentsComments 36
photo

CrashTestChix

124 Entries |  Marie L Scott
Updated 
RatingsRatings 17     CommentsComments 268
photo

Patrick Picar...

69 Entries |  Patrick Picard
Updated 
RatingsRatings 2     CommentsComments 124
photo

Erik Brooks

48 Entries |  Erik Brooks
Updated 
RatingsRatings 10     CommentsComments 159

+ Bookmarks

+ Blog Authors  

1 - 15 of 53
  • Page   1
  • 2
  • 3
  • 4

DDN unresponsive - who to go to for Domino hosting?

Brian M Moore |   | Tags:  hosting | Comments (6)  |  Visits (227)
 For the last several years, I've used the Domino Developer Network to host my personal Notes apps. Overall, I've not had any problems. Support requests weren't answered in 2 seconds, but since they weren't critical, I got decent responses - except for the one time the request got lost entirely.
 
Last month, however, I created some new XPage apps and moved them up. When I tried them from a browser, they didn't work. A little troubleshooting showed that ".xsp is not recognized" - meaning the Domino server isn't 8+. DDN says it's servers are 8.5 so I put a support ticket in the middle of last month. After over a week of not hearing anything, I put another in. Both are sitting in the queue without response.  I gave it more time, then emailed the only other addresses I could find, billing and sales. I got an automated message back that had a phone number. Yesterday I called that. I couldn't get anywhere, the automatic system just bounded me around until it hung up on me (twice).
 
Since I'm not getting any response from DDN, I'm going to have to look for a new hosting provider, so does anyone have any suggestions? I'm itching to get my XPage apps up.

I'm really disappointed in DDN for this. I've been a quite customer for years, and now it seems I can't get any response at all from them. I think I've given them more than enough time (since we're now talking over a month) to make some response. I know they have different levels of support, and I'm not on the 'drop everything and run' level, but this is much longer than I'm willing to take. And I've been patient. But I've not gotten any acknowledgment that they have seen my requests for help, or asking me for clarification. Whenever a vendor does this type of thing, it says to me, the customer, only one thing "We don't care about your business." Vendors can do something to show they are at least queuing up a request - and I'd take that. My not this silence. They are getting my money, but they don't seem to be interested in it any more. So I guess I'll have to see if someone else is interested in my money.
 
So, suggestions? Good hosting plans? I actually own a copy of Domino, so I could even use a non-Domino hosting site if I could load it on.

Cheers,
Brian
No RatingsRatings 0

Importing a text file by line position

Brian M Moore |   | Tags:  lotusscript importing | Comments (1)  |  Visits (211)
 One of the ways of getting data from other systems is via a flat file, without delimiters, but using the line position. This does eliminate the problem of the delimiter being used in the text, but isn't very human readable (not that it needs to be). I was recently asked to set up an import for this type of text file. I've done similar imports before, but this one has a whole lot of fields. I started as I normally do, setting up the Notes form, I had a view to check my data, and then I started down the long road of all those fields. Just a couple in, I decided that since I was working on a test version, all the fields would probably have to be renamed before this could go to production. And there where a lot of fields, 177. So I decided it would be better to construct something that would look at a file with the field names and the position of their data on the imported file and do it all automatically. So here is my code.

The first bit is an Excel spreadsheet (but it could be something else) where the first column is the name of the field as it will be in the Notes database. I got a file with the layout from the exporter, and just used the spaceless column she had for testing. From her spreadsheet, I could have just mapped in the field names I used.

The second column contains the position. I am expecting it to be a single number, or two numbers separated by a dash (minus sign) without spaces, i.e. 76-83. If there is just one number, it's a single column, if there is a dash, then I have the starting position and use a bit of math to get the length for the Mid function. I dump all of this into an array then I hit the text file. For each line, I iterate through and pick up each based the Mid function. Everything will be a string, since it's a text file, but later you can do formatting, I've left any of that out of this code.

One of the advantages to this is that you don't have to do as much work putting together the LotusScript to create the fields. The exporters can also change their positions and field names, and all you have to do is reset what they give you with your mapping.

%REM
    Agent LineImportByArray
    Created Aug 9, 2010 by Brian Moore    
%END REM
Option Public
Option Declare

Sub Initialize()
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim fileName As String
    Dim Excel As Variant
    Dim xlWorkbook As Variant
    Dim xlSheet As Variant
    Dim lastColumn As Integer
    Dim index As Variant
    Dim col As Integer
    Dim xlFilename As String
    Dim lastRow As Integer
    Dim row As Integer
    Dim dash As Long
    Dim upperPos As Long 'I'm making these longs for consistency.
    Dim lowerPos As Long
    Dim extLength As Long
    Dim passString As String
    Dim fieldName As String
    Set db = session.CurrentDatabase
    xlFilename = "c:\dxl\testcols1.xls"
    Set Excel = CreateObject( "Excel.Application" ) ' for windows2000
    Excel.Visible = False
    Excel.Workbooks.Open xlFilename ' Open the Excel file
    Set xlWorkbook = Excel.ActiveWorkbook
    Set xlSheet = xlWorkbook.ActiveSheet
    lastrow = 177 'There is an excel command, but it's not working. I'm hard coding, this should be a one-off anyway
    Dim fieldArray() As String
    ReDim Preserve fieldArray(lastrow,2)
    row = 0
    Do Until row = lastrow
        row = row + 1
        'For each row, we need to get the field name, and positions
        'Column one has the field name we are going to use, column two has the postion(s)
        fieldName = xlSheet.Cells(row,1).Value 'Field name
        passString = xlSheet.Cells(row,2).Value
        dash = CLng(InStr(passString, "-"))
        
        If (dash > 1) Then    
            upperPos =(Mid(passString, dash + 1))        
            lowerPos =(Mid(passString, 1, dash -1))
            extLength = (upperPos-lowerPos) + 1 'This is the easiest way to get the math right
        Else
            'This is a single column value
            lowerPos = passString
            extLength = 1
        End If
        fieldArray(row-1,0) = fieldName
        fieldArray(row-1,1) = lowerPos
        fieldArray(row-1,2) = extLength
        Print (passString + " > " + CStr(extLength))        
    Loop
    
    Excel.Quit 'Close Excel
    Set Excel = Nothing ' Free the memory that we'd used
    'Now lets import the text file with data    
    Dim fileNum As Integer
    Dim docno As Long    
    Dim txt As String
    Dim x As integer
    fileNum% = FreeFile()
    fileName$ = "C:\dxl\tmp.txt"
    Open fileName$ For Input As fileNum%
    docno = 1
    Do Until EOF(fileNum)
        Print docno
        Line Input #fileNum%, txt$
        Set doc = db.Createdocument()
        doc.Form = "docImport"
        doc.Stuff = txt$
        For x = 0 To (lastrow-1)
            Call doc.replaceitemvalue(fieldArray(x,0),Mid(txt$,fieldArray(x,1),fieldArray(x,2)))
        Next
        Call doc.Save(True, False)        
        docno = docno + 1
    Loop
End Sub
No RatingsRatings 0

"Cheating" for CheckBoxGroup/RadioButtonGroup validation

Brian M Moore |   | Tags:  validation xpages | Comments (3)  |  Visits (305)
 Checkboxgroups and Radiobuttongroups are not fully implemented in XPages. By this I mean that not only are they relegated to "Other" in the controls, but they don't have the drop-and-use aspects of the other controls. These are pretty important controls, and I can only image that they will be more robust within a few releases.

One of the problems is that there isn't an easy way to validate these when used. There are a couple of posts out there, including a really great set by Paul Withers. My problem with these is that they require a lot more JavaScript coding than I am really comfortable with. Paul's post also mentions that some of his solutions are not working on some browsers/versions.

After kicking around a lot of these, I wanted something that wasn't as involved. Here is my proposed solution. Overall, it's not perfect, but it's designed to be implementable by someone who doesn't have a heavy JavaScript background. I'm using workflow to do validation rather than code: not the way everyone wants to go, but this is designed to be simpler, not more comprehensive.

I have a XPage with a checkboxgroup and a button. The checkboxgroup is bound to a field on a Notes document. The button on the XPage saves the XPage to the Notes document, then looks at the value of the saved field. If it's empty, it opens a XPage that includes some error phrasing, if there is a value there, it opens a XPage saying validation was passed. There would need to be a process to delete these stub documents, or handle documents that don't pass full validation and are 'incomplete'. Putting the same button on the error page means the user is in a loop until the field is complete.

Here is the code behind the button:<xp:button id="button1" value="Save">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:dominoDocument1.save();
var doc:NotesDocument=dominoDocument1.getDocument();
if(doc.getItemValueString("ckBox") =="") {
    //it's empty, open the one showing the error
    context.redirectToPage("navTestError.xsp");
} else {
    //there is a value, go to the next step
    context.redirectToPage("navDone.xsp");
}}]]></xp:this.action>
        </xp:eventHandler></xp:button>
 
Cheers,
Brian
No RatingsRatings 0

Breaking my head: value from a checkbox

Brian M Moore |   | Tags:  xpages | Comments (3)  |  Visits (337)
 I've been breaking my head trying to get a value out of a checkbox for validation, i.e. before submission to the server. For a variety of other fields, I can get it via the client call like:
var cName = document.getElementById("#{id:checkBox1}").value;
if(cName == "" || cName == null) {
    alert("Please check a box. ");
    return false;
}
But this just isn't working. I'm not getting any value at all. Here is my checkbox:
    <xp:checkBox text="This document does not have an original date"
        id="checkBox1" value="#{viewScope.dateEscape}" defaultChecked="false"
        immediate="true">
        <xp:this.checkedValue><![CDATA["No date"]]></xp:this.checkedValue>
        <xp:this.uncheckedValue><![CDATA["Date"]]></xp:this.uncheckedValue>
        <xp:this.onchange><![CDATA[#{javascript:viewScope.put("dateEscape",getComponent("checkBox1").getSubmittedValue());}]]></xp:this.onchange>
        <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        </xp:eventHandler>
    </xp:checkBox>
 
 I just can't seem to get a value from the client side with the code above. I've been doing variations on full and partial refresh,  but to no avail. I've also tried putting the value into a viewScope, or not. In my mind, this is something that should act like Input Validation in classic Notes development.
 
In the process I'm working on, the checkbox will be in a custom control that is asking for a date, and if there is no date for the user to check the box, so there is  no question as to the intent. I don't want to save the doc at this point, as there is another custom control that will let them upload a file and save it. But with the workflow, I want to get the date/no date nailed down first. I'm using Hide/Whens err Visible to  make a simple wizard like interface. So I want to see if I have a value in either the date field or this checkbox before going to the next step. I posted on contingent validation, but the code that where there doesn't seem to work and I can't figure out why. If anyone has any suggestions, please tell me, otherwise we'll have to be calling the king's horses and the king's men.
 
Cheers,
Brian
No RatingsRatings 0

I hate the new Designer "Help"

Brian M Moore |   | Comments (6)  |  Visits (507)
 I'm not trying to start a flame war here, but I can't ever seem to find anything in the new "help" that comes in Designer. The instant case in point is that I'm trying to find a way to conditionally validate a date/time field in XPages. I'm using the "Date Time Picker" custom control. I want to see some of the properties so I can try to determine why an empty, untouched field returns a value of  " on " when tested. So I try the new "help" in Designer. I go to the index and type in "Date" to get to "Date Time Picker" and it's not there. I want to go to the head so I can see the options: if it where like the old Designer Help (which is still out there, but doesn't cover XPages), I would get several listings, and I could see how to configure it, properties, etc. In the new "help" it's not there:
image I eventually find it by doing a full search on all topics, but why isn't it listed in the index? For my development work, I have a tendency to want a wider net, especially if I'm not sure what I need to get a resolution, and want to be able to scan around to see what can help. And that is the point of an index: all topics in the database, versus the categorization in a Table of Contents.

Not that the entry on the Date Time Picker is very helpful. It tells me how to configure it, but nothing on the default values it has, or how to set up conditional validation, or what it returns or anything else.

New Designer "help" covers a lot of topics, including Connections (which isn't in use in this environment), the client itself (data from which I rarely  need from a Designer perspective) but not Sametime. But if you don't know where a topic is covered, you can't get to it.

Yeah, this is a bit of a rant: I'm breaking my head trying to do what should be a fairly easy bit of validation: the user must select a date value or expressly say they don't want to assign a date. I'm expecting to get some of the same types of data on the XPage components that I get on a NotesItem, but it's just not anywhere I can find it. I mean, I would expect a place that would tell me at least what the valid attributes of a Core Control are, so I know what I can manipulate, and what I can and can't put in.

OK, just for fun I went to the index and put in "Core" which should take me to "Core Controls". Nada. "Custom" does take you to "Custom Controls" but the OLE version for traditional Notes development, not XPages.

Arrgh!

Brian





No RatingsRatings 0

Contingent validation: if "other" you must describe

Brian M Moore |   | Tags:  xpages | Comments (0)  |  Visits (321)
In traditional Notes development, it's a fairly simple thing to only require a value in field "B" if field "A" has a certain value. I use this when I give people an opportunity to select "Other" for some reason: I then require to know what the "Other" is. I'm working on this for a XPage, but where it's even easier there than in traditional Notes to put in some validation, I couldn't find an example of how to require a second field only if a previous field had a certain value. As often as I use it in my workflow, I was a bit surprised not to find any examples. I did eventually discover an answer. It may  not be the best one, and if anyone has a better suggestion, please post it. I'm posting what I have because I hope it'll help out someone else who was in the position I was this morning.

The code I'm using is based on some developed by Wei CDL Wang, in a post on OpenNTF. I'm using Wei's code for checking for the existence of an attachment as well. What this does is from the client side (i.e. don't turn off client side validation for this) it gets the values of both fields. If the first field has a value of "Other", the second field must have something in it, or there is an alert box that pops up. Returning false prevents the server side from executing.
<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete" immediate="false" save="true">
        <xp:this.script><![CDATA[
var comboVal = document.getElementById("#{id:comboBox1}").value;
var otherVal = document.getElementById("#{id:inputText1}").value;
if(comboVal == "Other" & (otherVal == "" || otherVal==null )){
    alert("Please define the type of other document this is. ");
    return false;
} else {
return true;
}
]]></xp:this.script>
        <xp:this.action><![CDATA[#{javascript:document1.save();}]]></xp:this.action>
    </xp:eventHandler>
    </xp:button>

I'm loving lots of this XPage stuff, but every so often something that was simple in traditional Notes development isn't covered. I had started out looking in Designer Help, and I can't find anything in there. I really miss the cross reference available in previous versions: you could look up @DBLookup and it would refer you to GetDocumentByKey in LotusScript.

Now that I have it, the next one will be easier, so on to the next one!

Cheers,
Brian










 
No RatingsRatings 0

Put any number of columns in a CheckBoxGroup

Brian M Moore |   | Tags:  xpages | Comments (3)  |  Visits (466)
 The other day I blogged about created a CheckBoxGroup with two columns. Being able to configure CheckBoxGroups (and RadioButtonGroups) are not in the current release of XPages. My solution was to populate two sessionScope variables with alternating entries from a view column, then have each of two CheckBoxGroups display the values from their variable. My first call for this was for two columns, but I though that I could use the same basic logic to put in more columns. Here is a screenshot with four:

image
For this, I had to create 4 columns, 4 arrays, 4 sessionScope variables, etc. It would be great if I could find a way to generate all of these just by putting in a constant with the number of columns I want, but that's not JavaScript I know at this point.

Here is the part done onPageLoad:
var getCent = @DbColumn(@DbName(),"luCheckBox",1); //This is the set of data to put in  your checkboxgroups

//for each column you want, create an empty array with the number at the end
var Array1 = [];
var Array2 = [];
var Array3 = [];
var Array4 = [];

//create a number variable and assign it the value of 1
var arrayAssign:Number=1;

for(i=0;i<getCent.length;i++){
    switch(arrayAssign) 
    {
    //set a case for each column you want.
   
case 1:
    //in each case, put the value in the array and increment up teh arrayAssign variable
  Array1[Array1.length]=getCent[i];
  arrayAssign++;
  break;
case 2:
  Array2[Array2.length]=getCent[i];
  arrayAssign++;
  break;
case 3:
  Array3[Array3.length]=getCent[i];
  arrayAssign++;
  break;
case 4:
  Array4[Array4.length]=getCent[i];
  arrayAssign=1; //in the final case reset arrayAssign to 1
  break;
}

}

//for reach column, put the array in a sessionScope variable (I use the same name as the array for convenience)
sessionScope.put("Array1", Array1);
sessionScope.put("Array2", Array2);
sessionScope.put("Array3", Array3);
sessionScope.put("Array4", Array4);

When you're all done,  here is how to get all the values together:

<xp:this.querySaveDocument>
                <!--                on querySaveDocument, concatenate all the sessionScope-->
                <!--                variables to a single one: you can add as many was you-->
                <!--                need by putting another comma and the variable-->
                <![CDATA[#{javascript:var comboArray = sessionScope.get("Rtn1").concat(sessionScope.get("Rtn2"),sessionScope.get("Rtn3"),sessionScope.get("Rtn4"));
document1.replaceItemValue("checkArrayCombo", comboArray);}]]>
            </xp:this.querySaveDocument>

Like I said, it's a bit more manual than I'd like, but it's pretty simple. The biggest problem I had was forgetting to change the numbers, as I copied and pasted.

Here is the xml of the entire XPage.

Cheers,
Brian

EDIT 13/7/10: Check out Stephan's post on his blog where he expands on this with full controls for checkboxes and radio buttons. Much better than anything I could come up with, and props to him - and to Niklas Heidloff who is also listed with him on the project they have posted on OpenNTF. This looks like it will really fill the need here.












No RatingsRatings 0

XPage Error Logging using NotesLog

Brian M Moore |   | Tags:  debug xpages | Comments (0)  |  Visits (343)
 I use the NotesLog a lot with my LotusScript work, and I've gotten very used to having the NotesLog to help me pinpoint problems. The new XPages JavaScript functions have the same (or similar) capability, but I've not seen many any posts on this method. So I started kicking it around a bit. The code snippet below is a basic bit that works according to my limited testing so far. The "session" is the default session given when you start your code, and the name is something to identify what block you are working on. Opening the log is just like in LotusScript, and in the block below I'm running on local. I use a "try/catch" block around the code I want to debug, with a "finally" to close the log.
var jsLog:NotesLog = session.createLog("JavaScript");
jsLog.openNotesLog("","AgentLog.nsf");
jsLog.logAction("JavaScript started");

try {
jsLog.logAction("OK, I'm in a try");

<code goes here>
} catch(e) {

    jsLog.logAction("error: "+e);

} finally {
    jsLog.logAction("in finally");
    jsLog.close();
}
Basically, this is just a XPage/JavaScript version of the LotusScript NotesLog code I use, and I hope it helps out. I know it's made some of my troubleshooting move much faster just this morning.

Cheers,
Brian
No RatingsRatings 0

2 Column CheckBoxGroup

Brian M Moore |   | Tags:  xpages | Comments (0)  |  Visits (419)
 One of the things XPages are currently missing is a simple control for radio or checkboxes. There are 'other' controls for them, but they aren't very robust yet. What I mean by that is you can't easily specify to have several columns that match up, you can have them all go horizontal or vertical, but I'm working on a process and I'd like to have the checkboxes spread out over two columns. After some experimentation, I finally created two checkbox groups, one in each cell of a table, the problem them comes up that it's a  bit difficult to get these two different groups to coordinate their values.

image Here is a picture of my end result. What I do is on pageLoad, I get the values I want to work with via @DBColumn, then I iterate through them moving the value to an array that holds either the even or the odd numbered ones:

var getCent = @DbColumn(@DbName(),"luCheckBox",1);
var evenArray = [];
var oddArray = [];
for(i=0;i<getCent.length;i++){
    if (@Modulo(i, 2) == 0) {
        oddArray[oddArray.length]=getCent[i];
    }else{
        evenArray[evenArray.length]=getCent[i];
    }
}

sessionScope.put("evenArray", evenArray);
sessionScope.put("oddArray", oddArray);


I put both into a sessionScope so they can be retrieved  Each checkBoxGroup puts it's values into another sessionScope variable so I can combine them.

                <xp:checkBoxGroup id="checkBoxGroup1" value="#{sessionScope.oddRtn}" layout="pageDirection">
                        <xp:selectItems>
                            <xp:this.value>
                                <![CDATA[#{javascript:sessionScope.get("oddArray");}]]>
                            </xp:this.value>
                        </xp:selectItems>
                    </xp:checkBoxGroup>


I can get this from the QuerySave event:

var comboArray = sessionScope.get("oddRtn").concat(sessionScope.get("evenRtn"));
document1.replaceItemValue("checkArrayCombo", comboArray);

This pumps them into a field on the document, but it could go into another scoped variable or whatever. I little working could get more than 2 columns. Here is a full XML of the page.

Cheers,
Brian
No RatingsRatings 0

Hide-When printed in XPages

Brian M Moore |   | Tags:  xpages | Comments (2)  |  Visits (393)
 XPages use "Visible" rather than Hide-When, and like traditional Hide-Whens, you can put in a value to compute. But I didn't find one for the traditional "Hide when printed" from the Notes Client. I'm working on a XPage where there is a button to call up a dialog box, and I naturally don't want that button printed up. After some digging and experimentation, I've found a way to hide things when printed. The function is done via a CSS, so here is the bit to put in:
@media print {
.noPrint {
    display:none;
}
In my experiment, this was the entirity of the CSS "NoPrint.css".  Next, I imported this stylesheet into the XPage. Then, put in the noPrint into the "outerStyleClass" and/or "StyleClass" in the All Properties tab:
image







A quick experiment shows either working, so you needn't do both. You can actually click on the value column and select noPrint since you have it added in.

Here is the markup from the source:
<xp:button value="Here is a button" id="button1" outerStyleClass="noPrint" styleClass="noPrint">
Looking at the Visible option, I think most options form the traditional Hide-When tab will be possible, but "Not visible when printed" wasn't available out of the box, so I hope this helps. Since finding this didn't take as long as I feared, especially since I'm not a CSS expert. And this method is quick and easy.

Cheers,
Brian

P.S. Quick update, this doesn't seem to work on XPages generated on the Notes Cient, my testing had been in Firefox. I'm poking around a bit on the client now. BM

No RatingsRatings 0

XPage double entries

Brian M Moore |   | Tags:  xpages | Comments (0)  |  Visits (321)
 Tommy Valand answered a question from a developer who was working in XPages and getting 2 documents saved when there should have only been one. Here is the post. I've been having the same problem in a database I've been working on. Where using his code didn't solve my problem, he does mention that you can bind datasources to a panel. I remembered I had done just that as an experiment. Removing the panel binding has solved my problem.

Thinking over the logic, this makes sense: you can do multiple bindings, so each binding will create a background NotesDocument. If I had been different NotesDocuments, that would have been the desired effect.

Thanks Tommy, you've got some great posts out there, keep them up.

Cheers,
Brian
No RatingsRatings 0

&Startkey= for XPage views? Is there one?

Brian M Moore |   | Tags:  xpages | Comments (2)  |  Visits (423)
 So I'm working on bringing some of my apps into the XPage world. One of the tricks I like best in the Notes style view is the quicksearch function: where you can just start typing and in the client it takes you to that entry, no matter how big the view is. The same thing is possible using the URL command &StartKey=Whatever. But I can't find an equivalent in XPages so far.

I really love the standard pager, but it doesn't give an option to get to a certain entry by just typing it in, and that's something I really want to use. Does anyone have any pointers or controls they could share?

Cheers,
Brian
No RatingsRatings 0

XPages have tighter security

Brian M Moore |   | Tags:  xpages | Comments (3)  |  Visits (593)
 So, I'm working on an XPage that calls an agent to do some processing, then calls up the document created by that agent. Worked well last week, then all of a sudden this week, no dice. It turns out that XPages are a bit more sensitive to who signed what design element than classic Notes. I was getting a response that the agent was null, but it was actually just that the last signer didn't have some privileges. I have a handful of IDs, I guess I'll have to be a bit more careful about which ones I'm using. Once I signed the design elements with the correct ID, it all worked. Default and Anonymous had plenty of access in the ACL, so it seems to be the signatures to me.

Cheers,
Brian
No RatingsRatings 0

Get the text from a pop-up

Brian M Moore |   | Tags:  tips | Comments (2)  |  Visits (400)
 OK, because I've just spent some time trying to get this to work:

I knew there was a way to get a Notes pop-up (prompt, etc.) as text so that you can copy it to a document. Not as a picture (which is easy with print-screen). To do it, use <ctrl><c>. Really nice if you want to get the exact message. So rather than:
 image










you can have:
---------------------------

---------------------------
2545200
---------------------------
OK  
---------------------------

Getting the exact text in an editable format can be very useful.


Cheers,
Brian


No RatingsRatings 0

Quickly find agent errors

Brian M Moore |   | Tags:  troubleshooting | Comments (2)  |  Visits (373)
 I've long wanted a way to get an idea of why an agent caused problems when they went suddenly astray. Since, like everyone else, I have a block of code that writes to an agent log, I put that in, but a move to a case-sensitive server caused it to have some problems and so I stopped. Plus, I don't really like to constant call to the Agent Log that says something starts and ends unless there is a reason to know all this.

During some other work, I put the code in a error handling at the end, just doing a print. So I start out with:

On Error Goto ErrorHandler    

and at the end:

Goto theEnd
    
ErrorHandler:
    Print ( "sendTicket " & Erl & ": " & Error$ )
    
TheEnd:
End Function

this is in my "sendTicket" function. So basically, this should give me a little bit of information if there is a problem. And it should be enough to get going. One of the problems I've usually had is when something goes wrong there is not a lot to go on. This will be pretty resource free but will give a little something to get started on. Just getting a clue at the beginning is a big help. Recently, I've needed to determine why a function wasn't running as expected, and sure enough in the log there it was, a type mismatch and a line number. Quick, easy and a good start. I have no idea why it's taken me this long to come up with this idea.

Cheers,
Brian
No RatingsRatings 0

Jump to page of 4
Skip to main content link. Accesskey S
IBM Lotus Connections Help Tools About