NetSuite ERP:NetSuite采购到付款流程实操.Tex.header_第1页
NetSuite ERP:NetSuite采购到付款流程实操.Tex.header_第2页
NetSuite ERP:NetSuite采购到付款流程实操.Tex.header_第3页
NetSuite ERP:NetSuite采购到付款流程实操.Tex.header_第4页
NetSuite ERP:NetSuite采购到付款流程实操.Tex.header_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NetSuiteERP:NetSuite采购到付款流程实操1NetSuite采购流程基础设置1.1采购流程概述在NetSuite中,采购流程是企业资源规划(ERP)系统的核心组成部分,旨在管理从采购请求到付款的整个供应链活动。此流程确保了采购活动的透明度、效率和合规性。采购流程通常包括以下步骤:采购请求:部门或员工提交所需物品或服务的请求。采购订单:基于采购请求创建采购订单,发送给供应商。收货:当物品或服务到达时,进行收货确认。发票处理:供应商提供发票,系统进行匹配和处理。付款:根据发票和采购订单支付供应商。1.1.1实操步骤创建采购请求:在NetSuite中,通过“采购”菜单下的“采购请求”选项,填写请求详情,包括物品、数量和请求理由。审批采购请求:采购请求提交后,需经过指定的审批流程。创建采购订单:审批通过后,将采购请求转化为采购订单,选择供应商,确认价格和交货日期。收货:物品到达后,在“收货”模块中确认收货,系统自动更新库存。处理发票:供应商发票在“发票”模块中进行匹配和处理,确保与采购订单一致。付款:最后,通过“付款”模块,根据发票和采购订单支付供应商。1.2供应商管理供应商管理是采购流程中的关键环节,NetSuite提供了强大的工具来维护供应商信息,包括联系人、地址、信用额度和交易历史。1.2.1实操步骤添加供应商:在NetSuite中,通过“设置”菜单下的“公司”选项,选择“供应商”,然后点击“新建”来添加供应商信息。维护供应商信息:确保供应商的联系信息、信用额度和支付条款是最新的。评估供应商绩效:使用NetSuite的报告功能,定期评估供应商的交付时间、质量和成本绩效。1.3采购订单模板创建采购订单模板可以简化采购订单的创建过程,通过预设的格式和信息,提高效率并减少错误。1.3.1实操步骤创建模板:在NetSuite中,通过“设置”菜单下的“列表、记录和字段”选项,选择“采购订单模板”,然后点击“新建”。预设信息:在模板中预设供应商、物品、价格和数量等信息。应用模板:在创建采购订单时,选择相应的模板,系统将自动填充预设信息。1.4采购审批流程配置采购审批流程确保了采购活动的合规性和控制,NetSuite允许企业自定义审批流程,根据采购金额、物品类型或部门进行审批。1.4.1实操步骤配置审批规则:在NetSuite中,通过“设置”菜单下的“公司”选项,选择“工作流”,然后点击“新建”来配置审批规则。设置审批层级:定义不同层级的审批人,例如,对于小额采购,可能只需要部门经理审批;对于大额采购,则可能需要财务总监的额外审批。测试审批流程:在正式应用前,通过创建测试采购请求和订单,确保审批流程按预期工作。1.4.2示例代码以下是一个示例,展示如何在NetSuite中使用SuiteScript2.0创建一个简单的采购订单模板:/**

*@NApiVersion2.x

*@NScriptTypeSuitelet

*@NModuleScopeSameAccount

*/

