forum.bitel.ru http://forum.bitel.ru/ |
|
Создание процесса с привязанными объектами http://forum.bitel.ru/viewtopic.php?f=49&t=9493 |
Страница 1 из 1 |
Автор: | Dog [ 24 июл 2014, 22:24 ] |
Заголовок сообщения: | Создание процесса с привязанными объектами |
в доке написано: Цитата: 6.5.4. Создание процесса с привязанными объектами Разрешает создание процесса во вкладке Процессы объекта. Переменная в конфигурации типа процесса: Код: create.in.objectTypes=<типы объектов через запятую> create.in.copyParams=перечень пар <с параметра>:<на параметр>, разделённых точкой с запятой # открывать (1) либо не открывать (0) вкладку с созданным привязанным процессом create.in.<тип объекта>.openCreated=1 Копирование параметров поддерживается только для объектов, использующих стандартную систему параметров системы. Типы объектов ядра: customer - контрагент. Типы объектов плагинов описаны в документации плагинов. Пример. Возможность создания процесса с привязкой контрагента, копированием параметра с кодами 1 и 5 в контрагента в параметры процесса с кодами 3 и 6 соответственно: Код: create.in.objectTypes=customer create.in.copyParams=1:3;5:6 сделал так: Код: #Привязка к объектам и копирование параметров create.in.objectTypes=contract:1 create.in.copyParams=1:15 где 1 - код параметра типа:адрес из биллинга, 15 - код параметра типа:адрес из процесса. адреса синхронизированны. выдает Код: Ошибка: Different copy param types. и по логам: Код: 07-24/20:20:01 ERROR [http-bio-9088-exec-6] ProcessAction - Different copy param types. ru.bgcrm.model.BGException: Different copy param types. at ru.bgcrm.dao.ParamValueDAO.copyParam(ParamValueDAO.java:1317) at ru.bgcrm.dao.ParamValueDAO.copyParams(ParamValueDAO.java:1266) at ru.bgcrm.struts.action.ProcessAction.linkedProcessCreate(ProcessAction.java:1659) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at ru.bgcrm.struts.action.BaseAction$InvokerCon.invoke(BaseAction.java:147) at ru.bgcrm.struts.action.BaseAction.dispatchMethod(BaseAction.java:288) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170) at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bgcrm.servlet.filter.SetRequestParamsFilter.doFilter(SetRequestParamsFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bgcrm.servlet.filter.AuthFilter.doFilter(AuthFilter.java:256) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bgcrm.servlet.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:38) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) а так же, родился вопрос: как быть, если например надо создавать задачу через контрагента и через договор. как быть с копированием параметров, если в биллинге своя нумерация id параметров, а в црм (по контрагентам и процессам общая) своя. |
Автор: | Dog [ 24 июл 2014, 22:51 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
еще, сделал вот такую настройку в типе процесса Код: onProcessEvent.2.commands=bgbilling:linkedContractCommentToParam:1:5;bgbilling:getLinkedContractAddressParam:1:1:15;bgbilling:getLinkedContractAddressParam:1:2:4 onProcessEvent.2.events=linkAdded в итоге, при привязке договора комментарий копируется в 5 параметр процесса, адрес (1) копируется в 15 параметр, а вот телефон (2) не копируется. + еще, когда привязываешь договор, к процессу в котором уже есть адрес - то получается два адрес в одном параметре процесса, при том что в настройках параметра нет опции "multiple=1" |
Автор: | Администратор [ 30 июл 2014, 12:51 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
Параметр Код: create.in.copyParams копирует только параметры BGCRM между объектами. Т.е. он не будет копировать параметр договора биллинга в параметр ЦРМки.Вот это правильный путь: Код: onProcessEvent.2.commands=bgbilling:linkedContractCommentToParam:1:5;bgbilling:getLinkedContractAddressParam:1:1:15;bgbilling:getLinkedContractAddressParam:1:2:4 onProcessEvent.2.events=linkAdded Только непонятно, почему вы макросом bgbilling:getLinkedContractAddressParam пытаетесь получить телефон? Используйте bgbilling:getLinkedContractParam и скопируйте телефон в текстовое поле. |
Автор: | Dog [ 31 июл 2014, 06:51 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
Администратор писал(а): Параметр Код: create.in.copyParams копирует только параметры BGCRM между объектами. Т.е. он не будет копировать параметр договора биллинга в параметр ЦРМки.Вот это правильный путь: Код: onProcessEvent.2.commands=bgbilling:linkedContractCommentToParam:1:5;bgbilling:getLinkedContractAddressParam:1:1:15;bgbilling:getLinkedContractAddressParam:1:2:4 onProcessEvent.2.events=linkAdded Только непонятно, почему вы макросом bgbilling:getLinkedContractAddressParam пытаетесь получить телефон? Используйте bgbilling:getLinkedContractParam и скопируйте телефон в текстовое поле. это видимо copy-paste не правильно сработал =) а из поля phone в поле phone не получится? не хочется плодить 100 параметров в одной заявке. |
Автор: | Администратор [ 05 авг 2014, 12:53 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
Рекомендую в заявке делать поле с номером текстовым и копировать туда строковое представление параметра. Хранить в поле Phone есть смысл только параметры, которые в дальнейшем учитываются и правятся. Например, в контрагенте. А в заявке - только лишняя морока. |
Автор: | Dog [ 11 авг 2014, 00:38 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
хорошо, а как быть, чтобы скопировать в эту же заявку телефон в текстовый параметр из параметра контрагента типа телефон? |
Автор: | Администратор [ 11 авг 2014, 17:15 ] |
Заголовок сообщения: | Re: Создание процесса с привязанными объектами |
Цитата: bgbilling:getLinkedContractParam:<billingId>:<billingParamId>:<crmParamId> - копировать из привязанного договора BGBilling строковое представление параметра (как в таблице параметров) в текстовый параметр процесса; <billingId> - идентификатор биллинга, <billingParamId> - числовой идентификатор параметра в биллинге, <crmParamId> - числовой код параметра BGCRM типа text;
|
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |