获取员工主管信息

SELECT PP.LAST_NAME        员工姓名,
       PP.PERSON_ID        员工ID,
       PP.SEX              性别,
       PP.EMAIL_ADDRESS   电子邮件,
       PPF.LAST_NAME      主管姓名,
       PPF.EMAIL_ADDRESS  主管EMAIL
  FROM PER_PEOPLE_F PP, PER_ASSIGNMENTS_F PA, PER_PEOPLE_F PPF
 WHERE PP.PERSON_ID = PA.PERSON_ID
   AND SYSDATE BETWEEN PA.EFFECTIVE_START_DATE AND PA.EFFECTIVE_END_DATE
   AND SYSDATE BETWEEN PP.EFFECTIVE_START_DATE AND PP.EFFECTIVE_END_DATE
   AND SYSDATE BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.EFFECTIVE_END_DATE
   AND PA.SUPERVISOR_ID = PPF.PERSON_ID
   ORDER BY PP.CREATION_DATE ASC;

获取会计科目段子父级关系

––-相关的参数值请根据自己的实际情况填写
SELECT DATA_SOURCE.FLEX_VALUE_SET_NAME 值集名称,
       DATA_SOURCE.FLEX_VALUE_SET_ID   值集ID,
       DATA_SOURCE.FLEX_VALUE          值代码,
       DATA_SOURCE.DESCRIPTION         值描述,
       DATA_SOURCE.SUMMARY_FLAG        是否父级,
       DATA_SOURCE.HIERARCHY_NAME      组级别,
       DATA_SOURCE.RANGE_FROM          范围从,
       DATA_SOURCE.RANGE_TO            范围至
  FROM (SELECT FFVS.FLEX_VALUE_SET_NAME    FLEX_VALUE_SET_NAME,
               FFVS.FLEX_VALUE_SET_ID      FLEX_VALUE_SET_ID,
               FFV.FLEX_VALUE              FLEX_VALUE,
               FFV.SUMMARY_FLAG            SUMMARY_FLAG,
               FFV.DESCRIPTION             DESCRIPTION,
               FFHV.HIERARCHY_NAME         HIERARCHY_NAME,
               FFVNH.CHILD_FLEX_VALUE_LOW  RANGE_FROM,
               FFVNH.CHILD_FLEX_VALUE_HIGH RANGE_TO
          FROM FND_FLEX_VALUES_VL            FFV,
               FND_FLEX_VALUE_NORM_HIERARCHY FFVNH,
               FND_FLEX_VALUE_SETS           FFVS,
               FND_FLEX_HIERARCHIES_VL       FFHV
         WHERE FFV.FLEX_VALUE_SET_ID = FFVS.FLEX_VALUE_SET_ID
           AND FFV.FLEX_VALUE_SET_ID = FFVNH.FLEX_VALUE_SET_ID
           AND FFV.FLEX_VALUE = FFVNH.PARENT_FLEX_VALUE
           AND FFV.STRUCTURED_HIERARCHY_LEVEL = FFHV.HIERARCHY_ID
           AND FFVS.FLEX_VALUE_SET_NAME = 'XXXX_ACCOUNT'
           AND FFV.ENABLED_FLAG = 'Y'
           AND (FFV.END_DATE_ACTIVE IS NULL OR FFV.END_DATE_ACTIVE > SYSDATE)
           AND FFVS.FLEX_VALUE_SET_NAME IN
               (SELECT B.SEGMENT_NAME
                  FROM APPLSYS.FND_ID_FLEX_STRUCTURES A,
                       APPLSYS.FND_ID_FLEX_SEGMENTS B,
                       APPLSYS.FND_FLEX_VALUE_SETS C,
                       (SELECT *
                          FROM APPLSYS.FND_SEGMENT_ATTRIBUTE_VALUES AB
                         WHERE AB.ID_FLEX_CODE = 'GL#'
                           AND AB.ATTRIBUTE_VALUE = 'Y'
                           AND AB.SEGMENT_ATTRIBUTE_TYPE <> 'GL_GLOBAL') ABB
                 WHERE A.ID_FLEX_CODE = B.ID_FLEX_CODE
                   AND A.ID_FLEX_CODE = 'GL#'
                   AND A.ID_FLEX_NUM = B.ID_FLEX_NUM
                   AND B.FLEX_VALUE_SET_ID = C.FLEX_VALUE_SET_ID
                   AND B.ID_FLEX_NUM = ABB.ID_FLEX_NUM(+)
                   AND B.APPLICATION_COLUMN_NAME =
                       ABB.APPLICATION_COLUMN_NAME(+)
                   AND A.ID_FLEX_STRUCTURE_CODE = 'XXXX_ACCOUNT_FLEXFIELD')
     
        UNION
     
        SELECT FFVS.FLEX_VALUE_SET_NAME FLEX_VALUE_SET_NAME,
               FFVS.FLEX_VALUE_SET_ID FLEX_VALUE_SET_ID,
               FFV.FLEX_VALUE FLEX_VALUE,
               FFV.SUMMARY_FLAG SUMMARY_FLAG,
               FFV.DESCRIPTION DESCRIPTION,
               '明细组' HIERARCHY_NAME,
               NULL RANGE_FROM,
               NULL RANGE_TO
          FROM FND_FLEX_VALUES_VL FFV, FND_FLEX_VALUE_SETS FFVS
         WHERE FFV.FLEX_VALUE_SET_ID = FFVS.FLEX_VALUE_SET_ID
           AND FFVS.FLEX_VALUE_SET_NAME = 'XXXX_ACCOUNT'
           AND FFV.ENABLED_FLAG = 'Y'
           AND (FFV.END_DATE_ACTIVE IS NULL OR FFV.END_DATE_ACTIVE > SYSDATE)
           AND FFVS.FLEX_VALUE_SET_NAME IN
               (SELECT B.SEGMENT_NAME
                  FROM APPLSYS.FND_ID_FLEX_STRUCTURES A,
                       APPLSYS.FND_ID_FLEX_SEGMENTS B,
                       APPLSYS.FND_FLEX_VALUE_SETS C,
                       (SELECT *
                          FROM APPLSYS.FND_SEGMENT_ATTRIBUTE_VALUES AB
                         WHERE AB.ID_FLEX_CODE = 'GL#'
                           AND AB.ATTRIBUTE_VALUE = 'Y'
                           AND AB.SEGMENT_ATTRIBUTE_TYPE <> 'GL_GLOBAL') ABB
                 WHERE A.ID_FLEX_CODE = B.ID_FLEX_CODE
                   
                   AND A.ID_FLEX_CODE = 'GL#'
                   AND A.ID_FLEX_NUM = B.ID_FLEX_NUM
                   AND B.FLEX_VALUE_SET_ID = C.FLEX_VALUE_SET_ID
                   AND B.ID_FLEX_NUM = ABB.ID_FLEX_NUM(+)
                   AND B.APPLICATION_COLUMN_NAME =
                       ABB.APPLICATION_COLUMN_NAME(+)
                   AND A.ID_FLEX_STRUCTURE_CODE = 'XXXX_ACCOUNT_FLEXFIELD')
           AND FFV.SUMMARY_FLAG = 'N') DATA_SOURCE
 ORDER BY DATA_SOURCE.FLEX_VALUE_SET_ID, DATA_SOURCE.FLEX_VALUE;

