技术开发 频道

IBM WPF快速集成Oracle EBS


   开发此模型,主要步骤如下:
    创建模型
    在WPF Designer中,文件->新建->Websphere Portlet Factory模型,单击“next”,选择“Oracle EBS”项目,单击“next”,选择新建模型类型:服务提供者->数据库服务提供者,单击“next”,单击“next”,输入服务名称“ebsProduct”,单击“next”,在SQL语句中,选择数据源“jdbc/oracleapps“,单击“next”,直至出现“选择将保存此模型的位置并输入模型名称”,位置输入:“OracleEBS/WEB-INF/models/oracle_ebs”,模型名称输入“ebsProductProvider”,接下来出现如下模型开发界面,定制服务,可根据需要选择是否生成WSDL,本文中不要选择。在“接口和服务模型”中,设置存根模型“oracle_ebs/ebsProductProviderStub”,请不要选择“自动生成存根”,开发过程中可根据需要生成存根,关于存根的使用,本文将不做进一步介绍,后续系列文章中将做进一步阐述。

    接下来我们将逐一创建相应服务操作和服务操作执行的SQL调用:
创建服务操作

     我们先为操作创建名为“getProductsQuery“的“SQL调用”,在SQL调用中,输入如下SQL语句,该语句对应Oracle EBS中主组织物料清单,当然,您也可通过“数据库资源管理器”生成SQL:

select distinct a.INVENTORY_ITEM_ID , b.DESCRIPTION, a.INVENTORY_ITEM_STATUS_CODE,a.CREATED_BY,a.ORGANIZATION_ID,a.SEGMENT1 
from INV.MTL_SYSTEM_ITEMS_B a, INV.MTL_SYSTEM_ITEMS_TL b where (a.ORGANIZATION_ID=b.ORGANIZATION_ID
and a.INVENTORY_ITEM_ID =b.INVENTORY_ITEM_ID) and a.ORGANIZATION_ID=141


    接下来,创建“getProducts”服务操作:单击“Online”中的“构建器选用板”,选择“服务”->“服务操作”创建名为getProducts的服务操作:

    选择“服务操作”对应的“要调用的操作”,选择:“DataServices/getProductsQuery/execute”;
    接下来,创建服务操作“updateProduct”及相关调用;
    相关的“操作列表”:doProductUpdate,该列表顺序执行:
setProductDataStatementInvokeWithParams(${Arguments/INVENTORY_ITEM_ID},${Arguments/DESCRIPTION},${Arguments/INVENTORY_ITEM_STATUS_CODE},${Arguments/SEGMENT1}) 
setProductDataStatement2InvokeWithParams(${Arguments/INVENTORY_ITEM_ID},${Arguments/DESCRIPTION},${Arguments/INVENTORY_ITEM_STATUS_CODE},${Arguments/SEGMENT1})
DataServices/updateProductStatement/execute
    相关的“SQL调用”:setProductDataStatement,对应的SQL如下,其中TRANSACTION_TYPE为要操作的接口表处理类  型,本例为“UPDATE”,ORGANIZATION_ID为物料主主组织标号,SEGMENT1为物料代码,DESCRIPTION为物料名称,本例中将更新该信息:

INSERT INTO INV.MTL_SYSTEM_ITEMS_INTERFACE 
(
INVENTORY_ITEM_ID, TRANSACTION_TYPE, SET_PROCESS_ID, ORGANIZATION_ID, DESCRIPTION, INVENTORY_ITEM_STATUS_CODE, SEGMENT1, PROCESS_FLAG,LAST_UPDATED_BY, CREATE_BY)VALUES( ?,
'UPDATE', '100', '142',?, ?, ?, 1 ,1110, 1110)
    相关的“SQL调用”:updateProductStatement,对应的SQL为:

{call APPS.IBM_WEBSPHERE_PRODUCT_UPDATE}
0