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. ES6 ES7 ES8 相关用法

    set Set作为ES6新的数据解构(类数组),它的成员都是唯一的,因为最直接的使用场景便是去重.并.差.交集的使用.它使用的算法叫做“Same-value-zero equality”,类似精确运算 ...

  2. [译]Vulkan教程(11)Image Views

    Image views To use any VkImage, including those in the swap chain, in the render pipeline we have to ...

  3. ArrayList 与数组的“纠缠不清”的暧昧

    目录 前言 正话(个人的见解,有误请多指教) 惯例先明白它是什么? 那么它有什么用呢? 怎么用 前言 能不能有一种数组可以在删除掉某些元素自动缩小就好了.可是话说哪里学的Java?数组能删除元素吗?今 ...

  4. 【docker构建】基于docker构建rabbitmq消息队列管理服务

    1. 拉取镜像 # 可以在官网查看版本 [root@VM_0_10_centos wordpress]# docker pull rabbitmq:3.7.7-management 2. 根据拉取的镜 ...

  5. 02-Nginx配置

    一.Nginx配置 1.创建Nginx运行使用的用户 www: / usr / sbin / groupadd www / usr / sbin / useradd -g www www 2.检查配置 ...

  6. 在Python中使用MySQL--PyMySQL的基本使用

    PyMySQL的使用 安装 sudo pip3 install pymysql 基本使用 from pymysql import connect # 1.创建链接 coon = connect() & ...

  7. 利用Python进行数据分析-Pandas(第六部分-数据聚合与分组运算)

    对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节.在将数据集加载.融合.准备好之后,通常是计算分组统计或生成透视表.pandas提供了一个灵活高效的group ...

  8. SSM整合2(springMVC+mybatis)

    客户在浏览器端会提交一些参数到服务器端,比如用户的登录等,就会传username 和 password过来,springmvc则通过参数绑定组件将请求参数的内容进行数据转换,然后将转换后的值覆给con ...

  9. 【SDUT】2019SDUTACM第一次选拔赛 F- X的追求道路

    Problem Description X在大家的帮助下终于找到了一个妹纸,于是开始了漫漫的追求之路,那么大家猜一猜X能不能追的上呢? X初始对妹纸有一个心动值,妹纸对X有一个好感值,在追求时发生的的 ...

  10. 使用elementUI的日期选择框,两选择框关联时间限值

    elementui 本身也提供了在一个输入框内关联选择时间的组件,非常好使,但无奈项目需要用两个输入框去关联的选择: <el-date-picker class="datepicker ...