返回列表 回复 发帖

请教关于回退磁性报表选择记录的问题

由于下属各个子公司用不同薪酬职责在系统提交了不同的工资单存档请求后,对应多个磁性报表。在做工资单时,需要回退同一个工资帐期某个磁性报表,但由于磁性报表记录太多,不能快速定位是需求回退哪个磁性报表。因为不能用原提交工资单存档请求的人帐号进入查看requestid,所以我的方法是在工资单运行结果功能,找到对应的磁性报表记录在当月帐期的所有磁性报表的位置(例如在第5条磁性报表记录),确定后,在回退磁性报表界面(即下图)找到第5条磁性报表记录,进行回退操作。不知道各位有什么好方法能快速定位某条磁性报表记录是我需要回退的记录呢?
见下图:
附件: 您所在的用户组无法下载或查看附件
唉,这个问题,我之前也发现过,是BUG,
下面是这个回退的值集(PAY_SRS_ALL_ROLLBACK)的sql
SELECT substr(to_char(ppa.effective_date, 'DD-MON-YYYY') || ' (' ||
                  to_char(ppa.payroll_action_id) || ')',
                  1,
                  35),
           ppa.payroll_action_id,
           ppf.PAYROLL_NAME,
           ppf.PAYROLL_ID,
           ppa.payroll_id,
           ppa.payroll_action_id
      FROM hr_lookups             at,
           hr_lookups             hl,
           pay_payroll_actions    ppa,
           pay_consolidation_sets pcs,
           pay_payrolls_f         ppf
     WHERE ppa.current_task IS NULL
       AND ppa.business_group_id + 0 = 0
       AND ppf.payroll_id(+) = ppa.payroll_id
       AND ((ppf.payroll_id IS NULL AND ppa.payroll_id IS NULL) OR
           (ppf.payroll_id = ppa.payroll_id))
       AND ppa.action_type = 'X'
       AND ppa.effective_date BETWEEN trunc(to_date('2008', 'YYYY'), 'Y') AND
           add_months(trunc(to_date('2008', 'YYYY'), 'Y'), 12) - 1
       AND hl.lookup_type = 'ACTION_STATUS'
       AND hl.lookup_code = ppa.action_status
       AND at.lookup_type = 'ACTION_TYPE'
       AND at.lookup_code = ppa.action_type
       AND decode(ppa.action_type, 'X', ppa.report_category, 'Y') IS NOT NULL
       AND pcs.consolidation_set_id(+) = ppa.consolidation_set_id
       AND (ppf.payroll_id IS NULL OR
           ppa.effective_date BETWEEN ppf.effective_start_date AND
           ppf.effective_end_date)
       AND NOT EXISTS
     (SELECT NULL
              FROM pay_assignment_actions paa, pay_action_interlocks INT
             WHERE ppa.payroll_action_id = paa.payroll_action_id
               AND paa.assignment_action_id = INT.locked_action_id)
       AND NOT EXISTS
     (SELECT NULL
              FROM pay_assignment_actions paa
             WHERE ppa.payroll_action_id = paa.payroll_action_id
               AND paa.secondary_status = 'C')