define(['N/record','N/search'],function(record,search){

functiononRequest(context){

if(context.request.method==='GET'){

varpoTemplate=record.load({

type:record.Type.PURCHASE_ORDER_TEMPLATE,

id:'customtemplate_12345'

});

//设置模板的默认供应商

poTemplate.setValue({

fieldId:'entity',

value:'1234'

});

//设置模板的默认物品

varitemLine=poTemplate.getLine({

sublistId:'item',

line:0

});

itemLine.setValue({

fieldId:'item',

value:'101'

});

itemLine.setValue({

fieldId:'quantity',

value:10

});

//保存模板

poTemplate.save();

}

}

return{

onRequest:onRequest

};

});这段代码展示了如何加载一个采购订单模板,设置默认供应商和物品,然后保存模板。请注意,实际使用时需要替换模板ID、供应商ID和物品ID为实际的NetSuite记录ID。通过以上步骤和示例,您可以开始在NetSuite中实施和优化采购流程,提高供应链管理的效率和准确性。2NetSuiteERP:NetSuite采购订单管理实操2.1创建采购订单在NetSuite中,创建采购订单是采购流程的第一步,它涉及到从供应商处购买商品或服务的正式请求。以下是创建采购订单的步骤:登录NetSuite:使用您的凭据登录到NetSuite系统。访问采购订单页面:在主菜单中,选择“采购”>“采购订单”。新建采购订单:点击“新建”按钮,开始创建一个新的采购订单。填写采购订单信息:在采购订单表单中,输入供应商信息、订单日期、交货日期等基本详情。添加商品或服务:在“项目”行中,选择要购买的商品或服务,输入数量、单价和预计到货日期。保存采购订单:完成所有必要的信息后,点击“保存”按钮。2.1.1示例数据假设我们需要从供应商“ABC公司”购买100个“标准键盘”,单价为$20,预计到货日期为2023-04-15。供应商商品数量单价预计到货日期ABC公司标准键盘100$202023-04-152.2采购订单审批采购订单审批是确保所有采购活动符合公司政策和预算的关键步骤。NetSuite提供了灵活的审批流程,可以根据公司的需求进行定制。设置审批流程:在“设置”>“公司”>“公司信息”中,定义审批流程。提交审批:创建采购订单后,选择“提交审批”。审批采购订单:审批者会收到通知,登录NetSuite后,选择“待办事项”>“审批”>“采购订单”进行审批。审批决策:审批者可以批准、拒绝或请求修改采购订单。2.2.1示例审批流程假设公司规定,所有超过$1000的采购订单需要财务经理审批。创建采购订单:金额为$2000。提交审批:系统自动将此订单发送给财务经理。财务经理审批:登录NetSuite,查看订单详情,确认无误后批准。2.3采购订单接收采购订单接收是确认商品或服务已按订单要求到达的步骤。NetSuite允许用户跟踪接收状态,确保库存准确。访问接收页面:在主菜单中,选择“库存”>“接收”。选择采购订单:从列表中选择要接收的采购订单。确认接收:输入实际接收的数量,系统会自动更新库存。2.3.1示例接收假设从“ABC公司”购买的100个“标准键盘”中有95个已实际到达。供应商商品订单数量实际接收数量ABC公司标准键盘100952.4采购订单退货当收到的商品或服务不符合要求时,NetSuite提供了退货功能,以处理与供应商的退货流程。创建退货单:在主菜单中,选择“采购”>“退货单”。关联采购订单:选择要退货的采购订单。填写退货详情:输入退货原因、退货数量和退货日期。提交退货单:确认信息无误后,提交退货单。2.4.1示例退货假设从“ABC公司”购买的“标准键盘”中有5个因质量问题需要退货。供应商商品退货数量退货原因ABC公司标准键盘5质量问题2.4.2退货单创建代码示例/**

*创建退货单示例

*@NApiVersion2.x

*@NScriptTypeSuitelet

*/

define(['N/record','N/search'],function(record,search){

functiononRequest(context){

if(context.request.method==='POST'){

varreturnRecord=record.create({

type:record.Type.PURCHASE_RETURN,

isDynamic:true

});

//设置供应商

returnRecord.setValue({

fieldId:'entity',

value:'1234'//假设供应商ID为1234

});

//添加退货商品行

returnRecord.selectNewLine({

sublistId:'item'

});

returnRecord.setCurrentSublistValue({

sublistId:'item',

fieldId:'item',

value:'101'//假设商品ID为101

});

returnRecord.setCurrentSublistValue({

sublistId:'item',

fieldId:'quantity',

value:5

});

returnRecord.setCurrentSublistValue({

sublistId:'item',

fieldId:'returnreason',

value:'质量问题'

});

returnRmitLine({

sublistId:'item'

});

//保存退货单

varreturnId=returnRecord.save();

log.debug({

title:'退货单ID',

details:returnId

});

}

}

return{

onRequest:onRequest

};

});此代码示例展示了如何使用NetSuiteSuiteScript2.0创建一个退货单。它首先创建一个退货单记录,然后设置供应商信息,接着添加退货商品行,包括商品ID、退货数量和退货原因,最后保存退货单并记录其ID。3NetSuiteERP:NetSuite采购到付款流程实操3.1NetSuite应付账款处理3.1.1应付账款模块介绍在NetSuite中,应付账款(AP)模块是财务管理的核心部分,它负责处理与供应商交易相关的所有财务活动。从采购订单的创建到发票的接收、审批、支付,以及对账,AP模块提供了一套全面的解决方案,确保企业的采购流程高效、准确且合规。AP模块的关键功能包括:-采购订单管理:创建、修改和审批采购订单。-发票处理:接收、匹配和审批供应商发票。-付款管理:安排和执行供应商付款。-对账:确保发票和付款记录的准确性。3.1.2创建应付账款在NetSuite中创建应付账款,通常是从创建采购订单开始的。以下是一个创建采购订单的示例步骤:登录NetSuite账户。导航至“采购”模块。选择“采购订单”并点击“新建”。填写供应商信息、物品列表、数量、价格等。审核并保存采购订单。示例数据-供应商:ABC公司

