Scan Expense Receipt¶
Sends an Expense Receipt image to the Expense Receipt Automation and returns the extracted expense information.
The method accepts the following parameters:
- response_, out parameter of type CLOB, to which the response will be written.
- image_data_, required parameter of type BLOB to pass the binary image data to the Expense Receipt Analyzer.
- configuration_id_, optional parameter to specify the Configuration ID from Scheduling Optimization and Machine Learning Configuration to use. If not specified the 'DEFAULT' configuration will be used.
- response_format_, optional parameter to specify the response format. Possible values are 'XML', 'JSON' and 'IFS_MESSAGE'. If not specified 'IFS_MESSAGE' will be used as the default format.
BEGIN
Ml_Util_API.Scan_Expense_Receipt(
response_ => :response_, -- Clob parameter to accept response data.
image_data_ => :image_data_, -- Blob parameter to pass the binary image data.
configuration_id_ => 'DEFAULT', -- Configuration ID to use.
response_format_ => 'XML'); -- Response format ('XML' / 'JSON' / 'IFS_MESSAGE').
END;
For the above call, the response may look as following. The response may vary depending on the IFS Planning & Scheduling Optimization (PSO) version being used.
<ScanResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/RESTfulGateway.ResponseObjects">
<Entities>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>currency_code</Id>
<Probability>0.71</Probability>
<Value>EUR</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>currency_code</Id>
<Probability>0.21</Probability>
<Value>USD</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.5293</Probability>
<Value>Meals</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.0988</Probability>
<Value>Hotel</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Line1</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.1644</Probability>
<Value>Taxi</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Line1</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.0741</Probability>
<Value>Restaurants/Dining with guests</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Line2</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.047</Probability>
<Value>Parking fees</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Line2</EntityGroupId>
<Id>expense_code</Id>
<Probability>0.0377</Probability>
<Value>Other expenses, travel-related</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>expense_text</Id>
<Probability>1</Probability>
<Value>Main Street Restaurant 6332 Business Drive Suite 528 Palo Alto California 94301 575-1628095 Fri 04/07/2017 3:57 PM Order ID: #4a59c18f Order Number: 1 Chocolate Chip Cooki Apple Pie 5.00 3.00 Lava Cake 4.00 Sub Total USD$ 12.00 Grand Total: $12.00 Card: XXXXXXXXXXXXO Tip 14.16 2.16</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Line1</EntityGroupId>
<Id>expense_text</Id>
<Probability>1</Probability>
<Value>Chocolate Chip Cooki</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>merchant_address</Id>
<Probability>0.981</Probability>
<Value>6332 Business Drive Suite 528 Palo Alto California 94301</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>merchant_name</Id>
<Probability>0.935</Probability>
<Value>Main Street Restaurant</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>merchant_phone_number</Id>
<Probability>0.982</Probability>
<Value>+15751628095</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>total_amount</Id>
<Probability>1</Probability>
<Value>12.00</Value>
</ExtractedEntity>
<ExtractedEntity>
<EntityGroupId>Line1</EntityGroupId>
<Id>total_amount</Id>
<Probability>1</Probability>
<Value>5.00</Value>
</ExtractedEntity>
...
<ExtractedEntity>
<EntityGroupId>Main</EntityGroupId>
<Id>transaction_date</Id>
<Probability>0.6</Probability>
<Value>2017-07-04</Value>
</ExtractedEntity>
</Entities>
<EntityGroups xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>Main</d2p1:string>
<d2p1:string>Line1</d2p1:string>
<d2p1:string>Line2</d2p1:string>
</EntityGroups>
</ScanResponse>
Tip: The IFS Message response format ('IFS_MESSAGE') allows using existing methods in Message_SYS package to handle the response which may be simpler to use in the PL/SQL code than 'XML' or 'JSON'.
For more details about the Expense Receipt Automation please see the PSO Machine Learning Guide and the PSO Interface Guide.