NAME OpenERP::XMLRPC::Client - XMLRPC Client tweaked for OpenERP interaction. SYNOPSIS my $erp = OpenERP::XMLRPC::Client->new( dbname => 'terp', username => 'admin', password => 'admin', host => '127.0.0.1', port => '8069' ) my $partner_ids = $erp->object_execute( 'res.partner', 'search', [ 'name', 'ilke', 'abc' ] ); # READ a res.partner object my $partner = $erp->read( 'res.partner', $id ); print "You Found Partner:" . $partner->{name} . "\n"; DESCRIPTION I have tried to make this extendable so made use of moose roles to structure the calls to the different methods available from the openerp rpc. This makes use of the MooseX::Role::XMLRPC::Client to communicate via rpc. This module was built to be used by another OpenERP::XMLRPC::Simple and handles openerp specific rpc interactions. It could be used by something else to access openerp rpc services. NAME OpenERP::XMLRPC::Client - XML RPC Client for OpenERP Parameters username - string - openerp username (default: 'admin') password - string - openerp password (default: 'admin') dbname - string - openerp database name (default: 'terp') host - string - openerp rpc server host (default: '127.0.0.1' ) port - string - openerp rpc server port (default: 8069) proto - string - openerp protocol (default: http) .. untested anything else. Attributes openerp_uid - int - filled when the connection is logged in. base_rpc_uri - string - used to hold uri the rpc is currently pointing to. openerp_rpc - L - Provided by L METHODS These methods re-present the OpenERP XML RPC but in a slightly more user friendly way. The methods have been tested using the 'res.partner' object name and the demo database provided when you install OpenERP. BUILD When the object is instanciated, this method is run. This calls openerp_login. openerp_login Logs the client in. Called automatically when the object is created. openerp_logout Basically a no-op. object_execute Low level method for making a call to the Open ERP server. Normally called by a wrapper function like create or read. object_exec_workflow Makes an 'exec_workflow' call to Open ERP. report_report Sends a 'report' call to Open ERP. report_report_get Sends a 'report_get' call to Open ERP. change_uri OpenERP makes methods available via different URI's, this method is used to change which URI the rpc client is pointing at. Arguments: $_[0] - object ref. ($self) $_[1] - string (e.g. "xmlrpc/object") base uri path. Returns: string - the old uri - the one this new one replaced. read ( OBJECTNAME, [IDS] ) Can pass this a sinlge ID or an ARRAYREF of ID's, it will return an ARRAYREF of OBJECT records (HASHREF's). Example: $partner = $erp->read('res.partner', 1 ); print "This is the returned record name:" . $partner->[0]->{name} . "\n"; $partners = $erp->read('res.partner', [1,2] ); print "This is the returned record 1:" . $partners->[0]->{name} . "\n"; print "This is the returned record 2:" . $partners->[1]->{name} . "\n"; Returns: ArrayRef of HashRef's - All the objects with IDs passed. search ( OBJECTNAME, [ [ COLNAME, COMPARATOR, VALUE ] ] ) Used to search and return IDs of objects matching the searcgh. Returns: ArrayRef of ID's - All the objects ID's matching the search. Example: $results = $erp->search('res.partner', [ [ 'name', 'ilke', 'abc' ] ] ); print "This is the 1st ID found:" . $results->[0] . "\n"; create ( OBJECTNAME, { COLNAME => COLVALUE } ) Returns: ID - the ID of the object created. Example: $new_id = $erp->create('res.partner', { 'name' => 'new company name' } ); update ( OBJECTNAME, ID, { COLNAME => COLVALUE } ) Returns: boolean - updated or not. Example: $success = $erp->update('res.partner', 1, { 'name' => 'changed company name' } ); delete ( OBJECTNAME, ID ) Returns: boolean - deleted or not. Example: $success = $erp->delete('res.partner', 1 ); field_info ( OBJECTNAME ) Returns: hash containing all field info, this contains field names and field types. model_fields ( OBJECTNAME ) Returns: hash containing all the models fields. get_defaults ( OBJECTNAME, [ FIELDS ] ) Returns: hash containing the default values for those fields. search_detail ( OBJECTNAME, [ [ COLNAME, COMPARATOR, VALUE ] ], CONTEXT ) Used to search and read details on a perticular OBJECT. This uses 'search' to find IDs, then calls 'read' to get details on each ID returned. Returns: ArrayRef of HashRef's - All the objects found with all their details. Example: $results = $erp->search_detail('res.partner', [ [ 'name', 'ilke', 'abc' ] ] ); print "This is the 1st found record name:" . $results->[0]->{name} . "\n"; The "CONTEXT" argument is optional. This allows a hasref containing the current search context to be provided, e.g. my $results = $erp->search_detail( 'stock.location', [ ['usage' => '=' => 'internal'] ], { active_id => $self->id, active_ids => [$self->id], active_model => 'product.product', full => 1, product_id => $self->id, search_default_in_location => 1, section_id => undef, tz => undef, } ) read_single ( OBJECTNAME, ID ) Pass this a sinlge ID and get a single OBJECT record (HASHREF). Example: $partner = $erp->read_single('res.partner', 1 ); print "This name of partner with ID 1:" . $partner->{name} . "\n"; Returns: HashRef - The objects data SEE ALSO RPC::XML::Client AUTHOR Benjamin Martin Colin Newell Jon Allen (JJ) COPYRIGHT AND LICENSE Copyright (C) 2010-2012 OpusVL This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.