Title: Use of TailorPro for Sales Order Maintenance modifications and other business needs
1- Use of TailorPro for Sales Order Maintenance
modifications and other business needs
Michelle Baumann Bruce LeBel
2About Superior Essex
- Superior Essex Communications is the largest
manufacturer of copper communications cable in
North America and the largest worldwide
manufacturer of copper outside plant (OSP) wire
and cable products.
3About Tailor Pro
- TailorPro enables a business to adapt their
software to their business processes rather than
vice versa. - Without changing either source code or the
production database. - TailorPro enables behavior modification for
applications written in Progress. - Change screens, data structures and business logic
4TailorPro General Capabilities
- Screen Modifications
- New Screens, Browsers, Applications
- New Business Rules
- New Fields and Indexes
- Logic-driven Defaults
- Security on any field
- Audit trail on any field
- Data Validation
- User Control
- Analytical Data Creation from Transactions
5Superior Essex and Tailor Pro
- Increased validation
- Setting of defaults
- Special functions for Essex
- No change to QAD Source Code
- Minimal changes for QAD Service pack or upgrade
- Ease of use
6Sales Order Header
- Increased validation of Bill-to
- Default of Sales channel
- Increased validation of purchase order / PO
release for E-commerce customers. - Selective hide on credit terms
7Header - Bill-to Validation
- Why QAD allows for any valid Bill-to customer to
be assigned to a sales order. This could result
in an incorrect invoice. - Solution Added anchor on leave of Bill-to
customer to validate the Bill-to on the customer
master table.
8Sales Order Header Bill-to
Sample Error
9Sales Order Header Bill-to
Sample Code
define shared variable global_userid as
char. define variable scrn-cust as char.
define variable scrn-bill-cust as char.
getscrn.i FieldName '"so_cust"' Framename
'"a" Variable scrn-cust
getscrn.i FieldName '"so_bill"' Framename
'"a"' Variable
scrn-bill-cust if not scrn-bill-cust
scrn-cust then do find first cm_mstr where
cm_addr scrn-cust no-lock no-error. if
avail(cm_mstr) then do if not cm_bill
scrn-bill-cust then do setmsg.i
MessageType "Error"
MessageBody '"Bill-to invalid for ship-to
customer"' End. End. End.
10Header Default Channel
- Why Superior Essex uses The Sales channel to
determine the different business divisions
(magnet wire USA, magnet wire Mexico, OPP
products). - SolutionOn entry of the lower frame, default the
sales order channel based on the users default
on the user master table.
11Sales Order Header - Default
Sample Default
12Sales Order Header - Default
Sample Code
- define shared variable global_userid as char.
- define variable vso_channel as char.
- getscrn.i FieldName '"so_channel"'
- Variable vso_channel
- if vso_channel "" then do
- find first usr_mstr no-lock
- where usr_userid global_userid no-error.
- if avail(usr_mstr) then do
- scrnvalu.i FieldName '"so_channel"
- FieldValue
usr_variant_code - end.
- end.
13Header Validation PO
- WhyCertain customers who use E-Commerce require
the PO and/or PO Release on the outbound ASN. - Solution Add Tailor Pro anchor on leave of the
lower frame to see if the sold-to customer
requires PO and/or PO Release.
14Header Validation for PO
15Header Validation for PO
Sample Code
def var scrn-so-rmks as char. def var
scrn-so-cust as char. getscrn.i FieldName
'"so_rmks"' Framename '"b"
Variable scrn-so-rmks getscrn.i FieldName
'"so_cust"' Framename '"a"
Variable scrn-so-cust if scrn-so-rmks ""
then do find first xxcmd_det where
xxcmd_customer scrn-so-cust and
xxcmd_attribute "Release Number Required"
no-lock no-error. If available(xxcmd_det)
then do setmsg.i MessageType "Error"
MessageBody '"Customer
release number is required"' End. End.
16Header - Selective hide
- WhyWe do not want users outside of the credit
department to change credit terms. - Solution On entry of the lower frame, disable
entry to credit terms field based on the user
groups in user security for the current user.
17Header - Selective hide
Sample Screen
18Header - Selective hide
Sample Code
define shared variable global_userid as
char. find first usr_mstr where usr_userid
global_userid no-error. if not avail(usr_mstr)
then do disable.i Fieldnames
'"so_cr_terms"' leave. End. if
index(usr_groups,"smt") gt 0 or index(usr_groups,"o
emcredit") gt 0 then do / grant them access
to change this / End. Else do disable.i
Fieldnames '"so_cr_terms"' End.
19Sales Order Detail
- Increased validation of item id vs. memo item
- Added functionality for item id not at stocking
site - Hiding/Skipping pop-ups
- Selective hide pricing
- Set defaults for consignment and fixed price
20Detail Item Validation
- WhyQAD assumes that the order line is a memo if
the part is not found on the part master.
Superior Essex wanted to prompt the user in a
bolder way to make sure that this was not just a
typo. - Solution Added anchor on leave of part. Check
the part master to see if the part exists, if not
prompt user.
21Detail Item Validation
Sample Screen
22Detail Item Validation
def var scrn-sod-part as char. def var
scrn-so-cust as char. if not frame-field
"sod_part" then leave. getscrn.i FieldName
'"sod_part"' Framename '"c"
Variable scrn-sod-part
getscrn.i FieldName '"so_cust"' Framename
'"a"' Variable scrn-so-cust
find first pt_mstr where pt_part scrn-sod-part
no-lock no-error. if avail(pt_mstr) then
leave. find first cp_mstr where cp_cust
scrn-so-cust
and cp_cust_part scrn-sod-part no-lock
no-error. if avail(cp_mstr) then leave. message
"Item does not exists on part master! skip(1)
"OK to continue Cancel to return to field"
view-as alert-box question buttons ok-cancel
update ok as logical. if
not ok then do
holdcurs.i End.
23Detail Part stocking site
WhyQAD assumes that the part will be setup on
the stocking site when the sales order line is
entered. Solution Added anchor on leave of
site/site frame to check to see if the part is at
this site, if not prompt user to see if they want
to create it.
24Detail Part Stocking Site
25Detail Part Stocking Site
- Retrieved part and site from screen
- Look up part/site on inventory master.
- If not found ask question, if yes then CIM load
the part master and the item site planning
records.
26Hiding/Skipping pop-ups
- WhyThe user complained about having too many
pop-ups to press F1 thru. - Also, only pricing should be allowed to see the
pricing pop-up. - Solution Added anchor to entry of the first
field the offending pop-ups and sent a F1 (Go).
27Hiding/Skipping pop-ups
apply "go" to self. pause 0 no-message.
define shared variable global_userid as
char. find first usr_mstr where usr_userid
global_userid no-error. if not avail(usr_mstr)
then do apply "go" to self. pause 0
no-message. End. If index(usr_groups,"mwpricing")
gt 0 then do / grant them access to change
this / End. Else do apply "go" to self.
pause 0 no-message. End.
28Hiding/Skipping pop-ups
29Order Trailer
- Set fields on Sales order for UPS
- Use of Extended table Marriage feature for UPS
- Use of Tailor Pro Rules for UPS
30Order Trailer - UPS
WhyQAD does not store UPS Information (Collect
Account, Service level, etc.) Solution Created
Sales order extended table to store the UPS Info.
Added anchor to go of the last sales entry frame
to pop-up a frame to ask for information.
31Order Trailer - UPS
- Retrieved Sales order and ship via from screen.
- Define UPS form
- Read the Sales order master
- Read the Extended Sales order master to see if
there are values. - Else Read the Extended Customer master to get
defaults - Prompt user with screen (with normal edits)
- Update Extended Sales order master.
- When the order is invoiced, the invoice rule will
copy the UPS information from Extended Sales
order master to Extended Invoice history.
32Order Trailer - UPS
33General Notes
- Be careful if you update a QAD table directly.
- Users will submit many change requests. (Good
news, bad news) - Tailor Pro is only for input (maintenance
transactions) not output (reports). - QAD Batch and CIM Loads background CIM can
invoke table rules "foreground CIM" for all
functionality
34QUESTIONS?
- Business solution capabilities?
- Analysis and spec definition?
- Technical architecture?
- Interactive demo?
- Custom demo?
35- Use of TailorPro for Sales Order Maintenance
modifications and other business needs
Michelle Baumann Bruce LeBel