Presentation is loading. Please wait.

Presentation is loading. Please wait.

Differences Training BAAN IVc - BaanERP 5.0c: Development BaanERP 5.0c Tools.

Similar presentations


Presentation on theme: "Differences Training BAAN IVc - BaanERP 5.0c: Development BaanERP 5.0c Tools."— Presentation transcript:

1 Differences Training BAAN IVc - BaanERP 5.0c: Development BaanERP 5.0c Tools

2 Introduction Name Company / Position Knowledge BaanERP Tools Knowledge BAAN IV Tools Development Kit Experience Programming languages Expectations

3 Course Objectives Demonstrate knowledge / skills of: Software architecture Domains Table definitions Sessions Program Scripts Data Access Layer (DAL)

4 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

5 Software Architecture Bshell Operating system Hardware user- interface driver database driver RDBMS Tools --- Packages td tf ti tp tt

6 Technical Architecture Standard Program Bshell RDBMS Data Access Layer UI - script External Application Common Data Access Server

7 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

8 Session Structure - BaanERP Report report object Compile 01011 10110 session object StandardSource Compile Forms form dump Dump Prog.Script Compile 01011 10110 4 GL object

9 Session Usage - 1 Number of sessions in the Menu Browser reduced Multi-occurrence overview session Subsessions for maintenance and printing Synchronization

10 Session Usage - 2

11 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

12 Creating a new application - 1 Create Design Environment New Package and Modules Package Combination Package VRC Create Data Model Create domains Create table definitions Create tables

13 Creating a new application - 2 Generate sessions Create menus Create Program Scripts Create Data Access Layers

14 Domains and Table Definitions Table Definition Table Fields Domain: ppyesno yes/no Datatype: Enumerated Constants 1212 yes no Yes No Domain: ppdsca description Datatype:String Length: 30 Alignment:Left Conversion: No

15 Data Model - Order Entry System Purchase Order Headers (oes022) Countries (oes031) Items (oes020) Suppliers (oes021) Purchase Order Lines (oes023) Item Groups (oes030)

16 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

17 Generate Sessions Input Session Code Session Code Main Sess. ? Start Option Session Type Main Table Index Report Attr. Form Attr. Process: Generate Session, Form, Report, Script Compile and Convert Output: Run the Session

18 Session Generator

19 Synchronized Sessions - Example “General Item Data” table: “tcibd001” Multi-occurrence display session: tcibd0501m000 Single-occurrence maintenance session: tcibd0101s000

20 Session Generator Conventions - Overview window Multi Occurrence Display Main Session One Form Page, max 132 characters Window Type: List Window Start Option: 44 (Get Defaults) Form Type: 2 Option Set: M.2.S Coding: kkmmms5vvm000 Synchronized with single occurrence session

21 Session Generator Conventions - Details window Single Occurrence Maintain Not Main Session Multiple Form Pages allowed, max 80 characters Window Type: Synchronized Dialog Start Option: 0 (None) Form Type: 1 Option Set: S.Y.O Coding: kkmmms1vvs000

22 Session Generator Conventions - Multi Occurrence Edit Session Multi Occurrence Maintain Main Session One Form Page, max 80 characters Window Type: List window Start Option: 44 (Get Defaults) Form Type: 2 Option Set: M.2.O Coding: kkmmms1vvm000

23 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

24 Session Generator vs. Program Script Session Generator Generates basic functionality Program Script Used to develop additional functionality BAAN C Event Oriented Compiled separately

25 Program Script Structure Sections without subsections Program sections Sections with subsections Form sections Group sections Choice sections Field sections Zoom sections Main table sections (replaced by DAL)

26 Program Script - Example declaration: externdomainppoes.prisstock.value field.ppoes020.pris: when.field.changes: stock.value = ppoes020.stck * ppoes020.pris display(“stock.value”) choice.first.view: after.choice: execute(first.set) Main section Sub section Syntax

27 Changes in Program (UI) Script Group sections for dynamic forms Compiled separately No database actions main.table.io section skipped if DAL is used

28 28 Changes in UI - Form Commands Used to activate a Session Menu Function Bind Type Print Form Field

29 Changes in BAAN C Various new functions for disabling fields query extensions session synchronization DAL actions etc. See Programmer’s Reference for details

30 SQL Query extensions Used to read fields from reference tables Only used if fields needed by script are not in the form query.extend functions query.extend.select, query.extend.from, query.extend.where Program script: before.program before.zoom DAL: before.open.object.set()

31 Differences Development Technical Architecture Sessions Creating a new application Session Generator Program (UI) Script Data Access Layer script

32 Data Access Layer - Overview Table tcmcs045 01011 10110 tcmcs045 DAL External Application Common Data Access Server session

33 Data Access Layer - Features Linked to a table definition Logical integrity rules Database interaction DAL name = Table name Object hooks Property hooks BAAN C Compiled separately

34 Terminology Class Object Object Set Property Method Hook Table Definition Record in a table Table Field in a record Operation or function Logic integrity rule; implemented in DAL ------------

35 DAL Hooks Object Hooks before.open.object.set() before.get.object() after.get.object() before.destroy.object() after.destroy.object() before.save.object() after.save.object() after.commit.transaction() method.is.allowed() Property Hooks.check()

36 DAL Hooks - Example function extern long ppoes020.spri.check(long has_changed) { if ppoes020.spri < ppoes020.ppri then dal.set.error.message(”ppoes00001") return(DALHOOKERROR) endif return(0) } function extern long before.destroy.object() { if tdsls040.stat = tdsls.stat.invoiced then dal.set.error.message("tdsls44041") return(DALHOOKERROR) endif return(0) }

37 Data Access and Property Methods Example: dal.set.property("tdsls400", ttdsls400, "tdsls400.amnt", tdsls400.amnt + tdsls401.amnt, DAL_UPDATE) dal.update("tdsls400", ttdsls400, ret, true, db.retry) Data Access Methods dal.new() dal.update() dal.destroy() Property Methods dal.set.property dal.get.property.flag()

38 Non interactive database modifications Business method Programmed in the dal of the most relevant table Activated from UI script or DAL Activated by means of dal.start.business.method

39 Non interactive database modifications - Example (1) Purchase Order Headers (oes022) Items (oes020) Purchase Order Lines (oes023) When a new order line is saved (table oes023), the Stock on Order field in the Items table (oes020) is updated automatically. Example: The following order line is saved: Purchase Order: 105. Position: 20 Item: 101010 Ordered Quantity: 25 At the moment of saving this order line, automatically, the Stock on Order field (table oes020) for item 101010 is increased by 25.

40 Non interactive database modifications - Example (2) DAL Purchase Order Lines table (ppoes023): function extern long after.save.object(long mode) { if mode = DAL_NEW then dal.start.business.method(”ppoes020", ”update.stock.on.order", ret, ppoes023.item, ppoes023.oqua) endif return(0) }

41 Non interactive database modifications - Example (3) DAL Items table (ppoes020): function extern long update.stock.on.order( domain ppoes.item order.item, domain ppoes.quan order.quan ) { longret select ppoes020.ostk fromppoes020 for update wherepoes020._index1 = {:order.item} selectdo dal.set.property(”ppoes020", tppoes020, ”ppoes020.ostk", ppoes020.ostk + order.quan, DAL_UPDATE) dal.update(”ppoes020", tppoes020, ret, true, db.retry) endselect return(0) }

42 The End


Download ppt "Differences Training BAAN IVc - BaanERP 5.0c: Development BaanERP 5.0c Tools."

Similar presentations


Ads by Google