IT Service Management

Обсуждаем TrackStudio по-русски

IT Service Management

Postby mvasenkov » Wed Jun 08, 2011 4:27 pm

Сделали конфигурацию для Service Desk/Help Desk.
Реализованы процессы:
Управление инцидентами (Incident Management)
Управление конфигурациями (Configuration Management)
Управление проблемами (Problem Management)
Управление запросами на изменения (Change Management)

http://www.trackstudio.ru/node/414

Вопросы и пожелания приветствуются.

В перспективе возможна реализация других процессов из ITSM, реализация различных метрик, стратегий управления ответственными и т.п.
Skype (RU): max.vasenkov
Email/Jabber: max.vasenkov@gmail.com
twitter: @winzard
mvasenkov
TrackStudio Support
 
Posts: 365
Joined: Tue Jan 14, 2003 5:57 pm
Location: Smolensk

Re: IT Service Management

Postby akimoff » Thu Jun 09, 2011 4:39 pm

Сразу после логина на свежей демо-базе (TS версии 13 бета):
Code: Select all
Stack Trace:
            java.lang.NullPointerException
   at com.trackstudio.tools.PropertyComparable.compareTo(PropertyComparable.java:28)
   at java.util.Arrays.mergeSort(Unknown Source)
   at java.util.Arrays.sort(Unknown Source)
   at java.util.Collections.sort(Unknown Source)
   at com.trackstudio.tools.EggBasket.putItem(EggBasket.java:66)
   at com.trackstudio.kernel.cache.PluginCacheManager.initCache(PluginCacheManager.java:345)
   at com.trackstudio.kernel.cache.PluginCacheManager.initCache(PluginCacheManager.java:369)
   at com.trackstudio.kernel.cache.PluginCacheManager.<init>(PluginCacheManager.java:61)
   at com.trackstudio.kernel.cache.PluginCacheManager.getInstance(PluginCacheManager.java:77)
   at com.trackstudio.secured.SecuredWorkflowUDFBean.getLookupscriptCalc(SecuredWorkflowUDFBean.java:40)
   at com.trackstudio.app.filter.customizer.TextCustomizer.drawInput(TextCustomizer.java:203)
   at com.trackstudio.app.filter.customizer.TextCustomizer.draw(TextCustomizer.java:92)
   at com.trackstudio.action.task.TaskFilterTaskSettingsAction.page(TaskFilterTaskSettingsAction.java:202)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at com.trackstudio.action.TSDispatchAction.execute(TSDispatchAction.java:70)
   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.doGet(ActionServlet.java:449)
   at com.trackstudio.action.TSStrutsServlet.doGet(TSStrutsServlet.java:32)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
   at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:130)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at com.trackstudio.filters.CompressResponseFilter.doFilter(CompressResponseFilter.java:69)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
   at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
   at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
   at org.mortbay.jetty.Server.handle(Server.java:326)
   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
   at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
   at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Скорее всего, какие-то проблемы с базовым фильтром All - потому что сами объекты показываются, категории/процессы настраиваются, а вот при попытке посмотреть результаты работы фильтра или настроить его - такая ошибка.
akimoff
 
Posts: 149
Joined: Thu Nov 05, 2009 10:51 am
Location: Moscow

Re: IT Service Management

Postby Petr » Fri Jun 10, 2011 10:44 am

это снова проблема в файлах в плагинах сворее всего у вас там какой нибудь архив или exe.
TS Support
email: parsentev@yandex.ru
Petr
 
Posts: 1317
Joined: Wed Aug 12, 2009 4:38 pm

Re: IT Service Management

Postby akimoff » Fri Jun 10, 2011 11:02 am

Вопрос снят.
Ошибка только в 13-й версии, в 12-й конфигурация работает.
akimoff
 
Posts: 149
Joined: Thu Nov 05, 2009 10:51 am
Location: Moscow

Re: IT Service Management

Postby chilin » Fri Feb 03, 2012 8:57 am

