Hi Rishi , I am using XML RPC with OFBiz so my capabilities are limited to what the interface provides. There is parameter that allows me to specify the data format/pattern .
At this moment i have solved my problem temporarily by appending .001 after the second part in HH:MM:SS and i am only using createProductPrice instead of updateProductPrice . As creating new prices allows to have a history/audit of prices. I feel updateProductPrice is really overwriting the values and trail is lost. regds mallah. On Tue, Apr 17, 2018 at 6:49 PM, Rishi Solanki <rishisolan...@gmail.com> wrote: > Idea of utility class is, use the format you would like and pass the value. > It will convert into timestamp used in the table. In case you could not get > the desired format in the utility class then the class uses the > java.text.SimpleDateFormat class to resolve its purpose. > > Please take a look at toTimestamp() method variations and format you are > receiving in the xml. Once you have the format with you, it can be easily > converted into timestamp. Also if utility class does not support then go to > core class for same i.e java.text.SimpleDateFormat and look for the > supporting format. > > HTH! > > > Rishi Solanki > Sr Manager, Enterprise Software Development > HotWax Systems Pvt. Ltd. > Direct: +91-9893287847 > http://www.hotwaxsystems.com > www.hotwax.co > > On Tue, Apr 17, 2018 at 3:02 PM, Rajesh Mallah <mallah.raj...@gmail.com> > wrote: > > > Further Info: > > > > <member> > > <name>fromDate</name> > > <value> > > <string><![CDATA[2018-04-17 14:59:34.001 +0530]]></string> > > </value> > > </member> > > > > In XML results in > > > > from_date | 2018-04-17 14:59:34.001+05:30 > > > > in DB. looks like the parser is kind enough to consider TZ > > spec without colons. > > > > > > regds > > mallah. > > > > > > On Tue, Apr 17, 2018 at 2:42 PM, Rajesh Mallah <mallah.raj...@gmail.com> > > wrote: > > > > > > > > Its PostgreSQL > > > regds > > > > > > > > > below is a sample data : > > > > > > SQL> select * from ofbiz.product_price where > > > product_id='PROD_SW52D5H3EN' order by created_date desc limit 1; > > > > > > -[ RECORD 1 ]---------------+------------------------------ > > > product_id | PROD_SW52D5H3EN > > > product_price_type_id | DEFAULT_PRICE > > > product_price_purpose_id | PURCHASE > > > currency_uom_id | INR > > > product_store_group_id | _NA_ > > > from_date | 2018-04-17 12:49:20+05:30 <---- This > has > > > been put by me. > > > thru_date | > > > price | 121.000 > > > term_uom_id | WT_kg > > > custom_price_calc_service | > > > price_without_tax | > > > price_with_tax | > > > tax_amount | > > > tax_percentage | > > > tax_auth_party_id | > > > tax_auth_geo_id | > > > tax_in_price | Y > > > created_date | 2018-04-17 12:49:20.416+05:30 > > > created_by_user_login | admin > > > last_modified_date | 2018-04-17 12:49:20.416+05:30 > > > last_modified_by_user_login | admin > > > last_updated_stamp | 2018-04-17 12:49:20.416+05:30 <---- > > > Generated by defaults. > > > last_updated_tx_stamp | 2018-04-17 12:49:20.357+05:30 > > > created_stamp | 2018-04-17 12:49:20.416+05:30 > > > created_tx_stamp | 2018-04-17 12:49:20.357+05:30 > > > > > > > > > On Tue, Apr 17, 2018 at 2:39 PM, Deepak Dixit > > <deepak.dixit@hotwaxsystems. > > > com> wrote: > > > > > >> Hi Rajesh, > > >> > > >> Could you please share which database you are using? > > >> > > >> > > >> Thanks & Regards > > >> -- > > >> Deepak Dixit > > >> www.hotwax.co > > >> > > >> On Tue, Apr 17, 2018 at 2:36 PM, Rajesh Mallah < > mallah.raj...@gmail.com > > > > > >> wrote: > > >> > > >> > Hi , > > >> > > > >> > > > >> > it was in conversion/DateTimeConverters.java that was appending > '.0' > > to > > >> > the > > >> > end of > > >> > string if the string did not contain any decimals. So i have now > > >> started > > >> > sending > > >> > the fractional seconds. And things are better (if not perfect). > > >> > > > >> > > > >> > > > >> > public java.sql.Timestamp convert(String obj, Locale locale, > TimeZone > > >> > timeZone, String formatString) throws ConversionException { > > >> > String str = obj.trim(); > > >> > if (str.length() == 0) { > > >> > return null; > > >> > } > > >> > DateFormat df = null; > > >> > if (UtilValidate.isEmpty(formatString)) { > > >> > // These hacks are a bad idea, but they are included > > >> > // for backward compatibility. > > >> > if (str.length() > 0 && !str.contains(":")) { > > >> > str = str + " 00:00:00.00"; > > >> > } > > >> > // hack to mimic Timestamp.valueOf() method > > >> > if (str.length() > 0 && !str.contains(".")) { > > >> > str = str + ".0"; > > >> > } else { > > >> > // DateFormat has a funny way of parsing > > >> milliseconds: > > >> > // 00:00:00.2 parses to 00:00:00.002 > > >> > // so we'll add zeros to the end to get > > 00:00:00.200 > > >> > String[] timeSplit = str.split("[.]"); > > >> > if (timeSplit.length > 1 && > timeSplit[1].length() > > < > > >> 3) > > >> > { > > >> > str = str + "000".substring(timeSplit[1]. > > >> > length()); > > >> > } > > >> > } > > >> > df = > > >> > UtilDateTime.toDateTimeFormat(UtilDateTime.getDateTimeFormat(), > > >> timeZone, > > >> > locale); > > >> > } else { > > >> > df = UtilDateTime.toDateTimeFormat(formatString, > > >> timeZone, > > >> > locale); > > >> > } > > >> > try { > > >> > return new java.sql.Timestamp(df.parse( > > str).getTime()); > > >> > } catch (ParseException e) { > > >> > > > >> > > > >> > On Tue, Apr 17, 2018 at 2:19 PM, Rajesh Mallah < > > mallah.raj...@gmail.com > > >> > > > >> > wrote: > > >> > > > >> > > Thanks Rishi. > > >> > > > > >> > > On Tue, Apr 17, 2018 at 2:08 PM, Rishi Solanki < > > >> rishisolan...@gmail.com> > > >> > > wrote: > > >> > > > > >> > >> UtilDateTime is the utility class, add the time format support > you > > >> want > > >> > >> and > > >> > >> use it. Most format supported by this utility class OFBiz have. > > >> > >> > > >> > >> Rishi Solanki > > >> > >> Sr Manager, Enterprise Software Development > > >> > >> HotWax Systems Pvt. Ltd. > > >> > >> Direct: +91-9893287847 > > >> > >> http://www.hotwaxsystems.com > > >> > >> www.hotwax.co > > >> > >> > > >> > >> On Tue, Apr 17, 2018 at 12:27 PM, Rajesh Mallah < > > >> > mallah.raj...@gmail.com> > > >> > >> wrote: > > >> > >> > > >> > >> > Now I am passing "2018-04-17 12:09:17+05:30" as fromDate , > > >> > >> > Which is the value picked up from the DB column. > > >> > >> > > > >> > >> > Even at XML level the string is preserved , but at some stage > > after > > >> > >> > hitting tomcat it becomes: "2018-04-17 12:09:17+05:30.0" > > >> > >> > > > >> > >> > which is not parseable. > > >> > >> > > > >> > >> > |W| [ModelService.makeValid] : Type conversion of field > > >> [fromDate] to > > >> > >> type > > >> > >> > [java.sql.Timestamp] failed f > > >> > >> > or value "2018-04-17 12:09:17+05:30": > > >> > >> > org.apache.ofbiz.base.util.GeneralException: > > >> > java.text.ParseException: > > >> > >> > Unparseable date: "2018-04-17 12:09:17+05:30.0" > > >> > (java.text.ParseExceptio > > >> > >> > n: Unparseable date: "2018-04-17 12:09:17+05:30.0") > > >> > >> > > > >> > >> > > > >> > >> > <!--- snippet from the XML-RPC --> > > >> > >> > > > >> > >> > <member> > > >> > >> > <name>fromDate</name> > > >> > >> > <value> > > >> > >> > <string><![CDATA[2018-04-17 > > >> 12:09:17+05:30]]></string> > > >> > >> > </value> > > >> > >> > </member> > > >> > >> > > > >> > >> > <!-- end of snippet --> > > >> > >> > > > >> > >> > > > >> > >> > > > >> > >> > > > >> > >> > regds > > >> > >> > mallah. > > >> > >> > > > >> > >> > > > >> > >> > On Tue, Apr 17, 2018 at 11:08 AM, Rajesh Mallah < > > >> > >> mallah.raj...@gmail.com> > > >> > >> > wrote: > > >> > >> > > > >> > >> > > Hello Mr Deepak , > > >> > >> > > > > >> > >> > > Thanks for the response . The record does exists but i guess > > >> > >> > > i am not specifying the params good enough to hit the record > > >> > >> > > by pkey. > > >> > >> > > > > >> > >> > > I wish there were a "product_price_id" in ProductPrice > entity. > > >> :-) > > >> > >> > > > > >> > >> > > regds > > >> > >> > > mallah. > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > > On Tue, Apr 17, 2018 at 9:58 AM, Deepak Dixit < > > >> > deepak.di...@hotwax.co > > >> > >> > > > >> > >> > > wrote: > > >> > >> > > > > >> > >> > >> Hi Rajesh, > > >> > >> > >> > > >> > >> > >> If you want to create product price you should use > > >> > createProductPrice > > >> > >> > >> service, > > >> > >> > >> https://demo-stable.ofbiz.apache.org/webtools/control/ > Servic > > >> > >> > >> eList?sel_service_name=createProductPrice > > >> > >> > >> > > >> > >> > >> If productPrice record already exists you should use > > >> > >> updateProductPrice, > > >> > >> > >> > > >> > >> > >> Thanks & Regards > > >> > >> > >> -- > > >> > >> > >> Deepak Dixit > > >> > >> > >> Director of Product Engineering > > >> > >> > >> HotWax Commerce <https://hotwax.co/> > > >> > >> > >> > > >> > >> > >> On Mon, Apr 16, 2018 at 11:42 PM, Rajesh Mallah < > > >> > >> > mallah.raj...@gmail.com> > > >> > >> > >> wrote: > > >> > >> > >> > > >> > >> > >> > Hi , > > >> > >> > >> > > > >> > >> > >> > I am calling > > >> > >> > >> > > > >> > >> > >> > https://demo-stable.ofbiz.apache.org/webtools/control/ > > >> > >> > >> > ServiceList?sel_service_name=updateProductPrice > > >> > >> > >> > > > >> > >> > >> > with ARGS > > >> > >> > >> > > > >> > >> > >> > { > > >> > >> > >> > currencyUomId "INR", > > >> > >> > >> > fromDate "2018-04-16 17:39:52", > > >> > >> > >> > price 150, > > >> > >> > >> > productId "PROD_SW52D5H3EN", > > >> > >> > >> > productPricePurposeId "PURCHASE", > > >> > >> > >> > productPriceTypeId "DEFAULT_PRICE", > > >> > >> > >> > productStoreGroupId "_NA_", > > >> > >> > >> > taxInPrice "Y", > > >> > >> > >> > termUomId "WT_kg" > > >> > >> > >> > } > > >> > >> > >> > > > >> > >> > >> > > > >> > >> > >> > I am getting error: > > >> > >> > >> > > > >> > >> > >> > > > >> > >> > >> > faultString:Error running the simple-method: Entity value > > not > > >> > found > > >> > >> > with > > >> > >> > >> > name: lookedUpValue Method = updateProductPrice, File = > > >> > >> > >> > file:/opt/ofbiz/apache-ofbiz- > 16.11.04/applications/product/ > > >> > >> > >> > minilang/product/price/PriceServices.xml, > > >> > >> > >> > Element = <set-nonpk-fields>, Line 69null > > >> > >> > >> > > > >> > >> > >> > > > >> > >> > >> > the minilang def is reproduced here for convinience: > > >> > >> > >> > > > >> > >> > >> > <simple-method method-name="updateProductPrice" > > >> > >> > >> short-description="Update > > >> > >> > >> > an ProductPrice"> > > >> > >> > >> > <set field="callingMethodName" > > >> > value="updateProductPrice"/> > > >> > >> > >> > <set field="checkAction" value="UPDATE"/> > > >> > >> > >> > <call-simple-method method-name=" > > >> > >> > checkProductRelatedPermission" > > >> > >> > >> > xml-resource="component://product/minilang/product/ > > >> > >> > >> > product/ProductServices.xml"/> > > >> > >> > >> > <check-permission permission="CATALOG_PRICE_ > MAINT"> > > >> > >> > >> > <fail-property resource="ProductUiLabels" > > >> > >> > >> > property="ProductPriceMaintPermissionError"/> > > >> > >> > >> > </check-permission> > > >> > >> > >> > <check-errors/> > > >> > >> > >> > > > >> > >> > >> > <call-simple-method method-name=" > > >> > >> > inlineHandlePriceWithTaxInclud > > >> > >> > >> > ed"/> > > >> > >> > >> > > > >> > >> > >> > <entity-one entity-name="ProductPrice" > > >> > >> > >> > value-field="lookedUpValue"/> > > >> > >> > >> > > > >> > >> > >> > <!-- grab the old price value before setting nonpk > > >> > >> parameter > > >> > >> > >> fields > > >> > >> > >> > --> > > >> > >> > >> > <field-to-result field="lookedUpValue.price" > > >> > >> > >> > result-name="oldPrice"/> > > >> > >> > >> > > > >> > >> > >> > <set-nonpk-fields map="parameters" > > >> > >> > value-field="lookedUpValue"/> > > >> > >> > >> > > > >> > >> > >> > <now-timestamp field="nowTimestamp"/> > > >> > >> > >> > <set field="lookedUpValue.lastModifiedDate" > > >> > >> > >> > from-field="nowTimestamp"/> > > >> > >> > >> > <set field="lookedUpValue. > lastModifiedByUserLogin" > > >> > >> > >> > from-field="userLogin.userLoginId"/> > > >> > >> > >> > > > >> > >> > >> > <store-value value-field="lookedUpValue"/> > > >> > >> > >> > </simple-method> > > >> > >> > >> > > > >> > >> > >> > The productID does exists in Entity ProductPrice > > >> > >> > >> > Where am I going wrong ? > > >> > >> > >> > > > >> > >> > >> > thanks & regds > > >> > >> > >> > Rajesh Mallah. > > >> > >> > >> > > > >> > >> > >> > > >> > >> > > > > >> > >> > > > > >> > >> > > > >> > >> > > >> > > > > >> > > > > >> > > > >> > > > > > > > > >