壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册
查看: 3386|回复: 29

[分享知识 原创连载]项目的点点滴滴,IT经历的路程(Peoplesoft+EBS)

[复制链接]
发表于 2013/7/12 09:42:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x

          揭榜到现在也有一周时间了,还没有着手去写一篇自己的文章,今天兴致勃发,记录一下自己这个项目的一些历程和IT生涯中的一点感悟。

           06年毕业,不懂世事一路狂奔到北京,为了求知当时在一家培训机构学习java,从此走上了码农的生涯。java这门语言的思想真好,给我在ERP技术领域很多帮助,同时也会从web开发和core java去理解一个产品的技术,比如:java是一个存面向对象体系,从 数据类型、 语法、IO、Socket、jsp、servlet、WEBService等;设计模式 多态、封装、集成、工厂、fascade、dao等;那么了解PeopleSoft、ebs的时候,也会从这些方面去考虑,这两个产品的这些技术的基本架构、语法、一些特有的实现方式等。这两个产品也是web架构的平台,同时提供了敏捷开发的工具。这使得定制化更容易。

            peoplesoft是一个很不错的产品,产品线如下:
            Campus Solutions (CS)
            Customer Relationship Management (CRM)
            Enterprise Learning Management (ELM)
            Enterprise Performance Management (EPM)
            Financials Supply Chain Management (FSCM)
            Human Capital Management (HCM)
            PeopleTools (PT)
            Portal Solutions (PS)         
            
            对peoplesoft使用HCM比较多,其他模块比较少,PT、PS是基础。
           
            先了解一下peoplesoft的产品技术架构:PIA有DB Server、Application Server、WebServer、BatchServer组成,PIA结构如图:

            

PIA1

PIA1

           
            
   通过浏览器http协议访问webserver,webserver和appserver用jolt建立连接,appserver从db获取数据后在返回webserver,在输出到浏览器,一个请求过程就完成了。在每个节点之间的协议是架构的基础,在理解安装有很好的理解。

         

PIA2

PIA2

  
   

PIA3

PIA3

   
    下一节:PS系统安装

         待续。。。



该贴已经同步到 hbnlzx的微博

点评

很有价值;宝贵的总结;  发表于 2013/8/14 06:42
好样的,希望你以后成为PS专家,ERP项目好经理!  发表于 2013/7/15 13:38

本帖被以下淘专辑推荐:

发表于 2013/7/12 10:45:33 | 显示全部楼层
个人简介:甲方ERP项目负责人
连载主题:项目的点点滴滴
发布频率:不定
首次发布日期:下周
计划发布在那个板块:Peoplesoft
更新周期:不定
本连载的亮点是:项目的一种经历
其他要说的话:项目是新项目,尚未启动。能总结下来一些经历过的事情

纵横四海点评:我和丙南是好朋友,丙南属于干活特别快,特别聪明的人之一,干事情的速度是我见过的很快的人之一;他对PS有一种特殊的感情,也经历过若干个PS实施项目,EHR项目都是有故事的,项目从启动到最后落地,需要经历很多的事情,而他就会用他的体会来连载,希望这篇连载对于后续需要上PS的朋友更多指导和借鉴意义;
发表于 2013/7/12 12:05:32 | 显示全部楼层
顶一下兄弟

点评

等你不忙的时候你也出一个连载吧;  发表于 2013/7/12 12:25
发表于 2013/7/12 13:03:47 | 显示全部楼层
希望全面了解Peoplesoft HCM以及Peoplesoft和EBS整合的朋友请不要错过这个连载;丙南参与过两个Peoplesoft+EBS项目,这种经验很是难得;\n\n 来自 纵横四海胡万军 的新浪微博
发表于 2013/7/12 13:14:41 | 显示全部楼层
支持一下,期待更多的内容。
 楼主| 发表于 2013/7/13 11:08:41 | 显示全部楼层
本帖最后由 hbnlzx 于 2013/7/13 11:13 编辑

接上篇文档,本篇为Peoplesoft安装,初稿终于完成,正在检查;准备下周发出。目录为
目录

由于文档内容很多图片量太大,以附件的方式发。

 楼主| 发表于 2013/7/15 09:24:05 | 显示全部楼层
[分享知识 原创连载]项目的点点滴滴,IT经历的路程(Peoplesoft+EBS)之 深入浅出Peoplesoft最新版本安装

希望能给在ps道路上的朋友们带来一点帮助。
学会安装其实是更多的对软件架构的理解,在开发中也会有所帮助。
文档在附件中


深入浅出Peoplesoft系统安装.docx

2.56 MB, 下载次数: 66, 下载积分: 努力值 -5 点

深入浅出Peoplesoft

