0% found this document useful (0 votes)
114 views

Customization of Enterprise Financials Exercises

This document contains exercises for customizing the UI, business logic, and reports for an Enterprise Financials application. It includes tasks like adding and customizing fields, default values, validations, translations, queries, and more. The exercises cover a range of customization techniques and are meant to provide real-world practice for customizing QAD applications.

Uploaded by

Manuel Aguirre
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views

Customization of Enterprise Financials Exercises

This document contains exercises for customizing the UI, business logic, and reports for an Enterprise Financials application. It includes tasks like adding and customizing fields, default values, validations, translations, queries, and more. The exercises cover a range of customization techniques and are meant to provide real-world practice for customizing QAD applications.

Uploaded by

Manuel Aguirre
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 12

Non-intrusive customization for

Enterprise Financials

Exercises

Introduction
This document contains the exercises used in the “Customizing Enterprise Financials” pre-
certification training for QAD2010 EE.

Preparation

Environment Setup
Verify the training environment is set up correctly
Locate the <QADAPPSINSTALL>/fin/customizations folder.
Create the following subfolders in <CUST> folder:
/dr01/training/customization_component_based (or
z:\training\customization_component_based in Windows):
customcode
work
Check the propath of the Financials appserver
in /dr01/progress/dlc101c/properties/ubroker.properties.

Exercises
These exercises cover most of the possible customizations. They are inspired by the input from
customers and internal consultants. The cases can be used as a starting point for actual
customizations at customer sites.
2     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

1. UI design
Make some adjustments to the Customer Invoice create window for easier data entry
 Remove the flags
Taxable
Tax Excluded
Open
on the ‘General’ tab page
 Move controls
Credit Terms Code
Due Date
Discount Due Date
from the ‘Financial Info’ tab page to the ‘General’ tab page.

Hints
Disabled tab pages cannot be customized. Enter some data on the customer invoice until the
‘Financial Info’ tab page becomes enabled. Only then open UI design mode.
Controls cannot be moved to another tab page using drag and drop. Remove the control from
the tab page and add it to the other tab page.
Make sure your customizations are saved only for Create mode.

2. Define a user-defined field for the customer application object


Create a user-defined field on customer with the name "Customer category", which should be
represented as a combo-box with a discrete set of possible values.
Put the user-defined field on the form for create, modify, view and delete activities.
In the browse for customers, add the user-defined field to the filter, and to the grid.
Save the browse as a stored search, under a specific name.

Hints
Use terminology-mapping table or the Properties option in the application menu to reveal the
name of the business component.
CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS: EXERCISES      3

3. Specify default value for customer category (1)


Use NI customization to specify a default value for customer category when creating a customer.

Hints
You have to copy the customization template for BDebtor to the right location.

4. Specify default value for customer category (2)


Use NI customization to specify a default display value for customer category when modifying or
viewing an existing customer that was created before this customer category was introduced (and
therefore has an empty category).

Hints
Keep in mind that business code must be able to update more than one business object
(customer) in a single transaction. So you could have to initialize more than one category.

5. Validation on State Tax Field


Add an extra validation on the “State Tax” field on the Supplier form.
For Belgium: (State Tax ID) modulo 97 rule "BE.<10numbers>".
For <10numbers>, the last two numbers should be the result of a modulo 97 operation on the
first 8 numbers. This validation should only be done if the state tax starts with BE.
4     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

Hints
Use UI design mode to reveal the name of the business field.
Use the pattern documentation to find the right place for the validation.
Make sure the validation message is shown in the error viewer.

6. Replicate customer category


Whenever customer category is modified on a customer, replicate it to a custom field on all his
invoices.

Hints
Use DInvoice.CustomCombo1.
Do not replicate if category was not changed !
CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS: EXERCISES      5

7. Change the field format of a business field


In the Business Relation form, the business relation code must be limited to a length of 15.

Hints
It concerns the format of a business field.
It should be a system-wide change.
It should be valid for all activities where the business relation code can be entered.

8. Change the label of a business field


In the Business Relation form, change the label of the business relation code to “Reference
format-15”.
Also change this label in the Business Relation browse.
Provide a french translation for this label (Référence taille-15).

Hints
Reference for looking up business fields of the Business Relation browse is
BBusinessRelation.SelectBusinessRelation

9. Using the HTML Documentation Set


Open the HTML documentation.
Find the answers to the following questions:
• How many business components belong to the business area Payment Instruments?
• What is the value of the pre-processor with name POSTINGFILTERSETS?
• How many tables are available in the object dataset of the component representing customer
invoices? Which of these tables are representations of tables in the physical application
database? What is the main table of the object dataset? What can be said about the value of
the field tdDInvoiceOriginalTC?
• The query GLForTCBalance is an api query on the BGL business component. A query is
typically a join between multiple tables. How many tables are joined in this query? On how
many places in the internal application code is this query called/referenced? The field
6     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

