List of critical changes in versions 3.8.x
List of changes in version 3.8.41
No critical changes.
List of changes in version 3.8.40
No critical changes.
List of changes in version 3.8.39
No critical changes.
List of changes in version 3.8.38
No critical changes.
List of changes in version 3.8.37
No critical changes.
List of changes in version 3.8.36
No critical changes.
List of changes in version 3.8.35
API of code and public classes
Method EleWise.ELMA.Projects.Managers.ProjectTaskBaseManager.IsActiveForPublish(IProjectPlanItem planItem) is outdated and will be deleted in the further versions; instead use EleWise.ELMA.Projects.Managers.ProjectPlanItemManager.IsActiveForPublish(IProjectPlanItem planItem)
Method EleWise.ELMA.Projects.Managers.ProjectTaskManager.IsActiveForPublish(IProjectPlanItem planItem) is outdated and will be deleted in the further versions; instead use EleWise.ELMA.Projects.Managers.ProjectPlanItemManager.IsActiveForPublish(IProjectPlanItem planItem)
List of changes in version 3.8.34
No critical changes.
List of changes in version 3.8.33
API of code and public classes
Size limit settings in properties
1. The logic of setting limits in properties was changed. If the box Can be empty is checked and minimum and maximum property values are specified, then min/max validation is not performed.
2. For all the numeric types. If the box Can be empty is NOT checked, the unfilled property is automatically filled with the 0 value.
3. Accuracy limit was added for fractions, i.e. you can enter as many decimal places as specified in the property settings.
PublicAPI
No changes
List of changes in version 3.8.32
No critical changes.
List of changes in version 3.8.31
API of code and public classes
Rounding up numbers using scripts
If a script is executed when changing the value of an integer or fraction, when specifying a more precise value than defined in the property settings (entering a fraction in an integer field), it will receive a rounded up value according to the settings.
Designer, Data model, Business processes
Added verification of class and database table names on the form for creating a new process in Designer. The IDs in these fields must start with a Latin letter, followed by numbers, Latin letters or underscores "_". In addition, C# keywords are forbidden in class names, and keywords of the DBMS used are forbidden in database table names.
How it was:
When creating a process, you could specify any symbols in the class name and database table name of different process structures. There was no verification and no error message was displayed, while the process was saved. However, it was impossible to publish such a process later and the class name could not have been changed in Designer.
How it is now:
Class and database table names are verified when creating a new process and error messages are shown.
PublicAPI
No changes
List of changes in version 3.8.30
Code API. Public methods and interfaces
Views for Email and Phone types
Views for displaying separate Emails and Phones were added (not as a list). Views for displaying Email and Phone lists were modified.
Site.cshtml view
The DisplayTemplates/Site.cshtml view was deleted from the system; its logic was moved to the DisplayTemplates/Uri.cshtml view
Template generator functions changed
1. The following functions were renamed:
a. RemindTime renamed to GetReminderTimeSpan
b. TransformFile renamed to TransformFileToSignedText
c. IsProjectTemplate renamed to IsProjectTaskTemplate
d. GetObject renamed to LoadEntityByWorkLogItem
e. ObjectDisplayName renamed to GetEntityDisplayNameByWorkLogItem
2. The functions EleWise.ELMA.Tasks.Notifications.TaskTemplateGeneratorFunctions.HtmlString and EleWise.ELMA.Messaging.SMS.Notifications.SmsTemplateGeneratorFunctions.StringCut were moved to the standard template generation functions EleWise.TemplateGenerator.Function.DefaultFunctions.
3. Class EleWise.ELMA.Messaging.SMS.Notifications.SmsTemplateGeneratorFunctions was deleted.
User interface
Access permissions to pages modified
When editing portlet pages, users, who have permissions to edit, can now switch to editing general settings.
Configuring access to a page is available only if the user has full access to the page and when editing general settings.
Projects
Possibility to select users (executor/co-executor/supervisor) for project tasks when publishing a project plan. In case when a project role with more than one user was selected in a plan task, the system used to suggest selecting a specific user each time when publishing the plan. Now you do not select users for completed tasks and the tasks for which a user had been selected during previous publications.
PublicAPI
KPI section:
PublicAPI.KPI.Objects.SMART.SMARTTask.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
PublicAPI.KPI.Objects.KpiTask.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
Docflow section:
PublicAPI.Docflow.Tasks.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
Projects section:
PublicAPI.Projects.ProjectTaskBase.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
PublicAPI.Projects.ProjectTaskBase.Milestone.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.Filter() - filter changed:
UnderControl(Boolean underControl) - Deleted
UnderControl(Nullable<Boolean> underControl) - Added
List of changes in version 3.8.29
No critical changes.
List of changes in version 3.8.28
Code API. Public methods and interfaces
In the BinaryFile class, a new property was added:
/// <summary>
/// Delete the temporary file after saving to the database
/// </summary>
bool DeleteTempFileAfterSave { get; set; }
and a method:
/// <summary>
/// Set a local path to the file
/// </summary>
/// <param name="contentFilePath">Local path to the file </param>
/// <param name="deleteTempFileAfterSave">Delete the temporary file after saving to the database </param>
void SetContentFilePath(string contentFilePath, bool deleteTempFileAfterSave = false);
This property indicates, that after saving the file to the database, the physical source file must be deleted; true is automatically assigned to this property when the InitializeContentFilePath method is invoked; false is assigned when a new value is assigned to the ContentFilePath property. Clearing of the folder for storing temporary ELMA files was added; all the files, created more than 24 hours ago will be automatically deleted.
Object filters changed
1. In the interface EleWise.ELMA.BPM.Web.Common.Controllers. IFilterController method was changed FilterFields: parameter string filterGridId = "" was added.
2. Unique ids of objects and scripts were added to the html markup of the filter form.
User interface
Reassigning business process tasks
Only task executors and their superiors can reassign a task (reassigning is not forbidden in the process). The process initiator, who is the task author, does not have this permission.
PublicAPI
List of changes in version 3.8.27
Code API. Public methods and interfaces
The extension point IPreBindResolver is marked as obsolete, instead use the extension point
namespace EleWise.ELMA.Web.Mvc.Binders
{
/// <summary>
/// Factory for ValueProvider
/// </summary>
[ExtensionPoint(ServiceScope.Shell)]
public interface IValueProviderFactory
{
/// <summary>
/// Create ValueProvider for the current <see cref="controllerContext"/>
/// </summary>
IValueProvider GetValueProvider(ControllerContext controllerContext);
}
}
User interface
Display of parent tasks on the Gantt chart
Parent tasks are now displayed differently, depending on whether it is a stage task or not.
General imporvements
· Text formatting in the Task Description field fixed.
· Possibility to combine cells in a column for single objects (only header, only editing field, etc.) was added.
· Possibility to hide the block header or the grid header for tables with configurable column width was added.
ELMA plugin for Visual Studio
Plugin version field was added to the About Program window, displaying the current version of the plugin. If the plugin and server versions do not match, the user will see a respective notification in the About Program window.
Possibility to change the designer/web server/package manager folder was implemented. To activate the respective buttons, run Visual Studio as the administrator.
PublicAPI
No changes.
List of changes in version 3.8.26
Public methods and interfaces of Code API. Public methods and interfaces
New methods for placing and releasing data by regions were added to ComplexCacheService:
/// <summary>
/// Get value from cache or calculate value and write it to cache, if not found
/// </summary>
/// <typeparam name="T">Value type</typeparam>
/// <param name="key">Key to store in cache</param>
/// <param name="timestampKey">Timestamp key</param>
/// <param name="timestampRegionKey">Region timestamp key</param>
/// <param name="valueAccessor">Function, that returns a value. It is invoked if information is not found in the cache</param>
/// <returns>Value</returns>
T GetOrAdd<T>(string key, string timestampKey, string timestampRegionKey, Func<T> valueAccessor);
/// <summary>
/// Get value from cache or calculate value and write it to cache, if not found
/// </summary>
/// <typeparam name="T">Value type</typeparam>
/// <param name="key">Key to store in cache</param>
/// <param name="timestampKey">Timestamp key</param>
/// <param name="timestampRegionKey">Region timestamp key</param>
/// <param name="valueAccessor">Function, that returns a value. It is invoked if information is not found in the cache</param>
/// <param name="timeout">Value store timeout</param>
/// <returns>Value</returns>
T GetOrAdd<T>(string key, string timestampKey, string timestampRegionKey, Func<T> valueAccessor, TimeSpan timeout);
/// <summary>
/// Update timestamp
/// </summary>
/// <param name="timestampKey">Timestamp key</param>
/// <param name="timestampRegionKey">Region timestamp key</param>
void RefreshTimestamp(string timestampKey, string timestampRegionKey);
/// <summary>
/// Update region timestamp
/// </summary>
/// <param name="timestampRegionKey">Region timestamp key</param>
void RefreshTimestampRegion(string timestampRegionKey);
User interface
Configuring forms in processes
All the elements, available for tasks (including Time report log tab and time report list) were added to the form builder for process tasks.
Unnecessary elements were removed from the form builder for process start, such as Transition buttons, Process information and Process context properties container.
Tasks
· When creating a sub-task with several executors, one entry with all the created tasks is added to the history.
· Creating overdue sub-tasks is forbidden.
System settings
Description of parameters that allow configuring the application was added in the Settings.config file. Description was added both for default parameters and for situational (hidden) parameters.
PublicAPI
Projects section:
PublicAPI.Projects.Objects.MaterialResource.Filter() - filter changed:
NotIds(Int64[] notIds) - Added
NotIds(List<Int64> notIds) - Added
List of changes in version 3.8.25
Public methods and interfaces
1. Extension point EleWise.ELMA.BPM.Web.Common.ExtensionPoints. IFilterPortletGridId was marked as obsolete.
User interface
Outgoing mail settings
In the outgoing mail settings in the administration section, the Use SSL property was replaced with the new Connection Protection property, which has three values: No, SSL, TLS. When loading settings from a database, the old parameters are automatically converted to the new: if No is selected in the Use SSL field, then No will be selected in the Connection Protection field. Otherwise, the value will be selected depending on the value of the Port for Sending Messages field.
Diagram export
Now the image of the exported diagram contains the name in the header.
Processes
Option for interrupting child processes in case of multiple operation start was added.
Display of document type subscribers added
How it was:
How it is now:
Now you can view subscribers by clicking Actions – View Subscriptions on the document page.
List of changes in version 3.8.24
API interfaces
Possibility to create a document in a script without specifying its type was removed.
PublicAPI
Docflow section:
Outdated methods:
Document PublicAPI.Docflow.Document.Create(BinaryFile file, Folder folder, String name) (This method is outdated)
Document PublicAPI.Docflow.Document.Create(Folder folder, String name) (This method is outdated)
Document PublicAPI.Docflow.Document.Create() (This method is outdated)
List of changes in version 3.8.23
Code API. Public methods and interfaces
- Method LoadMetadata(string filename, bool throwEx) was added to MetadataSerializer. If the metadata are not found in the file, then depending on throwEx null (throwEx == false) or error (throwEx == true) will be returned.
- Three methods were added in the interface IElementWithExceptionFlows: CanHandleException, QueueExecutionTimeoutSupported and GetQueueExecutionTimeout.
- In the class ActivityExceptionFlowHelper method Execute was marked as obsolete.
- To implement automatic escalation triggered by error or timer in your custom activities, you need to implement interface IElementWithExceptionFlows (or redefine methods CanHandleExceptionByEscalation and QueueExecutionTimeoutSupported when inheriting from BPMNFlowElement)
User interface
Lead conversion
When converting a lead, it is now possible to create neither a deal nor a relationship. When choosing to create a deal or a lead, required fields on the form are validated.
ELMA plugin for Visual Studio
Possibility to create ELMA Entity in the ELMA plugin for Visual Studio was removed. Possibility to edit exiting ELMA Entity remains.
PublicAPI
No changes.
List of changes in version 3.8.22
No critical changes.
List of changes in version 3.8.21
No critical changes.
List of changes in version 3.8.20
User interface
Additional EQL filter for documents
Additional EQL filter applied to a property with documents also filters recently used documents.
Locked users in a user group
When selecting users from a user group, locked users are excluded.
Searching users by organizational structure element
If you select a department in the organizational structure field when searching users, then the search result will display all the employees of the department and subordinate units. In Administration, the user filter has a parameter, indicating that only users included in the department (without subordinate units) should be searched.
Binding a process to stage change in the active sales funnel
When configuring processes in the sales funnel, you can also select the processes, that the current user cannot start.
Dynamic text field
The height of text fields in the web interface can be changed when entering data.
Nested object properties in blocks
You can configure display of nested object properties in blocks; they will be displayed in the list of entries.
Projects
1. Possibility to assign control to a group of users in a project plan was added.
2. The Subtasks tab of project tasks displays subtasks of outdated and unpublished plan versions with the “outdated plan” label.
Data model
Obsolete property was added to the interface EleWise.ELMA.Projects.Models.IProjectTaskBase, which indicates that a task does not pertain to the current plan version.
Support of new Rutoken plugin
Due to disabling of NPAPI in Chrome, the Rutoken integration code was rewritten to asynchronous calls.
Report functioning changed
1. Report cache FastReport EleWise.ELMA.Reports.Services. FastReportRunCache was removed.
2. System reports are published automatically after the import.
Metadata functioning changed
1. Restriction on naming table columns user properties of metadata (Uid and TypeUid) was added.
PublicAPI
Projects section:
PublicAPI.Projects.ProjectTaskBase.Filter() - filter changed:
Obsolete(Boolean obsolete) - Added
PublicAPI.Projects.ProjectTaskBase.Filter() - filter changed:
Obsolete(Boolean obsolete) - Added
PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.Filter() - filter changed:
Obsolete(Boolean obsolete) - Added
List of changes in version 3.8.15
User interface
Session timeout settings for named licenses
If you have activation with concurrent licenses, a separate timeout parameter for named licenses is available in Administration.
This parameter sums up the timeout with the main setting. If the timeout is not defined, then the session of named licenses will not be complete.
Selecting a user in a filter
When you select a user in a filter, the locked users are displayed separately at the bottom of the list; the search window displays users alphabetically with lock icons.
Code API. Public methods and interfaces
Overload was added for the method GetEntityActions(EntityMetadata metadata, bool inherit, bool onlyBase, bool loadextensions) in MetadataLoader. It allows getting actions of an entity with regard to extensions.
PublicAPI
Docflow section:
PublicAPI.Docflow.Objects.Nomenclature.NomenclatureCache.Filter() - filter changed:
UseRegistrationPlacePermissions(Nullable<Boolean> useRegistrationPlacePermissions) - Added
Portal section:
Added methods:
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment, User commentAuthor)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.AddComment(Question task, CommentActionModel model)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, TaskPriority priority, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetTaskEndDate(Int64 taskId, DateTime newEndDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLog(Int64 taskId, Int64 minutes)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days)
Void PublicAPI.Portal.Objects.Tasks.Question.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate, String comment)
Void PublicAPI.Portal.Objects.Tasks.Question.CompleteTask(Int64 taskId, CompleteTaskModel model)
List of changes in version 3.8.14
User interface
Filtering by File type (binary file)
When adding a File type (binary file) field to an object filter in Web Application, you can enter the ID of the searched file in the text field. If you specify an incorrect ID, search will not show any results.
Razor views when copying forms in the form builder
When copying forms in the form builder, all the razor views, which are used in this form, are copied locally for the object to a new form. When copying a child form to another child form, only the views that are configured in the source form are copied.
Code API. Public methods and interfaces
1. If an action cannot be performed, then the server returns an HTTP error with the 409 Conflict code.
2. Data transfer method from POST to GET of the Messages module for the method /Posts/GetMyFavorite was changed.
PublicAPI
KPI section:
Added methods:
Void PublicAPI.CRM.Contractor.AddComment(Contractor contractor, String comment, User commentAuthor)
Void PublicAPI.CRM.Contact.AddComment(Contact contact, String comment, User commentAuthor)
Void PublicAPI.CRM.Lead.AddComment(Lead lead, String comment, User commentAuthor)
Void PublicAPI.CRM.Sale.AddComment(Sale sale, String comment, User commentAuthor)
Void PublicAPI.CRM.Inpayment.AddComment(Inpayment inpayment, String comment, User commentAuthor)
Void PublicAPI.CRM.Relationship.AddComment(Relationship relationship, String comment, User commentAuthor)
KPI section:
Added methods:
Void PublicAPI.KPI.Objects.KpiTask.AddComment(KpiTask task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.AddComment(SMARTTask task, String comment, User commentAuthor)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.AddComment(SMARTTask task, String comment, User commentAuthor)
Docflow section:
Added methods:
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.AddComment(SendDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.AddComment(SendDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.AddComment(DocumentAcquaintanceTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.AddComment(DocumentTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.AddComment(ResolutionTask task, String comment, User commentAuthor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.AddComment(DocumentApprovementTask task, String comment, User commentAuthor)
Processes section:
Added methods:
Void PublicAPI.Processes.WorkflowInstance.AddComment(WorkflowInstance instance, String comment, User commentAuthor)
Void PublicAPI.Processes.WorkflowTaskBase.AddComment(TaskBase task, String comment, User commentAuthor)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.AddComment(WorkflowTask task, String comment, User commentAuthor)
Portal section:
Added methods:
Void PublicAPI.Portal.TaskBase.AddComment(TaskBase task, String comment, User commentAuthor)
Void PublicAPI.Portal.TaskBase.Task.AddComment(Task task, String comment, User commentAuthor)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.AddComment(ApprovalTask task, String comment, User commentAuthor)
PublicAPI.Portal.CalendarEvent.Filter() - filter changed:
ConfirmParticipation(Boolean confirmParticipation) - Added
PublicAPI.Portal.Objects.Calendar.CalendarEventPeriodical.Filter() - filter changed:
ConfirmParticipation(Boolean confirmParticipation) - Added
Projects section:
Added methods:
Void PublicAPI.Projects.ProjectTaskBase.AddComment(ProjectTaskBase task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTask.AddComment(ProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Tasks.AddComment(ProjectTaskBase task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.AddComment(ProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.AddComment(Milestone task, String comment, User commentAuthor)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.AddComment(WorkflowProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.ProjectComplexTask.AddComment(ProjectComplexTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.CreateProjectTask.AddComment(CreateProjectTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.AddComment(ProjectPlanApprovalTask task, String comment, User commentAuthor)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.AddComment(ProjectBudgetApprovalTask task, String comment, User commentAuthor)
List of changes in version 3.8.13
User interface
Possibility to delete activities was added
Possibility to rotate pages of PDF files in preview was added
List of changes in version 3.8.12
Changes in object export/import
1. Algorithm for transferring local assemblies (connected in the object scripts module) from the source server to the recipient server was implemented.
2. When importing objects with global modules, a notification popup will appear. You should import global modules SEPARATELY. If you import objects with global modules to the recipient server without such global modules, import will be canceled with an error.
User interface
Selecting a task due date when reassigning
Possibility to specify task due date (if not specified, the fields will remain empty), when reassigning business process tasks, document tasks, etc. was added. When reassigning some task types (e.g. SMART-task), due dates cannot be changed: fields are unavailable on the form.
Projects
Possibility to enter a name when creating/copying project plan or budget version was added.
Designer
When adding a configuration in Designer, only remote connection to server is available now. Local connection to configuration is no longer supported.
PublicAPI
KPI section:
Added methods:
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KpiTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Docflow section:
Added methods:
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.AssignDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.RegistrationDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.CreateDocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.DocumentsBPMN.SendToApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Processes section:
Added methods:
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Portal section:
Added methods:
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.TaskBase.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.TaskBase.Task.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Projects section:
Added methods:
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Budget PublicAPI.Projects.Budgets.BudgetBudgets.Create(Project project, Action<IBudget> preSave)
Budget PublicAPI.Projects.Budgets.BudgetBudgets.CreateFrom(Budget oldBudget, Boolean cloneItems, Project newProject, Action<IBudget> preSave)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.ProjectComplexTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.CreateProjectTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, Comment comment)
List of changes in version 3.8.11
Methods public interface
Calculation methods that take project calendar into account were added:
/// <summary> /// Check if the date is a business day /// </summary> /// <param name="dateTime">Day</param>
/// <returns><c>true</c>, if the date is a business day </returns> public bool IsWorkDay(DateTime
dateTime) /// <summary> /// Calculate end date and time according to the calendar /// </summary>
/// <param name="startTime">Start date </param> /// <param name="interval">Time interval </param>
/// <returns>End date </returns> public DateTime EvalTargetTime(DateTime startTime, TimeSpan interval)
/// <summary> /// Calculate end date and time according to the calendar /// </summary> /// <param
name="startTime">Start date </param> /// <param name="intervalHours">Interval in hours </param> /// <returns>End date </returns> public DateTime EvalTargetTime(DateTime startTime, double intervalHours) /// <summary>
/// Calculate working interval between dates (days, hours, minutes and seconds) /// </summary> ///
<param name="startTime">Start date </param> /// <param name="endTime">End date</param> ///
<returns>Working interval</returns> public TimeSpan EvalWorkTimeDifference(DateTime startTime, DateTime
endTime) /// <summary> /// Calculate the number of working days between dates. A day with working hours is considered a working day, regardless of their duration. /// </summary> /// <param name="startTime">Start date </param>
/// <param name="endTime">End date</param> /// <returns>Working time interval </returns>
public int EvalWorkDaysDifference(DateTime startTime, DateTime endTime) /// <summary> /// Calculate end date based on the start date and duration
/// </summary> /// <param name="start"></param> /// <param name="durationDays"></param>
/// <returns></returns> public DateTime EvalEndDateByStartAndDuration(DateTime start, long durationDays) ///
<summary> /// Get end date of the previous working day /// </summary> /// <param name="date">Source date
</param> /// <returns>Result date</returns> public DateTime GetPreviousWorkDayEnd(DateTime
date) /// <summary> /// Get the start date of the next working day /// </summary> /// <param name="date">Source date</param> /// <returns>Result date</returns> public DateTime GetNextWorkDayStart(DateTime date)
/// <summary> /// Get the start of the working hours (if day off, then 0) /// </summary> /// <param name="day">Day</param>
/// <returns>Working hours start</returns> public TimeSpan GetWorkTimeStart(DateTime day) /// <summary>
/// Get the end of working hours (if day off then 0) /// </summary> /// <param name="day">Day</param>
/// <returns>Working hours end </returns> public TimeSpan GetWorkTimeEnd(DateTime day) /// <summary>
/// Add a certain number of days to a date, in accordance with the calendar (regardless of the working time) /// </summary> ///
<param name="startTime">Source date</param> /// <param name="addDays">Added/subtracted number of days
</param> /// <returns>Result date</returns> public DateTime AddDays(DateTime startTime, long
addDays) /// <summary> /// Get the working day duration /// </summary> /// <returns>Working day duration
</returns> public TimeSpan GetWorkTimeInDay(DateTime day) /// <summary> /// Minutes in a working day
/// </summary> /// <param name="day">Day</param> /// <returns>Number of minutes</returns>
public long MinutesInDay(DateTime day)
Export/import changed
1. Transfer of process policies was added.
2. Transfer of custom activities folders was added.
3. Object actions interface when importing EleWise.ELMA.Deploy.Import.ExtensionPoints. IEntityImportSaveActions was changed:
· method ExecPostSaveActions(IEntity entity, Type type, Dictionary<string, object> values, Dictionary<string, string> serviceData, List<LinksDictionaryItem> links) was replaced with method ExecPostSaveActions(IEntity entity, Type type, Dictionary<string, object> values, Dictionary<string, string> serviceData, LinksDictionary links).
4. Import-export serializer class EleWise.ELMA.Deploy.Serialization.EntityXmlSerializer was changed:
· type of returned value of function Deserialize(object obj, Dictionary<string, object> serObj) was changed to EleWise.ELMA.Deploy.Import.Links. LinksDictionary;
· Function ConvertFromSerializable(Dictionary<string, object> serObj, Type entityType, out IEntity tpItem) was removed;
· Function ConvertFromSerializable(object obj, Dictionary<string, object> serObj) was removed;
General modifications
1. Attaching multiple documents to a task
2. Filling in the task subject with the name of the attached document.
Public API
No changes in Public API
List of changes in version 3.8.10
No critical changes.
List of changes in version 3.8.9
User interface
1. Templates for viewing/editing properties of the Project plan and Project budget types were changed.
Clicking on the plan name used to open the plan page, and clicking on the icon next to it used to open the plan in a popup window with the possibility to view and edit it (if the property with the plan is editable).
Now clicking on the plan name opens it in a popup window with the possibility to edit/view it, and clicking on the icon opens the page for editing/viewing the plan (depending on the mode, in which the property is displayed – edit or view).
Similar changes were made to the display templates of Project budget type properties.
2. Possibility to select numerous resources was added to the “resource tasks” filter in the project plan.
3. Filters were added to the list of project plan filters:
· configurable filter on task due dates – a period (start and due date) is specified and plan tasks within this period are searched;
· filter on overdue tasks – published plan tasks that are overdue – only for the plan view mode.
4. ”Import top level tasks as stages” option was added to the project plan import mode. This option switches the “Project Stage” parameter to Yes for all the imported tasks on the top level. If you do not select this option, the Project Stage parameter will be switched according to the data in the imported file. By default, this option is set according to the project type setting “Set project stage to Yes for new tasks”.
Public methods and interface
Interface was added: EleWise.ELMA.BPM.Web.Common.ExtensionPoints. IEntitySelectGroupResolver – extension point for grouping objects in the drop down list by the specified criteria.
bool CheckType(Guid typeUid); - method for checking whether the extension point can be used by the entity type Uid.
IEnumerable<EntitySelectGroup> GetGroups(Guid typeUid, string text, IEnumerable<IEntity> entities); - method that selects entities and returns the list of groups, where typeUid is the entity type Uid, text is the text entered in the drop down list, entities is the list of entities for selecting to the groups.
Script editor
1. Highlighting of syntax errors was added. Tooltips for syntax errors were added. Display of syntax errors on the scroll bar was added (with the possibility to click on an error to open it). Alt+PageUp and Alt+PageDown shortcuts were added to quickly switch to the next or previous syntax error.
2. Context menu was updated, two new shortcuts were added: format the selected text (Ctrl+I) and format the entire document (Ctrl+Shift+I). IMPORTANT!!! -> code formatting will not work if the document contains syntax errors.
3. Highlighting of parentheses, brackets and braces was added.
4. Support of regions and wrapped code was added.
5. Code auto-formatting was added (line breaks, margins, auto-closing of parentheses).
6. Warnings of missing comments were removed from compilation errors.
7. Support of web services with basic authentication was added. Progress bar when adding a web service was added (it is almost unnoticeable on light-weight web services).
8. The standard set of links in processes was extended
Projects
When configuring transitions in the life cycle and selecting Start Process in the Action field, it is now possible to include parent types in input context variables of the project.
When selecting a list of processes started from the project page, it is now possible to limit the list in accordance with the project life cycle stages.
When selecting a list of process started from the project page, it is now possible to include parent types in input context variables of the project.
PublicAPI
KPI section:
PublicAPI.KPI.Objects.Models.LinkWorkflowKpi.Filter() - filter changed:
IndicatorId(Guid indicatorid) - Added
Docflow section:
Added methods:
Int64 PublicAPI.Docflow.Objects.Nomenclature.Numerator.GetNewId(Numerator numerator, Boolean save)
Processes section:
PublicAPI.Processes.Objects.WorkflowProcessListRunning.Filter() - filter changed:
ProcessHeader(ProcessHeader processHeader) - Added
List of changes in version 3.8.8
Script editor
1. Tooltips were added to the code editor. They display the same information as the autocomplete tips.
2. Ctrl + Shift + Space shortcut was added, which opens a popup with a tip on the method parameters and overloads.
3. Autocomplete values sorting was changed. Now all the local fields, methods, properties, etc. are shown first.
List of changes in version 3.8.7
User interface
Possibility to assign control over several project plan tasks at the same time
Fig. 1. Project plan. Context menu
Fig. 2. Project plan. Dialog box
Script editor
1. Context menu was added (global modules, processes).
2. Sorting of the tree in a global module was added.
Module template was added to the plugin
When creating a new project using the Visual Studio plugin, you can use a template of a ready-made module, which contains:
1. Server part:
1.1. Simple object with standard fields (name, created by, changed by, date created, date modified) and the Rename action;
1.2. Object manager with the rename object action;
2. Web part:
2.1. Menu item for the module;
2.2. Necessary views (table with object instances (grid), search in the table, object page, object renaming in a popup window;
2.3. Controller with methods required for working with the table, search, actions in the table and for renaming the object and displaying its page.
List of changes in version 3.8.6
Public methods and interfaces
Signature of methods changed:
In the class NHibernate.QueryExtensions (from the EleWise.ELMA.SDK assembly):
Instead of
void ExecuteUpdate(this IQuery query, bool cleanUpCache)
now
int ExecuteUpdate(this IQuery query, bool cleanUpCache)
(the number of changed instances is returned as the result).
Class DynamicEntityViewModel<T>, derivative of EntityModel<T> was added. This class is a model of object display with the use of dynamic forms. Using dynamic forms allows adding scripts executed when changing a value property or when clicking on a button.
Classes CommonInfoModel, ContractorBaseModel<T>, DocumentInfo, ProjectViewModel, SaleModel and SaleProductsModel are now inherited not from EntityModel<T>, but from DynamicEntityViewModel<T>. From these classes, methods FormViewItem FormViewItem(ViewType viewType) were deleted, which were used in views for getting the form. Instead, the form is now contained in the model, the FormViewItem View property is used to access it. The view type that was used as a parameter of the FormViewItem method must be specified when creating a model in the builder.
Thus, dynamic forms are now supported for the objects Document, Contractor, Deal, Project and their derivatives. Dynamic forms are also available for processes and objects, created by users in Designer.
Below is a description of the DynamicEntityViewModel<T> class.
public class DynamicEntityViewModel<T> : EntityModel<T> where T : class, IEntity { /// <summary> /// Builder
/// </summary> /// <param name="model">Model</param> /// <param name="viewType">View type</param>
public DynamicEntityViewModel(T model, ViewType viewType); /// <summary> /// Builder /// </summary> public
DynamicEntityViewModel(); /// <summary> /// Dynamic form settings /// </summary> public DynamicFormSettings
DynamicFormSettings { get; set; } /// <summary> /// Form, used for the model view /// </summary>
public FormViewItem View { get; set; } /// <summary> /// Form UID /// </summary> public string FormId { get;
set; } /// <summary> /// View type /// </summary> public ViewType ViewType { get; set; } /// <summary>
/// Initialize dynamic form settings /// </summary> /// <param name=" executeOnViewLoadScript ">Whether to execute the script upon form loading
</param> public virtual void InitializeDynamicFormSettings (bool executeOnViewLoadScript
= true); }
Static class EleWise.ELMA.Helpers.ButtonStyleHelper for getting information on button style based on the value of the ButtonStyle enumeration was added. Below is the class description.
public static class ButtonStyleHelper { /// <summary> /// Get button color /// </summary> /// <param
name="style">Button style</param> /// <returns>Button color</returns> public static Color GetButtonColor(ButtonStyle
style); /// <summary> /// Get button border color /// </summary> /// <param name="style">Button style</param>
/// <returns>Button border color</returns> public static Color GetBorderColor(ButtonStyle style); /// <summary>
/// Get button text color /// </summary> /// <param name="style">Button style</param> /// <returns>Button text color</returns> public static Color GetTextColor(ButtonStyle style);
/// <summary> /// Get CSS class for the button /// </summary> /// <param name="style">Button style</param> /// <returns>CSS class name</returns> public static string GetCssClass(ButtonStyle style);
/// <summary> /// Get hex-view of the button color /// </summary> /// <param name="style">Button style</param> /// <returns>Button color as #xxxxxx</returns> public static string GetColorString(ButtonStyle style); }
A static method was added to the class EleWise.ELMA.DynamicForms.DynamicFormHelper,
public static FormViewItem FormWithExecutedLoadScripts(FormViewItem formViewItem, IEntity entity, ClassMetadata metadata,
DynamicFormSettings dynamicFormSettings)
Which executes a script upon loading of the specified form and returns the resulting form.
User interface
“String” form element was added (RowViewItem).
You can place a string inside a column; it consists of two cells (CellViewItem), you can place form elements, including parts of properties (header, value, description) into each of them.
When you add a string in Designer, it always contains two cells: left, for property headers, and right, for values and descriptions. You can place several elements in any cell. Using a string allows creating a custom property view, for example, by placing a button (link) to the left cell instead of the standard header:
How it was: |
How it is now: |
“Button” form element was added (ButtonViewItem).
A button contains text and/or icon. When you click on a button, a link can open or a script can be executed. A button can have different styles, and can be displayed as a regular hyperlink. When adding several buttons and/or static text to a column in Designer, they are displayed as a column in the web interface; when adding to other form elements – panel, tab, string – as a row.
One of two actions can be performed when you click on a button:
· script execution,
· opening a link.
The button settings window is shown in the figure.
Note that you cannot specify a link and a script at the same time. If you select a link, you will not be able to select a script.
If you want to create a button with a script, you need to fill in the text and icon fields. These buttons are not required for link buttons, since links already contain a name and an icon.
You can also specify the following parameters for buttons:
· tooltip – text that appears when you mouse over the button;
· display as:
o a link,
o a button, in which case you can set the style and the minimum width.
The figure below shows different button styles.
Setting for auto-publishing of records classification scheme was removed – publication day
Now automatic publishing takes place on January 1 of the new year (if configured).
Copying tasks
“Copy” action was added to user tasks. Decision-based tasks cannot be copied.
Possibility to quick search values in an input element of the Drop-down list type added
Call page opens when receiving a call
Possibility to forbid opening the call page when receiving a call from an unknown number was added. Possibility to forbid was also added for the numbers, described by one of the regular expressions.
Script editor
1. Web service generation algorithm was changed. Generation is the same as in version 3.7, similarly to SharpDevelop. Web services are invoked in the same way as in version 3.7, similarly to SharpDevelop.
2. The file with the source code of the script editor is not deleted when publishing, checking or debugging a process.
User interface (Designer)
1. Window for switching to a specific line in the script editor was added. It is similar to VisualStudio. Press Ctrl G to open it.
2. Main snippets were added to the code editor. To activate a snippet, enter its name and press tab. Snippet names match the base cycles and check conditions.
List of snippets:
1. foreach / for
2. if / else / ifelse
3. while / do
4. switch
3. Warning was added (as a comment) for new users in the script editor in processes (only when creating a new process).
Visual Studio Plugin
Possibility to select all object types when developing a custom module was added
When creating an object with the VS plugin, you can add properties of all types in it; assemblies will be connected automatically when saving the object.
Possibility to select the required assemblies for a module was added
When selecting an ELMA package, all the dependent assemblies used to be connected; now you can select assemblies required for your module. Assemblies are displayed in a tree. When you select a dependent assembly, the main assembly connects automatically. E.g. if you select EleWise.ELMA.SDK.Web, its parent assembly EleWise.ELMA.SDK will be connected automatically. If you deselect the parent assembly, all the dependent assemblies are deselected as well.
Public API
Docflow section:
Added methods:
DocumentApprovementTask PublicAPI.Docflow.Tasks.CreateTask(ApprovementTaskGroup group, ApprovementListItem item, Nullable<WorkTime> planWorkLog, Boolean forceEndDateFromTask, User author, Nullable<DateTime> endDateFromTask, String customName)
DocumentApprovementTask PublicAPI.Docflow.Tasks.CreateTask(ApprovementTaskGroup group, ApprovementListItem item, Boolean forceEndDateFromTask, User author, Nullable<DateTime> endDateFromTask, String customName)
List of changes in version 3.8.5
Possibility to import data to a published/signed/outdated project plan was added (during the import, a draft copy will be created.
User interface (Designer)
1. Description of the main page was added in the Scripts section
2. The publish button is now unavailable, when a global module is in the debugging mode. It is still available in the editing mode.
List of changes in version 3.8.4
Deleted entities:
TerminateSendToApprovementShedulerJob (from the EleWise.ELMA.Documents. Models namespace)
TerminateCustomActivityJob (EleWise.ELMA.Workflow. Models)
TerminateMessageReceiveSchedulerJobs (EleWise.ELMA.Workflow.Models)
Deleted types:
TerminateSendToApprovementShedulerJobExecutor (EleWise.ELMA.Workflow.Scheduling)
TerminateTaskSchedulerJobManager (EleWise.ELMA.Workflow.Managers)
Interface EleWise.ELMA.Runtime.Managers.IFileManager changed
Added:
/// <summary> /// Folder for storing previews /// </summary> string PreviewsPath { get; }
Functioning of dependent hierarchical objects changed
1. Database conversion provider interface EleWise.ELMA.Runtime.Db.Migrator.Framework. ITransformationProvider was changed:
o int indent parameter was added to the parameters of function GetSqlHierarchicalChilds.
2. Hierarchical object service interface EleWise.ELMA.Model.Services. IHierarchicalMetadataService was changed:
o int indent parameter was added to the parameters of function GetAllHierarchicalEntities.
3. Model view attributes EleWise.ELMA.Model.Views. ViewAttributes were changed:
o The type of the HierarchicalChilds field was changed to EleWise.ELMA.Model.Views. HierarchicalChild;
o HierarchicalChilds field was marked with the [XmlIgnore] attribute.
Export/import changed
1. Interface of the extension point for processing metadata during the import EleWise.ELMA.Deploy.Import.ExtensionPoints.IMetadataImport was changed:
· MdType field was deleted;
· GetMetadata (string mdText) function was deleted;
2. Class for parameters in extension point methods for the check stage EleWise.ELMA.Deploy.Import.ExtensionPoints.PostCompleteTestImportParameters was changed:
· Import settings parameter EleWise.ELMA.Deploy.Import.ConfigImportSettings settings was added to the builder PostCompleteTestImportParameters.
3. Class for parameters of test reading of the configuration file for the check stage EleWise. ELMA. Deploy. Import. ImportTestReadData was changed:
· Import settings parameter EleWise.ELMA.Deploy.Import.ConfigImportSettings configImportSettings was added to the builder ImportTestReadData.
4. Enumeration EleWise. ELMA. Deploy. Import. ExtensionPoints. MetadataType was deleted.
5. Implementation of the extension point of actions when importing process header ProcessHeaderImportSaveActions was moved to namespace EleWise.ELMA.Workflow.Deploy.Import.
User interface
Display settings of dependent hierarchical objects changed
1. Property settings of dependent hierarchical objects were changed in Designer:
· Indent setting was added, which allows skipping several hierarchy level;
· 30-unit limit was added to the total depth and indent.
2. In the web part, for the property display control, which is the parent hierarchical object of the top level:
· Action of Indent and Depth settings was added;
· Possibility to select an item in a separate popup was removed
Import wizard in Designer changed
1. Imported data view step was added after the check imported configuration step.
2. Import step was changed:
· Data import process display tree was added;
· Text representation of import logs was moved to a separate tab.
Methods and interfaces
1. To the interface EleWise. ELMA. CRM. Telephony. Extensions. ITelephonyProvider method MakeCall( string phone) was added, which makes a phone call via the configured telephony provider.
2. Public web service I CallService ( EleWise.ELMA.CRM.Telephony.API.Service.v1.ICallService ) was added, which allows making a phone call via the configured telephony provider.
3. Handling of links with the prefix elmadms: callto={ phone} by ELMA Agent for making phone calls via the configured telephony provider.
User interface
1. Possibility to enter replaceable phone number prefix was added to the telephony settings. Thus, dialing a saved number with a certain prefix, it is automatically converted to the required one.
2. If telephony is configured in the system, then when clicking on a link with the “callto:” prefix, the system will suggest making a call with an app (by default, via Skype).
3. Limit for entering an apartment number was increased to 10 characters.
User interface (Designer)
1. Window for selecting the version of Visual Studio when opening a script for editing or debugging (in processes, objects and global modules) was added
Button for opening a script in VS was also changed (global modules scripts).
How it was:
How it is now:
The number of displayed items depends on the number of VS installed on your computer. If only one version of VS is installed, the window and the additional button will not be displayed (the installed VS will be started). The additional button is displayed only if you check the box “Remember and don’t show anymore”. To hide the button and cancel your choice, uncheck the box.
2. Buttons for opening a script in VS for editing or debugging were changed (Scripts section)
Scripts in processes
How it was:
How it is now:
Global modules
How it was:
How it is now:
The number of displayed items depends on the number of installed VS.
Note
Five editors are supported at the moment:
· Visual CSharp 2010,
· Visual Studio 2010,
· Visual Studio 2012,
· Visual Studio 2013,
· Visual Studio 2015.
PublicAPI
KPI section:
Added methods:
SMARTTask PublicAPI.KPI.Objects.SMART.SMARTTask.Create()
Docflow section:
Deleted object managers:
PublicAPI.Docflow.Objects.TerminateSendToApprovementShedulerJob
PublicAPI.Docflow.Objects.Nomenclature.Depository.Filter() - filter changed:
OnlyDepository(Nullable<Boolean> onlyDepository) - Added
Processes section:
Deleted object managers:
PublicAPI.Processes.Objects.TerminateCustomActivityJob
PublicAPI.Processes.Objects.TerminateMessageReceiveSchedulerJobs
Portal section:
Added methods:
Task PublicAPI.Portal.TaskBase.Task.Create()
Void PublicAPI.Portal.Security.UserSecurity.Save(User obj, Boolean saveAsBlocked)
List of changes in version 3.8.3
Code API. Public methods and interfaces
1. Component PublishedProcessFilterProvider was moved from namespace EleWise.ELMA.Workflow.Processes.Web.Components to EleWise.ELMA.Workflow.Components .
Generation of the list of reports to display in web changed
1. Report tree display model EleWise.ELMA.Reports.Models. ReportsListModel was changed:
1. Type of the field ReportGroups was changed to List<EleWise.ELMA.Reports.Models.ReportGroupModel>;
2. Type of the field Reports was changed to List<EleWise.ELMA.Reports.Models. ReportModel>;
2. In the report group manager EleWise.ELMA.Reports.Managers. ReportGroupManager:
1. Returned type of function GetPublishedReportGroups(bool checkViewPermission = true) was changed to EleWise.ELMA.Reports.Models. ReportsListModel;
2. Returned type of function GetPublishedReportGroups(string searchString, bool checkViewPermission = true) was changed to EleWise.ELMA.Reports.Models. ReportsListModel;
User interface
Button in the Designer sign in window changed
How it was:
How it is now:
List of changes in version 3.8.2
User interface
1. Check of global modules
2. Debugging of script global modules.
3. Editing of script global modules.
4. Mechanism of syncing changes made in an external environment was changed.
Methods and interfaces
1. Address generation from template, common template (for all the countries without a separate module) as a localizable string was removed to EleWise.ELMA.CRM.Components.AddressHelper.
2. Method EleWise. ELMA. Projects. Managers. GetPlanItemByTask was deleted. Instead method EleWise. ELMA. Projects. Managers.GetPlanItemsByTask was added, which receives all the plan tasks, referencing the task.
3. Method of the extension EleWise.ELMA.Web.Mvc.Extensions. ViewItemExtensions.HasItems(this RootViewItem rootViewItem) was added, which checks if there are any elements in RootViewItem (panel, column, etc.).
User interface
1. Customer type must be selected when importing customers from Excel (fig. 2). If no type is selected, import cannot be continued (fig. 1).
Fig. 1
Fig. 2
2. PO box in the place type (fig. 3).
Fig. 3
3. The system automatically identifies links and makes them clickable when displaying multi-line stings in the read only mode.
4. Possibility to set animated avatars in the user profile was added.
5. Process start task is highlighted red in a project plan if at least one process task is overdue.
In Designer, when viewing object properties, only the properties inherited from other objects are collapsed to the panel of base properties.
For example, for the Company object, only the properties, inherited from the Contractor object are collapsed.
How it was:
How it is now:
Plugin for VS
1. Plugin for Visual Studio now supports Visual Studio 12.
2. Possibility to change language was added to the plugin for Visual Studio.
PublicAPI
Projects section:
Outdated methods:
Milestone PublicAPI.Projects.ProjectTask.CreateMilestone(Project project, String subject, User executor, DateTime executeDate) (This method will be deleted soon)
Milestone PublicAPI.Projects.ProjectTaskBase.ProjectTask.CreateMilestone(Project project, String subject, User executor, DateTime executeDate) (This method will be deleted soon)
Enums section:
Added enumerations:
PublicAPI.Enums.CRM.AppartmentType.POBox
List of changes in version 3.8.1
Public methods and interfaces
1. In the controller EleWise . ELMA . BPM . Web . Tasks . Controllers . WorkLogReportController the following public methods were changed:
a. ActionResult ToApprov (List<long> selectedIds, bool onlySelected, string dayForWeek) на ActionResult ToApprov (List<long> selectedIds, bool onlySelected, DateTime? dayForWeek)
b. ActionResult ObjectSearchPopup (string popupId, string scriptSelect, string scriptParameters, string date, WorkLogObjectSearchType searchType, WorkLogObjectSearchTabActive activeTab = WorkLogObjectSearchTabActive.History) на ObjectSearchPopup (string popupId, string scriptSelect, string scriptParameters, DateTime? date, WorkLogObjectSearchType searchType, WorkLogObjectSearchTabActive activeTab = WorkLogObjectSearchTabActive.History)
c. ActionResult GetObject (Guid objectUid, long objectId, string dateStart, string dateEnd, long? harmonizatorId = null) на ActionResult GetObject(Guid objectUid, long objectId, DateTime? dateStart, DateTime? dateEnd, long? harmonizatorId = null)
d. ActionResult ObjectGrid (GridCommand command, string gridId = null, string selectScript = null, string @from = null, [Bind(Prefix = "DataFilter")] IWorkLogObjectSearchFilter filter = null) на ActionResult ObjectGrid (GridCommand command, string gridId = null, string selectScript = null, DateTime? @from = null, [Bind(Prefix = "DataFilter")] IWorkLogObjectSearchFilter filter = null)
e. ActionResult SaveDraft ([Bind(Prefix = "Item")]WorkLogReportItem item, string date) на ActionResult SaveDraft ([Bind(Prefix = "Item")]WorkLogReportItem item, DateTime? date)
f. ActionResult WorkLogGroupUpdate (List<string> workLogIds, long? harmonizatorId, long? activityId, string date) на ActionResultWorkLogGroupUpdate (List<string> workLogIds, long? harmonizatorId, long? activityId, DateTime? date)
g. ActionResult OvertimeValidate (string dayForWeek, List<long> selectedIds) на ActionResult OvertimeValidate (DateTime? dayForWeek, List<long> selectedIds)
2. Method of the controller EleWise . ELMA . BPM . Web . Tasks . Controllers . WorkLogReportController .DateTime? ParseDate was deleted.
3. Changes in the model EleWise.ELMA.BPM.Web.Tasks.Models. WorkLogItemGridParams:
a. Property string DateTo was replaced with DateTime ? DateTo
b. Property string DateFrom was replaced with DateTime? DateFrom
4. Class EleWise.ELMA.Web.Mvc.Components.WorkTimeHelper was deleted
User interface
Specifying time reports and working hours in hours/minutes.
How it was:
How it is now:
Display of diagram-portlets from the KPI Dashboards unit is supported only for Firefox, Google Chrome and IE9
If you use IE8, a message that the browser is not supported will be displayed.
Global Read Only setting for forms (form builder)
Starting with the version 3.8.1, the read only setting of a form affects all the form properties.
If you check this box, all the elements become read only, but you can uncheck the Read only box for specific properties, thus overwriting the global parameter of the form.
If such a form is used as a view form of an object, then all the fields will be read only (overwriting in properties will not take effect).
Changes in PublicAPI
Processes section:
Added object managers:
PublicAPI.Processes.Objects.RecreateMonitorCacheJob
PublicAPI.Processes.Objects.OptimizeMonitorCacheJob
Added methods:
MonitorUpdateActionQueueItemFilterHelper PublicAPI.Processes.Objects.MonitorUpdateActionQueueItem.Filter()
PublicAPI.Processes.Objects.MonitorUpdateActionQueueItem.Filter() - filter changed:
User(User user) - Added
List of changes in version 3.8.0
Data model
1. Permanent Uids were assigned to the standard elements of the Budget revenue item object:
Revenues from Product Sales "7CBFC51E-73F5-4B2F-89BE-496B7447F68F"
Consulting "DD4F2F80-B348-4CDA-88EB-0DDD0FDA02F6"
License Fees "88FB658E-DC36-438E-B958-9D8F3C10EB7D"
Other "41B15125-61F3-4257-A72D-A1AF10801114"
2. Permanent Uids were assigned to the standard elements of the Budget expense item object:
Rent "297E939B-A4D4-4D8B-9CF4-560C7125D2F0"
Payroll "22344C0D-601A-415C-8494-0FCE6FBEA06C"
Trip Costs "57F5DDB5-909A-4CE4-8244-3ECE1AF17F4C"
Insurance Payment "4B920330-F942-4348-B36D-7BEDD5F77BF4"
Loan Payment "9F4F445B-BAB8-451E-9CF5-AD396A0C1D04"
Other "969D906A-CEE4-4EAE-AC04-5A221CC71050"
3. Budget entity EleWise.ELMA.Projects.Models.Budgets.IBudget was added, which supports versioning. Similarly to the plan, it has a status, version number, etc. A budget contains links to versioned revenue elements (IncomeItems property – EleWise.ELMA.Projects.Models.Budgets.IBudgetVersionIncomeItem type collection) and versioned expense elements (ExpenseItems property – EleWise.ELMA.Projects.Models.Budgets.IBudgetVersionExpenseItem type collection). These versioned elements point to actual budget elements after saving and publishing a budget version.
Public methods and interfaces
1. Object IProjectPhaseType (project type phase) was added, inherited from IProjectPhase. Property ProjectMetadataHead was moved from base IProjectPhase to IProjectPhaseType.
2. Object IProjectPhaseLevel (project phase) was added, inherited from IProjectPhase. Property Project was moved from base IProjectPhase to IProjectPhaseLevel.
3. Changes in controller EleWise . ELMA . BPM . Web . Common . Controllers . WatchController:
a. ActionResult Add(WatchesModel model) was deleted.
b. ActionResult Info(Guid typeUid, long? entityId, string watchPanel, string addWatchScript, string removeWatchScript) was replaced with ActionResult Info(Guid typeUid, string entityId, string watchPanel, string addWatchScript, string removeWatchScript)
c. ActionResult Settings(Guid typeUid, long entityId, string popupId, string callback) was replaced with ActionResult Settings(Guid typeUid, string entityId, string popupId, string callback)
d. ActionResult Settings(WatchListModel model) was replaced with ActionResult Settings(Guid entityTypeUid, string entityId, WatchStatus globalWatchStatus, WatchStatus watchStatus)
e. ActionResult AddWatch(WatchInfo model) was replaced with ActionResult AddWatch(Guid typeUid, string entityId)
f. ActionResult RemoveWatch(WatchInfo model) was replaced with ActionResult RemoveWatch(Guid typeUid, string entityId)
g. ActionResult List(Guid typeUid, long entityId, string popupId) was replaced with ActionResult List(Guid typeUid, string entityId, string popupId)
h. ActionResult FullListPopup(Guid typeUid, long entityId, Guid? permissiontoValidate, Guid? typeUidForPermission, string popupId, bool canEdit) was replaced with ActionResult FullListPopup(Guid typeUid, string entityId, Guid? permissiontoValidate, Guid? typeUidForPermission, string popupId, bool canEdit)
i. ActionResult SaveList(WatchListInfoModel model, EditableListModel watchListMembers) was replaced with ActionResult SaveList(Guid entityTypeUid, string entityId, EditableListModel watchListMembers)
4. Interface method EleWise.ELMA.BPM.Web.Common.ExtensionPoints.IWatchNotifier
Notify(long entityId, IEnumerable<IUser> addUsers, IEnumerable<IUser> deleteUsers) was changed to Notify(object entityId, IEnumerable<IUser> addUsers, IEnumerable<IUser> deleteUsers)
5. Methods of the class EleWise.ELMA.BPM.Web.Common.Services. WatchListService were changed:
IEnumerable<AssignedRoleTypeModel> CreateAssignedRoleTypeModel(Guid typeUid, long? entityId = null) to IEnumerable<AssignedRoleTypeModel> CreateAssignedRoleTypeModel(Guid typeUid, object entityId = null)
void SaveFromModel(Guid typeUid, EditableListModel model, long? entityId = null) to SaveFromModel(Guid typeUid, EditableListModel model, object entityId = null)
6. Methods were added to the interface EleWise.ELMA.Common.ExtensionPoints.IWatchProvider:
bool NeedConfirmFromDelete(Guid entityTypeUid, [NotNull]object entityId)
string TextConfirmFromDelete(Guid entityTypeUid, [NotNull]object entityId)
bool IsAvailable(Guid entityTypeUid, object entityId)
bool CanSendToUser(IEntity entity, IUser user)
7. Methods were changed in EleWise.ELMA.Common.Managers. WatchManager:
List<IWatch> GetWatches(Guid typeUid, long? entityId, bool onlyForEntity = false, bool excludeExtensions = true) to List<IWatch> GetWatches(Guid typeUid, object entityId, bool onlyForEntity = false, bool excludeExtensions = true)
List<IWatch> BuildWatchList(Guid typeUid, long? entityId, Guid[] parentTypeUid, long? parentEntityId)to List<IWatch> BuildWatchList(Guid typeUid, object entityId, Guid[] parentTypeUid, object parentEntityId)
List<IWatch> GetWatchByUser(Guid typeUid, long? userId, long? entityId = null)to List<IWatch> GetWatchByUser(Guid typeUid, long? userId, object entityId = null)
bool IsWatchExsist(Guid typeUid, long? entityId, IUser user = null)to bool IsWatchExsist(Guid typeUid, object entityId, IUser user = null)
CreateWatchByUser(Guid typeUid, long? entityId, IUser user)to CreateWatchByUser(Guid typeUid, object entityId, IUser user)
DeleteWatchesByUser(IUser user, long entityId, Guid typeUid)to DeleteWatchesByUser(IUser user, object entityId, Guid typeUid)
8. Properties of the entity EleWise.ELMA.Common.Models.Watch were changed:
System.Nullable<long> EntityId to string EntityId
System.Nullable<long> ParentEntityIdto string ParentEntityId
9. Method EleWise.ELMA.Projects.Managers.ProjectPlanManager.PublishForProject(IProjectPlan plan, Dictionary<IProjectPlanItem, List<Pair<ExecutorSetType, List<IUser>>>> executors, bool addToParticipants) - became private.
10. Method string CloseFunctionName ( string uniquePrefix) was added to the extension point IFilePreviewCreatorRenderer, responsible for the OnClose name of the JavaScript function
11. Class ProjectObjectViewItemProvider was moved from namespace EleWise.ELMA.Documents.Web.Components вEleWise.ELMA.Projects.Components .
12. Method EleWise.ELMA.Projects.Managers.ProjectTaskManager.MakeTaskPhase was deleted
13. Method EleWise.ELMA.Projects.Managers.ProjectTaskManager.MakeTaskNotPhase was deleted
14. Actions MakeTaskPhase , MakeTaskNotPhase were deleted from class EleWise.ELMA.Projects.Models.ProjectTaskActions.
15. Property ResponsiblesForPhaseTask was moved from EleWise.ELMA.Projects.Models.IProjectTask to EleWise.ELMA.Projects.Models.IProjectTaskBase and Uid was replaced to "12a777a5-8ff3-421f-bb1f-2d399d6c5212"
16. For the Task property of the interface EleWise.ELMA.Projects.Models.IResponsibleForPhaseTask Uid was changed to "7349893c-dd7e-44d1-a5f2-c30a418a3969" and type was changed from EleWise.ELMA.Projects.Models.IProjectTask to EleWise.ELMA.Projects.Models.IProjectTaskBase
17. System processes Incoming payment, Outgoing payment were deleted and moved to the store.
18. EleWise . ELMA . Projects . Models . IBudgetIncomeItem и EleWise . ELMA . Projects . Models . IBudgetExpenseItem support soft deleting
19. Properties BudgetIncomeItems and BudgetExpenseItems were deleted from the interface EleWise . ELMA . Projects . Models . IProject . Now the IBudget entity points at versioned expense and revenue elements, which in turn point at actual elements after publication.
20. Properties Amount and Substantiation were deleted from itnerfaces EleWise . ELMA . Projects . Models . IBudgetIncomeItem and EleWise . ELMA . Projects .Models . IBudgetExpenseItem . These properties are available in sum elements ( IBudgetVersionIncomeAmount , IBudgetVersionExpenseAmount ) of versioned budget elements.
21. Methods IsAvailableCreate , IsAvailableEdit , IsAvailableDelete , GetName ; properties EmptyItemName ,EmptyPlanName , EmptyPhaseName were deleted from managers EleWise . ELMA . Projects . Managers . BudgetIncomeItemManager and EleWise . ELMA . Projects . Managers .BudgetExpenseItemManager
22. TypeUid properties were deleted from managers EleWise . ELMA . Projects . Managers . BudgetIncomeItemRefManager and EleWise . ELMA . Projects . Managers .BudgetExpenseItemRefManager.
23. Methods SetParticipantsFromProject ,IsAvailableProjectsPlanPublish (moved to EleWise.ELMA.Projects.Managers. ProjectPlanManager ) were deleted from manager EleWise . ELMA . Projects . Managers . ProjectManager
24. Method MergeFilter was deleted from manager EleWise . ELMA . Projects . Managers . ProjectPhaseManager.
25. Parameters were changed in IWorkflowProcessListRunningDTOManager .
How it was
List<ProcessHeaderDTO> Load(Guid typeId);
void Save(List<ProcessHeaderDTO> data, Guid typeId);
How it is now
List<ProcessHeaderDTO> Load(Guid typeId);
void Save(List<WorkflowProcessListRunningDTO> data, Guid typeId);
26. Extension point EleWise.ELMA.Web.Mvc.ExtensionPoints.IPropertyViewItemAdjustment with method Adjust(PropertyViewItem propertyViewItem, object model, ViewType viewType) for changing PropertyViewItem right before their rendering was added. The implementations of the extension point IFormViewItemTransformate that pertained to PropertyViewItem, were changed into a new extension point, since at the form transformation stage not all the PropertyViewitem can be on the form:
a. In the namespace EleWise.ELMA.CRM.Web.Components:
i. ContractorFormViewItemTransformate was replaced with ContractorDublicatesPropertyViewItemAdjustment
ii. SaleDublicatesFormViewItemTransformate was replaced with SaleDublicatesPropertyViewItemAdjustment
iii. SaleSaleFunnelFormViewItemTransformate was replaced with SaleSaleFunnelPropertyViewItemAdjustment
b. In the namespace EleWise.ELMA.Documents.Web.Components:
i. DocumentNameFormViewItemTransformate was replaced with DocumentNamePropertyViewItemAdjustment
ii. DocumentRestrictChangeFolderFormViewItemTransformate was replaced with DocumentRestrictChangeFolderPropertyViewItemAdjustment
c. In the namespace EleWise.ELMA.Projects.Web.Components.FormViews:
i. ProjectFormViewItemTransformate was replaced with ProjectPropertyViewItemAdjustment
d. In the namespace EleWise . ELMA . Projects . Web . Components :
i. DocumentRestrictChangeFolderFormViewItemTransformate was replaced with DocumentRestrictChangeFolderPropertyViewItemAdjustment
ii. ProjectFormViewItemTransformate was replaced with ProjectPropertyViewItemAdjustment
e. In the namespace EleWise.ELMA.Workflow.Web.Components:
i. A part of the logic of the class WorkflowTaskPropertyReadOnlyFormViewItemTransformate was moved to WorkflowTaskPropertyViewItemAdjustment
f. Class EleWise.ELMA.Web.Mvc.Components.HideEmptyPropertyViewItemAdjustment for hiding empty properties was added.
27. Extension EleWise . ELMA . Web . Mvc . Extensions . Adjust ( this PropertyViewItem propertyViewItem ) , which finds all the implementations of the extension point IPropertyViewItemAdjustment and applies the provided changes, was added for PropertyViewItem.
28. For the class EleWise.ELMA.Web.Mvc.Components.HideEmptyPropertyViewItemAdjustment extention point EleWise.ELMA.Web.Mvc.ExtensionPoints.IHideEmptyPropertyViewItemAdjustment was added with methods IsApplicable(PropertyViewItem propertyViewItem, object entity) for checking applicability of the Adjust method to a specific PropertyViewItem (method HideEmptyPropertyViewItemAdjustment applies only the first extension point, which returns true ) and with method Adjust(PropertyViewItem propertyViewItem, object entity) for changing PropertyViewItem. The extension point has three implementations:
a. EleWise . ELMA . Workflow . Web . Components . HideEmptyContextPropertyViewItemAdjustment for process context variables.
b. EleWise . ELMA . Documents . Docflow . Web . Components . HideEmptyRegistrationCardPropertyViewItemAdjustment for record card properties.
c. EleWise . ELMA . Web . Mvc . Components . DefaultHideEmptyPropertyViewItemAdjustment for checking entity properties.
29. Extension point EleWise.ELMA.Web.Mvc.ExtensionPoints. IPropertyIsEmpty was added, with method IsEmpty(PropertyViewItem propertyViewItem, object entity, EntityMetadata metadata) for checking if the PropertyViewItem value is empty. The method returns true, if the property is empty; false, if not empty; null, if check failed. Method EleWise.ELMA.Web.Mvc.Components.HideEmptyPropertyViewItemAdjustment.Adjust consequently invokes implementations of this extension point, until a non-empty value is returned. The extension point has two implementations:
a. EleWise . ELMA . CRM . Web . Components . PropertyMarketingEffectIsEmpty for checking a marketing event (since it may display the value of another property instead — marketing group or activity).
b. EleWise . ELMA . Web . Mvc . Components . PropertyIsEmpty for all the other properties.
30. In the class EleWise . ELMA . Model . Views . FormViewItem property HideEmptyChildProperties was added, indicating, whether to hide empty properties on this form.
31. For the structure EleWise . ELMA . Common . Models . WorkTime operators of implied coercion to long ? and back were added.
32. Classed, derived from EntitySubTypeDescriptor< T > were added: EleWise.ELMA.CRM.Descriptors.AddressDescriptor ,EleWise.ELMA.CRM.Descriptors.EmailDescriptor , EleWise.ELMA.CRM.Descriptors.PhoneDescriptor and EleWise . ELMA . Documents . Descriptors .DocumentAttachmentDescriptor that account for specific features of addresses, emails, phone numbers, documents with attachments, when they are checked for being empty by method IsEmpty(PropertyMetadata propertyMetadata, object val). In the class EleWise.ELMA.Model.Types.MoneyDescriptor method IsEmpty(PropertyMetadata propertyMetadata, object val) was redefined.
33. Attribute UseLifeCycle EleWise . ELMA . Documents . Metadata . UseLifeCycleAttribute was added to the metadata of document types, which indicates, whether life cycles are used for documents of this type.
34. Manager EleWise . ELMA . CRM . RU . Managers . RuAddrManager was deleted, all the necessary methods were moved to EleWise.ELMA.CRM.Managers.AddressManager ;
35. Public class EleWise.ELMA.CRM.RU.Components.CountryInfo with constants COUNTRY_NAME and COUNTRY_CODE was added for RF.
IGlobalSettingsModule interface changed
Method added:
/// <summary> /// Clear cache (for reloading settings) /// </summary> void ClearCache();
IUser interface changed
Added:
/// <summary> /// User locale /// </summary> string Lang { get; set; } /// <summary> /// Whether the locale is system
/// </summary> bool IsSystemLocal { get; set; }
<span style="color: #333333; font-family: Tahoma; font-size: 13px;">
</span>
IObjectCreator changed
Method added:
/// <summary> /// Additional parameters from server /// </summary> /// <param name="container"></param>
/// <param name="propertyMetadata"></param> /// <returns></returns> Dictionary<string, object>
GetServerParams(object container, IPropertyMetadata propertyMetadata);
<span style="color: #333333; font-family: Tahoma; font-size: 13px;">
</span>
IConfigExportExtension extension point changed
Signature of the method AddExportObjects was changed (instead of several parameters, now there is one, that contains the same values as properties):
/// <summary> /// Add objects of the extension to the list of objects to export /// </summary>
/// <param name="parameters">Object export parameters</param> void AddExportObjects(ExportExtensionParams
parameters);
<span style="color: #333333; font-family: Tahoma; font-size: 13px;">
</span>
IEntityImportSaveActions extension point and its base implementation EntityImportSaveActions changed
Signature of methods ExecPreSaveActions and TestRead was changed (also classes are passed instead of a set of separate parameters):
/// <summary> /// Executes additional actions before saving an entity of a specific type /// </summary>
/// <param name="entity">Entity instance</param> /// <param name="data">Additional service data</param>
/// <returns></returns> List<TestImportMessages> ExecPreSaveActions(IEntity entity, ImportEntityPreSaveData
data); /// <summary> /// Check the entity before the import /// </summary> void TestRead(ImportTestReadData data,
ImportTestReadResult result);
IConfigImportExtension extension point changed
The structure of methods was redeveloped
[ExtensionPoint(ComponentType.Server)] public interface IConfigImportExtension { /// <summary> /// After checking the file /// </summary> /// <param name="parameters"></param> void OnPostCompleteTest(PostCompleteTestImportParameters
parameters); /// <summary> /// Before starting the import /// </summary> /// <param name="parameters"></param>
void OnPreStartImport(PreStartImportParameters parameters); /// <summary> /// Before reading packages /// </summary>
/// <param name="parameters"></param> void OnPreReadPackets(PreReadPacketsParameters parameters); /// <summary>
/// After reading packages /// </summary> /// <param name="parameters"></param> void OnPostReadPackets(PostReadPacketsParameters
parameters); /// <summary> /// Execute the required actions after the import is complete /// </summary> /// <param
name="parameters"></param> void OnPostCompleteImport(PostCompleteImportParameters parameters); }
IImportSaveActions extension point deleted
Instead you can use IConfigImportExtension
Command prompt parameters for automating the system installation added
· /ConfigDirExist ="" – path to an existing configuration
· /ConfigDirNew ="" – path to a new configuration
· /DB = - DBMS (FIREBIRD or FB, ORACLE, MSSQL or SQL)
· /FBPor t= - Fb port
· /OracleConnectionString ="" – Oracle connection string
· /MSSQLServer ="" – server name
· /MSSQLBase ="" – database name
· /MSSQLUser ="" – user
· /MSSQLPassword ="" – database password
· /WebPort = - web application port
· /Internal – install on an internal ELMA server
· /IIS – install on iis
· /IISSiteName ="" – site name in iis
· /IISPoolName ="" – pool name in iis
· /IISCredentials = - Application pool credentials (LocalSystem, LocalService, NetWorkService, AppPool, User)
· /IISUser ="" – iis user name
· /IISPassword ="" – iis user password
Use quotation marks, because otherwise, values with spaces will not apply.
Example:
ELMA3-Enterprise.exe /ConfigDirNew="c:newdir" /DB=MSSQL /MSSQLServer="SERVERNAME" /MSSQLBase="ELMA3" /MSSQLUser="sa" /MSSQLPassword="!Q2w3e4r5t" /WebPort=7777 /IIS /IISCredentials=LocalSystem
It means that:
1. ELMA will be installed to the default directory (to change it, use /DIR="")
2. The configuration will be located in c:newdir
3. Server MSSQL named SERVERNAME was selected; database name is ELMA3, user name is sa, and password is !Q2w3e4r5t
4. Web application port is 7777
5. Installed on IIS as LocalSystem
Logic of receiving a message from MSMQ changed
1. Receive message logic was changed for the method Receive of the manager EleWise. ELMA. MessageQueue. Manager.MSMQMessageManager. Before that, if the type was null, the method would return null. Now it returns a binary view of the message body.
2. For the activity “Receive Message” the logic of receiving a message by the script that processes the received data was changed. Before that, if the script for identifying the object type returned null, then the script for processing received data would get null. Now it receives a binary representation of the message body.
DocumentInfoExt registration views model changed
If some of the below mentioned views was redefined in the configuration, you need to rewrite them taking the changes into account.
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsRegistrationCardCreate.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsRegistrationCardEdit.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardActionAfterRegistrationScripts.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardCreateForm.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardCreateFormWrapper.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardInfoPanel.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardRegistrationCardFormHiddens.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationCardRegistrationNumberSelector.cshtml
· WebModulesEleWise.ELMA.Documents.Docflow.WebViewsSharedRegistrationDocumentTaskTaskInfo.cshtml
User interface
Time report
Global time report setting was renamed to Time report limit. The functions of this setting was extended to all the time report limits.
Background colors for time report items was added:
· red – there is a time report limit;
· yellow – some fields are empty;
· green – time report item is saved and can be sent for approval.
Possibility to copy the selected items to other days was added.
Possibility to create draft items, without specifying time report objects was added. Selecting an object is still required, but now you can specify the hours and the description first.
Project budgets
1. A new component is used for displaying the budget.
2. Possibility to format budget report over a specific period was added.
Task transition settings changed
How it was:
How it is now:
How it was:
How it is now:
Document management
Document management administration settings divided into groups
How it was:
How it is now:
How it was:
How it is now:
“Hide empty properties” was added on forms in Designer
How it was:
How it is now:
“Show even if empty” option was added to the form property settings in Designer
This option is available only if the form has the “Hide empty properties” option enabled.
How it was:
How it is now:
Empty properties are hidden on document view forms. Description and barcode were moved down in the list of document attributes
How it was:
How it is now:
In Designer, base object properties grouped into a collapsible panel
How it was:
How it is now:
“Use life cycle” box was added to the document type settings in Designer
When it is not checked, the Life cycle tab is not displayed and the status panel on the document page in the web interface is not displayed as well. All the other document type settings were moved to a separate group.
How it was:
How it is now:
“Program settings” and “Filter settings” units were removed from the “Advanced” tab of the document type settings in Designer
How it was:
How it is now:
“Table” and “Filter” tabs were removed from document type settings in Designer.
How it was:
How it is now:
KPI module
Entering values
How it was:
How it is now:
KPI scale
How it was:
How it is now:
Goal maps and goals were moved from the KPIS section to a separate section
Buttons were removed from the toolbar. All the actions are performed via the context menu
Activities are no longer in Designer. To create and edit activities, use the web application
You cannot delete a published goal map; you can move it to archive
Editing setting – select whether to edit in the web browser or in Designer
Dashboards are obsolete. To visualize data, use diagram portlets in Web Application.
Data collection task period settings – now you can select several periods
Start screen redesign
How it was:
How it is now:
C# script editor changed
Changes were made to the code editor in ELMA Designer in the new version.
New dialog box for adding links to assemblies
This dialog box allows adding links from the global cache, links to ELMA assemblies, links to global script modules and adding a link to an assembly by specifying a path to an assembly in the file system.
Editing and debugging in Visual Studio and SharpDevelop
In the new system version, the possibility to develop scripts in a third party application was added.
To switch to the editing mode, use the respective interface buttons.
After opening a script in a development environment, when saving and switching to the designer window, you will be offered to load the changes made.
The possibility to debug scripts in a development environment was added in the Scripts section. When you attempt debugging, you need to select a process to which the debugger will connect and wait for loading.
Changes in PublicAPI
CRM section:
PublicAPI.CRM.Contractor.ContractorIndividual.Filter() - filter changed :
DocumentEndDate(DateTimeRange documentEnddate) - Added
KPI section:
Added object managers:
PublicAPI.KPI.Objects.KpiActionPermission
KpiActionPermissionFilterHelper PublicAPI.KPI.Objects.KpiActionPermission.Filter()
PublicAPI.KPI.Objects.Models.KpiWorkflowTask
KpiWorkflowTaskFilterHelper PublicAPI.KPI.Objects.Models.KpiWorkflowTask.Filter()
Added methods :
MindMapPermissionFilterHelper PublicAPI.KPI.Objects.MindMapPermission.Filter()
Void PublicAPI.KPI.Objects.KpiTask.AddComment(KpiTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.KPI.Objects.KpiTask.AddComment(KpiTask task, CommentActionModel model)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.KPI.Objects.Performance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, CommentActionModel model)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.KPI.Objects.KPIPerformance.ApprovalTaskPerformance.AddComment(ApprovalTaskPerformance task, CommentActionModel model)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.AddComment(SMARTTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.KPI.Objects.SMART.SMARTTask.AddComment(SMARTTask task, CommentActionModel model)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.AddComment(SMARTTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.KPI.Objects.KPISMART.SMARTTask.AddComment(SMARTTask task, CommentActionModel model)
PublicAPI.KPI.Objects.Models.KpiWorkflowTask.Filter() - filter changed :
Statuses(List<TaskBaseStatus> statuses) - Added
PublicAPI.KPI.Objects.KpiActionPermission.Filter() - filter changed :
KpiAction(KpiAction kpiAction) - Added
PublicAPI.KPI.Objects.MindMapPermission.Filter() - filter changed :
MindMap(MindMap mindmap) - Added
PublicAPI.KPI.Objects.SMART.SMARTTask.Filter() - filter changed :
KpiActions(KpiAction[] kpiActions) - Added
PublicAPI.KPI.Objects.KpiTask.Filter() - filter changed :
KpiActions(KpiAction[] kpiActions) - Added
PublicAPI.KPI.Objects.MindMap.Filter() - filter changed :
EditType(Nullable<MindMapEditType> editType) - Added
PublicAPI.KPI.Objects.KpiAction.Filter() - filter changed :
Statuses(ActionStatus[] statuses) - Added
PublicAPI.KPI.Objects.Target.Filter() - filter changed :
UserResponsible(User userResponsible) - Added
Docflow section:
Added methods:
BinaryFile PublicAPI.Docflow.Document.GetFileByDocumentId(Document document)
String PublicAPI.Docflow.Document.Register(Document document, RegistrationVariant registrationVariant, ReservedRegNumber reservedRegNumber)
String PublicAPI.Docflow.Document.Register(Document document, Depository deal, DocumentFlowType documentFlow, ReservedRegNumber reservedRegNumber)
IEnumerable<Document> PublicAPI.Docflow.Folder.GetAllDocuments(Folder folder)
IEnumerable<Document> PublicAPI.Docflow.Folder.GetAllDocuments(Folder folder, Boolean searchInInnerFolders)
Void PublicAPI.Docflow.DocumentVersion.GenerateByCurrentVersion(Document document, String fileName, Boolean saveOldExtension)
Void PublicAPI.Docflow.DocumentVersion.GenerateByTemplateFile(Document document, String fileName, Boolean saveOldExtension)
Void PublicAPI.Docflow.DocumentVersion.GenerateByFile(Document document, BinaryFile file, String fileName, Boolean saveOldExtension)
DocumentAttachment PublicAPI.Docflow.Objects.DocumentAttachment.Create(Document document, User creationAuthor)
DocumentAttachment PublicAPI.Docflow.Objects.DocumentAttachment.Create(Document document)
MyLegalPersonFilterHelper PublicAPI.Docflow.Objects.MyLegalPerson.Filter()
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.AddComment(SendDocumentTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.SendDocumentTask.AddComment(SendDocumentTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.AssignDocumentTask.AddComment(AssignDocumentTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.RegistrationDocumentTask.AddComment(RegistrationDocumentTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.CreateDocumentTask.AddComment(CreateDocumentTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.SendToAcquaintanceTask.AddComment(SendToAcquaintanceTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.BPMN.SendToApprovementTask.AddComment(SendToApprovementTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.AddComment(DocumentAcquaintanceTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.Tasks.DocumentAcquaintanceTask.AddComment(DocumentAcquaintanceTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.AddComment(DocumentTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.Tasks.DocumentTask.AddComment(DocumentTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.AddComment(ResolutionTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.Tasks.ResolutionTask.AddComment(ResolutionTask task, CommentActionModel model)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.AddComment(DocumentApprovementTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Docflow.Objects.Tasks.DocumentApprovementTask.AddComment(DocumentApprovementTask task, CommentActionModel model)
Boolean PublicAPI.Docflow.Objects.Nomenclature.ReservedRegNumber.CanReservRegNumber(RegistrationVariant variant)
ReservedRegNumber PublicAPI.Docflow.Objects.Nomenclature.ReservedRegNumber.ReservRegNumberByVariant(RegistrationVariant variant)
ReservedRegNumber PublicAPI.Docflow.Objects.Nomenclature.ReservedRegNumber.ReservRegNumberByDepository(Depository depository)
ReservedRegNumber PublicAPI.Docflow.Objects.Nomenclature.ReservedRegNumber.CreateReservedRegNumberModel(Depository depository) (This method is outdated )
Numerator PublicAPI.Docflow.Objects.Nomenclature.Numerator.CreateNumerator()
Numerator PublicAPI.Docflow.Objects.Nomenclature.Numerator.CreateNumerator(Int64 increment)
Numerator PublicAPI.Docflow.Objects.Nomenclature.Numerator.CreateNumerator(Int64 increment, Guid uid)
Outdated methods:
ReservedRegNumber PublicAPI.Docflow.Objects.Nomenclature.ReservedRegNumber.CreateReservedRegNumberModel(Depository depository) (This method is outdated)
PublicAPI.Docflow.Objects.RegistrationCard.Filter() - filter changed :
GlobalDepositorySearch(Boolean globalDepositorySearch) - Deleted
PublicAPI.Docflow.Objects.MyLegalPerson.Filter() - filter changed :
HeadOrganizationItem(OrganizationItem headOrganizationItem) - Added
PublicAPI.Docflow.Types.BudgetExpense.Filter() - filter changed :
ExcludeObsolete(Nullable<Boolean> excludeObsolete) - Added
PublicAPI.Docflow.Types.BudgetIncome.Filter() - filter changed :
Budget(Budget budget) - Added
PublicAPI.Docflow.Objects.Nomenclature.Numerator.Filter() - filter changed :
OnlyUsers(Nullable<Boolean> onlyUsers) - Added
PublicAPI.Docflow.Tasks.Filter() - filter changed :
KpiActions(KpiAction[] kpiActions) - Added
Processes section:
Added methods:
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.AddComment(WorkflowTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Processes.WorkflowTaskBase.WorkflowTask.AddComment(WorkflowTask task, CommentActionModel model)
ProcessMetric PublicAPI.Processes.Objects.ProcessMetricValue.GetMetricByName(WorkflowProcess process, String metricName)
Void PublicAPI.Processes.Objects.ProcessMetricValue.SetMetricValue(ProcessMetric processMetric, Nullable<Double> value)
Void PublicAPI.Processes.Objects.ProcessMetricValue.SetMetricValue(ProcessMetric processMetric, TimeSpan value)
Void PublicAPI.Processes.Objects.ProcessMetricValue.SetMetricValue(ProcessMetric processMetric, TimeSpan value, DateTime period, User executor)
Void PublicAPI.Processes.Objects.ProcessMetricValue.SetMetricValue(ProcessMetric processMetric, Nullable<Double> value, DateTime period, User executor)
Void PublicAPI.Processes.Objects.ProcessMetricValue.IncrementMetricValue(ProcessMetric processMetric, Nullable<Double> value, DateTime period, User executor)
Void PublicAPI.Processes.Objects.ProcessMetricValue.IncrementMetricValue(ProcessMetric processMetric, TimeSpan value, DateTime period, User executor)
Void PublicAPI.Processes.Objects.ProcessMetricValue.IncrementMetricValue(ProcessMetric processMetric, Nullable<Double> value)
Void PublicAPI.Processes.Objects.ProcessMetricValue.IncrementMetricValue(ProcessMetric processMetric, TimeSpan value)
Nullable<Double> PublicAPI.Processes.Objects.ProcessMetricValue.GetMetricValueDouble(ProcessMetric processMetric, DateTime period, User executor)
TimeSpan PublicAPI.Processes.Objects.ProcessMetricValue.GetMetricValueTimeSpan(ProcessMetric processMetric, DateTime period, User executor)
PublicAPI.Processes.Objects.WorkflowProcessListRunning.Filter() - filter changed :
IsParent(Nullable<Boolean> isParent) - Added
Portal section:
Deleted methods:
Void PublicAPI.Portal.Security.OrganizationItemSecurity.Appoint(User user, IOrganizationItem[] organizationItems)
Added object managers:
PublicAPI.Portal.Objects.Tasks.WorkLogTaskChange
PublicAPI.Portal.Objects.Content.PageProfile
PublicAPI.Portal.Objects.Common.PaperPin
PaperPinFilterHelper PublicAPI.Portal.Objects.Common.PaperPin.Filter()
Added methods :
Void PublicAPI.Portal.TaskBase.AddComment(TaskBase task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.TaskBase.AddComment(TaskBase task, CommentActionModel model)
Boolean PublicAPI.Portal.CalendarEvent.CheckEvents(DateTime startDate, DateTime endDate, User user)
Boolean PublicAPI.Portal.CalendarEvent.CheckEvents(DateTime startDate, DateTime endDate, Schedule schedule)
CalendarItemCollection PublicAPI.Portal.CalendarEvent.GetCalendarItems(DateTime startDate, DateTime endDate, Schedule schedule)
SendMessageBuilder PublicAPI.Portal.Messages.MessageBuilder(String messageSubject)
SendMessageBuilder PublicAPI.Portal.Messages.SendMessageBuilder(String messageSubject) ( This method is outdated. Use MessageBuilder)
Void PublicAPI.Portal.TaskBase.Task.AddQuestion(Task task, User recipient, String description, Boolean showAll, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.TaskBase.Task.AddQuestion(Task task, User recipient, String description, Boolean showAll)
Void PublicAPI.Portal.TaskBase.Task.AddQuestion(Task task, Question question)
Void PublicAPI.Portal.TaskBase.Task.AddComment(Task task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.TaskBase.Task.AddComment(Task task, CommentActionModel model)
Void PublicAPI.Portal.Security.OrganizationItemSecurity.Appoint(User user, OrganizationItem organizationItems)
HierarchyChiefDisplayModel PublicAPI.Portal.Security.OrganizationItemSecurity.GetUserChiefsHierarchy(User user)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.AddComment(ApprovalTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Portal.Objects.Tasks.ApprovalTask.AddComment(ApprovalTask task, CommentActionModel model)
Attachment PublicAPI.Portal.Objects.Common.Attachment.Create(BinaryFile file)
Attachment PublicAPI.Portal.Objects.Common.Attachment.Create(BinaryFile file, User creationAuthor)
Outdated methods:
SendMessageBuilder PublicAPI.Portal.Messages.SendMessageBuilder(String messageSubject) ( This method is outdated. Use MessageBuilder)
Hidden in the PublicAPI tree:
PublicAPI.Portal.Objects.Tasks.WorkLogTaskChange
PublicAPI.Portal.Objects.Content.PageProfile
PublicAPI.Portal.Objects.Common.Watch.Filter() - filter changed :
EntityId(Nullable<Int64> entityId) - Deleted
PublicAPI.Portal.Objects.Common.PaperPin.Filter() - filter changed :
TypeUids(Guid[] typeUids) - Added
Projects section:
Deleted object managers :
PublicAPI.Projects.Objects.ProjectBudgetApprovalTask
PublicAPI.Projects.Objects.BudgetIncomeItemRef
PublicAPI.Projects.Objects.BudgetExpenseItemRef
Deleted methods :
Void PublicAPI.Projects.ProjectPlan.SendToApprove(User harmonizator, ProjectPlan plan, DateTime startDate, DateTime endDate, String comment)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Project project, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Project project, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount, String substantiation)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Project project, ProjectPhase phase, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount, String substantiation)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Project project, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Project project, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount, String substantiation)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Project project, ProjectPhase phase, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount, String substantiation)
Added object managers:
PublicAPI.Projects.Budgets
PublicAPI.Projects.Budgets.Budget
Budget PublicAPI.Projects.Budgets.Budget.Create(Project project)
Budget PublicAPI.Projects.Budgets.Budget.CreateFrom(Budget oldBudget, Boolean cloneItems, Project newProject)
Budget PublicAPI.Projects.Budgets.Budget.Publish(Budget budget)
Budget PublicAPI.Projects.Budgets.Budget.CreateFrom(Budget oldBudget)
Budget PublicAPI.Projects.Budgets.Budget.CreateFrom(Budget oldBudget, Boolean cloneItems)
Budget PublicAPI.Projects.Budgets.Budget.CreateFrom(Budget oldBudget, Project newProject)
ProjectBudgetApprovalTask PublicAPI.Projects.Budgets.Budget.SendToApprove(User harmonizator, Budget budget, DateTime startDate, DateTime endDate, String comment)
ProjectBudgetApprovalTask PublicAPI.Projects.Budgets.Budget.SendToApprove(User harmonizator, Budget budget, DateTime startDate, DateTime endDate)
Budget PublicAPI.Projects.Budgets.Budget.GetCurrentBudget(Project project)
BudgetFilterHelper PublicAPI.Projects.Budgets.Budget.Filter()
Void PublicAPI.Projects.Budgets.Budget.Approve(ProjectBudgetApprovalTask task)
Void PublicAPI.Projects.Budgets.Budget.Approve(ProjectBudgetApprovalTask task, CommentActionModel model)
Void PublicAPI.Projects.Budgets.Budget.Approve(ProjectBudgetApprovalTask task, String comment)
Void PublicAPI.Projects.Budgets.Budget.Refuse(ProjectBudgetApprovalTask task, CommentActionModel model)
Void PublicAPI.Projects.Budgets.Budget.Refuse(ProjectBudgetApprovalTask task)
Void PublicAPI.Projects.Budgets.Budget.Refuse(ProjectBudgetApprovalTask task, String comment)
PublicAPI.Projects.Budgets.BudgetVersionExpenseItem
BudgetVersionExpenseItem PublicAPI.Projects.Budgets.BudgetVersionExpenseItem.Create(Budget budget, String subject, BudgetExpenseItemRef itemRef, ProjectPhase projectPhase, IEnumerable<BudgetVersionExpenseAmount> amounts)
BudgetVersionExpenseItem PublicAPI.Projects.Budgets.BudgetVersionExpenseItem.Create(Budget budget, String subject, BudgetExpenseItemRef itemRef, IEnumerable<BudgetVersionExpenseAmount> amounts)
BudgetVersionExpenseItem PublicAPI.Projects.Budgets.BudgetVersionExpenseItem.Create(Budget budget, String subject, BudgetExpenseItemRef itemRef)
BudgetVersionExpenseItem PublicAPI.Projects.Budgets.BudgetVersionExpenseItem.Create(Budget budget, String subject, BudgetExpenseItemRef itemRef, ProjectPhase projectPhase)
PublicAPI.Projects.Budgets.BudgetVersionIncomeItem
BudgetVersionIncomeItem PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Create(Budget budget, String subject, BudgetIncomeItemRef itemRef, ProjectPhase projectPhase, IEnumerable<BudgetVersionIncomeAmount> amounts)
BudgetVersionIncomeItem PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Create(Budget budget, String subject, BudgetIncomeItemRef itemRef, IEnumerable<BudgetVersionIncomeAmount> amounts)
BudgetVersionIncomeItem PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Create(Budget budget, String subject, BudgetIncomeItemRef itemRef)
BudgetVersionIncomeItem PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Create(Budget budget, String subject, BudgetIncomeItemRef itemRef, ProjectPhase projectPhase)
BudgetVersionIncomeItemFilterHelper PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Filter()
PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount
BudgetVersionExpenseAmount PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount.Create(Nullable<DateTime> date, Double amount, String substantiation, BudgetVersionExpenseItem expenseItem)
BudgetVersionExpenseAmount PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount.Create(Nullable<DateTime> date, Double amount, String substantiation)
BudgetVersionExpenseAmount PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount.Create(Nullable<DateTime> date, Double amount)
BudgetVersionExpenseAmountFilterHelper PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount.Filter()
PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount
BudgetVersionIncomeAmount PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount.Create(Nullable<DateTime> date, Double amount, String substantiation, BudgetVersionIncomeItem incomeItem)
BudgetVersionIncomeAmount PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount.Create(Nullable<DateTime> date, Double amount, String substantiation)
BudgetVersionIncomeAmount PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount.Create(Nullable<DateTime> date, Double amount)
BudgetVersionIncomeAmountFilterHelper PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount.Filter()
PublicAPI.Projects.Budgets.BudgetExpenseItemRef
BudgetExpenseItemRef PublicAPI.Projects.Budgets.BudgetExpenseItemRef.Create(String name)
BudgetExpenseItemRef PublicAPI.Projects.Budgets.BudgetExpenseItemRef.Create(String name, String description)
BudgetExpenseItemRefFilterHelper PublicAPI.Projects.Budgets.BudgetExpenseItemRef.Filter()
PublicAPI.Projects.Budgets.BudgetIncomeItemRef
BudgetIncomeItemRef PublicAPI.Projects.Budgets.BudgetIncomeItemRef.Create(String name)
BudgetIncomeItemRef PublicAPI.Projects.Budgets.BudgetIncomeItemRef.Create(String name, String description)
BudgetIncomeItemRefFilterHelper PublicAPI.Projects.Budgets.BudgetIncomeItemRef.Filter()
PublicAPI.Projects.Objects.ProjectTaskBase
PublicAPI.Projects.Objects.ProjectTaskBase.ProjectTask
PublicAPI.Projects.Objects.ProjectTaskBase.Milestone
PublicAPI.Projects.Objects.ProjectTaskBase.WorkflowProjectTask
PublicAPI.Projects.Objects.Budgets
PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.AddComment(ProjectBudgetApprovalTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.AddComment(ProjectBudgetApprovalTask task, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.AddComment(ProjectBudgetApprovalTask task, CommentActionModel model)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime endDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime endDate, Comment comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, Comment comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, TaskPriority priority, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.ReAssign(Int64 taskId, User newExecutor, DateTime startDate, DateTime endDate, TaskPriority priority, Comment comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetTaskEndDate(Int64 taskId, DateTime newEndDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLog(Int64 taskId, Int64 minutes, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLog(Int64 taskId, Int64 minutes)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogHours(Int64 taskId, Int64 hours, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogHours(Int64 taskId, Int64 hours)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogDays(Int64 taskId, Int64 days, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogDays(Int64 taskId, Int64 days)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate, String comment)
Void PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.CompleteTask(Int64 taskId, CompleteTaskModel model)
ProjectBudgetApprovalTaskFilterHelper PublicAPI.Projects.Objects.Budgets.ProjectBudgetApprovalTask.Filter()
PublicAPI.Projects.Objects.ProjectPlanItem
ProjectPlanItemFilterHelper PublicAPI.Projects.Objects.ProjectPlanItem.Filter()
PublicAPI.Projects.Tasks
ProjectTaskBuilder PublicAPI.Projects.Tasks.CreateProjectTask(Project project) ( This method is outdated . Используйте метод ProjectTaskBuilder)
MilestoneBuilder PublicAPI.Projects.Tasks.CreateMilestone(Project project) ( This method is outdated. Use MilestoneBuilder)
WorkflowProjectTaskBuilder PublicAPI.Projects.Tasks.CreateWorkflowProjectTask(Project project) ( This method is outdated. Use WorkflowProjectTaskBuilder)
Void PublicAPI.Projects.Tasks.AddQuestion(ProjectTaskBase projectTask, User recipient, String description, Boolean showAll, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Tasks.AddQuestion(ProjectTaskBase projectTask, User recipient, String description, Boolean showAll)
Void PublicAPI.Projects.Tasks.AddQuestion(ProjectTaskBase projectTask, Question question)
Void PublicAPI.Projects.Tasks.CompleteTask(ProjectTaskBase projectTask, CommentActionModel model, Boolean alertCoexecuters)
Void PublicAPI.Projects.Tasks.CompleteTask(ProjectTaskBase projectTask, String comment, Boolean alertCoexecuters)
Void PublicAPI.Projects.Tasks.CompleteTask(ProjectTaskBase projectTask, Boolean alertCoexecuters)
Void PublicAPI.Projects.Tasks.AddComment(ProjectTaskBase task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Tasks.AddComment(ProjectTaskBase task, String comment)
Void PublicAPI.Projects.Tasks.AddComment(ProjectTaskBase task, CommentActionModel model)
Void PublicAPI.Projects.Tasks.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate, String comment)
Void PublicAPI.Projects.Tasks.SetFactWorkLog(Int64 taskId, Int64 minutes, String comment)
Void PublicAPI.Projects.Tasks.SetFactWorkLog(Int64 taskId, Int64 minutes, DateTime startDate)
Void PublicAPI.Projects.Tasks.SetFactWorkLog(Int64 taskId, Int64 minutes)
Void PublicAPI.Projects.Tasks.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate)
Void PublicAPI.Projects.Tasks.SetFactWorkLogHours(Int64 taskId, Int64 hours, String comment)
Void PublicAPI.Projects.Tasks.SetFactWorkLogHours(Int64 taskId, Int64 hours)
Void PublicAPI.Projects.Tasks.SetFactWorkLogHours(Int64 taskId, Int64 hours, DateTime startDate, String comment)
Void PublicAPI.Projects.Tasks.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate)
Void PublicAPI.Projects.Tasks.SetFactWorkLogDays(Int64 taskId, Int64 days, String comment)
Void PublicAPI.Projects.Tasks.SetFactWorkLogDays(Int64 taskId, Int64 days)
Void PublicAPI.Projects.Tasks.SetFactWorkLogDays(Int64 taskId, Int64 days, DateTime startDate, String comment)
ProjectTaskBuilder PublicAPI.Projects.Tasks.ProjectTaskBuilder(Project project)
MilestoneBuilder PublicAPI.Projects.Tasks.MilestoneBuilder(Project project)
WorkflowProjectTaskBuilder PublicAPI.Projects.Tasks.WorkflowProjectTaskBuilder(Project project)
Added methods:
Project PublicAPI.Projects.Project.Create(String name, ProjectMetadataHead metadataHead, DateTime startDate, DateTime finishDate, User projectManager)
Project PublicAPI.Projects.Project.Create(String name, ProjectMetadataHead metadataHead, DateTime startDate, DateTime finishDate, User projectManager, Folder folder)
Void PublicAPI.Projects.Project.CloseProject(Project project, WorkflowInstance currentInstance)
Void PublicAPI.Projects.Project.AddUserToProject(Project project, User user)
ProjectPhase PublicAPI.Projects.Project.CreatePhase(Project project, String name, String description, Int64 number)
ProjectPhase PublicAPI.Projects.Project.CreatePhase(Project project, String name, String description)
ProjectPhase PublicAPI.Projects.Project.CreatePhase(Project project, String name)
ProjectPlanApprovalTask PublicAPI.Projects.ProjectPlan.SendToApprove(User harmonizator, ProjectPlan plan, DateTime startDate, DateTime endDate, String comment)
Void PublicAPI.Projects.ProjectPlan.Approve(ProjectPlanApprovalTask task, String comment)
Void PublicAPI.Projects.ProjectPlan.Refuse(ProjectPlanApprovalTask task, String comment)
ProjectTaskBuilder PublicAPI.Projects.ProjectTaskBase.CreateProjectTask(Project project) ( This method is outdated. Use ProjectTaskBuilder)
MilestoneBuilder PublicAPI.Projects.ProjectTaskBase.CreateMilestone(Project project) ( This method is outdated. Use MilestoneBuilder)
WorkflowProjectTaskBuilder PublicAPI.Projects.ProjectTaskBase.CreateWorkflowProjectTask(Project project) ( This method is outdated. Use WorkflowProjectTaskBuilder)
Void PublicAPI.Projects.ProjectTaskBase.AddQuestion(ProjectTaskBase projectTask, User recipient, String description, Boolean showAll, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTaskBase.AddQuestion(ProjectTaskBase projectTask, User recipient, String description, Boolean showAll)
Void PublicAPI.Projects.ProjectTaskBase.AddQuestion(ProjectTaskBase projectTask, Question question)
Void PublicAPI.Projects.ProjectTaskBase.CompleteTask(ProjectTaskBase projectTask, CommentActionModel model, Boolean alertCoexecuters)
Void PublicAPI.Projects.ProjectTaskBase.CompleteTask(ProjectTaskBase projectTask, String comment, Boolean alertCoexecuters)
Void PublicAPI.Projects.ProjectTaskBase.CompleteTask(ProjectTaskBase projectTask, Boolean alertCoexecuters)
Void PublicAPI.Projects.ProjectTaskBase.AddComment(ProjectTaskBase task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTaskBase.AddComment(ProjectTaskBase task, CommentActionModel model)
Void PublicAPI.Projects.ProjectTask.AddComment(ProjectTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTask.AddComment(ProjectTask task, CommentActionModel model)
ProjectWork PublicAPI.Projects.Types.ProjectWork.Create(String projectName, User projectManager, DateTime startDate, DateTime endDate, Folder folder)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.AddComment(ProjectTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTaskBase.ProjectTask.AddComment(ProjectTask task, CommentActionModel model)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.AddComment(Milestone task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTaskBase.Milestone.AddComment(Milestone task, CommentActionModel model)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.AddComment(WorkflowProjectTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask.AddComment(WorkflowProjectTask task, CommentActionModel model)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Budget budget, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Budget budget, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount, String substantiation)
BudgetIncomeItem PublicAPI.Projects.Budget.BudgetIncome.CreateItem(Budget budget, ProjectPhase phase, BudgetIncomeItemRef budgetIncomeItemRef, String theme, Double amount, String substantiation)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Budget budget, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Budget budget, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount, String substantiation)
BudgetExpenseItem PublicAPI.Projects.Budget.BudgetExpense.CreateItem(Budget budget, ProjectPhase phase, BudgetExpenseItemRef budgetExpenseItemRef, String theme, Double amount, String substantiation)
Void PublicAPI.Projects.Objects.ProjectComplexTask.AddComment(ProjectComplexTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Objects.ProjectComplexTask.AddComment(ProjectComplexTask task, CommentActionModel model)
Void PublicAPI.Projects.Objects.CreateProjectTask.AddComment(CreateProjectTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Objects.CreateProjectTask.AddComment(CreateProjectTask task, CommentActionModel model)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.AddComment(ProjectPlanApprovalTask task, String comment, IEnumerable<Attachment> attachments)
Void PublicAPI.Projects.Objects.ProjectPlanApprovalTask.AddComment(ProjectPlanApprovalTask task, CommentActionModel model)
ProjectPhase PublicAPI.Projects.Objects.ProjectPhase.CreatePhase(Project project, String name, String description, Int64 number)
ProjectPhase PublicAPI.Projects.Objects.ProjectPhase.CreatePhase(Project project, String name, String description)
ProjectPhase PublicAPI.Projects.Objects.ProjectPhase.CreatePhase(Project project, String name)
Outdated methods:
Void PublicAPI.Projects.Project.SaveNew(Project project) ( This method is outdated )
ProjectPhase PublicAPI.Projects.Project.CreateProjectPhase(ProjectMetadataHead metadataHead, String name) ( This method is outdated )
ProjectPhase PublicAPI.Projects.Project.CreateProjectPhase(ProjectMetadataHead metadataHead, String name, String description) ( This method is outdated )
ProjectTaskBuilder PublicAPI.Projects.ProjectTaskBase.CreateProjectTask(Project project) ( This method is outdated. Use ProjectTaskBuilder)
MilestoneBuilder PublicAPI.Projects.ProjectTaskBase.CreateMilestone(Project project) ( This method is outdated. Use MilestoneBuilder)
WorkflowProjectTaskBuilder PublicAPI.Projects.ProjectTaskBase.CreateWorkflowProjectTask(Project project) ( This method is outdated. Use WorkflowProjectTaskBuilder)
BudgetIncomeItemRef PublicAPI.Projects.Budget.BudgetIncome.CreateRef(String name) ( This method is outdated. Use Create(string name))
BudgetIncomeItemRef PublicAPI.Projects.Budget.BudgetIncome.CreateRef(String name, String description) ( This method is outdated. Use Create(string name, string description))
BudgetExpenseItemRef PublicAPI.Projects.Budget.BudgetExpense.CreateRef(String name) ( This method is outdated. Use Create(string name))
BudgetExpenseItemRef PublicAPI.Projects.Budget.BudgetExpense.CreateRef(String name, String description) ( This method is outdated. Use Create(string name, string description))
Hidden in the PublicAPI tree:
PublicAPI.Projects.ProjectTaskBase.ProjectTask
PublicAPI.Projects.ProjectTaskBase.Milestone
PublicAPI.Projects.ProjectTaskBase.WorkflowProjectTask
PublicAPI.Projects.ProjectTaskBase
Outdated object managers:
PublicAPI.Projects.Budget.BudgetIncome
PublicAPI.Projects.Budget.BudgetExpense
PublicAPI.Projects.Budget
PublicAPI.Projects.Budgets.BudgetVersionIncomeItem.Filter() - filter changed:
SearchString(String searchstring) - Added
PublicAPI.Projects.Budgets.BudgetVersionExpenseAmount.Filter() - filter changed :
BudgetVersionExpenseItem(BudgetVersionExpenseItem budgetVersionExpenseItem) - Added
PublicAPI.Projects.Budgets.BudgetVersionIncomeAmount.Filter() - filter changed :
BudgetVersionIncomeItem(BudgetVersionIncomeItem budgetVersionIncomeItem) - Added
PublicAPI.Projects.Objects.ProjectBudgetApprovalTask.Filter() - filter changed :
ApproveStatuses(List<ProjectApprovalStatus> approveStatuses) - Added
PublicAPI.Projects.Objects.BudgetIncomeItem.Filter() – filter changed :
ProjectPhase(ProjectPhase projectphase) - Added
PublicAPI.Projects.Objects.BudgetExpenseItem.Filter() - filter changed :
ProjectPhase(ProjectPhase projectphase ) - Added
Enums section:
Added enumerations:
PublicAPI.Enums.Projects.BudgetVersionStatus
PublicAPI.Enums.Projects.BudgetVersionStatus.Draft
PublicAPI.Enums.Projects.BudgetVersionStatus.Obsolete
PublicAPI.Enums.Projects.BudgetVersionStatus.Current
PublicAPI.Enums.Projects.BudgetVersionStatus.OnApprovalExecutor
PublicAPI.Enums.Projects.BudgetVersionStatus.Signed
PublicAPI.Enums.KPI.Common.Models.ScaleValueType
PublicAPI.Enums.KPI.Common.Models.ScaleValueType.Value
PublicAPI.Enums.KPI.Common.Models.ScaleValueType.Percent
PublicAPI.Enums.KPI.Common.Models.ScaleValueType.Offset
PublicAPI.Enums.KPI.KPICommon.Models.ScaleValueType
PublicAPI.Enums.KPI.KPICommon.Models.ScaleValueType.Value
PublicAPI.Enums.KPI.KPICommon.Models.ScaleValueType.Percent
PublicAPI.Enums.KPI.KPICommon.Models.ScaleValueType.Offset
PublicAPI.Enums.KPI.MindMapEditType
PublicAPI.Enums.KPI.MindMapEditType.Designer
PublicAPI.Enums.KPI.MindMapEditType.Web
PublicAPI.Enums.KPI.CollectionSubject.Readonly
Services section:
Added object managers:
PublicAPI.Services.WatchEntity
Void PublicAPI.Services.WatchEntityServices.ClearForObject(Guid objectUid, Object entityId)
Void PublicAPI.Services.WatchEntityServices.CreateWatchByUser(Guid typeUid, Nullable<Int64> entityId, User user)
PublicAPI.Services.BlobStore
Byte[] PublicAPI.Services.BlobStore.LoadOrNull(String key)
Void PublicAPI.Services.BlobStore.Remove(String key)
PublicAPI.Services.WorkflowMessaging
IList<WorkflowMessageBookmarkInfo> PublicAPI.Services.WorkflowMessaging.GetActiveMessageBookmarkInfos(IEnumerable<WorkflowInstance> instanceList)
IList<WorkflowMessageBookmarkInfo> PublicAPI.Services.WorkflowMessaging.GetActiveMessageBookmarkInfos(IEnumerable<WorkflowInstance> instanceList, Boolean allowSubInstances)
WorkflowMessageSendResult PublicAPI.Services.WorkflowMessaging.SendMessage(WorkflowMessageType messageType, WebData data)
WorkflowMessageSendResult PublicAPI.Services.WorkflowMessaging.SendMessage(WorkflowInstance instance, WorkflowMessageType messageType, WebData data)
PublicAPI.Services.Sms
Void PublicAPI.Services.Sms.SendNotification()
Void PublicAPI.Services.Sms.ClearStatus()
List<SmsSendResult> PublicAPI.Services.Sms.SendMessage(String from, String[] phones, String message, Boolean needFooter)
SmsSendResult PublicAPI.Services.Sms.SendMessage(String phone, String message, Boolean needFooter)
BalanceDetails PublicAPI.Services.Sms.BalanceDetails()
List<String> PublicAPI.Services.Sms.GetValidSenderNames()
List<String> PublicAPI.Services.Sms.GetValidSenderNames(String login, String password)
PublicAPI.Services.Security
Boolean PublicAPI.Services.Security.HasPermission(User user, Permission permission)
Boolean PublicAPI.Services.Security.HasPermission(Permission permission)
Boolean PublicAPI.Services.Security.HasPermission(User user, Permission permission, Object permissionSubject, Boolean skipAdmin)
Boolean PublicAPI.Services.Security.HasPermission(Permission permission, Object target, Boolean skipAdmin)
Boolean PublicAPI.Services.Security.CanCheckPermission(Permission permission, Object target)
Void PublicAPI.Services.Security.RunWithElevatedPrivilegies(Action action)
Void PublicAPI.Services.Security.RunWithElevatedPrivilegiesAndWithDeleted(Action action)
Void PublicAPI.Services.Security.RunWithUsualPrivilegies(Action action)
Void PublicAPI.Services.Security.RunBySystemUser(Action action)
Void PublicAPI.Services.Security.RunByUser(User user, Action action)
PublicAPI.Services.ProductionCalendar
Boolean PublicAPI.Services.ProductionCalendar.IsWorkDay(DateTime dateTime)
DateTime PublicAPI.Services.ProductionCalendar.EvalTargetTime(DateTime startTime, TimeSpan interval)
DateTime PublicAPI.Services.ProductionCalendar.EvalTargetTime(DateTime startTime, Double intervalHours)
TimeSpan PublicAPI.Services.ProductionCalendar.EvalWorkTimeSpanDifference(DateTime startTime, DateTime endTime)
TimeSpan PublicAPI.Services.ProductionCalendar.EvalWorkTimeDifference(DateTime startTime, DateTime endTime)
Double PublicAPI.Services.ProductionCalendar.EvalWorkTimeHoursDifference(DateTime startTime, DateTime endTime)
TimeSpan PublicAPI.Services.ProductionCalendar.GetWorkTimeStart(DateTime day)
TimeSpan PublicAPI.Services.ProductionCalendar.GetWorkTimeEnd(DateTime day)
TimeSpan PublicAPI.Services.ProductionCalendar.GetWorkTimeInDay()
TimeSpan PublicAPI.Services.ProductionCalendar.GetWorkTimeInDay(DateTime day)
Int64 PublicAPI.Services.ProductionCalendar.MinutesInDay()
Int64 PublicAPI.Services.ProductionCalendar.MinutesInDay(DateTime day)
DateTime PublicAPI.Services.ProductionCalendar.AddDays(DateTime startTime, Int32 addDays)
Void PublicAPI.Services.ProductionCalendar.SetHoliday(DateTime date)
Void PublicAPI.Services.ProductionCalendar.SetWorkDayTime(TimeSpan workStart, TimeSpan workEnd, TimeSpan dinnerStart, TimeSpan dinnerEnd)
Void PublicAPI.Services.ProductionCalendar.SetWorkDayTime(TimeSpan workStart, TimeSpan workEnd)
Void PublicAPI.Services.ProductionCalendar.SetWorkDayTime(TimeSpan workStart)
PublicAPI.Services.Email
Void PublicAPI.Services.Email.SendMessage(MailAddress to, String subject, String message, Boolean messageIsHtml, Boolean needFooter, IDictionary`2String, String> headers, IEnumerable<MailMessageFile> files)
Void PublicAPI.Services.Email.SendMessage(MailAddress from, MailAddress to, String subject, String message, Boolean messageIsHtml, Boolean needFooter, IDictionary`2String, String> headers, IEnumerable<MailMessageFile> files)
Void PublicAPI.Services.Email.SendMessage(IEnumerable<MailAddress> to, String subject, String message, Boolean messageIsHtml, Boolean needFooter, IDictionary`2String, String> headers, IEnumerable<MailMessageFile> files, Boolean sendSeparately)
Void PublicAPI.Services.Email.SendMessage(MailAddress from, IEnumerable<MailAddress> to, String subject, String message, Boolean messageIsHtml, Boolean needFooter, IDictionary`2String, String> headers, IEnumerable<MailMessageFile> files, Boolean sendSeparately)
Void PublicAPI.Services.Email.SendMessage(MailMessage message, IEnumerable<MailMessageFile> files)
Void PublicAPI.Services.Email.SendMessage(SmtpSettings smtpSettings, MailMessage message, IEnumerable<MailMessageFile> files)
PublicAPI.Services.Integration1C
CConnectionCollection PublicAPI.Services.Integration1C.GetConnections()
CConnectionSettings PublicAPI.Services.Integration1C.GetConnection(String configName)
Void PublicAPI.Services.Integration1C.CheckConnection(CConnectionSettings connection)
Boolean PublicAPI.Services.Integration1C.CheckConnectionConfiguration(String configName)
ICConfiguration PublicAPI.Services.Integration1C.GetFullConfiguration(String configName)
ICConfiguration PublicAPI.Services.Integration1C.GetCurrentConfiguration(String configName)
Void PublicAPI.Services.Integration1C.EnableConfiguration(String configName)
Void PublicAPI.Services.Integration1C.DisableConfiguration(String configName)
Void PublicAPI.Services.Integration1C.RebootConfiguration(String configName)
ComObject PublicAPI.Services.Integration1C.GetComConnector(String configName)
ICProvider PublicAPI.Services.Integration1C.GetProvider(String configName)
T PublicAPI.Services.Integration1C.LoadConfObject(Guid uid)
PublicAPI.Services.Authentication
User PublicAPI.Services.Authentication.GetCurrentUser()
IEnumerable<AuthenticatedSessionInfo> PublicAPI.Services.Authentication.GetActiveSessions()
IEnumerable<AuthenticatedSessionInfo> PublicAPI.Services.Authentication.GetSessions(AuthenticatedSessionFilter filter)
Void PublicAPI.Services.Authentication.RemoveSession(Guid ticketId)
Void PublicAPI.Services.Authentication.RemoveAllUserSessions(Object userId)
PublicAPI.Services.DocumentGenerator
Void PublicAPI.Services.DocumentGenerator.Generate(BinaryFile file, Object dataSource)
Void PublicAPI.Services.DocumentGenerator.Generate(BinaryFile file, Object dataSource, IGeneratorProvider provider)
PublicAPI.Services.File
String PublicAPI.Services.File.SaveFile(BinaryFile binaryFile)
BinaryFile PublicAPI.Services.File.LoadFile(String id)
BinaryFile[] PublicAPI.Services.File.LoadFiles(String[] idList)
Boolean PublicAPI.Services.File.FileExists(String id)
Int64 PublicAPI.Services.File.FileSize(String id)
String PublicAPI.Services.File.RenameFile(String id, String fileName)
BinaryFile PublicAPI.Services.File.CopyFile(BinaryFile sourceBinaryFile)
Void PublicAPI.Services.File.Encrypt(BinaryFile file, String password, String salt)
BinaryFile PublicAPI.Services.File.Decrypt(BinaryFile file, String password)
Void PublicAPI.Services.File.CancelEncrypt(BinaryFile file, String password)
PublicAPI.Services.Scheduler
Void PublicAPI.Services.Scheduler.Run(Guid id, Guid triggerId)
Void PublicAPI.Services.Scheduler.Run(String id, String triggerId)
1. In the controller EleWise . ELMA . BPM . Web . Tasks . Controllers . WorkLogReportController the following public methods were changed:
a. ActionResult ToApprov (List<long> selectedIds, bool onlySelected, string dayForWeek) на ActionResult ToApprov (List<long> selectedIds, bool onlySelected, DateTime? dayForWeek)
b. ActionResult ObjectSearchPopup (string popupId, string scriptSelect, string scriptParameters, string date, WorkLogObjectSearchType searchType, WorkLogObjectSearchTabActive activeTab = WorkLogObjectSearchTabActive.History) на ObjectSearchPopup (string popupId, string scriptSelect, string scriptParameters, DateTime? date, WorkLogObjectSearchType searchType, WorkLogObjectSearchTabActive activeTab = WorkLogObjectSearchTabActive.History)
c. ActionResult GetObject (Guid objectUid, long objectId, string dateStart, string dateEnd, long? harmonizatorId = null) на ActionResult GetObject(Guid objectUid, long objectId, DateTime? dateStart, DateTime? dateEnd, long? harmonizatorId = null)
d. ActionResult ObjectGrid (GridCommand command, string gridId = null, string selectScript = null, string @from = null, [Bind(Prefix = "DataFilter")] IWorkLogObjectSearchFilter filter = null) на ActionResult ObjectGrid (GridCommand command, string gridId = null, string selectScript = null, DateTime? @from = null, [Bind(Prefix = "DataFilter")] IWorkLogObjectSearchFilter filter = null)
e. ActionResult SaveDraft ([Bind(Prefix = "Item")]WorkLogReportItem item, string date) на ActionResult SaveDraft ([Bind(Prefix = "Item")]WorkLogReportItem item, DateTime? date)
f. ActionResult WorkLogGroupUpdate (List<string> workLogIds, long? harmonizatorId, long? activityId, string date) на ActionResultWorkLogGroupUpdate (List<string> workLogIds, long? harmonizatorId, long? activityId, DateTime? date)
g. ActionResult OvertimeValidate (string dayForWeek, List<long> selectedIds) на ActionResult OvertimeValidate (DateTime? dayForWeek, List<long> selectedIds)
2. EleWise . ELMA . BPM . Web . Tasks . Controllers . WorkLogReportController .DateTime? ParseDate controller method was deleted.
3. Changes in the model EleWise.ELMA.BPM.Web.Tasks.Models. WorkLogItemGridParams:
a. Property string DateTo was replaced with DateTime ? DateTo
b. Property string DateFrom was replaced with DateTime? DateFrom
4. Class EleWise.ELMA.Web.Mvc.Components.WorkTimeHelper was deleted