|
List of Warnings |
Top Previous Next |
|
List of Warnings Data Management
DMA001 : Table is opened in Write mode but isn't updated DMA002 : Table is opened in Read mode but data are written into it DMA003 : Table is opened with Cache = Yes definition DMA004 : Table is opened in Write mode with Cache = Yes definition DMA005 : Table is used as Main Table but no Key is used DMA006 : Batch Create with Main Table and No End Task Condition DMA007 : Link is used but no Key is defined DMA008 : Link Query, Inner Join or Left Outer Join is used but has no field with Locate definitions DMA009 : Link is used with Range definitions on fields DMA010 : First segment of Index in Link Query is not Located on DMA011 : Not ALL index segments use Locate expressions in Link Write DMA012 : Not ALL Unique index segments are used in Link Write/Create DMA013 : Table does not have a Unique index DMA014 : Range expression is used on Virtual field DMA015 : Deferred transaction is used within Physical transaction DMA016 : Link Create without Init values DMA017 : Link Write without Init values
Work Flow
WFL001 : Locate all Operations which Conditions are set not to be executed WFL002 : IO File with Expressions containing variables selected in current task WFL003 : Mismatched Parameters in Call Tasks / Programs WFL004 : Functions should use Literal expressions WFL005 : Init expression is used on Real fields in other than Batch Create task WFL006 : Init expressions is used on Real fields in other than Link Write/Create WFL007 : Locate is used on Real fields in Batch task with Main Table WFL008 : Real fields are used in Task Prefix WFL009 : Variable should be passed by reference WFL010 : Must Input property is crossing with variable's condition WFL011 : Modifiable property is crossing with variable's condition WFL012 : Multiple consecutive Verify Warnings WFL013 : Verify Warning with Box display is used in Batch task WFL014 : Verify Error used in Batch task WFL015 : Variable should be passed by value WFL016 : Real fields are updated in Task Suffix WFL017 : Empty Programs are used WFL018 : Show all Empty Programs WFL019 : Locate all Links with Validation set WFL020 : Locate all Expressions with KBPUT function WFL021 : Tables are opened within Task that ends on Task Level WFL022 : V10 Migration : Online Tasks using Record Main for operations instead of Handlers WFL023 : Timer events and handlers with 00:00:00 WFL025 : Controls are out of form boundaries WFL026 : CallProg - Parameter count mismatch WFL027 : Detect virtuals as parameters WFL028 : HTML Tags Table includes default Picture for Tags set as expression
Optimization
OPT001 : Batch task with Open Task Window = Y but has a blank form OPT002 : Batch task has No Main Table and No End Task Condition OPT003 : Invalid operations are used in Batch tasks' Record Main OPT004 : Batch task should be set as Resident OPT005 : Table should be opened in higher task OPT006 : Recommended use of CndRange function OPT007 : Tasks with Sort, Range or Locate expressions OPT008 : Picture on Form differs from Variables Picture
SQL
SQL001 : SQL Task with Result Database same as Database SQL002 : SQL Task where Result Database differs from Database SQL003 : SQL Task where Result Database is Memory SQL004 : SQL Return Code is set but not used SQL005 : SQL Input Parameters are defined in same task SQL006 : Task uses SQL functions ( DbDel, DbRecs, DbName, ... )
Effect : Programs where Tables are opened in Write mode could lock records in Multi-user environment. Incorrect locking mechanism could result in unpredicted behaviour of the application's workflow. Advise :Change the Table's Access mode to Read.
Effect : If data need to be written into a Table it need to be opened in Write mode. If it's not than error message : 'Cannot modify Read Only table' will occur. Advise : Change the Table's Access mode to Write.
Effect : Caching of data on client's workstation limits the network data transfer, but it also means that application is not always working with live data. Caching of look up tables makes sense, but for more advanced situations caching of data could result in unknown errors. Advise : Change Table's Cache setting to No.
Effect : Caching of data on client's workstation limits the network data transfer, but it also means that application is not always working with live data. Caching of look up tables makes sense, but for more advanced situations caching of data could result in unknown errors. Advise : Change Table's Cache setting to No.
Effect : Opening a Table without using the Key means data will not be ordered by any order. Advise : Use Keys when accessing Table's data.
Effect : Batch Create tasks are used to create new records. If there's no condition set to stop the action, new records will be created until it's forced to stop by error. Advise : Always use End Task Condition to specify when inserting new records should stop.
Effect : Depending in linked fields, usually using link without the key results into poor performance. Advise : Use a key. If the key doesn't exist for specific purpose, create it. Even creating Virtual key will improve performance accessing data.
Effect : If not intentionally, without located fields Magic will always position itself on first record in the table. Advise : Use locate expressions to link to specific record.
Effect : When implementing lots of code in RM, mistakes like setting Range columns instead of Locate columns Advise : Move Range expressions into Locate fields
Effect : In this case Magic won't use a specified Index. It could use similar index, if exists or it will use sequential reading of data Advise : Add Locate values for first segment of index or use/create different/new index
Effect : If Link is used to link to a specific record it will most likely fail, since records with same located values can exist, even if index is unique Advise : Add missing segments
Effect : This will most likely sooner or later case Duplicate Index error Advise : Fill in the missing Init expressions or add correct Update operations
Effect : In most cases, tables should only have unique records. Otherwise we have problems with locating specific records for any data manipulation Advise : Make sure you really don't need unique records in the table Effect : If a range was set to virtual by mistake instead of real field, the range won't work properly. Advise : Make sure if range values were set correctly Effect : Deferred transactions are meant for internet development, and are not advised to be used in online tasks. Advise : Change physical to deferred transaction or re-design the flow of the task. Effect : When Columns in Link Create operations are used with Init values, it can easily happen we forget to set all the ones we need to. Advise : Check if Init values should have set. Effect : When Columns in Link Write operations are used with Init values, it can easily happen we forget to set all the ones we need to. Advise : Check if Init values should have set.
Effect : Operations which are not executed are just overhead code which could have no impact on work flow, on the other hand they could be switched off for testing or debugging purpose and weren't switch back on Advise : Make sure these operations are really not needed for correct work flow and delete them
Effect : IO File is constructed before current task's variables are defined so the IO File's name won't have correct name. Magic Optimizer skips all Parameters, since they could receive data before it IO File is constructed Advise : Move necessary variable into upper task
Effect : When migrating application from earlier version of Magic these mismatches could greatly affect work flow. For example if '' is passed to Logical variable in Magic 9.4 it will result into 'TRUE'LOG comparing to Magic 8, where it is excepted as 'FALSE'LOG Advise : Change Parameters attributes. Much better is to change all parameters into Select Parameter and then Magic will identify all mismatched parameter with it's Checker (F8)
WFL004 : Functions should use Literal expressions Effect : If literals, like FILE, PROG, KEY ..., are not used when referencing Magic's objects, as soon as you start moving objects up and down in repository application will not work correct anymore. Advise : Make sure you use literals when needed
Effect : Init expressions on Real fields are not applicable to Batch Create Task when these expressions are applied to new record values Advise : Remove unnecessary init expressions or make sure these init expressions weren't meant for virtual variables
Effect : Init expression on Real fields in Links are only applicable to Link Write or Link Create. Other Links disregard init expression Advise : Remove init expressions or make sure you use correct Link operation
Effect : Locate values are disregarded in Batch tasks with Main Table defined. Locate on Main Table fields are only applicable for Online tasks Advise : Remove unnecessary Locate values on Main Table's fields
Effect : Task Prefix is issued before data view is parked on any record, so Real fields are empty Advise : Make sure you have needed data for current task's Task Prefix in upper task or send them by parameters
Effect : Variables could mistakenly be passed as value instead of reference. Advise : If you receive data back from calling Program or Task, pass variable by reference
Effect : If variable has condition in RM set to NO or 'FALSE'LOG, expression used on Form is never executed Advise : Change Condition or remove Must Input expression
Effect : If variable has condition in RM set to NO or 'FALSE'LOG, expression used on Form is never executed Advise : Change Condition or remove Modifiable expression
Effect : Consecutive Verify Warnings with same conditions will overlap one another Advise : Add necessary conditions or remove unnecessary warnings
Effect : When Verify Warning with Box display is issued will pause batch task's execution until user will press Ok button. This could be left there from test or debugging process. Advise : If not intentional, change to Status display or completely remove Verify operation
Effect : When Verify Error is executed in Batch task it will completely stop batch task Advise : Change Verify Error into Warning or remove Verify operation
Effect : When variables are passed by reference, wrong assumption about returned values can occur Advise : If you don't expect any returned values, pass variables by value and not by reference
WFL016 : Real fields are updated in Task Suffix Effect : When execution of task comes into Task Suffix, no data changes will be written, because Record Suffix handles it Advise : Move any data changes into Record Suffix
Effect : Empty programs have no workflow functionality. When called, nothing will be executed or returned as value Advise : Remove Call operations or any functionality related to empty programs
Effect : Sometimes empty programs can be confusing if they appear in the middle of proper programs. Advise : Remove empty programs or mark them as empty
Effect : Link with Validation set can cause Applications' workflow to terminate unexpectedly Advise : Make sure you use Validation with intention and not by mistake
Effect : Complicated KBPUT functions can sometimes cause unexpected behaviour Advise : Use Raise Event operations where applicable
Effect : Task ends before any data is being read Advise : Make sure task is designed correctly
Effect : The concept of Record Main is gone in Magic eDeveloper v10 and uniPaaS Advise : Implement Events and Handlers instead of operations in RM
Effect : Events will not be executed Advise : Set time for execution
Effect : Fixed path might not be same on different installations Advise : Implement logical path or dynamic path
Effect : Form can not show all the controls Advise : Resize the form or re-arrange controls on the form
Effect : Called program might not behave the same as if all needed parameters are sent Advise : Make sure all mandatory parameters are passed to the program
Effect : If virtuals as parameters are not set as Select Parameter, this warning will collect all the information from calling programs and show how many parameters the program receives Advise : Make sure all parameters are set as Select Parameter
Effect : When changing Variable's picture property, which has already been used in Tags Table, the Picture in Tags Table doesn't change automatically. In such cases incorrect values might be presented. For example, if we changed Alpha Variable's Picture from 100 to 200, but it was first selected as Tag in Tags Table, the Picture in Tags Tables is not automatically changed. Thus only first 100 characters will be presented instead of full 200. Advise : Make sure all Picture values in Tags Table are set accordingly to Variable's Picture property.
Effect : Blank display will only slow down the batch. Advise : Set Open Task Window to NO
Effect : This will most likely cause infinite batch loop Advise : Set End Task Condition
Effect : Only Select and Link operations are executed in RM in Batch task Advise : Remove all operations which are not executed from RM
Effect : If task is called from Group Level, it's highly possible it's called numerous times. Making it resident will speed up the work flow. Advise : Set Resident property in Task Properties, Advanced tab
Effect : If task, that is called from Group Level, opens a table means each time task is called table will be opened and closed.Unless same table is opened in higher task. Opening table in higher task will increase the speed of task's execution. Advise : Open table in higher task
Effect : CndRange function has great advantages over IF function Advise : Replace IF functions with CndRange where applicable
Purpose: To locate all tasks with Sort, Range or Locate expression
Effect : Different pictures can show different values Advise : Make sure pictures were not changed by mistake
SQL warnings are useful depending on application's need. Some of these warnings could be useful for some applications and some of them for others.
Effect : In some situations Result Database to be same as Database is not advisable and could cause Magic to crash Advise : Change Result Database into another database, perhaps Memory
Effect : Depending on usage, this could result in incorrect work flow Advise : Change Result Database into another database
Effect : In some situations this could be a mistake Advise : Change Result Database to another database
Effect : If Return Code was meant to be used, in this case work flow will be incorrect Advise : Make sure Return Code is used for it's purpose or remove it
Effect : Direct SQL is constructed before current task's variable's values are defined. Magic Optimizer skips Parameter defined in this task, since they can receive values. Advise : Move SQL Input Parameters into upper task
SQL006 : Task uses SQL functions ( DbDel, DbRecs, DbName, ... ) Purpose: To locate all tasks using SQL functions.
|
|
|
Copyright © 2011 Ocean Solutions | http://www.magic-optimizer.com |