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
Process
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
FUNCTION /OPT/VIM_EXIT_MAP_ENH_05.
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” VALUE(IP_FIELDNAME) TYPE FIELDNAME OPTIONAL
*” VALUE(IP_DOC_HEADER) TYPE /OPT/VIM_1HEAD
*” VALUE(IP_DOC_ITEM) TYPE /OPT/VIM_1ITEM
*” TABLES
*” TP_DOC_ITEMS STRUCTURE /OPT/VIM_1ITEM
*” TP_EXTDATA_HEAD STRUCTURE /OPT/VIM_1REXTDATA
*” TP_EXTDATA_ITEM STRUCTURE /OPT/VIM_1REXTDATA
*” CHANGING
*” VALUE(CP_VALUE) TYPE /OPT/F_VALUE
*”———————————————————————-
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.
ENDIF.
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
Conclusion
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