+ All Categories
Home > Documents > Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client...

Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client...

Date post: 31-Dec-2018
Category:
Upload: lynhu
View: 262 times
Download: 5 times
Share this document with a friend
84
EMC ® Captiva ® Invoice Capture Version 7.1 Configuring Captiva Invoice Capture Last Update: February 27, 2014 Invoice Capture version: 7.1 EMC Corporation Corporate Headquarters Hopkinton, MA 01748-9103 1-508-435-1000 www.EMC.com
Transcript
Page 1: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

EMC® Captiva® Invoice Capture

Version 7.1

Configuring Captiva Invoice Capture

Last Update: February 27, 2014

Invoice Capture version:

7.1

EMC Corporation Corporate Headquarters

Hopkinton, MA 01748-9103 1-508-435-1000 www.EMC.com

Page 2: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

Legal Notice

Copyright © 1994-2014. EMC Corporation. All Rights Reserved.

EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without notice.

THE INFORMATION IN THIS PUBLICATION IS PROVIDED "AS IS." EMC CORPORATION MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WITH RESPECT TO THE INFORMATION IN THIS PUBLICATION, AND SPECIFICALLY DISCLAIMS IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.

For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com. Adobe and Adobe PDF Library are trademarks or registered trademarks of Adobe Systems Inc. in the U.S. and other countries. All other trademarks used herein are the property of their respective owners.

Page 3: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

Table of Contents

1. Document Purpose 5 2. Upgrade from IAI 6.5 to Captiva Invoice Capture 7.1 5 3. IAI 6.5 vs. Captiva Invoice Capture 5 4. Captiva Invoice Capture Design 5

4.1. Internal Technical Terms 5 4.2. Component Design 6 4.3. Invoice Capture System solution 7 4.3.1. Document Type scripting 7 4.3.2. Recognition Project 8 4.4. Invoice Capture Document Type Design 8 4.4.1. Primary Fields 8 4.4.2. Table Fields 13 4.4.3. Buttons controls and Shortcut Keys 15 4.4.4. Invoice Capture Validation Rules 17 4.4.5. Invoice Capture Population Rules 22 4.4.6. Validation Cross Check Formula and Default Values 25 4.5. Validation Behavior and Implementation Details 29 4.5.1. Validation Edits behavior 30 4.5.2. Invoice Capture Field Type 30 4.5.3. Override Field Value 32 4.5.3.1. Bypass Blank Configuration 33 4.5.4. Decimal Precision Configuration 36 4.5.5. Switch Invoice Type 37 4.5.6. Invoice / Credit 37 4.5.7. Handle Invoice Routing 38 4.5.8. Error queues 41 4.5.8.1. Implementation 45 4.5.9. Field Label and Validation Error Message Localization 46 4.5.10. Finish Recognition task without errors 47 4.5.11. Finished Validation task with unresolved validation errors 47

5. Document Type Scripting Overview 47 6. The Invoice Capture Client Framework 65

6.1. ASIAPI Library 65 6.1.1. Using ASIAPI Library in Captiva Invoice Capture 66 6.1.1.1. ASI.FindPO 66 6.1.1.2. ASI.GetCompanyCodes 67 6.1.1.3. ASI.SetCurrentCompCode 67 6.1.1.4. ASI.FindVendorByOneField 67 6.1.1.5. ASI.FindVendorByAllFields 68 6.1.1.6. ASI.GetVendor 68 6.1.1.7. ASI. IsDuplicateInvoice 68 6.1.1.8. ASI.IsDuplicateInvoiceAllowed 68 6.1.1.9. ASI.FindPurchaseOrders 68 6.1.1.10. ASI.IsSearchPatternAcceptable 68 6.1.1.11. ASI. ASI.GetPO 68 6.2. Line Matcher Library 68 6.2.1. Refer Line Matcher Library in Custom.InputAccel.UimScript.dll 69 6.2.2. Line Matcher Functions 70 6.2.2.1. LineMatcherEngine.AutoMatch and ApplyMatches 70

Page 4: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

6.2.2.2. LineMatcher.ShowDialog 70 6.3. IAI Utilities Library 71 6.3.1. Company Code Pick List 72 6.3.2. Country Pick List 74 6.3.3. Currency Pick List 75 6.3.4. G/L Account Pick List 76 6.3.5. Purchase Order Data Dialog 77 6.3.6. Tax Code Pick List 78 6.3.7. Vendor Pick List 80

7. Upgrade from IAI 6.x DPP Scripting to Custom.InputAccell.UimScript.dll 81

Page 5: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

1. Document Purpose

The purpose of this document is to provide the technical implementation details for Document-Type scripting of Captiva Invoice Capture 7.1. This document is designed to help Professional Service Group (PSG) or the IT department that is involved in product customizations.

These recommendations and guidelines are based on a typical installation scenario. Because each installation is unique, these guidelines and recommendations do not apply to every scenario and configuration. Results may vary for your specific production environment. Use the guidelines presented in this document as a starting point to help determine the appropriate settings and expected outcomes for your specific production environment.

2. Upgrade from IAI 6.5 to Captiva Invoice Capture 7.1

Captiva Invoice Capture includes many changes:

• Dispatcher Manager is replaced by Recognition Designer

• Most of the validation logic has been moved to Document Type scripting

• All string resources are in IAIStrings.dll

Although there is an option to upgrade the Captiva Client to 7.1 and continue using 6.5 DPP (converted to 7.1 format), EMC recommends that you upgraded the Captiva Invoice Capture as well. If you have customized code, move the customized logic into Document Type scripting. Document Type scripting has a completely different architecture, so upgrading of any customization is an extension of OOTB Custom.InputAccel.UimScript.dll along with the required logic. This section is an overview of the Document Type scripting architecture.

3. IAI 6.5 vs. Captiva Invoice Capture

The IAI 6.5 classification, recognition, and validation features are implemented using the Dispatcher project (DPP) created by Dispatcher Manager and the Dispatcher client modules (Classification, Classification Edit, Recognition, and Validation). The DPP contains the project settings, free form templates and rules, indexing families, and the VBA script code. The Dispatcher client modules communicate with DPP to perform the classification, recognition, and validation.

Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop works with document types and document data objects instead of a Dispatcher project. CC 7.0 also introduces a new client module “Extraction” that works with both document types data and DPP. CC 7.0 uses the Extraction module to replace the Dispatcher Recognition module. But Dispatcher Classification and Classification Edit continue to use DPP.

4. Captiva Invoice Capture Design

4.1. Internal Technical Terms

Term Brief Definition

CC Captiva Capture product (version 7.1)

IAI InputAccel for Invoices (version 6.5)

Configuring the Captiva Invoice Capture Page 5 of 84

Page 6: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Term Brief Definition

Document Type scripting

Also known as Profile Scripting. This is a scripting behind the Document Type. By default it intends the “Invoice” Document Type Scripting. NOTE: From source code point of view, the scripting is mainly a Custom.InputAccel.UimScript.ScriptInvoice implementation of the Emc.InputAccel.UimScript.UimScriptDocument basic class.

Document Represents a business document. Stored as a Level 1 node in the Captiva Capture batch. Consists of one or more 0 level pages. A document has one or more Index Fields, each field representing a business data element.

Page Represents a page image of a document page, backed by a scanned or imported image file. A page represents a subset of Index Fields.

4.2. Component Design

Captiva Invoice Capture is provided as a Capture System solution that is a set of designer profiles:

Component Default location Tool to edit, configure the component

1) Invoice Capture System solution.

[My Documents] EMC Captiva Designer

Microsoft Visual Studio (or other .NET compiler that supports VS2010 project)

Additionally, there is a supporting infrastructure that consists of:

Component Default location Tool to edit, configure the component

2) Client Framework <Path to client install>\Client\binnt

3) Invoice Capture Database

%IAI_ROOT%\ DBScripts\IAICreateDB

Microsoft SQL Server Management Studio

4) Cache Manager

<Path to client install>\Client\binnt

%IAI_ROOT%\VendorFiles

Invoice Capture Database

EMC Invoice Capture’s “UpdCache.exe”

5) SAP custom BAPI %ALLUSERSPROFILE%\ EMC\InputAccel\Supporting Files\IAI\SAP Transport Files

SAP GUI

6) IAISettings.ini %IAI_ROOT% EMC Invoice Capture Application Customizer

Configuring the Captiva Invoice Capture Page 6 of 84

Page 7: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

It also includes the test/demo data that consists of:

Component Default location Tool to edit, configure the component

• Demo images %IAI_ROOT%\images

• Demo ERP database

%IAI_ROOT%\Test\database Microsoft Access

4.3. Invoice Capture System solution

Captiva Invoice Capture is provided as a Capture System solution that is a set of designer profiles:

• CaptureFlow process (XPP) .NET Code module scripts

• Recognition project (DPP)

• Document Type scripting

• Image Processing profile

• Image Conversion profile

• Export profile

4.3.1. Document Type scripting

The CC scripting that is implemented for Invoice document type is custom .NET classes that are extended from the infrastructure class “Emc.InputAccel.UimScript.UimScriptDocument” provided in Emc.InputAccel.CaptureClient.dll assembly. This is the only Captiva assembly that must be referenced by script modules. The Invoice Capture script additionally references five libraries from the Invoice Capture Client Framework:

interop.ASIAPI Abstract Interface to enumerate objects (POs, Company Codes, Vendors) from the ERP System

IAISettings.dll Library that accesses IAISettings.ini

IAIUtilities.dll Library that implements the pick lists access and UI

LineMatcher.dll Library that contains the line assignment core and UI

IAIStringResources.dll User-modifiable VB.Net library that contains the Invoice Capture L10N strings

The Document Type scripting will be used by both Extraction and Validation. It performs the following tasks:

• Validate invoice data against backend

• Validate invoice data based on business logic

• Pick list handling

• Read validation configuration from INI file

• Handle localization

Configuring the Captiva Invoice Capture Page 7 of 84

Page 8: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

4.3.2. Recognition Project

The Invoice (Invoice.DPP) Recognition project is historically converted from the former 6.x IAI.DPP. The Document Type references it (the corresponding Recognition project is always asked when a document type is created).

The Recognition Designer edits project settings, project VBA scripting, free form invoice templates with the OCR zones and the free form rules.

When design time is completed, the project is sent to production, at the following location:

%IAI_ROOT%\Recognition\Invoice\Invoice.dpp

In production mode, the Classification and Classification Edit use the Recognition project from the above location to classify documents and the Captiva Extraction module use it to extract the data from the image. The file location is dictated by:

• Classification step setup

• Captiva Designer > System > System Configuration > Configuration Settings > Other Options > RecogntionProjectSharedDirectory

4.4. Invoice Capture Document Type Design

Invoice Capture defines two document types:

• Document type “Invoice”: Used for invoice processing.

• Document type “ErrorQueue”: Used for invoices that contains errors due to processing.

4.4.1. Primary Fields

The following table lists the primary fields defined in Invoice Capture document type “Invoice”:

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

CompanyCode Edit Box String/Text Editable Yes Must not be blank Do Not Confirm

CompanyName Edit Box String/Text Editable Yes Must not

be blank Do Not Confirm

InvoiceNumber Edit Box String/Text Editable Yes Must not be blank Do Not Confirm

InvoiceDate Edit Box Date Editable Yes May be blank

Confirm On Blank

The expected date format will be shown in the field tooltip.

IsInvoiceCredit Check Box Boolean Editable Yes May be blank Do Not Confirm

If it is an invoice, the check box is unchecked; if it is a credit memo, the check box is checked.

InvoiceCreditD Edit Box String/Text No May be Do Not Confirm If it is an invoice,

Configuring the Captiva Invoice Capture Page 8 of 84

Page 9: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

ebit blank the fill this field with “INVOICE”; if it is a credit memo, then with “CREDIT”.

The scripting synchronizes this field with IsInvoiceCreadit checkbox.

InvoiceType Combo Box String/Text Editable Yes May be

blank Display available invoice types.

PONumber Edit Box String/Text Editable Yes May be blank

Confirm On Blank

POVendorID Edit Box String/Text Invisible No May be blank

Do Not Confirm

POCompanyCode

Edit Box String/Text Invisible No May be blank

Do Not Confirm

POCurrency Edit Box String/Text Invisible No May be blank

Do Not Confirm

AccountNumber Edit Box String/Text Editable Yes May be

blank Confirm On Blank

VendorID Edit Box String/Text Editable Yes May be blank Do Not Confirm

VendorName Edit Box String/Text Editable/ Read-Only Yes Must not

be blank Confirm On Blank

Editable in Waiting for Vendor ID Queue; Read-Only in Primary Validation and Invoice Problem Queue.

VendorAddress Edit Box String/Text Editable/

Read-Only Yes May be blank

Confirm On Blank

Editable in Waiting for Vendor ID Queue; Read-Only in Primary Validation and Invoice Problem Queue.

VendorPOBox Edit Box

String/Text Invisible No May be blank

Do Not Confirm Editable in Waiting for Vendor ID Queue; Read-Only in Primary Validation and Invoice Problem Queue.

VendorCity Edit Box String/Text Editable/ Read-Only Yes May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Read-Only in Primary

Configuring the Captiva Invoice Capture Page 9 of 84

Page 10: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

Validation and Invoice Problem Queue.

VendorRegion Edit Box String/Text Editable/ Read-Only Yes May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Read-Only in Primary Validation and Invoice Problem Queue.

VendorPostalCode Edit Box String/Text Editable/

Read-Only Yes May be blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Read-Only in Primary Validation and Invoice Problem Queue.

VendorCountry Edit Box String/Text Editable/ Invisible Yes/No May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorPhone Edit Box String/Text Editable/ Invisible Yes/No May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorFax Edit Box String/Text Editable/ Invisible Yes/No May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorEmail Edit Box String/Text Editable/ Invisible Yes/No May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorTaxID Edit Box String/Text Editable/ Invisible Yes/No May be

blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorBankNumber Edit Box String/Text Editable/

Invisible Yes/No May be blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice

Configuring the Captiva Invoice Capture Page 10 of 84

Page 11: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

Problem Queue.

VendorBankAccount Edit Box String/Text Editable/

Invisible Yes/No May be blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

VendorIsInvoicable CheckBox Boolean Invisible NO May be

blank Do Not Confirm

Retreived form ERP backend by Vendor ID.

Is used in “ValidateVendorIsUsable” validation rule

VendorCustomN Edit Box String/Text Invisible NO May be

blank Do Not Confirm

Placeholders for 8 ASI Vendor Custom fields,

where N is a number from 1 to 8

VendorCustom9 Edit Box String/Text Read-only Yes May be

blank Do Not Confirm

OOTB is used as allowed Vendor Min Range for validating Invoice Total

VendorCustom10 Edit Box String/Text Read-only Yes May be

blank Do Not Confirm

OOTB is used as allowed Vendor Max Range for validating Invoice Total

OneTimeVendor Check box Boolean Editable/

Invisible Yes/No May be blank Do Not Confirm

Editable in Waiting for Vendor ID Queue; Invisible in Primary Validation and Invoice Problem Queue.

InvoiceSubtotal Edit Box Number Editable Yes May be

blank Confirm On Blank

InvoiceShipping Edit Box Number Editable Yes May be

blank Confirm On Blank

InvoiceDiscount Edit Box Number Editable Yes May be

blank Do Not Confirm

InvoiceTaxCode Edit Box String/Text Editable Yes May be

blank Confirm On Blank

InvoiceTaxRate Edit Box Number Editable/

Read-Only Yes May be blank Do Not Confirm

Editable for non-US invoices; Read-Only for US invoices.

InvoiceTaxAm Edit Box Number Editable Yes May be Confirm On

Configuring the Captiva Invoice Capture Page 11 of 84

Page 12: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

ount blank Blank

InvoiceTaxCode Edit Box String/Text Editable Yes May be

blank Confirm On Blank

InvoiceCredit Edit Box Number Editable Yes May be blank Do Not Confirm

POTotalAmount Edit Box Number Read-Only Yes May be

blank Do Not Confirm

InvoiceTotal Edit Box Number Editable Yes May be blank Do Not Confirm

InvoiceCurrency Edit Box String/Text Editable Yes May be

blank Do Not Confirm

GLAccount Edit Box String/Text Editable/Invisible Yes/No May be

blank Do Not Confirm

In the default invoice type (the “PO Based”), this field is configured as “Excluded”.

CostCenter Edit Box String/Text Editable No May be blank Do Not Confirm

In the default invoice type (the “PO Based”) this field is configured as “Excluded”.

POTotalAmount Edit Box Number Read-Only Yes May be

blank Do Not Confirm

InvoiceStatus Text Box String/Text Invisible No May be blank Do Not Confirm

FreeFormTemplateCulture Edit Box String/Text Read-Only No May be

blank Do Not Confirm