-物品:笔记本电脑

-数量:10

-单价:5000元3.1.3处理发票与付款处理发票和付款是AP流程中的关键步骤。NetSuite提供了自动化工具来匹配发票与采购订单,简化了审批流程,并确保了财务记录的准确性。发票匹配发票匹配是将收到的发票与相应的采购订单和/或收货单进行比较的过程。NetSuite支持三种匹配策略:-三向匹配:发票、采购订单和收货单必须一致。-两向匹配:发票和采购订单必须一致。-单向匹配:仅检查发票与采购订单的一致性。付款安排NetSuite允许用户根据预定义的付款条件或自定义规则安排付款。例如,可以设置自动付款,或手动选择支付日期。示例操作-收到ABC公司的发票,金额为50000元。

-在NetSuite中,选择“发票”模块,点击“新建”。

-输入发票详情,包括供应商、发票日期、金额等。

-系统自动匹配到之前的采购订单。

-审核并保存发票。

-选择“付款”模块,创建付款记录,关联发票,选择支付方式和日期。3.1.4应付账款对账对账是确保财务记录准确无误的重要步骤。在NetSuite中,可以通过运行对账报告来检查应付账款余额与总账余额是否一致。示例操作-导航至“报告”模块。

-选择“财务”类别下的“应付账款对账报告”。

-运行报告,检查任何差异。

-如果发现差异,调查原因并进行必要的调整。通过以上步骤,NetSuite的AP模块能够有效地管理企业的采购到付款流程,提高财务效率,减少错误和欺诈风险。4NetSuite采购到付款流程实操案例4.1案例一:标准采购流程演示在NetSuite中,标准采购流程从创建采购订单开始,到接收货物,再到发票处理和付款,是一个紧密相连的系列步骤。下面,我们将通过一个具体案例来演示这一流程。4.1.1创建采购订单假设我们需要从供应商“ABC公司”采购100台笔记本电脑,每台价格为$1000。在NetSuite中,我们首先创建一个采购订单:1.登录NetSuite,进入“采购”模块。

2.选择“采购订单”,点击“新建”。

3.在供应商字段中输入“ABC公司”。

4.添加商品行,选择商品“笔记本电脑”,输入数量100,单价$1000。

5.保存并提交采购订单。4.1.2接收货物当货物到达时,我们需要在NetSuite中记录接收:1.在“采购”模块中,找到已创建的采购订单。

2.点击“接收”,输入实际接收的数量。

3.如果数量正确,点击“完成接收”。4.1.3处理发票供应商发送了发票,我们需要在NetSuite中匹配并处理:1.进入“会计”模块,选择“应付账款”。

2.点击“新建发票”,输入供应商信息和发票金额。

3.将发票与采购订单匹配。

4.保存并提交发票。4.1.4付款最后,我们需要支付发票:1.在“会计”模块中,选择“应付账款”。

2.找到已处理的发票,点击“付款”。

3.输入付款信息,如付款方式、日期和金额。

4.确认付款,点击“提交”。通过以上步骤,我们完成了从采购到付款的整个流程。4.2案例二:处理异常采购订单处理异常采购订单,如数量不符或价格错误,需要额外的步骤来调整和重新处理。4.2.1调整采购订单假设在接收货物时,发现实际数量只有95台,而非订单上的100台:1.在“采购”模块中,找到异常的采购订单。

2.点击“编辑”,调整商品行的数量为95。

3.保存并重新提交采购订单。4.2.2重新处理发票由于数量调整,发票金额也需要相应更改:1.进入“会计”模块,找到与采购订单匹配的发票。

2.点击“编辑”,调整发票金额为$95000。

