HCL Notes LotusScript Editor

Weeknummer in Lotusscript

Voor een applicatie had ik een weeknummer in Lotusscript functie nodig. Format(Now,”ww”) werkt niet goed voor jaren waar een week 53 bestaat.
Een iets aangepaste script van de MSDN site werkt echter prima.
Invoer Is een datum, uitvoer Is een tekst met het jaar en het weeknummer waarin de invoerdatum valt.

Function getWeekNumber(InDate As NotesDateTime) As String
On Error GoTo ErrorHandler
Dim DayNo As Integer
Dim StartDays As Integer
Dim StopDays As Integer
Dim StartDay As Integer
Dim StopDay As Integer
Dim VNumber As Integer
Dim ThurFlag As Boolean
Dim tmpDate As NotesDateTime
Dim tmpWeek As Integer
Set tmpDate = New NotesDateTime(DateSerial(Year(inDate.LSLocalTime), 1, 0))
DayNo = InDate.TimeDifference(tmpDate)/60/60/24
StartDay = Weekday(DateSerial(Year(InDate.LSLocalTime), 1, 1)) – 1
StopDay = Weekday(DateSerial(Year(InDate.LSLocalTime ), 12, 31)) – 1
StartDays = 7 – (StartDay – 1) ‘Number of days for the first calendar week
StopDays = 7 – (StopDay – 1) ‘Number of days for last calendar week
If StartDay = 4 Or StopDay = 4 Then ThurFlag = True Else ThurFlag = False ‘Test to see if the year has 53 weeks
VNumber = (DayNo – StartDays – 4) / 7 ‘If first week has 4 or more days, it will be calendar week 1 otherwise it will belong to last year’s last calendar week
If StartDays >= 4 Then
tmpWeek = Fix(VNumber) + 2
Else
tmpWeek = Fix(VNumber) + 1
End If
If tmpWeek > 52 And ThurFlag = False Then tmpWeek = 1 ‘Handle years whose last days will belong to coming year’s first calendar week
If tmpWeek = 0 Then ‘Handle years whose first days will belong to the last year’s last calendar week
Set tmpDate = New NotesDateTime(DateSerial(Year(InDate.LSLocalTime ) – 1, 12, 31))
getWeekNumber = getWeekNumber(tmpDate) ‘Recursive loop
Else
getWeekNumber = Format(inDate.LSLocalTime,”yyyy”) & ” week ” & CStr(tmpWeek)
End If
Exit Function
ErrorHandler:
MsgBox GetThreadInfo(1) & ” ” & Error & ” (” & Err & “) op regel ” & Erl & “.”
Exit Function
Resume Next
End Function

Aantal dagen in een maand

In een applicatie was het nodig om van een willekeurige maand het aantal dagen te kunnen tonen.
Met de formule @BusinessDays( startDates ; endDates ; daysToExclude ; datesToExclude ) is dat goed mogelijk.
Voor startDates kan simpelweg de eerste van de maand worden genomen, voor endDates zou je kunnen werken met @Adjust(@Adjust(startDates;0;1;0;0;0;0);0;0;-1;0;0;0) waarmee je dus eerst een maand optelt bij de startdatum en daarna een dag terug gaat.

Voor LotusScript zou je de formule kunnen evalueren met de Evaluate functie.

LoadAddressListByIndex en LoadAddressListByName

LoadAddressListByIndex en LoadAddressListByName zijn twee niet gedocumenteerde @formula commando in IBM Notes om namen uit een adresboek te tonen op het web:

@DbCommand(“Domino”;[“LoadAddressListByIndex” | “LoadAddressListByName”];”names.nsf”; txtTargetField; strMax; [strIndex | strKey])

INECO SMTPTranslateAddresses

Meer controle over het Internet mail adres

Een Domino-beheerder kan afdwingen dat het internet adres van een gebruiker dat is ingevuld in het persoonsdocument op de server wordt gebruikt in plaats van het Internet adres wat gevuld is in het locatie document op de werkplek.

Dit kan worden geregeld met de regel RouterTranslateSpecial = 1 in de notes.ini op de server.
Normaal als een gebruiker een vermelding in het Internet Mail adres veld van het locatie document maakt, wordt dit adres gebruikt in het “from” veld van het e-mail bericht.
Het toevoegen van RouterTranslateSpecial = 1 zal de waarde in het locatie document negeren en een zoekopdracht naar het internet adresveld in het persoon document uitvoeren.

De beheerder kan ook uitgaande berichten op de Domino server blokkeren als ze overeenkomen met de Outbound SMTP restricties in het Configuratie document.

De beheerder kan de instelling “Sta alleen berichten toe van de volgende internetadressen om verzonden te worden naar het Internet”, om e-mails te blokkeren, het genereren van een niet aflever rapport (NDR) als de cliënt een ongeldige of onbevoegde Internet-adres gebruikt in hun Locatie document.
Let op dat deze instelling alleen het volledige internetadres accepteert (dat wil zeggen jdoe@country.company.com) en niet wildcards en domeinen (dat wil zeggen * .country.company.com of country.company.com).

Vanaf Domino 6.0.2, zijn er verschillende NOTES.INI parameters om Domino beheerders te helpen het uitgaande internetadres juist op te maken:

SMTPTranslateAddresses = 2

Deze instelling zal het vertalen van inkomende SMTP e-mail adressen naar Notes-adressen mogelijk maken.

SMTPTranslateSpecial = 1

Deze nieuwe instelling zal een aantal speciale verwerking mogelijk te maken tijdens “inbound address translation”, inclusief vertaling naar de eerste gebruikersnaam zelfs als een Forwarding e-mailadres is opgegeven (het standaard gedrag, zonder deze instelling zou zijn om een ​​binnenkomend adres te vervangen door het Forwarding adres, hetgeen niet gewenst is in sommige gevallen).

