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

    WFL024 : Fixed path is used

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

 

 

Data Management

 

DMA001 : Table is opened in Write mode but isn't updated

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.

 

DMA002 : Table is opened in Read mode but data are written into it

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.

 

DMA003 : Table is opened with Cache = Yes definition

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.

 

DMA004 : Table is opened in Write mode with Cache = Yes definition

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.

 

DMA005 : Table is used as Main Table but no Key is used

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.

 

DMA006 : Batch Create with Main Table and No End Task Condition

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.

 

DMA007 : Link is used but no Key is defined

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.

 

DMA008 : Link Query, Inner Join or Left Outer Join is used but has no field with Locate definitions

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.

 

DMA009 : Link is used with Range definitions on fields

Effect : When implementing lots of code in RM, mistakes like setting Range columns instead of Locate columns

Advise : Move Range expressions into Locate fields

 

DMA010 : First segment of Index in Link Query is not Located on

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

 

DMA011 : Not ALL index segments use Locate expressions in Link Write

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

 

DMA012 : Not ALL Unique index segments are used in Link Write/Create

Effect : This will most likely sooner or later case Duplicate Index error

Advise : Fill in the missing Init expressions or add correct Update operations

 

DMA013 : Table does not have a Unique index

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

DMA014 : Range expression is used on Virtual field

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

DMA015:  Deferred transaction is used within Physical transaction

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.

DMA016:  Link Create without Init values

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.

DMA017:  Link Write without Init values

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.

 

 

Work Flow

 

WFL001 : Locate all Operations which Conditions are set not to be executed

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

 

WFL002 : IO File with Expressions containing variables selected in current task

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

 

WFL003 : Mismatched Parameters in Call Tasks / Programs

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

 

WFL005 : Init expression is used on Real fields in other than Batch Create task

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

 

WFL006 : Init expressions is used on Real fields in other than Link Write/Create

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

 

WFL007 : Locate is used on Real fields in Batch task with Main Table

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

 

WFL008 : Real fields are used in Task Prefix

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

 

WFL009 : Variable should be passed by reference

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

 

WFL010 : Must Input property is crossing with variable's condition

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

 

WFL011 : Modifiable property is crossing with variable's condition

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

 

WFL012 : Multiple consecutive Verify Warnings

Effect : Consecutive Verify Warnings with same conditions will overlap one another

Advise : Add necessary conditions or remove unnecessary warnings

 

WFL013 : Verify Warning with Box display is used in Batch task

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

 

WFL014 : Verify Error used in Batch task

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

 

WFL015 : Variable should be passed by value

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

 

WFL017 : Empty Programs are used

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

 

WFL018 : Show all 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

 

WFL019 : Locate all Links with Validation set

Effect : Link with Validation set can cause Applications' workflow to terminate unexpectedly

Advise : Make sure you use Validation with intention and not by mistake

 

WFL020 : Locate all Expressions with KBPUT function

Effect : Complicated KBPUT functions can sometimes cause unexpected behaviour

Advise : Use Raise Event operations where applicable

 

WFL021 : Tables are opened within Task that ends on Task Level

Effect : Task ends before any data is being read

Advise : Make sure task is designed correctly

 

WFL022 : V10 Migration : Online Tasks using Record Main for operations instead of Handlers

Effect : The concept of Record Main is gone in Magic eDeveloper v10 and uniPaaS

Advise : Implement Events and Handlers instead of operations in RM

 

WFL023 : Timer events and handlers with 00:00:00

Effect : Events will not be executed

Advise : Set time for execution

 

WFL024 : Fixed path is used

Effect : Fixed path might not be same on different installations

Advise : Implement logical path or dynamic path

 

WFL025 : Controls are out of form boundaries

Effect : Form can not show all the controls

Advise : Resize the form or re-arrange controls on the form

 

WFL026 : CallProg - Parameter count mismatch

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

 

WFL027 : Detect virtuals as parameters

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

 

WFL028 : HTML Tags Table includes default Picture for Tags set as expression

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.

 

 

 

Optimization

 

OPT001 :Batch task with Open Task Window = Y but has a blank form

Effect : Blank display will only slow down the batch.

Advise : Set Open Task Window to NO

 

OPT002 : Batch task has No Main Table and No End Task Condition

Effect : This will most likely cause infinite batch loop

Advise : Set End Task Condition

 

OPT003 : Invalid operations are used in Batch task' Record Main

Effect : Only Select and Link operations are executed in RM in Batch task

Advise : Remove all operations which are not executed from RM

 

OPT004 : Batch task should be set as Resident

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

 

OPT005 : Table should be opened in higher task

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

 

OPT006 : Recommended use of CndRange function

Effect : CndRange function has great advantages over IF function

Advise : Replace IF functions with CndRange where applicable

 

OPT007 : Tasks with Sort, Range or Locate expressions

Purpose: To locate all tasks with Sort, Range or Locate expression

 

OPT008 : Picture on Form differs from Variables Picture

Effect : Different pictures can show different values

Advise : Make sure pictures were not changed by mistake

 

 

SQL

 

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.

 

SQL001 : SQL Task with Result Database same as Database

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

 

SQL002 : SQL Task where Result Database differs from Database

Effect : Depending on usage, this could result in incorrect work flow

Advise : Change Result Database into another database

 

SQL003 : SQL Task where Result Database is Memory

Effect : In some situations this could be a mistake

Advise : Change Result Database to another database

 

SQL004 : SQL Return Code is set but not used

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

 

SQL005 : SQL Input Parameters are defined in same task

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