Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
Showing results for 
Search instead for 
Did you mean: 


Scanning, extracting,  mapping, and validating are main core functions in OpenText Vendor Invoice Management (VIM) regardless paper(ICC scan) or paperless(EDI, Email, API, etc.) invoices. I bumped into an issue of a bit strange scenarios and it led me to dig further than I need to know . which I need to research technical details cross over from ICC server, to SAP, and to VIM workplace.

There are many other enhancement spots available at other functional parts but simple implementing an enhancement in VIM mapping scratched my back with solid integrity without impacting VIM standard mapping mechanism. Here is a rough how-to-guide that I found



1. Maintain Mapping ID

Go to tcode '/OPT/VIM_MAPV' and use one of existing mapping ID, or create one if need.

Select a Mapping ID and click the Automated Field Enhancement, now you can assign your own enhancement. In this case, "ICC" is selected as a scanned invoice from ICC is to be used for this example .

Choose Count number, and define the structure type among header(H) or Item(I)


And select a field from structure /OPT/VIM_1RDOC_DATA, where you can add customer fields via .include structure


Now you need to decide Field Processing Type - D Constant, M Function Module,  and S System variable - you come to set a fixed value if 'D" selected. Choose 'M' Function Module

2. Create a custom FM

Create a custom FM with the same interface of one of VIM enhancement FM /OPT/VIM_EXIT_MAP_ENH_xx

*"*"Local Interface:

Put your custom logic into your FM. Your logic will overwrite or fill a value on the target field assigned at mapping ID configure.

The changing variable CP_VALUE must be filled in to pass a value to the target field.

          IF sy-subrc 0.
cp_value lv_selected.


3. Assign your custom FM in  tcode '/OPT/VIM_MAPV'

Eventually, this configuration is stored in Table /OPT/VIM_T107



Time to test

For the test purpose, scan a PDF invoice from an VIM  Archivelink folder

Drag and drop a PDF invoice

Go to IDH tool - tcode '/OPT/VIM_7AX8' - Admin Tool (or Se38 pgm '/OPT/VIM_ICC_ADMIN_TOOL')  once the scanning looks good.

Now the scanned invoice set as sent to OCR , but the status would be changed via batch jobs for extraction pgm /OPT/VIM_STATUS_EXTR, for Validation pgm /OPT/VIM_STATUS_VAILD, and for triggering to Workplace via pgm /OPT/VIM_DP_TRIGGER.

Or you can push the DP document in manual.

If all look successful, You would be able to see the Invoice (DP doc) data in the table /OPT/VIM_1HEAD & /OPT/VIM_1ITEM also in the staging table /OPT/VIM_1EXT_H after the extracted invoice data sent to OCR.


Now bring up the invoice (DP Document) form VM workplace

You would see the field contains the value being replaced by your FM



It would be a very basic information to whom has been using OpenText VIM for years, but I'd like to add some technical details which might overlooked if you are not too keen about how the ICC and SAP are communicated each other and about how the core functions of VIM work.

Typical scenario of manual scanning would be that an user scans an invoice through Enterprise Scanner and the scanned data reach out to ICC server. Then ICC server calls extracting API to outbound scanned data to SAP VIM module - drop invoices at archive link folders. but auto extracting from email and EDI/IDOC is normal everyday BAU as manual scanning is extraordinary case. I skipped this prio phase before SAP Archive link.

At next time, I hope I can write some of how to SAP call the customer enhancements in validation, mapping, and extraction process


Thanks for reading this article and enjoy your SAP life 🙂


  • Abbreviation

ICC  Invoice Capture center

IDH  Incoming Document Handler

pgm  ABAP program
1 Comment
Labels in this area