(1)转载:”https://blog.csdn.net/qice675563721/article/details/74000124
用这个api有时候会报错,基本上是因为包没引入完,
引入这几个包后基本上没什么问题,
但是对于JSONObject.fromObject 和 SONObject.toBean的使用为:
String strTmp = "{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\",\"resJson\":{\"errmsg\":\"ok\",\"ErrorCode\":0,\"messageId\":\"f5d4566c4c833152b3feb42a8092ee6c\",\"invaliduser\":\"\",\"forbiddenUserId\":\"\"}}";
JSONObject jb = JSONObject.fromObject(strTmp);
Map<String, Object> resmap = (Map<String, Object>)jb;
System.out.println("-----resmap:---"+resmap.toString());
String json = "{id:'1001',name:'张三',age:'22'}";
student stu = new student();
JSONObject obj = JSONObject.fromObject(json);
stu = (student)JSONObject.toBean(obj, student.class);
System.out.println(stu);
package bao;
public class student {
private int id ;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return this.id + ",==== " + this.name + ", " + this.age;
}
}
结果为:
-----resmap:---{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":"","resJson":{"errmsg":"ok","ErrorCode":0,"messageId":"f5d4566c4c833152b3feb42a8092ee6c","invaliduser":"","forbiddenUserId":""}}
1001,==== 张三, 22
(2)修改状态JobStatus
这次的代码主要是抛砖物料到OA,实现的步骤差不多,主要是34.6版本用的是脚本执行。
首先是找到抛砖的按钮
(1)
然后由于
JSONObject json = JSONObject.fromObject(map);没有抛异常吗,很是奇怪,
于是主管在dynaTeam下面new了一个新的class测试文件,然后
package dyna;
import java.util.HashMap;
import net.sf.json.JSONObject;
public class JSONTest
{
/**
* @param args
*/
public static void main(String[] args)
{
HashMap<String,String> map=new HashMap<String,String>();
map.put("A", "B");
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.toString());
}
}
发现是缺少架包。
用这个api的时候会报错,基本上市因为没有引入完架包。
commons-beanutils-1.9.2.jar;
commons-collections-3.2.2.jar;
commons-lang-2.6.jar;
commons-logging-1.2.jar;
ezmorph-1.0.6.jar;
json-lib-2.4-jdk15.jar(2)发现客户端执行成功,生成抛砖队列之后,服务器不执行,仅当服务器重启才可以。
于是
update SA_JOB_QUEUE sjq set sjq.jobstatus=0 where sjq.jobstatus=4
select sjq.jobstatus from SA_JOB_QUEUE sjq where sjq.jobstatus=1
JobStatus.java这是一个job的状态列表。0是等待执行,1是正在执行,2是取消执行,3是执行成功,4是执行失败。
然后先弄一条是等待的,然后开启服务器,这样就不用每次去客户端建一条正在等待的队列。
var jss=provider.getServiceInstance(JSS,sid);
var boas=provider.getServiceInstance(BOAS,sid);
var ERPStub = new JSERPStub(jss);
var objectGuid=inputObject.getObjectGuid();
var classObject = ClassStub.getClassObjectByName("JG_SHEETMETAL");
var flag = true;
var foundation = boas.getObject(objectGuid);
var role = boas.getUserSignature().getLoginRoleId();//获取当前用户角色
var USERNAME = boas.getUserSignature().getUserName();//获取当前用户
var OWNERNAME = foundation.get("OWNERUSER$NAME");//获取数据的所有者名称
//if (!OWNERNAME.equals("admin"))
//{
//if (!OWNERNAME.equals(USERNAME))
//{
if(!role.equals("OAGLY"))
{
return ServiceRequestException("不是传OA角色,没有操作权限!", "A");
}
//}
//}
if(null!=foundation.get("SFYC_ITEM"))
{
if(foundation.get("SFYC_ITEM").equals("Y"))
{
return ServiceRequestException("该物料的BOM结构已抛转至ERP,不能重复抛转!", "A");
}
}
if(foundation!=null)
{
foundation.put("alterid$",foundation.get("SAPBH"));
boas.saveObject(foundation, false, false,false, null, false, false, false);
}
var list = classObject.getChildList();
for(var i = 0;i<list.size();i++){
var co = list.get(i);
if(co.getInfo().getGuid().equals(objectGuid.getClassGuid())){
JSERPStub.createJSERPJob(objectGuid,"ITEMBJ",jss);
flag= false;
break;
}
}
if(flag){
JSERPStub.createJSERPJob(objectGuid,"ITEM",jss);
}