This is an invisible field that specifies the culture for the invoice template.

InvoiceTemplateCulture Edit Box String/Text Read-Only No May be

blank Do Not Confirm

This is an invisible field that specifies the culture for the invoice template.

InvoiceTypeID Edit Box Number Invisible No May be blank Do Not Confirm

CurrentValidationQueue Edit Box String/Text Invisible No May be

blank Do Not Confirm

IsInvoiceReadyForExport Check Box Boolean Editable No May be

blank Do Not Confirm

This field is an invisible field that specifies the ability for export after validation step

InvoiceID Edit Box String/Text Invisible No May be blank Do Not Confirm

Configuring the Captiva Invoice Capture Page 12 of 84

Page 13: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

LineMatcherStatusID

Edit Box String/Text Read-Only No May be

blank Do Not Confirm

This is a service field. It allows checking whether the line matcher was applied. Can have the following values:

0 – Line Matcher was not launched. The default state. Always set in recognition before validation rules are raised.

1 - Line Matcher was launched and changes were accepted automatically. Can be set in Recognition if script accepted Line Matcher changes automatically.

2 - Line Matcher was launched and changes were accepted manually. Can be set in Validation if user call Line Matcher and accept document.

LineMatcherStatusName

Edit Box String/Text Read-Only Yes May be

blank Do Not Confirm

This is a service field. It shows the value of LineMatcherStatusID to the user.

4.4.2. Table Fields

The following table lists the Invoice detail line fields:

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

ItemNumber Edit Box Number Read-Only Yes May be blank Do Not Confirm

This number will be automatically populated based on the position of the line in the table.

ItemQuantity Edit Box Number Editable Yes May be Confirm On Blank

Configuring the Captiva Invoice Capture Page 13 of 84

Page 14: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Name Control Type

Data Type Editability Visible Required Manual

Confirmation Comments

blank

ItemUOM Edit Box String/Text Editable Yes May be blank Do Not Confirm

ItemDescription Edit Box String/Text Editable Yes May be blank Do Not Confirm

ItemUnitPriceQuantity Edit Box Number Editable Yes May be

blank Do Not Confirm

ItemUnitPrice Edit Box Number Editable Yes May be blank Confirm On Blank

ItemDiscountRate Edit Box Number Editable Yes May be

blank Do Not Confirm

ItemNetUnitPrice Edit Box Number Read-Only Yes May be blank Do Not Confirm

ItemAmount Edit Box Number Editable Yes May be blank Do Not Confirm

ItemPO Edit Box String/Text Editable Yes May be blank Do Not Confirm

ItemTaxCode Edit Box String/Text Editable Yes May be blank Do Not Confirm

ItemTaxRate Edit Box Number Editable Yes May be blank Do Not Confirm

POMatchItemNumber Edit Box String/Text Read-Only No May be

blank Do Not Confirm

POMatchGLAccount Edit Box String/Text Read-Only No May be

blank Do Not Confirm Invisible field handled by the LineMatcher assignment

POMatchCostCenter Edit Box String/Text Read-Only No May be

blank Do Not Confirm Invisible field handled by the LineMatcher assignment

POMatchPriceUnitMeasure Edit Box String/Text Invisible No May be

blank Do Not Confirm Invisible field handled by the LineMatcher assignment

POMatchPrQnt Edit Box String/Text Invisible No May be blank Do Not Confirm

Invisible field handled by the LineMatcher assignment

ItemCustomN Edit Box String/Text Invisible No May be blank Do Not Confirm

Placeholders for 10 ASI Item Custom fields,

where N is a number from 1 to 10

Configuring the Captiva Invoice Capture Page 14 of 84

Page 15: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The following lists the Invoice Capture subtotal / tax code summary fields:

Name Control Type

Data Type Editable Visible Required Manual Confirmation

Comments

SummarySubtotal Edit Box Number Read-Only Yes May be blank

Do Not Confirm It will be populated / updated based on the detail line item amount.

SummaryTaxCode

Edit Box String/Text Read-Only Yes May be blank

Do Not Confirm It will be populated / updated based on the detail line item tax code.

4.4.3. Buttons controls and Shortcut Keys

In Captiva Capture 7.1 the shortcut keys are implemented using button controls that are defined in Document Types Designer.

In the Validation step, the operator can invoke pick lists and information dialogs by either pressing the button or activating its shortcut keys. Invoice Capture 7.1 assigns a shortcut key to every defined button. When the operator presses the shortcut key or presses the corresponding button, the click event will be fired and handled by the scripting.

You can customize the invoice-specific shortcut keys in the “Invoice” Document Type in Captiva Designer, and general the Captiva Desktop shortcut keys in Captiva Designer > System > System Configuration > Captiva Desktop Shortcuts.

The followings are the Invoice Capture 7.1 shortcut keys defined in the Document Types designer:

6.x shortcut key

7.1 shortcut Key Button Control Name Field Name where the

button is bound to Functionality

Alt+C Alt+C CompanyPicker CompanyName

Displays the company pick list.

On pick list OK, the selected row updates CompanyCode and CompanyName (in the same way as in the 6.5 version)

Alt+C Alt+Y VendorCountryPicker Vendor Country Displays the country (language) pick list based on the Vendor Country field.

Alt+C Alt+R CurrencyPicker InvoiceCurrency Displays the currency pick list based on InvoiceCurrency.

Alt+I Alt+I InvoiceSwitcher InvoiceType

Invisible button (if technically possible).

Switches Invoice type to the next invoice type. The switch works in a cycle (if the last invoice type is selected, then Alt+I results in switching to the first Invoice Type).

Alt+P Alt+P POPicker PONumber Displays the PO pick list

Configuring the Captiva Invoice Capture Page 15 of 84

Page 16: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

6.x shortcut key

7.1 shortcut Key Button Control Name Field Name where the

button is bound to Functionality

On the pick list OK, the selected row updates:

either PONumber, POTotalAmount, in the general case.

or ItemPO, in case the focus is inside a table item.

Alt+V Alt+V VendorPicker VendorID Displays the vendor pick list

N/A Alt+S SaveVendorData OneTimeVendor Saves the vendor details to the NewVendor.txt file

Alt+L Alt+L LaunchLineMatcher [Line Matcher] button at the bottom of the table Displays line matcher

Alt+G Alt+G GLAccountPicker GLAccount Displays the GL account pick list

Alt+T Alt+T TaxCodePicker InvoiceTaxCode

Displays the tax code pick list

On the pick list OK, the selected row updates:

either InvoiceTaxCode(*) in general cases.

or ItemTaxCode (*) in case the focus is inside a table item.

(*) - in both cases, it is the same way as in the 6.5 version.

Alt+Del Alt+Del DetailCleaner Clears the current detail line fields if focus is inside any detail line fields

Next are shortcut keys defined in the System Designer > System Configuration > Captiva Desktop Shortcuts:

Default shortcut keys

Description

[Ctrl]-[G] Displays the routing options dialog when the cursor is located in the PO Number or Vendor ID fields. Users can route documents that require special handling to different workflow tasks.

[Alt]-[Delete] Clears a detail line item.

[Ctrl]- [Delete] Removes a line item.

[Ctrl]- [Insert] Inserts a row

Configuring the Captiva Invoice Capture Page 16 of 84

Page 17: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Default shortcut keys

Description

[Ctrl]-[Shift]- [Delete] Removes all line items

Notes:

The following shortcut keys are no longer needed in Invoice Capture 7.1:

• Alt+R (Routing): Invoice routing will be implemented using the document flag.

• Ctrl+T (Display array wizard): Captiva Desktop has a built-in functionality to display array wizard by using the “Extract Table” menu selection.

• Shift+F5: The over write feature will be implemented by using the field flag.

The Classification Edit 7.1 DPP VBA code implements the (as in IAI 6.5) Alt+N shortcut key:

6.x Shortcut key

7.1 Shortcut Key

Button Control Name

Field Name where the button is bound to Functionality

Alt+N Alt+N Invoice number (only in Classification Edit)

Copies the invoice number to the other invoice pages in the same document.

4.4.4. Invoice Capture Validation Rules

The followings are Captiva Invoice expression validation rules to check if a field is blank or within a range:

Expression Validation Rules Dependent Field Rule Expression

CheckItemDiscountRateRange ItemDiscountRate ItemDiscountRate >= -100 AND ItemDiscountRate <= 100

The followings are Captiva Invoice validation rules, defined in the Document Type Designer. The implementation of the rules behavior is implemented in scripting.

The “Unmarked From Validation fields” column is a part of the configuration defined in the Document Type Scripting, not in the designer. Changes to the “unmarked” fields will cause the rule to execute, but if the rule fails the “unmarked” fields will not become red in UI. For example, the corresponding “unmarking” instruction for a ValidatePOCompanyCode rule will look like this in scripting:

uimDataContext.UnmarkFieldForValidationRule("ValidatePOCompanyCode", "POCompanyCode")

The comment column also contains IAISettings.ini parameters that are required for- or affect in other way to- the validation rule script. For example the validation scripting could starts with:

Public Sub ValidateCompanyCode()

Skip this rule if UseAcctSys is disabled

If Not Ini.UseAcctSys Then Exit Sub

Configuring the Captiva Invoice Capture Page 17 of 84

Page 18: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Therefore, the ValidateCompanyCode validation rule comment will state: INI: UseAcctSys=Y;

Validation Rules Dependent Fields Unmarked From Validation fields (subset of Dependent Fields)

Comments

CheckBlankVendorID VendorID, OneTimeVendor OneTimeVendor

ValidateVendorID VendorID

ValidateCompanyCode CompanyCode

Validates whether the company code is a valid company code based on the backend data.

INI: UseAcctSys=Y;

ValidateCompanyName CompanyName

Validates whether the company name is a valid company name based on the backend data.

- If the company code and name is a valid pair, then both the company code and name are valid.

INI: UseAcctSys=Y;

ValidatePONumber PONumber

Validates whether the PO number is a valid PO number based on the backend data.

- If the PO number is invalid, it will be set to error.

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y.

ValidatePOCompanyCode

CompanyCode, POCompanyCode

POCompanyCode

Checks whether the company code matches the company code in PO.

- If PO company code is not blank, and is different from the company code, the rule fails with the “Company code is different from the company code in PO” error.

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y

ValidateVendorIsUsable VendorID

Checks whether the vendor is a usable vendor.

INI: UseAcctSys=Y; ENABLE_VENDOR_CHECK=Y

ValidateVendorIdMatchesPOVendorId

POVendorID, VendorID POVendorID

Checks whether the vendor ID matches the vendor ID in PO.

- If vendor ID is different from the PO vendor ID

- The PO vendor ID is empty and the PO number is not blank, the rule fails with the "Vendor ID in the PO is blank" error.

- PO vendor ID is not blank, rule fails with the "Vendor ID is different from PO vendor ID" error.

Configuring the Captiva Invoice Capture Page 18 of 84

Page 19: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Validation Rules Dependent Fields Unmarked From Validation fields (subset of Dependent Fields)

Comments

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y; ENABLE_VENDOR_CHECK=Y

ValidateInvoiceDateAge InvoiceDate

Checks whether the invoice is past dated or future dated.

INI: MAXIMUM_INVOICE_AGE=45

ValidateItemUnitPriceQuantity ItemUnitPriceQuantity

Validates the item unit price quantity:

- It must not be a negative number: ItemUnitPriceQuantity > 0

INI: DISP_LI_ASSGN_DLG

ValidateItemAmount

ItemQuantity, ItemUnitPriceQuantity, ItemUnitPrice, ItemDiscountRate, ItemAmount, ItemNetUnitPrice

ItemNetUnitPrice,

Validates the item amount:

Item amount = (item quantity / item unit price quantity) * item unit price * (1 – item discount rate)

INI: LINE_CROSS_ENABLE=Y, LINE_BALANCE_TOLERANCE

NOTE: Since Invoice 7.1, the default LINE_BALANCE_TOLERANCE=0.01 (instead of 0.00 in 6.5). This reduces the rounding vs. formatting differences.

ValidateItemPO ItemPO Validates whether the item PO is a valid PO

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y

ValidateItemPOCompanyCode

ItemPO, CompanyCode

Checks whether the company code matches the company code in PO.

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y

ValidateVendorCountry VendorCountry

Fails if in the Wait For Vendor Validation Queue and the entered country is missing in the Tbl_Country Invoice Database.

ValidateAllItemTaxRatesArePopulated

ItemTaxRate, VendorCountry VendorCountry,

If all the tax rates are blank, there is no problem.

The situation, the line-item tax rates are allowed to differ provided all of them are populated. Based on this, the new validation rule depends on VendorCountry, and ItemTaxRate as: if the invoice is a US invoice AND any item tax rate is blank AND any item tax rate is non-blank, then the rule fails.

In other words, for US invoices, if any item tax rates are populated, they must all be populated.

NOTE: Physically the rule also depends on FreeFormCulture(s), but because it never changes during script run, it is not included in Dependent Fields.

Configuring the Captiva Invoice Capture Page 19 of 84

Page 20: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Validation Rules Dependent Fields Unmarked From Validation fields (subset of Dependent Fields)

Comments

ValidateItemTaxCode ItemTaxCode Validates whether the item tax code is a valid tax code based on the backend data.

ValidateSubtotal

InvoiceSubtotal, ItemAmount, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity

ItemAmount, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity

Validates the subtotal:

InvoiceSubtotal = Sum (ItemAmount) + / - subtotal balance tolerance

INI: SubTotalCross_Enable=Y, SUBTOTAL_BALANCE_TOLERANCE

NOTE: Since in Invoice Capture 7.1, the default SUBTOTAL_BALANCE_TOLERANCE =0.01 (instead of 0.00 in 6.5), This reduces the rounding vs. formatting differences.

ValidateTaxAmount

VendorCountry, InvoiceTaxAmount, InvoiceShipping, InvoiceDiscount, InvoiceTaxRate, ItemAmount, ItemTaxRate, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice,ItemQuantity

VendorCountry, ItemAmount, ItemTaxRate, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity

Validates the tax amount:

InvoiceTaxAmount = SUM of ( ItemAmount * (If ItemTaxRate is non-blank, then ItemTaxRate else InvoiceTaxRate)) + ((If US then 0 else InvoiceShipping - InvoiceDiscount) * InvoiceTaxRate )

- For US invoice, the balance check is only executed when Line Matcher is done.

INI: AUTO_POPULATE_TAX_AFTER_LM=Y

ValidateTaxCode InvoiceTaxCode Validate whether the tax code is blank or a valid code based on the Invoice Database lookup.

ValidateTotal

InvoiceSubtotal, InvoiceShipping, InvoiceDiscount, InvoiceTaxAmount, InvoiceCredit, InvoiceTotal, InvoiceTaxRate, ItemTaxRate, ItemAmount, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity

ItemAmount, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemTaxRate, ItemQuantity, InvoiceSubtotal, InvoiceDiscount, InvoiceCredit, InvoiceShipping, InvoiceTaxRate, InvoiceTaxAmount

Validates the invoice total:

InvoiceTotal = InvoiceSubtotal + InvoiceTaxAmount + InvoiceShipping - InvoiceCredit – InvoiceDiscount

INI: TOTALCROSS_ENABLE=Y;

ValidateTotalAgainstPO

InvoiceTotal POTotalAmount, ItemPO

ItemPO, POTotalAmount

Checks whether the invoice total matches the primary PO total:

1. If the invoice total is less than or equal to the primary PO total, then no validation is done.

2. If the primary PO is valid and all the detail line POs are the same as the primary PO (blank detail line PO is considered the same as the primary PO),

Configuring the Captiva Invoice Capture Page 20 of 84

Page 21: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Validation Rules Dependent Fields Unmarked From Validation fields (subset of Dependent Fields)

Comments

then the invoice total is checked against the PO range (not to exceed the PO total by the configurable range percentage setting RangeforTotal). A PO range that is not defined requires an exact match or the operator must set the field flag (which is a replacement of the IAI6.x shift-F5) to bypass the validation.

4. If the primary PO is valid but at least one detail line PO is different from the primary PO or the primary PO is blank or invalid, and the vendor is invalid then no validation is done.

INI: UseAcctSys=Y; TOTALCROSS_ENABLE=Y;

ValidateTotalAgainstVendorMinMax InvoiceTotal, VendorID VendorID

If the primary PO is valid but at least one detail line PO is different from the primary PO or the primary PO is blank or invalid, and the Vendor is valid, then the invoice total is checked against the MIN/MAX for the vendor; where blank MIN/MAX values indicate that all amounts are OK.

INI: UseAcctSys=Y; TOTALCROSS_ENABLE=Y;

ValidateCurrency InvoiceCurrency, VendorCountry VendorCurrency

Validates whether the currency is a valid currency based on the Invoice Database lookup.

