AX2012中有个模块叫做出差和支出,用于管理出差以及相关的费用,用户只能在员工自助服务EP站点上提交出差申请、费用报销报告,在Client程序中做审核以及后续的支付动作等,最后形成相关的财务分录。

出差申请

在自助服务站点的Expense下用户可以新建一个“Travel requistion”,需要填写的内容包括出差原因、出差目的地、以及预计的出差费用行。

出差原因在“Travel and expense>Setup>Optional setup>Expense purpose”维护,出差的目的地在“Travel and expense>Setup>Optional setup>Travel locations”维护。费用行需要首先选择一个Expense category,支出类别在“Travel and expense>Setup>Travel and expense entry>Expense category”维护。支出类别不是表面看起来那样简单,根据支出类别类型的不同能设置的内容也不同。新建一个支出类别前需要新建一个共享类别(Travel and expense>Setup>Travel and expense entry>Shared categories),诚如其名,这个类别为多个模块共享,在Project management and accouting、Organization administration的设置中都能找到Shared categories。

一个共享类别可以用于项目、支出、或者生产,但是一个共享类别不能同时用于支出和生产,如果你同时选中“Can be used in expense”和“Can be used in production”,系统会给出警告提示。如果选择了用于支出,你必须选择一个支出类型(枚举TrvExpType),比如津贴、旅馆、航线等,而根据支出类型是否支持明细的不同(TrvExpenseType::supportsItemization()),你还可以设置子类别,比如上图中的Airline是可以有明细的。

有了可用于支出的共享分类,才能新建支出分类,新建支出分类时只能从可用于支出的共享分类中选择。

在支出分类中可以设置支付方式、是否强制明细、是否启用、统计组、以及财务主科目。有的支出类型是不能设置财务科目的,比如个人花费(Personal expenses)。其中有两个支出分类是比较特殊的,Mileage和Perdiem:

Mileage用于私车公用(瓷器国听到的多是公车私用啊)情况,后续在计算费用的时候是根据里程×费率来计算的,在“Travel and expense parameters”的“Standard rate of mileage”中可以维护标准费率(在Human resource中打开某个员工,Expense management>Mileage下可以维护年度费率,是否和支出有联系又是具体怎么用还没来得及研究)。

Perdiem中文叫做出差津贴,在Travel and expense>Setup>Per diems>Per diems维护,首先需要在Per diem locations中维护津贴地点,比如出差的城市,根据出差城市的不同在津贴维护中设置相应的酒店费用、餐费和其他费用、起止日期,在Per diem rate ties中还可以根据出差时长设置报销的比率。后续支出报告中根据选择的津贴城市、时长具体计算津贴的总费用。

回到出差申请的创建,在添加一些类型的支出行时,还可以选择相应的商业单位(Merchants),比如航空公司、酒店名称等,在“Travel and expense>Setup>Optional setup>Merchants”维护。编辑完支出行点击保存时会自动计算费用,完成所有支出行的编辑后就可以提交出差申请了。根据工作流的设置(Travel and expense>Setup>Travel and expense workflows)出差申请会为具有批准权限的用户创建工作事项,有意思的是在试图打开出差申请的工作项时会有错误(\Classes\WorkflowQueueDocumentView\main在打开工作项相关MenuItem的Form时因为菜单项名称空提示FormRun未初始化),原因在于在Client中没有一个Form来查看出差申请(支出报告是有的),出差申请的批准也只能在自助服务的审核中完成。审核完成的出差申请不能再编辑,在“Travel requisitions”列表中我们可以看到相应的审核状态,还有一个状态叫做Reconciliation status,显示的是出差申请费用是否结清,在操作板上有个“Close”的按钮可以用来手工关闭出差申请为结清状态。

支出报表

其实翻译成费用报销更为合适,同样也是在自助服务EP站点中创建,在新建一个Expense report时会弹出一个对话框,提示选择未结的费用:

这里显示的记录来自于Data set TrvUnreconciledExpenseTransaction,它基于视图TrvUnreconciledExpenseTransUnion,视图TrvUnreconciledExpenseTransUnion又来自于查询TrvUnreconciledExpenseTransUnion,查询TrvUnreconciledExpenseTransUnion是视图TrvUnreconciledCreditCardTrans和视图TrvUnreconciledExpenseTrans的联合,前者的数据来自于表TrvPBSMaindata,后者的数据来自于表TrvUnreconciledExpenseTransaction(这一长串的关系!)。