Ошибка при "регистрации нового инцидента", если инцидент регистрируется любым "Специалистом службы поддержки" (itcrowd1, itcrowd2, ...)
Script itsm.GetClientsList.class, field name: Клиент
AccessDeniedException: className=com.trackstudio.securedkernel.SecuredUserAdapterManager, method=getUserAndChildren logged user: itcrowd1 condition: !sc.userOnSight(userId)

Воспроизводится и в itsm-db-clean, и в itsm-db-demo. (TrackStudio 4.0.14.9)
Судя по тексту, не хватает прав на раскрытие списка клиентов, но добавление прав для itcrowd1 не помогло.
Посмотрите пожалуйста.
chilin
 
Posts: 3
Joined: Thu Feb 02, 2012 10:23 pm

Re: IT Service Management

Postby admin » Sat Feb 04, 2012 11:31 am

Хорошо, посмотрим.
Maxim Kramarenko (mailto: maximkr@trackstudio.com)
TrackStudio - Hierarchical Bug & Issue Tracking Software
http://www.trackstudio.com
admin
Site Admin
 
Posts: 7454
Joined: Thu Jan 01, 1970 3:00 am
Location: Smolensk, Russia

Re: IT Service Management

Postby chilin » Sun Feb 05, 2012 7:59 pm

И в дополнение, то же доп. поле "клиент" фигурирует в руководстве к ITSM, в главе "Как регистрировать пользователей и управлять доступом":
Внешних пользователей не требуется регистрировать отдельно — учетные записи для них будут создаваться как подчиненные суррогатного пользователя Клиенты автоматически при регистрации инцидентов. Для регистрации такого пользователя специалист 1-й линии поддержки должен выбрать значение «* новый пользователь» в дополнительном поле «Клиент» при создании записи о новом инциденте

В правилах импорта "Прием инцидентов" в стартовом варианте конфигурации снята галка "Импортировать электронную почту от неизвестных пользователей", но даже если её установить, всё равно эта полезная фича для авторегистрации новых клиентов не работает - значение «* новый пользователь» не появляется.
chilin
 
Posts: 3
Joined: Thu Feb 02, 2012 10:23 pm

Re: IT Service Management

Postby mvasenkov » Mon Feb 06, 2012 2:05 pm

То, что специалист службы поддержки (2 линия) может регистрировать инциденты - это ошибка. Нужно в конфигурации отключить. Технически можно настроить права так, что 2-я линия тоже будет регистрировать, но это лишнее. Если вам нужно, чтобы кто-то мог регистрировать инциденты - добавьте к его правам в проекте (Инциденты) 1-ю линию. Хотя и в этом случае будет загвоздка: у специалистов службы поддержки нет доступа к списку клиентов (о чем, собственно, и выскакивала первая ошибка). Можно добавить. Для этого нужно зайти в систему пользователем HDAdmin, перейти к управлению пользователями, затем к пользователю "Клиенты", затем через права доступа добавить и переопределить роль "Обозреватель" для "Специалистов службы поддержки".

Что касается "* новый пользователь": такого значения нет, оно просто теперь не надо. Вы либо выбираете из списка правее существующего пользователя, либо, если его нет, вводите его ИМЯ в строке ввода левее, а затем заполняете ниже в большом поле email и другие данные (главное - email). Это, конечно, нужно отразить в документации, видимо для каких-то ролей я пропустил изменения.
Skype (RU): max.vasenkov
Email/Jabber: max.vasenkov@gmail.com
twitter: @winzard
mvasenkov
TrackStudio Support
 
Posts: 365
Joined: Tue Jan 14, 2003 5:57 pm
Location: Smolensk

Re: IT Service Management

Postby chilin » Mon Feb 06, 2012 10:02 pm

Когда 1 линия не справляется с потоком обращений, мы делегируем право регистрации 2 линии, т.е. этот "мусорок" в конфигурации моделирует наш процесс 8) . Спасибо, решение помогло (но из стартовой конфигурации для "правильного" процесса это нужно конечно убрать).

