Genio_Ebook
Share on Social Networks
Share Link
Use permanent link to share in social mediaShare with a friend
Please login to send this document by email!
Embed in your website
14. Genio is responsible for the entire development pro cess, without any further needs for changes after generation. Any complementary code that has to be m anually written is isolated, protected and taken into account in each regeneration. Systems developed by Genio are complex, used by lar ge organizations, in the current very competitive and challenging economic environment. They are cust omized to the procedures specific to a function or activity and urgent, to ensure strategic agility of organizations that use them.
33.
55. If translations are incorrect, you can edit the rec ord, replace the text and then click Reviewed:
93. The out coming result will be “Catherine”, as depic ted below, with the record being automatically created:
103. Two airports exist in the DBMS: Lisbon and Oporto, both of which can be a departure or an arrival airport, as depicted below:
105. In this window you can either add new tables or sel ect existing tables. Since the tables shown in the chart are only representations of the relational mo del, when deleting a table from the chart you are only clearing the chart representation, which means that tables in relational model will remain intact . Relational model chart also allows the creation and /or deletion of relations between tables, automatically inserting a FK on the related table o r converting the FK to plain text.
113. Tip: Provided the expression “/[code]/” is used, the code of each element in each row will be displayed on lists.
119. On the other hand, if DB field name is filled, the out coming result will be:
120. Tip: Spaces are not allowed in DB field names.
132. In order to determine child’s age, an arithmetic fo rmula will be used to compare the fields DTOBIRTH and CHILDAGE: Age = Today – Date of birth
133. Child’s age can also be evaluated with a function. At field child age CHILDAGE, insert an arithmetic formula with the following syntax:
136. In parent table PAREN, insert filed NRCHILDS, as a numeric field type, with width = 2. Using a SR linked sum, evaluate the total number of children. Total records from LINKS table are defined as [LINKS>1]: Hence, if table LINKS has 2 records, SR linked sum will return 2 at PAREN’s table NRCHILDS field:
138. Create field in table PAREN with SR formula that on ly sums the records of children with age inferior to 18:
139. The out coming result will be: Tip: SR formulas do not work with logical type fiel ds.
155. Insert FP formula on field ENDDATE: Insert character array for civil status:
156. Once the user defines a new civil status, the previ ous record will be, automatically, closed with and end date prior to the new record’s start date:
172.
181. Some of the most common list field controls used ar e table lists, which display fields from below related tables with the form table area:
182.
184.
185.
187.
188.
192.
207.
213.
214.
220.
231.
235.
240.
246.
254.
255.
257.
263.
271. Tip: Test connection.
272.
273.
281.
282.
283.
284.
285.
286.
291.
298.
301.
308. Persistence layer allows the user to perform low le vel queries, such as values, array lists and data m atrix, as well as obtain records from an area Iarea. IArea represents the interface layer for classes Area an d CSGenioArea and, finally, Area contains all the bus iness rules associated to tables’ operations (insertion, change, deletion, formulas, etc.).
313. As previously mentioned, Genio works like an integr ated development environment (IDE) creating central interface to definitions, specialized tools and the generator to create the final source code of all applications. With Genio, definitions are technology independent and models are declarative and relational. Generated code is Genio’s independent and for each platform, a different set of templates is used.
340.
345.
351. Metadata file includes all the tables and fields de fined in Genio for CAv’s use:
357.
361. Tip: CAV0.db is a previously created empty database , containing only a record on PSW table for administrator login. Tip: Access to CavConfig directory will be blocked in IIS to ensure that no network user accesses configurations files.
365.
385. CAv queries can be saved and consulted afterwards, according to different access levels: Tip: Users of CAv portal are defined in the BackOff ice application, along with the other modules’ access levels:
386.
395.
396.
397.
408.
410.
411.
412.
413.
414.
415.
419.
421.
162. This routine will, automatically, insert all fields from the selected base area, including fields from above related tables: Tip: By default, each table has one form assigned however, users can create as many forms as necessary:
258. Format currency fields
259. Format text fields
260. Format pictures
267. Specify administrator login credentials for applyin g grant rights for the new windows service account. Results are displayed as depicted below:
287. Resources Resources are often used to define menu’s icons, as depicted below.
288. Create a new resource
292. Texts
293. Define new texts
392. Requirements In order to best manage your own tasks, Genio provi des a tool where you can control the project requirements, ongoing tasks and to do tasks:
394. Technical documentation Genio allows the generation of technical documentat ion containing all information regarding tables, fields, arrays, forms, menus, reports and access le vels defined in the project, as depicted in the pic tures below:
400. Revert Revert option will look for all central server’s da tabases and the one with the timestamp less or equa l to the chosen one in revert option will be selected .
402. Query
409. Create fields and formulas
416. Create forms
417. Create menus
44. Define permissions for database reindexation
108. Primary key
114. Define dynamic arrays A classic example of a dynamic array is one where the elements are the months of the year and you can enter the year and keep it up to date. For this , you must enter a function in formula field: Good practice: Avoid fixed arrays as possible as yo u can. Instead, use tables which allow flexibility whenever a new element is created.
128. Define writing conditions for a given record Let’s take, for instance, social security number. T he child’s record on the database is only allowed i f child’s security number field is filled.
129. Specify show when condition and disable for and of a given record, respectively Let’s take, for instance, VAT number. The child’s r ecord is only visible if child’s age is over 18 yea rs old and the field is disabled if child’s age is und er 18:
173. Insert button next
176. DB Fields
180. Lists
189. Flash Control
191. N: N Some of the most common N: N field controls used ar e check lists:
225. Lists N: N
234. Properties
236. Full text search
261. Work with section expert
5. Software engineering
8. Codd’s model - A glimpse
12. Why Genio?
19. Install Genio
32. Shutdown all users using QuidServer Any user with administration permissions is able to force the system’s shut down for maintenance tasks, as long as Quidserver is running.
34. Get started
50. Log triggers Log triggers option allows data auditing, based on low level triggers implemented whenever possible in their own DBMS. Data auditing will check all mod ifications, their author and modification date, recording that information in a table. Log triggers are independent of the relational model thus, supporting versions upgrades without losing data. Tip: Log table should be cleaned periodically since log triggering will gather a heavy amount of information.
56. New languages can also be added to Genio, whenever necessary. Typically, each API has its own form of dealing wit h languages and not all languages are supported in every platform. Hence, multiple template files must be managed in order to assure a proper generation to every platforms. Whenever a new language is adde d, the following files must be modified: 1. Languages.txt
62. 3. The out coming result is:
73. 4. Establish the relation between login (PSW) and pare nt:
75. Quick Win – Hello World!
79. 5. Create menus for output of the graphical interface:
81. 8. Compile the solution with Microsoft Visual Studio a nd Genio’s output is depicted as follows:
92. Insert controlled records Select table TABLE and insert a new controlled reco rd: Select field from table and insert field value:
111. For example, the array "gender" is composed of the following elements: feminine and masculine, whereas VAT elements not only have too many element s but these also can change in time. 1. Insert a new field Gender with field type character array:
112. 2. Select Array option and click Insert. Define array properties: name, length, type, code and elements: Dynamic arrays block the insertion of new elements in arrays’ lists and unlock Formula fields, where functions and inline commands can be defined.
116. a. Select field FIELDN14 and edit:
117. b. Click the following button and Genio will, automati cally, attribute a new order to the field:
118. DB field name Name of the column that appears in DBMS, instead of field name. DB field name is a user friendly name for the final users. The out coming result without DB field name filled is depicted below:
123. The above referenced rules are object of internal v alidation functions. Define filling rules Consider the following relational model:
125. Align Align field right or left.
126. Other properties Given specified conditions, fields and table rows c an be limited:
141. 1. In table LINKS, insert ST formulas for fields CODPA REN and CODCHILD
142. 2. In table LINKS, insert numeric field STFORMUL, with SR formula CSONS→1
150. 2. Insert the new field on PAREN’s form:
152. 1. Insert text fields PARFIRST and PARLAST in table LI NKS and create replica formulas for each one of them.
153. 2. The outcome result is:
158. The out coming result will be: DF default (always) DF formulas specify a default value, whenever a new record is created. This value can be edited by users. DF value is computed whenever the source val ues are edited.
166. Access levels Access levels define the permissions of the users t o consult and/or change the form. By default, these two fields are filled with 1 (lookup level).
167. Conditions This feature allows users to define conditions to c reate, change or eliminate the form.
177. Some of the most common DB field controls used incl ude empty fields and lists: 1. Empty fields (fields from base area)
190. Genio provides several chart templates for generic flash controls: Tip: Flash control feed is always made through manual routines .
200. Toolbox dialog
202. Transformations By default, the form’s offset position is 0; 50. Ho wever, users can change this value with the aplly offset option:
212. b. Ribbon option must be selected in both module and c lient’s module, as depicted below:
229. Area’s subsets Available area subsets types are array area subset and logical area subset.
237. 1. Define full text menus
250. 9. Link together the tables you added to the report
253. 14. Templates (optional)
265. Once the Configuration Manager is connected success fully, the Report Server Status is displayed as depicted below. You can see the current status of t he Reporting Service and Stop or Start depending on the current status. Use the reporting services c onfiguration manager tool to define or modify settings for the report server and report manager. 4. Configure service account
274. When database configuration is completed, you shoul d now see Server Name, database name and other details:
290. 3. Choose the new icon (resource) for the menu:
295. Help in menu
297. Help in DB Table
299. Manual code
305. Manwins defined in forms Every form has a set of functions with attached Tag s that can be used to add manual code to the generated code, as depicted below:
336. 9. Receipt notification – A publisher may need to know when some or all subscribers have received a message.
349. 3. For each table, determine which fields you want ava ilable in CAv module:
355. 5. Import CAvMVC.zip file, located in the directory yo u previously defined and extract CAv’s version (see point 1).
376. Insert a new DB Source Insert DB source:
378. Fields A list of all system’s fields marked as “always inc luded” in CAv is displayed to the user, with tables ’ ID, fields’ name and designation.
381. Tip: When you select the base table, you also have access to the direct above and below related tables (advanced options): 2. Select fields
384. 7. Execute Final results can be oriented or exported to an Exc el file. Additionally, the SQL query can be directl y consulted:
387. Distribution
391. Tasks
393. Reports
398. Versioning
401. Utilities
64. Access levels Access Levels define hierarchies of access and are represented by numbers, whereas access groups, define sets of access levels and are represented by letters, as depicted below. Access levels can be defined in Genio or by users i n the application:
311. Queries
54. Languages Client’s languages Genio supports Multilanguage functionality, meaning that, in addition to base language, Genio also allows the definition of extra languages, for each client, as depicted below: Whenever additional languages are added to clients’ settings, translations are necessary:
122. Formatting Filling rules There are several formatting rules defined for fiel ds:
232. Listing Properties
256. Format fields Format date fields Crystal reports offers a wide variety of date field s formatting and customized date fields:
82. Relational model
160. Graphical interface
179. Tip: If the list has only one column, it will be di splayed as a combobox, on Windows environments. However, if you intend to maintain a standard format of the list (important in tables that contains many records) define the table as a large table .
204. 2. Select the form for which you would like to define the coordinates:
205. 3. Select toolbox dialog, option Import to current for m and define the original platform and language from which the coordinates will be importe d:
206. 4. The out coming result is depicted below, with coord inates and translations already made:
223. List filter Active filter Active filters allow users to filter displayed reco rds base on a given date. Users can choose to acces s active, inactive or future records based on the sel ected date.
224. Ordering Tip: Ordering can be changed at any time, using sor ting option. Query lists
275. 7. Configure report manager URL (optional) This is the step where you can configure the URL fo r Report Manager.
296. Help in DB Field
312. Generation platforms
334. Software integration
341. Versions
346. CAv
367. 2. Select Edit option:
368. 3. Select option Full control:
372. Tip: You will need to allow the correct framework f or your computer (32 or 64 bits). More information is available in http://technet.microsoft.com/ptpt/library/cc730912 (v=ws.10).aspx .
404. Exercise
17. Continuous improvement When an error is detected, it is corrected in Genio , providing its resolution for all systems. In addi tion, as new systems demand new functionalities, Genio wi ll adapt itself thus, gaining new competencies, once again available for all systems. Since 2012: Reliability Distributing information systems generated through the same automatic process of high maturity to hundreds of users makes Quidgest’s software extreme ly reliable.
91. Table features 2 Controlled records Controlled records allows you to insert fixed recor ds in a given table. The records can be inserted automatically, requested by forms or throw errors, as depicted bellow.
115. Field properties Order Order of field in the database. Ordering of columns is very important in the execution of formulas. Tip: You can change the order of the fields in tabl es as it follows:
130. Formulas Persistence type By default, persistence type of the applications is “The application persists”, which means that the application computes the formula and sends it to th e database to be persisted. Another option is “Virtual Database” where values a re computed during SELECT, ignoring the application. Genio provides a variety of formulas, as depicted b elow:
140. ST Sum and Creates records Using this formulas, “intermediate” records are cre ated to group values, allowing the sum of such records. Define ST sum and create records Create table CSONS (sons of each child) with the fo llowing relations (FK) to tables CHILD, PAREN and LINKS: In terms of relational model:
294. Helps Users’ help items can be defined in either forms, m enus, arrays, DB fields or DB tables. Help in form field
314. Generation BackOffice C++ C++ platform uses MSVS that contains a code editor and supports IntelliSense and code’s re factorization. An integrated debugger works at both code and machine levels. Other features included are forms’ designer to build GUI applications and w eb, classes and data schema designers. With C++ platform (commonly designated as BackOffic e), the connection is direct to database, and processing is made in clients’ local machine, witho ut the use of applicational servers. BackOffice C++ can either work any database that supports OleDB (f or example, SQL or Oracle).
373. CAv CAvAdmin CavAdmin portal is now available for use. The user and pass word credentials are “admin” and “admin”, respectively.
380. CAv After all the configurations are done, in CAvAdmin module, you can now enter in CAv portal: Once you enter CAv portal, a list of all the tables that you can query is displayed. The construction of a report is made in 7 simple steps: 1. Select base table
390. Can I use features? No, because the system must respond dynamically and features prevent the generation of a given functionality. Hence, licensing cannot add, to an a pplication, a functionality that it isn’t already d efined. What prevents the client from changing the license? Nothing, however the application will not work. Licenses are digitally signed, unique per client an d based on the private key, to assure integrity hen ce, any given change will invalidate the application. D igital signature is unique per client and based on this private key.
406. Define project settings Define and assemble the relational model
418. Generate BackOffice application Generate CAv module
420. Generate Web application Generate MVC application
45. Administrator level Retrieval level
98. Custom Custom tables are often used when their data result s from an external source. When defining a custom table, Genio generates the e ntire business logic, for the application, like a normal table. Custom tables are not created in the database howev er, the system will have all the necessary information so that we can consult, create, edit an d eliminate it. The communication with the external source of infor mation is all defined by the users. Shared system – Integration between systems with un ique databases Shared system allows you to transform two different databases into one common database, provided tables’ fields are exactly the same in both tables. Shared table will contain fields from all the othe r tables and these last ones will not be referenced i n DBMS. Additionally, if a new field is added to th e shared table, the same field must be added to all t ables and all business rules must be assured. Quidapps.ini file for the single database will be d efined as follows:
109. Foreign key False key False keys store the internal code of the table but “ignore” the relationship between the tables. As depicted below, the internal code of table FALSE is stored in table FIELD as CODFALSE, but the relation N: 1 is not created.
170. Redefine titles Manage tabs
193. Static Static text
208. Style dialog Other properties
230. Array area subset properties Logical area subset properties
262. Create formulas Manual listings Whenever data set is very complex, either with comp lex computations or complex filters, reports are usually created by using temporary databases.
379. Reports Create users
1. Genio® Ebook Rua Castilho 636º 1250068 Lisboa, PT p. (+351) 213 870 563 f. (+351) 213 870 697 quidgest@quidgest.com www.quidgest.com
21. 3. Click Next to continue the installation, read and a ccept the conditions and select Next: 4. Select Simple installation:
22. 5. Define the locations for Installation log files and Quidgest systems: 6. Select Next and Finish.
58. 3. Choose, for example, Vietnamese: 4. Hardcoded strings need to be translated afterwards, with resource to translator.
68. Define access levels to tables, menus and/or forms a. Select menu Access rights and click Insert:
69. Additional access levels can be added at any time f or one or all modules. Also, Phe’s ( Permanent history entry ) can be defined for each level.
72. 2. Create a new PHE, name it and specify, for each acc ess level, which modules will be affected: 3. Create form USERSPHE and menu entry Admin PHE, as d epicted below:
78. 4. Create form, in form editor, in order to obtain .rc coordinates and graphical interface:
80. 6. Select generation type C++ and client: 7. With one single click, Genio will generate the Back Office (C++) solution:
110. Arrays Arrays are sets with a reduced number of elements and fixed over time .
131. + Arithmetic Arithmetic formulas can use available fields from t he same or related tables and allow internal operations on a register of addition, subtraction, multiplication and division between in the same tab le. They have no particular limitation and are computed when completing on writing or editing records updates. For arithmetic formulas, only records from the spec ific row or records related to that row can be used as arguments. Binary, logical and relational operat ors can be used in this type of formulas as well as functions. Arithmetic formulas are updated when the record is edited and saved. Define + Arithmetic formulas At Children’s table, create fields DTOBIRTH for DOB and CHILDAGE for child age in order to determine the age of the child. Field DTOBIRTH is a Date type file and CHILDAGE is a numeric type file.
137. SR formulas can also sum conditioned records. For i nstance, we can sum records of children with age inferior to 18 years old: Sum conditioned records Create conditional field in table CHILD to identif y if the child’s age is inferior to 18 years old: Create field in table LINKS with ++ Replica formula to get the conditional value from table CH ILD:
143. The formula is evaluated whenever a record of table CSONS is updated. Also, if a record in table LINKS does not exist, it is automatically created. 3. Generate the application and compile with MSVS 4. Insert new record on table CSONS:
147. Define a CS formula The same example can be applied to CS formulas, as depicted below: 1. Insert data in table PRICE:
148. 2. Insert flight date in table FLIGH and fuel price wi ll be automatically determined, based on date and fuel costs: U1 last value U1 formulas allow to fill a field in a table using the last record in a related table below, referring to the current value of a history. U1 formulas are compute d on a daily basis (daily calculations) and are use ful for simplifying relations as queries are optimized.
178. 2. Lists (Above related tables) a. Users can add all fields of the above related table as columns for the list (“Use all fields” routine) or define one by one the fields they choos e to display. Additionally, users can define the available actions to the end user (inser tion, deletion or changing records of the list).
198. Groups 1. Select fields Title, Date and Active (Ctrl + Mouse left button) and select option Group. Select option visible and define label as Group.
211. 2. Ribbon menu a. Ribbon menus must have at least 3 levels, as depict ed in pictures below:
248. 4. Select provider 5. Define connection details
251. 10. Choose the information (fields) to display on the r eport 11. Group (optional) the information on the report
252. 12. Summaries (optional) – add summary information to t he report 13. Record selection (optional) – selects subsets of in formation to display
270. Once you click change database, a new wizard Report Server Database Configuration is displayed as below. In the first screen, there are 2 options, if you would like to create new databases for this reporting service, choose the first option. If you would like to point to an existing report server database, choose the second option.
277. 9. Configure execution account (optional) You will have to provide a domain account (preferab ly) to be used in case of any credentials are required. The domain account has to have sufficient permissions to access the report items/files.
289. 1. Save icon on your Genio folder>Projects>Project N ame>Resources, e.g.: 2. Insert new resource:
324. Packages 1. XML Interface receives QWeb requests and dynamical ly invoke the necessary functions to build the answers.
350. 4. Generate metadata file: 5. The metadata file NEWmetadata.xml is now generated and located in the project folder:
354. 3. Open IIS Manager to install the portals: 4. Select “Default web site” option, followed by “Impo rt Application” on “Deploy” settings:
382. 3. Define conditions 4. Define groups
383. 5. Define order of fields 6. Define totals
35. Global settings Create a new project/program New programs are created as follows: 1. Define the System, DB div, program sub path e base language, following the given instructions:
209. Menus Menus allow the user to navigate through the applic ation through a defined hierarchical structure. The definition of menus should be based on actions or o bjects subject to visualization. Each module has its own menu system. Tip: Each menu branch must start with a descriptive menu:
51. Delegations This option allow users to delegate their access le vel to another user for a limited time frame. Define delegations
201. Positional Calculations As opposed to arrange and arrange all options , positional calculations’ routine will arrange the form definitions according to the form’s “visual” order:
233. Manual routines Properties History History includes history selection and history mani pulation.
144. CT and CS lookup formulas CT formulas evaluate the records of nonrelated tab les (source table) and fill the fields of destinati on table. These formulas are frequently used in tables with historic records that are usually not updated . LINKS record created
13. Genio is an integrated development platform, create d by Quidgest, to manage dynamic metamodels of functional specifications and automatic code gen eration. In fact, Genio is more than a common development platform. It is a high maturity process that offers highquality solutions and services, increasing the productivity of software developers, reducing the time needed to deliver projects and improving the ability of a faster response to chang ing business needs. Working like an integrated development environment (IDE), Genio allows the programmer to design graphical user interfaces interactively whil e the compiler invisibly generates the correspondin g source code. Also, Genio generates and manipulates code to automate code refactoring that would require multiple (error prone) manual steps, thereb y improving developer productivity.
319. Tip: Endereço syntax: Web Services A web service is a software system designed to supp ort interoperable machinetomachine interaction over a network. It has an interface described in a machineprocessable format (specifically WSDL). Other systems interact with the Web service in a ma nner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Webrelated standards. WCF Windows Communication Foundation is a part of .NET framework that provides a unified programming model in order to build service oriente d quick applications. All communications with WCF services occur through services’ endpoints and messages can be encoded in text or binary format. One of the major advantages of WCF technology is th e range of available connectors, amongst SOAP (Simple Object Access Protocol), TCP (Transmission Control Protocol), Named Pipes, MSMQ (Microsoft Message Queuing).
15. Automatic generation Genio’s automatic code generation assigns some comp lex tasks to the conception stage, like iterations, sorts and coherence validations, making the executi on of systems more efficient without performance losses. Generation and regeneration with a single click Any user of Genio, even if not familiar with the pr oject, is or will be able to regenerate the entire source code of a project with only one click. The easiness of access to functional specifications (metadata), ensures rapid development of applications that are easy to maintain. Thus, less effort is needed to develop a solution, increasing the stability of the systems and helps to the continuou s monitoring of technological developments. Faster application development Simulation ensures that accurate metadata is used f or the development of each system. Configurations of functional specifications are collected directly from Genio, as well as the characteristics necessa ry for simulation and the development of the final sys tem. Systems developed by Genio are complex and customiz ed to the procedures specific to a function or activity. Rapid prototyping, interactivity, short c ycles (hours, instead of months), constant interact ion with the client, integration of clients’ ideas and perspectives and quick response to changes ensure t he commitment of Genio to the Manifesto for Agile Soft ware Development.
31. 3. If an error message is prompted, copy Quidserver.ex e to folder Windows\Quidgest and run the following command line (again, as administrator ): sc create “Quidgest Application Server” binpath= “c :\Windows\Quidgest\Quidserver.exe” start= auto 4. Stop and restart QuidServer Application service:
42. 2. Auto login As long as the user is user is created in the database, auto login will automatically enter in the application (as demonstrated below): Configure auto login a. Create a user in the application, matching the user in your machine:
47. Advanced query consult (CAV) Provides an advanced query module for the client. Digital signature and certificates Activates support for digital signatures (e.g. Citi zen Card) on database records. Digital signature is a heavy process however, it ensures the identity and integrity of signed data. Users are given the option to use a certificate to identify themselves into the applications. Certific ate option oblige users to associate their username and password with a specific digital certificate. Authentication can either work on BackOffice (C++) or Web (C#) modes.
60. 3. The out coming result will be: Features Genio’s features function allows the programmer to control which tables, forms, forms’ fields, menus and/or modules are generated for a given client or several clients. When generating to a client only the objects with n o feature or a feature set in that client will be generated. An object can negate a feature and ask f or the client not to have that feature set.
151. 3. The outcome result is: ++ Replica Replicas allow you to create priorities in the hier archy established between tables, referring to an a bove related table information. Replicas copy the value of another field and are updated when a record from an above table is written. Replicas maintain Genio’ s integrity and no normalization is used. Define ++ Replica fomulas Replicate Mrs. Doe’s first and last names in LINKS table.
157. PM calculation PM formulas evaluate fields using a manual routine. In addition, we can also define the fields that should be filled in manual routine. DG default (once) DG formulas specify a default value, whenever a new record is created. These values can be edited by users however, DG formulas is computed only when th e field is empty. Define default once formula Fill the DOB field of each new children of Mrs. Doe with a DG formula that will get today’s date:
169. Add fields Good practice: 1. Forms should contain at least one field of each of the related tables. 2. When including fields from related tables maintain coherence otherwise, Genio will prompt a referential integrity error.
219. Specific buttons (=Menu) Specific buttons are often used to create additiona l buttons in lists. Some of most often used specifi c buttons include: 1. Buttons to report 2. Buttons to routine
249. 6. Check advanced information details and update, if n ecessary 7. Click Finish 8. Select tables from the database
276. 8. Configure Email settings (optional) The next step to configure is Email Settings . In this step, you must provide sender email addre ss to be used by the Report Server and provide the SMTP S erver information in your case.
280. Create a new report 1. Select option “New Project” in MSVS 2. Select Report Server Project Wizard, as depicted be low:
304. 1. Manwins (Windows C++) a. WIN platform Manwins defined on menus and specific buttons
364. 4. Convert Cav to an application: 5. Define default document as NEWindex.htm in CavConfi g website:
30. Install QuidServer QuidServer is an applicational server that manages tasks related to applications. 1. Select Start and open command line as administrator : 2. Execute “quidserver.exe install”:
348. CAv generation Generate CAv metadata Genio automatically generates metadata files for ea ch system you want to it to be available to the fin al users. In order to do so, follow the next steps: 1. Create a new module with “Advanced query 2” type of generation: 2. Make sure all the tables you want available on CAv module are marked as such:
124. 1. Create tables PAREN, CHILD and LINKS (parent children relation) 2. Create the following fields: Let’s take, for instance, VAT number:
203. Import to current form If a given form’s coordinates are not available for a given platform and/or language, forms’ editor settings allows you to import the coordinates of on e or all forms from another platform and/or language. Import a form’s coordinates to a different language 1. Consider the example of flight’s form, with the coo rdinates already defined for WIN platform and English language:
26. 7. Define the following communication options: 8. Select license file GENlicen.lic, and click Next:
27. 9. Choose the start menu folder and click Install: 10. Genio’s installation will begin:
7. Qualified people Deficit of trained people may slow down the introdu ction of new technology. Documentation lifecycle Information systems development consists of activit ies that comprise the software development and evolution of the system. Lifecycle is characterized by concepts of functional design and representatio n by refinement and transformation. The design outcome is iteratively decomposed into c onstituent parts and then recomposed into its final form. Decomposition is done on consecutive le vels of abstraction, which range from application concepts to concepts applicable to a description of the operational system (documentation). On each level the system’s functions are described in great er detail. Thus every component in the final design has a function that is precisely described, and the re exists a step in the design process that specifi es and implements this function. The strength of the traditional lifecycle model typ e is its emphasis on the predictability, stability, and control of the development process and its account of rational problem solving behavior. Its shortcomings are inflexibility, limited scope of th e target and neglecting the ambiguous context in which any design process is carried out. Evolution management Technological breakthroughs can also be a problem i n information systems, drastically changing the IS operation process. Application generators Application generators exploit common features of i nformation systems by providing a set of generic functions and a high degree of functional abstracti on compared with traditional highlevel languages, thus improving development productivity. Automatic code generation allows producing informat ion management systems in the shortest possible time and at less cost. All solutions are m ade suitable for the intended purpose, in accordanc e with specifications and international standards, an d are capable of evolving continuously.
63. Modules Each system can be composed by several modules, acc ording to business specifications (e.g., HR module, financial module, Stocks module, etc.) or g eneration platforms. Create modules for a client For example, for a given client: 1. NEW – BackOffice module (C++) 2. WEB – Web module (C#)
339. Generic export This feature allows the user to export data in diff erent types of formats: 1. CSV format 2. Fixed length format 3. XML format (allows hierarchy)
46. Splash Splash is an image file (SPLASH.bmp) defined for ea ch client, displayed every time users enter the application. Define splash 1. Select client and define SPLASH on default values: 2. Select each client’s modules and define Splash:
183. Buttons Some of the most common buttons used include: 1. Button to report – Opens a report (Crystal reports, Pdf, etc.) 2. Button to form – Opens a form 3. Button to routine – Executes a manual routine
242. Configure full text search 1. Define table fields that are available for text ind ex 2. Insert a menu PX (Full text search) type 3. Insert searches
247. Create a report 1. Choose the option new report: 2. Select the data you want to report on 3. Create new connection
49. 1. BackOffice applications a. Generate smart card Whenever these options are selected, a new table [MOD]Hashcd(codhashcd, table, fields) is created. On each system table, select the fields you wish to certificate and they will be created in table HASHCD :
74. 5. The out coming results will be: a. User 1 (access level 1) will only see parent Jane b. User 40 (access level 40) will only see parent John c. User 99 (access level 99) will have access to the e ntire list of parents
99. Cardinality A relation is a set of N tuples, each of which deri ves from distinct sets (S1, S2, S3...). Three distin ct types of relations can be identified: 1. Relation 1:1 2. Relation N:1 3. Relation N:N For a relation R, its elements are values of the pr imary key of some relation S (FK).
102. 2. Create FK CODAIRLN to establish the relation N: 1 b etween tables FLIGH and AIRLN. You have now created a relation N: N between airpor ts and airlines. Areas and domain In order understand the concept of areas and domain , consider the following example: Create areas and domains A flight departs from Lisbon to Oporto. At DBMS lev el, there is only one table (AIRPO), which is the domain. However, at the business level, we need to access the same records for departures (AIRP1) and for arrivals (AIRP2), representing two distinct areas of the domain AIRPO: 1. Create areas AIRP1 and AIRP2:
146. For each table, create the following fields: 1. DATE 2. PRICE – Currency type field Insert CT formula in field PRICE from table FLIGH a s follows: 3. Insert data in table PRICE: 4. Insert flight date in table FLIGH and fuel price wi ll be automatically determined, based on date and fuel costs:
175. Consider the following form example, with the follo wing controls: 1. DB Fields 2. Lists 3. Containers 4. Buttons
239. 5. SOLR d. After MVC generation, a new directory is created: PROJECTS\NEW\GEN_QUIDGEST\ASPNetMVC\Solr\apachesol r\conf\solr\cores e. Select the following subdirectory: (...)\ASPNetMVC\Solr\apachesolr\conf\solr\cores\SEA RCH1\conf f. Open file data_config and make sure that url is poi nting at your DB
278. 10. Configure encryption keys In the next step, Encryption Keys configurations , you can choose to back up your Reporting Server’s Encryption key to a file, in order to use, in case of migration to another server. In additi on to this, if you have create a new Encryption Key or delete the existing Encryption Key (as and when the situations arise).
279. 11. Configure scaleout deployment The final step in the configuration tool is Scaleout Deployment . This is the step where more than one Reporting Services will be utilizing the same R eport Databases. You will have to use this step after you finish installing other Reporting Instanc es and join those instances into the scaleout deployment.
356. 6. Follow the steps until the last step is displayed a nd then define the application path. Tip: If steps 1 to 6 do not work, follow the next s teps: 1. Extract the content final content of CAv zip file to directory IIS site: C:\inetpub\wwwroot\Cav :
360. 4. Create the CavConfig directory for CAv’s configurat ion files inside IIS root directory C:\inetpub\wwwroot and copy files CAV0 vazia.db and web.config. Rename file CAV0 vazia.db to CAV0.db.
29. 14. Create file GENgenio.ini inside Genio folder: [INIT] DBMS = SQLSERVER SERVER = Server sql where definitions are located DIV = Initial project [GENIO] PATH = Path to templates directory [PROJECTS] = (Optional) Path to projects directory 15. A user is automatically created and Genio will laun ch a pop up message to reindex the database. Click Yes:
23. Install Genio 1. Create a new folder, named Genio, and share it with everyone. 2. Download the latest version of Genio. 1. Run the application as administrator:
161. Forms Forms are the graphical representation of tables an d its fields. Forms contain components (fields) and controls, typically including “OK” and “Cancel” but tons and provide a highlevel abstraction of standard or custom widgets which are much easier to manipulate than the GUI’s underlying API. At design time, visual controls (buttons, text boxe s, etc.) and nonvisual components (database connections, layouts helps and so on) are placed on forms. These controls and components are positioned and sized interactively and their proper ties and event handlers are set with a form editor . At runtime, automatically generated code creates in stances of such controls and components, and sets their properties. Tip: Whenever a new table is inserted, Genio automa tically suggests the creation of a form for that table, as depicted below: 1. Insert new table FORMS with the following fields: 2. Click Save and, when the following message window p ops up, select Yes.
210. Menu types Genio predicts two distinct types of menus for eith er BackOffice or web applications. BackOffice applications 1. Regular (normal) menus a. Select menu type option “Normal”
61. Create new feature For instance, suppose that, you do not want to gene rate a given menu. 1. Define a new feature: 2. Select the menu and select the feature:
89. Large tables Select the option large table when the prevision fo r table’s records is extensive (more than 1000 records). This parameter influences the optimizatio n of the generated code. Tombstone (shadow) tables Select the option Shadow if you wish to keep all re cords that are deleted, providing the basis to audi t data and determining liability. This allows you to copy the deleted records and, instead of a permanen t data loss, control when actual records can be remov ed without interfering with the workflow. Data integrity (cascade operations) On deletion/ On duplication In order to maintain integrity, Genio does not allo w, by default, the duplication or elimination of records (domain A) that are related with another do mains (domain B). 1. On delete option click Insert:
101. Relations N: N In order to create an N: N relation, consider the f ollowing example: Define relations N: N Several flights may depart from one airport and bel ong to one airline. 1. Create table AIRLN with text field, with 50 charact ers width, for airline number:
269. Once the configuration tool configures the virtual directory, the Report Server Web Service URLs are now active and you should be able to click on the U RL (in blue font) to open the URL. 6. Configure database Click Database . This is the configuration step in which you confi gure what SQL Instance is hosting the Reporting Services Report databases. Since the databases are not configured, note that the values are blank. Click Database to start configuring data bases.
337. TAPI TAPI (Telephony Application Programming Interface) is a Microsoft Windows API which provides computer telephony integration and enables PCs runn ing Microsoft Windows to use telephone services. TAPI allows applications to control telephony funct ions between a computer and telephone network data, fax and voice calls. It includes basic featur es such as dialing, answering and hanging up a call . It also supports additional features such as hold, tra nsfer and conference. Configure TAPI 1. For one or several modules of the client select the checkbox “Integrates with TAPI”, as depicted below: 1. Install drivers: \\fileserver\FTProot\Downloads\Avaya\DriverTapi64bi ts
358. CAv portals’ IIS architecture Tip: Before installing Cav and CavAdmin portals, ch eck if these already exist in IIS manager. Should they exist, or if the client’s specification s require different names, all of the above steps m ust be adapted to the new portals’ names. Instal CAv portals 1. Copy directory CavAdmin to root directory of IIS site: C:\inetpub\wwwroot .
66. Define access levels in application 1. Users can define, themselves, the access levels for each module of their apps: a. Select menu Levels of Access and click Insert: b. Insert modules for which the created level has acce ss: Tip: You can define whether an access level works w ith auto login or not. 2. Access groups – Users can create in their applicati ons access groups in order to define one or several ranges of access levels with equal permissi ons.
100. Relations N: 1 In order to create an N: 1 relation, consider the f ollowing example: Define relations N: 1 Several flights are departing from one airport, as depicted below: 1. Create table AIRPO with text fields, with 50 charac ters width, for airport name, city and country: 2. Create table FLIGH with text fields, with 50 charac ters width, for flight number and airline and create FK CODAIRPO to establish the relation N: 1 between tables FLIGH and AIRPO:
24. 2. When the user account control message pops up, sele ct Yes and choose the preferred language: 3. When the wizard window is open, click Next: 4. Accept the terms of the license agreement and click Next:
90. 2. For each table, select the action and the related t able (B, C, C, ...) there are 4 different types of actions: a. Delete: if records from domain A are deleted, all t he related records of domain B are deleted b. Clear: if records from domain A are deleted, all th e related records of domain B are maintained but FK is cleared c. Delete if new: same as delete, but only for new rec ords d. Clear if new: same as clear, but only for new recor ds
218. Icons are created through Genio’s resources options. Icons are defined at menu’s third level o f the ribbon. Icons size 1. Large menus – Use 32x32 icon dimension 2. Small menus – Use 16x16 icon dimension
359. 2. Return to IIS and refresh CavAdmin . 3. Convert CavAdmin ” to application and define with an application poo l:
25. 5. Check if all setup rules are OK and click Next: 6. Choose the folder in which Genio is going to be ins talled and click Next:
41. Clients Settings Client’s name and acronym These fields must be unique in order to clearly ide ntify to whom the specified settings are destined. Active Active status indicates if clients are still entitl ed to maintenance support and whether they should b e part of the generation of distribution packages cre ated by Genio. Login Login type defines the authentication mode required for users of the system. 1. No/Manual – In normal logins the user has to enter username and password every time he runs the application.
245. Reports 1. Crystal reports 2. Reporting services Crystal reports Crystal Reports is a business intelligence applicat ion used to design and generate reports ( listings ) from a wide range of data sources. This applicati on allows users to graphically design data connection(s) and report layout. In the Database Ex pert, users can select and link tables from a wide variety of data sources, including Oracle databases , Microsoft SQL Server databases, Microsoft Access databases, Business Objects Enterprise busin ess views, and local file system information. Fields from these tables can be placed on the repor t design surface, and can also be used in custom formulas, using either BASIC or Crystal's own synta x, which are then placed on the design surface. Formulas can be evaluated at several phases during report generation as specified by the developer. Both fields and formulas have a wide array of forma tting options available, which can be applied absolutely or conditionally. The data can be groupe d into bands, each of which can be split further and conditionally suppressed as needed. Crystal Rep orts also supports subreports and graphing. Take an electricity invoice, for example:
405. Create a flight management system application Create a new program FOR Create a new program FOR, with the following inform ation: 1. System = FOR 2. DB Div = FOR 3. Program subpath = FOR 4. Base Language = eng
70. Permanent history entry (PHE) PHE’s represent user based data filters applied to restrict users’ access to information. For example, as depicted below, head of sales only has access to sales rep. functions whilst HR manager has access to the entire information: Create a permanent history entry: 1. Create a user association table 2. Create a relation between the user table and the lo gin table (Tpsw) 3. Create a relation to the object table 4. Create a new PHE and name it
59. Glossary Genio’s glossary function allows the programmer to replace a given field designation for a more appropriated one to each client, in particular. Create a new glossary Suppose that, for a given client, you wish to repla ce the following field designation “Field name” to “Name”. 1. Define a new glossary and insert, as many glossary sentences as you need. 2. Select the client and define the glossary to be use d:
310. Comment your code Developers who have spent any time on large project s understand the importance of code comments. When you’re building many features into the same ap plication, things tend to get complicated thus, it should come as no surprise that commenting your cod e is essential. By commenting your code thoroughly, you'll greatly increase the ease of mai ntainability of your applications. Input and output parameters as well as the purpose and result of the function. A general rule of thumb is to comment when dimensioning new variables, comm enting any subs or functions, commenting on blocks of related code (to explain the block of cod e's purpose), and commenting particularly difficult or complex lines of code. Functions’ size Whenever possible, functions should be small sized and code should be refactored since: 1. Larger functions are more difficult to read 2. A greater amount of variables to be dealt with is n ecessary 3. There is a higher probability of errors
9. While working for IBM, the computer scientist Edgar F. Codd (August 19, 1923 – April 18, 2003) developed the relational model for database managem ent, which represents the theoretical basis for relational databases. Codd’s contribution was revolutionary: first, it se parated the data from the computing and from the application, and second, it described a framework f or storing and retrieving data using simple rows and tables. The 13 rules The foundation rule A relational database management system must manage its stored data using only its relational capabilities. The system must qualify as relational , as a database and as a management system. For a system to qualify as a relational database manageme nt system (RDBMS), that system must use its relational facilities (exclusively) to manage t he database. The information rule All information in a relational database (including table and column names) is represented in only one way, namely as a value in a table.
71. 5. Set the user association table and table field that contains the PHE value and apply it automatically to other tables (optional): 6. Specify, for each access level, which modules will be affected: Create PHE Create PHE for users access levels to parents table (PAREN). 1. Create a user association table USERS with FKs to t ables PSW and PAREN, as depicted below: Module Access Level PHE
241. g. On subdirectory (...)\PROJECTS\NEW\GEN_QUIDGEST\ASPN etMVC\Solr execute files solrstart.bat and suggesterstart.bat 6. Import data SEARCH 1
268. 5. Configure web service URL Click on web Service URL . The default values are already assigned, and if y ou decide those values are good enough, choose Apply to configure with the default values. Instead you can choose a virtual directory of your choose and click Apply when your changes are final.
338. Tip: You will need to configure the IP Office manua lly, if this one is not detected in the network. 2. Select Control Panel → Phone and Modem Options → Ad vanced 3. 4. Configure available phone numbers’ lookups in Softw are integration → TAPI, as depicted below: With this configuration, once a call is received, t he system will search, in the above declared tables , the phone number field (PhoneNr). If such number is found, the record will be positioned and the declared form will be opened. O Id da chamada (Call type) deve ser único para faz er correctamente a multiplexagem caso tenham várias tabelas onde procurar números.
369. 4. Insert new user a. Select “Add" option b. Select option “From this location” c. Select “Check Names” option d. Select “Full control” option
28. 11. When the installation is completed, click Next: 12. Click Finish. 13. When the following message pops up, click Yes:
6. Purpose 1. Identify rules, structures and patterns in order to generalize their utilization 2. Create evermore complex components 3. Build adequate systems for each organization Usual problems There are many indications that IS development is f raught with recurrent problems caused by poor, undisciplined, and incomplete development practices . IS development process problems can be divided into four classes: code normalization, people, lifecycle documentation and evolution management. Code normalization The inordinate amount of total lifecycle costs spe nt on systems “maintenance” is a symptom of poor development practice, and low quality of the develo pment process, particularly on early phases. Also, in addition to considerable investments in software , maintenance requires extensive team training and the availability of sufficient computing power.
264. Reporting services SQL Server Reporting Services provides a full range of readytouse tools and services to help you create, deploy, and manage reports for your organiz ation, as well as programming features that enable you to extend and customize your reporting function ality. Reporting Services is a serverbased reporting plat form that provides comprehensive reporting functionality for a variety of data sources. Report ing Services includes a complete set of tools for y ou to create, manage, and deliver reports, and APIs th at enable developers to integrate or extend data and report processing in custom applications. Repor ting Services tools work within the Microsoft Visual Studio environment and are fully i ntegrated with SQL Server tools and components. With Reporting Services, you can create interactive , tabular, graphical, or freeform reports from relational, multidimensional, or XMLbased data sou rces. Reports can include rich data visualization, including charts, maps, and spark lines. You can pu blish reports, schedule report processing, or acces s reports ondemand. You can select from a variety of viewing formats, export reports to other applications such as Microsoft Excel, and subscribe to published reports. The reports that you create can be viewed over a Webbased connection or as par t of a Microsoft Windows application or SharePoint site. You can also create data alerts on reports published to a SharePoint site and receive email messages when report data changes. Install Reporting Services tool 1. Select reporting services configuration manager 2. When the prompt message pops up, click yes 3. Specify the server’s name and select a report insta nce server to configure. Click connect.
403. Consolidate helps Import CAv titles Import definition changes Convert to GUIDs Strings replacement Convert to new orthographic agreement
67. Define access groups a. Select menu Access groups and click Insert: 3. Access rights – Access rights can be attributed to either tables , forms or menus .
104. How to create areas from an existing domain Take, for instance, the above example where there i n only one table for airports and no areas. In case you have only defined one single table (domain) and you need to create areas’ the procedure is as follows: 1. Select the domain table (TABLE) and change table na me (TABL1) 2. Create domain TABLE and associate to TABL1 Good practice: Always create at least one area for each table, and work with the area instead of the domain. Relational model chart You can consult/alter the relational model, using i ts diagram. Select menu Relational model. 1. Click Insert and fill the Title field. Within the o ption Insert, select Existing table: 2. Select tables of the relational model:
353. Import application Portals are installed on “Default web site”, unless the client specifies otherwise. 1. Access fileserver and copy the latest version of CAv to your compute r: 2. Extract the content of CAv zip file to a directory of your choice. This directory must contain one directory CAvAdmin and a CAvMVC.zip file:
38. i. Access level to create users: j. Access level to create DB backups: 5. Default key size – Default key size used when PKs a re created. k. Size 16 – GUIDs 6. Default platform and language when opening Form Editor .
127. 1. Write condition – Determines whether the table row can be saved a. Error warning i. Block 2. Show when – Show the field when the specified condi tion is verified 3. Fill when – Fill the field when the specified condi tion is verified 4. Disable when – Disable (block) the field when the s pecified condition is verified
168. Routines 1. Add fields – The form will be completed with all fi elds from the base area 2. Dependencies – A list of all sites (other forms and menus) is displayed 3. Redefine titles 4. Manage tabs 5. Coordinates
77. Create a “Hello World!” program in Genio Create a “Hello World!” program in Genio 1. Insert a new table HELLO in Genio in order to defin e a class CgenioThello : 2. Create a text type field HELLOWLR with 50 character s length and title Output. 3. Define main function. Output will have a formula ty pe DF (default always), meaning the Output will always return text “Hello World!”:
106. Fields 1. Click Insert, for the creation of table fields. Eac h field of a given domain (table) must have distinct designations: 1. Create text fields (field type), with 50 characters width, for First and Last Names: 2. Human key will identify the record. When the follow ing message windows pop up, select Yes:
94. Table type Tables can be defined according to four different t ypes: 1. Table 2. Partition ( Not implemented ) 3. View 4. Custom
40. 15 Auto Enter DB in automatic actualization mode with actualization number /Auto:1 (automatic login followed by exit) 16 Trace Produces an event trace log (trace.txt) Trace = true 17 Manut Prevents access to DB, reporting to the user that DB is in maintenance. Use command “/ADMIN” on command line. Manut = true
135. IF (m<DOB.GetMonth()||(m==DOB.GetMonth()&&d<DOB.Get Day()))ChildAge ; CREATE FUNCTION dbo.ChildAge(@DOB DATETIME, @Date D ATETIME) RETURNS FLOAT AS BEGIN DECLARE @d INT, @m INT, @a INT, @ChildAge FLOAT IF dbo.emptyD(@DOB) = 1 OR dbo.emptyD(@Date) = 1 RETURN 0 SELECT @d = DAY(@Date), @m = MONTH(@Date), @a = YEAR(@Date) SET @ChildAge = @a YEAR(@DOB) IF @m < MONTH(@DOB) OR (@m = MONTH(@DOB) AND @d < DAY(@DOB)) SET @ChildAge = @ChildAge 1 RETURN @ChildAge END Fields order (arguments for the formulas) are very important otherwise, incoherencies will be detected : +H Arithmetic today Arithmetic today are similar to arithmetic formulas however, records are evaluated on a daily basis (daily calculations). This is a heavier behavior an d must be carefully used. None the less, age calculations represent a fine example of the usabil ity of this type of formula. SR linked sum Linked sum formulas allow the user to sum the recor ds of fields from other tables dependent on it (directly below it). Values are updated when record s from the table below are updated. Linked sums have good performance even on large tables . Define SR linked sums Calculate the number of children that Mrs. Doe has:
371. viii. Select “Basic Settings” option and a new window sho uld appear ix. Select the .NET 4 AppPool using the Select... button and click ok x. Restart the site and you are good to go ISAPI/CGI restrictions ISAPI and CGI restrictions are request handlers tha t allow dynamic content to execute on a server. These restrictions are either CGI files (.exe) or I SAPI extensions (.dll). You can add custom ISAPI or CGI restrictions if the IIS configuration system al lows this. Due to IIS safety policies, a common error (404.2) may occur when you try to access either one of CAv portals (Cav and/or CavAdmin), as depicted belo w: In order to solve this issue, you need to allow the ISAPI/CGI extensions executions:
65. Access levels defined in Genio For each module, several access levels can be defin ed. Genio will, automatically, generates 3 access levels: 0 – Unauthorized 1 – Retrieval 99 – Administrator Define access levels in Genio Create new access levels for one or all modules: Access levels defined in application When this option is selected, access rights functio nality is generated and available in the applicatio n.
186. Containers Some of the most common container controls used are tabs and containers ( groups ): Tabs 1. Tabs must have the same table (area) of the form wh ere they are positioned 2. Tabs may hold fields from the base table or related tables, just like in normal forms 3. Tabs are usually used to group fields which are rel ated to a specific subject and/or to minimize the form’s size 4. To allow multiple tab lines it is mandatory to spec ify that property on the Form Editor.
226. Multiple list entries (selection or deselection) Forms Available form’s types include: 1. Visualization forms 2. New record forms 3. Repeated new record forms 4. Deletion forms 5. Forms with follow up
227. Properties Forms’ access mode: 1. Query 2. Change 3. Insertion 4. Delete 5. Duplication 6. Single insertion
107. Consider the following record on database: Field type Field PK First name Human key Name {535C9372C11E4232AA80079B74960936 } John Field types Genio presents a variety of field types: Relational model
121. Tip: If table’s field is checked for full text inde x, DB field name is not allowed. Default There are several default types for the fields, dep ending on the selected field type: 1. Nothing 2. Last 3. Last + 1 4. Highest + 1 5. Formula 6. Fixed value
149. Definition 1. Read – Source table 2. Ordering – Destination table that establishes the l iaison (usually data fields type are used) 3. Value – Field from source table (usually data field s type are used) 4. Closing (Optional) – A closing date, which limits t he search of the most recent to that date, can be defined. Define U1 last value formulas Determine the youngest child of Mrs. Doe: 1. In table PAREN insert a text field type YOUNGEST, w ith the following U1 formula:
163. Forms’ properties General properties 1. Form – Form name 2. Title – Title of the form 3. Status bar text – Designation of the form 4. Base table of the form, i.e. source table. 5. Print form
238. 2. Define full text searches a. Fields available for text index b. Fields used for filtering c. Result fields Generation (MVC) 3. Generate with MVC platform and compile with MSVS 4. Install sql procedures (GroupConcat.sql, at least)
266. Click on Service Account , in the left side pane. The current Service Accoun t setting is displayed. Be default, this would be a service account that was c hosen at the point of SQL Server Installation. You can change the service account to another account b y choosing Use another account option and enter the username password for that account. Once you are done with your choice click Apply button in the bottom of the window. Once you choose apply, a window is prompted in orde r to specify the name and location of the file that contains a copy of the encryption key. You mus t specify a password that is used to lock and unlock the file.
309. Queries Unlike BackOffice applications, in Web applications there is not a permanent context/positioning ( pDoc ). The server receives client’s data and communicat es with the database in order to obtain the remaining data. Hence, the client only recognizes s erver sent data or introduced data. Tip: Routines should use methods from the layers wh ere they are positioned. 2. Manqweb/Mancs (Web C#/XML) a. Platform WEB Overriding generated code BackOffice applications 1. Altwin (Windows C++) Web applications Altweb/AltCS (Web C#/XML)
321. hardcoded from one application to another, which i mplies that any client in every platform can connect to any service, as long as essential rules are respected. Multiple message patterns The most common pattern for messages exchange is th e request/answer pattern. Several other patterns exist, such as sending a message without n o feedback expected or, duplex exchange pattern where two points establish a connection and send da ta both ways. Metadata WCF supports metadata publication through standard formats such as WSDL, SML Schema e WS Policy. Metadata are available in HTTP, HTTPS or Standard W eb Service Metadata Exchange and may automatically generate and configure clients in ord er to access WCF services. Data contracts Since WCF is built using .NET framework, it also in cludes codefriendly methods and a full system to easily work data. After having defined data repr esentative classes, the service automatically gener ates metadata which allow the generation and configurati on of clients in order to access WCF services. Security In order to protect and maintain privacy of data, m essages can be ciphered and/or demanding authenticated connections. Security can be implemen ted using standards such as SSL or WS SecureConversation. Multiple protocols As referenced above, messages can be sent through a ny of the available protocols already implemented. The most common protocol and coding for messages se nding is SOAP and HTTP (HyperText Transfer Protocol). Alternatively, WCF allows messa ge sending through TCP, named pipes or MSMQ. These messages can be encoded as text or optimized in binary format. Binary data can use MTOM standard format. Queud and reliable messages WCF allows the reliable sending of messages through the use of confidential sessions implemented on WSReliable Messaging and MSMQ. Enduring messages If a communication failure occurs, endured messages ’ track is not lost, since they are always kept in a database. In fact, once the connection is reestabli shed, database allows recaptures messages exchange.
374. CavAdmin portal is divided into 6 parts: 1. Systems 2. DB sources 3. Reports 4. Tables 5. Fields 6. Users
399. Genio versioning tool allows concurrent working on definitions of the same database. With a central database version, users are allowed to checkout set tings to their own machine. Checkout By choosing checkout option, a copy of the server’s database is made to a local machine. 1. Backup path (central server) – path to a shared fol der in the central server 2. Local server 3. Backup path (local server) – path to a shared folde r in the local server 4. Folder to create Once this task is finished, an invisible folder DBA KS is created in the central server’ backup path. Additionally, a database copy named GENxxxAUX0 is c reated in the local server as well as a folder located in projects directory folder and a folder i n the shared directory. Commit Commit option will commit changes, selected by the user, in the central database. Partial commits are allowed. In order to commit, all tables with change s must be covered. Before any change, a backup is made in the central server. Commits are only allowe d if both the local and central server have the same version number otherwise, an update must be do ne. Update Update is a very similar operation to commit howeve r, changes are persisted in the local database.
52. Full text search If this option is enabled, files and records are av ailable for search. Azure support Windows Azure is a cloud computing platform and inf rastructure, created by Microsoft, for building, deploying and managing applications and services th rough a global network of Microsoft managed datacenters. It provides both platform as a service (PaaS) and infrastructure as a service(IaaS) services and supports many different programming languages, tools and frameworks, including both Microsoftspecific and thirdparty s oftware and systems. Uses GUIDs A Globally Unique Identifier (GUID) is a unique reference number used as an iden tifier in computer software. GUIDs are usually stored as 128bit values, and are commonly displayed as 32 hexadecimal digits with groups separated by hyphens, such as {21EC20203AEA1069A2DD08002B30309D} . GUIDs generated from random numbers sometimes contain 6 fixed bits saying they are random and 122 random bits;
171. Dependencies Other properties 1. Finished form – Mark as checked if the form is comp leted 2. Manual form – Form fields are manually positioned 3. Same form – If the form is equal to the table to wh ich it belongs to 4. Partial form – Allows the absence of mandatory fiel ds in the form 5. Button next – Allows navigation between adjacent records
165. Breadcrumb Breadcrumbs are navigation elements used in forms ( used only for MVC generation ), where you define a below related area with the area of the fo rm as a breadcrumb. It can only be used in forms that belong to breadcrumbs’ chain. • Form based on a database table Normal • Free form for manual controls Empty • Partial form meant to separate information Tab • Normal form allowing navigation to next and previous record Multiple record • Form represents a single state within a wizard Wizard
362. 5. Check directories’ permissions and ISAPI/CGI restri ctions (see troubleshooting ). 6. Copy “configuracoes.xml” file to directories Cav\bin and CavAdmin\bin :
363. “configuracoes.xml” file is configured based on th e assumption that portals’ structure follows the on e above mentioned. If another directory or another na me was defined for the DB’s configurations, this file must be reviewed: 1. Define the path a. Relative path from the portal’s root (e.g. “../../c onfigs”) b. Absolute path (e.g. “C:\cav\configs”) 2. Define DIV (which will affect DB’s name: DIV0.db) 3. Copy the metadata file to the folder C:\inetpub\wwwroot\Cav
18. Intuitive systems 1. Increase productivity 2. Reduce learning/training time 3. Are less proeminent to errors 4. Facilitate technicians’ work 5. Are more attractive to users and improve the global performance of institutions Traceability Systems are conceived in a way that they can recons titute the operations that originated a given situation. Idempotence Idempotence describes the property of operations wh ere multiple applications of such operation do not change
327. Visio 2007 Word 2007 SharePoint server 2007 2. Install Microsoft Visual Studio Tools for the Microsoft Off ice ASP.Net MVC Model–view–controller (MVC) is a software architect ure pattern which separates the representation of information from the user's interaction with it. The model consists of application data, business rules, logic, and functions. A view can be any outp ut representation of data, such as a chart or a diagram. Multiple views of the same data are possib le, such as a bar chart for management and a tabular view for accountants. The controller mediat es input, converting it to commands for the model or view.
36. Create a new project NEW 1. Define system name – 3 letters symbol to represent the project 2. DB Div – Database division prefix that will store a ll the project data 3. Program subpath – Name of the project folder where files, resources and generated solutions will be stored 4. Base language 5. At Genio’s path folder, you will find the program f older, where a file BaseCase.NEW div was created. This file contains the information reg arding the DB type (e.g. SQL, Oracle), the server in which the definitions are located, the da tabase of relation model (GENDB0) and the DB user and password: <?xml version="1.0" encoding="Windows1252"?> <BaseCase xmlns:xsi="http://www.w3.org/2001/XMLSc hemainstance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <tipoBd>Sql</tipoBd> <server>SERVER</server> <database>GENDIV0</database> <dbuser>USER</dbuser> <dbpassword>PASSWORD</dbpassword> </BaseCase>
48. Digital signatures requirements include: 1. Registering capicom.dll library, provided SDK is al ready installed: http://www.microsoft.com/enus/download/details.asp x?id=25281 2. Running install.capicom.bat (or, from command line: c:\windows\system32\resvr32 capicom.dll) Configure digital signatures and certificates In order to authenticate, the user will need both C C software as well as reader and drivers: http://www.cartaodecidadao.pt/ 1. Authentication a. Select certificate option and digital signature on client settings:
164. Form type Genio provides several form types: 1. Normal 2. Empty 3. Tab 4. Subarea (limited form) 5. Select multiple entries 6. Multiple stages (wizard)
243. Text search a. Identifier – Identification name b. Name – Search name c. Search area d. Result area e. Support form f. Result title field – Primary result field g. Result description field – Secondary result field
244. Text fields a. Order b. Area – Field area used for search c. Field – Search field d. Relation area e. Is search criteria? f. Full text search? g. Allow filtering
302. Adding new code Adding new code to the generated code can be either used in BackOffice applications as well as Web applications. Insert manual code in BackOffice applications Initialization CGenioApp represents the entire application and its constructor creates the frameworks’ remaining objects. Initialization configures and initializes all global variables and occurs in CGenioApp::InitInstance(). Database access There are four classes defined to access database i n BackOffice applications, as depicted in the pictu re below: 1. CGenioRecordSet 2. CDataMatrix 3. CGenioTabelaBase 4. CDepend CGenioRecordset allows low level queries and contro l all the details of how and when data arrive. All of the above mentioned classes take party of Cgenio RecordSet class. CDataMatrix is a wrapper of CGenioRecordset used to abstract opening and closur e operations as well as databases type’s transformations into internal types. CGenioTabelaBa se contains each table’s logic and CDepend allows the construction of programatic queries that are independent of the DMBS. Each one of pDoc variables is represented by an inherited class fro m CGenioTabelaBase with the following syntax: CGenioT<table> or, if areas exist, CGenioA<area> Additionally, each corresponding class to an area a ssures business rules and database columns mapping.
215. Web applications In terms of graphical interface, vertical or horizo ntal menus can be applied in web based systems. 1. Vertical menus 2. Horizontal menus Menu controls Genio offers a variety of menu controls: Some of the most often used menus include: 1. Menus 2. Lists 3. Forms 4. Selections
53. the total number of unique such GUIDs is 2 122 or 5.3×10 36 . This number is so large that the probability of the same number being generated randomly twice i s negligible. Uses Utf-8 Unicode is a standard for the consistent encoding, represen tation and handling of text expressed in most systems. Unicode can be implemented by differe nt character encodings. The most commonly used encodings are UTF8 and UTF16. UTF8, impleme nted in Genio, uses one byte for any ASCII characters, which have the same code vales in both UTF8 and ASCII encoding, and up to four bytes for other characters. Spell checking Provided dictionaries are defined, spell checking i s available in several languages (e.g. PT, EN and FR). Enable active spell checking Activate spell checking on client’s definitions and load dictionaries from Genio folder “Dictionaries” to your project folder “Dictionaries”. The out coming result is: Tip: Spell checking option is only available for Memo w/o RTF fields.
222. 19. Background – Provided conditions are defined, recor d background color can be changed 20. Text color – Provided conditions are defined, reco rd text color can be changed 21. Coordinates – Define the position where lists and d isplayed 22. Use all fields – Routine that will be complete list columns with all fields from the base area 23. List columns – Set of visible columns (visible or i nvisible) in the displayed list. As previously mentioned, list menu also provides a routine to add all fields of base area and above related tables. 24. Filters – Set of filter to be applied to the displa yed list 25. Ordering – Order of list columns, displayed in reco rds list
377. 1. System – System ’s name. 2. Name – Name identifies DB source. 3. Schema’s name – DB name: DB+”.dbo”. 4. Default – If different DB exist (e.g. 2013, 2014, e tc) the user can define the default DB or, if this option is not selected, the system will consid er the first DB found. 5. Connection – Connection string to the DB, e.g.: a. DataSource=SERVIDOR;InitialCatalog=DBname; User ID=UTILIZADOR;Password=PSW Tables A list of all system’s tables is displayed to the u ser, with tables’ ID, name and if it is visible or not in the query assistant module.
154. FP End of period FP formulas allow to obtain an end date from a star t date located in the following registry. FP formul as allow close temporal intervals as one gets an end d ate from a start date in another record. The last record will then be filled with the day before the date of previous record that has the lowest value. FP formulas are allowed to have filters. Definition 1. Start date – Starting date; records are sorted by s tart date 2. Filter (Optional) – Defines a subset of the table; indicates that we only want to fill the end date in records that have the same value Define FP End of period formulas Determine Mrs. Doe civil status. Insert table Status with the following fields: 1. FK CODPAREN 2. STATUS – Character array field type 3. STARTDAT – Date field type 4. ENDDATE – Date field type
335. Message queuing Message queues are softwareengineering components used for interprocess communication or for interthread communication within the same process. Message queues provide and asynchronous communicati on protocol, meaning that the sender and receiver of the message do not need to interact wit h the message queue at the same time. Messages are placed onto the queue and are stored until the recipient retrieves them. Additionally, message queues have either implicit or explicit limits on t he size of data that may be transmitted in a single message and the number of messages that may remain outstanding on the queue. Several implementations of message queues function internally: within an operating system or within an application, serving for the purposes of that sy stem only. Other implementations allow the passing of messages between different computer systems, pot entially connecting multiple applications and multiple operating systems. These message queuing s ystems typically provide enhanced resilience functionality to ensure that messages do not get lo st in the event of a system failure. In a typical message queuing implementation, a mess age queuing software is installed and configured and message queues names’ are attributed. An applic ation then registers a software routine that “liste ns” for messages placed onto the queue. Second and subs equent applications may connect to the queue and transfer a message onto it. The queuemanager software stores the messages unti l a receiving application connects and then calls the software routine and the message is processed i n an appropriate manner. There are, typically, numerous options as to the ex act semantics of message passing, including: 1. Durability – Messages may be kept in memory, writte n to disk, or even committed to a DBMS if need for reliability indicates a more resourcei ntensive solution. 2. Security policies – Which applications should have access to these messages? 3. Message purging policies – Queues or messages may h ave a “time to live” 4. Message filtering – Some systems support filtering data so that a subscriber may only see messages matching some prespecifies criteria of in terest 5. Delivering policies – Do we need to guarantee that a message is delivered at least once, or no more than once? 6. Routing policies – In a system with many queue serv ers, what servers should receive a message or a queue’s messages? 7. Batching policies – Should messages be delivered im mediately or should the system wait and try to deliver many messages at once? 8. Queuing criteria – When should a message be conside red to queued? When one queue has it or when it has been forwarded to at least one remot e queue or all queues?
194. Internet explorer Tip: Static controls cannot be positioned inside tabs. Form Editor Form editor is a tool created in Genio that allows us to create, in a user friendly way, the graphic interface of each form. Some of its features include: 1. Open another program 2. Save changes made to the controls of the form 3. Generation of an .rc file with the program’s forms 4. Displays a list with all the forms of a given progr am 5. Multiple platforms and languages for the form 6. Group controls in visible or invisible sets
196. Fields Form properties Form general properties include: 1. Alignment 2. Editor form vertical alignment 3. Height 4. Layout 5. Layout columns 6. Title 7. Width
95. View A view is the result set of a stored query on the d ata, which the database users can query just as the y would in a persistent database collection object. T his preestablished query command is kept in the database dictionary. Unlike ordinary base tables in a relational database, a view does not form part o f the physical schema: as a result set, it is a virtu al table computed or collated from data in the data base, dynamically when access to that view is requested. Changes applied to the data in a relevant underlyin g table are reflected in the data shown in subsequent invocations of the view. In some SQL databases, views are the only way to query data. Advantages 1. Views can represent a subset of the data contained in a table; consequently, a view can limit the degree of exposure of the underlying tables to the outer world: a given user may have permission to query the view, while denied access t o the rest of the base table. 2. Views can join and simplify multiple tables into a single virtual table 3. Views can act as aggregated tables, where the datab ase engine aggregates data (sum, average etc.) and presents the calculated res ults as part of the data Just as a function can provide abstraction, so can a database view. In another parallel with functions , database users can manipulate nested views, thus on e view can aggregate data from other views. Without the use of views, the normalization of data bases above second normal form would become much more difficult. Views can make it easier to cr eate lossless join decomposition. Table The data will be stored in a normal database table Partition The viewable data of the table will be partitioned by a condition (not implemented yet) View A query will determine the data to be accessed. Support for write operations will depend on definition. Custom No persistence model will be generated for the table. Manual code will determine read and write operations.
145. CS formulas evaluate the latest (future) record for the comparison established between the fields “Order” and “Link” in Genio. CS formulas are not ye t implemented. Definition 1. Read – Source table 2. Link – Destination table that establishes the liais on (usually data fields type are used) 3. Ordering – Field from source table (usually data fi elds type are used) 4. Value (value to be filled in the destination table) 5. Sort order – ascendant (ASC) or descendant (DESC) 6. Filter 1 src (Optional) 7. Filter 1 dst (Optional) Define a CT formula One of the most classic examples of CT formulas, is the evaluation of fuel costs given their evolution over time. Create table PRICE (prices).
318. Development web portals are based on a communicatio n AJAX architecture imparting only XML format with the server. Interface is built through JavaScript into HTML inside the browser, allowing the execution of majority of calculus in the client ’s side. The technological advantage of web portals is that, with Genio, a XML file is sent rather than IIS pages generation. ASPX interface behaves as a XML communication recei ver and isolates the used communication channel model. Such feature is of extremely importa nce so that new communication channels, as webservices, for example, can be built over the sam e server without affecting communication functionalities. Server is developed in C#, accessing to database th rough ADO.NET interface. DBMS implementation is isolated with persistence layer h ence, data migration for distinct DBMS is possible without changing any other components. Database man agement layer isolation also allows that any load balancing + clustering system is built to lodg e the DBMS. Advantages 1. Accessibility in both internet and intranet 2. Complexity of pages construction is at browser’s le vel 3. Business rules on the server 4. Page rendering processing in client rather than in server Disadvantages 1. Strong dependency on JavaScript motor in the browse r 2. Does not take advantage on third party components *** Qwin + CSharp QWin generates applications for Windows, with simil ar features to the ones above described for QWeb. However, applications are Windows’ targeted, rather than web environment. Generated code is C# and .NET.
84. Table features 1 Each table has optional features to determine its b ehavior (as depicted in the following picture). Som e of these features are referenced below. Year change Indicates the behavior and operations to occur when ever a new year’s database is created. Options available for this feature include: 1. Keep all records 2. Clear all records 3. Deletes records with no dependents 4. Deletes records with conditions 5. Adds records to the table 6. Move records to the table 7. Changes records (manual routine)
134. double Age(COleDateTime DOB, COleDateTime Date) { if (!IsValid(DOB)) return 0; if (!IsValid(Date)) return 0; int d,m,a; d=Date.GetDay(); m= Date.GetMonth(); a= Date.GetYe ar(); double ChildAge =aDOB.GetYear(); if (m<DOB.GetMonth()||m==DOB.GetMonth()&&d<DOB.GetDay ())ChildAge ; return Age; } Good practice: If a function is created for an arit hmetic formula, its creation on SQL and Oracle will optimize the computation process.
195. 7. Delete visible or invisible sets of grouped control s (not implemented) 8. Undo 9. Redo 10. Arrange – Arranges a control or a set of grouped co ntrols 11. Arrange all – Arranges controls according to their ordering in the form’s definitions and according to the aggregations in groups 12. Toolbox dialog 13. Style dialog 14. Manual mode 15. Automatic mode Tip: In order to maintain coordinates coherence for all platforms and languages, use the following option on form editor:
216. 5. Area’s subsets 6. Listing 7. Manual routines 8. History manipulation Menus Menu properties Menu properties include: 1. Identifier a. Tag name for the menu. When empty, menu name will b e defined according to the menu number. Otherwise, menu name will be used to u niquely identify it. This feature is very useful when used in manual routines, avoidi ng errors when new menus are added or deleted. 2. Feature key
342. Validations In order to validate the project’s definitions, Gen io provides a validation tool that checks, amongst other actions: 1. Database loops 2. Area coherence 3. Formulas 4. SA Forms 5. Forms with following actions 6. FX and U1 fields 7. Unused fields 8. Unused menu fields 9. Forms’ controls
317. Development portals are based in a AJAX communicati on architecture, imparting only XML with the server. The interface is built through JavaScript t o HTML inside the browser, allowing a major part of calculus to be executed on client’s side. Architecture 1. An applicational server is installed in Internet In formation Services (IIS) 2. QWeb.js creates the file HTML 3. Server communication is made through AJAX 4. Access is available for every users with installed browsers Features Browser DBMS IIS Server File server
83. Tables 1. Select menu Tables. 2. Click Insert and create table TABLE. 3. Fill the fields Table, DB table and Plural and Sing ular Titles: a) Table name is a five capital letters text field b) Domain c) DB table represents the database name for the table (optional) d) Plural and singular titles are (optional) designati ons used in interfaces One domain of a given relation has values which uni quely identify each element of that relation (PK). PKs are unique and mandatory fields. PK will be aut omatically created, with syntax CODTable.
11. Highlevel insert, update and delete The system must support setatatime insert, updat e and delete operators. This means that data can be retrieved from a relational database in sets con structed of data from multiple rows and/or multiple tables. This rule states that insert, update and de lete operations should be supported for any retriev able set rather just for a single row in a single table. Physical data independence Changes to the physical level (how the data is stor ed, whether in arrays or linked lists, etc.) must n ot require a change to an application based on the str ucture. Logical data independence Changes to the logical level (tables, columns, rows and so on) must not require a change to an application based on the structure. Logical data in dependence is more difficult to achieve than physic al data independence. Integrity independence Integrity constraints must be specified separately from application programs and stored in the catalog . It must be possible to change such constraints as a nd when appropriate without unnecessarily affecting existing applications. Distribution independence The distribution of portions of the database to var ious locations should be invisible to users of database. Existing applications should continue to operate successfully: 1. When a distributed version of the DBMS is first int roduced and 2. When existing distributed data are redistributed ar ound the system. The nonsubversion rule If the system provides a lowlevel (recordatatim e) interface, then that interface cannot be used to subvert the system, for example, bypassing a relati onal security or integrity constraint.
328. In addition to dividing the application into three kinds of components, MVC design defines the interactions between them. A controller can send commands to the model to update the model' s state (e.g., editing a document) and it can also send commands to its associated vie w to change the view's presentation of the model (e.g., by scrolling through a document). A model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated ou tput, and the controllers to change the available set of commands. A passive implementation of MVC omits these notifications, be cause the application does not require them or the software p latform does not support them. ASP .NET MVC is an ASP.NET platform which implement s MVC model for the creation of WEB applications. This is a powerful pattern based form of dynamically build web site, including several features which allow a quick and TTDfriendly (Test driven development) development of applications. Advantages 1. Intranet and extranet accessibility 2. Full use of standard web technologies 3. Full relative HTML rendering 4. Very high CSS flexibility for themes
76. “Hello world!” "Hello world!" is typically one of the simplest pro grams possible and it is by tradition often used to illustrate to beginners the most basic syntax of pr ogramming languages. For example: In C++ : In C#: Using this simple program as a basis, computer scie nce principles or elements of a specific programming language can be explained to novice pro grammers. Experienced programmers learning new languages can also gain a lot of information ab out a given language's syntax and structure from a "Hello world!" program. #include <iostream> using namespace std int main { cout << “Hello World!”; return 0; } public Class HelloWorld { public static void Main() { System.Console.Writeline(“Hello World!”); } }
323. Dynamics Ax Microsoft Dynamics AX is a Microsoft enterprise man agement integrated system with impressive features such as the possibility of dynamically cha nge information structure, with immediate effects on client’s side. For example, new tables can be ad ded or forms can be dynamically altered while users are interacting with them. The user interface is al so very interesting, with a clean, modern and professional look. Besides, Dynamics AX comes with a bundle of outofthebox features that allow us to do a variety of operations like export data d o Excel, Image control, document management, data filters, logging, sharepoint/rolecenter integration and many more. From the functional side, we are obviously getting access to a huge collection of ta bles, forms, reports and business logic that comes from Microsoft’s experience with Enterprise Resourc e Planning products. Genio Dynamics Ax Tables Tables Forms Forms Arrays Tables Reports ... Web forms ... Manual code Classe {SYSTEM}AuxiliaryFunctions functions On deletion rules Delete actions PL/SQL Web Toolkit SQL allows you to write an SQL declaration and tran smit it to database for execution. However, SQL cannot be used in code execution, with conditional, iterative and declarative sequences. In order to overcome this limitation, Genio has a PL/SQL Web To olkit (Procedural Language/SQL), which represents an extension of SQL pattern language to Oracle’s DBMS. Such extension is made by the addition of procedure language constructions, leadi ng to a more powerful structural language. Requirements 1. Oracle developer Architecture PL/SQL architecture is depicted below:
217. a. Inhibit – Ignores the defined feature for the clien t b. Skip if self – Indicates whether the feature is use d to filter this menu only or all of its’ branches 3. Help 4. Title 5. Level – Access level to the menu 6. Status message 7. Separate 8. Icon 9. Icon size 10. Menu access – Menu type of access: offline (default ), never, online Icons Genio allows you to use icons in menus, by creating specific resources using external icons libraries. An icon library is available in \\fileserver\FTProot\Icon Fest .
20. Requirements 1. MS Visual Studio 20008 (for BackOffice applications ) 2. MS Visual Studio 2012 (for web applications) 3. SQL Server 2008 (or higher) 4. Quidgest setups (for Genio’s interface) 5. QuidServer 6. Genio (latest version) 7. Eclipse (for Phone Gap applications) Install Quidgest setups Access to Fileserver and download the setups: \\fileserver\FTProot\Setups Quid\ Setups_1.2.3.zip . 1. Extract files, run Launcher.exe and select installe r’s language: 2. Select OK and the following wizard’s window will po p up:
300. Using manual code When should you use manual code Manual code should be used only, and if only: 1. Genio’s features do not include features that a giv en project needs. 2. A project has specific business rules that do not j ustify a new feature in Genio 3. When the generated code needs a specific alteration When you should not use manual code Manual code should not be used when: 1. Genio already includes such features 2. The feature or rule can be applied to several proje cts 3. When Genio has a bug that needs correction Manipulate generated code Manual code is isolated from generated code through welldefined insertion points. There are three ways to manipulate the generated code: 1. Adding new code 2. Overriding generated code (find and replace) 3. Copy code
228. Selections Available selections types include: 1. Selection with array 2. Selection between limits 3. Selection with conditions 4. Selection of a month 5. Selection of a day 6. Selection of a period 7. Selection of a week 8. Selection less than 9. Selection greater than 10. Selection of the first n elements 11. Selection of the last Properties
332. e. ControlViewDependList f. ControlViewList g. ControlViewList h. ControlViewImage Templates Pages 1. Login 2. Menus 3. Lists 4. Forms Advanced Query 2 Advanced query provides a detailed information and knowledge on Quidgest’s systems, allowing the analysis and report construction on site and in rea l time. More details on CAV – Advanced query consult chapter . Generic generation With generic generation, Genio allows the creation of adhoc generators.
389. Tip: Property type can be string, date, bool or int eger. What are the advantages of licensing? 1. Share the same system between different clients, fa cilitating change management and avoiding redundant compilation times 2. Activate or deactivate features without an installa tion process and without downtime (all you have to do is replace the license file) 3. Evolve to a more dynamic features’ management What are the advantages for the client? 1. Assurance that its software is unique 2. Client’s active features can be visualized without the need of deploying further solutions How can I make demos and leave a prototype? Fill the validity date in the client’s module in or der for a license validation. How can I develop a feature with different behavior pe r client? By using the above mentioned functions of CheckLice nce< Type >( property name , default value ) > Type >, the value of a given feature is dynamically fetched . Tip: This option is forbidden in business rules sin ce the implementation of licensing at DBMS level is not possible.
37. Project Settings Project settings of a given program include: 1. System name a. 3 uppercase letters name to define the system’s nam e b. System name will be used in DB’s name and file exte nsion of manual code (in order to recognize which manual files are part of the pro ject) 2. Base language c. Definitions should be written in base language d. Base language will be the language from which trans lations will be made 3. DB version e. Version of program’s DB f. Every time a table or field is changed, the DB vers ion is incremented g. DB version is automatically managed by Genio every time generation is invoked however, this is an editable field h. GEN version – Current version of Genio’s IDE 4. Levels to create users and DB backups (Administrato r level 99, by default)
347. CAv – Features and advantages Corporate competitiveness requires organizations to invest in business solutions for analyzing simple, comprehensive and intuitive way all the relevant in formation in order to anticipate decisions. In order to respond to such needs, Quidgest has dev eloped an interactive tool (CAv) that allows access to information in order to create and export report s. This tool provides a set of reports and data analysis that can be integrated in any operational management process. Users can easily access the systems’ data history in real time thus increasing the power of faster and more effective decisions. CAv main advantages include: 1. High level of integration 2. Decision making capabilities enhanced 3. Increased efficiency 4. High level simplicity 5. Data extraction increased efficiency 6. Distinct access levels CAv main features include: 1. Find and returns information to users of distinct s ystems 2. Analyses data and issues reports that can be easily integrated into any operational management process 3. Issues complex and parameterized reports in a simpl e and intuitive manner 4. Performs a wide variety of researches which can be stored allowing future and further analysis 5. Alters and/or writes SQL commands 6. Allows reports’ exportation to MS Word and MS Excel 7. Restrains information’ access according to users’ a ccess levels
10. The guaranteed access rule All data must be accessible. This rule is essential ly a restatement of the fundamental requirement for primary keys. It says that every individual sca lar value in the database must be logically address able by specifying the name of the containing table, the name of the containing column and the primary key value of the containing row. Systematic treatment of null values The DBMS must allow each field to remain null (or e mpty). Specifically, it must support a representation of "missing information and inapplic able information" that is systematic, distinct from all regular values (for example, "distinct from zer o or any other number", in the case of numeric values), and independent of data type. It is also i mplied that such representations must be manipulate d by the DBMS in a systematic way. Active online catalog based on the relational model The system must support an online, inline, relation al catalog that is accessible to authorized users b y means of their regular query language. That is, use rs must be able to access the database's structure (catalog) using the same query language that they u se to access the database's data. The comprehensive data sublanguage rule The system must support at least one relational lan guage that: 1. Has a linear syntax 2. Can be used both interactively and within applicati on programs 3. Supports data definition operations (including view definitions), data manipulation operations (update as well as retrieval), security and integri ty constraints and transaction management operations (begin, commit and rollback) The view updating rule All views that are theoretically updatable must be updatable by the system.
315. Architecture BackOffice is implemented in C++ and based on MCF l ibraries for the conception of Microsoft structured applications. Data layers take advantage from COM and OleDB interfaces. BackOffice main gold is to provide the entire functionality e systems’ management interfaces on an intranet environment. Amongst other features, BackOffice provides the fol lowing system’s administration tools: 1. Users management 2. Database maintenance 3. Database model upgrade Windows desktop application OleDB MFC Interface MSXML Business Data access DBMS QuidServer MSMQ
57. Languages.txt file contains all the existing codes in ISO6392 and all the international recognized languages. ISO6392 does not distinguishes ENUK fr om ENUS or PTPT from PTBR, for example. 2. ActiveLanguages.txt 3. StringsHardcoded.xml 4. GenCreateLang a. rcLangBlock.map b. rcLangValue.map c. rcSubLangValue.map d. LanguageDict.map e. LanguageLocale.map f. LanguageSql.map g. LanguageID.map h. Blang<xxxxx>.gif Add new languages 1. Create a folder named GenioDev and use Tortoise SVN to update it. 2. Run GenCreateLang.csproj (FOLDER\GenioDev\Ferrament as\Translator):
366. Troubleshooting Directories permissions Permissions of each one of CAv portals must be defi ned as follows: 1. Cav a. User IUSR → Full control b. User IIS AppPool\ASP.NET v4.0 → Full control 2. CavAdmin a. User IUSR → Full control b. User IIS AppPool\ASP.NET v4.0 Classic → Full contro l 3. CavConfig a. User IUSR → Full control b. User IIS AppPool\ASP.NET v4.0 → Full control c. User IIS AppPool\ASP.NET v4.0 Classic → Full contro l Configure directories’ permissions 1. Select the directory and select Security options:
16. Statistics Technology independence and consistency The collection of functional specifications of the system, which are stored in metadata, constitutes a separate and distinct phase of the creation of code templates that support automatic generation. Functional layer consists of specifications evoluti on in accordance to the business needs while technological layer consists of code templates, cre ated in accordance with the system architecture and improved in response to changes in the support envi ronment, programming languages, databases management systems, good practices related to secur ity in the form of user interaction or in response to other technology issues. Technological layer may be replaced without signifi cant losses of functionalities. Genio is constantly evolving to support new technologies: Tenfold faster than traditional highlevel languages 1/10 of programmers One million characters only takes a second to be produced (the same code written by a programmer manual, would require more than 17 working days); 154.200.000 source code lines per day 98% of automat source code generated 4 hours to produce an entire cycle
85. Year change condition Provides the condition(s) for year change. Year cha nge conditions semantics is expressed as an interna l formula. Year change conditions Given the application’s year, change only occurs if the current date is less or equal then the application’s year: TABLE→DATAFIELD <= theApp.ano . Table field Field value theApp.Ano Year change 1 Datafield 16102013 2 013 YES 2 Datafield 16102014 2 013 NO Area’s year change As above mentioned, year change conditions are expr essed as internal formulas. Hence, provided a table has a domain and areas , internal formulas also need to be propagated to a n area (any area of the domain). Template Template option allows you to create template table s that create the same set of fields in other(s) table(s). Template tables work like a snippet, but this one uses fields instead of code. Tip: Snippet is a programming term for a small regi on of reusable source code, machine code, or text. Ordinarily, these are formallydefined ope rative units to incorporate into larger programming modules. Snippets themselves may be either literal text, or written in a simple template language to allow substitutions, such as variable names. Snippe ts are a smallscale form of copy and paste programming. More information on snippets can be found in http://en.wikipedia.org/wiki/Snippet_(programming) .
97. Create table view Consider table VIEW, with following fields: Field Type Designation Width Decimals 1 CODVIEW PK 2 ID Numeric ID 2 0 3 NAME Text Name 50 0 4 NUMBER Numeric Number 5 0 5 TEXT Text Text 10 0 6 CURRENCY Currency Currency 10 0 1. Define table type as View:
322. Transactions WCF supports the following transactions: 1. WSAtomicTransactions a. http://msdn.microsoft.com/enus/library/ms729784(v= vs.110).aspx 2. APIs no namespace System Transactions a. http://msdn.microsoft.com/enus/library/ms254973(v= vs.110).aspx 3. Microsoft Distributed Transaction Coordinator a. http://msdn.microsoft.com/enus/library/ms684146(v= vs.85).aspx AJAX and REST support REST is an example of Web 2.0 evolution technology. WCF may be configured to process simple XML, not em bedded in SOAP formatted messages, or can also be extended to support XML’s specific formats, such as ATOM or JSON (JavaScript Object Notation). Extensibility WCF architecture has a numerous extensibility point s that, when necessary, allow the customization of a service. Advantages 1. WCF supplies a standard interface for third party integration 2. Acessible internally or externally depending only o n configuration 3. Deploy process similar to a web application Disadvantages 1. After the contract is established between suppliers its extremely difficult to negotiate changes QWeb + EJB Enterprise JavaBeans (EJB) consists in a modular ar chitecture to build enterprise applications. EJB technology offers several features, such as, distri bution, transactions, security, messages, persisten ce and connectivity with mainframes and EPR (Enterpris e Resource Planning) systems. EJB’ architecture, is based on the concept that, in a computation enterprise system, database logics i s independent of business logical, meaning that this last is independent of relational model data storag e. EJB uses Eclipse.
375. Configure a new system 1. System – System’s ID: Genio’s system ID is used (e. g. NEW). 2. DB source type – DBMS type: MsSql and Oracle are av ailable. 3. Description – Text available to the final users ava ilable for systems’ choice. 4. Metadata plugin type – Only available in XML 5. Metadata plugin – Metadata path, containing all the information regarding tables, fields, access levels and PHE’s. 6. Identity plugin type a. Quidgest b. Active directory c. Quidgest 2 d. Addin 7. Identity plugin – Path to file with access configur ations to DB to validate logins. 8. Authorization plugin type a. Quidgest b. Quidgest2 c. Addin 9. Authorization plugin: Path to file with access conf igurations file, containing access levels and PHE’s, in order to load each user’s permissions.
43. 3. Active Directory a. In order to login with AD, you must configure the f ile quidapps.ini of the application. Configure active directory Database type Defines the DBMS used in the system allowing genera tion optimization. This feature includes the following options: 1. SQL Server 2. SQL Server 2005 3. SQL Server 2008 4. Oracle 5. SQL Azure (Cloud applications) 6. SQLite (only for Phone Gap ) Reindex level Systems’ reindexation stages include: 1. Verification and update of relational structure, ta bles and fields 2. Updating functions and stored procedures 3. Verification and update of tables’ indexes 4. Updating fields that use internal formulas 5. Transaction logs compacting (SQL Server) By default, Genio uses administrator level (99) for reindexation.
316. 4. Cold storage management of old data BackOffice is implemented in a rich client architec ture, allowing two different operational modes: 1. Direct access to the server for local execution, sh aring operation weight through desktops 2. Access to server using terminal services in order t o the server manages all the load and scalability is maintained through server clusters Features 1. All operations are executed by the application 2. BackOffice applications do not use application serv er. Instead they are directly connected to the database. 3. Local processing 4. On every machine, Quidgest setups are required Advantages 1. Simplicity 2. Large number of implemented patterns Disadvantages 1. Complex deploy for elevated users numbers, obliging the use of terminal services 2. Visual interface and platform are based in decay te chnologies 3. Strong dependency on setups Tip: Setups are necessary on every clients’ local m achine. QWeb + CSharp Qweb is a rich internet application framework, deve loped by Quidgest, to provide an interface adjusted to a system information reality, providing on client’s side features such as smartcards integrations, fields validations and context help m anagement, data introduction forms, navigation, documents upload and download, etc. Qweb, interface’s development is mostly made by a d eclarative form, using XAML (Extensible Application Markup Language), improving users’ expe rience with very rich interfaces.
333. Architecture Dependencies Overview Generation Layers Deploy Interface Process BackOffice Only Client Client Client Client QWeb WebApp Server Client CliSrv QWin Only Client Client Client Client MVC WebApp Server Server Server Addin Office addin Client Client Client WCF WebService Server N.A. Server Silverlight WebApp Server Client CliSrv PL/SQL WebApp Server Server Server Phone Gap Mobile App Client Client CliSrv
303. A pDoc variable exists for each area and is treated like an application’s document built afterwards. Each pDoc variable represents the positioning on the corresp ondent table’s record and it’s represented by a class BackOffice overview pDoc CDataMatrix CGenioRecordset OleDB theApp CHist CGenioDialog CGenioF<menu> CGenioF<form> CGenioTabelaBase CGenioT<tabela> CGenioA<area> CCtrlBase <Controls>
87. Logging type To ensure that records’ changes can be audited, an active audit system is triggered which allows any query that you create, change, or delete data to be captured and analyzed. Changes are store individually by date, user, operation performed and modified value. The audit tables are independent of the schema of t he table audited. This allows the audit information to be preserved even when the database schema chang es, for example when a column is removed so that others are set in place. Available options for logging type feature include: 1. Doesn’t have log 2. Log changes – Each connection is labeled with the n ame of the session user, minimizing the ability of connection pooling but allowing the user to know the exact operation audited. 3. Log operations only – Connections are generic, maxi mizing pooling however, logging only registers the machine that originated the change th is requiring a subsequent matchmaking between the entrance and exit of users in session. Tip: Table’s log increases system’s heaviness. Value confirmation fields Value confirmation fields are computed during clien t’s database generation. This feature includes the following options: 1. Auxiliary number (Deprecated) 2. MDB – Indicates whether the table is located in ano ther server (0 if normal, 1 if secondary, 2 if ... ) 3. DBF type – “D” for domain table, “” for areas 4. Version – 1 st version number when the client database is generat ed 5. Number – Table’s order Tip: Table’s order is of extreme relevance since it can affect the internal calculations. Tree tables Tree tables are tables where a records’ hierarchy exists. This feature is defined by two components: 1. Top – Index of the 1 st character to define the 1 st level of the tree
197. Fields properties Fields general properties include: 1. Id 2. Joint to next (Ctrl + Space) 3. Line break (Ctrl + Enter) 4. Position 5. Size 6. Size by category 7. Style 8. Total position 9. Total size 10. Visible 11. Whole line 12. Label align 13. Label offset 14. Label text 15. Label visible 16. Characters 17. Lines
199. Group properties Group properties include: 1. Id – PSEUD.NOVOGRx 2. Joint to next (Ctrl + Space) 3. Layout 4. Line break 5. Order 6. Position 7. Size 8. Size by category 9. Size 10. Total position 11. Total size 12. Visible 13. Whole line 14. Alignment 15. Editor group alignment 16. Label 17. Layout columns
326. Advantages 1. Direct integration with Microsoft Office Outlook Disadvantages 1. Reduced interface space that requires specific spac e and formats 2. Highly dependent on a good infrastructure and Click Once configuration Configure Outlook AddIn 1. Requirements to develop for Microsoft Office system : The development computer must have the following co mponents before you can develop solutions for the 2007 Microsoft Office system by using Visua l Studio Tools for Office: a. .NET Framework 3.5. The .NET Framework 3.5 is requi red to support ClickOnce deployment and other features in Visual Studio Tool s for the Office system 3.0. b. A supported version of Microsoft Office installed l ocally on the development computer. The following table lists the versions of Microsoft Office that support each project type. All suite editions of 2007 MS Office system Excel 2007 Infopath 2007 Outlook 2007 Powerpoint 2007 Project 2007
159. Formulas calculation order Formulas are computed by the following order: 1. Last value (U1) operations 2. Lookup operations (CT, CS) 3. Internal formulas (+, +H, ++, CT, FP) 4. External formulas (propagation formulas) 5. Tree operations Internal calculations 1. Defaults 2. Internal operations (+, +H, ++, CT, FP) 3. ST External calculations 1. Propagation ++ 2. Propagation U1 3. Propagation SR 4. Propagation FP Good practices: 1. Respect formulas’ scope 2. Assure regular and cascade formulas’ correct order 3. Whenever you use areas, define formulas in both are as and domain 4. Avoid indexation for routine tasks
320. Features General properties WCF are hosted in IIS like normal websites and, alt hough they do not have a graphical interface, Genio interfaces are built to represent the operati ons that will be available in the WS. Service oriented WS patterns allow WCF to create services oriented t o applications (SOA) which represents the resource to Web Services to send and receive data. Services are generally looselycoupled rather than WCF SERVICES External App. SERVER WCF Operation contract Business Framework Persistence DBMS SOAP Service Model External Application DBMS IIS Server File server
343. Versions This version control system keeps track of all work and all changes in a set of files. Versions’ control system includes: 1. Number 2. Version of client data 3. Creation date 4. Creation instant 5. Creation user 6. Number of errors and warnings 7. Generation type 8. Generated code 9. Complexity 10. Manual code 11. Number of changes 12. Time between generations
325. 2. Menus are grouped by module, along the package name : {SYS}_MENU_{MOD} 3. Each form has its own package {SYS]}_FORM_{NAME} 4. Lookups (i.e. List edits) are grouped on a package with the following syntax {SYS}_LOOKUPS_FORMS 5. Each table has its own package with name {SYS}_TABL E_{NAME}, containing all business rules (e.g. formulas, mandatory fields, default val ues, etc.) 6. String_Util contains a set of functions to evaluate strings 7. Data_Util contains a set of functions to evaluate d efault values for data fields 8. Global_Functions contains the set of manual code an d its invocation 9. EPHs represent the code that verifies whether a use r may or may not login and computes EPHs values, through package {SYS}_EPHS 10. Session manages logins and users’ sessions Data structure 1. Communication – structure with xml requested fields , originated from QWeb 2. Query_Builder – auxiliary structure for queries con struction with pagination 3. String_list – auxiliary structure for string arrays simulation 4. Sequences – used to assign values of PKs Procedures 1. Interface – method that receives the POST with QWeb ’s request xml and sends the control to InterfaceXml 2. Showdebug – Debug procedure that allows to view all server requests (time, errors and answers) \\FILESERVER\FTProot\RecursosHumanos\Formação\03 Acções de Formação\01 FormacaoInterna_Genio\13_Janeiro2012\Dia 10 Especif icações Programação (RS)\ProgramacaoPLSQL.pptx . Tenho que instalar o O racle. Outlook Addin Microsoft Office software allows the installation o f additional plugins, this increasing existing feat ures. Through platform QAddin, Genio generates AddIns for productivity Office tools, with an interface presented in HTML format, creating a tab in Outlook to interact with the system and interacting with Outlook email data.
4. Requirements XVI. Reports ........................................... ................................................... .................. 392 Technical documentation XVII. Versioning ........................................ ................................................... ................ 397 Checkout Commit Update Revert XVIII. .................................................. ................................................... ...................................... U tilities .......................................... ................................................... ..................... 400 Query Consolidate helps Import CAv titles Import definition changes Convert to GUIDs Strings replacement Convert to new orthographic agreement XIX. Exercise .......................................... ................................................... ................. 403 Create a flight management system application
388. Full generation Genio allows you to generate the same project to al l active clients. Some generation Genio allows you to generate the same project for a set of selected clients. Generate licenses Genio allows you to share the same application for more than one client, with a dynamic response of the application. A generic client is used so that the delivered syst em is equal for all clients and it must contain as many active features as possible in order to the set of licensed clients may deactivated them. If licensing is required for a given client, no sys tem is generated. Instead, a license that will repr esent client’s settings defined in Genio will be generate d. However, clients can be both generic and license d hence, Genio will generate both application and lic ense. Groups of licensed clients can also be defined. How ever, each client must have a unique private licens e key, which will prevents a nonshared licensing. Adhoc properties can be defined to a given client allowing the protection of licensed routines In order to do that, the following functions must be u sed: CheckLicence< Type >( property name , default value ) > Type > Default value will define how the application will respond in the absence of licensing’s property. Genio Gen é rico Requer licenciamento Requer licenciamento Sistema Licen ç a Licen ç a Win Web Licences
370. Tip: If within IIS manager, you only see the Classic.NET AppPool and DefaultAppPool , chances are that you need to install .NET 4 (Which will also take care of a new AppPool for you). In order to do add ASP.NET 4.0, follow the next steps: i. Open your command prompt ( Windows + R ), with administrator permissions, type cmd and press ENTER ii. Type cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ and press ENTER iii. Type aspnet_regiis.exe –ir and press ENTER again iv. Closed the DOS prompt, reopen your start menu and click “Computer” and select “Manage” v. Expand the lefthand side (“Services and Applicatio ns”) and Select “Internet Information Services” a. You will now have a new applet within the content w indows exclusively for IIS vi. Expand out your computer and locate the “Applicatio n Pools” node, and select it a. You should now see ASP.NET v4.0 listed vii. Expand out your Sites node and locate the site you want to modify (select it)
88. 2. Digits + If the code should be padded with zeros or spaces Access levels Access levels defined for each table include the fo llowing features: 1. QtReg 2. Query – Access level to perform queries on records 3. Creation – Access level to create records on table 4. Access levels for deletion and for changing a. Delete/Change date and label for delete/change date b. Until c. On day d. In the week e. Always Table’s access levels Given access levels unauthorized (0), consulting (1 ), manager (5) and administrator (99) and table dat e field “creationdt”, access levels can be defined as follows: Operation Date On day On week Always 1 Query creationdt Consulting Consulting Consulting 2 Creation creationdt Manager Manager Manager 3 Change creationdt Manager Manager Administrator 4 Deletion creationdt Manager Manager Administrator
407. Create the following tables: 1. Airline AIRLN 2. Airport AIRPO 3. City CITYS 4. Country COUNT 5. Flight FLIGH 6. Rows ROWS 7. Seats SEATS 8. Prices PRICES 9. People PEOPL 10. Tickets TICKE 11. Invoices INVOI 12. Invoice details INVDT Tip: Create at least one area per table domain:
329. Disadvantages 1. Page rendering processing on server 2. Page interaction still needs JavaScript for data up dates Tip: Forms must be arranged in NET platform before MVC’s generation, for now . Tip: MVC does not support more than one area in fil tered lists, for now . Tip: MVC does not support SEs without limit’s type defined, for now . Tip: Text’s translations must be applied, otherwise menu’s labels will be invisible. Phone Gap – Mobile Phone Gap is a mobile development framework which e nables software programmers to build applications for mobile devices using JavaScr ipt, HTML5, and CSS3, instead of devicespecific languages such as ObjectiveC or Java. The resultin g applications are hybrid, meaning that they are neither truly native (because all layout rendering is done via web views instead of the platform's nat ive UI framework) nor purely webbased (because they ar e not just web apps, but are packaged as apps for distribution and have access to native device A PIs). Installation guide 1. JDK 7: http://www.oracle.com/technetwork/java/javase/downl oads/index.html 2. SQL Server Express 2005 or superior 3. Quidgest’ setups 4. Genio requisites and questions: http://docs.phonegap.com/en/2.2.0/guide_getting started_android_index.md.html#Getting%20Started%20w ith%20Android 5. Package IDE version for Java EE Developers: http://www.eclipse.org/downloads/ 6. Android SDK available through Eclipse on “Windows → Android SDK Manager” 7. Install and update SDKs latest versions: http://developer.android.com/sdk/index.html 8. Install all API’s since nr. 10 9. ADT plugin: http://developer.android.com/sdk/installing/install ingadt.html
352. CAv installation steps Requirements Server requirements 1. .NET Framework 4.0 2. IIS (IIS 7 or higher versions are advised) 3. Web deploy 2.0 Client requirements 1. Browser (IE 8.0 or higher, Chrome, Firefox, Opera, Safari) Installation files 1. Configuration database file ( CAV0 vazia.db ) 2. Latest version of CAv zip file, which contains: a. CavMVC.zip – CAv installation file, imported to IIS through web deploy’s “import application” feature. b. CavAdmin – Directory with administration portal’s f iles. 3. Configuration file (“web.config”) that blocks the access to CAv configurations folder in IIS 4. Configuration file (configuracoes.xml) for portals CAv and CAvAdmin 5. Metadata files of the systems (SYSmetadata.xml can be generated m anually or, automatically, by Genio) Configure IIS In order to install CAv, we need to configure two p ortals in IIS and create a folder for configuration s: 1. Cav portal 2. CavAdmin portal 3. CavConfig – Folder to store all metadata files
174. Database field types in a form Database field types, as previously mentioned in re lational model chapter , are available in forms, for example, as depicted below: Form fields controls Genio presents a variety of form field control type s: DB field Input Lookup Dependent List Table list Unfiltered table list Tree list Multiform Grid table list Buttons List button Reports Form Routine Webpage Email Refresh Extend table buttons Containers Extended support form Tab Container Phase Collapsible Accordion Flash control Generic flash control N:N Checklist Filtered checklist Extend checklist Static Text Image Manual field Manual list Webpage Discontinued License plate Memo edit Several line memo Manual routine Tab record list Hidden Schedule editor
39. Configure quidapps.ini file Quidapps.ini file purpose’s is to configure your sy stem as is defined with, ate least, the following variables: 1. DBMS 2. Server 3. Div (3 letters word for your system) 4. Year Additionally, the following commands area available for quidapps.ini file: Command Properties Example 1 Ano DB’ year. If empty, assumes current year Ano = 2009 0 DIV Uses DB with [NAME]DIV[YEAR] Div = A → XXXA2009 3 DBMS DBMS type DBMS = SQLSERVER 4 Server Server’s name Server = perseus 5 Zero Check DB, and rebuilds its structures DB Zero = true 6 Reindex DB’s reindexation ReIndex = true 7 Quick DB’s quick reindexation Quick = true 8 Repair DB’s reparation Repair = true 9 Sync DB’s synchronization Sync = true 12 CriaAno Allows year changes CriaAno = true 13 Special Special features Special = true 14 www Enter in mode www server. www = true
86. Createhist condition Occasionally, data records evolution (history) is i mportant to maintain hence, triggers that create records’ history allows the user to track business’ logic and interface’s normal application over time is of great importance. Createhist condition(s) provide condition(s) to cre ate records’ history where changes are made. Createhist conditions Given the application’s year, history is created if TABLE→DATAFIELD < theApp.ano . Table field Field value theApp.Ano Create history 1 Datafield 16102013 2 013 YES 2 Datafield 16102014 2 013 NO Calculate when Evaluate formulas when the field loses focus or whe n a character is written. Calculate when 1. When a character is written, the formula is evaluat ed after the first character is filled 2. When field loses focus, the formula is evaluated af ter the date is completely filled Calculate when Date Formula evaluation Result 1 Writes character 16102013 1610 2 013 2002 2 Field loses focus 16102013 1610 2 013 2013 Good practice: Evaluate formulas when field loses f ocus otherwise, you might have the wrong result, as depicted above. Advanced query Defines integration with advanced query. Options av ailable for this feature include: 1. Never creates – Table will not be available for adv anced query 2. Only in relationships – Table is only available for advanced query when related to tables that are defined for advanced query 3. Always create – Table is only available for advance d query
221. Lists Lists display a set of rows from a given table. Lis ts may have CRUD (Create, Read, Update and Delete) operations associated, provided a support form exis ts. Available list types include: 1. List 2. List multiple selection 3. Query list 4. List N: N 5. Select multiple entries in a list 6. Deselect multiple entries in a list Tip: A user’s choice of a list type menu has an eff ect on history and on the following lists. Lists and multiple selection lists Lists features include: 1. Base area 2. Support form – Base area support form. If empty, re cord insertion is disabled 3. Title 4. Skip if just one – If only one record exists, list is skipped and visualization form is immediately displayed 5. No. of records – If equals to 0, the number of reco rds displayed per page is 1000 (default). 6. Filter by area – Allows filter of displayed records through below related tables. List shows only records that exist in the selected area 7. Counts records – Counts total records in list (avai lable on WEB applications) 8. XLS export (available on WEB applications) 9. Show after filter – Records are only listed after u sers fill at least one filter. This option represents an optimization over large tables 10. Access – Offline (default), never and online 11. Display 12. Insertion 13. Change 14. Duplication 15. Deletion 16. Active filter – Allows you to filter records for a given period of time 17. Start date field 18. End date field
2. Contents I. Software engineering ............................... ................................................... ........... 4 Purpose Usual problems II. Codd’s model A glimpse ........................... ................................................... ....... 7 The 13 rules III. Why Genio? ........................................ ................................................... ................ 11 Automatic generation IV. Install Genio ..................................... ................................................... ................. 18 Requirements V. Get started ....................................... ................................................... .................. 33 Global settings Clients Modules Access levels VI. Quick Win – Hello World! .......................... ................................................... ...... 74 “Hello world!” VII. Relational model .................................. ................................................... .............. 81 Tables Fields Formulas VIII. Graphical interface ............................... ................................................... ........... 159 Forms Menus Reports
344. Metrics A software metric is a measure of some property of a piece of softwar e or its specifications. Since quantitative measurements are essential in all scie nces, there is a continuous effort by computer science practitioners and theoreticians to bring si milar approaches to software development. The goal is obtaining objective, reproducible and quantifiab le measurements, which may have numerous valuable applications in schedule and budget planni ng, cost estimation, quality assurance testing, software debugging, software performance optimizati on, and optimal personnel task assignments. Common software metrics include: 1. Balanced scorecard 2. Bugs per line of code 3. Code average 4. Comment density 5. Number of classes and interfaces 6. Number of lines of code 7. Program execution time 8. Program load time 9. Program size (binary) As software development is a complex process, with high variance on both methodologies and objectives, it is difficult to define or measure qu alities and quantities and to determine a valid and concurrent measurement metric, especially when maki ng such a prediction prior to the detail design. Genio provides you the following metrics for comple xity evaluation: 1. Genio 2. Management 3. Manual code
= + + = + +
+ + + + +
= + + + !" + # 100 = &'( + &'(5 # 25
3. Resources Texts Helps IX. Manual code ....................................... ................................................... ............. 298 Using manual code Queries X. Generation platforms .............................. ................................................... ......... 311 Generation Architecture XI. Software integration ............................... ................................................... ......... 333 Message queuing TAPI Generic export XII. Versions .......................................... ................................................... ................. 340 Validations Versions Metrics XIII. CAv ............................................... ................................................... .................... 345 CAv – Features and advantages CAv generation CAv installation steps CAv XIV. Distribution ...................................... ................................................... ............... 386 Full generation Some generation Generate licenses XV. Tasks ............................................. ................................................... ................... 390
331. b. DatePicker for jqueryMobile Internal libraries 1. Quidwebsql a. Bridge between Backbone and Persistence 2. FuncoesGlobais.js a. File containing global functions 3. Conversion.js a. File containing conversion between internal data an d database and viceversa Styles 1. Jquery.mobile.structure.min.css a. JqueryMobile structure 2. Datebox a. Datebox css 3. QMobile.css a. JqueryMobile customization theme constructed with T hemeroller b. http://jquerymobile.com/themeroller/index.php 4. Roboto.css a. File for inclusion of Roboto source Architecture Models Entry model Collections Table collection Views 1. DBview 1. FormDBView 2. Form field view 3. App view 4. Control view a. ControlViewDate b. ControlViewTime c. ControlViewDateTime d. ControlViewNumber
330. 10. APTANA Studio: http://www.aptana.com/products/studio3/download Generation 1. Add module with Phone Gap generation type 2. Phone gap solution a. WWW i. HTML, css and JavaScript solutions generated ii. Open index.html and test on Google Chrome b. Android i. Eclipse project generated ii. WWW folder copied to Android/assets/www iii. Import as existing file: File→ Import→ Android→ Exi sting Android Code Into Workspace iv. Test solution using a virtual machine (AVD) or an a ndroid device with active debug tools Includes External libraries 1. Underscorejs a. http://underscorejs.org/ b. Backbone.js dependency and wide range of functions for array objects and collections manipulations 2. Underscore.string a. http://github.com/edtsech/underscore.string b. Underscore.js extension for strings manipulation 3. Backbonejs a. http://backbonejs.org/ b. MVP (modelviewpresenter) JavaScript approach that provides the application structure 4. Persistence.js a. https://github.com/zefhemel/persistencejs b. WebSqle persistence data layer synchronized with We bServices 5. JQueryMobile a. http://jquerymobile.com/ b. Interface rendering 6. Moment.js a. http://momentjs.com/ b. Data manipulation library 7. Datebox.js a. http://dev.jtsage.com/jQMDateBox/
306. 1. /[MANUAL Module FORMDEF Form ]/ a. Runs when form variables are defined 2. /[MANUAL Module TABDEF Form ]/ 3. /[MANUAL Module CTRLINI Form ]/ a. Runs when the form is first initialized 4. /[MANUAL Module CTRLIN2 Form ]/ 5. /[MANUAL Module OMISSAO Form ]/ 6. /[MANUAL Module ONIDOK Form ]/ 7. /[MANUAL Module ONCANCL Form ]/ a. Runs when the user cancels the record 8. /[MANUAL Module PREVALI Form ]/ 9. /[MANUAL Module VALIDA Form ]/ a. Runs when the user saves the record and its used to validate data and controls 10. /[MANUAL Module ONFSCOM Form ]/ 11. /[MANUAL Module BOTINI Form ]/ 12. /[MANUAL Module BOTOES Form ]/ 13. /[MANUAL Module DLGUPDT Form ]/ a. Runs every time something changes within the form 14. /[MANUAL Module CTRLIN3 Form ]/ 15. /[MANUAL Module AFTSAVE Form ]/
307. 16. /[MANUAL Module AFTCANCEL Form ]/ 17. /[MANUAL Module BEFRDEL Form ]/ 18. /[MANUAL Module AFTDEL Form ]/ 19. /[MANUAL Module FINALIN Form ]/ 20. /[MANUAL Module CTOOLS Form ]/ 21. /[MANUAL Module CONTEXT Form ]/ 22. /[MANUAL Module RCCTRL Form ]/ 23. /[MANUAL Module EXTUPDT Form ]/ 24. /[MANUAL Module EXTDEL Form ]/ 25. /[MANUAL Module AFTUPDT Form ]/ 26. /[MANUAL Module AFTDELT Form ]/ 27. /[MANUAL Module EXTOMS Form ]/ 28. /[MANUAL Module REGRSOK Form ]/ 29. /[MANUAL Module FORMINT Form ]/ 30. /[MANUAL Module FORMSEQ Form ]/ 31. /[MANUAL Module TEMPERM Form ]/ 32. /[MANUAL Module MUDAALT Form ]/ 33. /[MANUAL Module MUDADEL Form ]/ 34. /[MANUAL Module BEFUPDT Form ]/ Manual functions 1. /[MANUAL Module ROTINA RoutineName ]/ Insert manual code in Web applications Web database access There are three classes defined to access database in Web applications, as depicted in the picture below: 1. SuportePersistente (Persistence layer) 2. DataMatrix 3. Area
96. Consider the CUSTOMERS table having the following r ecords: +----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+ Following is the example to create a view from CUST OMERS table. This view will be used to have customer name and age from CUSTOMERS table: SQL > CREATE VIEW CUSTOMERS_VIEW AS SELECT name , age FROM CUSTOMERS ; Now, you can query CUSTOMERS_VIEW in similar way as you query an actual table. SQL > SELECT * FROM CUSTOMERS_VIEW ; This would produce the following result: +----------+-----+ | name | age | +----------+-----+ | Ramesh | 32 | | Khilan | 25 | | kaushik | 23 | | Chaitali | 25 | | Hardik | 27 | | Komal | 22 | | Muffy | 24 | +----------+-----+ For additional information, consult http://www.tutorialspoint.com/sql/sqlusingviews.h tm .
Views
- 8694 Total Views
- 7643 Website Views
- 1051 Embedded Views
Actions
- 0 Social Shares
- 0 Likes
- 0 Dislikes
- 0 Comments
Share count
- 0 Facebook
- 0 Twitter
- 0 LinkedIn
- 0 Google+
-
WebSite and WebAdmin deployment on IIS7
4787 Views . -
Genio VM Win7 install procedure
3313 Views . -
GENIO Installation Manual
4643 Views . -
GenioErrorDebug
2173 Views .
-
WebSite and WebAdmin deployment on IIS7
4787 Views . -
GENIO Installation Manual
4643 Views . -
Genio VM Win7 install procedure
3313 Views . -
GenioErrorDebug
2173 Views .