摘要: 公司人事数据要求在系统间加密传输,而对接系统大部分是Java系统,要在不同的异构系统间能很好的加解密码,想到了标准的对称加密算法DES,因为是标准的算法,网络上存在大量公开用Java的DES算法,JAVA系统无需再写。但SAP里面没有找到DES加密的算法,所以只能在SAP里使用ABAP语言自己实现。 阅读全文
posted @ 2019-06-15 17:19 江正军 阅读(8107) 评论(4) 推荐(0) 编辑
摘要: Spring提供的org.springframework.util.Base64Utils类,先会检测JDK里是否自带java.util.Base64,如果不带,则使用的是apache提供的org.apache.commons.codec.binary.Base64: 经过一段时间的生产试运行来看, 阅读全文
posted @ 2019-05-09 20:14 江正军 阅读(4068) 评论(0) 推荐(0) 编辑
摘要: 最近公司服务器做迁移,原R3 PRE需要迁到另外的地方,迁移后一段时间内,需要两套PRE环境同时运行,过一段时间后才将传输路线切换到新的PRE。在切换前,要求新PRE环境也要正常同步发布请求,但传输路线只有一条,这需要在发原PRE时,同时手工发布新PRE,这样每次手工很麻烦(手工导入传输请求过程参考 阅读全文
posted @ 2018-03-06 15:44 江正军 阅读(7947) 评论(1) 推荐(2) 编辑
摘要: 项目中需要将HR模块中的表数据同步到Java系统中,向外围系统提供分发与查询服务,涉及到的表有两百多张,字段好几千上万个,如果手工一张张这些ABAP表在Java系统数据库中创建一遍的话,工作量将非常大,而且容易出错。该ABAP代码就是将需要的表转换成Java中的实体Bean,然后就可以使用Hibernate之类的持久化框架来自动生成表了。ABAP代码没有重构过,写得有点乱......将就着看吧RE... 阅读全文
posted @ 2018-01-25 12:51 江正军 阅读(3552) 评论(0) 推荐(1) 编辑
摘要: 公司今年计划大批扩建门店,需要自动化维护相关主数据,其中就有一步通过调用 WB01的BDC录屏来自动创建地点,前台跑没有问题,但后台JOB死活不行,屏幕是以前同事录好的,只能硬着头皮修改。后台任务日志: 抛RAISE_EXCEPTION异常。用ST22进去跟踪出错的代码:出错的地方:结合前台调式,发现了出错屏幕:即SAPLPLANT_DISPLAY_CUSTOMIZING的1000屏幕出问题,经查... 阅读全文
posted @ 2018-01-17 06:12 江正军 阅读(6627) 评论(2) 推荐(0) 编辑
摘要: 前几天安装的都没带演示数据 ,这个版本带DEMO数据,学习比较好我的机器配置:内存:128GCPU:E5-2618L V4硬盘:1T SSD安装在VMware虚拟机中,安装完后,虚拟机大小只有一百多G,没有想象中的大。64G内存没试过,直接上的两根64G条子,可以安装,并且速度还不错 http://192.168.1.110:8080/sap/bc/ui5_ui5/ui2/ushell/shel... 阅读全文
posted @ 2017-12-30 15:49 江正军 阅读(10339) 评论(21) 推荐(4) 编辑
摘要: 这几天要在ABAP中实现 3DES 标准对称加密算法,与其他外部系统进行加密/解密操作。由于ABAP语言中没有 左移 <<、无符号右移 >>> 操作,只能自己实现 思路: 如果移动的位数bit是字节(8位)的整数倍,则直接使用 SHIFT <i> BY p PLACES RIGHT IN BYTE  阅读全文
posted @ 2017-02-23 16:18 江正军 阅读(3537) 评论(0) 推荐(0) 编辑
摘要: 主要功能: 1、支持R3所有表(标准、自建)下传,下传方式为FTP 2、支持输出字段选择及顺序调整 3、支持动态条件,不同的表会有不同的选择条件,根据不同的条件选择需要下传的数据 4、支持单表、多表、以及输出数据再次加工(需自己写输出逻辑扩展程序,可参考YTEMPLET) 5、支持多表查询,及多表查 阅读全文
posted @ 2017-01-25 10:54 江正军 阅读(5560) 评论(2) 推荐(2) 编辑
摘要: 1 VM网络配置... 3 2 CentOS配置... 5 2.1 下载地址... 5 2.2 激活网卡... 5 2.3 SecureCRT. 5 2.4 修改主机名... 6 2.5 yum代理上网... 7 2.6 安装ifconfig. 8 2.7 wget安装与代理... 8 2.8 安装 阅读全文
posted @ 2017-01-24 22:16 江正军 阅读(3954) 评论(1) 推荐(0) 编辑
摘要: 1 数据类型... 5 1.1 日期时间类型... 5 1.1.1 DATE(日期)... 5 2 数据类型扩展... 5 2.1 标准数据类型... 5 2.2 创建Table类型... 5 2.3 删除类型... 6 3 存储过程... 6 3.1 CREATE PROCEDURE. 6 3.1 阅读全文
posted @ 2015-12-11 23:32 江正军 阅读(14055) 评论(0) 推荐(1) 编辑
摘要: 1 约束... 9 1.1 注释... 9 1.2 标识符... 9 1.3 单引号... 9 1.4 双引号... 9 1.5 SQL 保留字... 9 2 数据类型... 10 2.1 日期时间类型... 10 2.1.1 DATE(日期)... 10 2.1.2 TIME(时间)... 11 阅读全文
posted @ 2015-12-11 23:29 江正军 阅读(40905) 评论(3) 推荐(2) 编辑
摘要: 该文档是根据我过去多年学习与工作经验总结而成,项目开发过程中我都会参考此文档,主要ABAP很多细节上的东西还是还多,不可能你记得很牢固,或者你记得一时,但过不了几天就会忘记,毕竟同一东西你不可能一直做下去,有时项目跨度还是比较大的,需要用的东西也不太一样,有了此文档,加之以前你做过ABAP,回头再做 阅读全文
posted @ 2015-03-05 18:03 江正军 阅读(74131) 评论(41) 推荐(20) 编辑
摘要: 颗粒度尽量大:尽量不要在Cube里放太明细的数据(即维度字段越小越好),这种需求首先考虑R3用ABAP解决,如果非要在BW,可以考虑在DSO出明细报表,在Cube出汇总报表,通过RRI接口调用明细报表。 拆分多个:当Cube的数据量很大时,可以拆分成多个Cube,再用MultiProvider拼起来 阅读全文
posted @ 2015-02-23 00:42 江正军 阅读(2428) 评论(0) 推荐(0) 编辑
摘要: 外部系统(Java)调用BAPI函数... 78 安装JCo3. 78 创建JCo3连接... 79 直连... 79 连接池... 81 DestinationDataProvider接口(不需连接属性配置文件)... 82 访问结构 (Structure)84 访问表 (Table)84 Jav 阅读全文
posted @ 2015-02-14 17:18 江正军 阅读(26515) 评论(4) 推荐(2) 编辑
摘要: 场景需求分析A场景实现B场景实现C场景实现D场景实现 场景需求分析 对于某些与时间相关的数据(主数据有变化的数据)进行分析时,根据用户不同的需求,数据可归为4种不同的场景中,这4种场景是我们BW顾问建模之前一定要弄清楚的,要根据业务用户的需求才能确定采用那种场景,选定场景后我们才能开始建模。下面我会 阅读全文
posted @ 2015-02-02 21:21 江正军 阅读(5226) 评论(1) 推荐(2) 编辑
摘要: 12.5. 各种屏幕元素演示 TABLES: mara,marc.DATA: g_pg(24).SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001. PARAMETERS: p_bukrs LIKE t001-bukrs OBL 阅读全文
posted @ 2015-02-01 09:05 江正军 阅读(19334) 评论(0) 推荐(0) 编辑
摘要: 11.2. 程序 1. READ TABLE ...WITH [TABLE] KEY...BINARY SEARCH读取标准内表使用二分查找 2. 在循环(LOOP AT ...WHERE..)或查询(READ TABLE ...)某内表时,如果未使用索引(排序表、哈希表)或二分查找,则在查询组合字 阅读全文
posted @ 2015-02-01 08:35 江正军 阅读(6495) 评论(0) 推荐(2) 编辑
摘要: 11.1. 数据库编程方面优化 1. 不要使用 SELECT * ...,选择需要的字段, SELECT * 既浪费CPU,又浪费网络带宽资源,还需占用大量的ABAP内存 2. 不要使用SELECT DISTINCT ...,会绕过缓存,可使用 SORT BY + DELETE ADJACENT D 阅读全文
posted @ 2015-02-01 08:28 江正军 阅读(11945) 评论(0) 推荐(3) 编辑
摘要: package com.suning.epp.trt.util.r32epp;import java.io.BufferedInputStream;import java.io.IOException;import java.net.URLDecoder;import java.security.cert.CertificateException;import java.security.cert... 阅读全文
posted @ 2017-09-18 12:32 江正军 阅读(2158) 评论(0) 推荐(0) 编辑
摘要: package com.suning.hrqz.utils;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import javax.crypto.Cipher;import javax.crypt... 阅读全文
posted @ 2017-08-14 12:22 江正军 阅读(1198) 评论(0) 推荐(0) 编辑
摘要: Application:spark应用程序,就是用户基于spark api开发的程序,一定是通过一个有main方法的类执行的,比如java开发spark,就是在eclipse中,建立的一个工程Application Jar:这个就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包,比如java中,就用maven+assembly插件打包最方便Driver Progra... 阅读全文
posted @ 2017-08-02 23:06 江正军 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-08-01 11:06 江正军 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 注:新版本接口中Iterable已换成Iterator 阅读全文
posted @ 2017-08-01 09:00 江正军 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 文本中有如下内容:1 52 43 61 32 1现要求对文本行进行排序,第一列相同时,比较第二列Java版:package sparkcore.java;import java.io.Serializable;import scala.math.Ordered;/** * 自定义的二次排序key */public class SecondarySortKey implements Orde... 阅读全文
posted @ 2017-07-31 19:51 江正军 阅读(848) 评论(0) 推荐(0) 编辑
摘要: SAP ——ABAP/4 技术总结 V3.0 2014-10-14 --江正军 SAP ——ABAP/4 技术总结 V3.0 2014-10-14 --江正军 1. 基础... 1 1.1. 基本数据类型... 1 1.1.1. P类型(压缩型)数据... 1 1.2. TYPE、LIKE. 2 1 阅读全文
posted @ 2017-07-31 18:12 江正军 阅读(166428) 评论(9) 推荐(20) 编辑
摘要: 1、Java版本: 1.1、取前3package sparkcore.java;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apac... 阅读全文
posted @ 2017-07-31 18:03 江正军 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 共享变量工作原理Spark一个非常重要的特性就是共享变量。 默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。 Spark为此提供了两种共享变量,一种是Broadcast Variable(广播变量),另一种是Accumulator(累加变量)。... 阅读全文
posted @ 2017-07-31 12:46 江正军 阅读(1843) 评论(0) 推荐(0) 编辑
摘要: package sparkcore.java;import java.util.Arrays;import java.util.Iterator;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import ... 阅读全文
posted @ 2017-07-31 12:46 江正军 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 为了避免多次计算同一个RDD(如上面的同一result RDD就调用了两次Action操作),可以让Spark对数据进行持久化。当我们让Spark持久化存储一个RDD时,计算出RDD的节点会分别保存它们所求出的分区数据。如果一个有持久化数据的节点发生故障,Spark会在需要用到缓存的数据时重算丢失的数据分区。Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时... 阅读全文
posted @ 2017-07-31 12:44 江正军 阅读(957) 评论(0) 推荐(0) 编辑
摘要: 1、reduce:2、collect:3、count:4、take:5、saveAsTextFile:6、countByKey:7、foreach:package sparkcore.java;import java.util.Arrays;import java.util.List;import java.util.Map;import org.apache.spark.SparkConf;im... 阅读全文
posted @ 2017-07-31 12:43 江正军 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 常用Transformation 注:某些函数只有PairRDD只有,而普通的RDD则没有,比如gropuByKey、reduceByKey、sortByKey、join、cogroup等函数要根据Key进行分组或直接操作 RDD基本转换: RDD[U] map(f: T => U) T:原RDD中元素类型 U:新RDD中元素类型 ... 阅读全文
posted @ 2017-07-31 12:42 江正军 阅读(1715) 评论(0) 推荐(0) 编辑
摘要: 1、map:将集合中每个元素乘以22、filter:过滤出集合中的偶数3、flatMap:将行拆分为单词4、groupByKey:将每个班级的成绩进行分组5、reduceByKey:统计每个班级的总分6、sortByKey、sortBy:将学生分数进行排序7、join:打印每个学生的成绩8、cogroup:打印每个学生的成绩 package sparkcore.java;import java.u... 阅读全文
posted @ 2017-07-28 17:59 江正军 阅读(1220) 评论(0) 推荐(0) 编辑
摘要: 1、transformation和action介绍Spark支持两种RDD操作:transformation和action。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并可以返回结果给Driver程序。 例如,map就是一种transformation操作,它用于将已有RDD的每个元素传入... 阅读全文
posted @ 2017-07-26 20:26 江正军 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 附件列表 阅读全文
posted @ 2017-07-26 18:34 江正军 阅读(423) 评论(0) 推荐(0) 编辑
摘要: Spark Core提供了三种创建RDD的方式,包括:使用程序中的集合创建RDD;使用本地文件创建RDD;使用HDFS文件创建RDD。1、并行化集合如果要通过并行化集合来创建RDD,需要针对程序中的集合,调用SparkContext的parallelize()方法。Spark会将集合中的数据拷贝到集群上去,形成一个分布式的数据集合,也就是一个RDD。相当于是,集合中的部分数据会到一个节点上,而另一... 阅读全文
posted @ 2017-07-26 18:34 江正军 阅读(2682) 评论(0) 推荐(0) 编辑
摘要: 1、开发环境1、eclipse-jee-neon-32、scala-ide:http://download.scala-ide.org/sdk/lithium/e46/scala212/stable/site3、下载Maven,修改D:\apache-maven-3.5.0\conf\settings.xml配置文件:本地库位置: D:/apache-maven-3.5.0/localRep... 阅读全文
posted @ 2017-07-18 22:37 江正军 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 跳出循环语句的3种方法... 2 多维数组... 3 Java数组与Scala数组缓冲的隐式转换... 3 Java Map与Scala Map的隐式转换... 3 Tuple拉链操作... 4 内部类的作用域:外部类对象... 4 扩大内部类作用域:伴生对象... 4 扩大内部类作用域:类型投影... 5 内部类获取外部类的引用... 5 package定义... 5 p... 阅读全文
posted @ 2017-07-11 18:57 江正军 阅读(1891) 评论(0) 推荐(0) 编辑
摘要: Scala与Java的关系... 4 安装Scala. 4 Scala解释器的使用... 4 声明变量... 5 数据类型与操作符... 5 函数调用与apply()函数... 5 if表达式... 6 语句终结符、块表达式... 6 输入和输出... 6 循环... 7 高级for循环... 7 函数的定义与调用... 8 在代码块中定义包含多行语句的函数体... 8... 阅读全文
posted @ 2017-06-29 06:55 江正军 阅读(2788) 评论(0) 推荐(0) 编辑
摘要: node1192.168.1.11node2192.168.1.12node3192.168.1.13备注NameNodeHadoopYY高可用DateNode YYYResourceManager YY高可用NodeManagerYYYJournalNodes YYY奇数个,至少3个节点ZKFC(DFSZKFailoverController)YY 有namenode的地方就有ZKFCQuo... 阅读全文
posted @ 2017-06-28 13:04 江正军 阅读(3807) 评论(0) 推荐(0) 编辑
摘要: 软件包: apache-ant-1.9.9-bin.tar.gz apache-maven-3.3.9-bin.tar.gz apache-tomcat-6.0.44.tar.gz CentOS-6.9-x86_64-minimal.iso findbugs-3.0.1.tar.gz hadoop- 阅读全文
posted @ 2017-06-22 16:49 江正军 阅读(3460) 评论(0) 推荐(1) 编辑
摘要: 系统是老R3,非Unicdoe系统,某些表字段是从外界系统过来的,由于接口设计的固定长度,外界系统传超长字符串过来后,就可能从最后一个中文字符中间截断,这问题到还没什么,只不过显示时最后一个字符显示成乱码而已,但是,如果将这些表字段捞出来与其它分隔符(如竖线) CONCATENATE时,可能会将这个分隔符吃掉,导致这些数据抛到对方系统后,无法再分隔,还原成一个个字段 ... 阅读全文
posted @ 2017-03-31 19:56 江正军 阅读(4681) 评论(0) 推荐(1) 编辑
摘要: 1 快速入门... 4 1.1 分号... 4 1.2 常变量声明... 4 1.2.1 val常量... 4 1.2.2 var变量... 4 1.2.3 类型推导... 5 1.2.4 函数编程风格... 5 1.3 Range.... 阅读全文
posted @ 2017-02-23 20:07 江正军 阅读(8439) 评论(0) 推荐(0) 编辑
摘要: 1 气象数据导入... 4 2 Mapper、Reducer类... 5 3 找最高气温... 7 4 JOB JAR运行... 9 5 数据流... 9 6 combiner. 11 6.1 Hadoop2 NameNode元数据相关文件目录解析... 12 7 MapReduce输入输出类型.. 阅读全文
posted @ 2017-01-25 11:31 江正军 阅读(3228) 评论(1) 推荐(1) 编辑
摘要: 基本数据类型... 3 查看所有函数... 3 搜索函数... 3 搜索表... 4 查看函数使用方法... 4 关键字补全... 4 显示表头... 4 SET环境变量... 5 查看建表语句、数据文件置... 5 执行外部命令... 6 NVL. 6 CONCAT. 7 IF. 7 CASE. 阅读全文
posted @ 2017-01-25 11:20 江正军 阅读(6993) 评论(3) 推荐(1) 编辑
摘要: 又是非Unicode老系统问题,当有中文时,截取就成问题,原因是中文占两字节,而英文只占一个字节,而在老R3系统中C类型只占一个字节。思路:将字符统一转换成Unicode后截取DATA: s TYPE string.s = '1a的的的b1才才才饿饿饿d1是是是e1哦哦哦'.WRITE:/ s .WRITE:/ s+14(5)."直接取会出乱码!!PERFORM frm_substring USI... 阅读全文
posted @ 2017-01-25 08:52 江正军 阅读(3003) 评论(0) 推荐(1) 编辑
摘要: 老R3(非Unicode系统),发现读取出来的数据中有编码为0的字符,存文件后发现串行,所以需要先替换DATA: str TYPE string.*str = zacct_12-txt+47.str = '南京人力资源部'."C4CFBEA9C8CBC1A6D7CAD4B4B2BFDATA:c(17).FIELD-SYMBOLS: TYPE x .ASSIGN c TO CASTING. = ... 阅读全文
posted @ 2017-01-25 08:51 江正军 阅读(3065) 评论(0) 推荐(0) 编辑
摘要: Note: While using this option you need to replicate the standard table into SAP HANA that is T005T, T005U, T009, and T009B. If these standard tables a 阅读全文
posted @ 2015-12-11 23:44 江正军 阅读(2488) 评论(0) 推荐(0) 编辑
摘要: <!--more--> 1. Generate the master data from the specific time frame that you are interested in根据你输入的时间段来产生主数据 •On the Quick Launch Page > Data > Gene 阅读全文
posted @ 2015-12-11 23:41 江正军 阅读(1261) 评论(0) 推荐(0) 编辑