Formatting Notices using C++

I am deleting or updating meetings using the C++ api, and need to send the appropriate notices to the attendees. I have used the User Interface(UI) to generate these styles of documents to follow, but my document does not behave properly on the recipients side.

Specifically there is a Item called $CSVersion with a value of “2”. The UI version of the notice has this item. If I create this item and open the document on the recipient side, the meeting automatically becomes a different notice type, changes from “C” to “U”. This is all triggered by opening it in the UI. If I leave the $CSVersion item out, the document opens properly, but does not change or delete the appointment from the recipients mail box, as does a notice sent by the UI.

Is there any documentation on sending Notices, Formatting, or ANY other information.

Urgently,

Mark Barber

mbarber@spontec.com

Subject: Formatting Notices using C++

Hi Mark,I’m on the Domino/Notes C++ API development Team

can you provide more information:

What version of Notes/Domino

what version of C++ API toolkit

From what I understand, you don’t want to just delete the calendar entry, but notify the that the time has been changed or deleted? i.e. calling LNCalendar::DeleteEntry only deletes the entry… but you want the user to be notified that the meeting has been changed in a similar manner to the way the Notes Client behaved.

I’ll check to see if this can be an enhancement or if it can be accomplished in another manner with the current toolkit (2.1,2.2 or 2.3)

Subject: RE: Formatting Notices using C++

I am using Notes 6.C++ V 2.3 - I was on the Beta, now Using 2.3;

Exactly, Deleting the appointment is a simple task, but I want to send a notice to the attendees notifying them of the change and have there Notes client respond to the notice the same way it responds to a notice sent from the notes interface.

I have dumped the properties of the document when it hits the recipient side, but there is a possibility that it is being modified before I have a chance to read it.

I really want to know which properties are mandatory and the values for a “Notice-Rescheduled” and “Notice-Canceled”.

Thanks for all your input!

Mark

Subject: RE: Formatting Notices using C++

Could someone go into a bit detail or explain how to programmatically send out Notices to the attendees when Meetings are cancelled?I see that the ‘NoticeType’ field has the value set to ‘U’ or ‘C’ so does that mean that you’d create a new Notice form and set a bunch of fields? If so, which fields need to get set?

Thanks in advance,

Jay

Subject: RE: Formatting Notices using C++

I believe the client sends out the notification, so the C++ application should also send one (you need to create your own). Deleting the document is easy it does disappear, but modifing the time changes it to a new meeting.

I’ll see what I can find out.

Subject: RE: Formatting Notices using C++

I have created a response, and I have formatted the response to like the output below.

This Cancelation of the meeting sends great but does not behave properly when received.

When the recipient opens this document the Type becomes a Update, not a cancelation. The actual values are re-set by Notes.

When I open a notice(cancelation) generated by Notes these values are not modified.

Also if I do not include -Has Item: $CSVersion 2-

These Values to not change on the recipient side, but the calendar-entry is not automatically removed as it should be.

–Document dump of the Noice(cancelation) I am generating.

–I have compared this to one Notes sends, and they appear Identical, inless Notes updates the one it sent before I can read the contents.

Doc ID: 6946

Has Item: DeliveredDate -DT-04/11/2003 10:53:38 AM

Has Item: $MessageID <OF1CCF6D52.6C98B776-ON87256D05.005CCD14@Loca

lDomain>

Has Item: $MsgTrackFlags 0

Has Item: RouteTimes -DT-04/11/2003 10:53:38 AM - 04/11/2003 10:53:38 AM

Has Item: RouteServers CN=backupsvr/O=talk2

Has Item: $Revisions -DT-

Has Item: Categories

Has Item: $Orig :diamonds:

Has Item: $UpdatedBy CN=Mark Barber/O=talk2

Has Item: Encrypt

Has Item: PostedDate -DT-04/11/2003 10:45:45 AM

Has Item: $CSTrack Owner Action(Cancel) by Notes Client on Jon Willesen/talk2(Release 6.0 September 26, 2002) at 04/07/2003 10:13:26 AM

Has Item: Subject Cancelled: My Meet

Has Item: Location

Has Item: $CSWISL $S:1;$L:1;$B:1;$R:1;$E:1

Has Item: Topic My Meet

Has Item: INetRequiredNames .

Has Item: StorageRequiredNames 1

Has Item: AltRequiredNames Mark Barber/talk2@talk2

Has Item: EndTimeZone Z=7$DO=1$DL=4 1 1 10 -1 1$ZX=41$ZN=Mountain

Has Item: StartTimeZone Z=7$DO=1$DL=4 1 1 10 -1 1$ZX=41$ZN=Mountain

Has Item: AppointmentType 3

Has Item: RequiredAttendees Mark Barber/talk2@talk2

Has Item: EndDateTime -DT-04/16/2003 10:00:00 AM

