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. 跨域问题,解决方案-Nginx反向代理

    跨域问题,解决之道 跨域问题,在日常开发过程中,是一个非常熟悉的名词.今天的话题,结合我之前的项目场景,讨论下<跨域问题,解决之道>. 跨域是什么 跨域问题,是由于JavaScript出于 ...

  2. CountDownLatch原理分析

    CountDownLatch原理分析 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行.例如,应用程序的主线程希望在负责启动框架服务的线程已经启动 ...

  3. Git终端命令行的常用操作

    一.git源代码管理的优点 方便多人协同开发.工作 降低代码的管理成本 良好的分支管理机制 二.结构分析 服务端和客户端都有版本控制能力,都能进行代码的提交.合并 结构一: 结构二: 三.工作区的创建 ...

  4. 【Unity游戏开发】Android6.0以上的动态权限申请问题

    一.引子 最近公司的游戏在做安全性测试,期间也暴露出了不少安全上的问题.虽然我们今天要说的权限申请和安全性相关不大,但是也会影响到游戏的使用体验等,所以本篇博客中马三就想和大家谈谈Android6.0 ...

  5. Swoole Redis 连接池的实现

    概述 这是关于 Swoole 入门学习的第九篇文章:Swoole Redis 连接池的实现. 第八篇:Swoole MySQL 连接池的实现 第七篇:Swoole RPC 的实现 第六篇:Swoole ...

  6. 【Hash一致性算法】什么是Hash一致性算法

    目录 1. 一致性Hash算法简介 环形Hash空间 把数据通过一定的hash算法处理后映射到环上 将机器通过hash算法映射到环上 机器的删除与添加 平衡性 本文转载自博客 1. 一致性Hash算法 ...

  7. 基于SSM的crm管理系统

    学完crm后的第一个项目实践,前端样式与标签库都是现成的. 开发环境 eclipse,mysql,jdk1.7 项目架构 整合思路 Dao层: 1.SqlMapConfig.xml,添加别名,但是需要 ...

  8. Spring Boot 2.2.2.RELEASE 版本中文参考文档【3.2 - 3.10】

    Spring Boot 2.2.2.RELEASE版本中文文档持续更新中~如有需要获取参考文档文件,关注公众号JavaSo,回复“参考文档”即可. 3.2 结构化代码 Spring Boot不需要任何 ...

  9. Java - 运算符 方法

    本位是复习笔记,不适合零基础 赋值运算符 变量 名称 = 值/表达式 ; 需要注意的是,赋值运算符的计算是按照从右往左的; 注意: 1.在使用赋值符号时,必须保证左侧的类型范围大于等于右侧产生的类型 ...

  10. ubuntu 中安装jenkins,基于docker运行jenkins

     本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中,至于docker如何安装,本文不再描述,大家可以上网查询下,如何安装docker,下面先放上一个使用jenkin ...