正在慢慢加
stevendreamer
-
Openerp7 手机访问问题 -
Openerp 中怎么设置工单的手工发料?已经安装了picking before manufacturing 模块,但是开立工单进行发料的时候,发现系统仍然是自动进行发料。
具体流程如下:
1. 开立工单,里面带了routing,confirm,工单状态变为awaiting raw materials
2. 由于工单带routing,所以生成了work order。
3. 查找internal move, 可以找到生成了一张internal move,但是状态为waiting available, 行状态为Waiting Another Move
到了这一步,工单没法做操作,物料也没法发放...
如果直接去做work order,则发现物料自动给我发放出去了....
另外如果到这里,跑scheduler,internal move的物料也自动给我发料了....
这个是否是openerp的bug?论坛里面有使用手工发料的朋友吗?能否告知一下怎么操作的呢? -
Openerp7 手机访问问题Hi,
我的编译环境是4.0的,所以估计是要4.0的机器才能用。
你可以加我q,把你q密我一下。 -
Openerp7 手机访问问题手机访问可以参考这个DEMO,我正在做,有需求请直接提出。
http://shine-it.net/index.php/topic,5955.0.html -
OSCG淘宝OpenERP7.0免费开源发布这是商业剽窃,违法。
严重打击积极性。 -
Java使用xml-rpc直接调用workflow操作,可用于模拟订单confirm等按钮动作继上一个帖子使用xml rpc访问object对象后,研究了下,xml rpc也可以直接用来调用workflow动作。
原文是gooogle了一个外国的帖子,链接如下:<br / http://selvam4u.wordpress.com/2010/12/09/openerp-xml-rpc-java/ br />国内貌似被墙....
我测试的例子步骤如下,由于是测试,所以中间有查db的步骤。
1. 在系统上面建立一个purchase order,状态为draft
2. 使用下面的sql查找出这个新建的purchase order的id:
select * from "purchase_order" where create_date > current_date -1;
3. 使用下面代码,替换掉里面的id字段,然后直接运行
4. 执行完以后,重新查系统,查刚才新建的po单,可以看到,po的状态为已经confirm了。
有了这个例子,结合前面对象创建的例子,可以做简单的 对象创建->confirm 动作了。<br /> public static void callWorkflow() throws MalformedURLException {<br /><br /> XmlRpcClient xmlrpc = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL(<br /> "http://localhost:8069/xmlrpc/object")); // 服务器链接<br /><br /> xmlrpc.setConfig(xmlrpcConfgDb);<br /><br /> /*<br /> Object r2[] = new Object[5];<br /> r2[0] = "openerp";<br /> r2[1] = 1;<br /> r2[2] = "000000";<br /> r2[3] = "purchase.order";<br /> r2[4] = "purchase_confirm";<br /> r2[5] = 75;<br /> */<br /> <br /> // 以下函数调用直接调用了workflow,其中,purchase.order为对象。<br /> // purchase_confirm为该对象绑定的workflow中的signal,75为该对象的ID,在此例子中即为PO的id值<br /> // 测试发现,执行完该操作以后,PO的状态由draft变为approved.<br /> // 6个变量说明<br /> // 1. "openerp" db名<br /> // 2. 1 登录用户的id,登录后获取用户id,这里直接写1,默认admin账户<br /> // 3. 用户密码<br /> // 4. 对象model 名称<br /> // 5. workflow的signal,就是点按钮的那个signal,具体是叫啥忘了<br /> // 6. 对象id,这里就是po的id<br /> Object[] params = new Object[] { "openerp", 1, "000000", "purchase.order",<br /> "purchase_confirm", 75 };<br /> <br /><br /> Object po_data;<br /><br /> try {<br /><br /> po_data = xmlrpc.execute("exec_workflow", params);<br /><br /> System.out.println("finished");<br /> // System.out.println(o.length);<br /><br /> } catch (Exception e) {<br /> e.printStackTrace();<br /><br /> }<br /> }<br />
-
OpenERP Android DEMO客户端发布 - github工程已建立,可以下载[quote author=Meatball_py link=topic=5955.msg14855#msg14855 date=1365401199]
有意思,我试过几个 Google Play 上的 OpenERP client,都不太理想,希望楼主的项目能够顺利进行。
等开源之后,我或许可以参与开发,有 Android 开发经验,是 AChartEngine 的 committer (虽然好久没做贡献了), OpenERP 开发刚接触,零零散散学了两个多月。
[/quote]
谢谢支持,achartengine没用过,只是网上查了下,貌似android上面做图表的用它很多。有牛人支持,信心大涨 ;D -
OSCG淘宝OpenERP7.0免费开源发布强烈支持。
-
OpenERP Android DEMO客户端发布 - github工程已建立,可以下载[quote author=Jeff link=topic=5955.msg14848#msg14848 date=1365353532]
没见过openerp6.1的移动客户端?
<br / [检测到链接无效,已移除] br />
数据库选oe61用户名密码都是admin
[/quote]
谢谢jeff提供链接,终于找到一个可以用的mobile端。
试过了,是个很好的样板。
但是操作感觉不好,速度太慢太卡,和我想象的差别有点大...
我觉得还是native app会好很多,而且可玩性更高,个人喜好吧。 -
OpenERP Android DEMO客户端发布 - github工程已建立,可以下载Hi All:
[b]github的地址为 [检测到链接无效,已移除] br />
[b]大家的回个帖子呗,发帖是为了收集需求和反馈的,基本0回复啊晕,打击积极性啊亲...[/b]
直接把原帖改名了,省的老发帖,大家也能看到历史记录...
先提供我的Android DEMO的工程
有android开发经验的同学,可以先下工程自己改了。
不打算自己改的同学,可以继续关注该帖子,正在研究把条码扫描先加进来。
[b]Android工程下载链接为:[/b]<br / https://github.com/stevendreamer/openerp_mobile br />[b]每日更新的apk地址为:[/b]<br / [检测到链接无效,已移除] br />
工程说明:
[b]1. 代码简陋,欢迎吐槽。有改进建议和功能需求的,请直接给我提建议。[/b]
2. [b]工程主要部分是openerp的java api 库。[/b]这个是在sourceforge上面的公开库,地址:<br / http://sourceforge.net/projects/openerpjavaapi/ br />3. 工程使用了apache xml rpc库
下面是几个我发的帖子,和本工程直接相关。
使用下面的例子,再加上一点修改,可以简单完成类似于在java端(android)创建一个订单对象,同时点击按钮,完成订单确认的功能了。
[b]java xml rpc调用object进行CRUD:[/b] [检测到链接无效,已移除] br />[b]java xml rpc调用workflow:[/b] [检测到链接无效,已移除] br />
Thanks
深圳-steven (stevendreamer in github)
下面是原帖内容:
-------------------------------------------------------
预热一下。
一直以来觉得openerp 是个好东西,但是在当前手机和平板如此盛行的时代,没有一个mobile客户端的erp,不是一个好ERP。
而且,个人觉得如果openerp能有一个mobile客户端,会更好的实现推广和宣传,也更容易为用户所接受。
加入openerp群以后,我也多次咨询是否有openerp的mobile客户端,未果,好像说6.1有一个,但是没有找到....
于是,参考开源的tryton客户端,尝试自己小弄一下。
该项目一到两周后会开源,先改一下我的hardcode部分,遮下丑 ;D,每个简单操作给一个DEMO,然后大家一起来玩,想自己定义android功能的自己下来随便改。
群里面估计也有很多人有自己的mobile客户端了,但是一直没有找到共享出来的,我觉得这样会导致大家一腔热血,但是重复造车,对于oe推广不利。
对这个项目的期待,基本是前期完成android市场上面的类似 “来*快” 的某app的功能,然后加上zxing作为条码扫描方案,achartengine或者别的报表引擎作为图标方案。
[b]大家可以回帖提自己的需求和期望,也会尽量加进去。[/b]
希望大家一起来玩,因为这个是业余项目,也就慢慢搞,大家一起的话,估计进度会加快。
DEMO的说明:
1. 这只是个DEMO,说明了android能够做到查询以及操作的功能,大家可以群策群力,一起把他进行完善。
[b]目前里面能用的只有 库存/物料查询,以及 生产/工单,很简单,也很简陋。大家对功能就不要吐槽了,重点不在这里。[/b]
2. 这个下载链接中的APK将会不定期更新,逐步进行完善
3. 没有装oe的朋友,可以先访问公网机器 服务器demo.openerp.cn, 端口80,数据库demo1,用户名/密码 admin/admin
<br / [检测到链接无效,已移除] br />
PS: github android怎么提交还不会玩,有经验的同学可以告知一下。
Thanks
深圳-steven(stevendreamer in github)
应mrshelly要求,上截图,干货不多,请勿吐槽...
不知道怎么加图...加到附件里面了...
update 4/8:
物料详细信息页面能够显示物料的部分详细信息,未处理,均以字符串显示。 -
Java xml rpc 访问openerp的详细例子坐自己沙发...
广告招租 ;D -
Java xml rpc 访问openerp的详细例子群里面问了一大转,还是没有找到java怎么调用xml的例子....
无语,只能自己参考doc.openerp.com研究了。
这里面只有java xml rpc的login和list db例子,但是重要的对象读写操作却没有涉及到。
分享一下我测试的例子,javaer不用再碰墙了...
简单起见,这里定义了自己的对象x_test,只有两个属性,x_name和x_desc,均为char
简单起见,直接贴代码了...
更新说明一下,这里需要使用apache的xml rpc包,请到apache的网站下载,加上就ok了。<br />import java.net.MalformedURLException;<br />import java.net.URL;<br />import java.util.ArrayList;<br />import java.util.Arrays;<br />import java.util.HashMap;<br />import java.util.List;<br />import java.util.Vector;<br /><br />import org.apache.xmlrpc.XmlRpcException;<br />import org.apache.xmlrpc.client.XmlRpcClient;<br />import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;<br /><br /><br />public class xmltest {<br /><br /> /**<br /> * @param args<br /> * @throws MalformedURLException<br /> */<br /> public static void main(String[] args) throws MalformedURLException {<br /> // TODO Auto-generated method stub<br /> // getDatabaseList("127.0.0.1",8069);<br /><br /> // createObject();<br /> // searchObject();<br /> // readData();<br /> readView();<br /> }<br /><br /> public static Vector<String> getDatabaseList(String host, int port)<br /> throws MalformedURLException {<br /> XmlRpcClient xmlrpcDb = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL("http", host, port, "/xmlrpc/db"));<br /><br /> xmlrpcDb.setConfig(xmlrpcConfgDb);<br /> Vector<String> res = new Vector<String>();<br /> try {<br /> Vector<Object> params = new Vector<Object>();<br /> Object result = xmlrpcDb.execute("list", params);<br /> Object[] a = (Object[]) result;<br /><br /> for (int i = 0; i < a.length; i++) {<br /> res.addElement((String) a[i]);<br /> System.out.println((String) a[i]);<br /> }<br /><br /> } catch (Exception e) {<br /> e.printStackTrace();<br /> }<br /> return res;<br /> }<br /><br /> public int Connect(String host, int port, String tinydb, String login,<br /> String password) throws Exception {<br /> XmlRpcClient xmlrpclogin = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfigLogin = new XmlRpcClientConfigImpl();<br /><br /> xmlrpcConfigLogin.setEnabledForExceptions(true);<br /> xmlrpcConfigLogin.setServerURL(new URL("http", host, port,<br /> "/xmlrpc/common"));<br /><br /> xmlrpclogin.setConfig(xmlrpcConfigLogin);<br /><br /> try {<br /> Object[] params = new Object[] { tinydb, login, password };<br /> Object id = xmlrpclogin.execute("login", params);<br /> if (id instanceof Integer)<br /> return (Integer) id;<br /> return -1;<br /> } catch (Exception e) {<br /> e.printStackTrace();<br /> }<br /><br /> return -1;<br /> }<br /><br /> public static void createObject() throws MalformedURLException {<br /> XmlRpcClient xmlrpc = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL(<br /> "http://localhost:8069/xmlrpc/object"));<br /><br /> xmlrpc.setConfig(xmlrpcConfgDb);<br /><br /> String dbname = "openerp";<br /> int uid = 1;<br /> String pwd = "000000";<br /> String model = "x_test";<br /><br /> HashMap<String, Object> values = new HashMap<String, Object>();<br /> values.put("x_name", "Monsieur");<br /> // values.put("x_desc", "bbbb");<br /><br /> // Object[] params = new Object[] { dbname, uid, pwd, model,"create",<br /> // values };<br /><br /> Object[] params = new Object[] { "openerp", 1, "000000", "x_test",<br /> "create", values };<br /><br /> try {<br /> xmlrpc.execute("execute", params);<br /> } catch (Exception e) {<br /> e.printStackTrace();<br /> }<br /> }<br /><br /> public static void searchObject() throws MalformedURLException {<br /> XmlRpcClient xmlrpc = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL(<br /> "http://localhost:8069/xmlrpc/object"));<br /><br /> xmlrpc.setConfig(xmlrpcConfgDb);<br /><br /> String dbname = "openerp";<br /> int uid = 1;<br /> String pwd = "000000";<br /> String model = "x_test";<br /> /*<br /> * ArrayList<String> l = new ArrayList<String>(); l.add("x_name");<br /> * l.add("="); l.add("a"); ArrayList filters = new ArrayList();<br /> */<br /> Object[] l = { "x_name", "=", "a" };<br /> Object[] filters = { l };<br /> // filters.add(l);<br /> Object[] params = new Object[] { "openerp", 1, "000000", "x_test",<br /> "search", filters };<br /><br /> try {<br /><br /> Object[] o = (Object[]) xmlrpc.execute("execute", params);<br /><br /> System.out.println("finished");<br /> // System.out.println(o.length);<br /> for (Object obj : o) {<br /> System.out.println(obj);<br /> }<br /> } catch (Exception e) {<br /> e.printStackTrace();<br /><br /> }<br /> }<br /><br /> public static void readData() throws MalformedURLException {<br /> Object[] ids = { 2, 3 };<br /> Object[] fields = { "x_name", "x_desc" };<br /><br /> XmlRpcClient xmlrpc = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL(<br /> "http://localhost:8069/xmlrpc/object"));<br /><br /> xmlrpc.setConfig(xmlrpcConfgDb);<br /><br /> String dbname = "openerp";<br /> int uid = 1;<br /> String pwd = "000000";<br /> String model = "x_test";<br /><br /> Object[] params = new Object[] { "openerp", 1, "000000", "x_test",<br /> "read", ids, fields };<br /><br /> try {<br /><br /> Object[] o = (Object[]) xmlrpc.execute("execute", params);<br /><br /> System.out.println("finished");<br /> // System.out.println(o.length);<br /> for (Object obj : o) {<br /> System.out.println(obj);<br /> }<br /> } catch (Exception e) {<br /> e.printStackTrace();<br /><br /> }<br /> }<br /><br /> public static void readView() throws MalformedURLException {<br /> Object[] ids = { 1276 };<br /> Object[] fields = { "arch" };<br /><br /> XmlRpcClient xmlrpc = new XmlRpcClient();<br /><br /> XmlRpcClientConfigImpl xmlrpcConfgDb = new XmlRpcClientConfigImpl();<br /> xmlrpcConfgDb.setEnabledForExceptions(true);<br /> xmlrpcConfgDb.setServerURL(new URL(<br /> "http://localhost:8069/xmlrpc/object"));<br /><br /> xmlrpc.setConfig(xmlrpcConfgDb);<br /><br /> String dbname = "openerp";<br /> int uid = 1;<br /> String pwd = "000000";<br /> String model = "x_test";<br /><br /> Object[] params = new Object[] { "openerp", 1, "000000", "ir.ui.view",<br /> "read", ids, fields };<br /><br /> try {<br /><br /> Object[] o = (Object[]) xmlrpc.execute("execute", params);<br /><br /> // System.out.println("finished");<br /> System.out.println(o.length);<br /> for (Object obj : o) {<br /> // System.out.println(obj);<br /><br /> HashMap h = (HashMap)obj;<br /> //System.out.println(h.keySet().size());<br /> System.out.println("the id is:");<br /> System.out.println(h.get("id"));<br /> System.out.println("the arch is:");<br /> System.out.println(h.get("arch"));<br /> }<br /> } catch (Exception e) {<br /> e.printStackTrace();<br /><br /> }<br /> }<br /><br />}<br />
i'm '深圳-steven' ...