Has Item: StartDate -DT-04/16/2003 09:00:00 AM

Has Item: STARTDATETIME -DT-04/16/2003 09:00:00 AM

Has Item: $FromPreferredLanguage en-US

Has Item: $NoPurge -DT-04/16/2003 10:00:00 AM

Has Item: $PublicAccess 1

Has Item: SendTo Mark Barber/talk2@talk2

Has Item: _ViewIcon -#-81

Has Item: NoticeType C

Has Item: $CSFlags w

Has Item: $SMTPKeepNotesItems 1

Has Item: $CSVersion 2

Has Item: UpdateSeq -#-1

Has Item: SequenceNum -#-1

Has Item: $LangPrincipal

Has Item: $AltPrincipal CN=Jon Willesen/O=talk2

Has Item: Principal CN=Jon Willesen/O=talk2

Has Item: $LangChair

Has Item: AltChair CN=Jon Willesen/O=talk2

Has Item: Chair CN=Jon Willesen/O=talk2

Has Item: Form Notice

Has Item: From CN=Jon Willesen/O=talk2

Has Item: ApptUNID F3C2BA17B6E6DB2E87256D05005CA348

Has Item: $RefOptions 1

–Mark

Subject: RE: Formatting Notices using C++

I have a new Question and Information.

How do I populate the $REF Item Properly to identify an appointment?

What other fields are removed by Notes before I open a Meeting cancelation?

  • I created a $REF object with the contents of another Doc’s $REF Item and sent it as part of the meeting cancelation. It was not in the document after it was received, which means there may also be other fields which are used and removed.

Again, Any information would be great!

Urgently,

Mark Barber

Subject: RE: Formatting Notices using C++

