JavamathBigDecimal

Assuming that you are probably mapping from a string field to the input field of your adapter service…

I find it easier to change the Input Field Type to java.lang.string in the input fields table (lower table) of the adapter service’s insert tab.

This specifies that you want to supply a string input, and hand off the job of converting the string representation to decimal to the JDBC adapter.

Mark,

Yes the Input Field Type is set to java.lang.string.

Anyhow Is there in WM Developer any built-in which converts the amount value 00000115176C or 00000189467{ to appropriate numeric value like 11517.63 or 18946.70. This is easily done using SQLLoader and the Datatype as ZONED. I did it using SQLLoader. Can you please let me know?

Thanks
Priyatham

There is no built-in conversion for Zoned.

Please take a look at this thread:

http://www.wmusers.com/wmusers/messages/117/42553.shtml

hi all,
this is murali,i wrote a java program using webmethods java api…to connect oracle server…using this driver :oracle.jdbc.driver.Oracledriver
connection is established using this:con =new JDBCConnection
(“jdbc:oracle:thin:@ORASRV:1521:MIRACLE”,“it7”,“it7”,“oracle.jdbc.driver.OracleDriver”); after that i want to use menthods in JDBCConnection
1:getTables() 2:getTableInfo() those are not working they didn,t give proper results.Values d=con.getTableInfo(“webmethods72”,“it7”,“emp”,“eno”);it gives this error
values:. >>>$errorDump=java.sql.SQLException:[wm-cjdbc32-0014][SQLServer JDBC Driver]This driver is locked for use with embedd
ed applications., $errorInfo= >>>$errorDump=java.sql.SQLException:[wm-cjdbc32-0014][SQLServer JDBC Driver]This driver is lock
ed for use with embedded applications., $error=[wm-cjdbc32-0014][SQLServer JDBC Driver]This driver is locked for use with emb
edded applications., $localizedError=[wm-cjdbc32-0014][SQLServer JDBC Driver]This driver is locked for use with embedded appl
ications., $errorType=java.sql.SQLException, $service=hh:Untitled, $user=Administrator, $time=Sun Aug 08 16:06:20 EDT 2004<<<
, $error=[wm-cjdbc32-0014][SQLServer JDBC Driver]This driver is locked for use with embedded applications., $errorType=java.
sql.SQLException, location=getTables<<<

Make sure your DB URL & DB DRIVER looks like jdbc:oracle:thin://localhost:1521RASRV
DB Driver oracle.jdbc.driver.OracleDriver

Also copy the classes12.zip to the–> is_install_dir\lib\jars folder and restart the server. Also check your DB DRIVER parameter in WmDB alias make sures its set to oracle.jdbc.driver.OracleDriver

HTH,
Leon

Hi Mark,

I tried to make changes as you have mentioned above but WM didn’t handle the Decimal conversions. The data type of AMOUNT_1 field is NUMBER(13,2).

“I find it easier to change the Input Field Type to java.lang.string in the input fields table (lower table) of the adapter service’s insert tab.”----> I changed as you said.

Any idea or any other way of doing it? Please let me know, I am almost done with loading the Flat file except the decimal point conversion.

Thank You,
Priyatham Porika

Mark,

I think I found alternate solution for this. I used DivideFloats Math built-in to fix it. So for the amount I get I divide it by 100 to get the decimals. So I think I am fine.

Thank you very much for your valuable help.

Thank you,
Priyatham

Hi Mark,

I think we have a routine with converts the amount that has last character {,A,B,C… } to 0,1,2,3,0 using the following routine
convertStringToZonedDecimal under PSUtilities package.

What this does is if you have amount as 000000192345A then it will convert to 19234.51

Check this out please.

Thanks,
Priyatham

Mark,

It is the otherway round!!! Sorry for that. I checked it by running the
convertStringToZonedDecimal service. Say if you have 123456A the it will convert to 1234566

Anyhow Thanks,
Priyatham

Sounds good. I’ll take a look when I have time.

That service is a recent addition to the PSUtilities package (added in June). Glad to see that it’s available!

Thanks for the update Priyatam bhai…Good to know about this service exists…which was added recently.

RMG.

Guys,

I solved it.

Thank You,
Priyatham Porika

Priyatham again!!!

I am trying to insert into a jdbc adapter service field called CREATED_BY which is defined as as NUMBER(15) datatype in database.

I have written a small jdbc adapter service query which picks the user_id for the user WEBMTHODS and returns the values I needed as 1206.

This is what I did when mapping. I mapped the query out to an object like v_User_Id and I have another map from the variable to v_User_ID to Object v_User_ID_Value. And finally maped the v_User_ID_Value to the jdbc Adapter service to insert into the basetable. All the values get inserted except v_User_ID_Value. I can see in the result panel all the values and even the value for v_User_ID and v_User_ID_Value and never gets inserted.

I can see this column defined in WM jdbc adapter service insert stmt as :

Column Column_Type Jdbc Type Input Field Input Field Type
CREATED_BY NUMBER(15) DECIMAL CREATED_BY java.math.BigDecimal

Do I need to convert the object before insert to suite the BigDecimal? How can I overcome this problem. Can you guys please help me.

Thank you very much in advance for your help!!!
Priyatham Porika

Guys!! Thank you!! I solved this problem.

Priyatham Porika