V1.1
Overview
The predefined configuration in the eyeball-condition yaml file defines the criteria for deciding whether the system performs the eyeball step. The criteria could be extraction confidence level of a field or specific value in a field or more.
The configuration also decides which fields will appear in the Eyeball screen in the portal and how, adds the missing fields, and expedites the search using Lookup table with multiple filters. All the functionalities save time and improve system efficiency.
Template
eyeball-condition.yaml
kind: ruleSet metadata: name: extraction/v1/documents/eyeball-condition spec: nodes: - if: 'it["InvoiceTotal"].Confidence > 0.99' then: decision: false - if: 'it["VendorName"].Value != "ABC"' then: decision: true - if: 'it.ContainsKey("Category") && it["Category"].Value == null' then: decision: true - if: '1=1' then: decision: true
Parameter | Description |
---|---|
If then | The condition based on which eyeballing is decided. |
For example, in the above template, if the confidence level of Invoice Total field is more than 0.99 then eyeballing step is not performed. But, if the invoice contains Category field that is empty then eyeballing is performed.
eyeball-client-configuration.yaml
kind: document metadata: name: extraction/v1/documents/eyeball-client-configuration spec: fields: - name: "Case_Id" description: "Invoice Name" visible: false enable: false defaultControlType: "TextBox" - name: "Handwritten" description: "HandWritten" visible: true enable: true displayOrder: 11 defaultControlType: "Checkbox" - name: "Language" description: "Language" visible: true enable: true displayOrder: 12 defaultControlType: "TextBox" - name: "DocumentType" description: "Document type" visible: true mandatory: true displayOrder: 20 enable: true defaultControlType: "ComboBox" validation: > { "clearPattern": "[^a-zA-Z0-9 ]+" } controlOptions: > { "filter": "contains", "dataTextField": "value", "dataValueField": "value", "dataSource":[ { "value": "Merchandize" }, { "value": "Freight Only" }, { "value": "Drop Shipments" } ] } - name: "Culture" description: "Culture" visible: ': iif(String.IsNullOrEmpty(wf.Variables["extractedCulture"]), true, false)' mandatory: true displayOrder: 45 enable: true defaultControlType: "ComboBox" controlOptions: > { "windowOptions": { "width": "800px", "height": "600px", "title": "Culture", "appendTo": "#layoutContainer", "draggable": { "containment": "body" }, "modal": true, "resizable": false, "actions": [ "Close" ] }, "filter": "contains", "dataTextField": "value", "dataValueField": "code", "dataSource": { "transport": { "read": { "url": "/api/components/configuration/v1/cultures", "contentType": "application/json" } }, "pageSize": 1000, "serverPaging": false, "serverFiltering": false } } - name: "RejectReason" description: "Reject Reason" visible: true enable: true displayOrder: 300 defaultControlType: "MultiSelect" controlOptions: > { "delimeterValue": ";", "tagMode":"single", "dataTextField": "value", "dataValueField": "value", "downArrow": true, "dataSource":[ { "value": "Incorrect Bill To Address" }, { "value": "OpCo Code Not Found" }, { "value": "Partial split failure" }, { "value": "PO - Cancelled/ Invalid/ Not Found" }, { "value": "Invoice number missing" }, { "value": "Currency Not Found" } ] } - name: "InvoiceId" description: "Invoice Number" displayOrder: 40 defaultControlType: "TextBox" mandatory: true enrichOtherFields: true validation: > { "clearPattern": "[^a-zA-Z0-9 ]+" } attributes: > { "maxLength": 20 } - name: "PORefNumber" description: "PO Ref_Num" visible: true mandatory: true enable: true displayOrder: 70 defaultControlType: "MultiColumnComboBox" controlOptions: > { "dataTextField": "Id", "dataValueField": "Id", "autoBind": false, "columns": [ { "field": "PONumber", "title": "PO Number", "width": 200 }, { "field": "Id", "title": "Id", "width": 200 } ], "filter": "contains", "virtual": { "itemHeight": 33 }, "height": 330, "dataSource": { "transport": { "read": { "url": "/api/components/data-model/v1/query/vwPO", "contentType": "application/json" } }, "pageSize": 40, "serverPaging": true, "serverFiltering": true } } - name: "OpcoCode" description: "Opco Code" visible: true mandatory: true enable: true displayOrder: 80 defaultControlType: "PopupTable" controlOptions: > { "dataValueField": "OPCOCode", "dataTextField": "OPCOCode", "windowOptions": { "width": "800px", "height": "600px", "title": "Opco Code", "appendTo": "#layoutContainer", "draggable": { "containment": "body" }, "modal": true, "resizable": false, "actions": [ "Close" ] }, "gridOptions": { "dataSource": { "transport": { "read": { "url": "/api/components/data-model/v1/query/vwOPCOS", "contentType": "application/json" } }, "schema": { "data": "data", "model": { "fields": { "OPCOCode": { "type": "string" }, "OPCOName": { "type": "string" }, "OPCOAddress": { "type": "string" }, "OPCOZip": { "type": "string" } } } } }, "filterable": { "defaultFilterColumn": "OPCOCode", "extra": false, "messages": { "info": "" }, "operators": { "string": { "contains": "Contains" }, "number": { "equal": "Equal" } } }, "columns": [ {"field": "OPCOCode", "title": "OPCOCode" }, {"field": "OPCOName", "title": "OPCOName"}, {"field": "OPCOAddress", "title": "OPCOAddress"}, {"field": "OPCOZip", "title": "OPCO Zip"} ], "result": { "dataValueField": "OPCOCode", "dataTextField": "OPCOCode" }, "height": 410, "scrollable": true, "selectable": true } } - name: "Category" description: "Category" visible: true enable: false displayOrder: 310 defaultControlType: "TextBox" - name: "KeyPhrase" description: "Key Phrase" visible: true displayOrder: 320 defaultControlType: "TextBox" determinesCategory: true enrichOtherFields: true - name: "PaymentDetail" description: "Payment Detail" typeName: "PaymentDetail" defaultControlType: "Array" fields: - name: "IBAN" description: "IBAN Number" defaultControlType: "TextBox" - name: "SWIFT" description: "SWIFT" defaultControlType: "TextBox" - name: "BankAccountNumber" description: "Bank Account Number" defaultControlType: "TextBox"
Parameter | Description |
---|---|
Name | Determines the name of the field in JSON. |
Description | Adds a brief description of the field. |
Visible | Determines if the field is displayed in the UI. |
Mandatory | Determines whether the field value is mandatory. |
Enable | Determines whether the field is enabled. |
DisplayOrder | Determines the order in the UI where the field is displayed. |
DefaultControlType | Determines the type of the field.
|
ControlOptions | Determines parameters to define values for multiple selection type of fields like combo box, popup table, multiselect, and multicolumn combo box. The control option parameters for different type of fields may be different. |
Enrich Other Fields | Determines whether a field will enrich other fields. If true, the parameters from a field are applicable for other fields. |
For example, for an Invoice extraction, one of the fields could be Document Type and its parameters could be the following:
name: "DocumentType" | The name of the field in the JSON is DocumentType. |
description: "DocumentType" | A description of the field. |
mandatory: true | It is mandatory to have a value in the field. |
enable: true | The field is enabled. |
visible: true | The field is visible in the Eyeball screen in the portal. |
displayOrder: 20 | The position of this field is 20 in order in the Eyeball screen in the portal. |
controlType: "ComboBox" | The field is a combo box. |
"filter": "contains", | The field has filters. |
"dataValueField": "value" | The data value of the field. |
"dataTextField": "value" | The data text of the field. |
"dataSource":[ { "value": "Merchandize" }, { "value": "Freight Only" }, { "value": "Drop Shipments" } ] | The values for selection in the combo box. |
Control Option parameters
Parameter | Description |
---|---|
WindowOptions | Determines the window model, resizable, action of the field for combo box and popup table type fields. |
GridOptions | Determines the display data, formatting of the field for popup table type field. |
Schema | Determines the data and structure of the popup table type field. |
Filterable | Determines which column(s) in the popup table type field will be filterable. |
Operators | Determines the use for filtering the column of the popup table type field. |
Columns | Determines the column in the popup table type field. |
Results | Determines the result of the dataValue and dataText field for the popup table type field. |
Height | Determines the height of the popup table type field. |
Scrollable | Determines if the popup table type field is scrollable. |
Selectable | Determines if the value of the popup table type field is selectable. |
Add business columns to Eyeball task grids
- Duplicate the Update Unsigned Solution Variables workflow.
- Add a new application variable:
- Name: UpdateVariableWorkflowName
- Value: The name of the workflow space created in Step 1.
- For the OOTB Global variables, there are two default columns, Vendor Name and Invoice Amount.
- To add additional columns to the grid:
- Select the IDE Eyeball solution.
- Click on ManageUnsignedSolutionVariables.
- Add the required variable(s).
- Go to the workflow duplicated in Step 1.
- Edit the Update Variables activity to add the required variable(s) to the list.
IMPORTANT
Ensure that the column order in the line items table is identical in both extraction-model.yaml and eyeball-client-configuration.yaml.
V1.0
Overview
The predefined configuration in the eyeball-condition yaml file defines the criteria for deciding whether the system performs the eyeball step. The criteria could be extraction confidence level of a field or specific value in a field or more.
The configuration in the eyeball-client-configuration yaml file decides which and how the fields will appear in the eyeball screen in the portal.
Template
eyeball-condition.yaml
kind: ruleSet metadata: name: extraction/v1/documents/eyeballing-decision spec: nodes: - if: 'it["InvoiceTotal"].Confidence > 0.99' then: decision: false - if: 'it["VendorName"].Value != "ABC"' then: decision: true - if: '1=1' then: decision: true
Parameter | Description |
---|---|
If then | The condition based on which eyeballing is decided. |
For example, in the above template, if the confidence level of Invoice Total field is more than 0.99 then eyeballing step is not performed.
eyeball-client-configuration.yaml
kind: document metadata: name: extraction/v1/documents/eyeball-client-configuration spec: fields: - name: "Case_Id" description: "Invoice Name" visible: false enable: false defaultControlType: "TextBox" - name: "DocumentType" description: "Document type" visible: true mandatory: true displayOrder: 20 enable: true defaultControlType: "ComboBox" validation: > { "clearPattern": "[^a-zA-Z0-9 ]+" } controlOptions: > { "filter": "contains", "dataTextField": "value", "dataValueField": "value", "dataSource":[ { "value": "Merchandize" }, { "value": "Freight Only" }, { "value": "Drop Shipments" } ] } - name: "VendorNumber" description: "Vendor Number" visible: true mandatory: true enable: true displayOrder: 90 defaultControlType: "MultiColumnComboBox" controlOptions: > { "dataTextField": "VendorNumber", "dataValueField": "VendorNumber", "columns": [ { "field": "VendorName", "title": "Vendor Name", "width": 200 }, { "field": "VendorNumber", "title": "Vendor Number", "width": 200 }, { "field": "VendorType", "title": "Vendor Type", "width": 200 } ], "filter": "contains", "virtual": { "itemHeight": 33 }, "height": 330, "dataSource": { "transport": { "read": { "url": "/api/components/data-model/v1/query/VendorsByNumber", "contentType": "application/json" } }, "pageSize": 40, "serverPaging": true, "serverFiltering": true } } - name: "RejectReason" description: "Reject Reason" visible: true displayOrder: 300 defaultControlType: "ComboBox" controlOptions: > { "filter": "contains", "dataTextField": "value", "dataValueField": "value", "dataSource":[ { "value": "Currency mismatch between invoice and PO/NPO" }, { "value": "Duplicate Remit To Address" }, { "value": "Full split failure" }, { "value": "Incorrect Bill To Address" }, { "value": "INVOICE RESCAN REQUIRED" }, { "value": "Multiple invoices in single pdf" }, { "value": "OpCo Code Not Found" }, { "value": "Partial split failure" }, { "value": "PO - Cancelled/ Invalid/ Not Found" }, { "value": "Required information missing" }, { "value": "Vendor Creation Required" }, { "value": "Vendor does Not Match Invoice" }, { "value": "Vendor Modification Required" } ] } - name: "InvoiceLineItem" description: "Line Items" typeName: "InvoiceLineItem" defaultControlType: "Array" fields: - name: "LineItemNumber" description: "LineItemNumber" visible: false defaultControlType: "TextBox" - name: "Description" description: "Description" defaultControlType: "TextBox" width: "45%" - name: "CatchWeight" description: "CatchWeight" defaultControlType: "TextBox"
Parameter | Description |
---|---|
Name | Determines the name of the field in JSON. |
Description | Adds a brief description of the field. |
Visible | Determines if the field is displayed in the UI. |
Mandatory | Determines whether the field value is mandatory. |
Enable | Determines whether the field is enabled. |
displayOrder | Determines the order in the UI where the field is displayed. |
controlType | Determines the type of the field like Textbox or Combo box. |
controlOptions | Determines filters on the field. |
For example, for an Invoice extraction, one of the fields could be Document type and its parameters could be the following:
name: "DocumentType" | The name of the field in the JSON is DocumentType. |
description: "DocumentType" | A small description of the field. |
mandatory: true | It is mandatory to have a value of the field. |
enable: true | The field is enabled. |
visible: true | This field is visible in the UI. |
displayOrder: 20 | In the UI the place of this field is 20 in order. |
controlType: "ComboBox" | This field is a combo box. |
"filter": "contains", | This field contains filters. |
{"value": "Merchandize"}, | Values for the combo box. |
Add business columns to Eyeball task grids
- Duplicate the Update Unsigned Solution Variables workflow.
- Add a new application variable:
- Name: UpdateVariableWorkflowName
- Value: The name of the workflow space created in Step 1.
- For the OOTB Global variables, there are two default columns, Vendor Name and Invoice Amount.
- To add additional columns to the grid:
- Select the IDE Eyeball solution.
- Click on ManageUnsignedSolutionVariables.
- Add the required variable(s).
- Go to the workflow duplicated in Step 1.
- Edit the Update Variables activity to add the required variable(s) to the list.