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

Reply via email to