package com.seeyon.apps.ext.kk.flow.hc;

import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map; import javax.xml.rpc.ServiceException; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import com.seeyon.apps.ext.kk.flow.KKBaseFlow;
import com.seeyon.apps.ext.kk.sap.DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ;
import com.seeyon.apps.ext.kk.sap.DT_ACCOUNT_PERIOD_RESZACCOUNT_PERIOD_RES;
import com.seeyon.apps.ext.kk.sap.SI_ACCOUNT_PERIOD_OUTBindingStub;
import com.seeyon.apps.ext.kk.sap.SI_ACCOUNT_PERIOD_OUTServiceLocator;
import com.seeyon.ctp.common.exceptions.BusinessException;
import com.seeyon.ctp.util.DateUtil;
import com.seeyon.ctp.workflow.event.AbstractWorkflowEvent;
import com.seeyon.ctp.workflow.event.WorkflowEventData;
import com.seeyon.ctp.workflow.event.WorkflowEventResult; public class ZqxgSqWorkFlow extends KKBaseFlow {
private static final Log LOG = LogFactory.getLog(ZqxgSqWorkFlow.class); @Override
public String getId() {// 这个是唯一ID
return "Zqxg001";
} @Override
public String getLabel() {// 这个是在开发高级里面显示的事件名称
return "账期修改申请(处理前)";
} // 节点操作事件:处理前事件
public WorkflowEventResult onBeforeFinishWorkitem(WorkflowEventData data) { WorkflowEventResult error = new WorkflowEventResult();
try {
SI_ACCOUNT_PERIOD_OUTServiceLocator locator = new SI_ACCOUNT_PERIOD_OUTServiceLocator();//编译这个类可以跳转至对应SAP的IP地址
SI_ACCOUNT_PERIOD_OUTBindingStub stub = (SI_ACCOUNT_PERIOD_OUTBindingStub) locator.getHTTP_Port();
stub.setUsername(this.userName);
stub.setPassword(this.passWord); Date t = new Date();// 传入日期
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd"); Date p = new Date();// 传入时间
SimpleDateFormat time = new SimpleDateFormat("HHmmss"); List<String> burks = (List<String>) data.getBusinessData().get("field0009");// 公司代码
List<String> kunnr = (List<String>) data.getBusinessData().get("field0010"); // 客户名称
List<String> zterm = (List<String>) data.getBusinessData().get("field0013"); // 原账期
List<String> oterm = (List<String>) data.getBusinessData().get("field0015"); // 现付款账期 Date crdat = (Date) data.getBusinessData().get("field0003"); // 申请日期
List<Date> efdat = (List<Date>) data.getBusinessData().get("field0014"); // 实行的对账月份 String zdate = sf.format(t);// 传入日期
String ztime = time.format(p);// 传入时间 String zoanum = (String) data.getBusinessData().get("field0001");// 流水号
String usnam = (String) data.getBusinessData().get("field0002");// 发起人
// 查找员工号
String skrName = this.orgManager.getMemberById((Long.valueOf(usnam))).getCode();
SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd"); List<DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ> vl = new ArrayList<DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ>(); for (int i = 0; i < burks.size(); i++) {
DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ req = new DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ();
req.setBURKS(burks.get(i).toString());
req.setKUNNR(kunnr.get(i).toString());
req.setZTERM(zterm.get(i).toString());
req.setOTERM(oterm.get(i).toString());
req.setCRDAT(DateUtil.format(crdat, "yyyyMMdd"));
req.setEFDAT(DateUtil.format((Date) (efdat.get(i)), "yyyyMMdd"));
req.setZDATE(zdate);// 传入日期
req.setZTIME(ztime);// 传入时间
req.setZOANUM(zoanum);
req.setUSNAM(skrName.toString());
vl.add(req);
}
DT_ACCOUNT_PERIOD_RESZACCOUNT_PERIOD_RES[] res = stub
.SI_ACCOUNT_PERIOD_OUT(vl.toArray(new DT_ACCOUNT_PERIOD_REQZACCOUNT_PERIOD_REQ[0]));
for (DT_ACCOUNT_PERIOD_RESZACCOUNT_PERIOD_RES obj : res) {
if ("E".equals(obj.getZRESULT())) {
error.setAlertMessage("Sap返回结果:" + obj.getZMESS() + ";");
}
}
} catch (Exception e) {
error.setAlertMessage("请联系管理员:" + e.getMessage());
e.printStackTrace();
LOG.info(e.getMessage());
}
return error;// NULL 流程可以正常走
}
// 节点操作事件:处理事件
}

private java.lang.String HTTPS_Port_address = "https://"+AppContext.getSystemProperty("ffl.sap.ip")+":50001/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_OA&receiverParty=&receiverService=&interface=SI_ACCOUNT_PERIOD_OUT&interfaceNamespace=http%3A%2F%2Fhuacan.com%2FOA%2FS4HAHA%2Faccount_period";

"ffl.sap.ip"引号里面的值可以直接使用接口的IP地址代替。

也可以直接在