发表于 2013/7/15 09:52:54 | 显示全部楼层
已经对PeopleSoft的安装作了非常详细的说明,目前为止最为详细的Peoplesoft安装说明;请研究PeopleSoft的朋友不要错过; @程时旭 @Oracle老朱 恳请转发;http://t.cn/zQ4by8c\n\n 来自 纵横四海胡万军 的新浪微博
发表于 2013/7/15 09:52:54 | 显示全部楼层
学习@事实证明想黑别人就得换个埃迪 //@纵横四海胡万军: 已经对PeopleSoft的安装作了非常详细的说明,目前为止最为详细的Peoplesoft安装说明;请研究PeopleSoft的朋友不要错过; @程时旭 @Oracle老朱 恳请转发;http://t.cn/zQ4by8c\n\n 来自 陈_楚豪 的新浪微博
发表于 2013/7/15 09:52:54 | 显示全部楼层
回复@纵横四海胡万军:[给力]强力推荐。\n\n 来自 程时旭 的新浪微博
发表于 2013/7/24 15:11:05 | 显示全部楼层
{:soso_e179:}
 楼主| 发表于 2013/7/25 20:00:14 | 显示全部楼层
过段时间谢谢我项目的血泪史

点评

有挫折是好事,人就需要经历一些没经历过的  发表于 2013/7/30 14:33
你之前的项目都太顺利了,需要给你一些挫折;  发表于 2013/7/25 20:32
 楼主| 发表于 2013/7/30 16:17:40 | 显示全部楼层
本帖最后由 hbnlzx 于 2013/7/30 16:21 编辑

深入浅出之EBS薪资计提接口。

          现在市场上,实施Peoplesoft的公司大多数都用EBS做财务管理软件,今天一个朋友问我这个接口应该怎么做。我来说说以前项目的做法。
         1、XX的接口设计
               EBS和Peoplesoft薪资计提接口,首先要明确财务在薪资接口要求。比如都需要那类凭证。然后考虑凭证的数据源匹配的问题。首先从底层数据源开始。财务凭证主要就是账户结构,财务的几段和人资管理的组织结构可能不是完全匹配或者根本就是两套管理。那这个时候就需要做映射。在XX公司的时候映射是做在了EBS系统中,当时做3类的映射,公司映射表单,部门映射表单,薪资项和科目段映射表单。这三类映射做好后。就按照GL_INTERFACE接口设计一个自定义的接口表。PS使用AE技术把 可写数组表中的数据 传过来。 在PS可写数组表中有一些薪资项目的金额要用复数的形式汇总才可以。
               在EBS和PS中存在一个问题,在设计的时候一定要把握好,就是小数位,EBS中一般是两位小数,但是PS中不同地区的社保可能是三位小数,这样存在小数差在生成凭证的时候就容易借贷不平,当然可以通过技术手段做平。
             A. 安全性  当时这个接口从ps到ebs是以明细数据传过去的。其实这样不太好。薪资的管理如果落在人资,那么这些保密数据就要以汇总格式过去。明细数据存在安全隐患。
             B.维护性  这些映射在财务系统,那后期的科目变动和部门调整就都落在财务人员。

         2. XX的接口设计
                 上面讲到维护映射,这个设计维护映射放在了ps系统中。ps系统按照薪资组吧元素划分开,针对元素分组来做科目映射,因为一类的元素的借贷科目基本是就是一对。这样做的维护量比较小。调整起来比较方便。
                 A。安全性 人资数据在AE程序中直接汇总过,EBS的维护人员就很难知道一组数据的分配规则。
                 B。维护性 部门调整一般都是人资部发起的,EBS跟着调整成本中心,那么从这个流程上说可能人资维护比较方便,薪资项映射一般情况下对应的科目很少有变化

           先介绍一下原理和思路。

发表于 2013/7/31 20:34:24 | 显示全部楼层
很不错的文档正需要谢谢
发表于 2013/8/14 15:17:21 | 显示全部楼层
期待LZ的项目经历分享
发表于 2013/8/15 11:51:04 | 显示全部楼层
期待下文,谢谢LZ的无私分享
发表于 2013/8/18 19:50:41 | 显示全部楼层
精品连载,持续跟进
不知道财务接口这块还会不会有详细

点评

也邀请你写连载;  发表于 2013/8/18 22:50
 楼主| 发表于 2013/8/20 16:52:25 | 显示全部楼层
深入浅出Peoplesoft之Java使用

        在Peoplesoft中使用java对象通过CreateJavaObject实例化对象,ObjectDoMethod来调用实例化对象中的方法。我把以前测试用的方法分享给大家。
在peoplecode中调用java使用的反射机制。所以在使用过程中有哪些问题,可以在eclipse中使用反射机制模拟peoplecode调用。如下:

         1、为了能快速使用Java中的类,首先在eclipse中对要使用的对象用反射机制模拟实现程序开发。
   在使用Java反射机制调用函数的时候,函数的参数类型一定要正确。参数类型可以再eclipse里看。
