В RubyZoho, как установить Task.related_to Lead.id? - PullRequest
0 голосов
/ 25 апреля 2018

Я написал этот вопрос на форуме RubyZoho, но он там томится, и это такой простой вопрос, который заслуживает более широкой аудитории.

Я использовал RubyZoho для загрузки новой записи Lead в API Zoho CRMи теперь я хочу загрузить задачу с установленным для этого поля "связанный с" полем.

Настройка RubyZoho:

RubyZoho.configure do |config|
  config.api_key = Setting.plugin_redmine_tigase['zoho_authorization_token']
  config.crm_modules = [
      'Leads',
      'Tasks'
  ]
  config.ignore_fields_with_bad_names = true
  config.cache_fields = true
end

Создание запроса:

  lead = RubyZoho::Crm::Lead.new
  lead.first_name = splut.first
  lead.last_name = splut.last
  lead.full_name = params[:name]
  lead.company = params[:company]
  lead.email = params[:mail]
  lead.description = description
  lead.save

Создание задачи:

  found = RubyZoho::Crm::Lead.find_by_email(params[:mail])
  lead = found.first
  task = RubyZoho::Crm::Task.new
  task.related_to = lead.id
  task.subject = params[:subject]
  task.description = description
  task.save

Я попробовал task.related_to = lead.leadid и получил запись задачи с пробелом "related to" на веб-сайте Zoho.И когда я пытаюсь task.related_to = 'Lead'; task.relatedtoid = lead.leadid, я получаю undefined method relatedtoid=, естественно, потому что переменная не имеет установщика.

Так чего мне не хватает?как мне сделать эту простую вещь?

1 Ответ

0 голосов
/ 28 апреля 2018

Если вы посмотрите документацию, в ней есть раздел об этом

https://www.zoho.com/creator/help/script/creating-a-record-in-zoho-crm.html#create-lead

taskInfo = {
"Task Owner" : input.Owner_Name,
"SMOWNERID" : input.Owner_ID,
"Subject" : input.Subject,
"Description" : input.Description,
"SEMODULE" : "Accounts",
"SEID" : input.Account_ID,
"CONTACTID" : input.Contact_ID};
crmResp = zoho.crm.create("Tasks", taskInfo);

SMOWNERID - это идентификатор владельца

SEMODULEможет быть Учетными записями, Лидами или Случаями

SEID - это идентификатор записи, указанной в SEMODULE

CONTACTID - это идентификатор записи контакта

Также, если выпосмотрите на ruby_zoho_rspec для создания нового задания

https://github.com/amalc/rubyzoho/blob/950ffe369252f8fad3e7ae67ebddec859c84e19b/spec/ruby_zoho_spec.rb

it 'should save an task record related to an account' do
VCR.use_cassette 'zoho/task_related_to_account' do
  a = RubyZoho::Crm::Account.all.first
  e = RubyZoho::Crm::Task.new(
      :task_owner => a.account_owner,
      :subject => "Task should be related to #{a.account_name} #{Time.now}",
      :description => 'Nothing',
      :smownerid => "#{a.smownerid}",
      :status => 'Not Started',
      :priority => 'High',
      :send_notification_email => 'False',
      :due_date => '2014-02-16 16:00:00',
      :start_datetime => Time.now.to_s[1, 19],
      :end_datetime => '2014-02-16 16:00:00',
      :related_to => "#{a.account_name}",
      :seid => "#{a.accountid}",
      :semodule => 'Accounts'
  )
  r_expected = e.save
  r = RubyZoho::Crm::Task.find_by_activityid(r_expected.id)
  r.first.subject[0..20].should eq(r_expected.subject[0..20])
end

Так что это должно помочь вам связать его, указав SEMODULE и SEID

...