EXP-RO01-4.4.0.9
EXPERT Version 4.4.0.9
Entersoft Business Suite®
New Features & Functionality
Περιεχόμενα
- 1 New Features & Functionality (Outline)
- 2 Entersoft ERP
- 3 Horizontal Functionality
- 3.1 Views (scrollers) and cubes building tool
- 3.1.1 Views (scrollers) with customized toolbars
- 3.1.2 Show/Hide column conditions
- 3.1.3 Change ONLY product view appearance
- 3.1.4 Open multiple designers simultaneously
- 3.1.5 Significant Query Builder extensions
- 3.1.5.1 Direct support of UNIONs via ESQs
- 3.1.5.2 Direct support of EXCEPT and INTERSECT
- 3.1.5.3 Simple CTE (Computed Table Expressions)
- 3.1.5.4 Efficient support of Linked Server and OPENROWSET
- 3.1.5.5 On the fly TEMPORARY Tables
- 3.1.5.6 JOINS with more than 3 columns and additional operators
- 3.1.5.7 Examples of use
- 3.1.6 Public Query (PQ) trial execution
- 3.2 Automations
- 3.3 Data import tool (ΕΜΙ)
- 3.4 Data Interchange
- 3.5 Others
- 3.1 Views (scrollers) and cubes building tool
New Features & Functionality (Outline)
This document aims to report the new features and extensions of EXPERT Version 4.4.0.9. First, the newly added functionality and features are briefly listed and, then, a detailed presentation follows. User guidelines and examples are provided where necessary.
Entersoft ERP
- Significant stock allocation process extensions in Orders (dynamic prioritization in fulfillment, fulfillment scenarios history log, export to excel etc.)
- Reporting of item dimensions similar to that provided at items level (values, cost, sales quantity, purchases, production by color-size etc.)
- Tool for declaring valid dimension combinations of items (color-size combinations etc. by item)
- Extensions in reservations management and stock control (check)
- Debit/Credit matching based on grouping item fields
- Gift card issuance
- Remarkable runtime improvement of Detailed Fixed Asset Registry
- Feature of expense allocation by branch via trade documents
Horizontal Functionality
- Fundamental extensions in views (scrollers) and automations to create targeted forms for specific activities (customizable toolbars, dynamically show/hide columns, automation parameters in wizard form where each step depends on the answers given in the previous one etc.)
- Fundamental extensions in query builder for faster implementation, less maintenance & reduced runtime (supporting unions, except, intersect, filter invocation of another filter without copying it etc.)
Entersoft ERP
Inventory
Item dimension management
Unified management – Outstanding orders
The Outstanding Orders (detailed) list (Sales/Sales orders) has been extended to dynamically display the item dimensions, and allow the analytical source control of orders (reservations etc.) from earlier steps of fulfillment process:
Source Analysis
If the source analysis is selected in the new criterion of view, this will result in the implementation of as many lines by order item, as the initial documents from which they have been derived from (new column “Derives from…”). This is useful while inspecting specific preparations of shipments (i.e. SRC) and wishing to get the corresponding initial orders, with their quantities analyzed as planned to be shipped. If the "source analysis" is NOT selected, then the initial order will be displayed in the new column "Derives from…", but if there is more than one, all of them will be displayed, separated by "," (comma separated list), without being extended to an equal number of line items.
Dimension Analysis
If dimension analysis is selected in the new criterion of view, then the dimension columns will automatically be added to the layout. Additionally, a number of line items that equals the number of item dimension combination values will be displayed.
Otherwise, if (Dimension analysis = No) these lines are grouped by item and the dimension columns will be automatically HIDDEN.
The new general parameter “Default item dimensions in reports” determines the columns that will be added:
New Trial balances and Registers will take into account this parameter, if these added for dimensions, as we shall realize.
Valid dimension combinations by item
You can define dimension charts independently by dimension. But, if a number of dimension values is included in them (to be defined in large item groups and be easily maintained) and not specific-accurate dimension charts that apply to items, it will result in non-sense values to be filled out. Though, even if distinct dimension charts by item had been developed, some combinations should never be available (i.e. The XXL size exists in the dimension chart by item, but is only available in BL and BK colors and not in all other colors).
This requirement is fulfilled by the new "Dimension combinations profile" defined in stock items. Such a profile can be created by customization and then be declared to many items. Alternatively, the profiling functionality can be used through the item form (especially in new items), so the application can use data from already defined dimension charts and propose correct "line combinations" opening.
Α
If profiling is requested from the item form, the code and the description of the item will automatically be copied into the code and the description of the profile.
Thereupon, you can choose the section Auto-generate combinations and either fill out specific dimension values or specific dimension charts. Consequently, all related combinations will automatically be inserted as lines by selecting "Run".
These lines can be deleted or defined as “inactive” by the user. The existence of "inactive" combinations would be reasonable in case that some documents had been entered (i.e. previous season returns, where these combinations were available), but in other documents (i.e. new orders) cannot be entered, because they no longer exist.
You have to configure the Items Control Policy before utilizing these elements:
The behavior can differ from a document type to another (Orders, Delivery Notes etc.). This is achieved through the new field of lines of Transit Control Policy "Check dimension combinations validity". The available field values are the following:
No None of the controls will be executed. All dimension values provided by item dimension charts will be allowed
Yes (all) All dimension combinations defined as valid in the item will be allowed (either active or inactive). Videlicet, it will be sufficient, if they exist as lines of "valid dimensions profile"
Yes (only active) Only active valid combination values of item dimensions will be allowed.
Finally, configuration of a visual effect that the above functionality will contain into the dimension typing grid (namely analysis lines) has been added.
The behavior is defined by the new general parameter "non-acceptable dimension combination display mode".
If the option "Not Visible" is selected and all related cells refers to invalid combinations, then entire lines or/and columns will be omitted. On the other hand, if "Inactive" is selected, all lines and columns derived from dimension charts will be displayed, but only cells that represent valid combinations will be accessible to the user. Obviously, cells that ALREADY have a value are excepted, as occurs during the change of older documents, at the moment of their registration, the valid combinations were different.
If the registration is done in lines grid and not in the table (as happens when there are more than 2 active dimensions), then the application will help the user during consecutive keystrokes, so that each "next" column will display as many options as derived from the value of previous dimension columns:
Unified information - Quantities and values by item and dimension
Henceforth, users will be able to export reports of Trial Balance and Register type for total inventory items whether these monitor dimensions or not, with the appropriate reduction of values, cost and quantities by dimension, for all distinct counters monitored at items level (sales quantity, turnover, purchase quantities, miscellaneous imports and exports, production cost etc.).
All columns concerning cost formed by Stock Valuation i.e. cost of goods sold, production cost, etc., will NOT be displayed with "temporary" value, UNTIL the Stock Valuation process has been executed, rather than ZERO value (as opposed to the corresponding reports at item level, showing temporary/indicative cost, in the meantime, until Stock Valuation execution).
To preview specific data (details and totals), you have to set the desired dimension to “Grouping”.
The default value of the field concerning the activated dimensions in grouping depends on the value of the new general parameter Display default item dimension columns in reports” which is used in numerous views. You can select the desired values, during each report download-execution.
If specific values are defined as dimension criteria, then items without dimensions will be excluded, else, the items that do not monitor the selected dimensions will be displayed with space in every dimension value (---).
The new reports are available at the new node Reports by dimension of Inventory menu
Required preparatory action
To use any of the above reports, it is mandatory to execute the Update values by item dimension process. This process can be found in the menu Tools/Recalculation. This process updates all document analysis lines with the value portion and the cost values required for the functionality of new reports.
Hereafter, each new document and each new execution of the Stock Valuation process will correctly update these values, but automatic correction is not performed for existing data.
Restrictions
|
|
The implementation of the above functionality was depended on the relation of line items and analysis lines (where these exist) with the creation of the appropriate view in the DB and the addition of some calculated (from the documents and the stock valuation process) fields in the analysis lines. Therefore, it assuredly functions with the following restrictions:
|
- Lot selection dialog usability
The order of the columns has been changed in the lot selection dialog in the grid column of documents; so that the balance of each lot will be visible and horizontal movement will not be required.
Extensions of stock allocation in orders
New extensions have been developed in the stock allocation process in outstanding orders (Inventory/ Distribution processes):
Dynamic prioritization with criteria
Whenever the process is executed, uses a fixed, predetermined customer prioritization logic ("priority" field of the order header, registration date, and delivery date). A different use-case scenario is to determine the fulfillment priority at the moment of process execution or based on an order fulfillment scenario that has been previously built and, however, APPARENT from the default values of document fields or each customer’s.
Fulfillment by customer priority of group 04, after group 01 and then group 03 (specifically, where the fulfillment sequence does not derive from the “code” of the group) and as 2nd criterion the customer status (firstly HOT status customers, and then Gold and then NEW status). Suppose that it is monitored at a user definable table of of the customer tab. This means that if a lot of customer orders of group 04 are found, those of HOT will be executed and then those of GOLD and then those of NEW, before starting the fulfillment of customer orders of group 01 following the same logic etc.
To define customers’ priority, select Define customers’ priority at the top left section of the process dialog.
![]()
A UI form displaying the TWO available prioritization criteria opens and the user defines:
The field that represents the criterion
The field values that will precede in the fulfillment sequence (using
the field-criterion values are selected and transferred from the top to the bottom of the grid and using
the fulfillment sequence/ordering can be changed)
If this prioritization process is used, automatic all customer orders will be located at the top of fulfillment process, according to the inter-warehouse transfer orders.
- Interfering in prioritization
On the grid an ascending sequence number has been calculated based on the customers dynamic prioritization and consequently based on documents priority. This SEQ. NO offers instant preview of the way that the stock allocation process will function (if the stock is not sufficient to fulfill all of them).
In this step (and BEFORE process execution), the user can affect through the vertical toolbar the priority of specific orders by using the special logic that is not described in the model:
- Orders grid and lines grid
After data reading based on the criteria and displaying orders in the grid, henceforth, the user can preview (from the vertical toolbar)
Note that the “consumption stock” dialog (
ή F12) which is displayed when you point at a quantity cell “To be delivered” is not available in orders grid (total quantity “To be delived” of selected items of each order expressed in service measurement unit of each item is displayed – and it makes sense only when the items have common service measurement unit)
. It functions only in the lines grid.
You can implement bulk selection and management of orders by using the line selector (1st grid column). The allocation algorithm (via “allocate to orders” button) and the reservation document creation (via “create reservations” button) will run only for the selected lines (
).
Finally, if anyone has to manage a large number of sizes, even with a horizontal movement, it is likely that this cannot be done easily. For this purpose, it has been added the function of displaying / hiding sizes from the line grid through the new button
of the vertical toolbar
Fulfillment scenarios historicity
The fulfillment scenario is defined
A customer prioritization scenario to be fulfilled
A set of parameters which results in retrieval of specific orders data and their lines on the particular prioritization calculated and/or changed by the user
A fulfillment dataset that derived from the stock allocation process execution, with the above conditions (namely the service quantity – “to be sent”- that the process calculated).
You can save a scenario for future use by selecting the button "Save scenario to XML" at the bottom of the dialog. The default storage area is \ESNoSync\ESFIAvailableStockAllocation and the name of the file is {Company Code}_{User code}_{Date}_DeliveryUpTo_{MM-DD}, where Date is the date that the process was executed and ΜΜ-DD, the month and the due date of the delivery period from the corresponding view criterion.
Accordingly, starting with the process, a previous scenario can be recalled and used with the button "Recall scenario from XML" at the top left section of the dialog screen.
Specific receipt or en route stock allocation (loading)
One of the available options for calculating stock (which will be allocated to orders below) is “Specific receipt”.
If it is selected, then in the dialog the search button
is shown and after selecting the corresponding view, henceforth, on the master dialog of the process the selected receipt is shown (or receipts, if more than one are selected) with its code.
Similarly, the new option “Specific loading order” operates except in this case, the selection is made from line items.
This is to confirm the supplier order routing (merchandise en route, a copy of the packing list) you may have received from him in some way, i.e. excels and for its registration, usually the product "Loading Order" that updates the related quantities "for shipment", until the related Goods receipt to be inserted.
In this case, the field that the document codes are shown, the corresponding line item SEQ. NO is displayed, in between parenthesis ().
If the “expected” stock is used for orders fulfillment, it is obvious that in following reservations (RIC, RCT) the appropriate check of stock customization must be done (via item transfer plan) in order to take into consideration these quantities (for shipment) and not only into the “available” (so their registration to be allowed). In following chapter, the addition made in the stock control (selections in the stock control of item transport in order to achieve this functionality.)
- Display current stock availability
The grid that displays the item balances by W/H is updated accordingly to the “Stock calculation based on” selection. If specific receipts or (expected) orders or loading orders are selected, their quantities will be displayed (on “Service W/H”), while if Available or Actual stock is selected, all related item balances (and item dimensions) will be displayed on these Areas.
With the new setting "Only selected order items" an additional filter could be applied to which stock you can get in this grid: the lines will automatically be limited to those concerning ONLY the selected items or orders in the 1st grid, to wit, to those lines that have been checked (
).
In case that processing or prioritization or orders checking is done and the dialog area is not enough, you can increase or decrease the 2 parts by moving the boundary line (splitter) between them.
Many times, a supplier order is derived from customer order via transition (or many customer orders) such as the transition rule 104. COV-COC (furnizor de bază)
Consequently, the received stock (or expected) seeing that the specific supplier order should be sent to specific customer or customers.
To take into consideration this information from the algorithmic stock allocation, when the selection of specific documents is made (receipt or loading) a new selection is shown at this point (“related orders priority”) if this is activated then automatically the customer orders that are related with these documents, will get higher priority than all the others in their fulfillment.
In order this customer orders information to be transferred to those documents that the stock allocation process can process (Loading orders, Supplier Receipt Notes), a new functionality has been added to transition rules:
In each generated document, not only transferred ( as "related" documents) those from which it originated ( "initially") but can be transferred and related documents of these "initials". This is regulated by the value that will be assigned to Preserve target document history field: If Full history of initial document is defined, then all related documents of the initials will be copied to the generated.1st step – Order to supplier
If we send Order to supplier for specific customer Orders, using the transition “104. COV-COC (furnizor de bază)”, then the supplier Orders will get as related documents the customer Orders.
2nd step – Stock receipt
If then, by receiving from suppliers, we create Receipt Note by using the transition “101. COC=>NIR” (in which we have defined "full history of initial document" in the above setting), then these Notes, in addition to Purchase orders, they will also have the related customer Orders as related documents.
3rd step – Stock allocation to customer Orders
Executing the stock allocation for customer Orders with “stock calculation from” the specific Receipts and activating the “Related orders priority”, the system will find which customer Orders are related with each Receipt (NIR) and it will allocate the stock to them. If there is excess stock from the Receipt, then only this will be allocated to other orders.
If the new feature is used to the transition rules, then possibly the transitions graph will be indecipherable (that executively depicts the evolution of orders) which is excactly based on the “related documents” information.
For this purpose, two more extensions have been developed:
Workflow (this value is automatically filled out by transitions, when the related document is “initial” in the context of transition – namely, typical flow)
History (this value is automatically filled out, concerning related document copied from related documents of the “initial” document, using “Preserve generated document history”
Triangular flow (this value is filled out into related documents by as many reservations generated by current allocation stock process, when this is based on “specific receipt” or “specific loading order”- so, into a “RIC”, for instance, that derived from Sales Order “COV, if it is fulfilled by specific receipt “NIR” , the related COV corcerns “Workflow” value and the NIR concerns “Triangular flow”)
Information (user defined value to be used into several scenarios)
External system (value automatically filled out during entering related document line by the user, when this is not found into EBS data – it is text referring to a third system).
Simultaneously, on transitions display, ONLY connections concerning “Workflow” are displayed. If you wish to view all connections, the corresponding setting is available, at (on) the bottom of the
Direct forwarding of expected assortments to customers
In case the stock (for allocation) is calculated by a specific purchases receipt or merchandise en route (specific loading order), then a new setting will be available:
If the user enables it, essentially declares that he wants those customer orders that are compatible with the package (range) with the receipt from supplier to be fulfilled by priority, in order to conserve delivery preparation time.Suppose we have 2 customer orders
| Customer | Priority | Item | Package | Quantity | Color | S | M | L | Total (pieces) |
|---|---|---|---|---|---|---|---|---|---|
| Α | 1 | Χ | Pieces | 15 | ΒΚ | 5 | 5 | 5 | 15 |
| Β | 2 | Χ | Assort-S01 | 1 | BK | 4 | 3 | 3 | 10 |
And a Receipt from the Supplier (that is not sufficient to fulfill both)
| Χ | Assort-S01 | 2 | ΒΚ | 8 | 6 | 6 | 20 |
The system will propose the customer B to be fulfilled by priority (“matching” the receipt assortment with the requested assortment) and the excess stock will be located in the customer A order (who normally has higher fulfillment priority). That is:
| Customer | Priority | Item | Package | Quantity | Color | S | M | L | Total (pieces) |
|---|---|---|---|---|---|---|---|---|---|
| Α |
|
Χ | Pieces | 10 | ΒΚ | 4 | 3 | 3 | 10 |
| εκκρεμότητα pending (abeyance) | 5 | ΒΚ | 1 | 2 | 2 | 5 | |||
| Β |
|
Χ | Assort-S01 | 1 | BK | 4 | 3 | 3 | 10 |
If this setting is proposed to be enabled or not, depends on a new general parameter:
Export to excel
On the vertical toolbar of orders’ grid, the feature of exporting data to excel has been added for further processing or sending them to an off-line user etc. By selecting this action (
) a question is shown:
Orders to be sent (lines – columns with positive “quantity to be sent”)
Pending orders (lines – columns with smaller “shipping quantity” than “demanded quantity”, whereat only these differences will be transferred to excel, videlicet these that will create “back orders”)
All orders
- Other improvements
- In the orders grid, henceforth, the “double click” functions for opening the screen of the current Order.
- Hereafter, the shipping quantity is allowed to exceed the demanded quantity. This can happen when typing into the orders line grid (before or after executing the stock allocation process) or on the “stock consumption” (
or F12) that also shows the stock by Inventory. - Picking documents creation converted to automation, so that any desired extension could be easily done (\ESFormCommands\ESFIAvailableStockAllocation\AvailableStockAllocation.xml).
Stock valuation
In cases that the item does not exist during the Fiscal Year initiation and it might return i.e. after customer return from sales in the previous Fiscal Year, then the cost of this stock is calculated based on the standard price.
The new view Returned items with no balance (Inventory & Stock valuation) has been added to precisely be a control tool of items with such history, for which default value declaration is required. So, the Valuation process will seamlessly run.
This results in a new line addition into the “cost prices” of all selected items having as standard cost price, the price typed into this column of this view.
Reports
- In Financial Reports of Inventory, the ability to set price limit has been added to the criteria of business dimensions.
In Financial Reports of Inventory the criterion for whether to include essential items or those belonging to others (nonessential)
The default value of this criterion depends on a new general parameter, so that those who have this need, it will not be required to change any time (or at least the majority of cases) its value.
- In Opening Inventory Reports (tax and accounting basis), the official cost price is now printed with the decimal of values of the base currency. We would like to remind you that in the associated printing, the number of decimal price is parametric. The current change applies to on-screen display only.
Others
The menu “Review Balances” has been transferred under the node “Physical Inventory” and a new node “Stock Metrics” has been implemented, in which the views “Financial indicators”, “Average stock waiting time”, “Inactive stock cost” and “Fiscal Year comparison” have been associated with.
Fixed Assets
Improvements in Detailed Fixed Asset Registry
- Remarkable runtime improvement of the Detailed Fixed Asset Registry (tax and accounting standards)
- Addition of new grouping feature “Acquisition – Fixed Asset” where groupings by fixed asset are not interpolated (henceforth, the fixed asset is automatically added as a column), in cases that each fixed asset is consisted of ONE acquisition.
If this new feature is used, the existing choices “Fixed Asset” or/and “Acquisition” SHOULD NOT be used simultaneously.
If, in your case, the Fixed Asset Registry it is extended, it is recommended to use the minimum required groupings, as each new grouping requires extra time for calculating totals.
Recalculate depreciation for fixed assets with value changes
When a value-only invoice (debit or credit note) that concerns a specific number of fixed assets is received from a supplier, while depreciations have already been calculated (having accounted the initial value only), the objective is to allow the recalculation of depreciations for these particular fixed assets only (by deleting depreciations or by reversing any calculations in the particular fiscal year) while, for all the other fixed assets, any depreciations will be commonly calculated WITHOUT having activated the recalculation of existing depreciations - unless otherwise defined.
For this purpose, a new view “Fixed asset acquisitions for depreciation recalculation” has been added (Accounting/Fixed Assets/Information), which shows the fixed assets that have depreciations and value change entries during the requested (inquired) date range i.e. NVD.
The automation Recalculate depreciations which could be invoked by the horizontal toolbar, executes recalculation of all depreciation of the selected date range for the selected fixed assets (depreciable acquisitions), based on the user’s choices on the dialog of the parameters.
This process does not support fixed assets that has been exported (sales, retraction etc.) because the reversed depreciations that was calculated at the time of export could not be revoked and recalculated.
Users protection from incidental change in depreciations document
It has been identified that sometime users incidentally change the Branch (or the Warehouse and, consequently, the Branch) that has automatically been inserted in the lines of depreciation documents. This results in the following:
- The Fixed Asset Registry shows inaccurate data (inaccurate non-depreciated balance by branch, for those who keep it BY BRANCH)
- The next Depreciation calculation will calculate the Depreciations in the wrong Branch
- The Fiscal Year closing will take inventory of incorrect balances if we wish to do it BY BRANCH
For this purpose, new control has been added to all depreciation documents in order to protect the users from these kind of changes. This control is based on the calculation of value to be depreciated in the Brach that is declared in the fixed asset line by the user and if this value does not exist, a warning message will be shown or change with simultaneous revoking of the previous content is not allowed.
Whether the control shall be of warning or forbiddance type depends on a new general parameter.
The control is applied on document types with the new characterization DEPRECIATION.
The calculation of the value to be depreciated (if it concerns data on accounting or tax basis) is done based on the international codes of related product document types. In case that exceptional document types had been developed at development level, these controls should have been implemented at development level (with properties profile or business rule).
Expenses
Expenses allocation by branch
The feature of allocating expenses by branch has been added in trade documents, without the need of creating a special document in the appropriate branch series or applying accounting allocations.
As in adjustment documents (where the branch could be used as cost center in allocation profiles), allocations by branch could be created in the expense documents (FSC, CBN, etc.) (regardless of the branch of the document and the line item-expense). The created expense entries will have the branch of the related allocation line, resulting in the direct information by branch, through any report or display screen that uses the expense entries or the expenses periodic data (view, cube, ΒΙΤ, dashboard).
At management level, there is no change or instruction. The new functionality is that the branch now belongs to the available/visible columns of the allocation dialog box:
If this feature is used, you have to keep in mind that it exclusively concerns expenses. For instance, if grouping by branch is asked for the suppliers Trial balance (with turnover division), the totals by the branch will DIFFER with the expenses Trial balance totals by branch, since the supplier entries are updated with the branch of the document header (based on the default customization), while the expense entries are updated with the branch of the allocation lines.
It is kindly reminded that in the trade documents the line item branch CANNOT differ with the header branch. The differentiation is supported ONLY in allocation lines.
Financials
Matching based on items grouping
When a payment method is based on a that were included into the document (to define different payment forecasts by item category or family or group etc.), then it will be desired that the forecasting entries that will be created to transfer this information (respectively as happens with other groupings i.e. by business dimension), so this information will be utilized by the liquidity matching process.
When a payment method takes into consideration the grouping function (targeting to define detailed payment forecasts per item category or family or group etc.), then it is desirable that the forecasting entries that will be created to convey this information
For instance, if there is a 30-day credit for item category A and a 90-day for the category B, then in case of a credit for category A, we would like the matching to be closed only for payment forecasts of this particular category and not for the previous forecasting.
But even if matching is selective, we would like this information to remain at the user’s disposal, in order to be able to select and match the “correct” entries.
In order for this kind of functionality to be customized, the feature of copying the value of the item grouping field into a definable field of forecasting entries based on a new general parameter which is taken into consideration:
- During payment method application
- During line items value change in document that contains payment forecasting and contemporarily has this kind of payment method (with grouping based on a field of items).
Utilization of this feature by matching could be done with additional customization actions:
- Appropriate change of lines layout into the matching dialog (making the field visible i.e. “Text 1”)
- Appropriate matching rule customization, in order to “match” this field into opening and closing entries.
Apply credit control
In credit control failure message the customer code and the name have been added, to easily identify errors, especially when a generated document had derived from view of multiple customers “initial document”.
Collection from Retail customer with credit card
The functionality of automatic change of financial account line type into FORECAST when the financial account that “refers to credit card” is selected, has been added to the Retail receipt of ICC document type (so there is no need for the user to implement an additional action and be aware of the meaning of the line type – actual/forecast).
| In order to use this functionality, you need to insert from the ESMasterConfig |
- The 2-CARD properties profile
- The ICC document type
Documents and Transitions
The option of excluding some line tables during the document creation with “New by copy” has been added. This is defined from the new field “Exclude from Copy”.
It could be possible to exclude settlement data in trade documents
- Copying ALL related documents from the initial document has been added to document transition rules. Heretofore, if the field “Preserve generated document history” is enabled, the related documents of the generated will be transferred, those documents from which it was derived from. From the current version, henceforward, this field also offers “Full history of initial document”.
You can see how this feature is used from the process of Stock allocation in Orders (1st chapter of current document, on Inventory extensions).
Horizontal Functionality
Views (scrollers) and cubes building tool
Views (scrollers) with customized toolbars
The sInvoke command for view invocation has been enriched so that everyone can set certain basic settings of view toolbars.
The available settings are: Hide, Image, ImageAndText, Text, DockTop, DockLeft, DockRight, DockBottom. They are connected to each other with & i.e. (Hide:1,2&DockTop:3)
The colon follows each setting and then a list of toolbar numbers in which we wish this setting to be applied to. I.e. Hide:1,2 means that the 1st and 2nd toolbar will disappear. Τhe toolbars numeration starts from top left to right and the last (5) is the right vertical toolbar.
For instance, the following command results to the view as it is shown in the following figure.
sInvoke|Entersoft.Framework.Windows.Components.ESScrollerForm, ESGrid|SHOW|Λίστα Πελατών|ESFICustomer|ESFITradeAccountCustomer_def|||0||Hide:1,3,4,5&DockRight:2
To implement targeted views (scrollers) for specific activities, you can set especially the 4th toolbar (automations) to be shown “expanded” (setting Show).
For instance, the following command results in the view of the following figure.
sInvoke|Entersoft.Framework.Windows.Components.ESScrollerForm, ESGrid|SHOW|Λίστα Πελατών|ESFICustomer|ESFITradeAccountCustomer_def|||0||Hide:1,2,3,5&Show:4&DockTop:4
Show/Hide column conditions
The feature of declaring display column condition (with expression) has been added to EBS grids.
The expressions use the filters system for the expressions’ declaration and calculation. Each expression, is invoked in the context of the entry that the column is bound and, respectively, it returns true or false if we wish the column to be visible or not.
The expressions are saved into the EGL (grid layout) and they can can be transferred using copy-paste to another egl if it has the same layout.
The expressions’ definition into the views is done through the column’s property dialog (right click -> properties -> visibility expression).
If the user adds or removes columns and selects to show or hide a column, then its automatic administration will stop.
Change ONLY product view appearance
When the customization need is limited to the change of appearance (layout), henceforth no one is led to the customization of the overall view definition (including query). Very significant improvement that allows changes to the user interface without losing the privilege of upgrading, extensions, problem corrections in future releases of the product.
The new functionality can be found, by right clicking (after several view appearance changes) and “save schema”. What is being saved that time to the corresponding CS region is only the file with the layout information. The next time that the view will be invoked, the * will NOT be visible on its title, because it was found (and displayed) ONLY the schema (layout).
Open multiple designers simultaneously
The designer form can be opened from any view by clicking the button
and simultaneously pressing “Control”, so parallel access to other features of the application is allowed. An example of using this functionality is to open a designer of two views and the comparison of their filters (in adjoining windows).
Significant Query Builder extensions
Direct support of UNIONs via ESQs
Direct support of EXCEPT and INTERSECT
Simple CTE (Computed Table Expressions)
Efficient support of Linked Server and OPENROWSET
On the fly TEMPORARY Tables
JOINS with more than 3 columns and additional operators
Click Sql additions button on designer toolbar to implement one of the above, as presented below:
The selection leads to the following dialog:
Examples of use
Union subqueries
Pre-SELECT:
({~SubQuery1})
Union
({~SubQuery2})
UnionSub-filter SubQuery1:
SELECT col1, col2 FROM ESTable1Sub-filter SubQuery2:
SELECT col1, col2 FROM ESTable2Master filter:
SELECT col1, col2 from ESTable3
Complex joins in between tables/sub-filters
Post-FROM:
inner join ({~SubQuery}) as Q on (Q.col1 is null or Q.col1 = T.col1) and (Q.col2 is null or Q.col2 = T.col2)
Master filter:
SELECT col1, col2, col3, Q.col4 FROM ESTable1 as T(where Q.col4 is expression-column)
Sub-filter SubQuery:
SELECT col1, col2, col4 FROM ESTable2
Linked Server and OpenRowset
{~~SubQuery}
Like the {~ subquery} (with a ~), is replaced (into the point where we have inserted it) from the developed SubQuery, only that all single quotes we have written to several expressions in our queries will be doubled, shortly before being executed in SQL Server.
ESEqual with type of parameter the 4th argument
Now, the ESEqual accepts the 4th argument as type of parameter, where S: string, G: guid, D: date, N: numeric decimal and I: int. If this 4th argument is given, then the parameter will be replaced by literal. Thus, i.e. an ESEqual (Table.Column, @param,, S) becomes Table.Column = N’‘X’’ (with single quotes being duplicated) if the value of @param is X, whereas previously it was = @param Table.Column.
For instance, suppose we have created a link server entitled RFWMS and contains a DB entitled NonESDB.
Pre-SELECT:
SELECT *
from openrowset('SQLNCLI', 'Server=RFWMS;Trusted_Connection=yes;Database=NonESDB',
'{~~Persons}') as OSub-filter Persons:
SELECT
ESGOPerson.GID AS GID,
ESGOPerson.Code AS Code,
ESGOPerson.Name AS Name,
ESGOPerson.TaxRegistrationNumber AS TaxRegistrationNumber,
ESGOPerson.fTaxOfficeCode AS fTaxOfficeCode,
(case when ESGOPerson.Code > '000009' then '>00009' else '<=000009' end) AS QuotesTest
FROM ESGOPerson AS ESGOPerson
WHERE (ESEqual(ESGOPerson.Code,@Code,,S))
ESQ function
Invokes master ESQ of another scroller/pq.
Master filter:
SELECT GID, Code, Name FROM ESFITradeAccount
WHERE fPersonCodeGID in (ESQ(Scroller, ESCMS/Common))Scroller ESCMS/Common:
SELECT GID FROM ESGOPerson
WHERE NOT (TaxRegistrationNumber Is NULL) AND (TaxRegistrationNumber <> )
|
|
ATTENTION
|
CTE with subqueries (simple or recursive)
Sub-filter TaskRoots:
SELECT 0 AS Level, GID FROM ESTMTask
Pre-SELECT:
with TreeTasks
as (
{~TaskRoots}
union all
select TT.Level+1, T.GID from ESTMTask T inner join TreeTasks TT on T.fParentTaskGID = TT.GID
)Post-FROM:
inner join TreeTasks on ESTMTask.GID = TreeTasks.GIDMaster filter:
SELECT GID, Code, Description FROM ESTMTask
Create Temp (#) table
Sub-filter FilteredPersons:
SELECT GID, fCategoryCode
FROM ESGOPerson
WHERE NOT (TaxRegistrationNumber Is NULL) AND (TaxRegistrationNumber <> )Pre-SELECT:
select * into #my_temp from {~FilteredPersons} FPPost-FROM:
inner join #my_temp T on T.GID = {Internal ID}Master filter:
SELECT ESGOPerson.GID, ESGOPerson.Code, ESGOPerson.Name, ESGOPerson.TaxRegistrationNumber, ESGOPerson.fTaxOfficeCode, ESGOPerson.LastName, ESGOPerson.FirstName, T.fCategoryCode
FROM ESGOPerson
(where T.fCategoryCode is expression-column)
Type SQL statement
If we do not select any column from master table and do not create any expression-column, neither fill out any of the criteria, then the generated from the query builder will be only what we have typed into pre-SELECT. Thus, you can have a SQL statement which you have fully typed.
Public Query (PQ) trial execution
Press “Control” and “Shift” when clicking “WEB Publish” to get the json string of a Pblic Query. Then, the top 20 entries of the query will be presented in a form instead of being published, as displayed on the figure above.
Comma delimited parameters as default values
You can define a parameter as default value of a view (scroller), without this being translated into “multiple values”. To define a parameter as default value, you have to add the property NO_MULTIVALUE_PARSING to the parameter. Without this property, the parameter will be translated into “multiple values”.
Automations
Parameter insertion wizard
In order to customize workflow scenarios with optimal user guidance, automation parameters can be shown or hidden based on condition derived from values of (prior) other parameters. Simultaneously, the parameters are grouped by in sequential windows with wizard properties (previous, next). Therefore, targeted registration forms can be built by using automation parameters
View actions invocation from automations
The feature for accessing view actions via automations has been developed (i.e. Print Preview, Refresh, Crystal Reports invocation).
This feature, combined with the feature of view invocation without toolbars, but with buttons that lead exclusively to automations needed for a specific activity, allowing the design of really focused views that simplify the user’s work with a specific object.
As in the case of #include_ui that gives access to the form of the entity, the #include_scroller_ui was developed in order to give access to the Scroller UC via vb script.
Use CTRL-SHIFT-CLICK on a command’s title, to get the command ID, as presented next.
Crystal Report invocation on a view is presented in the following example.
Select hierarchical view lines
Through the Selector column, you can select lines at any view level (simple and hierarchical) that the automation will execute:
No changes required in the automation.
The line selection is replaced by the column “Selector”. Specifically:
If the selector does not exist then the change will be made only with mouse selection, while if a Selector exists the selection will be made only through the selector.
Additional extensions
- New values of Convert functionality (Date Range to From Date, Date Range to To Date, StringToGuid, ToString)
- Feature for utilizing the current document when executing the action Auto-close quantities according to a set of criteria via automation. Videlicet, this process is executed for the document that currently the automation is creating ("filling out"). If the user fills out the related documents in the generated document and selects to automatically assign quantities based on them, the result will be identical to it.
- New Printer selection Feature in automation parameter, via new build-in function Select Printer which can be used for initializing automation parameter. If this parameter is visible and it is unique then the parameters dialog box will not open. Only the printer selection dialog box will open.
- Feature of action execution of an entity without having to first save (This action is defined as part of an assignment "After having set the values (at the destination entry)"
- Feature of document cancellation with manual series. The document cancellation action was extended, so with additional “Number” parameter, the automation creator fills it out when manual series are used.
Data import tool (ΕΜΙ)
Data to be imported preview
If you wish to preview the data that will be imported to an entity, you can use the button next to the entity’s name “source” as it is presented in the figure.
If the data resulting from previous step of EMI from external source, firstly, you must perform these steps in order to create the corresponding tables in the base and import the data to them.
Change lines between details of an entity feature
Two buttons have been added to insert/update entity via an EMI (see above figure), so we can change the order in which the detail lines of the entity will be filled out.
Data Interchange
To improve the Data Interchange cycle, both in Mobile and independent environments, the following extensions were developed:
Export scenarios
- Fields Code, Grouping, Comments & Run condition (with values Always, Never, Initial execution, Next executions).
- The use of ESFunction ESQ by referring to another export scenario is supported, i.e. the use of ESQ (DI, PersonToPDA) integrates the SQL statement of the export scenario with PersonToPDA code.
- Henceforth, the property values of node/ data type with the treaty PROP_name_PARAM where the name of the property can be used in the query as parameters.
- Parallel execution of queries is supported, if the ES_PARALLEL_PACKAGE property is declared as True. This means that if the query is node dependent, and therefore will be executed n times, where n is the number of nodes, then these executions will be parallel (based on the number of machine cores).
Import scenarios
- Henceforth, the property values of node/ data type with the treaty PROP_name_PARAM where the name of the property can be used in the EMI as parameters.
- Parallel execution of import scenarios is supported, if the ES_PARALLEL_PACKAGE property is declared as True. This means that if Import for multiple nodes is asked, then the imports will be executed in parallel (based on the number of machine cores) though all EMI for a specific node will run in sequence.
ES/CS
- Hereafter, a product type can be edited, where specifically in export scenarios only the ESQ and the fields Comments, Run condition can be edited, while in import scenarios only the EMI scenario. The changes are saved to corresponding files in CS subfolder inside the file where the ESQ/EMI was saved.
- The product type installation always installs a copy. As results, when a new version of the product type is available and installed, the selected customization elements could be transferred from the working version to the new one. For this, use the Copy/Paste actions in Import/Exports EMI scenarios. The steps are as follows:
- By editing the old data type, in grid of exports/imports area the user should select the custom scenarios and press “copy”.
- By selecting the new data type, the user must press the Modify button and then Paste to the exports / imports. Now the customized data type is available. Then, from a specific export / import scenario, the user can also have access to the Product Definition ESQ / EMI along with the customized, in order to proceed to the corresponding changes if needed.
- The copy/paste functionality for export/import scenarios also runs in non-product types. Only the product definitions could not be copied.
- Editing in older system data types were not supported, meaning that types that had been created with older DataInterchange version.
- If the data type is product, then customizations will be shown in the grid with the corresponding red color of the corresponding column (Title for ESQ/EMI, Run condition for conditions etc.).
Designer
- Henceforth, the exports, imports will be shown in tab pages, so, the editing surface will be bigger, while the controls with grids for supporting filtering and extra columns have been replaced.
- Hence, the deletion of data type also deletes the ES00PackageLogEx, ES00DevicePackageLog entries henceforth, no extra step will be needed from the automation.
- The export/import user defined parameters are respected and will not be deleted, henceforth, there is no need to independently be added to each export/import scenario.
- To open the file with (ESQ, EMI) contents during Editing, press Alt+F12 into the export/import designer.
- Data type list filtering is supported.
Others
- Improvements on the Connected Users screen (Tools and Configuration -> Connection to the application server)
The feature of deletion (kill) of selected connections in the grid has been added, with the button Delete selected connections.
Throughout Delete external Connections (that deletes all connections being characterized as NC – No Count), henceforth, the form for process confirmation is shown to the user.
All connections to the Server (from MainApp, Μobile, WebApi..) and their license agreement are displayed.
Τhe total number of licensed users is displayed at (on) the bottom of the screen.
New columns Last time contacted (LastPingTime), login Date and Time and Application (Application ID) have been added
Finally, Send message functionality has been added
- Send push notification to the ESMaster application users in the following occurrences:
Application server started
Application server stopped
Βackup DB started
Βackup DB finished
Version update started
Version update finished
Version update error
Custom version change
Clear cache
Out of licenses
Appendix
Hereafter, use of 2nd monitor on the workstation is supported in ESRetail application:
- If the parameter with code EXTRA_SCREEN_1_TEMPLATE is set into ES00RetailParams.xml, then web browser control in full screen mode will be displayed on the 1st non-primary monitor of the workstation (because on the primary ESRetail is displayed). This control is disabled, so it does not get the focus of Retail screen. If the parameter value is url, then this control will display this site, else the contents of the ESHtmls\<parameter value>\index.html file (or CSHtmls accordingly) will be displayed.
If a 2nd monitor exists, you should also set the EXTRA_SCREEN_2_TEMPLATE parameter and so forth. So the customer will be able to see i.e. some photographs as advertisement and when a receipt is being entered, the receipt data will be displayed.
For each registered document into ES00RetailDocuments.xml, we can display their data on the 2nd screen by setting the ShowInExtraScreen property to true. Information about each registered document of the ES00RetailDocuments.xml could be displayed on the 2nd monitor, but firstly, the value of the ShowInExtraScreen property must have been set to true.
The available fields in HTML markup are those defined in the ESExtraDisplayData.json file of ESRetail/CSRetail folder in the form of i.e.
{
"ESFIDocumentTrade": [ "fADCurrencyCode", "CurrencyPayableAmount", "PayableAmount" ],
"ESFILineItem": [ "fItemGID", "fItemMUGID", "Quantity", "Price", "TotalValue" ],
"FK_ESFILineItem_ESFIItem": [ "Description" ],
"FK_ESFILineItem_ESMMItemMU": [ "Code" ]
}
In HTML markup there should be 2 js functions: the ShowDocument and HideDocument. The ShowDocument takes as argument the document data selected via ESExtraDisplayData.json in JSON format. For the previous example:
{
"ESFIDocumentTrade": { "CBF7F94E-BC87-45E7-A81B-6B4568808132": {
"fADCurrencyCode": "EUR",
"CurrencyPayableAmount": "27,930",
"PayableAmount": "27,93",
"PayableAmount__Symbol": "€"
}
},
"ESFILineItem": { "2AEA2DB0-EADE-4E22-9857-269915A5FC18": {
"fItemGID": "ecc5ac8e-4e01-46bc-afc0-c1b6091ee4d7",
"fItemMUGID": "d12cd677-5a7a-4908-a932-21b7c5199116",
"Quantity": "1,000",
"Price": "29,40",
"TotalValue": "27,93",
"TotalValue__Symbol": "€"
}
},
"FK_ESFILineItem_ESFIItem": { "ECC5AC8E-4E01-46BC-AFC0-C1B6091EE4D7": { "Description": "Dark Place" } },
"FK_ESFILineItem_ESMMItemMU": { "D12CD677-5A7A-4908-A932-21B7C5199116": { "Code": "PC" } }
}
To automatically read files of a specific subfolder, so i.e. to display all the promo folder images as a carousel tray, the function GetFiles is available in window.external object and it takes as argument the folder, the search pattern and whether it is recursive and returns files in JSON format sorted by name.
Invocation example:
window.external.GetFiles("promo", "*.jpg", false);
