Hello!
I wrote a simple LUA code to mask phone numbers. It works well when I run it locally. My local environment is windows 10, Optim 11.3.0.8 64-bit. Here's my LUA program:
function cm_transform()
local oldvalue=optim.source.getcolumnvalue()
local newvalue=''
if string.sub(oldvalue,1,3) == '380' then
newvalue = optim.mask(oldvalue,'PRO=AFF, MTD=REP, COPY=(1,5), FLDDEF1=(NAME=NUM_PHONE, DT= WVARCHAR_SZ)')
else
newvalue = optim.mask(oldvalue,'PRO=AFF, MTD=REP, COPY=(1,2), FLDDEF1=(NAME=NUM_PHONE, DT= WVARCHAR_SZ)')
end
print("Old value " .. oldvalue .. " Newvalue " .. newvalue)
optim.target.setcolumnvalue(newvalue)
end
When I run a job on a server, an error message is formed:
User DLL or Proc requested termination while processing ORAOPTIMDBA. OPTIMDATA1. CLI_PHONE Column: NUM_PHONE: Error in Column Map procedure or expression: while executing cm_transform():
In the log of the server found an error message:
ENVW32IF IcuW2MB (9393) EXCP 11/26/2020 13:16:13 000037 000074ED 000016C
Could not convert from Unicode (as UChar) to Code Page 1251, reason 10 = U_INVALID_CHAR_FOUND, ICU=ibm-1251_P100-1995. See the attached file for more information.
My OPTIM server works under OS Redhat 7.8, OPTIM version 11.3.0.8 32-bit, Oracle client 11.2.0.1 32-bit, Oracle base 18.3.0.0 64 bit. Optim db alias configured as single by format(ASCII/EBCDIC). Full server login
Can someone get into such a mistake and can help the council how to fix it?
------------------------------
Best regards,
Valentin Sukhanyuk
------------------------------
#InfoSphereOptim#Optim