forum.bitel.ru http://forum.bitel.ru/ |
|
Копирование параметров договора в процесс (CRM:CLOSED) http://forum.bitel.ru/viewtopic.php?f=49&t=13243 |
Страница 1 из 1 |
Автор: | lexusrid [ 06 мар 2019, 11:18 ] |
Заголовок сообщения: | Копирование параметров договора в процесс |
Добрый день. Подскажите, существует ли возможность копировать из привязанного договора BGBilling телефонный параметр в параметр процесса, на примере того, как это реализовано с адресным параметром? |
Автор: | Администратор [ 11 мар 2019, 16:33 ] |
Заголовок сообщения: | Re: Телефонный параметр |
В какой момент? При создании процесса привязанного к договору? |
Автор: | lexusrid [ 11 мар 2019, 16:37 ] |
Заголовок сообщения: | Re: Телефонный параметр |
Да, именно тогда. При привязке договора к процессу |
Автор: | Администратор [ 15 мар 2019, 19:55 ] |
Заголовок сообщения: | Re: Телефонный параметр (CRM) |
Для чего вы копируете все параметры отдельно? Не лучше ли в описание процесса всё собрать кроме адреса? |
Автор: | lexusrid [ 15 мар 2019, 20:57 ] |
Заголовок сообщения: | Re: Телефонный параметр (CRM) |
Ну а почему тогда адрес отдельно вынесен, давайте и его тогда в описании писать. |
Автор: | Администратор [ 15 мар 2019, 21:04 ] |
Заголовок сообщения: | Re: Телефонный параметр (CRM) |
По нему надо искать и его надо отдельно выводить обычно. Остальные параметры где выводятся? Где-то в заявках, очереди процессов? Если нет - то выгоднее всё в описание поместить. Можно и так и так, сложности в этом нет. Просто хочется предложить наиболее практичное решение. |
Автор: | Администратор [ 19 апр 2019, 19:40 ] |
Заголовок сообщения: | Re: Обновление(удаление) параметра при привязке |
Текущую конфигурацию процесса выложите, пожалуйста. |
Автор: | lexusrid [ 19 апр 2019, 23:26 ] |
Заголовок сообщения: | Re: Обновление(удаление) параметра при привязке |
Код: create.in.objectTypes=contract:BgbillingInet
# processShowProcessLinks=1 processShowMessages=1 # скрытие в редакторе процесса ссылки полной правки описания hideDescriptionChange=1 # шаблон текста при добавлении в описание процесса текста кнопкой "Добавить" descriptionAddPattern=(${description}\n)[(${time}) (${user})]\t(${text}) # произвольный шаблон времени для добавляемого текста descriptionAddPattern.timePattern=dd.MM HH:mm # processReference.1.objectTypes=processCard processReference.1.stringExpression="<span class='title'>#" + process.getId() + " Заявка: " + u.toString( processParam.addressValues( 4 ) ) + "</span> <span>" + u.escapeXml( process.getDescription() ) + "</span>" processReference.2.objectTypes=linkProcessList processReference.2.stringExpression=u.toString( processParam.addressValues( 4 ) ) + " " # # открыт - Адрес requireFillParamIdsBeforeStatusSet.1=4 # processCreateLink.1.title=Сформировать заявку processCreateLink.1.processTypeId=41 processCreateLink.1.linkType=processLink # копирование привязок processCreateLink.1.copyLinks=1 processCreateLink.1.copyParams=4,16,33 # onProcessEvent.1.events=messageAdded;executorsChanged;statusChanged onProcessEvent.1.commands=newsPopupNotifyExecutors # onProcessEvent.3.events=linkAdded;createdAsLink onProcessEvent.3.commands=bgbilling:getLinkedContractAddressParam:BgbillingInet:8:4 onProcessEvent.4.events=statusChanged;messageAdded;descriptionAdded onProcessEvent.4.doExpression=<<END text = process.getId() + "<br></END>" + process.getDescription(); mobile.sendMessageToExecutors("Изменился процесс, в котором вы исполнитель", text); END # Выполнена onProcessEvent.5.events=statusChanged:1 onProcessEvent.5.doExpression=setPriority(4); # Отказ onProcessEvent.6.events=statusChanged:5 onProcessEvent.6.doExpression=setPriority(6); #Выполнена частично onProcessEvent.7.events=statusChanged:3 onProcessEvent.7.doExpression=setPriority(3); # На проверке onProcessEvent.8.events=statusChanged:7 onProcessEvent.8.doExpression=setPriority(5); # Не выполнена onProcessEvent.9.events=statusChanged:2 onProcessEvent.9.doExpression=setPriority(1); # Перенос onProcessEvent.10.events=statusChanged:6 onProcessEvent.10.doExpression=setPriority(7); # #Добавление текста в описание процесса при смене статуса onProcessEvent.11.events=statusChanging onProcessEvent.11.doExpression=<<END dao = new("ru.bgcrm.dao.process.ProcessDAO", conSet.getConnection()); change = event.getStatusChange(); change = ctxUserMap[change.getUserId()].getTitle() + " => " + ctxProcessStatusMap[change.getStatusId()].getTitle() + " [" + change.getComment() + "]"; process.setDescription(process.getDescription() + NEW_LINE + change); dao.updateProcess(process); END # onProcessEvent.12.events=linkAdded;createdAsLink onProcessEvent.12.commands=refreshCurrentQueue;open onProcessEvent.13.events=statusChanging onProcessEvent.13.commands=refreshCurrentQueue;open # cnt=1 # BILLING_ID=BgbillingInet # createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.JexlStep createWizard.step.{@cnt}.title=Информация о заявке createWizard.step.{@cnt}.doExpression=<<END message = ""; paramDao = new("ru.bgcrm.dao.ParamValueDAO", conSet.getConnection()); linkDao = new("ru.bgcrm.dao.process.ProcessLinkDAO", conSet.getConnection()); addrDao = new("ru.bgcrm.dao.AddressDAO", conSet.getConnection()); contractDao = new("ru.bgcrm.plugin.bgbilling.proto.dao.ContractDAO", ctxUser, "{@BILLING_ID}"); message += "ID заявки: <b>" + process.getId() + "</b><br/>"; message += "Тип заявки: <b>"; message += ctxProcessTypeMap.get(process.getTypeId()).getTitle(); message += "</b><br/>"; message += "Время: <b>"; timeFrom = paramDao.getParamDateTime(process.getId(), 5); if (timeFrom != null) message += tu.format(timeFrom, "ymdhm"); message += " - "; timeTo = paramDao.getParamDateTime(process.getId(), 10); if (timeTo != null) message += tu.format(timeTo, "ymdhm"); message += "</b><br/>"; message += "Договор: <b>"; contractLink = u.getFirst(linkDao.getObjectLinksWithType(process.getId(), "contract%")); if (contractLink != null) message += contractLink.getLinkedObjectTitle(); message += "</b><br/>"; if (contractLink != null ) { message += "Пароль: <b>"; pswd = contractDao.getContractStatisticPassword(contractLink.getLinkedObjectId()); message += pswd; message += "</b><br/>"; } message += "Адрес: <b>"; addr = paramDao.getParamAddress(process.getId(), 4, 1); if (addr != null) message += addr.getValue(); message += "</b><br/>"; if (addr != null) { message += "Информация по дому: <b>"; house = addrDao.getAddressHouse(addr.getHouseId(), false, false, false); if (house != null) message += house.getComment(); message += "</b><br/>"; } message += "Телефон: <b>"; phone = paramDao.getParamPhone(process.getId(), 16); if (phone != null) message += phone.getValue(); message += "</b><br/>"; return {"filled": true, "message": message}; END # createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.SetDescriptionStep #createWizard.step.{@cnt}.title=Описание # createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.FillParamsStep createWizard.step.{@cnt}.title=Файлы createWizard.step.{@cnt}.parameterIds=14 # createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.SetStatusStep createWizard.step.{@cnt}.title=Статус # workload:groupLoad.userGroupIds=4,5,6,8,10,11,12,13,14,21,23 workload:groupLoad.processTypeIds=51,95,54,50,33,42 workload:groupLoad.dateFromParamId=5 workload:groupLoad.dateToParamId=10 workload:groupLoad.addressParamId=4 |
Автор: | Администратор [ 24 апр 2019, 03:45 ] |
Заголовок сообщения: | Re: Копирование параметров договора в процесс (CRM) |
http://bgerp.ru/patch/p11215 - обновление Настроил в отдельной конфигурации (код 5) сниплет для копирования адресного параметра: Код: COPY_BGBILLING_INET_ADDRESS=<<END paramDao = new("ru.bgcrm.dao.ParamValueDAO", conSet.getConnection()); linkDao = new("ru.bgcrm.dao.process.ProcessLinkDAO", conSet.getConnection()); contractLink = u.getFirst(linkDao.getObjectLinksWithType(process.getId(),"%contract%")); if (contractLink != null) { contractId = contractLink.getLinkedObjectId(); billingId = su.substringAfter(contractLink.getLinkedObjectType(), ":"); contractParamDao = new("ru.bgcrm.plugin.bgbilling.proto.dao.ContractParamDAO", ctxUser, billingId); address = contractParamDao.getAddressParam(contractId, 8); if (address != null) { paramDao.updateParamAddress(process.getId(), 4, 1, address.toParameterAddressValue(conSet.getConnection())); } } END Далее пока в одном только типе процесса (Отдел качества) сделал следующуе настройки. В начале конфигурации инклуд: Код: # JEXL includes include.5=1 # Далее вместо устаревшего макроса используется данный код. Код: onProcessEvent.2.events=linkAdded;createdAsLink #onProcessEvent.2.commands=bgbilling:getLinkedContractAddressParam:BgbillingInet:8:4 onProcessEvent.2.doExpression={@COPY_BGBILLING_INET_ADDRESS} # COPY_BGBILLING_INET_ADDRESS можно расширить для копирования всех необходимых параметров. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |