Table of Contents
Preface
Chapter 1: A Short Tour through NAV 2009
Chapter 2: Tables
Chapter 3: Data Types and Fields for Data Storage and Processing
Chapter 4: Pages—Tools for Data Display
Chapter 5: Reports
Chapter 6: Introduction to C/SIDE and C/AL
Chapter 7: Intermediate C/AL
Chapter 8: Advanced NAV Development Tools
Chapter 9: Extend, Integrate, and Design—into the Future
Answers
Index
- Chapter 1: A Short Tour through NAV 2009
- NAV 2009: An ERP system
- Financial Management
- Manufacturing
- Supply Chain Management (SCM)
- Business intelligence and reporting
- Relationship Management (RM)
- Human Resource management
- Project management
- Significant changes in NAV 2009
- Two-tier versus three-tier
- Role Tailored Client
- SSRS-compatible report viewer
- Web services
- NAV 2009: A set of building blocks and development tools
- NAV object types
- The C/SIDE Integrated Development Environment
- Object Designer tool icons
- NAV object and system elements
- NAV functional terminology
- User interfaces
- An introduction to development
- Our scenario for development exercises
- Getting started with application design
- Application tables
- Designing a simple table
- Creating a simple table
- Field numbering
- Pages/Forms
- Keyboard shortcuts
- Run a table
- Reports
- Creating a List format report
- Codeunits
- MenuSuites
- Dataports
- XMLports
- Integration tools
- Backups and documentation
- Summary
- Review questions
- NAV 2009: An ERP system
- Chapter 2: Tables
- Overview of tables
- Components of a table
- Table naming
- Table numbering
- Table properties
- Table triggers
- Keys
- SumIndexFields
- Field Groups
- Expanding our sample application
- Creating and modifying tables
- Assigning a TableRelation property
- Creating Forms for testing
- Adding Secondary keys
- Adding some activity-tracking tables
- New tables
- Keys and SumIndexFields in our examples
- Creating and modifying tables
- Types of tables
- Wholly modifiable tables
- Master
- Journal
- Template
- Ledger
- Reference
- Register
- Posted Document
- Setup
- Temporary
- Content-modifiable tables
- System
- Read-Only tables
- Virtual
- Wholly modifiable tables
- Summary
- Review questions
- Overview of tables
- Chapter 3: Data Types and Fields for Data Storage and Processing
- Basic definitions
- Fields
- Field properties
- Field numbering
- Changing the data type of a field
- Field triggers
- Data structure examples
- Variable naming
- Data types
- Fundamental data types
- Numeric data
- String data
- Date/Time data
- Complex data types
- Data structure
- Objects
- Automation
- Input/Output
- DateFormula
- References and other
- Data type usage
- Fundamental data types
- FieldClass property options
- Filtering
- Defining filter syntax and values
- Filtering on equality and inequality
- Filtering by ranges
- Filtering with Boolean operators
- Filtering with wildcards
- Filtering with combinations
- Experimenting with filters
- Accessing filter controls
- Defining filter syntax and values
- Summary
- Review questions
- Chapter 4: Pages—Tools for Data Display
- What is a page?
- Controls
- Bound and unbound
- Pages—a stroll through the gallery
- A sample RoleTailored Client page
- Types of pages
- List page
- Card page
- Document page
- FastTab
- List+ page
- Journal/Worksheet page
- Confirmation (Dialog) page
- Request page
- Navigate page
- Departments page
- Role Center page
- Page parts
- FactBoxes
- Page names
- Accessing the Page Designer
- What makes up a page?
- Page properties
- Types of page controls
- Inheritance
- Page control details
- Container controls
- Group controls
- Field controls
- Using page controls in a Card page
- Page Part controls
- Creating a Card Part FactBox
- Page Control triggers
- Adding more List pages to our ICAN application
- Creating a simple list page
- Creating related List and Card pages
- Learning more about pages
- UX (User Experience) Guidelines
- Creative plagiarism
- Experimenting with page controls and control properties
- Help searching
- Experimentation
- Testing
- Design
- Summary
- Review questions
- What is a page?
- Chapter 5: Reports
- What is a report?
- Two NAV report designers
- A hybrid report designer
- NAV report—look and feel
- NAV report types
- Report types summarized
- Report naming
- Report components overview
- The components of a report description
- Report Data Flow
- The elements of a report
- Report properties
- Report triggers
- Data Items
- Data item properties
- Data item triggers
- Data item Sections
- Creating RTC reports via the Classic Report Wizard
- Learn by experimentation
- Runtime formatting
- Inheritance
- Other ways to create RTC reports
- Modify an existing RTC report
- The Visual Studio Report Designer layout screen
- Report Items
- Make the report changes
- Request Page
- Processing-Only reports
- Creating a report from scratch
- Creative report plagiarism
- Summary
- Review questions
- Chapter 6: Introduction to C/SIDE and C/AL
- Essential navigation
- Object Designer
- Starting a new object
- Some designer navigation pointers
- Exporting objects
- Importing objects
- Text objects
- Object number licensing
- Some useful practices
- Changing data definitions
- Saving and compiling
- Some C/AL naming conventions
- Variables
- Global identifiers
- Local identifiers
- Special working storage variables
- A definition of programming in C/SIDE
- Functions
- Basic C/AL syntax
- Assignment and punctuation
- Wildcards
- Expressions
- Operators
- Object Designer
- Some basic C/AL
- MESSAGE, ERROR, CONFIRM, and STRMENU functions
- MESSAGE function
- ERROR function
- CONFIRM function
- STRMENU function
- SETCURRENTKEY function
- SETRANGE function
- GET function
- FIND
- FIND ([Which]) options and the SQL Server alternates
- BEGIN–END compound statement
- IF–THEN–ELSE statement
- Indenting code
- MESSAGE, ERROR, CONFIRM, and STRMENU functions
- Some simple coding modifications
- Adding a validation to a table
- Adding code to enhance a report
- Summary
- Review questions
- Essential navigation
- Chapter 7: Intermediate C/AL
- Some C/AL development tools
- C/AL Symbol Menu
- Internal documentation
- Computation and Validation utility functions
- TESTFIELD
- FIELDERROR
- VALIDATE
- ROUND
- TODAY, TIME, and CURRENTDATETIME functions
- WORKDATE function
- Data conversion functions
- FORMAT function
- EVALUATE function
- DATE functions
- DATE2DMY function
- DATE2DWY function
- DMY2DATE and DWY2DATE functions
- CALCDATE function
- FlowField-SumIndexField functions
- CALCFIELDS function
- CALCSUMS function
- CALCFIELDS and CALCSUMS comparison
- Flow control
- REPEAT–UNTIL control structure
- WHILE–DO control structure
- CASE–ELSE statement
- WITH–DO statement
- QUIT, BREAK, EXIT, SKIP, and SHOWOUTPUT functions
- QUIT function
- BREAK function
- EXIT function
- SKIP function
- SHOWOUTPUT function
- Input and Output functions
- NEXT function with FIND or FINDSET
- INSERT function
- MODIFY function
- Rec and xRec
- DELETE function
- MODIFYALL function
- DELETEALL function
- Filtering
- SETRANGE function
- SETFILTER function
- COPYFILTER and COPYFILTERS functions
- GETFILTER and GETFILTERS functions
- MARK function
- CLEARMARKS function
- MARKEDONLY function
- RESET function
- Filter Groups
- InterObject communication
- Communication via data
- Communication through function parameters
- Communication via object calls
- Using the new knowledge
- A development challenge for you
- Creating more ICAN test data
- Developing the Donor Recognition Status report
- A development challenge for you
- Summary
- Review questions
- Some C/AL development tools
- Chapter 8: Advanced NAV Development Tools
- NAV process flow
- Data preparation
- Transactions entry
- Testing and Posting the Journal batch
- Accessing the data
- Ongoing maintenance
- Role Center pages
- Role Center structure
- Role Center activities page
- Cue Groups and Cues
- Cue source table
- Cue Group Actions
- System Part
- Page Part
- Navigation Pane and Action Menus
- Departments
- MenuSuite levels
- MenuSuite structure
- MenuSuite development
- MenuSuite transformation
- Configuration and personalization
- Role Center structure
- Creating new C/AL routines
- Callable functions
- Codeunit 358 – Date Filter-Calc
- Codeunit 359 – Period Form Management
- Codeunit 365 – Format Address
- Codeunit 396 – NoSeriesManagement
- Codeunit 397 – Mail
- Codeunit 408 – Dimension Management
- Codeunit 412 – Common Dialog Management
- Sampling of function models to review
- Codeunit 228 – Test Report-Print
- Codeunit 229 – print documents
- Other objects to review
- Management codeunits
- Documenting modifications
- Multi-language system
- Multi-currency system
- Code analysis and debugging tools
- Developer's Toolkit
- Relations to Tables
- Relations from Objects
- Source Access
- Where Used
- Trying it out
- Working in exported text code
- Using Navigate
- Testing with Navigate
- The C/SIDE Debugger
- The C/SIDE Code Coverage tool
- Client Monitor
- Debugging NAV in Visual Studio
- Dialog function debugging techniques
- Debugging with MESSAGE
- Debugging with CONFIRM
- Debugging with DIALOG
- Debugging with text output
- Debugging with ERROR
- C/SIDE test driven development
- Developer's Toolkit
- Summary
- Review questions
- NAV process flow
- Chapter 9: Extend, Integrate, and Design—into the Future
- Interfaces
- XMLports
- XMLport components
- XMLport properties
- XMLport triggers
- XMLport data lines
- XMLport line properties
- Element or attribute
- XMLport line triggers
- XMLport Request Page
- XMLport components
- Advanced interface tools
- Automation Controller
- NAV Communication Component
- Linked Server Data Sources
- C/OCX
- C/FRONT
- NAV Application Server (NAS)
- Client Add-ins
- Client Add-in definition
- Client Add-in construction
- Client Add-in comments
- Web services
- Exposing a web service
- Publishing a web service
- Determining what was published
- Customizing Help
- NAV development projects
- Knowledge is key
- Different approaches for different scopes
- Advantages of designing new functionality
- Modifying an existing functional area
- NAV development time planning
- Data-focused design
- Determining the data needs
- Defining the needed data views
- Designing the data tables
- Designing the user data access interface
- Designing the data validation
- Data design review and revision
- Designing the Posting processes
- Designing the supporting processes
- Double-check everything
- Design for efficiency
- Disk I/O
- Locking
- Design for updating
- Customization project recommendations
- One change at a time
- Testing thoroughly
- Customization project recommendations
- Plan for upgrading
- Benefits of upgrading
- Coding considerations
- Careful naming
- Good documentation
- Low-impact coding
- The upgrade process
- Upgrade executables only
- Full upgrade
- Supporting material
- Sure Step
- RIM
- Other reference material
- Into the future...
- Summary
- Review questions
- Answers
- Chapter 1
- Chapter 2
- Chapter 3
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
- Chapter 9


