SAP调用泛微Servlet接口,发起流程
编写servlet接口,给SAP调用
public class SAPCreateWorkflow extends HttpServlet{
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置请求头信息
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Max-Age", "4200");
response.setHeader("Access-Control-Allow-Headers", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
RequestInfo ri = null;//用于后面发起流程的时候
int requestId = 0;
message msg = new message();//用于后面创建流程成功或者失败传给SAP的信息
Gson gson = new Gson();
String reqString = "";
// 获取请求体的输入流
BufferedReader reader = null;
StringBuilder stringBuilder = new StringBuilder();
String line;
try {
SAPConnect connct = new SAPConnect();
RecordSet rs = new RecordSet();
reader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reqString = stringBuilder.toString();
System.out.println("获取的请求传递的参数"+reqString);//SAP传递的参数
JSONObject HEAD=JSON.parseObject(reqString).getJSONObject("HEAD");//将获取的String数据格式化成json数据,然后获取json中的值
JSONArray ITEM=JSON.parseObject(reqString).getJSONArray("item");
System.out.println("head的值"+head);
System.out.println("输出item的值"+item);
//一般到这里能成功输出相应json数据就表明SAP请求成功将参数传给了OA
//................接下来就是通过json获取具体变量的值,然后编写创建流程的步骤了,在这里就不过多赘述了
}catch(Exception e){
//这里编写一些异常操作的信息
}
}
}
以上就是对SAP调用发起OA接口的全部介绍,后半部分关于流程的创建和请求就没有关系了,直接参考泛微oa开发文档,将获取的变量数据插入到流程中即可
重要的是别忘记了,编写完servlet接口之后,需要在web.xml文件里面注册servlet接口
位置在WEB-INF中的web.xml文件
<servlet>
<servlet-name>SAPCreateWorkflow </servlet-name>
<servlet-class>com.jiuyi.servlet.SAPCreateWorkflow </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SAPCreateWorkflow </servlet-name>
<url-pattern>/SAPCreateWorkflow </url-pattern>
</servlet-mapping>
完成以上所有步骤之后,将接口更新到测试环境,加上http前缀之后,就可以在postman中测试接口是否成功创建流程了