Pages

Recently Viewed

Friday, April 24, 2020

Oracle WFR scans comma as decimal in LineItem fields

This can not be resolved by using field properties ( Exclude Char) feature since Line Item is of Table type and there is no such properties.

Custom Sub Routine would be way forward, following is a sample -

Private Sub LineItems_ValidateTable(pTable As SCBCdrPROJLib.ISCBCdrTable, pWorkdoc As SCBCdrPROJLib.ISCBCdrWorkdoc, pValid As Boolean)
'======================================
'By Sandeep
'======================================
Dim i As Integer

For i = 0 To pWorkdoc.Fields("LineItems").Table(0).RowCount -1

'Replacing some known characters identified during debug
pWorkdoc.Fields("LineItems").Table(0).CellText("Unit Price", i)=Trim(Replace(CStr(pWorkdoc.Fields("LineItems").Table(0).CellText("Unit Price", i)),".",""))

pWorkdoc.Fields("LineItems").Table(0).CellText("Total", i)= Trim(Replace(CStr(pWorkdoc.Fields("LineItems").Table(0).CellText("Total", i)),".",""))

pWorkdoc.Fields("LineItems").Table(0).CellText("Total", i)= Trim(Replace(CStr(pWorkdoc.Fields("LineItems").Table(0).CellText("Total", i)),".",""))

Next

End Sub


Above is a sample code to replace any char and assign the replaced value back to line Items.
Based on business required we can change the values and assign the calculated values agaain.

If Total field has comma replaced by decimal,  form a logic to check length of post decimal string and decide if decimal is actual decimal or comma. Accordingly replace comma with "" and assign back. 

Oracle WFR : Basics

WFR - Oracle Web Center Form Recognition 

Open Project file (.sdp) in Form Recognition.

Definition Mode

  • This will be used to define attributes properties 
  • Select user exit and press F12 ( right click >> Show Scripts) to show available userExits 
  • Select invoice Oracle F12 ( right click >> Show Scripts) to show sub routines. Select Objects and available related  procedure
  • Make the required changes and Save project 
  • After successful extraction ( from Run mode) user can  switch to Definition mode > invoice > fields to see each attribute extracted values 
Run Mode 
  • Select a File 
  • Select Run mode
  • Click Extract next record 
  • Extraction will be completed 
  • Extraction results are displayed 
  • Successfully extracted and passed validation will be ticked 
  • Crossed attributes are failed some validations  

Verifier Mode ( Text)  
  • This will be used to show extraction results for each attributes 
  • Move over the mouse on red colored fields and it will show the failed validation 

Verifier Mode ( Design)  can be used to design the layout. 


** UserExits and SubRoutines are written in VB language 

Script to Change FND User Password from DB

DECLARE
  lv_user_name    VARCHAR2(100):= 'SANDEEP';
  lv_owner        VARCHAR2(10) := 'CUST';
  lv_password     VARCHAR2(20) := 'Oracle123';
 ln_user_id         NUMBER;
BEGIN
  /*Create FND User*/
   BEGIN
                          SELECT user_id
                          INTO ln_user_id
                          FROM fnd_user
                          WHERE user_name=lv_user_name;
    EXCEPTION
                        WHEN no_data_found THEN
                        dbms_output.put_line('Did not create user('||lv_user_name||') : '||sqlerrm);
    END;

    fnd_user_pkg.updateuser
                                    ( x_user_name                                                =>lv_user_name,
                                      x_owner                                                        =>lv_owner,
                                      x_unencrypted_password                             =>lv_password
                        );
 
    IF ln_user_id IS NOT NULL THEN
      dbms_output.put_line('Successfully Updated  user password  : '||lv_user_name);
      dbms_output.put_line('user id = '||ln_user_id);
    END IF;
EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('Error in  Create user :'||lv_user_name||'>>'||SQLERRM);
END;