Hi Mark,Looks like I don’t have that information, but I will report this to the lead C++ developer to see if he has any input (this will reported under our software problem report system. I’ll post any significant information in this thread. Thanks for your patience.

Subject: RE: Formatting Notices using C++

Thanks for all your help, I appreciate it. Unfortunately I am supposed to have this working by Friday… ha ha ha

Thanks again.

-Mark Barber

Subject: RE: Formatting Notices using C++

One more question which may limit the possibilities. When Notes sends a reschedule of a Meeting and the user uses the “Open Meeting” button, what fields does that button use to find the meeting? Only “ApptUNID”?

The reason I am asking is when I leave out the “CSVersion” Item it behaves better on the recipients side, but Notes does not update the meeting, and the “Open Meeting” button gives an error stating “This meeting is not in your mailfile.”

Again, Thanks for any information.

Mark

Subject: Formatting Notices using C++

This is a little outdated, but should give you a leg up…

Calendar Entry Fields

Field Name

Type

Values

Comments

Required?

$BusyName

text

fully distinguished username

Person that is busy for that timeslot. You could get it from @Username, but because of delegation we use the Owner field in the Calendar Profile

Only if you want the free time system to show this person as busy for this calendar entry

$NoPurge

date/time

EndDateTime

Prevents the note from being purged by replication before the appointment has occurred

Recommended

$REF

text

UNID of the parent

This field exists on repeat instances and subsequent notice documents. (For repeat instances, the parent holds the rules, RepeatDates, and RepeatIds of each instance in the repeat set.)

Only if the doc is supposed to be a response

$RefOptions

text

“1”

Ordinarily if you save a response doc with a form that is designated as type Document, the $Ref is deleted and the doc will no longer be a response. This tells Notes that although the form which this doc uses (Appointment) is of type Document, continue to treat it as a response.

Only if the doc is supposed to act as a response although its document type is “Document” (in our case, it is required only for repeat instances)

$BusyPriority

text

“1” = Busy
“2” = Not Busy

Tells the scheduler whether this appointment is considered busy time or free time

If there is a $BusyName but no $BusyPriority the free time system still sees this time as busy

AppointmentType

text

“0” = Personal Appointment
“1” = Anniversary
“2” = Event
“3” = Meeting
“4” = Reminder

Controls HideWhens and other processing

Yes

Body

richtext

BookFreeTime

text

“1” = Time is free
“0” or “” = Time is booked

Default is “0”. If set to “1”, the $BusyPriority field is set to “2” otherwise the $BusyPriority is set to “1”. Tells the scheduler if you are busy or free during that time.

CalendarDateTime

date/time

StartDateTime

Causes something to show up in the Calendar view.

Only if you want the document to appear in the Calendar View of the mail file

Chair

text

fully distinguished name of the Owner of the mail file that originated the Calendar Entry

Helps to identify who originated this doc

Yes

CopyTo

textlist

Used for sending notices to OptionalAttendees

DocAuthors

authornames

fully distinguished username

The person who created the document

Duration

number

Number of days an event spans

Only if AppointmentType is event

EndDateTime

date/time

The end date & time of the meeting. Created from combining StartDate and TimeRange

For all AppointmentTypes except reminder

ExcludeFromView

text

“D”

Prevents appointments that are not sent from showing up in the drafts view

Unless you want the appointment to appear in the Drafts view

Form

text

“Appointment”

Determines what form to display the doc with

Yes

From

text

fully distinguished username

The person who created or who sent it. May include @domain

Yes

FromDomain

text

If sent from a different domain, the domain route will be in this field (posted by router)

NoticeType

text

“I” = Invitation (original)
“U” = Update (originator reschedules)
“C” = Cancel (by originator)
“D” = Delegator notifying originator
“S” = StatusUpdate (by originator)
“N” = Confirmation (by originator)
“J” = Originator declining counter
“A” = Accept (by invitee)
“R” = Decline (by invitee)
“L” = Delegator notifying delegate
“T” = Counter Proposal (by invitee)
“P” = Pencilin (by invitee)

Notices sometimes get converted to Calendar Entries. This is the value it had while it was a notice.

OptionalAttendees

textlist

Full names of optional invitees. These are the names as “corrected” (expanded?) by the mailer.

OrgConfidential

text

“” = False
“1” = True

If True the $PublicAccess field is sent to “”, otherwise the $PublicAccess item is set to “1”

OrgDontDoubleBook

text

“” = False
“1” = True

Causes conflict checking to occur. This item gets sets only if the appropriate setting in the profile document for that appointment type is set

Only if you want to check for conflicts

OrgRepeat

text

“1” = this is a repeating appointment

If it is not a repeating appointment, this field will not be present. See below for more on repeating appointments.

OrgTable

text

“C0” = Calendar (set for appointment)
“T0” = ToDo
“H0” = Calls
“P0” = Planner (set for event)
“D0” = Address
“N0” = Notepad
“A0” = Anniversary (set for anniversary)

Only “C0” is used

Yes

PostedDate

date/time

Mailer creates this when you send it

Principal

text

fully distinguished username

Owner of mail db in which it was created

Yes

Recipients

textlist

Who mail got sent to - posted by router

RequiredAttendees

textlist

Full names of required invitees. These are the names as “corrected” (expanded?) by the mailer.

Only on invitations

RequiredResources

textlist

List of resources that have been invited to a meeting

ReserveRoom

text

“1” = Reserve room from Reservation’s db
“” = no room needed

Indicates if a room needs to be invited

Room

text

Name of room to reserve

Only if ReserveRoom = “1”

SendTo

textlist

Who you are going to send notices to

Only if you are going to send this document

SequenceNum

number

Set to 1 on an original invite. Incremented on any reschedule. (see below for discussion)

Yes

StartDate

date

The date of the appointment, used in data entry.

Yes

StartDateTime

date/time

The start date/time of the appointment. We generate it by combining StartDate with either ReminderTime or TimeRange

Yes

Subject

text

Appointment description. This is what shows in the view (more lengthy text goes in the Body field)

Recommended

TimeRange

date/time range

StartTime - EndTime. Used for data entry.

_ViewIcon

number

Indicates which view icon to use

Only if you want a view icon to display

Uninvited

text list

People who were uninvited or were removed via the Freetime dialog

Subject: RE: Formatting Notices using C++

Thanks this Documentation is EXTREMELY helpful! Do you have any more? :]

I am also needing information on: $CSVersion, $CSFlags, $SMTPKeepNotesItems, UpdateSeq and $CSWISL. Any info would be great!

Thanks Again.

Mark

Subject: RE: Formatting Notices using C++

Unfortunately not - that’s pretty well all I have on hand. If you do find anything on the other fields I’d appreciate a copy myself :slight_smile:

Perhaps you could post it here for others in the same boat?

Stephen Lister

Subject: RE: Formatting Notices using C++

Can you give me any more information on $REF and how to populate this properly?

I also posted this under this same grouping to the other individual who has responded to the original post.

Subject: RE: Formatting Notices using C++

Hi all,I’m a java developer and I’m trying to set the correct field for a calendar object.

I set all the fields in the table (form, chair, and so on) but when I launch the validation (computeWithForm) command it fails.

for example

doc = db.createDocument();

doc.appendItemValue(“Form”,“Appointment”) ;

doc.appendItemValue(“AppointmentType”,“4”) ;

doc.appendItemValue(“Chair”,this.remoteuser) ;

doc.computeWithForm(true, true);

doc.save(true, true, true);

Can anyone help me.

thank you in advance

gilberto

Subject: Found Solution

I have found the solution to my original Problem.

I was not creating the Notices as a response to the original. I was under the assumption that the link was passed by default because I was using the copy constructor. This was wrong.

I placed:

newMail.MakeResponse(orig);

in my CreateNotice function, and this solved everything.

Thanks for everyone’s input in the matter!

-Mark Barber