ofbiz-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike <mz4whee...@gmail.com>
Subject Re: help with updateProductPrice
Date Wed, 18 Apr 2018 05:34:43 GMT
Just make your DB updates, then make an API call or use wget to clear the
cache.  For instance:

wget --no-check-certificate -T 360
https://IP_ADDRESS/webtools/control/FindUtilCacheClearAll?USERNAME=admin&PASSWORD=xxxxxxx&JavaScriptEnabled=N

Here's the thing.. Eventually, you're going to make hacks to satisfy
various problems that come up.  Making your own, custom xmlrpc/SOAP/REST is
well within the norm.  If you make one (hack), like to make an easy fast
price updater, you'll start to use the same technique to solve another
problem.  It's great to be a purist (if you can), but you have to have a
way of working around bugs.  Just MHO.

On Tue, Apr 17, 2018 at 10:14 PM, Rajesh Mallah <mallah.rajesh@gmail.com>
wrote:

> Hi Mike  ,
>
> moreover there is the factor of Caching at various levels . If you
> directly interact with DB , i feel the caches may become stale .
>
> regds
> Mallah.
>
> On Tue, Apr 17, 2018 at 9:17 PM, Mike <mz4wheeler@gmail.com> wrote:
>
> > Why not just write your own custom xmlrpc server (perl/python/java) that
> > accepts just the P/N and new price, searches for the current record, and
> > performs a SQL call to update the DB.
> >
> > On Tue, Apr 17, 2018 at 8:12 AM, Rajesh Mallah <mallah.rajesh@gmail.com>
> > wrote:
> >
> > > 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.rajesh@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 <
> > rishisolankii@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.rajesh@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.rajesh@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.rajesh@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.rajesh@gmail.com
> > > >> > >> >
> > > >> > >> > wrote:
> > > >> > >> >
> > > >> > >> > > Thanks Rishi.
> > > >> > >> > >
> > > >> > >> > > On Tue, Apr 17, 2018 at 2:08 PM, Rishi Solanki
<
> > > >> > >> rishisolankii@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.rajesh@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.rajesh@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.dixit@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.rajesh@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.
> > > >> > >> > >> > >> >
> > > >> > >> > >> > >>
> > > >> > >> > >> > >
> > > >> > >> > >> > >
> > > >> > >> > >> >
> > > >> > >> > >>
> > > >> > >> > >
> > > >> > >> > >
> > > >> > >> >
> > > >> > >>
> > > >> > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message