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. SQl Server 中的decimal( m , n )的意思

    create table sc( cno ), sno ), grade ,), primary key(cno,sno), foreign key(cno) references cou(cno), ...

  2. 【RTOS】基于V7开发板的RTX5和FreeRTOS带CMSIS-RTOS V2封装层的模板例程下载,AC6和AC5两个版本

    说明: 1.使用MDK的RTE环境开发RTX5和FreeRTOS,简单易移植,统一采用CMSIS-RTOS V2封装层. 2.DTCM是H7里面性能最高的RAM,主频400MHz,跟内核速度一样,所以 ...

  3. [Spring cloud 一步步实现广告系统] 3. 网关路由

    Zuul(Router and Filter) WIKI: 传送门 作用 认证,鉴权(Authentication/Security) 预判(Insights) 压力测试(Stress Testing ...

  4. 一起学SpringMVC之注解

    概述 SpringMVC不仅提供了Xml的配置方式,还提供了注解的方式来声明一个Controller,本文属于SpringMVC的入门级内容,仅供学习分享使用,如有不足之处,还请指正. SpringM ...

  5. java架构之-负载均衡-Ribbon 的使用

    一. 什么是负载均衡负载均衡就是分发请求流量到不同的服务器.负载均衡一般分为两种:1. 服务器端负载均衡(nginx) 2. 客户端负载均衡(Ribbon) 二. spring- - cloud- - ...

  6. 执行超大的.sql文件处理,100M++

    sqlcmd的命令参数如下: 1    [-U 登录 ID]             [-P 密码] 2  [-S 服务器]                [-H 主机名]           [-E ...

  7. ASP.Net 连接多个数据库之间的切换

    本次两个的两个数据是SQL Server 和ORCAL 首先在Web.congfig中 <connectionStrings> </connectionStrings>里面添加 ...

  8. Cesium专栏-热力图(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  9. Flutter学习一

    包管理 依赖本地包 dependencies: pkg1: path: ../../code/pkg1 依赖git包 dependencies: pkg1: git: url: git://githu ...

  10. Access denied for user 'root@localhost' (using password:NO)问题的解决

    错误详情: 使用pymysql连接数据库mysql,一直无法连接上, conn = pymysql.connect(host='localhost', port=3306, user='root', ...