Appointments edited through API gets their dates wiped and type set to Unknown

Status: Solved

Steps to Reproduce

Onsite 10.2.9 OnSite SuperOffice:


Appointments that are updated through the AppointmentAgent have their type set to Unknown, and StartDate and EndDate set to 1760. So for customers, these appointments appear as "deleted" when they go their calendar and view their diary.


Some technical details:


We initially create appointments through this method with parameters appointmentAgent.CreateDefaultAppointmentEntityByTypeAndAssociate(SOData.TaskType.Appointment, appointment.associate_id); and save it with the appointmentAgent.Save(soApp, SOData.RecurrenceUpdateMode.OnlyThis, sendEmailToParticipants: false, smtpEMailConnectionInfo: null, imapEMailConnectionInfo: null); method. Everything goes fine here, and the appointment is created on SuperOffice with the expected parameters.


If we then later retrieve this appointment through agent.GetAppointmentEntity(appointment.appointment_id); and update it's properties with a different start & end date and save it through the  appointmentAgent.Save(soApp, SOData.RecurrenceUpdateMode.OnlyThis, sendEmailToParticipants: false, smtpEMailConnectionInfo: null, imapEMailConnectionInfo: null); method. The appointment is not visible in the diary anymore. We checked through the API to see what happened, and it seems the type is modified to Unknown and the dates are to set 1760, as visible in the following screenshot.


We double checked the input that we sent after calling appointmentAgent.Save(), but everything seems correct. I will also attach the exact properties of the appointment at that stage.


Input after updating an existing appointment before they are set to Unknown and dates to 1760, right before the appointmentAgent.Save() call.


{Associate: 

    AssociateId = 6 

    Name = null 

    PersonId = 0 

    Rank = 0 

    Tooltip = null 

    Type = Unknown 

    GroupIdx = 0 

    FullName = null 

    FormalName = null 

    Deleted = False 

    EjUserId = 0 

    UserName = null 

Contact = null 

CreatedBy: 

    AssociateId = 7 

    Name = synchronizerCE 

    PersonId = 0 

    Rank = 0 

    Tooltip =  

    Type = SystemAssociate 

    GroupIdx = 0 

    FullName =  

    FormalName =  

    Deleted = False 

    EjUserId = 0 

    UserName = null 

UpdatedBy = null 

CreatedDate = 29/02/2024 14:38:00 

AppointmentId = 79 

Description = Subject: test

--------------------------------------------------------------------

test

 

Title = null 

Agenda = null 

InternalNotes = null 

StartDate = 29/02/2024 16:00:00 

EndDate = 29/02/2024 16:30:00 

InvitedPerson = null 

Person = null 

MotherId = 0 

Priority = null 

Private = Public 

Project = null 

Type = inDiary 

UpdatedDate = 01/01/0001 00:00:00 

Completed = NotStarted 

ActiveLinks = 0 

Links (Length = 0): 

AlarmLeadTime = 00:15:00 

HasAlarm = True 

ColorIndex = 0 

IsFree = False 

IsAlldayEvent = False 

LagTime = 00:00:00 

LeadTime = 00:00:00 

Location =  

RejectCounter = 0 

RejectReason =  

Recurrence: 

    SuperOffice.CRM.Services.RecurrenceInfoParticipants (Length = 1): 

  Participants[0]: 

      A: 6 P: 10 C: 2 Em: 0 [nomail] I: Accepted email:  desc: AssignmentStatus = None 

InvitationStatus = Accepted 

BookingType = None 

ActiveDate = 29/02/2024 14:38:00 

HasConflict = False 

AssignedBy = null 

MotherAssociate: 

    AssociateId = 6 

    Name = CE 

    PersonId = 10 

    Rank = 0 

    Tooltip =  

    Type = InternalAssociate 

    GroupIdx = 2 

    FullName = Corné Eggebeen 

    FormalName = Corné Eggebeen 

    Deleted = False 

    EjUserId = 5 

    UserName = null 

Task: 

    TaskListItemId = 8 

    Value = Lunch 

    Direction = Unknown 

    Type = Appointment 

    Tooltip =  

    Deleted = False 

    IntentId = 0 

    Rank = 9 

    IsDefaultAlldayEvent = False 

    IsDefaultFree = False 

    IsDefaultPublished = False 

    ColorIndex = LightGreen 

    DefaultVideomeetingStatus = NoChange 

PreferredTZLocation = 0 

PreferredTZLocationData = null 

Sale = null 

SuggestedAppointmentId = 0 

IsMileStone = False 

CautionWarning = OK 

JoinVideomeetUrl = null 

CentralserviceVideomeetId =  

}  


The values in the database are attached in a separate file.


The WCF client package and version that we use to interact with the AppointmentAgent is https://www.nuget.org/packages/SuperOffice.NetServer.Core/10.3.1.759.


It appears that this is only an issue on 10.2.9, since we don't have this issue on 10.1.6 OnSite and online. 



Kommentarer
Can not fix 10.2.9 as it could create even more problems for existing onsite integrations. Fixed in 10.3.3 though.
Detaljer
Problemet id 53654
Registrert 1 mar. 2024
Sist endret 26 mar. 2024
Alvorsgrad Critical
Område Sales
Status Solved
Målversjon SuperOffice 10.3.3
Type Bug