资金检查

  这两天一直在看资金检查的问题,在网上看到一篇文章,觉得写得挺好,加上自己的一下见解并转载。转载地址:http://hi.erp100.com/space-101090-do-blog-id-13563425.html
  在资金检查的时候,需要用到的记张表:
  1、gl_bc_packets
  2、gl_bc_packet_arrival_order
  3、gl_balances

  启用保留款控制后GL、AP、PO的业务会在gl_bc_packets和gl_bc_packet_arrival_order中插入实际、预算和保留款的记录
一、 总帐
  1、资金检查
  每次检查资金产生一个新的PACKET_ID,余额类型为’A’–实际余额,在gl_bc_packets中为凭证批中的每一凭证行插一行记录,其中FUNDS_CHECK_LEVEL_CODE为’N’表示不要进行资金检查;’Y’表示要求进行资金检查,
  检查状态在STATUS_CODE中反映:’S’表示通过检查;’R’表示已拒绝,在gl_bc_packet_arrival_order中为每一凭证批插入记录,对于资金检查affect_funds_flag标志为’N’

  2、保留资金
  每次保留资金产生一个新的PACKET_ID
  保留资金时在2个表中插入记录,非保留资金时删除记录
  其中gl_bc_packets中STATUS_CODE为’A’表示已审批;
  gl_bc_packet_arrival_order中affect_funds_flag标志为’Y’

  3、凭证过账
  凭证过账后将gl_bc_packets中和该凭证相关的的所有记录删除
  同时系统更新gl_balances表的实际余额
  注意:如果将凭证删除则gl_bc_packets中仍将保留资金检查产生的相关记录