ValidateCurrencyMatchesPOCurrency

InvoiceCurrency, POCurrency , POCurrency

Checks whether the currency matches the currency in PO.

INI: UseAcctSys=Y; ENABLE_PO_CHECK=Y

CheckDuplicateInvoice

CompanyCode, VendorID, InvoiceNumber, InvoiceDate, InvoiceCurrency, InvoiceTotal

CompanyCode, VendorID, InvoiceDate, InvoiceCurrency, InvoiceTotal

Checks whether the invoice is a duplicate invoice.

INI: UseAcctSys=Y; CONNECTOR=ODBC

ValidateGLAccount

PONumber, GLAccount

PONumber

If GLAccount is visible, blank and the PONumber is also blank then shows error.

ValidateCostCenter

PONumber, CostCenter

PONumber

This is a placeholder for a CostCenter validation. The OOTB implementation never fails.

ValidateLineMatcherStatus

LineMatcherStatusName

Determines whether the line matching is complete. If it is not complete, the failure of this rule prevents Extraction/Desktop from letting go the task to export.

INI: UseAcctSys=Y; DISP_LI_ASSGN_DLG=1

Configuring the Captiva Invoice Capture Page 21 of 84

Page 22: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

4.4.5. Invoice Capture Population Rules

The Invoice Capture scripting introduces a concept of population rules. This concept is an internal implementation of the Invoice Capture product. Essentially, an Invoice Capture population rule is nothing but a scripting method that is executed when an operator or the script updates one of the fields.

For example:

• When an operator changes VendorCounty, UimDataContext Locale (also known as .NET Culture) is also updated.

There could be cascading dependencies between population methods. For example:

• When an operator or the script sets VendorID, VendorCountry is set from the Vendor record from the backend.

• When an operator sets PONumber and VendorID is still empty, then VendorID is populated from the PO record from the backend.

To automatically handle the variety of population method cascading dependencies, each population method has been wrapped to a population rule object, as a pair, comprising:

- The population method to execute

- The depended fields that trigger the population rule

Eventually, each time the script sets a field value, or an operator changes a control value, the population rules check takes place: whether there is a method/groups of methods to execute for the updated field.

The followings are the Invoice Capture population rules:

Population Rules

Fields to be populated

Trigger Fields Comments

PopulateVendorByCompany

VendorID, Vendor info fields

CompanyCode, CompanyName

Updates vendor ID and vendor fields when the company name or the company code changes.

- When the company code / name changes, if the previous company code / name is valid and the new company code / name is also valid, the warning message “Changing the Company will clear and repopulate the vendor data fields. Do you want to continue?” will be displayed.

- If the user selects “Yes”, the vendor info will be cleared.

- If the user selects “No”, the company code/name change is rejected.

PopulateCompanyNameByCode

CompanyName CompanyCode If company code is valid, the company name field is automatically populated with the matching company name.

PopulateCompanyCodeByName

CompanyCode CompanyName If the company code and name is not a valid pair, but the company name is valid, the company code field is

Configuring the Captiva Invoice Capture Page 22 of 84

Page 23: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Population Rules

Fields to be populated

Trigger Fields Comments

automatically populated with the first matching company code.

PopulatePOInfoByPONumber

VendorID, POCompanyCode, POVendorID, POCurrency, POTotalAmount

PONumber If the PO number is valid and the PO vendor is found and vendor ID is blank, vendor fields are set by PO vendor info.

PopulateVendorInfoByID

VendorCountry, Vendor info fields

VendorID Updates Vendor information from the backend data based on Vendor ID.

- If Vendor ID is valid, vendor fields will be set.

- If Vendor ID is cleared, vendor fields will also be cleared.

PopulateDocumentLocale

The Document Locale (a property of the document, not a field)

VendorCountry Updates Document Locale using the first populated value from the following algorithm:

1. Get the culture name based on the InvoiceTemplateCulture hidden field (comes from Recognition Designer; OOtB it is preconfigured to be empty);

2. Get the culture name based on the VendorCountry field;

3. Get the culture name based on the FreeFormTemplateCulture hidden field (comes from Recognition Designer; OOtB it is preconfigured to a correct value, for example, to "fr-FR" for the French template);

4. Get the culture name based on the DEFAULT_INVOICE_CULTURE INI setting.

PopulateItemTaxCodeByTaxRate

ItemTaxCode ItemTaxRate Updates the tax code based on the INI settings:

INI: IAI_TAXRATE_1-3=<##>, IAI_TAXCODE_1-3=<AA>, IAI_TAXCODE_AMTISZERO=<AA>

PopulateEmptyItemTaxCode

ItemTaxCode ItemTaxRate If item tax code is empty, updates it based on the INI settings:

INI: IAI_TAXRATE_1-3=<##>, IAI_TAXCODE_1-3=<AA>, IAI_TAXCODE_AMTISZERO=<AA>

PopulateEmptyItemUOM

ItemUOM ItemUOM If the item UOM is empty, update it based on the INI settings:

INI: LM_DEFAULT_UOM

PopulateEmptyIt ItemUnitPriceQuantit ItemUnitPriceQuantity Updates the item unit price quantity:

Configuring the Captiva Invoice Capture Page 23 of 84

Page 24: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Population Rules

Fields to be populated

Trigger Fields Comments

emUnitPriceQuantity

y, - If it is blank, set it to 1.

PopulateItemNetUnitPrice

ItemNetUnitPrice ItemUnitPrice, ItemDiscountRate

Updates the item net unit price based on the formula:

ItemNetUnitPrice = ItemUnitPrice * (1 - ItemDiscountRate / 100)

PopulateSummaryTaxes

SummaryTaxCode, SummarySubtotal

ItemAmount, ItemTaxCode, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity

Updates the subtotal 1, 2, 3 and the tax code 1, 2, 3 based on the detail line subtotals and the tax codes

PopulatePoMatchInfoByItemPo

PoMatchItemNumber, PoMatchGLAccount, PoMatchCostCenter, PoMatchPriceUnitMeasure, PoMatchPrQnt

ItemPO Updates the matched PO item number, matched PO GL account and matched PO cost center and others.

- If the Item PO is changed after the Line matcher, then the user is warned about losing the matched item and then the POMatch Item Number is wiped out.

- If the user changes the Item PO from blank to non-blank after the Line Matcher, then the POMatch_GLAccount and the POMatch_CostCenter will be wiped out.

PopulateAmounts (Extraction)

InvoiceSubtotal, InvoiceTaxRate, InvoiceTaxAmount, InvoiceTotal,

- Tries to correct/adjust the tax rate, tax amount, sub-total and total based on the OCR data. The tax rate of US is not the COR field. This check does not apply to the US locale.

PopulateAllTotals (Extraction)

InvoiceSubtotal, InvoiceTaxAmount, InvoiceTaxRate, InvoiceTotal, InvoiceShipping

- Determines the invoice values for the total, sub-total, tax amount, tax rate and shipping from the text on the last page of the invoice. Calculation is performed in Extraction.DLL

PopulateTaxRateForUSInvoice

InvoiceTaxRate ItemAmount, ItemUnitPriceQuantity, ItemNetUnitPrice, ItemDiscountRate, ItemUnitPrice, ItemQuantity,VendorCountry, InvoiceSubtotal, InvoiceDiscount, InvoiceTaxAmount

This rule will only run for the US invoice. The US Invoice tax rate is a calculated field.

InvoiceTaxRate = InvoiceTaxAmount / (InvoiceSubtotal – InvoiceDiscount) * 100

An invoice is a US invoice if one of the following is true:

1. Vendor country is "US".

Configuring the Captiva Invoice Capture Page 24 of 84

Page 25: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Population Rules

Fields to be populated

Trigger Fields Comments

2. Vendor country is empty and the template name is "_FREEFORM_INVOICE_US".

PopulateTaxCodeByTaxRate

InvoiceTaxCode InvoiceTaxRate Updates the tax code based on the INI settings:

INI: IAI_TAXRATE_1-3=<##>, IAI_TAXCODE_1-3=<AA>, IAI_TAXCODE_AMTISZERO=<AA>

PopulateEmptyTaxCode

InvoiceTaxCode InvoiceTaxCode If the invoice tax code is empty, updates it based on the INI settings:

INI: IAI_TAXRATE_1-3=<##>, IAI_TAXCODE_1-3=<AA>, IAI_TAXCODE_AMTISZERO=<AA>

PopulateCurrency

InvoiceCurrency PONumber, VendorCountry, InvoiceCurrency,

If the invoice currency is blank or “ANY”, updates it to the first non-blank value:

1. based on the PO currency;

2. based on the vendor country to look up the invoice database country table;

3. based on "DEFAULTCURRENCY" specified in INI.

PopulateIsInvoiceCredit (Extraction)

IsInvoiceCredit - Updates the IsInvoiceCredit field value based on the OCR text. If OCR text is “CREDIT”, then IsInvoiceCreadit is true.

PopulateTableLineNumbers (Extraction)

ItemNumber - Populates the user-friendly "1-based" line numbers.

PopulateLineMatcherStatus (Extraction)

LineMatcherStatus - Resets the line matcher status to “not run”.

UpdateUxControlsByCountry

InvoiceDate.Tooltip,InvoiceTaxRate.IsControlReadonly

VendorCountry Updates the tooltip for the invoice date control.

Updates the read only status for the InvoiceTaxRate control.

4.4.6. Validation Cross Check Formula and Default Values

Following is the list of validation cross check formula and default value that is used when a field is blank, excluded from the current Invoice Type or deleted in the Document Designer. The Scripting code encapsulates the implementation of these formulas just as methods in a class called Calculator, so the formulas can be reused from any place of the validation script (every time the required field is blank, excluded, or deleted). For example:

Private Function UpdateInvoiceTaxAmount() As Boolean Dim taxAmount As Decimal

Configuring the Captiva Invoice Capture Page 25 of 84

Page 26: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Dim calc As Calculator

' If AUTO_POPULATE_TAX_AFTER_LM=Y, the invoice tax amount must be updated automatically

' after the Line Matcher. If Ini.AutoPopulateTaxAfterLm Then taxAmount = 0 calc = New Calculator(GetUimDocumentConext()) calc.CalculateInvoiceTaxAmount(taxAmount) InvoiceTaxAmount = taxAmount End If Return True End Function

Assumptions:

• The default value is used in the formula when a field is blank, disabled or deleted. Blank fields are not automatically populated with the default value.

• If any field on the right hand side of a formula has no default value (N/A) and the field is blank, disabled or deleted, the cross-check for the left hand side field will be skipped.

Formula 1: ItemNetUnitPrice = ItemUnitPrice * (1 - ItemDiscountRate / 100)

Note: This formula is used to populate the read only field ItemNetUnitPrice.

Field Name Default Value Notes

ItemUnitPrice N/A If the ItemUnitPrice field is blank, disabled or deleted, ItemNetUnitPrice will be blank. The cross check for ItemAmount (formula 2) will be skipped.

ItemDiscountRate 0 If the ItemDiscountRate field is blank, disabled or deleted, ItemNetUnitPrice will be the same as ItemUnitPrice.

Formula 2: ItemAmount = (ItemQuantity / ItemUnitPriceQuantity) * ItemNetUnitPrice

Field Name Default Value Notes

ItemQuantity 1

ItemUnitPriceQuantity 1 If the value of ItemUnitPriceQuantity is 0, ItemAmount is expected to be 0.

ItemNetUnitPrice Based on formula 1

N/A

If the ItemNetUnitPrice field is disabled or deleted, calculate based on formula 1.

If the ItemNetUnitPrice field is blank, the cross check for ItemAmount will be skipped.

Configuring the Captiva Invoice Capture Page 26 of 84

Page 27: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Formula 3: InvoiceSubtotal = Sum (ItemAmount)

Note: This formula also applies to the Subtotal 1, Subtotal 2 and Subtotal 3 fields which are the read-only subtotals for the first three tax codes.

Field Name Default Value Notes

ItemAmount Based on formula 2

0

If the ItemAmount field is disabled or deleted, calculate based on formula 2.

If the ItemAmount field is blank, default to 0.

Formula 4 (for US invoices): InvoiceTaxRate = InvoiceTaxAmount / (InvoiceSubtotal - InvoiceDiscount) * 100

Notes:

• For US invoices, the read only InvoiceTaxRate field will be updated every time when InvoiceTaxAmount, InvoiceSubtotal or InvoiceDiscount fields are changed.

• If InvoiceSubtotal is less or equal InvoiceDiscount, the InvoiceTaxRate field is set to blank.

Field Name Default Value Notes

InvoiceTaxAmount N/A If the InvoiceTaxAmount field is blank, disabled or deleted, the InvoiceTaxRate field is set to blank.

InvoiceSubtotal Based on formula 3 N/A

If the InvoiceSubtotal field is disabled or deleted, calculate based on formula 3.

If the InvoiceSubtotal field is blank, the InvoiceTaxRate field is set to blank.

InvoiceDiscount 0

If the ItemNetUnitPrice field is disabled or deleted, calculate based on formula 1.

If the ItemNetUnitPrice field is blank, the cross check for ItemAmount will be skipped.

Formula 5 (for US invoices): InvoiceTaxAmount = SUM (ItemAmount * ItemTaxRate) - (InvoiceDiscount * InvoiceTaxRate)

Notes:

• For US invoices, the InvoiceTaxAmount field will accept any numeric value and when user presses the Enter key, no validation code is run. After the Line Matcher runs and is accepted, the tax amount will be populated based on the above formula.

• The population is skipped when an invoice has no detail line or when AUTO_POPULATE_TAX_AFTER_LM=N.

Configuring the Captiva Invoice Capture Page 27 of 84

Page 28: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Field Name Default Value Notes

ItemAmount Based on formula 2

0

If the ItemAmount field is disabled or deleted, calculate based on formula 2.

If the ItemAmount field is blank, default to 0.

ItemTaxRate InvoiceTaxRate

If item tax rates are all blank, then the default (last known before LM launch) InvoiceTaxRate is used.

If item tax rates are populated, then an effective TaxRate is used as follows:

SUM ( ItemAmount * ItemTaxRate)/SUM (ItemAmount)

InvoiceDiscount 0

InvoiceTaxRate 0

Formula 6 (for non-US invoices): InvoiceTaxAmount = SUM (ItemAmount * ItemTaxRate) + ((InvoiceShipping - InvoiceDiscount) * InvoiceTaxRate)

Configuring the Captiva Invoice Capture Page 28 of 84

Page 29: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Notes:

• For non-US invoices, the field is always validated based on the above formula.

• The cross check for InvoiceTaxAmount is skipped when an invoice has no detail line.

Field Name Default Value Notes

ItemAmount Based on formula 2

0

If the ItemAmount field is disabled or deleted, calculate based on formula 2.

If the ItemAmount field is blank, default to 0.

ItemTaxRate

InvoiceTaxRate

InvoiceShipping 0

InvoiceDiscount 0

InvoiceTaxRate 0

Formula 7 InvoiceTotal = InvoiceSubtotal + InvoiceTaxAmount + InvoiceShipping - InvoiceCredit – InvoiceDiscount

Field Name Default Value Notes

InvoiceSubtotal Based on formula 3

N/A 0

If the InvoiceSubtotal field is disabled or deleted, calculate based on formula 3.

If the InvoiceSubtotal field is blank, the cross check for InvoiceTotal will be skipped.

InvoiceTaxAmount Based on formula 5 or 6

N/A

If the InvoiceTaxAmount field is disabled or deleted, calculate based on formula 5 (for US invoices) or 6 (for non-US invoices).

If the InvoiceTaxAmount field is blank, the cross check for InvoiceTotal will be skipped.

InvoiceShipping 0

InvoiceCredit 0

InvoiceDiscount 0

4.5. Validation Behavior and Implementation Details

With Captiva Desktop 7.1, some behavior and user experience will be different from Dispatcher Validation 6.5. The following section documents the behavior and implementation differences between Invoice Capture 7.1 and IAI 6.5.

Note: The business logic of invoice processing remains the same.

Configuring the Captiva Invoice Capture Page 29 of 84

Page 30: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

4.5.1. Validation Edits behavior

• Field status and field color

Dispatcher Validation supports the configuration of the field color for different field status. For a valid field, the default background color is white; if the field needs to be confirmed, the default background color is blue; for an invalid field, the default background color is pink.

Captiva Desktop supports only two field statuses: “does not need work” and “needs work”. Fields that need work are those which are invalid or need to be confirmed. The background color of fields that do not need work is white and the default background color of fields that need work is pink.

Notes: The Captiva Desktop blue status is used for indicating a “flagged by the operator” status (see the Override Field Value chapter).

• Validation rule and flagged fields