例如:
package com.lashou.services;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
public class PSDebug {
public static void main(String[] args) throws ClassNotFoundException,
   SecurityException, NoSuchMethodException, IllegalArgumentException,
   IllegalAccessException, InvocationTargetException,
   InstantiationException {
  HashMap emp = new HashMap();
  ArrayList empList = new ArrayList();
  empList.add("123");
  empList.add("234");
  emp.put("dept", new ArrayList());
  ArrayList empList1 = new ArrayList();
  empList1.add("123");
  empList1.add("234");
  ((ArrayList) emp.get("dept")).add(empList);
  ((ArrayList) emp.get("dept")).add(empList1);
  ArrayList el = (ArrayList) emp.get("dept");
  for (Iterator it2 = el.iterator(); it2.hasNext();) {
   System.out.println(it2.next());
  }
  Class hmCls = Class.forName("java.util.HashMap");
  Constructor cons = hmCls.getConstructor(new Class[] {});
  Object obj = cons.newInstance();
  // System.out.println(cons.newInstance(null));
  /*
   * Method[] addMethod = hmCls.getDeclaredMethods(); for(Method
   * m:addMethod){
   *
   * System.out.println(m.getName()); }
   */
  Method putMethod = hmCls.getMethod("put", new Class[] { Object.class,
    Object.class });
  System.out.println(putMethod);
  putMethod.invoke(obj, new Object[] { "dept", empList1 });
  Method getMethod = hmCls.getMethod("get", new Class[] { Object.class });
  System.out.println(getMethod);
  Object deptArrayList = getMethod.invoke(obj, new Object[] { "dept" });
  Class al = deptArrayList.getClass();
  Method[] alMethod = al.getDeclaredMethods();
  for (Method m : alMethod) {
   System.out.println(m.getName());
  }
       Method sizeMethod = al.getMethod("size", null);
       System.out.println(sizeMethod.invoke(deptArrayList, null));
       String.valueOf(b)
}
}
2。根据以上的实现方式用PS中函数以及对象实现调用过程
JavaObject 返回的是java对象,这个对象可以直接调用Java方法
ObjectDoMethod 可以调用 java Object对象的方法,比如Object obj = (Object)new ArrayList(); 这样Object的实现是ArrayList ,那么ObjectDoMethod 就可以调用ArrayList的方法了,这个函数为了解决返回对象是Object时候使用的,因为Object对象没有子类的方法
CreateJavaObject 相对Java中 new Object();这个函数调用会实例一个对象
具体的实现(HashMap 和 ArrayList)如下:
Local JavaObject &DeptHashMap = CreateJavaObject("java.util.HashMap");
&DeptHashMap.put("Dept1", CreateJavaObject("java.util.ArrayList"));
Local JavaObject &DeptArray = CreateJavaObject("java.util.ArrayList");
&DeptArray.add("A");
&DeptArray.add("B");
Local JavaObject &DeptArray1 = CreateJavaObject("java.util.ArrayList");
&DeptArray1.add("C");
&DeptArray1.add("D");
Local JavaObject &HmClass = GetJavaClass("java.lang.Class").forName("java.util.HashMap");
Local JavaObject &HmConstructor = ObjectDoMethod(&HmClass, "getConstructor", CreateJavaObject("java.lang.Class[]"));
MessageBox(0, "", 0, 0, String(&HmClass));
MessageBox(0, "", 0, 0, String(&HmConstructor));
Local JavaObject &HmInstance = ObjectDoMethod(&HmConstructor, "newInstance", Null);
MessageBox(0, "", 0, 0, String(&HmInstance));
Local JavaObject &putMethod = &HmClass.getMethod("put", CreateJavaObject("java.lang.Class[]", GetJavaClass("java.lang.Object"), GetJavaClass("java.lang.Object")));
MessageBox(0, "", 0, 0, String(&putMethod));
&putMethod.invoke(&HmInstance, CreateJavaObject("java.lang.Object[]", "DEPT", &DeptArray));
Local JavaObject &getMethod = &HmClass.getMethod("get", CreateJavaObject("java.lang.Class[]", GetJavaClass("java.lang.Object")));
Local JavaObject &DeptArrayList = &getMethod.invoke(&HmInstance, CreateJavaObject("java.lang.Object[]", "DEPT"));
Local JavaObject &DeptArrayListClass = ObjectDoMethod(&DeptArrayList, "getClass");
MessageBox(0, "", 0, 0, String(&DeptArrayListClass));
Local JavaObject &DeptSizeMethod = &DeptArrayListClass.getMethod("size", Null);
Local string &DeptSize = ObjectDoMethod(CreateJavaObject("java.lang.String"), "valueOf", &DeptSizeMethod.invoke(&DeptArrayList, Null));
MessageBox(0, "", 0, 0, &DeptSize);


希望这个对大家有帮助.
发表于 2013/8/21 21:50:08 | 显示全部楼层
hbnlzx 发表于 2013/8/20 16:52
深入浅出Peoplesoft之Java使用

        在Peoplesoft中使用java对象通过CreateJavaObject实例化对象,Ob ...

师傅果然是深入浅出,好用好用
发表于 2013/8/22 16:41:19 | 显示全部楼层
路过,学习一下,有业务方面的介绍吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|壹佰网 ERP100 ( 京ICP备12025635号 京ICP证120590号 )  

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表