使用Oracle JDE接口构建优化工作流程(oracle jde接口)
使用Oracle JDE接口构建优化工作流程
随着企业业务的不断扩张,工作流程也日益复杂,如何快速高效地处理这些业务,成为各企业管理者需要解决的问题。Oracle JDE作为业界领先的ERP软件,提供了丰富的接口和工具,可以帮助企业快速构建优化的工作流程。本文将介绍如何使用Oracle JDE接口构建优化工作流程,并给出相关代码示例。
一、需求分析
假设一个企业需要开展采购业务,采购流程如下:
1. 采购员提交采购订单
2. 供应商接受订单并提供报价
3. 采购员审核报价,确定供应商
4. 采购员下单并安排付款
为了优化采购流程,我们希望在Oracle JDE系统中实现如下功能:
1. 采购员可在Oracle JDE系统中提交采购订单
2. 供应商可在Oracle JDE系统中接受订单并提供报价
3. 采购员可在Oracle JDE系统中审核报价,并在系统中指定供应商
4. 采购员可在Oracle JDE系统中下单并安排付款
5. 系统应具备自动化审核和提醒功能,提高效率
二、方案设计
根据需求分析,我们可采取以下方案:
1. 使用Oracle JDE的Business Service组件,实现采购员提交采购订单、供应商接受订单并提供报价、采购员审核报价、采购员下单,并安排付款等功能。
2. 针对采购订单的审核和提醒功能,可通过Oracle JDE的Workflow Builder组件来实现。
3. 使用Oracle JDE中的逻辑控制语言Event Rule来实现各功能之间的联动和控制。
三、代码实现
1. 采购员提交采购订单——使用BSFN Component
首先定义相关业务服务:
BSFNName:POCreateRequisition
BSFNDescription:Create Requisition Information
BSFNParameters:
IN: cCompany - String - Company (30)
IN: cUsername - String - User Name (30)
IN: cAddressBookNumber - String - Address Book Number (37)
IN: mnDocumentNumber - Numeric - Document Number (6,0)
IN: mnLineType - Numeric - Line Type (3,0)
IN: mcUOM - String - Unit of Measure (2)
IN: mcChgUOM - String - Change UOM (2)
IN: mnQuantity - Numeric - Quantity (19,15)
IN: mnAmount - Numeric - Amount (19,7)
IN: cBusinessUnit - String - Business Unit (12)
IN: cCostCenter - String - Cost Center (12)
IN: cProjNum - String - Project Number (20)
IN: cjrnl - String - Journal (3)
IN: Slitm - String - Stocking Type (3)
IN: cOID - String - Group ID (8)
OUT: sWarningText - String - Warning Text (100)
OUT: mnDocRequest - Numeric - Doc Request (15,0)
OUT: sReturn - String - Return Value (100)
OUT: sErrorID - String - Error ID (50)
OUT: sErrorDescription - String - Error Description (100)
OUT: mnErrorLevel - Numeric - Error Level (3,0)
然后编写业务逻辑如下:
if (NULL(cCompany)) throwError(businessServiceError, 0, "Company cannot be Null");
if (NULL(cUsername)) throwError(businessServiceError, 0, "User Name cannot be Null");
if (NULL(cAddressBookNumber)) throwError(businessServiceError, 0, "Address Book Number cannot be Null");
if (mnDocumentNumber ILT 1) throwError(businessServiceError, 0, "Document Number cannot be less than 1");
if (mnLineType ILT 1) throwError(businessServiceError, 0, "Line Type cannot be less than 1");
if (mnQuantity ILT 1) throwError(businessServiceError, 0, "Quantity cannot be less than 1");
if (mnAmount ILT 1) throwError(businessServiceError, 0, "Amount cannot be less than 1");
if (NULL(cBusinessUnit)) throwError(businessServiceError, 0, "Business Unit cannot be Null");
if (NULL(cCostCenter)) throwError(businessServiceError, 0, "Cost Center cannot be Null");
if (NULL(cjrnl)) throwError(businessServiceError, 0, "Journal cannot be Null");
if (NULL(Slitm)) throwError(businessServiceError, 0, "Stocking Type cannot be Null");
//通过Requisition Master Table检查重复性
mnDocRequest = P00095UniqueKeyGeneration(cCompany,"31",strcat("PR", cUsername),1);
while (POGetNextRequisition(mnDocRequest)) {
mnDocRequest = P00095UniqueKeyGeneration(cCompany,"31",strcat("PR", cUsername),1);
}
//向Requisition Master Table中插入数据
mnDocRequest = P00095UniqueKeyGeneration(cCompany,"31",strcat("PR", cUsername),1);
mnErrorLevel = P00094CreateRequisition(cCompany, mnDocRequest, cUsername, cAddressBookNumber, mnDocumentNumber, mnLineType, mcUOM, mcChgUOM, mnQuantity, mnAmount, cBusinessUnit, cCostCenter, cProjNum, cjrnl, Slitm, cOID,sWarningText);
if (mnErrorLevel 0) {
throwError(businessServiceError, mnErrorLevel, sWarningText);
sReturn = "Error: Creation of Requisition Fled.";
}
else {
sReturn = "Requisition Created Successfully! Document Request = " + string(mnDocRequest);
}
2. 供应商接受订单并提供报价——使用BSFN Component
首先定义相关业务服务:
BSFNName: ReceivePO
BSFNDescription: Receive PO
BSFNParameters:
IN: cCompany - String - Company (30)
IN: cUsername - String - User Name (30)
IN: cPONumber - String - PO Number (20)
IN: mnLineNumber - Numeric - Line Number (8,0)
IN: cSupplierNumber - String - Supplier Number (10)
IN: cItemNumber - String - Item Number (25)
IN: cUOM - String - UOM (3)
IN: dvQuantity - Numeric - Quantity (19,15)
IN: dvAmount - Numeric - Amount (19,7)
IN: cFulfillment - String - Fulfillment (1)
OUT: sWarningText - String - Warning Text (100)
OUT: sReturn - String - Return Value (100)
OUT: sErrorID - String - Error ID (50)
OUT: sErrorDescription - String - Error Description (100)
OUT: mnErrorLevel - Numeric - Error Level (3,0)
然后编写业务逻辑如下:
if (NULL(cCompany)) throwError(businessServiceError, 0, "Company cannot be Null");
if (NULL(cUsername)) throwError(businessServiceError, 0, "User Name cannot be Null");
if (NULL(cPONumber)) throwError(businessServiceError, 0, "PO Number cannot be Null");
if (mnLineNumber ILT 1) throwError(businessServiceError, 0, "Line Number cannot be less than 1");
if (NULL(cSupplierNumber)) throwError(businessServiceError, 0, "Supplier Number cannot be Null");
if (NULL(cItemNumber)) throwError(businessServiceError, 0, "Item Number cannot be Null");
if (NULL(cUOM)) throwError(businessServiceError, 0, "UOM cannot be Null");
if (dvQuantity ILT 1) throwError(businessServiceError, 0, "Quantity cannot be less than 1");
if (dvAmount ILT 1) throwError(businessServiceError, 0, "Amount cannot be less than 1");
//向Purchase Order Receiver Table中插入数据
mnErrorLevel = P43081_ReceivePO(cCompany, cUsername, cPONumber, mnLineNumber, cSupplierNumber, cItemNumber, cUOM, dvQuantity, dvAmount, cFulfillment, sWarningText);
if (mnErrorLevel 0) {
throwError(businessServiceError, mnErrorLevel, sWarningText);
sReturn = "Error: Receive PO Fled.";
}
else {
sReturn = "PO Received Successfully!";
}
3. 采购员审核报价——使用Event Rule
配置Request审批Node
Action Required = Approve
Group
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 使用Oracle JDE接口构建优化工作流程(oracle jde接口)
相关文章
- 『Oracle 操作之旅:如何跳出游标』(oracle跳出游标)
- Oracle订单管理:机智追踪订单流程(oracle订单管理)
- 使用Oracle字符通配符搜索数据(oracle字符通配符)
- 快速实现Oracle实例建立的全流程指南(建立oracle实例)
- 掌握 Oracle 多条件查询的秘诀(oracle多条件查询)
- 使用Oracle实现文件写入(oracle写文件)
- Oracle数据库中的触发器类型(oracle触发器类型)
- Oracle财务系统:高效管理财务流程(oracle财务系统)
- 探究Oracle的Jobs:任务管理与自动化流程(oracle的jobs)
- 如何备战Oracle期末考——关键攻略分享(oracle期末考)
- 使用Oracle进行数据录入:操作流程介绍(oracle数据录入)
- Oracle构建多条件关联性能优化指南(oracle关联多条件)
- Oracle公司内部核销流程深度剖析(oracle公司内部核销)
- Oracle操作视图分步编写流程说明(oracle写视图步骤)
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- Excel导入Oracle前往更高效的工作流程(excl导入oracle)
- Oracle数据库中间表接口实现分析(oracle中间表接口表)
- Oracle数据库如何保证中文数据准确性(oracle保存中文字符)
- Oracle代码规范必须全面遵守(oracle代码规范)
- 突破前沿Oracle中国研发中心的内涵解构(oracle中国研发中心)
- 在Oracle中使用分数数据类型的简单说明(oracle中分数类型)
- Oracle中使用AS关键字实现表别名管理(oracle中as关键字)
- 装Oracle XML的包装简化数据交换流程(oracle xml的包)
- Oracle Mes接口实现ERP系统的优化落实(oracle mes接口)
- 研究Oracle API接口,助推业务发展(oracle api接口)