<?xml version="1.0" encoding="UTF-8"?>
<ctpConfig>
<kk>
<sapUsername mark="userconfig" desc="Sap登录名"><![CDATA[HUACAN-OA]]></sapUsername>
<sapPassword mark="{password} {VE}" desc="Sap密码"><![CDATA[]]></sapPassword>
<sapSender mark="userconfig" desc="Sap发送人登陆名"><![CDATA[test]]></sapSender>
<sapIp mark="userconfig" desc="Sap地址的Ip"><![CDATA[具体IP]]></sapIp>
</kk>
</ctpConfig>

另外一种

<?xml version="1.0" encoding="UTF-8"?>
<ctpConfig>
<auth>
<authip mark="{VE}" desc="设置IP">http://127.0.0.1</authip>
</auth>
<ffl>
<sap>
<userName mark="userconfig" desc="用户名">15361</userName>
<passWord mark="userconfig" desc="密码">jinqi1986</passWord>
<ip mark="userconfig" desc="ip">192.169.12.171</ip>
</sap>
</ffl>
</ctpConfig>

OA传SAP设置(备忘)的更多相关文章

  1. 备忘:有MTU值设置不当导致的部分网站无法访问问题

    如题,有时候突然weibo.com,webQQ等网站网络连接超时,怎么找也没得原因,今天管理电信的光猫,发现设置的MTU的1400,突然想起之前电脑和路由器上设置的MTU是1500,感觉可能是这个问题 ...

  2. 『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因

    近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers). HttpWebRequest POST JSON数据,分如下几步: > 将 ...

  3. Nmap备忘单:从探索到漏洞利用(Part 5)

    这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...

  4. [原]TCP/UDP使用细节备忘

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  5. Sublime Text 备忘

    Sublime Text已经被传成编程利器,那当然也是我们前端的利器了,刚开始用的时候,很多小问题,所以做个备忘,忘记的时候也可以翻出来看看,下次重装的时候可以用到. 1.设置自动换行 菜单栏 Vie ...

  6. Zookeeper + Hadoop + Hbase部署备忘

    网上类似的文章很多,本文只是记录下来备忘.本文分四大步骤: 准备工作.安装zookeeper.安装hadoop.安装hbase,下面分别详细介绍: 一 准备工作 1. 下载 zookeeper.had ...

  7. Npm vs Yarn 之备忘大全

    有则笑话,如此讲到:"老丈人爱吃核桃,昨天买了二斤陪妻子送去,老丈人年轻时练过武,用手一拍核桃就碎了,笑着对我说:你还用锤子,你看我用手就成.我嘴一抽,来了句:人和动物最大的区别就是人会使用 ...

  8. centos 6.4 mysql rpm 离线安装【备忘】

    离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...

  9. AngularJS之备忘与诀窍

    译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的. ...

随机推荐

  1. BZOJ3894/LG4313 文理分科 新建点最小割

    问题描述 BZOJ3894 LG4313 题解 显然一个人只能选文/理 -> 一个人只能属于文(S).理(T)集合中的一个 可以把选择文得到 \(art\) 的收益看做选择文失去 \(scien ...

  2. javascript 代替jqueryeach写法

    javascript 代替jqueryeach写法 // 通过字面量方式实现的函数each var each = function(object, callback){ var type = (fun ...

  3. SpringCloud的入门学习之Eureka(高可用注册中心HA)构建Provider服务、Consumer服务

    1.在高可用的Eureka注册中心中构建provider服务. 使用springboot的多环境配置,来搭建Eureka的高可用集群式部署.由于使用的是maven构建的springboot项目,所以首 ...

  4. jvm虚拟机笔记<四> 虚拟机字节码执行引擎

    一.运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和执行的数据结构,是虚拟机栈的栈元素. 栈帧存储了局部变量表,操作数栈,动态连接,和返回地址等. 每一个方法的执行 对应的一个栈帧在虚拟机里面从入栈 ...

  5. Java生鲜电商平台-电商系统性能指标

    Java生鲜电商平台-电商系统性能指标 1.响应时间和吞吐量 根据应用程序的响应时间可以知道程序完成传输数据所用的时间.也可以从HTTP请求级别,或者成为数据库级别来看.对那些缓慢的查询你需要做一些优 ...

  6. JQuery jquerysessionjs插件使用介绍

    jquerysessionjs插件使用介绍 by:授客 QQ:1033553122 1.   测试环境 JQuery-3.2.1.min.j 下载地址: https://gitee.com/ishou ...

  7. Vue中通过Vue.extend动态创建实例

    Vue中通过Vue.extend动态创建实例 在Vue中,如果我们想要动态地来控制一个组件的显示和隐藏,比如通过点击按钮显示一个对话框或者弹出一条信息.我们通常会提前写好这个组件,然后通过v-if = ...

  8. ios中设置UIButton圆角,添加边框

    //例如: UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(50, ...

  9. angularjs $http请求网络数据并展示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 使用User-Agent防止HttpClient发送http请求时403 Forbidden和安全拦截

    问题的抛出 今天有客户反映,批付交易完成后,在我方服务器以“服务器点对点通信”的方式通知请求对方服务器时,对方拦截了请求.并贴了一张截图. 从截图可以看出来,对方拦截了我们的user-agent(Ap ...