If the validation rule depends on more than one field, the invoice validation rules in Dispatcher Validation will flag (set error) to one field; Captiva Desktop will set error to all the dependent fields. For example, the total balance check rule: subtotal + tax amount = total. If the total is not equal to the subtotal plus tax amount, Dispatcher Validation will set error to the total field; Captiva Desktop will set error to all the three fields.

• Leave invalid field using “Enter” key

If the field has an invalid value, Dispatcher Validation will not allow leaving the field by pressing the “Enter” key; Captiva Desktop allows leaving the field by pressing the “Enter” key twice. The first “Enter” is for viewing the updated error message after the value is changed, the second “Enter” is for leaving the field, after the message is read and the value remains unchanged.

• Leave incomplete tasks

Dispatcher Validation will not allow an operator to complete the task if any fields are invalid. If the operator routes the invoice to another queue, the field errors are temporarily cleared and reset in the next queue. Captiva Desktop allows the operator to complete the tasks with field errors and fields needing confirmation. When this happens, the Invoice Capture CaptureFlow reroutes the invoice back to an operator; invoices are exported only after all errors and necessary confirmations are addressed.

4.5.2. Invoice Capture Field Type

The data type of all fields in Dispatcher Validation is set to “String” because Dispatcher lacks the flexibility to handle number and date formatting for different countries. IA/I VBA code in Dispatcher Validation handles the number and date formatting. Captiva Desktop will provide the functionality to switch the document culture programmatically to handle the number and date formatting based on the invoice document Locale (also known as culture). With this feature, the type of the invoice amount field will be set to “Number” and the invoice date field will be set to “DateTime”. The Edits code will set the culture for the invoice document, and Captiva Desktop will handle the formatting based on the invoice document culture setting. The following are the implementation changes from IA/I 6.5:

• Invisible fields and INI settings

The following invisible fields are removed:

- TemplateDecimalSeparator

- TemplateThousandSeparator

- DateFormat

Configuring the Captiva Invoice Capture Page 30 of 84

Page 31: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Two new invisible fields are added:

+ “FreeFormTemplateCulture”

+ “InvoiceTemplateCulture”

The following INI settings are removed:

- DEFAULT_INPUT_DATE_FORMAT

- DEFAULT_DECIMAL_SEPARATOR

- DEFAULT_THOUSAND_SEPARATOR

A new INI setting is added:

+ “DEFAULT_INVOICE_CULTURE”

• How to determine the invoice document culture

Captiva Desktop will determine the culture for the invoice document in the following order. The first non-blank value will be used.

1) Based on the culture specified in the invisible field “InvoiceTemplateCulture” (always empty OOTB);

2) Based on the vendor country, if vendor is identified;

3) Based on free form template country specified in the invisible field “FreeFormTemplateCountry”;

4) Based on the DEFAULT_INVOICE_CULTURE value specified in the INI file.

Note: IAI 6.x has option 5 “Based on the machine locale country” and option 6 “Based on INVOICE_PACKAGE country specified in INI file”. These two options will not be required in Invoice Capture 7.1. If the Edits code does not set the document culture, Captiva Desktop will automatically use the module launch culture (which is specified in the module launch command line) or the machine locale to set the document culture.

• Invoice Capture database “Tbl_Country” table is updated

1) The “DateFormat”, “ThousandSep” and “DecimalSep” columns in the Invoice Database “Tbl_Country” table are removed. Invoice Capture will not need these columns because the Edits code will no longer handle the formatting (instead, the built-in Document Locale formatting will be leveraged).

2) The “Culture” column in the IAI database “Tbl_Country” table is added. This column specifies the culture info name for the country.

• The decimal precision settings are moved from INI to field property:

- GENERAL_DECIMAL_PRECISION

- QUANTITY_DECIMAL_PRECISION

- UNIT_PRICE_QUANTITY_DECIMAL_PRECISION

- TAX_RATE_DECIMAL_PRECISION

- UNIT_PRICE_DECIMAL_PRECISION

- DISCOUNT_DECIMAL_PRECISION

Configuring the Captiva Invoice Capture Page 31 of 84

Page 32: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

- LINE_AMOUNT_DECIMAL_PRECISION

- DISCOUNTRATE_DECIMAL_PRECISION

The amount field precision will be set in the Document Type Designer in the field property “Format”.

• Prepare export data

1) The invoice date field is of “DateTime” type. It is strongly typed and Standard Exporters will format it as needed. Note: The 6.x based exporters (in fact the AP Connect Export otherwise – DctmAdvExport) will get the string value of Date.

In 7.1, the “prepare for export” .NET Code step will format invoice date (DateTime) to two IA Values:

• PrepareForExport.InvoiceDate - export the invoice date (string) based on the expected export date format “EXPORT_DATE_FORMAT” defined in the INI settings. This retains the backward compatibility for DctmAdvExport.

• PrepareForExport.InvoiceDate_YYYYMMDD - export the invoice date (string) in ASI (ODBC or SAP backend) expected format: YYYYMMDD. This retains the compatibility for Invoice Export (former AP Connect Export).

2) The invoice amount fields are of “Number” type. The exports (both generic exports and 6.x exports) do not know the procedure to convert the field value from number to string because they are not able to access the format defined in the document type.

• So the Standard export will leverage its built in formatting feature. To customize the XML or Text export formatting, navigate to Captiva Designer > Export.

• The 6.x based exporter will again leverage the .NET Code “PrepareForExport” step, the code reads the document data and writes the formatted number in the “PrepareForExport” custom values, using the invariant culture (.) decimal separator.

4.5.3. Override Field Value

In IAI 6.5, if field value is invalid, you can use the shortcut key (Shift + F5) to override the invalid field. The Override field functionality is implemented by the Edits VBA code to set the field status from “Error” to “OK”. After the invalid field is overridden, the field status changes from invalid (field color is red) to valid (field color is white).

In Captiva Desktop, the scripting code does not set the field status directly. The field status (valid, invalid, or needs confirmation) is set by Captiva Desktop based on the settings of field properties (such as data type, required, confirm blank,) and the execution result of the validation rules (scripting rule or expression rule). Captiva Desktop provides a new feature called “flag”. You can flag a field and select the flag reason. The override functionality is implemented using “flag”. To to override an invalid field, you can flag the field with the “Value is accepted” reason. After the field is flagged, the field error message will be suppressed. This means that the field status is still “invalid”, but the field error will not be shown. The field status will change from invalid (field color is red) to flagged (field color is blue).

Captiva Desktop allows invoices with error fields / flagged fields to exit the current Captiva Desktop step. But Invoice Capture cannot allow any invalid fields to be exported. Invoice Capture uses the following logic to determine if a field is ready for export or not. This check will be done at the “DocumentUnload” event for all fields. An invoice is ready for export only if all the fields are ready. If an invoice has any field that is not ready for export, the invoice will be routeted based on the invoice status document flag(s) or it will be re-queued at the current CaptivaDesktop step.

Configuring the Captiva Invoice Capture Page 32 of 84

Page 33: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Field property “IsValid”

Field property “ValidationError”

Field property “IsRemoved”

(removed in customizer)

Field is confirmed (when needs confirmation)

Flagged with “Value is accepted” reason

Field ready to export

Yes READY

True No Yes READY

True No Yes READY

False (Validation rule error)

Not empty No Yes READY

False (other error)

No No

Notes:

• In IAI 6.5, the Shift + F5 shortcut key only overrides a validation error; it cannot override the data type error. For example, you cannot override an amount field if the field value is not a number; you cannot override a date field if the field value is not a valid date. In Invoice Capture 7.1, the field property error will be treated as invalid fields. The invoice document cannot be exported with invalid fields

• In IAI 6.5, if the value of the field changes after the field is overridden, the overridden mark for that field will be automatically removed. This means that if the new value fails validation, the field will be marked as invalid even if this field is previously overridden by the shortcut key. In Invoice Capture 7.1, the overridden / flagged mark for the field will not be automatically removed when the field value changes. You can remove the flag manually, if required.

• IAI Classification Edit 6.x incorrectly allowed the use of the Shift+F5 shortcut key to the “Invoice Number” pre-indexed field. In Invoice Capture Classification Edit 7.1, the “Shift+F5” shortcut key will have no effect.

• IAI 6.x does not allow overriding Vendor ID or Invoice Number. The Invoice Capture 7.1 preserves this behavior in the following way: - The blank or disallowed VendorID is never ready for export, even if flagged. - The duplicated InvoiceNumber will not be ready for export, even if flagged, unless it is specially allowed by the ASIODBC_INV_ALLOW_DUPLICATE column. The error message “…Flagging the field as correct will not override this error” highlights these instances.

4.5.3.1. Bypass Blank Configuration

Captiva Desktop introduces a new field property “Manual Confirmation” with three options: Never Confirm, Always Confirm, and Confirm On Blank. The combination of the field property “Manual Confirmation” and the expression validation rules to check if a field is blank, allows the implementation of IAI bypass blank features by using field property and rules instead of the INI settings.

These are the implementation details:

• Invoice Capture 7.1 simplifies settings by providing three bypass options instead of four.

IAI 6.x provides four bypass blank options:

Configuring the Captiva Invoice Capture Page 33 of 84

Page 34: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

1 = Bypass blank field

2 = Stop at the blank field. No message appears. Field color is blue. Press the “Enter” key to bypass it.

3 = Stop at the blank field. Display the warning message. Field color is red. Press the “Enter” key to bypass it.

4 = Stop at the blank field. Display the error message. You cannot leave this blank field by pressing the “Enter” key.

Invoice Capture 7.1 will simplify bypass blank with three options:

A = Bypass blank field

B = Stop at the blank field. Display the message “This field requires manual confirmation. Press Enter to confirm the content.” and request for confirmation. Press the “Enter” key to confirm the blank field; the field status changes to valid.

C = Stop at the blank field. Display the built-in Captiva Desktop field message “Field cannot be empty”. You cannot set the blank field status to valid, unless you enter a value.

This table shows the mappings between IAI 6.x and Invoice Capture 7.1 bypass blank options:

IAI 6.x option 7.1 option

1 A

2 B

3 B

4 C

• Invoice Capture 7.1 removes the following bypass blank setting from INI:

BYPASS_BLANK_PO_NUMBER

BYPASS_BLANK_VENDOR_ID

BYPASS_BLANK_INVOICE_DATE

BYPASS_BLANK_INVOICE_NUMBER

BYPASS_BLANK_ACCT_NUMBER

BYPASS_BLANK_SUBTOTAL

BYPASS_BLANK_SHIPPING

BYPASS_BLANK_TAX

BYPASS_BLANK_TAX_CODE

BYPASS_BLANK_DISCOUNT

BYPASS_BLANK_CREDIT

BYPASS_BLANK_LI_UOM

BYPASS_BLANK_LI_DISCOUNT_RATE

BYPASS_BLANK_LI_AMOUNT

Configuring the Captiva Invoice Capture Page 34 of 84

Page 35: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

BYPASS_BLANK_LI_TAX_CODE

BYPASS_BLANK_LI_TAX_RATE

BYPASS_BLANK_LI_PO

• Bypass blank is implemented using the combination of the following field property and expression rule:

IAI Bypass Blank option 1 2 3

Field “Manual Confirmation” property

Do Not Confirm Confirm on Blank Do Not Confirm

Field “Input Mode” property Editable / Required

• With the field “Manual Confirmation” property set to “Confirm on Blank” (Invoice Capture Bypass blank option 2), Captiva Desktop treats the blank field as confirmed after you press the “Enter” key on the blank field. If you change the field value later, the “already confirmed on blank” flag will not be removed and this field will not need to be re-confirmed when the field is blank again.

• If the field “Input Mode” is set to “Editable / Required”, the invoice will not be routed to export as long as the field is blank.

• This table lists the default bypass settings in IAI 6.x and InvoiceCapture 7.1:

IAI 6.x default option value Invoice Capture 7.1 default option value

BYPASS_BLANK_PO_NUMBER=3 PONumber = B

BYPASS_BLANK_VENDOR_ID=4 VendorID = A

Note: This is an exception. Logically, the Vendor ID option (in 7.1) should be C, but for the OneTimeVenodor use case reason, the blank permission is controlled by scripting. To avoid conflict with the scripting message, use option A.

The scripting message will be similar to: “Enter a Vendor ID. Flagging the field as correct will not override this error.”

When the vendor is One Time, no empty error message appears.

BYPASS_BLANK_INVOICE_DATE=3 InvoiceDate = B

BYPASS_BLANK_INVOICE_NUMBER=4 InvoiceNumber = C

BYPASS_BLANK_ACCT_NUMBER=2 AccountNumber = B

BYPASS_BLANK_SUBTOTAL=2 InvoiceSubtotal = B

BYPASS_BLANK_SHIPPING=2 InvoiceShipping = B

BYPASS_BLANK_TAX=2 InvoiceTaxAmount = B

BYPASS_BLANK_TAX_CODE=3 InvoiceTaxCode = B

BYPASS_BLANK_DISCOUNT=1 InvoiceDiscount = A

Configuring the Captiva Invoice Capture Page 35 of 84

Page 36: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

IAI 6.x default option value Invoice Capture 7.1 default option value

BYPASS_BLANK_CREDIT=1 InvoiceCredit = A

BYPASS_BLANK_LI_UOM=1 LineItemUOM = A

BYPASS_BLANK_LI_DISCOUNT_RATE=1 LineItemDiscountRate = A

BYPASS_BLANK_LI_AMOUNT=4 LineItemAmount = C

BYPASS_BLANK_LI_TAX_CODE=1 LineItemTaxCode = A

BYPASS_BLANK_LI_TAX_RATE=1 LineItemTaxRate = A

BYPASS_BLANK_LI_PO=1 LineItemPO = A

4.5.4. Decimal Precision Configuration

7.x DocDesigner introduces a brand new field property “Number Format”, available for Number data type fields. 7.x ExportDesigner introduces a similar format feature. There are two of them because C7 customers can configure fixed export formats but flexible DocType formats. With Invoice Capture 7.1, you can do that with the OOB settings.

This property will replace the former 6.5 *_DECIMAL_PRECISION options. This table lists the comparison between the 6.5 and 7.1 precision options:

6.x IAIAC page IAI 6.x default setting Invoice Capture 7.1 “Number Format” Property

Invoice Capture 7.1 “Export Format” Property

Affected Invoice Capture 7.1 fields

Line Item Fields QUANTITY_DECIMAL_PRECISION=4

N4 N0.0000 ItemQuantity

UNIT_PRICE_QUANTITY_DECIMAL_PRECISION=0

<General (1234)>

N0.# ItemUnitPriceQuantity

UNIT_PRICE_DECIMAL_PRECISION=4

N4 N0.0000 ItemUnitPrice

ItemNetUnitPrice

DISCOUNTRATE_DECIMAL_PRECISION=2

<Number (1,234.00)>

N0.00 ItemDiscountRate

LINE_AMOUNT_DECIMAL_PRECISION=2

<Number (1,234.00)>

N0.00 ItemAmount

Global Settings GENERAL_DECIMAL_PRECISION=2

<Number (1,234.00)>

N0.00 InvoiceTaxAmount

SummarySubtotal

InvoiceSubtotal

InvoiceDiscount

InvoiceCredit

InvoiceShipping

Configuring the Captiva Invoice Capture Page 36 of 84

Page 37: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

InvoiceTotal

POTotalAmount

Tax Fields TAX_RATE_DECIMAL_PRECISION=1 (for non US)

TAX_RATE_DECIMAL_PRECISION=4 (for US)

0.0### N0.0### ItemTaxRate

InvoiceTaxRate

Note: The *TaxRate fields use the “0.0###” number format instead of “P” (percentage) because the percentage format accepts OCR string like “0.21”. The actual OCR string “21.0” will lead to the “2100.0 %” value.

Using “0.0###”, instead of “N1” or “N4” gives the best of both with “9.1875” (for a US case) and “20.0” for the UK. If you want a fixed number of places (for example, “20.00”), reconfigure the field (like “N2”) in the doc type designer.

4.5.5. Switch Invoice Type

Invoice Capture supports the invoice types switch functionality. In IAI 6.5, the invoice type is implemented as a read-only field and uses a shortcut key to switch the invoice types. Due to the Dispatcher behavior, the excluded fields (known as disabled in 6.5) for a particular invoice type cannot be hidden and can be set to only read-only in IAI 6.5. In Invoice Capture 7.1, the invoice type is implemented using combo box. The combo box will be initialized with the invoice types specified in the INI settings. The OOB invoice types are “PO Based” and “Non-PO Based”. When you switch the invoice type in 7.1, the excluded fields will be hidden; and the included fields (known as enabled in 6.5) will be shown.

The <Alt+I> shortcut key will switch the invoice type in a cycle. The 7.1 shortcut key is implemented as a hidden “Invoice Type” switcher button (as we cannot implement a shortcut key with no button).

