ERRATA: I meant "There is no parameter" in lieu of "There is parameter"
On Tue, Apr 17, 2018 at 8:09 PM, Rajesh Mallah <mallah.raj...@gmail.com> wrote: > > 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.apac >> he.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-1 >> 6.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_MAIN >> T"> >> > >> > >> > >> > <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.lastModif >> iedByUserLogin" >> > >> > >> > >> > 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. >> > >> > >> > >> > >> > >> > >> > >> >> > >> > >> > > >> > >> > >> > > >> > >> > >> > >> > >> > >> >> > >> > > >> > >> > > >> > >> > >> > >> >> > > >> > > >> > >> > >