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.
> >> > >> > >> >
> >> > >> > >>
> >> > >> > >
> >> > >> > >
> >> > >> >
> >> > >>
> >> > >
> >> > >
> >> >
> >>
> >
> >
>

Reply via email to