When there are only one (or no) invoice type(s) specified in the INI settings, the combo-box becomes read-only.

4.5.6. Invoice / Credit

In IAI 6.5, the invoice / credit field is populated with the localized string of either “Invoice” or “Credit” based on the first non-blank value, in the following order:

1. Free form template name

2. Vendor country

3. INI setting "INVOICINGPACKAGE_INSTALLED"

In 7.1, the field “InvoiceCreditDebit” is implemented as an unlocalized hidden field. To avoid any country dependent code in Document Type scripting, this field will be formatted during the free form processing. Additionally, a new field named “IsInvoiceCredit” will be added to the document type form as a check box. You will edit only “IsInvoiceCredit” but not the “InvoiceCreditDebit” field. On DocumentUnload event, these fields will be synchronized. These are the values for these fields:

• If the document is a credit memo:

a. InvoiceCreditDebit value is "CREDIT”.

b. “IsInvoiceCredit” is checked.

Configuring the Captiva Invoice Capture Page 37 of 84

Page 38: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• If the document is an invoice:

a. InvoiceCreditDebit value is "INVOICE”.

b. “IsInvoiceCredit” is unchecked.

4.5.7. Handle Invoice Routing

Invoice Capture has three invoice validation queues:

• Validation

• InvoiceProblemQ

• WaitVendorQ

It also has ErrorQ queues (in 6.5, these were implemented with IndexPlus on batch and document levels).

The invoice can be routed between these three queues depending on different invoice status. In IAI 6.x, the invoice routing functionality is implemented using a shortcut key and routing dialog. With the new CaptivaDesktop features, the Invoice Capture routing implementation has been re-designed.

• Routing will be handled when the operator puts the document level flag(s) to indicate the invoice status. The workflow is based on the document flag information to route the invoice.

- IAI 6.x: The routing dialog can be brought up using the shortcut key on the “PoNumber” and “VendorId” fields. If these two fields are disabled, the routing dialog will also be disabled. There are two INI settings “ENABLE_PO_ROUTING” and “ENABLE_VENDOR_ROUTING” to decide if routing dialog can be brought up on the “PoNumber” and “VendorID” fields.

- Invoice Capture 7.1: The routing decision does not associate with any field. It associates with the status of the invoice document. Routing the invoice to the next step will be handled by workflow based on the invoice status specified in the document level flag.

These are the Invoice Capture OOB flags:

- Vendor not in the ERP system

-Supervisor review needed- Rejected due to page error

Note:

The “Process as new vendor” and “Export as one time vendor” 6.5 routing options will be implemented using a combo box field “vendor status” along with the vendor fields. The field will be editable only in Waiting for Vendor Queue.

• You can use “Ctrl+G” to display the flag selection dialog box. “Ctrl+G” is the default Captiva Desktop shortcut for displaying the flag dialog box. You can put one or multiple document flag(s) on the invoice document.

Configuring the Captiva Invoice Capture Page 38 of 84

Page 39: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• The document level flags are configurable in the Captiva Desktop step settings. The following IAI 6.5 routing

related INI settings will be removed in Invoice Capture 7.1:

- ENABLE_PO_ROUTING

- ENABLE_VENDOR_ROUTING

- OPTIONBLOCK1

- OPTIONBLOCK2

- OPTIONBLOCK3

• The followings table lists the IAI 6.5 routing options and the new Invoice Capture 7.1 routing behavior:

IAI 6.x Routing Option Invoice Capture 7.1 Document Flags

Invoice Capture 7.1 Behavior

Send to Invoice Problem Queue

Put “Supervisor review needed” flag

1) The user finds one or more fields in the invoice have issues and cannot be fixed.

2) The user puts the “Invoice has problem” document level flag on this invoice document.

3a) The user clicks the “Stop working on task” button and saves the changes. OR

3b) The user keys in the other fields and finishes the invoice.

4) The invoice document is finished in the current step.

5) The workflow will send the invoice to “Invoice Problem Queue”.

Key remainder of invoice and send to Invoice Problem Queue

Key remainder of invoice and send to Waiting for Vendor ID Queue

Put “Vendor not in the ERP system” flag

1) The user finds the vendor is missing and the vendor cannot be identified.

2) The user puts the “Invoice needs vendor information” document level flag on this invoice document.

Configuring the Captiva Invoice Capture Page 39 of 84

Page 40: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

IAI 6.x Routing Option Invoice Capture 7.1 Document Flags

Invoice Capture 7.1 Behavior

3) The user keys in the other fields and finishes the invoice.

4) The invoice document is finished in the current step.

5) The workflow will send the invoice to “Waiting for Vendor ID Queue”.

Reject the invoice and send to General Error Queue

Put “Rejected due to page error” flag

The user can send the invoice to the error queue immediately or key in the remainder fields and then send the invoice to the error queue.

Re-queue invoice for processing later

Not necessary The user clicks the “Continue later” button. The invoice will be re-queued in the current step.

Key remainder of invoice and send to Export

Not available After the user finishes keying in all the fields and all the fields are valid, the invoice will be sent to exports. All the fields must, at a minimum, be flagged as “Value is accepted”.

Remove previous routing decision

Remove the previously selected flag using the flag selection dialog (Ctrl+G) box

Send to Primary Validation Queue

Remove the other flags using the routing selection dialog (Ctrl+G) box

When an invoice has work remaining but no flags, it will be sent to the primary validation queue.

Send to Export Immediately

Not available

After the user finishes keying in all the fields and all the fields are valid, the invoice will be sent to exports. All the fields must, at a minimum, be flagged as “Value is accepted”.

Immediately process as one-time vendor

Not necessary

Vendor status: One time vendor.

In the “Waiting for Vendor ID Queue” step, the vendor status field will be displayed.

1) If the user selects “one time vendor” and keys in some or all vendor fields.

2) Finish the invoice.

3) The invoice document is finished in the current step.

4) The workflow will send the invoice to export as one-time vendor.

Key vendor information and process as one-time vendor

Re-queue for processing later as a new vendor

Not necessary

Vendor status field: new vendor.

In the “Waiting for Vendor ID Queue” step, the vendor status field will be displayed.

1) If the user selects “new vendor” and keys in some or all the vendor fields.

2) Finish the invoice.

3) The invoice document is finished in the current step.

Configuring the Captiva Invoice Capture Page 40 of 84

Page 41: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

IAI 6.x Routing Option Invoice Capture 7.1 Document Flags

Invoice Capture 7.1 Behavior

4) The workflow will re-queue this invoice in “Waiting for Vendor ID Queue”.

• You can put one or multiple document flags on an invoice. The following table specifies invoice routing based on the document flag(s):

Document Flags Invoice will be sent to:

Rejected due to page error Error Queue

Supervisor review needed Invoice Problem Queue

Vendor not in the ERP system Waiting for Vendor ID Queue

Rejected due to page error+ Supervisor review needed Error Queue

Rejected due to page error+ Vendor not in the ERP system Error Queue

Rejected due to page error+ Supervisor review needed+ Vendor not in the ERP system

Error Queue

Supervisor review needed+ Vendor not in the ERP system Invoice Problem Queue

• The document flag will not be automatically removed when the invoice routed from one queue to another. For example:

- The invoice is missing the vendor field. It is flagged with “Vendor not in the ERP system” and it is routed to Waiting for Vendor ID Queue.

- In Waiting for Vendor ID Queue, the document flag “Vendor not in the ERP system” is still with the invoice document until you remove it manually.

- After you fix the vendor information, you must manually remove the “Vendor not in the ERP system” flag to indicate that the issue has been resolved.

• Notes:

- In IAI 6.5, you cannot route the invoice to Waiting for Vendor ID Queue if any field other than the vendor fields is invalid. In Invoice Capture 7.1, you can flag the invoice with the document flag “Invoice need vendor info” even if the document contains an invalid field.

- In IAI 6.5, the invoice cannot use “Key reminder and send to Invoice Problem Queue” if the invoice is a duplicate invoice. In Invoice Capture 7.1, you can flag the invoice with the document flag “Supervisor review needed” if the invoice is a duplicate invoice.

4.5.8. Error queues

IAI 6.5 has two error queues which allow administrators to route batch or document in case of errors. Both queues are based on the IndexPlus module but one works at the batch level and handles all issues that occur before classification and another works at the document level and handles all issues that occur with documents.

Administrators have the following routing options if error occurs at the batch level:

• Delete the batch

Configuring the Captiva Invoice Capture Page 41 of 84

Page 42: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• Route the batch to one of the steps at or before the step where the error occurs. For example, if the error occurs on ClassificationEdit, route to one of the following:

- ImageEnhancement

- Classification

- ClassificationEdit

Administrators have the following routing options if the error occurs at the document level:

• Delete the document

• Route the document to one of the steps at or before the step where the error occurs. For example, if the error occurs on Validation, route to either Recognition or Validation.

Following fields are defined in Document Types Designer > Error Queue, used in the 7.1 error queue steps:

Group Field IA Values in the corresponding 6.5 IndexPlus index family

Tree level Type Comment

Routing decision

Route to workflow task

ErrorQueue_DocLevel.Level1_Index0

Batch level Drop down list

Save images

ErrorQueue_DocLevel.Level1_Index1

Document level

Check box If this option is checked, pass the image from the error queue to the routed step, otherwise use the original image.

Error information

All the fields in this section are read-only.

Flagged by user

ErrorQueue_DocLevel.Level1_Index2

Document level

Edit box These fields will be placed in the summary section in CaptivaDesktop In

processing step

ErrorQueue_DocLevel.Level1_Index3

Document level

Edit box

Date/Time (on server)

ErrorQueue_DocLevel.Level1_Index4

Document level

Edit box

Additional information

ErrorQueue_DocLevel.Level1_Index5

Document level

Edit box

Invoice information

All the fields in this section are read-only.

Invoice page

ErrorQueue_DocLevel.Level0_Index0

Page level Edit box It is removed in Invoice Capture7.1

PO Number ErrorQueue_DocLevel.Level1_Index6

Document level

Edit box

Vendor ID ErrorQueue_DocLevel.Level1_Index7

Document level

Edit box

Vendor name

Document level

Edit box New field in Invoice Capture7.1

Configuring the Captiva Invoice Capture Page 42 of 84

Page 43: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Group Field IA Values in the corresponding 6.5 IndexPlus index family

Tree level Type Comment

Invoice number

ErrorQueue_DocLevel.Level1_Index8

Document level

Edit box

Invoice date

ErrorQueue_DocLevel.Level1_Index9

Document level

Edit box

Account number

ErrorQueue_DocLevel.Level1_Index10

Document level

Edit box

PO Total ErrorQueue_DocLevel.Level1_Index11

Document level

Edit box

Invoice total ErrorQueue_DocLevel.Level1_Index12

Document level

Edit box

Company code

ErrorQueue_DocLevel.Level1_Index13

Document level

Edit box

Unique identifier

ErrorQueue_DocLevel.Level1_Index14

Document level

Edit box

There are three levels of error queues in Invoice Capture7.1 as against the two levels in 6.5:

• ErrorQueue_DocLevel – handles errors when document is classified (recognition, validation, etc.); the affected item is a single invoice.

• ErrorQueue_FolderLevel – handles errors at the folder level (for steps: image processing, classify, classify edit); the affected item is a classification task.

• ErrorQueue_BatchLevel –handles errors at the batch level (for steps: GetIniSettings, MergeAttachements); the affected item is the entire batch.

Note: Invoice information is shown only in ErrorQueue_DocLevel; in 6.5, the invoice fields were shown but were empty in the batch-level error queue.

This is how invoices can be routed to the error queue:

• In case of an error in the module (for example DPP is not found during classification).

• If the operator sets “Rejected due to page error” at the validation step.

• If the operator rejects a page (option in the menu or F3 button) at the ClassificationEdit step. Only rejected pages are shown in the document level ErrorQueue and only the “Delete document” option is available.

The following table lists the steps in CaptureFlow, the condition in each step that sends something to the error queue, the name of the error queue the item will be sent to and the options available to the error queue operator:

Step Conditions Error queue CompanyCode/Invoice information

Routing items

GetIniFileSettings GetIniFileSettings:7.ErrorCode <> 0

Note: By default, the

rrorQueue_BatchLevel

No/No Delete batch

Configuring the Captiva Invoice Capture Page 43 of 84

Page 44: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Step Conditions Error queue CompanyCode/Invoice information

Routing items

condition never happens since the .NET Code steps are configured to hold on error.

MergeAttachements

MergeAttachment:3.ErrorCode <> 0

NOTE: By default, the condition never happens since the .NET Code steps are configured to hold on error.

ErrorQueue_BatchLevel

Yes/No Delete batch

Image Processing ImageEnhance:0.ErrorCode <> 0

ErrorQueue_FolderLevel

Yes/No Delete batch

ImageProcessing

Classification Classif:0.ErrorCode <> 0

ErrorQueue_FolderLevel

Yes/No Delete batch

ImageProcessing

Classification

ClassificationEdit ClassEdit:0.ErrorCode <> 0

ErrorQueue_FolderLevel

Yes/No Delete batch (if batch level)

ImageProcessing (if batch level)

Classification (if batch level)

Delete document (if doc level)

ClassifyEdit:0.Rejected

ErrorQueue_DocLevel

Recognition Recognition:0.ErrorCode <> 0

ErrorQueue_DocLevel

Yes/No Delete document

Recognition

Validation Validation:0.ErrorCode <> 0

IndexOf ( Validation:1.DocFlag , "Validation_DocFlag_InvoiceError" , 0 , false ) >= 0

ErrorQueue_DocLevel

Yes/Yes Delete document

Recognition

Validation

Collector

ImageConverter

Standard Export

<step>:0.ErrorCode <> 0

ErrorQueue_DocLevel

Yes/Yes Delete document

Recognition

Validation

Collector

Configuring the Captiva Invoice Capture Page 44 of 84

Page 45: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Step Conditions Error queue CompanyCode/Invoice information

Routing items

APConnectExport

APConnectExport:1.ErrorCode <> 0 OR APConnectExport:1.ErrorNumber <> 0

<ImageConverter/Exporter where error occurs>

SAPArchive

DCTMExport

<step>:1.ErrorCode <> 0 OR <step>:1.ExportResult

4.5.8.1. Implementation

CaptivaDesktop replaces obsolete IndexPlus. To show the appropriate fields (see the table above), there is ErrorQueue document type which is used by all the error queues.

A separate ErrorQueue is created using the department feature of CaptivaDesktop, similar to Validation, WaitForVendor and InvoiceProblem queues.

Figure 1: Batch and Folder levels error queues UI

Configuring the Captiva Invoice Capture Page 45 of 84

Page 46: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Figure 2: Document level error queue UI

4.5.9. Field Label and Validation Error Message Localization

The field labels and validation error messages are localized in Invoice Capture. In IAI 6.5, Dispatcher Edits does not have the capability to handle localization. The localized strings have to be loaded into the VBA Edits code from the external resource files using IAISettings.dll. The Invoice Capture7.1 Document Type scripting source code is VB .NET project. The resource files are a part of the VB.NET project and are compiled as resource DLLs.

Invoice Capture uses the same logic as Captiva Desktop to determine which language strings to be displayed in UI. This means that the strings in Captiva Desktop UI (both Captiva Desktop strings and Invoice Capture strings) are in the same language. The culture determines which localized language string will be displayed in UI and it is identified in the following order:

- The culture code specified in the command line for the Captiva Desktop module.

- The culture code based on the Windows UI Language.

Case1:

1. The culture code specified in the Captiva Desktop command line is “de-DE”.

2. The Windows UI language is FR.

3. The field label and the error messages will be in German.

Case 2:

1. There is no culture code specified in the Captiva Desktop command line.

2. The Windows UI Language is FR.

3. The field label and the error messages will be in French.

Case 3:

1. There is no culture code specified in the Captiva Desktop command line.

Configuring the Captiva Invoice Capture Page 46 of 84

Page 47: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

2. The Windows UI Language is Arabic, which is not a supported country for Captiva Desktop and Invoice Capture.

3. The field label and the error messages will be in English, which is the fallback .NET resources language.

4.5.10. Finish Recognition task without errors

In 6.5, it was possible to skip the validation step if the document is correct and line matcher was applied automatically. Invoice Capture supports this possibility. Invoice Capture 7.1 skips the validation step when:

• Document contains no error in fields.

• Document contains no fields that require confirmation.

• Line matcher was either applied automatically or was skipped because line matching is disabled.

When the Document Type script unloads a document, it sets an external Invoice Capture value named “IsInvoiceReadyForExport”. This value is true if the invoice can be exported with no further validation. Otherwise, this external value is false. The Invoice Capture process checks this external value and skips the validation step when the value is true.

4.5.11. Finished Validation task with unresolved validation errors