TrvPBSMaindata表示的是这样的数据-比如出差中使用了公司的信用卡付费,这些付费的记录就保存在表TrvPBSMaindata中,这些记录可以通过Travel and expense>Periodic>Credit card transactions查看,但是系统中是没有地方输入这些记录的,它们可以使用Travel and expense>Periodic>Credit cards>Credit card import from folder或者Travel and expense>Periodic>Credit cards>Import a specific credit card file,前者导入一个目录下的所有文件,后者导入一个指定的文件。那么文件是什么样的格式呢?在导入对话框中是需要选择一个导入格式的,其实是一个AIF的入口端口名称,我们需要使用服务TrvPBSMaindataService创建一个入站的文档服务,文件的格式则是文档服务描述的XML格式。导入功能会间接的调用TrvPBSMaindataService服务来导入数据,大致的执行路径(导入文件夹为例)是TrvSysImportFolderBatch.run()->SysImportBatchProcessor.run()->SysImportProcessor.processInput()->AifImportUtil::ProcessFile(sourceFile, _inputFileFormat),参数_inputFileFormat就是入站端口的名称。

还有一些费用报销凭据来自于消费的收据,收据数据(传真件,比如tif格式的图片)可以通过Travel and expense>Periodic>Receipts>Import faxed receipts for employee或者Travel and expense>Periodic>Receipts>Import faxed receipts for expense report导入,导入的结果就保存在表TrvUnreconciledExpenseTransaction中。导入文件通过文件名称来确定员工或者支出报告号,比如文件名“员工编号$01_20130618.tif”,员工编号必须在首位,使用“$”和“_”分离其他内容,在EP站点中选择一个支出报表我们可以通过操作板上的Employee cover page或者Expense report cover page打印传真的封面页(在我的系统中显示不出相应报表中的图片!)。导入传真的员工收据的执行路径TrvImportReceiptsBatch_Employee.main()->TrvImportReceiptsBatch.run()->TrvImportReceiptsBatch_Employee.importFile()->TrvReceiptsHelper.attachFileToEmployee(hcmWorker.RecId, _filename, _file),它在TrvUnreconciledExpenseTransaction表中查找/创建员工的记录,并将导入的文件作为附件保存到表docref中,在这一过程中看不到任何导入具体费用金额的地方;导入传真的支出报告收据的执行路径TrvImportReceiptsBatch_ExpenseReport.main()->TrvImportReceiptsBatch.run()->TrvImportReceiptsBatch_ExpenseReport.importFile()->TrvReceiptsHelper.attachFileToExpenseReport(TrvExpNumber _expNumber, Filename _filename, DocuValueFile _file, Description _documentDescription = ''),它只是简单的把导入的文件作为支出报表的附件创建相应的docref记录,也没看到具体导入金额的地方。那么具体如何导入消费的具体信息呢?同样可以使用AIF服务,这次用到的服务名称是TrvUnreconciledExpenseService,在系统中没有找到和导入信用卡记录类似的操作,看来只能手工调用这个服务来操作了,另外也没有看到任何窗口可以查看这些导入的TrvUnreconciledExpenseTransaction记录。

表TrvPBSMaindata和TrvUnreconciledExpenseTransaction数据的合集称为未结的支出消费,在创建支出报表时我们可以选择这些未结支出,它会自动为我们创建相应的支出行并做详细化(Itemization),我们也可以在支出报表中使用“Add unreconciled expenses”手工选择未结支出来创建支出行。

当然也可以使用New expense line手工创建支出行,这和出差申请的支出行类似,不再赘述。

在费用支出上,我们是可以设置策略的(Travel and expense>Setup>Polices>Expense report),比如在某个城市的酒店住宿费不能超过多少,如果超过限制金额则不运行提交。另外在支出报表的Travel requistion一栏可以选择一个出差申请,表示费用报销是基于哪次出差的,在Tranvel and expense parameters中有个设置叫做“Pre-authorization of travel is mandatory”,如果勾选这个选项,支出报表必须选择一个出差申请(Tables\TrvExpTable\validateSubmit中验证)。

同样,完成支出报表的编辑后提交到工作流,所有的支出报表在Travel and expense>Expense reports>All expense reports中看到,我们可以直接在这里批准,而不需要转到工作列表或者EP上的审核列表。已经批准的支出报表可以过账(Post)为财务分录,记账科目为支出类别以及支付方式的不同而不同(留待以后研究)。