tcLayerCode, which physical field is this representing (table and field)? What is the
condition on the Currency table?
• The business component for customer invoices contains an API method
ApiCreateDInvoicesFinCharge. What is the description of this method? What data
needs to be passed via the parameter tApiDInvoice? Which other methods (in the same
and other components) are called from within the code of this API method? What is the first
validation check that happens in the code?
• What is the default/initial value of the field GL.GlCategory when a new GL account is
created?

Hints
Use a terminology-mapping table or the Properties option in the application menu to reveal
the name of a business component.
The object dataset is a public data item of the business component
Initial values for fields are set in a specific method for each business component. The method has
a very recognizable name.

10. Use Business Logic Logging


Enable business side logging in the application.
First, make sure to mark “Full business logging” and “Include parameter values”.
After enabling debug, do the following:
• Customer Modify
• Select customer “CU7500”
• Change currency code on “Accounting” tab to “XXX”.
• Save (you get an error)
• Stop the business logic logging.
• View the logging.
• Can you recognize the standard application pattern (flow) ?

Try to use other debug settings such as:


• Limited logging
• Database access
CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS: EXERCISES      7

• Database update details


• Unit testing

Hints
No hints… too easy !

11. Generalized codes for Supplier Category


Add a user-defined field to a supplier (with name “supplier category”). The user-defined field
should get an initial value and a validation against a list of possible values. For the possible
values list, a list of generalized codes should be used.
You should also:
• Make the validation activity dependent. For example: make sure the validation only fires
when the activity code = “create”.
• Change the user-defined field to get a dynamic list of possible values.

Hints
Create the user-defined field.
Use UI design mode to put the field on the form.
Use pattern documentation to find the methods that need to be changed.

12. Custom Tables in a SAF Object


Extend the SAF form (supplementary analysis field) for all activities (create, modify, view and
create)
Add a grid containing extra comments. The following information should be editable:
CommentType (can be "Mail conversation", "Information" or "Incident"), Date, Comment
8     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

The extra comments must be stored in a separate table in the database.

Hints
First think of where the new data will reside (what is the datasource?)
Use non-intrusive customization to enable an extra table in the object dataset. Methods that
need to be implemented can be found in the training slides.
Use the user-defined field create function to give a meaning to the custom fields in the extra
table.
Use the UI design and drag the new table on the form.

13. Additional validation on Lease Car


Add these two validation into lease car maintenance:
1. One lease car should never be assigned to more than one employee on the same day.
2. One employee should not be assigned more than one lease car on the same day.

Hints
Look at existing validations in the lease car component, and analyse how they are done.
CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS: EXERCISES      9

The second validation will be different than the other validations. Why is that ?

14. Change the Layout of a Standard Report


Change the layout of a standard report (Customer Aging Analysis Current). Show two ways:
• Copy the standard report to the customreports folder, and change the layout, so that it is
automatically available for the application clients.
• Copy the standard report to the customreports folder, and give it another name. Change
the layout. Use a report variant to point to this new .RPT file.
Change the logo on the standard report Customer Aging Analysis Current. Replace the QAD
logo with the logo of the customer company.

15. Add a custom field on a Standard Report


Add ‘customer category’ on the output of the report Customer Credit Overview.

Hints
First make a copy of the report file.
The solution consists of two steps
1. Add the customer category in the report lay-out.
2. Add the customer category in the report data. Use one of the available custom fields in
the report dataset for this.

16. Add a filter field on a Standard Report


Add a filter on ‘customer category’ on the report Customer Credit Overview, so the report can be
printed for one customer category.

Hints
The solution consists of two steps
1. Add customer category in the report filter criteria.
2. Do the actual filtering on the report data.
10     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

extra exercises in case there is time left

A. Control Total in Banking Entry


Create an additional field called “Control Total” on the Banking Entry form. This field can be
completed by the user, before completing the detail for the banking entry. The application should
check the control total against the closing balance.

Hints
No UI customization in C# code is possible.
Use UI design mode to reveal the business field name of the closing balance.
Use patterns to find the right place to customize.

B. Customize the Customer Prepayment Description Field


Customize the Customer Prepayment Description field to default to the original customer
payment description, or reference.
CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS: EXERCISES      11

Hints
No UI customization in C# code is possible
12     CUSTOMIZATION OF COMPONENT-BASED QAD APPLICATIONS

Use UI design mode to reveal names of business fields


Use business logic to find out the code that is executed
Use the HTML documentation on business fields in the object dataset

C. Provide extra filtering on Customer ageing analysis report


Provide extra filter criteria to enable to select customers to include in the report by their sales
person or by their payment group.

Hints
Similar to exercise 16.
But, for performance reasons, you should not filter on the report data afterwards but make
sure data is retrieved only for the requested customers. You can do that by replacing the
selection on sales person or payment group by a selection on customer code before the report
data is being retrieved.

You might also like