In the previous versions, there was no possibility to finish validation task until there is a validation error. In Invoice Capture 7.1, Captiva Desktop allows finishing such tasks. But Invoice Capture cannot export documents that contain errors to the backend accounting system. Invoice Capture 7.1 returns the “incomplete” documents back to the validation step. Invoice Capture returns the documents to the validation step in the following cases:

• The document contains an error in one of the fields and this field is not marked with the “Value is accepted” flag.

• The document contains one of the fields that requires confirmation.

• The document is pending for the line matcher run.

When the validation script unloads a document, it checks all these cases. If any of these cases are present in the document, the script sets an external Invoice Capture value named “IsInvoiceReadyForExport” to false. Otherwise, this external value will be set to true. The Invoice Capture process checks this external value and returns the document to the validation step when the value is false.

5. Document Type Scripting Overview

The 7.1 Document Type Scripting contains the implementation of Document Extracted event, Validation Rules, UI event handling. It is shipped as a VB.NET source code and compiled binary form.

The source code is located in:

[My Documents]\Captiva 7.0\Invoice Capture\Script Sources

Note: You can also find a master copy of the source code in: %IAI_ROOT%\ Invoice Capture\Script Sources.

The binaries, the Custom.InputAccel.UimScript.dll is located in:

[My Documents]\\Captiva 7.0\Invoice Capture\Bin\Custom.InputAccel.UimScript.dll

It is delivered to the client machines when tasks are processed via IA Server. This is provided by the System Designer global options, as shown in this screen shot:

Configuring the Captiva Invoice Capture Page 47 of 84

Page 48: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The following is the Script Sources folder and file structure:

[My Documents]\Captiva 7.0\Invoice Capture\Script Sources\ Invoice Capture.sln

Code Module\ Profile Scripts\

CheckAmounts.vb Custom.InputAccel.UimScript.vbproj ScriptErrorQueue.vb ScriptInvoice.Calculator.vb ScriptInvoice.InvStatus.vb ScriptInvoice.LineMatcher.vb ScriptInvoice.PopulationRules.vb ScriptInvoice.Ux.vb ScriptInvoice.Validator.vb ScriptInvoice.vb ScriptInvoice.WorkflowLogic.vb ScriptMain.vb ImageProcessor\

ImageProcessor.vb Infrastructure\

ErrorHandler.vb FailMessageAttribute.vb FailMessageException.vb Field.vb IaiInvoiceData.vb Ini.vb

Configuring the Captiva Invoice Capture Page 48 of 84

Page 49: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

ScriptInvoice.FieldsIntelliSense.vb ScriptInvoice.FieldsIntelliSenseWithIniSupport.vb

My Project\ Resources\

FieldLabels.*resx IAIStringResources.vbproj Resources.*resx ValidationFailMessage.*resx My Project\

The following section provides a short description of each source file and a class diagram of the files. The diagrams show only the most valuable members of the files.

• “Invoice Capture.sln” is at the sources root folder. It is the Microsoft Visual Studio 2010 solution file that consists of three VB.NET (.NET 3.5) projects: IAICodeModule.vbproj, Custom.InputAccel.UimScript.vbproj, and IAIStringResources.vbproj.

• The “Code Module\” folder contains the IAICodeModule.vbproj source files that are out of scope of this document. The Code Module implementation details are described in the 7.1 Workflow Implementation document.

• The “Profile Scripts” is the VB.Net project folder for the sources of the Custom.InputAccel.UimScript.dll. The deployment design for this DLL is mentioned above; for more details, refer the Captiva Capture guide. The consumers of this DLL are the:

o Validation and error queue steps (Captiva Desktop)

o Recognition step (Captiva Extraction)

o Image Processor step (not OOTB, only in the case you implement the Custom.InputAccel.UimFilterScript namespace; see below)

Apart from subfolders, the folder also contains 11 vb files and 1 vbproj file:

• CheckAmount.vb is a helper class that uses a non-zonal, non-freeform approach to extracting totals fields. It is called on the Document Extracted event:

• Custom.InputAccel.UimScript.vbproj is the Visual Studio project file for the Scripting dll.

Configuring the Captiva Invoice Capture Page 49 of 84

Page 50: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptErrorQueue.vb it is a code behind the ErrorQueue Document Type. Effectively, it exposes the Workflow Steps drop-down list to ask the administrative user where to route the task.

• ScriptInvoiceCalculator.vb implements formulas for cross check validation. Its methods just return a calculation, but never change fields.

Configuring the Captiva Invoice Capture Page 50 of 84

Page 51: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.InvStatus.vb is a helper class. It accumulates data for one specific operation: Undo Company Code changes after a UI prompt.

• ScriptInvoice.LineMatcher.vb is a wrapper around LineMatcher.dll

• ScriptInvoice.PopulationRules.vb implements population methods described in the “Invoice Capture Population Rules” section. In order to prevent triggering the same population rules twice, there are two public methods in the class. BeginChangeFields collects all the triggered fields, while EndChangeFields invokes the affected population methods:

Public Sub BeginChangeFields() ' Clear list of populated fields _collector.ClearPopulatedFields() End Sub Public Sub EndChangeFields() For Each populatedField In collector.GetPopulatedFields() ' Run population rules for each changed field RunRules(populatedField) Next End Sub

Configuring the Captiva Invoice Capture Page 51 of 84

Page 52: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Configuring the Captiva Invoice Capture Page 52 of 84

Page 53: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.Ux.vb implements the localization staff and the UI event handlers, such as button click, drop-down selection change, UI form text change, focus enter, and focus exit.

Additionally, this file defines sets of population rules that are triggered from UI:

Configuring the Captiva Invoice Capture Page 53 of 84

Page 54: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.Validator.vb implements the Validation Rules handlers that are defined in Document Designer and described in the "Invoice Capture Validation Rules" section.

Configuring the Captiva Invoice Capture Page 54 of 84

Page 55: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.vb is the entry point of the “Invoice” document type scripting. To ensure maintainability, the Validation and UI methods effectively do nothing, but redirect the handling to the above described classes.

o ScriptInvoice.Validator

o ScriptInvoice.Ux

o ScriptInvoice.LineMatcher

Configuring the Captiva Invoice Capture Page 55 of 84

Page 56: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Configuring the Captiva Invoice Capture Page 56 of 84

Page 57: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.WorkflowLogic.vb encapsulates the workflow decision methods.

Configuring the Captiva Invoice Capture Page 57 of 84

Page 58: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptMain.vb just implements UimScriptMainCore according to the Profile Scripting pattern.

• The “Profile Scripts\ImageProcessor” subfolder contains one file: ImageProcessor.vb that is a commented out stub for the Image Processor scripting. This is not used by the OOTB product. ' This is a template for Image Processor script. ' To use it the namespace must be uncommented ' Namespace Custom.InputAccel.UimFilterScript

This stub is useful for customers who want to use both the Document Type and Image Processor scripting. The stub demonstrates how to include both the scripting into one Custom.InputAccel.UimScript.dll. The highlight here is that the two scriptings have different VB.NET namespaces.

- Custom.InputAccel.UimScript

- Custom.InputAccel.UimFilterScript

In order to accomplish this, the empty Root namespace in the VB.NET project properties is used.

• The “Profile Scripts\Infrastructure” subfolder contains eight auxiliary files to facilitate accessing the Invoice Capture environment.

Configuring the Captiva Invoice Capture Page 58 of 84

Page 59: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ErrorHandler.vb writes debugging messages to the standard Profile Scripting trace log.

• FailMessageAttribute.vb inherits the standard .NET method attribute. This attribute decorates each Validation Rule handler. Effectively, it helps to map a given Validation Rule to the corresponding error message from a .NET resource file.

• FailMessageException.vb inherits the standard .NET ApplicationException. Each validation rule, when fails, throws this exception type.

• Field.vb implements a strongly typed wrapper around IUimFieldDataContext and defines the arithmetical operations against these strongly typed wrappers. So, the fields could be calculated and set as natural expressions:

field1 = field2 + field3

• IaiInvoiceData.vb defines a class to access IaiUtilities.dll (Invoice DB pick lists), LineMatcher.dll, and the ERP backend (via IASI interface):

Configuring the Captiva Invoice Capture Page 59 of 84

Page 60: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• Ini.vb provides a quick access to the strongly typed IAISettings.ini values. The Ini class provides access only to those values that are used in the validation logic.

Configuring the Captiva Invoice Capture Page 60 of 84

Page 61: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Configuring the Captiva Invoice Capture Page 61 of 84

Page 62: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.FieldsIntelliSense.vb defines a basic class for the Validator, LineMatcher and Ux classes. It defines the set of strongly typed “Field” properties so that the inheritors can code the business logic in the natural form. For example:

InvoiceTotal = InvoiceSubtotal + InvoiceTaxAmount

The class defines not all the fields, but only those that are potentially used in scripting:

Configuring the Captiva Invoice Capture Page 62 of 84

Page 63: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• ScriptInvoice.FieldsIntelliSenseWithIniSupport.vb defines a class that extends the FieldsIntelliSense with the Invoice environment specific methods (while the basic class does not have any Invoice dependencies). It provides three helper methods for working with the current

Configuring the Captiva Invoice Capture Page 63 of 84

Page 64: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

Invoice Type (PO Based, Non-PO Based, or Custom) selection.

• The “Profile Scripts\My Project\” subfolder is auto-generated by Microsoft Visual Studio and does not contain any Invoice code.

• The “Resources\” subfolder contains localization string resources. The resources are implemented as a separate VB.NET project. Output of this project is the English fallback resource DLL and a set of satellite DLLs (one DLL for each language). So, if you customize string resources or add a new language to the project, you should manually replace files installed by the Client Framework with:

o IAIStringResources.dll to be placed to %CBDIR%

o IAIStringResources.resources.dll (for each UI language) to be placed to the corresponding language subfolder, for example to %CBDIR%\de\

This is a standard .NET localization technique. See more about this technique in the MSDN documentation: http://msdn.microsoft.com/en-us/library/s9ckwb4b(v=vs.90).aspx The consumers of these resources are:

o Classification Edit (to present the “Invoice Number” label)

o Captiva Extraction step (to rise the Invoice validation messages)

o Captiva Desktop steps (to present the Invoice and error queue forms)

o .NET Code steps (in the part of preparing Captiva Desktop flags labels) Note: The .NET Code step is different. In contrast to the above three modules, it is unattended and can work on a remote server as a Windows service. So it is designed to work with string resources differently. When the .NET Code module prepares the flags localization for Desktop, it does not rely on the UI language of the current user (because the user could be a service). The .NET Code scripting determines the culture for the Desktop flags in the followings order. The first non-blank value is used:

- DEFAULT_FLAG_CULTURE

- DEFAULT_INVOICE_CULTURE

- UI Language of the .NET Code module user.

See also: 7.1 Captiva Invoice Capture Guide > Configuring Invoice Capture > Configuring Captiva Desktop > Localizing Flags

• FieldLabels.*resx contains the localization strings for the Captiva Desktop field labels, buttons, and

tooltips. • IAIStringResources.vbproj is the auto-generated VB.NET project file.

Configuring the Captiva Invoice Capture Page 64 of 84

Page 65: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• Resources.*resx contains extra localization strings for the Captiva Desktop pick lists, drop-down lists, flags and for descriptions (used in Error Queue multiline text box).

• ValidationFailMessage.*resx contains the localization strings for the Captiva Desktop and Captiva Extraction validation error messages.

6. The Invoice Capture Client Framework

A part of the Captiva Invoice Capture client framework includes a set of DLLs for database connection; data retrieval, and line matcher operation. This section explains these DLLs from the scripting point of view, focusing on how the Captiva Invoice Capture scripting uses these DLLs.

All the DLLs (except the Custom.InputAccel.UimScript.dll explained in the previous chapter) are installed directly to %CBDIR% to each client machine as a part of the Invoice Capture client framework.

6.1. ASIAPI Library

The ASI (Accounting System Integration) COM interface is mainly a communication layer for the various connectors. ASIAPI is implemented as a DLL. There are currently three connectors supported by ASIAPI: ASIODBC, ASISAP, and ASICACHE. ASIAPI loads one or more of these DLLs during initialization, as determined by the INI value CONNECTOR. The possible values are ODBC, CACHE, and SAP.

There are several interfaces defined within the ASIAPI object. They are self-explanatory.

• IASI - main interface

• IPO - purchase orders

• IPOLineItem - purchase order line items

• IVendor - vendors/suppliers

• IVendorBankInfo - bank information of vendor

• IInvoice - invoices

• IInvoiceLineItem - invoice line items

• ICompanyCode - company code

• ICompanyCodeList - a list of company codes

As shown in the following diagram, each interface contains a number of methods to get (or set) the desired data from the backend ERP systems.

Configuring the Captiva Invoice Capture Page 65 of 84

Page 66: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

6.1.1. Using ASIAPI Library in Captiva Invoice Capture

In order to use ASIAPI library in Captiva Invoice Capture, interop.asiapi.dll is referenced in Custom.InputAccel.UimScript.dll. The public variable “Asi” in the IaiInvoiceData.vb file is used for the ASI to call the “connect” method and the other ASI functions.

This section provides a brief explanation of the ASIAPI Library Functions.

6.1.1.1. ASI.FindPO

To find PO info from the ERP system, pass the PO number into the function “ASI.FindPO”. This returns a PO object. Then call the “PO.GetValue” function to get various kinds of PO information. The return type for the “PO.GetValue” function is a string.

In the UIMScript, “FindPO” is used in IAInvoiceData.vb.

Configuring the Captiva Invoice Capture Page 66 of 84

Page 67: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

po = Asi.FindPO(poNumber) If po IsNot Nothing Then result = True poTotalText = po.GetValue(POValueKey.poTotalAmount) poVendorId = po.GetValue(POValueKey.poVendorId) poCompanyCode = po.GetValue(POValueKey.poCoCode) poCurrency = po.GetValue(POValueKey.poCurrency)

Following are the possible PO value keys for the “PO.GetValue” function. After the interop.ASIAPI library is referenced in UimScript, these key values (enumerations) become accessible via VB IntelliSense. poCashDisc, poCoCode, poCreatedBy, poCreatedOn, poCurrency, poCustom1, poCustom2, poCustom3, poCustom4, poCustom5, poCustom6, poCustom7, poCustom8, poCustom9, poCustom10, poCustomer, poDiffInv, poDocDate, poDscnt1To, poExchRate, poItemIntvl, poLanguage, poLastEnum, poLastItem, poNumber, poPmnttrms, poPurchOrg, poPurGroup, poSalesPers, poStatus, poSubTotal, poTelephone, poTotalAmount, poVendName, poVendorId

6.1.1.2. ASI.GetCompanyCodes

To get the list of company codes, call the “ASI.GetCompanyCodes” function.

To get a company object, pass the index to the “CompanyCodeList.GetCompany” function. To get the company code, call “Company.Code” function. To get company name, call the “Company.Name” function. The other possible key value for the “Company” object is “AccountingPeriodFirstDay”.

6.1.1.3. ASI.SetCurrentCompCode

To set a current company code, pass the company code into the “ASI.SetCurrentCompCode” function.

The “SetCompanyCode” function is called right before the “GetPOInfo” function to pass the current company code to the ASI layer, because both the company code and PO number are required for ASI to find the PO objects. The “ASI.FindPO” function has only PO number as a parameter.

6.1.1.4. ASI.FindVendorByOneField

To find a vendor based on a specific vendor field, pass the company code, search string and column to search into the function “ASI.FindVendorByOneField”. It will return the number of vendors that meet the search criteria.

The input parameter “sCompanyCode” is the company code for the current invoice. The input parameter “sSearchString” contains the string that is used to perform the search. The input parameter “sColumnToSearch” specifies name of the field to be searched in the ERP database. It can contain any one of the vendor fields.

The search string “sSearchString” may contain an asterisk (*) as a wildcard character. When * is specified, the function returns the total number of vendors in the accounting system. When *100* is specified, the function returns the number of vendors that contain '100' in the vendor field specified by “sColumnToSearch”. When 100* is specified, the function returns the number of vendors that begin with '100' in the vendor field specified by “sColumnToSearch”. When *100 is specified, the function returns the number of vendors that end with '100' in the vendor field specified by “sColumnToSearch”.

The possible values for “sColumnToSearch” are: vendorID, vendorCompCode, vendorCompany, vendorAddress, vendorCity, vendorDistrict, vendorPOBox, vendorRegion, vendorPostalCode, vendorCountry, vendorPhone, vendorFax, vendorLanguage, vendorInternet, vendorPmntTerms, vendorCustom1, vendorCustom2, vendorCustom3, vendorCustom4, vendorCustom5, vendorCustom6, vendorCustom7, vendorCustom8, vendorCustom9, vendorCustom10, vendorPOBoxPostalCode, vendorVATID, vendorTaxNumber1