====
你可以看一下,这个基表 select * from hr.pay_payroll_actions t WHERE t.action_type='X' 中的Payroll ID 就是空的,所以 Payroll name是出不来的
高义明
msn:gaoyiminggoerp@hotmail.com
专注Oracle HRMS----Core HR\Payroll...........
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!
原帖由 gaoyiming 于 2008-10-15 11:36 发表
唉,这个问题,我之前也发现过,是BUG,
下面是这个回退的值集(PAY_SRS_ALL_ROLLBACK)的sql
SELECT substr(to_char(ppa.effective_date, 'DD-MON-YYYY') || ' (' ||
                  to_char(ppa.payroll_act ...
如果我没有后台查询数据库的权限,通过前台系统功能界面查询,有什么好的方法能快速定位出需要回退的工资单对应磁性报表的记录吗?
你就是有后台数据库的权限,你也看不到 payroll name, 因为在那个表里边根本就没有存储payroll_id
我给你的意见是,修改一下这个值集,红色的部分为新增的部分,下划线的部分为删除的部分,其他地方都不要修改,
SELECT substr(to_char(ppa.effective_date, 'DD-MON-YYYY') || ' (' ||
                  to_char(ppa.payroll_action_id) || ')',
                  1,
                  35),
           ppa.payroll_action_id,
          ppf.PAYROLL_NAME,
          --替换为下面的FND用户名
           fu.User_Name
      FROM hr_lookups             at,
           hr_lookups             hl,
           pay_payroll_actions    ppa,
           pay_consolidation_sets pcs,
           pay_payrolls_f         ppf,
           fnd_user               fu
     WHERE ppa.current_task IS NULL
       AND ppa.business_group_id + 0 = 0
       AND ppf.payroll_id(+) = ppa.payroll_id
       AND ((ppf.payroll_id IS NULL AND ppa.payroll_id IS NULL) OR
           (ppf.payroll_id = ppa.payroll_id))
       AND ppa.action_type = 'X'
       AND ppa.effective_date BETWEEN trunc(to_date('2008', 'YYYY'), 'Y') AND
           add_months(trunc(to_date('2008', 'YYYY'), 'Y'), 12) - 1
       AND hl.lookup_type = 'ACTION_STATUS'
       AND hl.lookup_code = ppa.action_status
       AND at.lookup_type = 'ACTION_TYPE'
       AND at.lookup_code = ppa.action_type
       AND decode(ppa.action_type, 'X', ppa.report_category, 'Y') IS NOT NULL
       AND pcs.consolidation_set_id(+) = ppa.consolidation_set_id
       AND (ppf.payroll_id IS NULL OR
           ppa.effective_date BETWEEN ppf.effective_start_date AND
           ppf.effective_end_date)
       AND NOT EXISTS
     (SELECT NULL
              FROM pay_assignment_actions paa, pay_action_interlocks INT
             WHERE ppa.payroll_action_id = paa.payroll_action_id
               AND paa.assignment_action_id = INT.locked_action_id)
       AND NOT EXISTS
     (SELECT NULL
              FROM pay_assignment_actions paa
             WHERE ppa.payroll_action_id = paa.payroll_action_id
               AND paa.secondary_status = 'C')
              
              AND fu.user_id = ppa.last_updated_by
高义明
msn:gaoyiminggoerp@hotmail.com
专注Oracle HRMS----Core HR\Payroll...........
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!

HR 关于企业一次奖金分配的核算处理办法

楼主的方法是目前hr针对所有“回退”的笨办法,也好像目前不经过开发的话也只能这么做。呵呵,如有好的办法,请大家一起分享哦,期待中……

回复 5楼 ylf8785 的帖子

这个问题 已经确认是bug了,过段时间会有patch出来。大家关注这个帖子。
Oracle有了新的patch, 我会贴上来的
高义明
msn:gaoyiminggoerp@hotmail.com
专注Oracle HRMS----Core HR\Payroll...........
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!
以系统管理员职责查看该用户提交的工资单存档请求,查看其详细资料,参数里面有payroll=该工资单的payrollid,如果正好等于你所在的工资单的payrollid,那这个请求的id就是你要找的需要回退磁性报表的工资单的requestid。
原帖由 码砖头的人 于 2008-10-21 15:47 发表
以系统管理员职责查看该用户提交的工资单存档请求,查看其详细资料,参数里面有payroll=该工资单的payrollid,如果正好等于你所在的工资单的payrollid,那这个请求的id就是你要找的需要回退磁性报表的工资单的requesti ...
这样的话,一般操作员工肯定没有系统管理员的职责。
高义明
msn:gaoyiminggoerp@hotmail.com
专注Oracle HRMS----Core HR\Payroll...........
事业中,就是要发展好ERP100,更好的服务大家
------------------------------------------------------------------------------------------
我们一起共建Erp100,你肯定有信心!
返回列表