По поводу авто-регистрации картина следующая:
1. Если сообщение приходит от нового e-mail, регистрируется инцидент которому присваивается клиент "Help Desk Admin". Последующая "классификация" инцидента с указанием имени клиента и e-mail приводит к ошибке (лог ниже). Предварительное "редактирование" инцидента, картины не меняет. Замечание: удобнее было бы, если бы данные клиента автоматически заносились в нужные поля - имя из FromUser а почта из FromEmail.
Code: Select all
System Information:
Java Information:
Java Version: 1.7.0_01
Java Vendor: Oracle Corporation
Java Specification Vendor: Oracle Corporation
Java Specification Version: 1.7
Java Home: c:\program files (x86)\common files\i4j_jres\1.7.0_01
Java Classpath:
Servlet Container Information:
Servlet Version: 25
AS Vendor: jetty/6.1.26
Virtual Machine Information:
VM Vendor: Oracle Corporation
VM: Java HotSpot(TM) Client VM
VM Version: 21.1-b02
Runtime Version: 1.7.0_01-b08
VM Specification Version: 1.7
VM Info: mixed mode
System information:
OS Name: x86-Windows 7(6.1)
Total Memory: 468713472
Free Memory: 14616040
Product Information:
Version: 4.0.14.9
Licensee: Evaluation Customer
License Type: EVAL
Database Information:
Database: HSQL Database Engine
Database version:1.8.0
Database major version:1
Database minor version:8
Database driver name:HSQL Database Engine Driver
Database driver version:1.8.0
Database driver major version:1
Database driver minor version:8
Hibernate Dialect: org.hibernate.dialect.HSQLDialect
Hibernate Driver: org.hsqldb.jdbcDriver
Expire Date: 1/7/47 6:33 AM
Stack Trace:
            java.lang.NullPointerException
   at scripts.before_add_message.itsm.ClassifyIncident.execute(ClassifyIncident.java:76)
   at com.trackstudio.app.TriggerManager.executeTrigger(TriggerManager.java:123)
   at com.trackstudio.app.TriggerManager.createMessage(TriggerManager.java:81)
   at com.trackstudio.action.task.MessageCreateAction.saveMessage(MessageCreateAction.java:382)
   at com.trackstudio.action.task.MessageCreateAction.save(MessageCreateAction.java:332)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at com.trackstudio.action.TSDispatchAction.execute(TSDispatchAction.java:73)
   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.doGet(ActionServlet.java:449)
   at com.trackstudio.action.TSStrutsServlet.doGet(TSStrutsServlet.java:32)
   at com.trackstudio.action.TSStrutsServlet.doPost(TSStrutsServlet.java:41)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
   at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:130)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at com.trackstudio.filters.CompressResponseFilter.doFilter(CompressResponseFilter.java:69)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
   at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
   at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
   at org.mortbay.jetty.Server.handle(Server.java:326)
   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
   at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
   at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