Configuring the Captiva Invoice Capture Page 67 of 84

Page 68: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

6.1.1.5. ASI.FindVendorByAllFields

To find a vendor based on all vendor fields, pass the company code and search string into the function “ASI.FindVendorByAllFields”. It will return the number of vendors that meet the search criteria.

The input parameter “sCompanyCode” is the company code for the current invoice. The input parameter “sSearchString” contains the string that is used to perform the search.

The search string “sSearchString” may contain an asterisk (*) as a wildcard character. When * is specified, the function returns the total number of vendors in the accounting system. When *100* is specified, the function returns the number of vendors that contain '100' in any vendor field. When 100* is specified, the function returns the number of vendors that begin with '100' in any vendor field. When *100 is specified, the function returns the number of vendors that end with '100' in any vendor field.

6.1.1.6. ASI.GetVendor

To get a vendor object, pass index into the function “ASI.GetVendor(index)”. It will return the vendor object at the “index” position in the list of vendors found during the last call to find a vendor.

6.1.1.7. ASI. IsDuplicateInvoice

Use to find out if an invoice is a duplicate invoice based on the company code, vendor ID, invoice number, currency and invoice total. This function returns true if the invoice is a duplicate invoice, otherwise it returns false.

6.1.1.8. ASI.IsDuplicateInvoiceAllowed

Use to find out whether a duplicate invoice is allowed or not. This function returns true if the duplicate invoice is allowed, otherwise it returns false.

6.1.1.9. ASI.FindPurchaseOrders

Use to find all purchase orders for a specified vendor. This function returns a collection of PO objects

6.1.1.10. ASI.IsSearchPatternAcceptable

Use to find out if a wildcard can be processed by ERP. This function returns true if the wildcard is acceptable, false otherwise.

6.1.1.11. ASI. ASI.GetPO

Use to get PO object from a collection of PO by index.

6.2. Line Matcher Library

The Line Matcher library contains two sets of functions that can be used in scripting. The Line Matcher library is implemented as a .NET assembly. LineMatcher.dll is installed in the default folder <Path to client install>\Client\binnt when you install Captiva Invoice Capture.

• The Line Matcher engine functions auto match the invoice line items and save the matched items. This function will be used only in the Recognition step.

• The Line Matcher user interface is a Windows dialog box. The UI contains a single function “ShowDialog” which displays the Line Matcher window. The “ShowDialog” function parameters include an Invoice object, a flag that tells the line matcher to automatically match items as soon as it is displayed, and the decimal separator to be used in the UI. It returns whether the line match is successful or not. This function will be used only in the Validation step.

Configuring the Captiva Invoice Capture Page 68 of 84

Page 69: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

In the Recognition step, the auto matcher will be performed if line matching is enabled. If the invoice line items can be auto-matched, the matched line items are saved.

In the Validation step, if the line items are not matched during the Recognition step, the Line Matcher window is automatically invoked when validation is done or manually using the shortcut key [Alt]-[L].

The Line Matcher UI contains four list controls for displaying unmatched invoice items, unmatched PO items, G/L accounts and cost centers, and matched line items. The Line Matcher also contains some buttons in the center of the window. These buttons are for matching selected items, assigning G/L accounts and cost centers, editing items, unmatching items, etc. The buttons are enabled and disabled depending on the state of the selections in the list boxes.

You can sort each of the list view controls and reorder the columns. This option is also available in the user’s settings.

There is also an auto-sort feature which is enabled using the checkbox located above the unmatched PO Items List. This feature sorts the PO items based on the best match, to the selected invoice item.

Line item editing is possible by selecting an item in the Matched Line Items list and clicking the Edit Item button. This displays a dialog box that lets you modify the quantity, unit price, and discount values. The line amount is calculated.

6.2.1. Refer Line Matcher Library in Custom.InputAccel.UimScript.dll

In order to use the Line Matcher library, it is referenced in Custom.InputAccel.UimScript.dll.

To use the LineMatcher object, UimScript creates two variables:

Configuring the Captiva Invoice Capture Page 69 of 84

Page 70: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

• LineMatcherEngine • LineMatcherUI

These objects are instantiated and initialized in the “Environment ” class constructor. Repository.RegisterType(Of ILineMatcherEngine, LineMatcherEngine)() Repository.RegisterType(Of ILineMatcherUI, LineMatcherUI)()

6.2.2. Line Matcher Functions

6.2.2.1. LineMatcherEngine.AutoMatch and ApplyMatches

The “AutoMatch” function parameters include an Invoice object, decimal, and thousand separators that are used by the invoice amounts. This function tries to match all the line items and it will return true if all line items are matched.

The “ApplyMatches” function does not take any parameters. It will save all matched items information into the Invoice object. It will be called only when the auto match is successful.

Both functions are called only in the Recognition step from Custom.InputAccel.UIMScript.dll engine.AutoMatch(invoice, decimalSeparator, thousandsSeparator) engine.ApplyMatches()

6.2.2.2. LineMatcher.ShowDialog

The “ShowDialog” function parameters include an Invoice object, a flag that tells the Line Matcher to automatically match items as soon as it is displayed, and the decimal and group separators to be used in the dialog box.

In Custom.InputAccel.Uimscript.dll, the function is called in ScriptInvoice.LineMatcher.vb ui.ShowDialog(invoice, Ini.AutoMatchItems, decimalSeparator, groupSeparator, bForceDisplay)

The input parameter “invoice” is an Invoice object that is defined as part of the ASIAPI component. The input parameter “Ini.AutoMatchItems” tells the Line Matcher to automatically match items or not; the possible values are 1 (automatically match items) and 0 (do not automatically match items). The input parameters “decimalSeparator” and “groupSeparator” specify the decimal and group (thousand) separators to be used in the dialog box, possible values are “.” “,”.

In UimScript, the code to create an invoice object to pass data to Line Matcher is in “CurrentDocToInvoice” function, which is defined in ScriptInvoice.LineMatcher.vb.

Private Function CurrentDocToInvoice() As Invoice

Dim invoice As New Invoice Dim line As InvoiceLineItem Dim i As Integer ' Add primary fields to the invoice object invoice.SetValue(InvValueKey.invCompCode, CompanyCode) invoice.SetValue(InvValueKey.invPONumber, PoNumber) invoice.SetValue(InvValueKey.invVendorId, VendorID) invoice.SetValue(InvValueKey.invVendorName, VendorName) invoice.SetValue(InvValueKey.invSubTotal, DecToStr(InvoiceSubtotal)) invoice.SetValue(InvValueKey.invInvoiceTotal1, DecToStr(InvoiceTotal)) invoice.SetValue(InvValueKey.invDebitCredit, GetStr(IsInvoiceCredit.FieldName)) For i = 0 To RowCount - 1 ' Create a line item object. line = New InvoiceLineItem line.SetValue(InvLIValueKey.invLiPONumber, ItemPo(i)) line.SetValue(InvLIValueKey.invLiLineNumber, i.ToString(CultureInfo.InvariantCulture)) line.SetValue(InvLIValueKey.invLiItemText, ItemDescription(i)) line.SetValue(InvLIValueKey.invLiUnitMeasure, ItemUom(i)) line.SetValue(InvLIValueKey.invLiQuantityShipped, DecToStr(ItemQuantity(i)))

Configuring the Captiva Invoice Capture Page 70 of 84

Page 71: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014 line.SetValue(InvLIValueKey.invLiLineNet, DecToStr(ItemUnitPrice(i))) line.SetValue(InvLIValueKey.invLiItemAmount, DecToStr(ItemAmount(i))) line.SetValue(InvLIValueKey.invLiPoPrQnt, DecToStr(ItemUnitPriceQuantity(i))) line.SetValue(InvLIValueKey.invLiDiscount, DecToStr(ItemDiscountRate(i))) line.SetValue(InvLIValueKey.invLiNetUnitPrice, DecToStr(ItemNetUnitPrice(i))) line.SetValue(InvLIValueKey.invLiLinePO, PoMatchItemNumber(i)) line.SetValue(InvLIValueKey.invLiGlAccount, PoMatchGlAccount(i)) line.SetValue(InvLIValueKey.invLiCostCenter, PoMatchCostCenter(i)) line.SetValue(InvLIValueKey.invLiPoPriceUnitMeasure, PoMatchPriceUnitMeasure(i)) line.SetValue(InvLIValueKey.invLiTaxCode, ItemTaxCode(1)) line.SetValue(InvLIValueKey.invLiCustom1, ItemCustom1(i)) line.SetValue(InvLIValueKey.invLiCustom2, ItemCustom2(i)) line.SetValue(InvLIValueKey.invLiCustom3, ItemCustom3(i)) line.SetValue(InvLIValueKey.invLiCustom4, ItemCustom4(i)) line.SetValue(InvLIValueKey.invLiCustom5, ItemCustom5(i)) line.SetValue(InvLIValueKey.invLiCustom6, ItemCustom6(i)) line.SetValue(InvLIValueKey.invLiCustom7, ItemCustom7(i)) line.SetValue(InvLIValueKey.invLiCustom8, ItemCustom8(i)) line.SetValue(InvLIValueKey.invLiCustom9, ItemCustom9(i)) line.SetValue(InvLIValueKey.invLiCustom10, ItemCustom10(i)) ' Add the line item to the invoice. invoice.AddLineItem(line) Next i Return invoice End Function

6.3. IAI Utilities Library

The IAI Utilities library “IAIUtilities.dll” provides functionality for Invoice Capture pick lists: company code, country, currency, G/L account, Purchase Order (PO) data, tax code, and vendor info.

The pick list dialogs are used during validation to allow the operator to select the company code, country, currency, G/L account, tax code, PO, and vendor. Each pick list dialog box is associated with a shortcut key that displays the dialog box.

The information used to display in the pick list is stored in either the Invoice Database or the ERP system. The columns that are displayed and the displayed names of the columns can be customized to suit the customer’s needs, but you cannot change the table schema. The Vendor and PO information is retrieved by the pick lists using the ASI connection in Captiva Invoice Capture.

IAIUtilities.dll is installed in <Path to client install>\Client\binnt for a default Invoice Capture installation.

In order to use “IAIUtilities.dll” library in a UimScript, “IAIUtilities.dll” is referenced in UimScript.

In UimScript, several global variables are declared for the pick lists and the corresponding properties (accessors) are used:

Public Shared ReadOnly Property CompanyCodeList As ICompanyCodeList

Get Return Environment.Instance.CompanyCodeList End Get End Property Public Shared ReadOnly Property CompanyPicker As ICompanyPicker Get Return Environment.Instance.CompanyPicker End Get End Property Public Shared ReadOnly Property CurrencyPicker As ICurrencyPicker Get Return Environment.Instance.CurrencyPicker

Configuring the Captiva Invoice Capture Page 71 of 84

Page 72: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014 End Get End Property Public Shared ReadOnly Property TaxCodePicker As ITaxCodePicker Get Return Environment.Instance.TaxCodePicker End Get End Property Public Shared ReadOnly Property CountryPicker As ICountryPicker Get Return Environment.Instance.CountryPicker End Get End Property Public Shared ReadOnly Property VendorPicker As IVendorPicker Get Return Environment.Instance.VendorPicker End Get End Property

Public Shared ReadOnly Property PurchaseOrderViewer As IPurchaseOrderViewer Get Return Environment.Instance.PurchaseOrderViewer End Get End Property

The pick list objects are initialized at the first call.

Public ReadOnly Property CompanyPicker As ICompanyPicker Get If _companyPicker Is Nothing Then _companyPicker = Repository.Get(Of ICompanyPicker)() End If Return _companyPicker End Get End Property

You should not un-initialize the pick list objects.

6.3.1. Company Code Pick List

In the Validation step, the following company code pick list is invoked by the shortcut key [Alt]-[C].

Configuring the Captiva Invoice Capture Page 72 of 84

Page 73: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The company code pick list is implemented in the “CompanyPicker” class.

In validation, if the operator activates the shortcut key for the company code pick list, the function “ShowCompanyDialog” is executed. This queries the ASI subsystem and generates a list of company code and company name information, creates a dialog populated with this list, and allows the operator to select a single value. The function returns the selected company code if the operator makes a selection; it returns Nothing if the operator cancels the operation.

pickedValue = IaiInvoiceData.CompanyPicker.ShowCompanyDialog(Resources.Title_CompanyCodePickList, currentValue)

The input parameter “Resources.Title_CompanyCodePickList” specifies the title bar text for the pick list. The title of the company code pick list can be customized in IAIStrings.dll. The second input parameter is a current content of the text box. This parameter is used for filtering the collection of companies.

In UimScript, the following function is defined in Scriptinvoice.Ux.vb.

Public Sub HandleCompanyPicker(ByVal controlContext As IUimFormControlContext) Dim v As Validator Dim currentValue As String Dim pickedValue As String Dim pickedCompanyName As String Dim textBox As IUimFormControlContext If IsExcluded(CompanyCode) OrElse Not Ini.UseAcctSys Then Exit Sub ' if the focus is on the CompanyName, then use the text box content as a filter ' In all other cases use CompanyCode as a filter If _currentControlName = CompanyName.FieldName Then textBox = _formContext.FindControl(CompanyName.FieldName) currentValue = textBox.Text Else textBox = _formContext.FindControl(CompanyCode.FieldName) currentValue = textBox.Text End If pickedValue = IaiInvoiceData.CompanyPicker.ShowCompanyDialog(Resources.Title_CompanyCodePickList,

currentValue) If pickedValue IsNot Nothing AndAlso pickedValue <> "" Then pickedCompanyName = Nothing If IaiInvoiceData.CompanyPicker.GetCompanyName(pickedValue, pickedCompanyName) Then

Configuring the Captiva Invoice Capture Page 73 of 84

Page 74: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014 _invoiceStatus.SetPreviousCompanyValues(CompanyCode, CompanyName) v = BeginUxFieldsChange() v.CompanyCode = pickedValue v.CompanyName = pickedCompanyName EndUxFieldsChange() End If End If End Sub

6.3.2. Country Pick List

In the Validation step, the country pick list is invoked by the shortcut key [Alt]-[Y].

The country pick list is implemented in “CountryPicker” class.

In validation, if the operator activates the shortcut key for the country pick list, the function “ShowCountryDialog” is executed. This queries the Invoice Capture database and generates a list of countries and their related information, creates a dialog populated with this list, and allows the operator to select a single value. The function returns the selected country if the operator makes a selection; it returns Nothing if the operator cancels the operation.

pickedValue = IaiInvoiceData.CountryPicker.ShowCountryDialog(Resources.Title_CountryPickList, currentValue)

The input parameter “Resources.Title_CountryPickList” specifies the title bar text for the pick list. The title of the country picker list can be customized in IAIStrings.dll. The second input parameter is an empty string. This parameter is used for filtering of the collection of companies.

Configuring the Captiva Invoice Capture Page 74 of 84

Page 75: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

In UimScript, the following function is defined in Scriptinvoice.Ux.vb.

Public Sub HandleVendorCountryPicker()

Dim v As Validator Dim pickedValue As String Dim currentValue As String Dim textBox As IUimFormControlContext

If IsExcluded(VendorCountry) OrElse CurrentValidationQueue <> WorkflowLogic.WaitVendorIdStepName Then Exit Sub

textBox = _formContext.FindControl(VendorCountry.FieldName) currentValue = textBox.Text ' Vendor picker on vendor country field for "Wait for vendor Id queue"

pickedValue = IaiInvoiceData.CountryPicker.ShowCountryDialog(Resources.Title_CountryPickList, currentValue)

If pickedValue IsNot Nothing Then v = BeginUxFieldsChange() v.VendorCountry = pickedValue EndUxFieldsChange() End If End Sub

6.3.3. Currency Pick List

In validation, the currency pick list is invoked by the shortcut key [Alt]-[R].

The currency pick list is implemented in the “CurrencyPicker” class.

In validation, if the operator activates the shortcut key for the country picker, the function “ShowCurrencyDialog” is executed. This queries the Captiva Invoice Capture data source and generates a list of currencies and their related information, creates a dialog populated with this list, and allows the operator to select a single value. The function returns the selected currency if the operator makes a selection; it returns Nothing if the operator cancels the operation.

pickedValue = IaiInvoiceData.CurrencyPicker.ShowCurrencyDialog(Resources.Title_CurrencyPickList, currentValue)

Configuring the Captiva Invoice Capture Page 75 of 84

Page 76: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The input parameter “Resources.Title_CurrencyPickList” specifies the title bar text for the pick list. The title of the currency pick list can be customized in IAIStrings.dll. The second input parameter is an empty string. This parameter is used for filtering the currency collection.

In the UimScript, the following function is defined in ScriptInvoice.Ux.vb.

Public Sub HandleCurrencyPicker(ByVal controlContext As IUimFormControlContext)

