Внутренняя ошибка метода create appointment

  1. 12-06-2017, 09:12 AM

    #1

    johanolzzon is offline


    Registered User


    Create appointment: Method * of object * Failed / Runt time error

    Hi, I have a problem that stops us from sending appointments to our technichians. I have a macro written in Excel 2016 that create appointments in Outlook (and a lot of other things) which works fine on my computer and others. Now one person has a new computer (also Excel 2016) where everything works except the red rows below.

    With oFolder
    Set olApt = oApp.CreateItem(olAppointmentItem)
    olApt.MeetingStatus = olMeeting
    With olApt
    .Start = Cells(6, 3).Value + Cells(8, 3)
    .End = Cells(6, 3) + DateAdd(«n», Cells(10, 3).Value, Cells(8, 3))
    .Subject = SR + » » + Cells(12, 6) + » » + Cells(8, 6)

    .Location = Cells(10, 6)
    .Body = Cells(6, 6) + vbNewLine + vbNewLine + Cells(16, 3)
    .BusyStatus = olFree
    .ReminderMinutesBeforeStart = Cells(12, 3)
    .ReminderSet = True

    ‘ get the recipients
    Dim RequiredAttendee, OptionalAttendee, ResourceAttendee As Outlook.Recipient
    Set RequiredAttendee = .Recipients.Add(Cells(14, 3).Value)
    RequiredAttendee.Type = olRequired
    ‘Display ‘Ta bort denna om bokningen ska skickas automatiskt
    .Send
    .Save
    .Move oFolder
    End With

    We get an error message:
    «Run-time error ‘-2147417851 (80010105)’:
    Method ‘Location’ of object ‘_AppointmentItem’ failed

    I have googled and I found a lot of matches but havn’t been able to solve it. Does anybody know what I can do or have any suggestions?

    Thank you in advance,
    Johan


  2. 12-06-2017, 09:18 AM

    #2

    Re: Create appointment: Method * of object * Failed / Runt time error

    Hi,

    What’s the actual value of Cells(10, 6) when the code is running? (tested via debug.print rather than by what you think it should be )

    Don
    Please remember to mark your thread ‘Solved’ when appropriate.


  3. 12-06-2017, 09:52 AM

    #3

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    Thanks for you reply. I added the code Debug.Print Cells(10, 6) above .Location = Cells(10, 6). When I step through the immediate window says e.g. «Bollbrogatan 1 257 33 Helsingborg» which is the correct street and postal address.


  4. 12-06-2017, 10:03 AM

    #4

    Re: Create appointment: Method * of object * Failed / Runt time error

    Are you testing that on the machine where the code fails?


  5. 12-06-2017, 10:06 AM

    #5

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    Very strange. In one of my hundreds of googling I found someone who wrote that if they register the string as a variable and then add it to location (or the To-address in that example) it would work. And actually it did. I added before the «With»:
    Location = Cells(10,6)
    and then in the With:
    .Location = Location
    And it worked!
    If anyone knows why that matters I would be pleased to now. For me it should be the same thing but obviously it’s not.


  6. 12-06-2017, 10:09 AM

    #6

    Re: Create appointment: Method * of object * Failed / Runt time error

    That is indeed strange! Out of curiosity, does this also work


  7. 12-07-2017, 07:05 AM

    #7

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    You’re a genius! Yes, that also worked. So Excel didn’t interpret my address in the cells as strings? The cells are all formatted as General. Your conversion did the trick.


Я пытаюсь создать запись из формы. Я использовал railscast 136 как наземную работу. Когда я пытаюсь представить, я получаю 500 ошибок для частичного отсутствия. Я создал коррелированный просмотр javascript контроллера, но он запрашивает представление с тем же именем, что и модель.

сообщение об ошибке

Представленные встречи /create.js.erb(3,8 мс) Завершено 500 внутренних Ошибка сервера в 12 мс

ActionView:: Template:: Error (Отсутствие частичных назначений/назначение с {: locale = > [: en],: formats = > [: js,: html],: handlers = > [: erb,: builder,: coffee]}. Поиск: * «/Пользователи/gjores/Sites/Rails/verkstad_test/app/views» ):     1: $(‘# встречи’). Append (‘<% = j render (@appointment)% > ‘); Приложение/просмотров/назначения/create.js.erb: 1: в _app_views_appointments_create_js_erb___2325925946390315228_70273089113920'
app/controllers/appointments_controller.rb:16:in
создать

контроллер

 def create
    @appointment = Appointment.new(params[:appointment])
    if @appointment.save
      respond_to do |format|
        format.html { redirect_to new_appointment_path, :notice => "Successfully created appointment." }
        format.js
      end
    else
      render :action => 'new'
    end
  end

<сильные > назначения /new.html.erb

<div id="appointments">
    <%= render 'shared/appointment_part' %>
</div>
<% title "New Appointment" %>
<table>
<% @students.each do |s| %>
<%= form_for @appointment,  :remote => true do |f|%>
  <%= f.error_messages %>
  <tr>  
    <td><%= s.name %></td>
    <td><%= f.label :week %></td>
    <td><%= f.number_field :week %></td>
    <td><%= f.label :teacher_id %></td>
    <td><%= f.collection_select(:teacher_id, Teacher.all, :id, :name) %></td>
    <%= f.hidden_field :student_id, :value => s.id %>

  <td><%= f.submit %></td>
  </tr>
<% end %>
<% end -%>
</table>

<p><%= link_to "Back to List", appointments_path %></p>

<сильные > назначения /create.js.erb

$('#appointments').append('<%= j render(@appointment) %>');

Маршруты

    appointments GET    /appointments(.:format)          appointments#index
                 POST   /appointments(.:format)          appointments#create
 new_appointment GET    /appointments/new(.:format)      appointments#new
edit_appointment GET    /appointments/:id/edit(.:format) appointments#edit
     appointment GET    /appointments/:id(.:format)      appointments#show
                 PUT    /appointments/:id(.:format)      appointments#update
                 DELETE /appointments/:id(.:format)      appointments#destroy
        teachers GET    /teachers(.:format)              teachers#index
                 POST   /teachers(.:format)              teachers#create
     new_teacher GET    /teachers/new(.:format)          teachers#new
    edit_teacher GET    /teachers/:id/edit(.:format)     teachers#edit
         teacher GET    /teachers/:id(.:format)          teachers#show
                 PUT    /teachers/:id(.:format)          teachers#update
                 DELETE /teachers/:id(.:format)          teachers#destroy
 notice_students POST   /students/notice(.:format)       students#notice
        students GET    /students(.:format)              students#index
                 POST   /students(.:format)              students#create
     new_student GET    /students/new(.:format)          students#new
    edit_student GET    /students/:id/edit(.:format)     students#edit
         student GET    /students/:id(.:format)          students#show
                 PUT    /students/:id(.:format)          students#update
                 DELETE /students/:id(.:format)          students#destroy

I’m trying to create a record from a form. I’ve used railscast 136 as ground work. When I trying to submit I get a 500 error for missing partial. I’ve created the controller correlated javascript view but it is requesting a view with the same name as the model.

error message

Rendered appointments/create.js.erb (3.8ms) Completed 500 Internal
Server Error in 12ms

ActionView::Template::Error (Missing partial appointments/appointment
with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb,
:builder, :coffee]}. Searched in: *
«/Users/gjores/Sites/Rails/verkstad_test/app/views» ):
1: $(‘#appointments’).append(‘<%= j render(@appointment) %>’); app/views/appointments/create.js.erb:1:in
_app_views_appointments_create_js_erb___2325925946390315228_70273089113920'
app/controllers/appointments_controller.rb:16:in
create’

Controller

 def create
    @appointment = Appointment.new(params[:appointment])
    if @appointment.save
      respond_to do |format|
        format.html { redirect_to new_appointment_path, :notice => "Successfully created appointment." }
        format.js
      end
    else
      render :action => 'new'
    end
  end

appointments/new.html.erb

<div id="appointments">
    <%= render 'shared/appointment_part' %>
</div>
<% title "New Appointment" %>
<table>
<% @students.each do |s| %>
<%= form_for @appointment,  :remote => true do |f|%>
  <%= f.error_messages %>
  <tr>  
    <td><%= s.name %></td>
    <td><%= f.label :week %></td>
    <td><%= f.number_field :week %></td>
    <td><%= f.label :teacher_id %></td>
    <td><%= f.collection_select(:teacher_id, Teacher.all, :id, :name) %></td>
    <%= f.hidden_field :student_id, :value => s.id %>

  <td><%= f.submit %></td>
  </tr>
<% end %>
<% end -%>
</table>

<p><%= link_to "Back to List", appointments_path %></p>

appointments/create.js.erb

$('#appointments').append('<%= j render(@appointment) %>');

Routes

    appointments GET    /appointments(.:format)          appointments#index
                 POST   /appointments(.:format)          appointments#create
 new_appointment GET    /appointments/new(.:format)      appointments#new
edit_appointment GET    /appointments/:id/edit(.:format) appointments#edit
     appointment GET    /appointments/:id(.:format)      appointments#show
                 PUT    /appointments/:id(.:format)      appointments#update
                 DELETE /appointments/:id(.:format)      appointments#destroy
        teachers GET    /teachers(.:format)              teachers#index
                 POST   /teachers(.:format)              teachers#create
     new_teacher GET    /teachers/new(.:format)          teachers#new
    edit_teacher GET    /teachers/:id/edit(.:format)     teachers#edit
         teacher GET    /teachers/:id(.:format)          teachers#show
                 PUT    /teachers/:id(.:format)          teachers#update
                 DELETE /teachers/:id(.:format)          teachers#destroy
 notice_students POST   /students/notice(.:format)       students#notice
        students GET    /students(.:format)              students#index
                 POST   /students(.:format)              students#create
     new_student GET    /students/new(.:format)          students#new
    edit_student GET    /students/:id/edit(.:format)     students#edit
         student GET    /students/:id(.:format)          students#show
                 PUT    /students/:id(.:format)          students#update
                 DELETE /students/:id(.:format)          students#destroy

Hi all,

I have a strange behavior on our Exchange Server. We have a program that invokes a CDOEX script code to create an appointment
on a user calendar inviting other users.

This was working for months until a few days ago.

The application has started giving us an error and then we isolate the problem, making an ASP script to reproduce the error.

So the error that is giving us is the following:

Sending appointment to http://OurExchangeServer/exchange/appmailbox@mycompany.com/Calendar

CDO.Appointment.1
error ‘80004005’

Unspecified error

/testcdo.asp, line 79

———————————————————

This is the line where it is giving the error:

call loAppointment.DataSource.SaveToContainer(«http://» & lcServer & «/exchange/» & lcorganizer
& «/Calendar»,,,,, lcuser , lcpass)

——————————————————————-

Can you please give me a clue on what can cause this? There was no changes in the server…

Our server is an Exchange Server 2003 Enterprise with SP2

Thank you very much in advance!

DB

——————————————————————

The ASP cdo Code that is behind is:

<% @ Language = VBScript %>

<% Response.Buffer = True %>

<% Response.Expires = -1 %>

<%

                              
Dim lddatetime, lddateend, lcsubject, lclocation, lcbody

                              
Dim loAppointment, lcUtcDateStart, lcUtcDateEnd, ldLocalDateStart, ldLocalDateEnd

                              
dim loattendee, lcOrganizer, lcAttendee, loConfig

                              
Dim lcserver, lcAccountname, lcpass, lcuser

                                              
lcOrganizer = «
appmailbox@mycompany.com«

                                              
lcserver = «
OurExchangeServer«

                                              
lcAccountname = «
appmailboxuser«

                                              
lcpass = «******»

                                              
lcuser = «OurDomainappmailboxuser»

                              
set loConfig = server.CREATEOBJECT(«CDO.Configuration»)

                              
loConfig.Fields(«CalendarLocation») = «http://» & lcserver & «/Exchange/» +lcOrganizer 
+ «/Calendar»

                              
‘ loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/sendusing»)         
=  2

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpserver»)        
= lcserver

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpaccountname»)   
= lcAccountname

                              
‘ loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpauthenticate»)  
=  1

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/sendusername»)      
= lcuser

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/sendpassword»)      
= lcpass

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/sendemailaddress»)  
= lcOrganizer

                              
loConfig.Fields(«http://schemas.microsoft.com/cdo/configuration/smtpusessl»)        
= false

                              
call loConfig.Fields.Update()

                              
set loAppointment = server.CreateObject(«CDO.Appointment»)

                              
set loAppointment.Configuration = loConfig

                              
lcsubject = «test calendar subject»

                              
lclocation = «room»

                              
tcbody = «test calendar»

               
if 1=2 then

                              
loAppointment.StartTime =  cdate(«2010-08-31 13:00:00»)

                              
loAppointment.EndTime            
=  cdate(«2010-08-31 14:00:00»)

                              
loAppointment.Location            
= «room 111»

                              
loAppointment.Subject              
= «test calendar subject»

                              
loAppointment.AllDayEvent = false

                              
loAppointment.textBody = «test»

                              
lcAttendee = «attendee1@mycompany.com»

                              
set loattendee = loAppointment.Attendees.Add

                              
loattendee.isOrganizer = true

                              
loattendee.Address = lcOrganizer

                              
loattendee.Role = 0                                                                                                                                                                   
               
‘ cdoRequiredParticipant

                              
loattendee.Type = «Individual»

                              
set loattendee = loAppointment.Attendees.Add

                              
loattendee.isOrganizer = true

                              
loattendee.Address = » attendee1@mycompany.com «

                              
loattendee.Role = 0                                                                                                                                                                   
               
‘ cdoRequiredParticipant

                              
loattendee.Type = «Individual»

end if                   

                              
response.write «Sending appointment to http://» & lcServer & «/exchange/» & lcorganizer & «/Calendar»

                              
call loAppointment.DataSource.SaveToContainer(«http://» & lcServer & «/exchange/» & lcorganizer & «/Calendar»,,,,, lcuser , lcpass)

%>

Я создал форму создания записи на прием и форму бронирования записи на прием, когда бы я ни вошел в систему как врач или пользователь и попытался создать или забронировать запись на прием соответственно, он показывает мне ошибку после того, как я нажимаю копировать/вставить вид, чтобы узнать ошибку, которую я не получаю, пожалуйста, помогите мне. ниже приведена ошибка и код.

Request Method: GET
Request URL: http://127.0.0.1:8000/appointment/create-appointment/

Django Version: 3.2.7
Python Version: 3.9.6
Installed Applications:
['m1.apps.M1Config',
 'authenticate_me.apps.LoginModuleConfig',
 'appointment.apps.AppointmentConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Traceback (most recent call last):
  File "C:UsersAshrafAppDataLocalProgramsPythonPython39libsite-packagesdjangocorehandlersexception.py", line 47, in inner
    response = get_response(request)
  File "C:UsersAshrafAppDataLocalProgramsPythonPython39libsite-packagesdjangoutilsdeprecation.py", line 119, in __call__
    response = self.process_response(request, response)
  File "C:UsersAshrafAppDataLocalProgramsPythonPython39libsite-packagesdjangomiddlewareclickjacking.py", line 26, in process_response
    if response.get('X-Frame-Options') is not None:

Exception Type: AttributeError at /appointment/create-appointment/
Exception Value: '__proxy__' object has no attribute 'get'

код:

class AppointmentCreateView(CreateView):
    template_name = 'appointment/create-appointment.html'
    form_class = CreateAppointmentForm
    extra_context = {
        'title': 'Post New Appointment'
    }
    success_url = reverse_lazy('appointment:home1')

    @method_decorator(login_required(login_url=reverse_lazy('authenticate_me:login')))
    def dispatch(self, request, *args, **kwargs):
        if not self.request.user.is_authenticated:
            return reverse_lazy('authenticate_me:login')
        if self.request.user.is_authenticated and self.request.user.is_doctor:
            return reverse_lazy('authenticate_me:login')
        return super().dispatch(self.request, *args, **kwargs)

    def form_valid(self, form):
        form.instance.user = self.request.user
        return super(AppointmentCreateView, self).form_valid(form)

    def post(self, request, *args, **kwargs):
        self.object = None
        form = self.get_form()
        if form.is_valid():
            return self.form_valid(form)
        else:
            return self.form_invalid(form)

и для книжного назначения у меня был похожий код, только с другими формами и таблицей.

models.py:

class Appointment(models.Model):

    department =(
    ('Dentistry',"Dentistry"),
    ('gynaecology',"gynaecology"),
    ('obstetrics',"obstetrics"),
    ('neurology',"neurology"),
    ('cardiology',"cardiology"),
    ('orthopaedics',"orthopaedics"),
    (' eye-care'," eye-care"), 
)

    user = models.ForeignKey(User,on_delete=models.CASCADE)
    full_name = models.CharField(max_length=100)
    image = models.ImageField(null=True, blank=True)
    location = models.CharField(max_length=100)
    start_time = models.CharField(max_length=10)
    end_time = models.CharField(max_length=10)
    hospital_name = models.CharField(max_length=100)
    department = models.CharField(choices=department, max_length=100)
    qualification_name = models.CharField(max_length=100)
    created_at = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.full_name

class BookAppointment(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    appointment = models.ForeignKey(Appointment, on_delete=models.CASCADE)
    full_name = models.CharField(max_length=100)
    message = models.TextField()
    phone_number = models.CharField(max_length=120)
    date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.full_name

У меня была проблема в python manage.py migrate модели в приложении appointment не мигрировали, поэтому я перенес свои модели в приложение authenticate, и оно создало db

Вернуться на верх

Set olAppItem = olApp.CreateItem(olAppointmentItem)

Assuming you’re late-binding the Outlook library, the constant olAppointmentItem is not defined, so if you specify Option Explicit at the top of the module the VBE will highlight if as undeclared.

I copied your code into ThisWorkbook in an empty workbook, and ran Rubberduck code inspections (disclaimer: I manage that open-source project; it’s completely free, and it’s improving every day).

code inspection results

These results are particularly relevant to your problem:

Error: Option Explicit is not specified in 'ThisWorkbook' - (Book3) VBAProject.ThisWorkbook, line 1
Error: Variable 'olAppointmentItem' is used but not assigned - (Book3) VBAProject.ThisWorkbook, line 16
Error: Variable 'olFree' is used but not assigned - (Book3) VBAProject.ThisWorkbook, line 23
Error: Local variable 'olAppointmentItem' is not declared - (Book3) VBAProject.ThisWorkbook, line 16
Error: Local variable 'olFree' is not declared - (Book3) VBAProject.ThisWorkbook, line 23

The underlying value of olFree in the Outlook library is 0, so that’s not a big deal as far as run-time errors are concerned.

However olAppointmentItem not being defined is pretty big: you think you’re working against an AppointmentItem object, but because the underlying value of olAppointmentItem in the Outlook library is 1 and you’re providing a 0, the runtime type of olAppItem is actually a MailItem.

And because a MailItem doesn’t have a Location property, attempting to set it will raise that run-time error 438 you’re getting — «object doesn’t support this property or method».

Therefore, you should be creating the olAppItem like this:

Set olAppItem = olApp.CreateItem(1)

Or, define the olAppointmentItem constant:

Const olAppointmentItem As Long = 1
Set olAppItem = olApp.CreateItem(olAppointmentItem)

Or, reference the Outlook object model (Tools > References…), replace As Object with the actual types you want to be using (olApp As Outlook.Application, olAppItem As AppointmentItem), and then the olAppointmentItem and olFree constants will be taken from the Outlook library.

I’ll skip the other inspection results because they’re not relevant to that specific question, but you’ll notice a number of dead variables there.

I’ve created custom connector using the Booking API. When trying to create an appointment, I get the following error: 

{

  «error»: {

    «code»: «InvalidModel»,

    «message»: «changes: Cannot create an abstract class.»,

    «innerError»: {

      «date»: «2022-03-24T04:03:32»,

      «request-id»: «8bd7b2c5-e8bc-4077-affa-e7029261cce4»,

      «client-request-id»: «8bd7b2c5-e8bc-4077-affa-e7029261cce4»

    }

  }

}

This error only occurs when I add an existing customer (customerid) to the appointment but if I let the customerid blank, the flow works. Unfortunately, it is useless since I need the appointment to include the customer. 

Any help is appreciated…

VB Code:
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
myItem.Subject = «Strategy Meeting»
myItem.Location = «Conference Room B»
myItem.Start = #9/24/2002 1:30:00 PM#
myItem.Duration = 90

My java code:
ActiveXComponent axOutlook = new ActiveXComponent(«Outlook.Application»);
// 1 AppointmentItem
Dispatch appointmentItem = Dispatch.call(axOutlook, «CreateItem», 1).toDispatch();

Dispatch.call(appointmentItem, «Subject»).putString(«Test Add Appointment From Java»);
Dispatch.call(appointmentItem, «Location»).putString(«Office»);
Dispatch.call(appointmentItem, «Start»).putDate(new Date();
Dispatch.call(appointmentItem, «Duration»).putLong(60L);
Dispatch.call(appointmentItem, «Body»).putString(«Hello! Can you see me?»);
Dispatch.call(appointmentItem, «Importance»).putInt(2); //2 high。

Dispatch.call(appointmentItem, «Save»);

=====================================
Run above java code successfully, but it generate a blank appointment—no subject,no location,no body,and default duration and so on.

So, What’s wrong with my code? Thanks!

The super awesome workflow tool Nintex comes with many inbuilt actions, in-fact you can find solution to most of your problems here. You just need to configure them.

“Create Appointment” Action under User Interaction section is one of them.

I had this requirement to create an appointment/meeting using the workflow. I got this straight-forward action – Create appointment. The configuration goes like this

Appt1

Appt2

Ensure that the URL’s (“https://[Exchange Server]/ews/exchange.asmx”) [Exchange Server] is replaced by your organization’s exchange server’s URL.

And you’re done with the configuration. Publish your workflow and create appointments using it.

But what is it, I keep getting this error in my workflow – The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

So, some research led to my below findings

This error is caused by the SSL certificate on the destination web service not being valid.  Three possible reasons being:

•    The certificate was generated by an untrusted source
•    The certificate has expired
•    The certificate name does not match the URL used to access the Web service

You can check the existing trust certificates in Central Administration > Security > Manage Trust

Now to solve this error, you need to install the root certificates into ‘SharePoint Root Authority’ as SharePoint out-of-the-box only trusts its own self signed certificate called ‘local’.  To do this, run this SharePoint power shell command – which will add all the root certificates on the local machines into SharePoint:

foreach ($cert in (Get-ChildItem cert:LocalMachineRoot)) 
{
    if (!$cert.HasPrivateKey)
    {
        New-SPTrustedRootAuthority -Name $cert.Thumbprint -Certificate $cert 
    } 
}

Now it is done!
You can check the new trust certificates that have been added now again in Central Administration > Security > Manage Trust

Yoohooo!!! Now the appointment gets created.

You can check your outlook calendar, it is blocked. Also, the recipients will receive the email.

Метод CreateAppointment

Таблица – Общие сведения

Код операции: CreateAppointment
Наименование операции: Создание записи пациента на прием к врачу
Назначение операции: Позволяет создать заявление записи на прием

По входным параметрам РМИС должна создать запись на прием, если время свободно.

Таблица – Входные данные: CreateAppointment

 № Код параметра Описание параметра Обязательность Способ заполнения/Тип Комментарий
1 Session_ID Идентификатор сессии + Session_ID: string
2 Slot_Id Идентификатор слота + Slot_Id:guid Заполняется, если данные были предоставлены в ответе метода GetScheduleInfo

Таблица — Выходные данные: CreateAppointment

Код параметра Описание параметра Обязательность Способ заполнения/Тип Комментарий
1 Session_ID Идентификатор сессии + Session_ID: string
2 Book_Id _Mis Идентификатор записи на прием в МИС + Book_Id_Mis: string
3 Status_Code Код статуса записи + Status_Code: enum 0 – ОК, 1 – Ошибка, 2-7 (описание приведено вТаблица )
4 Comment Состояние статуса записи + Comment:string В случае если значение Status_Code = 2-7, поле заполняется обязательно. Соответствия описаны в Таблица
5 Slot_Id Идентификатор слота + Slot_Id:guid
6 VisitTime Дата и время приема + VisitTime: Datetime

Описание кодов ошибок

Коды ошибок, возникающие при вызове метода сервиса , приведены в таблице (Таблица ).

Таблица — Коды ошибок для метода CreateAppointment

Значение поля Code Значение поля Comment Описание события
2 Извините, запись невозможна. Время уже занято другим пациентом. Выберите другое время. Отказ. Время занято
3 Извините, запись невозможна. Пациент уже записан к врачу <ФИО врача> в кабинет <название кабинета> на услугу <название услуги> в этот день: <дата записи в формате дд.мм.гггг чч:мм>. Полную информацию об этой записи Вы можете посмотреть в Личном кабинете. Пациент уже записан к данному специалисту на указанную услугу в этот день
4 Извините, запись невозможна. Данная услуга посмертно не оказывается. Услуга не оказывается посмертно
5 Извините, запись невозможна. Пациент уже записан на это время к другому специалисту. Выберите другое время. Пациент уже записан на это время к другому специалисту 
6 Извините, запись невозможна. Выбранное время доступно только для записи пациентов в возрасте {0}. Выберите другое время. Выбранное время доступно для записи пациентов в определенном возрасте. Ограничение на возраст
7 Извините, запись невозможна. Время начала приема уже прошло. Выберите другое время. Время начала приема уже прошло

Метод CancelAppointment

Таблица – Общие сведения

Код операции: CancelAppointment
Наименование операции: Отмена ранее созданной записи на прием к врачу
Назначение операции: Позволяет отменить ранее поданное заявление записи на прием

По входным параметрам РМИС должна отменить ранее созданную запись на прием.

Таблица – Входные данные:CancelAppointment

Код параметра Описание параметра Обязательность Способ заполнения/Тип Комментарий
1 Book_Id _Mis Идентификатор записи на прием в РМИС + Book_Id _Mis: string

Таблица – Выходные данные:CancelAppointment

Код параметра Описание параметра Обязательность Способ заполнения/Тип Комментарий
1 Book_Id _Mis Идентификатор записи на прием в МИС + Book_Id _Mis: string
2 Status_Code Код статуса отмены + Status_Code: enum 0 – успешное завершение операции; 1 – внутренняя ошибка системы, 2 – отказ в проведении операции
3 Comment Состояние статуса отмены + Comment:string В случае если значение Status_Code = 2, то поле заполняется обязательно с указанием причины отказа 

WSDL

К данному документу приложены WSDL файлы с описанием сервиса и всех используемых в нем типов данных.

The representation of a GUID, generally the id of an element.

Идентификация пациентаИдентификатор сессииИнформация по анализуПолучение списка МО, доступных пользователю для записиИдентификатор сессииСписок МО, доступных пользователю для записиИдентификатор сессииСписок МОСписок МОИдентификатор МО\подразделенияНаименование МОАдрес МОКонтактный телефон МО (регистратура)ОшибкаИнформация об ошибкеОКпо запросу данных не найденовнутренняя ошибка системыистекло время ожидания сессииТекстовое описание ошибкиСписок МО, доступных пользователю для записиИдентификатор сессииСписок специальностей или услугПараметры специальности или услугиИдентификатор специальности или услугиНаименование специальности или услугиОшибкаИнформация об ошибкеОКпо запросу данных не найденовнутренняя ошибка системыистекло время ожидания сессииТекстовое описание ошибкиСписок доступных для пациента ресурсов выбранной ранее медицинской специальности или услугиИдентификатор сессииСписок ресурсовПараметры ресурсаИдентификатор ресурсаНаименование ресурсаОшибкаИнформация об ошибкеОКпо запросу данных не найденовнутренняя ошибка системыистекло время ожидания сессииТекстовое описание ошибкиРасписание прима и свободного времени для записи на прием выбранного ресурсаИдентификатор сессииРасписание ресурсаПараметры слотовИдентификатор слотаДата и Время приемаОшибкаИнформация об ошибкеОКпо запросу данных не найденовнутренняя ошибка системыистекло время ожидания сессииТекстовое описание ошибкиРезультат создания записи на прием к врачуИдентификатор сессииИдентификатор записи на прием в РМИСОКОшибкаОтказ. Время занятоПациент уже записан к данному специалисту на указанную услугу в этот деньУслуга не оказывается посмертноПациент уже записан на это время к другому специалистуВыбранное время доступно для записи пациентов в определенном возрасте. Ограничение на возраст.Время начала приема уже прошло.Состояние статуса записиИдентификатор слотаДата и Время приемаРезультат отмены записи на прием к врачуИдентификатор записи на прием в РМИСОКошибкаотказСостояние статуса отменыЗапрос на получение списка профилей услуг, оказываемых в выбранной МОИдентификатор сессииИдентификатор МОЗапрос на получение ресурсов по выбранному профилюИдентификатор сессииИдентификатор выбранной специальности или услугиЗапрос на получение графика работы выбранного ресурсаИдентификатор сессииИдентификатор ресурсаДата, с которой необходимо начать формировать расписаниеДата, по которую необходимо формировать расписаниеВремя, с которого необходимо формировать расписаниеВремя, по которое необходимо формировать расписаниеЗапрос на запись пользователя на приемИдентификатор сессииИдентификатор слотаЗапрос на отмену записи пользователя на приемИдентификатор записи на прием в РМИСЛичные данные пациентаНомер полиса ОМС пациентаСерия полиса ОМС пациентаСНИЛС пациентаИмя пациентаФамилия пациентаОтчество пациентаstubПол пациентаe-mail адрес заявителяТелефон заявителяРезультат идентификации пациентаИдентификатор сессииИдентификатор пациента в РМИСОшибкаИнформация об ошибкеОКпо запросу данных не найденовнутренняя ошибка системыистекло время ожидания сессиинайдено более одного пациента с таким даннымиТекстовое описание ошибки

  1. 12-06-2017, 09:12 AM


    #1

    johanolzzon is offline


    Registered User


    Create appointment: Method * of object * Failed / Runt time error

    Hi, I have a problem that stops us from sending appointments to our technichians. I have a macro written in Excel 2016 that create appointments in Outlook (and a lot of other things) which works fine on my computer and others. Now one person has a new computer (also Excel 2016) where everything works except the red rows below.

    With oFolder
    Set olApt = oApp.CreateItem(olAppointmentItem)
    olApt.MeetingStatus = olMeeting
    With olApt
    .Start = Cells(6, 3).Value + Cells(8, 3)
    .End = Cells(6, 3) + DateAdd(«n», Cells(10, 3).Value, Cells(8, 3))
    .Subject = SR + » » + Cells(12, 6) + » » + Cells(8, 6)

    .Location = Cells(10, 6)
    .Body = Cells(6, 6) + vbNewLine + vbNewLine + Cells(16, 3)
    .BusyStatus = olFree
    .ReminderMinutesBeforeStart = Cells(12, 3)
    .ReminderSet = True

    ‘ get the recipients
    Dim RequiredAttendee, OptionalAttendee, ResourceAttendee As Outlook.Recipient
    Set RequiredAttendee = .Recipients.Add(Cells(14, 3).Value)
    RequiredAttendee.Type = olRequired
    ‘Display ‘Ta bort denna om bokningen ska skickas automatiskt
    .Send
    .Save
    .Move oFolder
    End With

    We get an error message:
    «Run-time error ‘-2147417851 (80010105)’:
    Method ‘Location’ of object ‘_AppointmentItem’ failed

    I have googled and I found a lot of matches but havn’t been able to solve it. Does anybody know what I can do or have any suggestions?

    Thank you in advance,
    Johan


  2. 12-06-2017, 09:18 AM


    #2

    Re: Create appointment: Method * of object * Failed / Runt time error

    Hi,

    What’s the actual value of Cells(10, 6) when the code is running? (tested via debug.print rather than by what you think it should be )

    Don
    Please remember to mark your thread ‘Solved’ when appropriate.


  3. 12-06-2017, 09:52 AM


    #3

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    Thanks for you reply. I added the code Debug.Print Cells(10, 6) above .Location = Cells(10, 6). When I step through the immediate window says e.g. «Bollbrogatan 1 257 33 Helsingborg» which is the correct street and postal address.


  4. 12-06-2017, 10:03 AM


    #4

    Re: Create appointment: Method * of object * Failed / Runt time error

    Are you testing that on the machine where the code fails?


  5. 12-06-2017, 10:06 AM


    #5

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    Very strange. In one of my hundreds of googling I found someone who wrote that if they register the string as a variable and then add it to location (or the To-address in that example) it would work. And actually it did. I added before the «With»:
    Location = Cells(10,6)
    and then in the With:
    .Location = Location
    And it worked!
    If anyone knows why that matters I would be pleased to now. For me it should be the same thing but obviously it’s not.


  6. 12-06-2017, 10:09 AM


    #6

    Re: Create appointment: Method * of object * Failed / Runt time error

    That is indeed strange! Out of curiosity, does this also work


  7. 12-07-2017, 07:05 AM


    #7

    johanolzzon is offline


    Registered User


    Re: Create appointment: Method * of object * Failed / Runt time error

    You’re a genius! Yes, that also worked. So Excel didn’t interpret my address in the cells as strings? The cells are all formatted as General. Your conversion did the trick.


Я пытаюсь создать запись из формы. Я использовал railscast 136 как наземную работу. Когда я пытаюсь представить, я получаю 500 ошибок для частичного отсутствия. Я создал коррелированный просмотр javascript контроллера, но он запрашивает представление с тем же именем, что и модель.

сообщение об ошибке

Представленные встречи /create.js.erb(3,8 мс) Завершено 500 внутренних Ошибка сервера в 12 мс

ActionView:: Template:: Error (Отсутствие частичных назначений/назначение с {: locale = > [: en],: formats = > [: js,: html],: handlers = > [: erb,: builder,: coffee]}. Поиск: * «/Пользователи/gjores/Sites/Rails/verkstad_test/app/views» ):     1: $(‘# встречи’). Append (‘<% = j render (@appointment)% > ‘); Приложение/просмотров/назначения/create.js.erb: 1: в _app_views_appointments_create_js_erb___2325925946390315228_70273089113920'
app/controllers/appointments_controller.rb:16:in
создать

контроллер

 def create
    @appointment = Appointment.new(params[:appointment])
    if @appointment.save
      respond_to do |format|
        format.html { redirect_to new_appointment_path, :notice => "Successfully created appointment." }
        format.js
      end
    else
      render :action => 'new'
    end
  end

<сильные > назначения /new.html.erb

<div id="appointments">
    <%= render 'shared/appointment_part' %>
</div>
<% title "New Appointment" %>
<table>
<% @students.each do |s| %>
<%= form_for @appointment,  :remote => true do |f|%>
  <%= f.error_messages %>
  <tr>  
    <td><%= s.name %></td>
    <td><%= f.label :week %></td>
    <td><%= f.number_field :week %></td>
    <td><%= f.label :teacher_id %></td>
    <td><%= f.collection_select(:teacher_id, Teacher.all, :id, :name) %></td>
    <%= f.hidden_field :student_id, :value => s.id %>

  <td><%= f.submit %></td>
  </tr>
<% end %>
<% end -%>
</table>

<p><%= link_to "Back to List", appointments_path %></p>

<сильные > назначения /create.js.erb

$('#appointments').append('<%= j render(@appointment) %>');

Маршруты

    appointments GET    /appointments(.:format)          appointments#index
                 POST   /appointments(.:format)          appointments#create
 new_appointment GET    /appointments/new(.:format)      appointments#new
edit_appointment GET    /appointments/:id/edit(.:format) appointments#edit
     appointment GET    /appointments/:id(.:format)      appointments#show
                 PUT    /appointments/:id(.:format)      appointments#update
                 DELETE /appointments/:id(.:format)      appointments#destroy
        teachers GET    /teachers(.:format)              teachers#index
                 POST   /teachers(.:format)              teachers#create
     new_teacher GET    /teachers/new(.:format)          teachers#new
    edit_teacher GET    /teachers/:id/edit(.:format)     teachers#edit
         teacher GET    /teachers/:id(.:format)          teachers#show
                 PUT    /teachers/:id(.:format)          teachers#update
                 DELETE /teachers/:id(.:format)          teachers#destroy
 notice_students POST   /students/notice(.:format)       students#notice
        students GET    /students(.:format)              students#index
                 POST   /students(.:format)              students#create
     new_student GET    /students/new(.:format)          students#new
    edit_student GET    /students/:id/edit(.:format)     students#edit
         student GET    /students/:id(.:format)          students#show
                 PUT    /students/:id(.:format)          students#update
                 DELETE /students/:id(.:format)          students#destroy

I’ve created custom connector using the Booking API. When trying to create an appointment, I get the following error: 

{

  «error»: {

    «code»: «InvalidModel»,

    «message»: «changes: Cannot create an abstract class.»,

    «innerError»: {

      «date»: «2022-03-24T04:03:32»,

      «request-id»: «8bd7b2c5-e8bc-4077-affa-e7029261cce4»,

      «client-request-id»: «8bd7b2c5-e8bc-4077-affa-e7029261cce4»

    }

  }

}

This error only occurs when I add an existing customer (customerid) to the appointment but if I let the customerid blank, the flow works. Unfortunately, it is useless since I need the appointment to include the customer. 

Any help is appreciated…

Понравилась статья? Поделить с друзьями:
  • Внутренняя ошибка библиотеки portal gov by
  • Внутренняя ошибка майкрософт стор
  • Внутренняя ошибка extract temporary file size the file
  • Внутренняя ошибка библиотеки при отправке эсчф
  • Внутренняя ошибка библиотеки cxa