RouterTranslateSpecial = 1

Deze nieuwe instelling zal een aantal speciale verwerking mogelijk te maken tijdens uitgaande address translation, met inbegrip van het negeren van alle bestaande INET * items, zodat alle uitgaande internet-adressen komen uit het internet adresveld in het Domino adresboek.
Daarnaast maakt het ook mogelijk dat de router personen waarbij geen maildomein is ingevuld (het standaard gedrag zonder deze instelling zou zijn om alleen mail te versturen voor personen met het zelfde maildomein als de server).

RouterUseFromAsSMTPOriginator = 1

Met deze instelling wordt het (RFC821) SMTPOriginator veld gebruikt als afzender in Van adres (MAIL FROM: parameter).

Gedocumenteerde $VELDEN in Notes

Veldnamen met een $-teken in het begin van de naam zijn in HCL Notes vaak systeemvelden met een speciale functie. Hier een opsomming van bekende velden en hun werking die bekend zijn.

$AssistMail

Geeft aan dat een e-mailmemo is verzonden door een achtergrondagent, in plaats van via de gebruikersinterface van de normale cliënt.

$UpdatedBy

lijst met vorige editors. Voegt geen nieuwe editor toe als deze hetzelfde is als de laatste editor, maar doet hetzelfde als elke andere eerdere editor. Niet veranderlijk omdat het wordt onderhouden door hardgecodeerde API-elementen. Alleen opgenomen in documenten die een bepaald soort auteursrechten hebben. Open bewerkingsdocumenten volgen geen editors.

$KeepPrivate

Creëert de “Voorkom kopiëren / doorsturen / afdrukken” op elk Notes-document indien ingesteld op “1”. Merk op dat dit geen beveiligingsfunctie is, aangezien een gebruiker het document naar een lokale database kan kopiëren en vervolgens het veld $KeepPrivate opnieuw instellen via een agent.

$Revisions

Tijd- / datumlijstgeschiedenis van alle wijzigingen in een document. Als u het kenmerk volgnummer in een willekeurig veld bekijkt, kunt u dat lid van het veld $Revisions vinden en de tijd van de laatste bewerking voor het veld bepalen. Dit is de basis voor het Notes-replicatiemodel op veldniveau.

$Signature

Container voor versleutelde samenvatting met private sleutel van ondertekenbare velden in het document. Dit is wat Notes gebruikt om een ​​elektronische handtekening te verifiëren. Als u het veld $Signature van een ondertekend document verwijdert, rapporteert Notes een beschadigde handtekening!

$Fonts

Container voor TrueType-lettertype-informatie in rich text-velden. Onduidelijk hoe dit gemanipuleerd kan worden.

$File

Container voor bestands- en OLE-bijlagen. Veld is uit te lezen, niet te bewerken zonder gevolgen.

$VersionOpt

Control-veld voor de vlag “wijzigingen opslaan als nieuw document” op een formulier. Kortom, ongeacht wat u op het formulier hebt ingesteld, maakt het wijzigen van dit kenmerk in het document de verschillende formuliereffecten die aan de vlag zijn gekoppeld.

$REF

Document UniqueID van het hoofddocument bij een document hierachie. Als u een berekend voor weergave tekstveld in een document met deze formule weergeeft, wordt een doclink naar het bovenliggende item weergegeven. U kunt deze waarde wijzigen,  maar het beste is om de methode NotesDocument.MakeResponse hiervoor te gebruiken.

$$ViewBody

Veld om Notes weergaven te tonen op browserclients.

$ConflictAction

Dit veld bepaald hoe om te gaan met save conflicten. Stel in op “1” om replicatieconflicten automatisch samen te voegen.

$SealData

Container voor gecodeerde veldgegevens in een document, ofwel hier staan de veldnamen in van velden die zijn versleuteld.

$Moods

Stemming-stempelvlag voor Notes-mail

$$HHFlags

Wanneer u het selectievakje “Kop- en voettekst op eerste pagina afdrukken” in de eigenschappen voor de database uitschakelt, bevat elk document dat vanaf dat moment wordt gemaakt een veld $ HHFlags met de waarde “1”. In dit veld wordt aangegeven dat Notes de kop- en / of voettekst niet op de eerste pagina moet afdrukken.

$PaperColor

De achtergrondkleur verandert voor numerieke waarden van $PaperColor tussen 1 en 239.

$Conflict

Bepaalt of er een opslagconflict is met het document.

$V2AttachmentOptions.

Dit is een speciaal veld dat Notes vertelt dat hij geen bijlagepictogrammen op het web en in de Notes-client mag weergeven. Geef dit veld de waarde “0” (nul) om geen bijlagepictogrammen weer te geven.

$$HTMLhead

Als u de formuliereigenschap “Voor webtoegang: behandel documentinhoud als HTML” niet gebruikt, kunt u door een $$HTMLHead veld aan een formulier toe te voegen HTML-informatie, zoals metatags en JavaScript, aan het hoofd doorgeven tag voor een document. Het veld kan van elk gegevenstype zijn, maar een verborgen berekend tekstveld is de beste keuze.

$$QueryOpenAgent

WebQueryOpen-gebeurtenis voert de agent uit voordat Domino een document naar HTML converteert en naar de browser verzendt. Domino negeert alle uitvoer die door de agent in deze context wordt geproduceerd.

$$QuerySaveAgent

een WebQuerySave-gebeurtenis voert de agent uit voordat het document daadwerkelijk op schijf wordt opgeslagen. De agent kan het document wijzigen of de documentgegevens gebruiken om andere bewerkingen uit te voeren.