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.

http://www.elma-bpm.ru/kb/assets/Butorina/819_133.png

How it is now:

Class and database table names are verified when creating a new process and error messages are shown.

http://www.elma-bpm.ru/kb/assets/Butorina/819_134.png

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.

http://www.elma-bpm.ru/kb/assets/Butorina/819_132.jpg

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.

http://www.elma-bpm.ru/kb/assets/Butorina/819_130.png

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.

http://www.elma-bpm.ru/kb/assets/Butorina/819_131.png

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.

http://www.elma-bpm.ru/kb/assets/Butorina/819_128.png

Unnecessary elements were removed from the form builder for process start, such as Transition buttons, Process information and Process context properties container.

http://www.elma-bpm.ru/kb/assets/Butorina/819_129.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_123.png

Processes

Option for interrupting child processes in case of multiple operation start was added.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_124.png

Display of document type subscribers added

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_125.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_126.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_127.png

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.

https://www.elma-bpm.ru/kb/assets/tazmieva/819_122.png

https://www.elma-bpm.ru/kb/assets/tazmieva/819_123.png

2. The Subtasks tab of project tasks displays subtasks of outdated and unpublished plan versions with the “outdated plan” label.

https://www.elma-bpm.ru/kb/assets/tazmieva/819_124.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_122.png

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

https://www.elma-bpm.ru/kb/assets/tazmieva/819_119.png

Possibility to rotate pages of PDF files in preview was added

https://www.elma-bpm.ru/kb/assets/tazmieva/819_120.png

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.

https://www.elma-bpm.ru/kb/assets/korolyeva/819_113.png

https://www.elma-bpm.ru/kb/assets/korolyeva/819_114.png

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.

https://www.elma-bpm.ru/kb/assets/korolyeva/819_117.png

Designer

When adding a configuration in Designer, only remote connection to server is available now. Local connection to configuration is no longer supported.

https://www.elma-bpm.ru/kb/assets/korolyeva/819_118.png

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

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_110.png

2. Filling in the task subject with the name of the attached document.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_111.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_100.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_101.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_102.png

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”.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_103.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_104.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_105.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_106.png

3. Highlighting of parentheses, brackets and braces was added.

4. Support of regions and wrapped code was added.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_107.png

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).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_108.png

8. The standard set of links in processes was extended

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_109.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_97.png

2. Ctrl + Shift + Space shortcut was added, which opens a popup with a tip on the method parameters and overloads.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_98.png

3. Autocomplete values sorting was changed. Now all the local fields, methods, properties, etc. are shown first.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_99.png

 

 

List of changes in version 3.8.7

User interface

Possibility to assign control over several project plan tasks at the same time

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_88.png

Fig. 1. Project plan. Context menu

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_89.png

Fig. 2. Project plan. Dialog box

Script editor

1. Context menu was added (global modules, processes).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_90.png

2. Sorting of the tree in a global module was added.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_91.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_92.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_93.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_94.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_95.png

 

 

 

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_73.png

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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_71.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_72.png

“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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_74.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_75.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_76.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_77.png

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).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_78.png

Copying tasks

“Copy” action was added to user tasks. Decision-based tasks cannot be copied.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_79.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_80.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_82.png

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

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_83.png

3. Warning was added (as a comment) for new users in the script editor in processes (only when creating a new process).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_84.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_85.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_86.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_87.png

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

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_69.png

2. The publish button is now unavailable, when a global module is in the debugging mode. It is still available in the editing mode.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_70.png

 

 

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_67.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_56.png

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).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_57.png

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

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_58.png

Button for opening a script in VS was also changed (global modules scripts).

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_59.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_60.png

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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_61.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_62.png

Global modules

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_63.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_64.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_65.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_66.png

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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_54.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_68.png

 

 

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).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_48.png

Fig. 1

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_49.png

Fig. 2

2. PO box in the place type (fig. 3).

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_50.png
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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_51.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_52.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_53.png

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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_46.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_47.png

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> ParentEntityId
to 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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_01.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_02.png

Project budgets

1. A new component is used for displaying the budget.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_03.png

2. Possibility to format budget report over a specific period was added.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_04.png

Task transition settings changed

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_05.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_06.png

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_07.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_08.png

Document management

Document management administration settings divided into groups

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_09.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_10.png

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_11.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_12.png

“Hide empty properties” was added on forms in Designer

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_13.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_14.png

“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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_15.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_16.png

Empty properties are hidden on document view forms. Description and barcode were moved down in the list of document attributes

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_17.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_18.png

In Designer, base object properties grouped into a collapsible panel

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_19.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_20.png

“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:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_21.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_22.png

“Program settings” and “Filter settings” units were removed from the “Advanced” tab of the document type settings in Designer

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_23.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_24.png

“Table” and “Filter” tabs were removed from document type settings in Designer.

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_25.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_26.png

 

KPI module

Entering values

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_27.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_28.png

KPI scale

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_29.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_30.png

Goal maps and goals were moved from the KPIS section to a separate section

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_31.png

Buttons were removed from the toolbar. All the actions are performed via the context menu

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_32.png

Activities are no longer in Designer. To create and edit activities, use the web application

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_33.png

You cannot delete a published goal map; you can move it to archive

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_34.png

Editing setting – select whether to edit in the web browser or in Designer

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_35.png

Dashboards are obsolete. To visualize data, use diagram portlets in Web Application.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_36.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_37.png

Data collection task period settings – now you can select several periods

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_38.png

 

Start screen redesign

How it was:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_39.png

How it is now:

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_40.png

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_41.png

 

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

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_42.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_43.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_44.png

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.

https://www.elma-bpm.ru/kb/assets/Mikheeva/819_45.png

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