3.重新保存并提交发票。通过这些步骤,我们能够有效地处理采购流程中的异常情况,确保财务记录的准确性。4.3案例三:多币种采购与付款处理在处理跨国采购时,NetSuite支持多币种交易,这需要我们注意汇率的转换。4.3.1创建多币种采购订单假设我们需要从“XYZ公司”采购,该公司使用欧元作为交易货币,而我们使用美元:1.登录NetSuite,进入“采购”模块。

2.创建采购订单,选择供应商“XYZ公司”。

3.在货币字段中选择“欧元”。

4.添加商品行,选择商品,输入数量和欧元单价。

5.保存并提交采购订单。4.3.2接收货物与发票处理接收货物和处理发票时,NetSuite会自动根据当前汇率进行货币转换:1.在接收货物时,NetSuite会显示美元等值金额。

2.处理发票时,输入欧元金额,NetSuite会自动转换为美元。4.3.3付款付款时,我们同样需要考虑汇率:1.在“会计”模块中,选择“应付账款”。

2.找到多币种发票,点击“付款”。

3.输入付款信息,包括付款货币(欧元)和金额。

4.NetSuite会显示美元等值金额,确认无误后提交付款。通过NetSuite的多币种功能,我们可以轻松管理跨国采购和付款,确保财务数据的准确性和一致性。以上案例详细展示了在NetSuite中如何进行标准采购流程、处理异常采购订单以及多币种采购与付款的实操步骤。遵循这些步骤,可以确保采购到付款流程的顺畅和财务记录的准确性。5NetSuite采购到付款流程优化与最佳实践5.1流程优化策略5.1.1采购请求自动化在NetSuite中,通过设置自动化规则,可以显著减少处理采购请求的时间。例如,当库存水平低于预设阈值时,系统可以自动创建采购请求。示例代码/**

*@NApiVersion2.x

*@NScriptTypeUserEventScript

*@NModuleScopeSameAccount

*/

define(['N/record','N/search','N/inventory'],function(record,search,inventory){

functionbeforeSubmit(context){

if(context.type===context.UserEventType.CREATE){

varitemRec=context.newRecord;

varitemId=itemRec.getValue('item');

varitem=inventory.load({id:itemId});

varitemQty=itemRec.getValue('quantity');

varitemQtyOnHand=item.getQuantity();

if(itemQtyOnHand<itemQty){

varpurchaseRequest=record.create({

type:record.Type.PURCHASE_REQUEST,

isDynamic:true

});

purchaseRequest.setValue({

fieldId:'item',

value:itemId

});

purchaseRequest.setValue({

fieldId:'quantity',

value:itemQty-itemQtyOnHand

});

purchaseRequest.save();

}

}

}

return{

beforeSubmit:beforeSubmit

};

});这段代码在创建销售订单时检查库存,如果库存不足,则自动创建采购请求。5.1.2采购订单审批流程优化审批流程可以减少等待时间,提高效率。例如,可以设置基于金额的自动审批规则。示例代码/**

*@NApiVersion2.x

*@NScriptTypeWorkflowActionScript

*@NModuleScopeSameAccount

*/

define(['N/record','N/search'],function(record,search){

functiononAction(scriptContext){

varapprovalRecord=scriptContext.newRecord;

varamount=approvalRecord.getValue('amount');

varapprover=getApprover(amount);

if(approver){

approvalRecord.setValue('approver',approver);

approvalRecord.save();

}

}

functiongetApprover(amount){

varapproverSearch=search.create({

type:'customrecord_approval_rule',

filters:[

['custrecord_rule_amount','less',amount],

'AND',

['custrecord_rule_active','is','T']

],

columns:[

search.createColumn({

name:'custrecord_rule_approver',

summary:'GROUP'

})

]

});

varapproverResults=approverSearch.run().getRange({start:0,end:1});

returnapproverResults[0].getValue({name:'custrecord_rule_approver'});

}

return{

onAction:onAction

};

});此代码示例根据采购订单的金额自动选择审批人。5.2自动化工具应用5.2.1使用NetSuite自动化工具进行发票匹配NetSuite的自动化工具可以自动匹配采购订单、收货单和发票,减少手动操作和错误。示例代码/**

*@NApiVersion2.x

*@NScriptTypeScheduledScript

*@NModuleScopeSameAccount

*/