二、 应付

  在应付模块中只对发票分配行进行控制

  1、发票审批后产生
  借:帐户(E类型)
  在gl_bc_packets插入1条记录
  该保留类型凭证需提交创建日记帐请求来产生

  2、ap发票过账后产生
  贷:帐户(E类型)
  借:帐户(A类型)
  贷:负债帐户(A类型)
  在gl_bc_packets插入以上3条记录,同时总账产生实际和保留类型的凭证

  3、当实际和保留类型的凭证在总账过账后gl_bc_packets的4条记录自动删除同时系统更新gl_balances表的实际和保留余额

三、采购

  1、采购审批产生保留款
  在gl_bc_packets插入1条记录,对费用类采购保留款帐户一般为输入的费用帐户,对库存类采购一般为item上的保留款帐户,具体请参照workflow中的定义。
  该保留款凭证需在总帐提交创建日记帐请求来产生。

  2、发票匹配审批后
   2.1对费用类采购:冲销采购保留、产生发票保留
   在gl_bc_packets插入2条记录(无发票采购价格差异时)
   有价格差异时还将产生价格差异行,一般为采购单上输入的费用帐户
   借:帐户(E类型)—发票保留订单价
   贷:帐户(E类型)—采购保留订单价
   借/贷:帐户(E类型)—发票保留IPV
   该保留类型凭证需提交创建日记帐请求来产生

   2.2对库存类采购:
    2.2.1采购接收时
    在gl_bc_packets中插入实际余额的相关记录
    借:商品采购(A类型)
    贷:应计负债(A类型)
   
    2.2.2入库
    库存类采购只有当物品入库并传送总账时才产生凭证冲销采购保留,gl_bc_packets中并无任何相关记录
    借:库存(A类型)
    库存帐户可通过workfolow定义,一般可从ITEM,子库存,库存组织中获取(标准成本下)
    贷:商品采购(A类型)
    贷:采购保留订单价(E类型)

    2.2.3发票匹配
    产生IPV差异的发票保留款,一般为组织参数中的相关帐户
    借/贷:帐户(E类型)—发票保留IPV
    注意:冲销采购保留仅和入库数量相关,和发票无关

  3、发票过账产生实际、冲销发票保留
   在gl_bc_packets插入记录
   借:应计负债或订单费用帐户(A类型)订单价
   贷:应付帐款(A类型)发票价
   借/贷:差异帐户(A类型)IPV——从查询发票分配可查出
   贷:帐户(E类型)—发票保留订单价(仅对费用类采购)
   借/贷:帐户(E类型)—发票保留IPV

  4、发票付款
   在gl_bc_packets插入记录
   借:应付帐款(A类型)发票价
   贷:现金/银行(A类型)发票价

  5、总账凭证过账
   gl_bc_packets中的记录被删除
   总结:在凭证过账前系统从gl_bc_packets 和gl_bc_packet_arrival_order中检查可用资金,凭证过账后从gl_balances中检查可用资金。

  实施注意事项:
  1、 打开会计期要注意:当启用保留款会计之前审批的业务将无法产生保留凭证,而它们在此后所发生的业务将采用保留控制,这将产生差异。因此,最好在年初或月初启用保留款。当发生差异时可在月底关帐后对未结业务进行处理,即请购单、采购单、发票、接收及入库。由于保留款最终将转为实际余额,所以将所有可能产生保留款凭证的业务处理完毕后,通过在总账输入保留款调整凭证,可将保留款调整为零。
  2、 系统只能对帐户余额进行控制,而不能控制借方发生或贷方发生数。
  3、对库存类采购为确保对库存材料的控制,要求采购单上的到货期(GL_DATE)需和实际接收入库期尽量一致。这样才能保证正确的冲销采购保留,产生实际发生。
  4、要对材料采购作预算控制,必须在应付模块的财务选项启用“使用PO保留选项”,材料采购分为两种,费用类采购和库存类采购,对于费用类采购,预算的控制帐户直接是采购订单的借计帐户,对于库存类采购,预算控制帐户首先会取子库存设置的保留款帐户,如果子库存层没有,则取Item的保留款帐户,接着取库存组织参数的保留款帐户,你可以去测试一下。
  5、在这种情况下,无法通过对部门进行明细预算,只能通过汇总模板对预算科目进行汇总控制!
 
  Oracle把预算分为:
  1、预算金额:即你实际制定的预算额
  2、实际已经发生金额:即你实际生成总帐分录的金额
  3、预算保留额:即未实际生成总帐分录,但已经有PR、PO或AP发票,此时就会生成保留款
  4、预算可用额:可用额 = 预算金额 - 实际已经发生额 -预算保留额

  当本次预算发生时,是通过本次发生额跟预算可用额进行判断的。
  本次发生额 <可用额,则预算直接通过
  本次发生额 >可用额,则会进行预算的分级控制,级别控制分三种:无控制、警告和完全控制

 最后附上资金研究所用到的几个程序包:
  Funds Check Errors With PSA_BC_XLA_PUB.BUDGETARY_CONTROL (文档 ID 469018.1)
  PSA_BC_XLA_PUB
  GL_FUNDS_CHECKER_PKG
  PSA_FUNDS_CHECKER_PKG
  GL_FUNDS_AVAILABLE_PKG