Dim v As Validator Dim pickedValue As String Dim currentValue As String Dim textBox As IUimFormControlContext If IsExcluded(InvoiceCurrency) Then Exit Sub textBox = _formContext.FindControl(InvoiceCurrency.FieldName) currentValue = textBox.Text pickedValue = IaiInvoiceData.CurrencyPicker.ShowCurrencyDialog(Resources.Title_CurrencyPickList,

currentValue) If pickedValue <> "" Then v = BeginUxFieldsChange() v.InvoiceCurrency = pickedValue EndUxFieldsChange() End If End Sub

6.3.4. G/L Account Pick List

In validation, the G/L account pick list is invoked by the shortcut key [Alt]-[G] when the invoice type is “Non-PO Based” and the company code is not empty. If the invoice type is “PO Based”, the G/L Account is an invisible field.

The G/L account pick list is implemented in the “GLAccountPicker” class.

In validation, if the operator activates the shortcut key for the G/L account pick list, the function “ShowGLAccountDialog” is executed. This queries the Invoice Capture data source and generates a list of accounts and their related information, creates a dialog populated with this list, and allows the operator to select

Configuring the Captiva Invoice Capture Page 76 of 84

Page 77: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

a single value. The function returns the selected G/L account if the operator makes a selection; it returns Nothing if the operator cancels the operation.

pickedValue = IaiInvoiceData.GLAccountPicker.ShowGLAccountDialog(Resources.Title_GLAccountPickList, currentValue, CompanyCode)

The input parameter “Resources.Title_GLAccountPickList” specifies the title bar text for the pick list. The title of the currency pick list can be customized in IAIStrings.dll”. The second input parameter is used for filtering of the currency collection. The third input parameter is the company code.

In UimScript, the following function is defined in ScriptInvoice.Ux.vb.

Public Sub HandleGlAccountPicker(ByVal controlContext As IUimFormControlContext) Dim v As Validator Dim pickedValue As String Dim currentValue As String Dim textBox As IUimFormControlContext If IsExcluded(GLAccount) OrElse CompanyCode = "" OrElse Not Ini.UseAcctSys Then Exit Sub TextBox = _formContext.FindControl(GLAccount.FieldName) currentValue = textBox.Text pickedValue = IaiInvoiceData.GLAccountPicker.ShowGLAccountDialog(Resources.Title_GLAccountPickList,

currentValue, CompanyCode) If pickedValue <> "" Then v = BeginUxFieldsChange() v.GLAccount = pickedValue EndUxFieldsChange() End If End Sub

6.3.5. Purchase Order Data Dialog

In validation, the purchase order data dialog is invoked by the shortcut key [Alt]-[P]. If the cursor is located in the “PO Number” field or any other place except the line items table, the result is applied to the PO number text box.

If the cursor is located in a line item, the result is applied only to the line item.

Configuring the Captiva Invoice Capture Page 77 of 84

Page 78: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The PO data dialog is implemented in the “PurchaseOrderViewer” class.

In validation, if the operator activates the shortcut key for displaying the PO data, the function “ShowPurchaseOrderDialog” is executed. This queries the Captiva Invoice Capture data source and generates a list of the PO information for the current vendor, creates a dialog populated with this list. The function returns PO Number of the selected value.

v.PoNumber = IaiInvoiceData.PurchaseOrderViewer.ShowPurchaseOrderDialog(Resources.Title_POData, VendorID, currentValue)

The input parameter “Resources.Title_POData” specifies the title bar text for the pick list. The title of the PO data dialog box can be customized in IAIStrings. The second input parameter is the current Vendor ID. The third input parameter is the current content of the PO text box.

In UimScript, the following function is defined in ScriptInvoice.Ux.vb.

Public Sub HandlePoPicker(ByVal controlContext As IUimFormControlContext)

Dim v As Validator Dim currentValue As String Dim textBox As IUimFormControlContext Dim field As StringField If (_currentRow = -1 AndAlso IsExcluded(PoNumber)) OrElse (_currentRow <> -1 AndAlso IsExcluded(ItemPo(_currentRow))) OrElse Not Ini.UseAcctSys Then Exit Sub End If If _currentRow = -1 Then textBox = _formContext.FindControl(PoNumber.FieldName) currentValue = textBox.Text Else field = ItemPo(_currentRow) textBox = _formContext.FindArrayDataBoundControls(field.FieldName)(_currentRow) currentValue = textBox.Text End If v = BeginUxFieldsChange() If _currentRow < 0 Then v.PoNumber = IaiInvoiceData.PurchaseOrderViewer.ShowPurchaseOrderDialog(Resources.Title_POData,

VendorID, currentValue) ElseIf _currentRow < RowCount Then v.ItemPo(_currentRow) =

IaiInvoiceData.PurchaseOrderViewer.ShowPurchaseOrderDialog(Resources.Title_POData, VendorID, currentValue) End If EndUxFieldsChange() End Sub

6.3.6. Tax Code Pick List

In validation, the following tax code pick list is invoked by the shortcut key [Alt]-[T].

Configuring the Captiva Invoice Capture Page 78 of 84

Page 79: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The tax code pick list is implemented in “TaxCodePicker” class.

In validation, if the operator activates the shortcut key for the tax code pick list, the function “ShowTaxCodeDialog” is executed. This queries the Captiva Invoice Capture data source and generates a list of tax codes, creates a dialog populated with this list, and allows the operator to select a single value. The function returns the selected tax code if the operator makes a selection; it returns Nothing if the operator cancels the operation.

pickedValue = IaiInvoiceData.TaxCodePicker.ShowTaxCodeDialog(Resources.Title_TaxCodePickList,

currentPickedValue)

The input parameter “Resources.Title_TaxCodePickList” specifies the title bar text for the pick list. The title of the tax code pick list can be customized in IAIStrings.dll. The second input parameter is an empty string. This parameter is used for filtering the collection of tax codes.

In UimScript, the following function is defined in ScriptInvoice.Ux.vb.

Friend Sub HandleTaxCodePicker(ByVal controlContext As IUimFormControlContext) Dim v As Validator Dim pickedValue As String Dim currentPickedValue As String Dim textBox As IUimFormControlContext Dim field As StringField If (_currentRow = -1 AndAlso IsExcluded(InvoiceTaxCode)) OrElse (_currentRow > -1 AndAlso IsExcluded(ItemTaxCode(_currentRow))) Then Exit Sub End If If _currentRow = -1 Then textBox = _formContext.FindControl(InvoiceTaxCode.FieldName) currentPickedValue = textBox.Text Else field = ItemTaxCode(_currentRow) textBox = _formContext.FindArrayDataBoundControls(field.FieldName)(_currentRow) currentPickedValue = textBox.Text End If

pickedValue = IaiInvoiceData.TaxCodePicker.ShowTaxCodeDialog(Resources.Title_TaxCodePickList, currentPickedValue)

Configuring the Captiva Invoice Capture Page 79 of 84

Page 80: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014 If pickedValue = "" Then Exit Sub v = BeginUxFieldsChange() If _currentRow = -1 Then v.InvoiceTaxCode = pickedValue ElseIf _currentRow < RowCount Then v.ItemTaxCode(_currentRow) = pickedValue End If EndUxFieldsChange() End Sub

6.3.7. Vendor Pick List

In validation, the following vendor pick list is invoked by shortcut key [Alt]-[V].

The vendor pick list is implemented in the “VendorPicker” class.

In validation, if the operator activates the shortcut key for the vendor pick list, the function “ShowVendorDialog” is executed. This function takes three parameters: Title of the pick list, the search filter string, and a company code. This queries the Invoice Capture data source and generates a list of vendors for the selected company code, creates a dialog populated with this list, filters the list on the string, and allows the operator to select a single value. After the dialog has closed, the function returns a “Vendor” object if the operator makes a selection, it returns null if the operator cancels the operation.

foundVendor = IaiInvoiceData.VendorPicker.ShowVendorDialog(Resources.Title_VendorPickList, currentValue, CompanyCode, selectedBankInfoIndex)

The input parameter “Resources.Title_VendorPickList” specifies the title bar text for the pick list. The title of the vendor pick list can be customized in IAIStrings.dll. The input parameter “currentValue” is a string that is used to filter the vendor list (if the string contains “*”, the value is used as a wildcard, otherwise a set of vendors with any value that exactly matches with the currentValue is returned). The input parameter “CompanyCode” contains the company code for the current invoice. The input parameter selectedBankInfoIndex contains the index of the Bank Info object in a collection of all Bank info objects associated with the vendor.

Configuring the Captiva Invoice Capture Page 80 of 84

Page 81: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

If the filter begins (or ends) with an asterisk, any field that ends (or begins) with the remaining portion of the filter will be displayed by default. If an asterisk is present at both the beginning and end of the filter, the displayed list of vendors will include that the names that contain the remaining portion of the filter in any field.

If no vendor is found, a dialog box appears with the message: “No matching vendors found. Please enter new search criteria”. The pick list is displayed even if one vendor is found.

In UimScript, the following function is defined in ScriptInvoice.Ux.vb.

Public Sub HandleVendorPicker(ByVal controlContext As IUimFormControlContext)

Dim v As Validator Dim currentValue As String Dim foundVendor As Vendor Dim selectedBankInfoIndex As Integer = 0 Dim workflowLogic As New WorkflowLogic(_doc) If IsExcluded(VendorID) OrElse CompanyCode = "" OrElse Not Ini.UseAcctSys OrElse Not

Ini.EnableVendorPickList Then Exit Sub currentValue = "" If _currentControlName <> "" Then If _currentControlName = VendorID.FieldName Then currentValue = _formContext.FindControl(VendorID.FieldName).Text Else If workflowLogic.VendorInformationFieldNames.Contains(_currentControlName) Then currentValue = _formContext.FindControl(_currentControlName).Text Else currentValue = VendorID End If End If End If currentValue = Trim(currentValue) If currentValue = "" Then currentValue = "*" End If If currentValue.Contains("*") AndAlso IaiInvoiceData.Asi.IsSearchPatternAcceptable(currentValue) = 0 Then 'Dim caption = "" 'TryGetResourceByKey(ResourceIdLabelPrefix + controlContext.ControlName, caption)

Dim message = String.Format(Ini.GetIniSettingsProvider().GetResourceString("sMsg_WrongFilterPattern"), currentValue)

MsgBox(message, MsgBoxStyle.OkOnly) Return End If foundVendor = IaiInvoiceData.VendorPicker.ShowVendorDialog(Resources.Title_VendorPickList, currentValue,

CompanyCode, selectedBankInfoIndex) If foundVendor IsNot Nothing Then v = BeginUxFieldsChange() v.PopulateVendorInfo(foundVendor, selectedBankInfoIndex) EndUxFieldsChange() End If End Sub

7. Upgrade from IAI 6.x DPP Scripting to Custom.InputAccell.UimScript.dll

Although the IAI DPP scripting (VBA) and Invoice Document Type scripting (VB.Net) are based on the same family programming language, there is no automated way for such migration because the Dispatcher and Document Type scripting models are very different.

Configuring the Captiva Invoice Capture Page 81 of 84

Page 82: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

The recommended approach is:

• Back up the 6.x environment. For example, get a virtual machine with a master copy of your 6.x IAI customized installation.

• Detect your 6.x customized scripting snippets with the help of a Text Difference tool. For example, with the help of Microsoft windiff.exe. The 6.x scripting is in *.bas files under the 6.x %IAI_ROOT%\Dispatcher Project\ folder.

• Upgrade your 6.x dev. environment to 7.1, so you get the 7.1 OOTB features, but preserve your IAISettings.ini configuration from 6.x.

• Manually recreate the customized snippets in either the Custom.InputAccel.UimScript .NET project (refer chapter 3) or the “Invoice” Recognition Designer (former Dispatcher Manager) project, depending on which behavior is customized.

The table below will help you understand where to migrate the 6.x customized snippets. The table only covers the most common cases, because sometimes one DPP .bas file goes to two or more UimScript .vb files. Before moving to the scripting customization, you must understand the 7.1 Invoice Capture architecture described in the previous chapters.

Notes:

• In 6.5, an InvoiceF2 was used for prompting the Classification Edit operator for selecting any specific English template (other than _FREEFORM_INVOICE_EN). In 7.1, we found it worth to reduce the complexity by having a single family with the same behavior, instead of two families. So, from the table below you can see that InvoiceF1.* and InvoiceF2.* sets of files in 6.5 correspond to just Invoice.* set in 7.1

• PalHelper.bas from 6.5 has been removed in 7.1. In 6.5, each template script calls IAIExtraction.dll for finding the non-zonal non-freeform alternate totals. The PalHelper.bas repeats the same call for the PAL generated templates. In 7.1, we unconditionally call this dll from the Document Extracted event. In 7.1, it does not matter if the invoice is classified as the OOTB template or the PAL generated template. So in 7.1, there is no need for repeating the same call.

6.x folder and file structure

6.x Descripiton 7.1 location

Dispatcher Project\

IAI.dpp iai.dsp

“IAI.dpp” and “iai.dsp” are at the project root folder. IAI.dpp contains the main settings of the project and iai.dsp contains the settings of the production modules.

Recognition\

Invoice\Invoice.dpp Invoice\Invoice.dsp

Use Recognition Designer to edit the “Invoice” project.

IdxClasses\ InvoiceF1.bas InvoiceF1.index InvoiceF1.xindex InvoiceF2.bas InvoiceF2.index InvoiceF2.xindex

The “IdxClasses” folder contains the “InvoiceF1” and “InvoiceF2” index families’ definition files (INDEX and XINDEX) and the index families’ scripts (BAS).

IdxClasses\ Invoice.bas Invoice.index Invoice.xindex

Use Document Designer to edit the “Invoice” document type definition. For editing the corresponding fields validation and UI script (other than

Configuring the Captiva Invoice Capture Page 82 of 84

Page 83: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

6.x folder and file structure

6.x Descripiton 7.1 location

Classification Edit script that is still in the Invoice.bas file) go to: …\Profile Scripts\ScriptInvoice.vb

Modules\

The “Module” folder contains 12 subfolders for the 12 templates in the installed project

Modules\

Resource\ FullTex

Classifier.xml “FullTexClassifier.xml” is for using the optional keyword rule in the project.

Resource\ FullTextClassifier.xml

OCR\ The “OCR” folder contains the OCR engine settings (RECO), the free form definition files (DFT), the field-specific types definition files (TFT) and the full text relations, field-specific types and full text table script relations files (BAS).

OCR\

Scripts\

AutoLearning\ The “Scripts” folder contains the project script file and other IAI script code.

The “AutoLearning” folder contains the scripts and rules for the PAL data type.

Script\ AutoLearning\

CheckAmounts.cls

PalHelper.bas

“CheckAmounts.cls” and “PalHelper.bas” contain the script called from IndexingFamily_ _AfterDocumentRecognition intended for the PAL template invoices.

…\Profile Scripts\CheckAmounts.vb

CustomHotKey.bas

“CustomHotKey.bas”: scripts for handling the shortcut key operation.

CustomHotKey.bas This file is still used to support Classification Edit “Ctrl+N” shortcut keys. For editing the corresponding Captiva Desktop shortcut keys go to: …\Profile Scripts\ScriptInvoice.Ux.vb

DateFormat.bas “DateFormat.bas”: scripts for

formatting the date.

Dropped from scripting as in 7.1 the formats are handled by Document Type core.

DispatcherProject.b “DispatcherProject.bas”: script

DispatcherProject.bas

Configuring the Captiva Invoice Capture Page 83 of 84

Page 84: Configuring Captiva Invoice - Dell EMC Korea · Captiva Capture (CC) 7.0 introduces a new client module “Captiva Desktop” which is the next generation operator tool. Captiva Desktop

February 2014

6.x folder and file structure

6.x Descripiton 7.1 location

as for handling EN template hypotheses during the Classification step

FieldValidation.bas “FieldValidation.bas”: scripts

for each field validation

…\Profile Scripts\ ScriptInvoice.Validation.vb ScriptInvoice.PopulationRules.vb

IAICommon.bas ValidationCommon.bas

“IAICommon.bas” and “ValidationCommon.bas”: IAI common functions.

IAICommon.bas “IAICommon.bas” is still used for the Classification Edit features about InvoiceNumber copy (Ctrl+N) and label localization. For editing other common functions go to: …\Profile Scripts\ ScriptInvoice.Calculator.vb ScriptInvoice.WorkflowLogic.vb Infrastructure\ Ini.vb InvoiceData.vb ScriptInvoice. .FieldsIntelliSense.vb

LineMatcher.bas “LineMatcher.bas”: scripts for

handling line matcher

…\Profile Scripts\ScriptInvoice.LineMatcher.vb

Configuring the Captiva Invoice Capture Page 84 of 84


Recommended