2. При ручном добавлении нового инцидента и вводе нового e-mail, инцидент регистрируется, новый пользователь создаётся. Однако, если в поле "Контактные данные клиента", в строку "электронная почта:" вписать e-mail сразу после двоеточия(без пробела) выдаётся ошибка (лог ниже). Поправьте парсинг пожалуйста.
Code: Select all
System Information:
Java Information:
Java Version: 1.7.0_01
Java Vendor: Oracle Corporation
Java Specification Vendor: Oracle Corporation
Java Specification Version: 1.7
Java Home: c:\program files (x86)\common files\i4j_jres\1.7.0_01
Java Classpath:
Servlet Container Information:
Servlet Version: 25
AS Vendor: jetty/6.1.26
Virtual Machine Information:
VM Vendor: Oracle Corporation
VM: Java HotSpot(TM) Client VM
VM Version: 21.1-b02
Runtime Version: 1.7.0_01-b08
VM Specification Version: 1.7
VM Info: mixed mode
System information:
OS Name: x86-Windows 7(6.1)
Total Memory: 469762048
Free Memory: 413097728
Product Information:
Version: 4.0.14.9
Licensee: Evaluation Customer
License Type: EVAL
Database Information:
Database: HSQL Database Engine
Database version:1.8.0
Database major version:1
Database minor version:8
Database driver name:HSQL Database Engine Driver
Database driver version:1.8.0
Database driver major version:1
Database driver minor version:8
Hibernate Dialect: org.hibernate.dialect.HSQLDialect
Hibernate Driver: org.hsqldb.jdbcDriver
Expire Date: 1/7/47 6:33 AM
Stack Trace:
            java.lang.NullPointerException
   at scripts.before_create_task.itsm.NewIncidentProcessing.execute(NewIncidentProcessing.java:44)
   at com.trackstudio.app.TriggerManager.executeTrigger(TriggerManager.java:166)
   at com.trackstudio.app.TriggerManager.createTask(TriggerManager.java:350)
   at com.trackstudio.action.task.TaskEditAction.commonSaveTask(TaskEditAction.java:465)
   at com.trackstudio.action.task.TaskEditAction.saveTask(TaskEditAction.java:278)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
   at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
   at com.trackstudio.action.TSDispatchAction.execute(TSDispatchAction.java:73)
   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.doGet(ActionServlet.java:449)
   at com.trackstudio.action.TSStrutsServlet.doGet(TSStrutsServlet.java:32)
   at com.trackstudio.action.TSStrutsServlet.doPost(TSStrutsServlet.java:41)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
   at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:130)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at com.trackstudio.filters.CompressResponseFilter.doFilter(CompressResponseFilter.java:69)
   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
   at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
   at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
   at org.mortbay.jetty.Server.handle(Server.java:326)
   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
   at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
   at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Всё таки, правильнее было бы, заносить контактную информацию в отдельные текстовые поля, совпадающие по сути с полями из "свойств пользователя". Тем более, что поле "Контактные данные клиента", доступно для редактирования при создании и при классификации. Но если внести в это поле дополнительную информацию, все правки после "создания" или "классификации" затираются существующими данными клиента.
chilin
 
Posts: 3
Joined: Thu Feb 02, 2012 10:23 pm

Re: IT Service Management

Postby mvasenkov » Wed Feb 08, 2012 11:10 am

chilin wrote:1. Если сообщение приходит от нового e-mail, регистрируется инцидент которому присваивается клиент "Help Desk Admin". Последующая "классификация" инцидента с указанием имени клиента и e-mail приводит к ошибке (лог ниже). Предварительное "редактирование" инцидента, картины не меняет. Замечание: удобнее было бы, если бы данные клиента автоматически заносились в нужные поля - имя из FromUser а почта из FromEmail.

А они и так должны заполняться. И редактировать их потом не надо.
2. При ручном добавлении нового инцидента и вводе нового e-mail, инцидент регистрируется, новый пользователь создаётся. Однако, если в поле "Контактные данные клиента", в строку "электронная почта:" вписать e-mail сразу после двоеточия(без пробела) выдаётся ошибка (лог ниже). Поправьте парсинг пожалуйста.

Спасибо. Голову сломал, почему там падает.
Всё таки, правильнее было бы, заносить контактную информацию в отдельные текстовые поля, совпадающие по сути с полями из "свойств пользователя". Тем более, что поле "Контактные данные клиента", доступно для редактирования при создании и при классификации. Но если внести в это поле дополнительную информацию, все правки после "создания" или "классификации" затираются существующими данными клиента.

Да, но это надо придумать способ, как на живую базу сконвертировать.
Skype (RU): max.vasenkov
Email/Jabber: max.vasenkov@gmail.com
twitter: @winzard
mvasenkov
TrackStudio Support
 
Posts: 365
Joined: Tue Jan 14, 2003 5:57 pm
Location: Smolensk


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 0 guests

cron