–获取程序包版本
select us.text || ' – ' || uo.status
  from user_source us, user_objects uo
 where us.name IN ('GL_FUNDS_AVAILABLE_PKG')
   and uo.object_name IN ('GL_FUNDS_AVAILABLE_PKG')
   and us.line = 2
   and us.name = uo.object_name
   and us.type = uo.object_type
   and (us.text like '%glifundb.pls%');

–主要记录最近一次预算资金检查时的统计信息
select * from psa_bc_xml_clob;

边读边感之–总有一天你要一个人走

最近一直在看这边书,《总有一天你要一个人走》,一位绝症患者的回忆录,写给亲人朋友的,感触比较深。

1. 病魔可怕,但更可怕是没有战胜病魔的心境

2. 坚强的意志是人做任何事情都必须拥有的品质,没有例外

3. 努力每个人都能看见,但是好的结果并非每个人都能拥有

4. 夫妻一辈子,怎么可能不吵架,但是吵架要吵得公平,和好后也要更相亲相爱

5. 两个人一起,十全十美不可能有;但是总有一个人需要作出让步,这并不是懦弱无能,恰好这是尊重对方爱对方的一种表现

 

边读边感之–投资中最简单的事

    投资这个词其实对自己来说还比较遥远,从去年11月跟随朋友一起投入股市,趁着去年底行情比较好,总体来说利润比存银行来得更多。但同时也会承担更多的时间成本、风险成本。几个朋友在一讨论群里,一空闲就讨论股票,那支值得买,哪支应该赶紧抛掉,久而久之,也渐渐理解了一点股市的行情。也仅仅局限于最表面的研究。于是在网上看到《投资中最简单的事》这本书,于是从亚马逊上买下,慢慢将对书中的感悟整理下来:

1. 投资的第一条规则就是:要玩得下去,输得起

2. 在快餐式的环境中,懂得“延迟满足”已然是一种进步

3. 投资就像遛狗,人走直路,但狗永远是左穿右穿的前行,这种跟股市的上下波动很类似。只要绳子还在手上,狗就不能摆脱你的控制

4. 价值估值(便宜加成长)、品质、时机

5. 在牛市中,坚持持股是王道(自己吃过太对的亏)

6. 胜而后求战,战而后求胜(获胜概率小,但成功后收益比较大,更难把握)

7. 没有把握时,不妨均衡配置,先处不败,而后求胜

8. 在牛市在,没有最高,只有更高

技术笔记(小潘的技术记录博客)