define(['N/search','N/record'],function(search,record){

functionscheduledScript(context){

varinvoiceSearch=search.create({

type:'invoice',

filters:[

['mainline','is','T'],

'AND',

['status','anyof','InProcess']

],

columns:[

search.createColumn({name:'tranid',sort:search.Sort.ASC,label:'TransactionID'}),

search.createColumn({name:'entity',label:'Name'}),

search.createColumn({name:'trandate',label:'Date'}),

search.createColumn({name:'amount',label:'Amount'})

]

});

varsearchResults=invoiceSearch.run().getRange({start:0,end:1000});

searchResults.forEach(function(result){

varinvoiceId=result.getValue({name:'internalid'});

varinvoice=record.load({type:record.Type.INVOICE,id:invoiceId});

varinvoiceVendor=invoice.getValue({fieldId:'entity'});

varinvoiceAmount=invoice.getValue({fieldId:'amount'});

varinvoiceDate=invoice.getValue({fieldId:'trandate'});

varpoSearch=search.create({

type:'purchaseorder',

filters:[

['entity','is',invoiceVendor],

'AND',

['status','anyof','Received'],

'AND',

['trandate','within',invoiceDate],

'AND',

['amount','within',invoiceAmount]

],

columns:[

search.createColumn({name:'tranid',sort:search.Sort.ASC,label:'TransactionID'})

]

});

varpoResults=poSearch.run().getRange({start:0,end:1});

if(poResults.length>0){

varpoId=poResults[0].getValue({name:'internalid'});

invoice.setValue({fieldId:'purchaseorder',value:poId});

invoice.save();

}

});

}

return{

scheduledScript:scheduledScript

};

});这段代码示例自动搜索与发票匹配的采购订单,并将采购订单链接到发票。5.2.2自动创建付款NetSuite可以设置自动化规则,根据发票状态和供应商信息自动创建付款。示例代码/**

*@NApiVersion2.x

*@NScriptTypeScheduledScript

*@NModuleScopeSameAccount

*/

define(['N/search','N/record'],function(search,record){

functionscheduledScript(context){

varinvoiceSearch=search.create({

type:'invoice',

filters:[

['status','anyof','Approved'],

'AND',

['paymentstatus','anyof','Open']

],

columns:[

search.createColumn({name:'tranid',sort:search.Sort.ASC,label:'TransactionID'}),

search.createColumn({name:'entity',label:'Name'}),

search.createColumn({name:'trandate',label:'Date'}),

search.createColumn({name:'amount',label:'Amount'})

]

});

varsearchResults=invoiceSearch.run().getRange({start:0,end:1000});

searchResults.forEach(function(result){

varinvoiceId=result.getValue({name:'internalid'});

varinvoice=record.load({type:record.Type.INVOICE,id:invoiceId});

varinvoiceVendor=invoice.getValue({fieldId:'entity'});

varinvoiceAmount=invoice.getValue({fieldId:'amount'});

varinvoiceDate=invoice.getValue({fieldId:'trandate'});

varpayment=record.create({

type:record.Type.VENDOR_PAYMENT,

isDynamic:true

});

payment.setValue({

fieldId:'entity',

value:invoiceVendor

});

payment.selectNewLine({

sublistId:'apply'

});

payment.setCurrentSublistValue({

sublistId:'apply',

fieldId:'credit',

value:invoiceId

});

payment.setCurrentSublistValue({

sublistId:'apply',

fieldId:'amount',

value:invoiceAmount

});

mitLine({

sublistId:'apply'

});

payment.save();

});

}

return{

scheduledScript:scheduledScript

};

});此代码示例自动搜索已批准且未支付的发票,并为每个发票创建付款。5.3采购与付款报告分析5.3.1创建自定义报告NetSuite允许创建自定义报告,以分析采购和付款数据。例如,可以创建一个报告来跟踪采购订单的平均处理时间。示例代码/**

*@NApiVersion2.x

*@NScriptTypeSuitelet

*@NModuleScopeSameAccount

*/

define(['N/ui/serverWidget','N/search'],function(serverWidget,search){

functiononRequest(context){

if(context.request.method==='GET'){

varform=serverWidget.createForm({

title:'采购订单处理时间报告'

});

varreport=search.create({

type:'purchaseorder',

filters:[

['status','anyof','Received'],

'AND',

['createddate','within','last30days']

],

columns:[

search.createColumn({name:'createddate',label:'创建日期'}),

search.createColumn({name:'lastmodifieddate',label:'最后修改日期'}),

search.createColumn({name:'status',label:'状态'})

]

});

varresults=report.run().getRange({start:0,end:1000});

varsublist=form.addSublist({

id:'po',

label:'采购订单',

type:serverWidget.SublistType.LIST

});

sublist.addField({

id:'po_id',

label:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论