更多相关内容可以参考http://technet.microsoft.com/en-us/library/hh242148.aspxhttp://technet.microsoft.com/en-us/library/hh299217.aspx

[AX]AX2012 R2 出差申请和支出报告的更多相关文章

  1. [AX]AX2012 R2 HR Jobs, Positions, Department和Workers

    部门.作业(Job的官方翻译)和位置(Position的官方翻译)是AX人力资源管理的基本组织元素,Job和Position在AX有的地方又称作工作和职位,其实这个翻译更为恰当. Job定义的是一个工 ...

  2. [AX]AX2012 R2 EP员工自助服务中的产品不能显示图片的问题

    在员工自助服务EP站点中员工可以通过Order products自助提交采购申请,在正确设置员工采购目录后会罗列出允许员工购买的产品,每个产品都可带有图片,我们可以通过Product image来为产 ...

  3. [AX]AX2012 R2 采购订单的“Request change”

    在采购订单List或者Detail窗口的操作面板上有一个叫做“Request change”的按钮,如果这个按钮是激活的,采购订单不能直接编辑,而必须先使用这个按钮请求修改后,采购订单才能进入编辑状态 ...

  4. Dynamics AX 2012 R2 安装Reporting Services 扩展

    今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行. 接着,Rei ...

  5. Dynamics AX 2012 R2 如何处理运行时间较长的报表

    当处理的数据量较多,逻辑比较复杂时,报表可能会超时.为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表.它会在调用SSRS前,在AX ...

  6. Dynamics AX 2012 R2 电子邮件广播错误 0x80040213

    Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message&q ...

  7. Dynamics AX 2012 R2 业务系列-采购业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 国际惯例,从采购开始. 1.采购的主要职责 简单点说,采购的主要职责,是从供应 ...

  8. Dynamics AX 2012 R2 业务系列-销售业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业 ...

  9. [译]Dynamics AX 2012 R2 BI系列-规划分析的注意事项

    https://msdn.microsoft.com/en-us/library/gg731898.aspx       在开始实施AX的分析特性前,有很多事情要考虑.本文描述了你必须考虑的事情,和在 ...

随机推荐

  1. jqgrid 查询

    <!DOCTYPE html> <html lang="en" lang="en" xmlns="http://www.w3.org ...

  2. JAVA内部线程1

    在做一个RuntimeException的异常验证的时候,发现即便是JVM的main线程遇到了此类异常,JVM也不一定进行退出,查阅了相关资料:                线   程        ...

  3. C艹函数与结构体

    传递指针 代码: #include <iostream> #include <cmath> struct polar{ double distance; double angl ...

  4. VS下关于 _CRT_SECURE_NO_WARNINGS 问题的分析与解决

    一.问题的起因 六月下旬,老师布置了有关图形学的课设,于是我将我在VS2013中写好的代码进行编译,结果得到了以下信息: 二.解决方法 1,按照英文提示,我先将fopen改成了fopen_s后,发现错 ...

  5. 第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表

    第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表.验证码表.轮播图表 创建Django项目 项目 settings.py ...

  6. Spring JDBC对象批量操作

    以下示例将演示如何使用spring jdbc中的对象进行批量更新.我们将在单次批次操作中更新student表中的记录. student表的结果如下 - CREATE TABLE student( id ...

  7. 使用Maven模板创建项目

    在本教程中,我们将向你展示如何使用mvn archetype:generate从现有的Maven模板列表中生成项目.在Maven 3.3.3,有超过1000+个模板,Maven 团队已经过滤掉一些无用 ...

  8. openssl创建自己的CA certificate

    Create a Certificate Authority private key (this is your most important key): $ openssl req -new -ne ...

  9. 精心挑选的HTML5/CSS3应用及源码

    这段时间我已经为大家分享了不少关于HTML5应用和jQuery插件了,先来回顾一下: 炫酷霸气的HTML5/jQuery应用及源码 干货分享 超炫丽的HTML5/jQuery应用及代码 绚丽而实用的j ...

  10. ttl传输中过期

    上renren时遇到一问题,突然间就无法登陆,看了下网络,正常呀,别的网站完全ok,就这不成,所以就ping了一下做以校验:如下图示:传输中过期ttl,这问题少见,新鲜呀:赶紧查了查:原来可能是产生了 ...