西煞魄工厂

posts - 193, comments - 277, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2008年3月31日


使用SSIS整合SAP数据


1.准备



业务需求:将SAP中的公司代码表,同步到OA中的公司代码表。

技术方案:使用SSIS,实现数据整合。

技术准备:安装Microsoft .NET Data Provider for mySAP Businese Suite


2.实施

整体执行步骤




2.1 创建临时表








2.2 从SAP获取数据

整体效果图



2.2.1 创建连接SAP的数据源





2.2.2 查询SAP中公司代码表

配置说明

 



2.2.3 数据转换





2.2.4 目标公司代码表





2.3 清理数据格式

 

2.4 得到数据集



 


 

 

2.5 取每一条记录

主要是为了实现读取记录集中第一条数据,用对比的方式,与数据进行更新。


2.5.1 设置Foreach的属性


 


 

索引的概念,就想去读DataTable数据一样。

 

2.5.2 构建SQL语句


 



 

2.5.3 执行SQL语句


 

 

2.6 删除临时表


 

 

3 执行结果

 

4 总结

在一些需要与SAP进行字典同步的应用中,使用SSIS还是不错的选择。毕竟只是数据的传输而已。这样也能节省大量的开发时间。

当然,如果是一些比较复杂的业务数据的交换过程,建议还是用BizTalk。

总之,对于不同的业务需求,选择适合的工作,是很重要的。


 

posted @ 2008-07-18 18:25 西煞魄工人 阅读(638) | 评论 (3)编辑


运行在测试机上的BizTalk Administrator Tools经常出现下面的错误:




标题: BizTalk Server 2006 管理控制台
------------------------------

此操作无法访问至少一个 MessageBox 数据库。某些结果可能会忽略。

要获取帮助,请单击: http://go.microsoft.com/fwlink/?LinkId=47400&ProdName=Microsoft+BizTalk+Server+2006&ProdVer=3.5.1602.0&EvtSrc=Microsoft.BizTalk.Administration.SnapIn.Properties.Errors&EvtID=ErrorWhenAccessingMsgBox

------------------------------
其他信息:

Operation is not valid due to the current state of the object. (Microsoft.BizTalk.Administration.SnapIn)

------------------------------
按钮:

确定
------------------------------






找来找去,就是让重启动一下管理工具,自己就可以恢复。


BizTalk Server 2006 Administration Console

I just tried opening the administrative console and out of nowhere got an error "root element is missing (c:\Documents and Settings\user1\Local Settings\Application Data\Microsoft Corporation\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Administration.Snapin.dll.config)".

 To resolve this issue, delete this file:

c:\Documents and Settings\user1\Local Settings\Application Data\Microsoft Corporation\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Administration.Snapin.dll.config

The next time you start the BizTalk Server 2006 Administration Console, the Administration.Snapin.dll.config file will be auto created for you.


除了上面的介绍,实在没什么可以参考的资料了!



posted @ 2008-06-24 21:03 西煞魄工人 阅读(56) | 评论 (1)编辑


在没有安装"BizTalk Web Services 发布向导"工具的服务器上部署SOAP Port。


 

Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5734
Date:  2008-6-24
Time:  19:45:53
User:  N/A
Computer: GDEIAC-TEST09
Description:
消息引擎无法注册接收位置“/EIAC.EAI.ExpenseContract.WebService/WebService_EIAC_EAI_ExpenseContract_Orchestrations.asmx”的“SOAP”的适配器。请验证接收位置存在,且独立的适配器在可以访问 BizTalk 数据库的帐户下运行。




 

    最好按下面的部署顺序进行。

  1. 开发环境下
    1. 开发流程
    2. 部署流程
    3. 发布成WebService
    4. 测试
  2. 准生产or生产环境下
    1. IIS中创建App Pool,帐号用BizTalk Application Users中的用户。
    2. IIS中创建VisualDir,将1.3中的WebService拷备到些目录中。
    3. IIS中配置Read, Write , Script Running, 配置为2.2的AppPool。
    4. 试着访问WebService的URL,确认可以Open。
  3. BizTalk Admin Tools
    1. 部署BizTalk流程。
    2. 配置Receive Location。这里输入的WebService路径为2.4中,可以访问的URL(去掉http://servername)。

   ok, 问题解决。

posted @ 2008-06-24 19:58 西煞魄工人 阅读(67) | 评论 (0)编辑

    为了所有玩BizTalk的朋友聚在一起,隆重向大家介绍BizTalk Group (MSN群)。

    这里集聚了很多朋友,同时欢迎您的加入!

BizTalk MSN Group


如果您想显示出上图右边的功能区,请点击如下图所示的“发送闪屏”。


BizTalk MSN Group


在功能区里,您可以修改自己在群里的昵称。

BizTalk MSN Group

在我们的群里,请按下面的规则为自己起一个好记的昵称。

您所在的城市或国家您的昵称




当然,您也可以用一个比较方便的命令来实现修改昵称。
如下面所示,在消息输入区中,输入"/nn ......"
/nn 是用来修改昵称的命令。

BizTalk MSN Group

posted @ 2008-05-28 14:57 西煞魄工人 阅读(233) | 评论 (1)编辑


当前项目要求使用java调用.net webservice。

在网上search不到太多相关的资源,只能自己慢慢试了。

经过长达一周的联调,终于实现。

Java Client
import javax.xml.namespace.QName;   
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;    
import org.apache.axis.client.Service;  


System.out.println(
"测试SOAP开始");

Service service 
= new Service();
Call call 
= (Call)service.createCall();

String input
="Yes";

String endpoint
="http://11.11.11.11/CAIE.EAI/UploadExpenseToConstract.asmx";
call.setTargetEndpointAddress(
new java.net.URL(endpoint));
call.setOperationName(
new QName("http://CAIE.EAI.ExpenseConstract.WebServices","ReturnYourInput"));
call.addParameter(
"input", org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(
true);
call.setSOAPActionURI(
"http://CAIE.EAI.ExpenseConstract.WebServices/ReturnYourInput");
String res 
= (String) call.invoke(new Object[] {input});
System.out.println(
"返回值="+res);
System.out.println(
"测试SOAP结束");   


.Net WebService

using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Services.Description;
using System.ComponentModel;

namespace CAIE.EAI.ExpenseConstract.WebServices
{
    
/// <summary>
    
/// UploadExpenseToConstract 的摘要说明
    
/// </summary>
    [WebService(Namespace = "http://CAIE.EAI.ExpenseConstract.WebServices/")]
    [WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(
false)]
    
public class UploadExpenseToConstract : System.Web.Services.WebService
    {

        [WebMethod()]
        [SoapRpcMethod(Use 
= SoapBindingUse.Literal, RequestNamespace = "http://CAIE.EAI.ExpenseConstract.WebServices", ResponseNamespace = "http://CAIE.EAI.ExpenseConstract.WebServices")]
        
public string ReturnYourInput(string input)
        {
            
string a = input;
            System.IO.File.AppendAllText(
@"c:\temp.log""Input=" + input + "\r\n");
            
return a;
        }

    }
}

Java 调用 .net 主要是为了后序的 Java 启动 BizTalk流程做准备。

posted @ 2008-05-21 12:26 西煞魄工人 阅读(168) | 评论 (0)编辑


这个咋整呢?




错误说明:
OLE DB 错误: OLE DB 或 ODBC 错误 : 无法连接到数据源“[Microsoft][ODBC Excel Driver] 外部表不是预期的格式。;S1000”。。

错误源:
Microsoft OLE DB Provider for Analysis Services 2005



posted @ 2008-05-14 12:00 西煞魄工人 阅读(70) | 评论 (1)编辑


还有报障


事件类型: 错误
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 6913
日期:  2008-4-14
事件:  12:14:56
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
试图连接到服务器“GDEIAC-SQL01”上的“BizTalkMgmtDb”SQL Server 数据库失败。
 错误:“Login failed for user ''. The user is not associated with a trusted SQL Server connection.”


事件类型: 警告
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5410
日期:  2008-4-14
事件:  12:14:57
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
出现错误,需要终止 BizTalk 服务。最常见的原因如下:
 1) 内存意外不足。
 或
 2) 无法连接到其中一个 BizTalk 数据库或该连接丢失。
 该服务将在 1 分钟内关闭并自动重新启动。如果该出错数据库仍然无法使用,将重复此过程。
 
 错误消息: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
 错误源: 
 
 BizTalk 主机名: BizTalkServerApplication
 Windows 服务名: BTSSvc$BizTalkServerApplication


posted @ 2008-04-14 17:26 西煞魄工人 阅读(96) | 评论 (2)编辑


接到系统管理员报障:


事件类型: 错误
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 6912
日期:  2008-4-9
事件:  19:16:58
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
以下存储过程调用失败:“ { call admsvr_ReceiveLocation_GetAllInApp( ?)}”。SQL Server 返回错误字符串:“[DBNETLIB][ConnectionRead (recv()).]一般性网络错误。请检查网络文档。”。



 

事件类型: 错误
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5641
日期:  2008-4-9
事件:  19:16:58
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
消息引擎无法从数据库检索配置。详细信息:“连接失败”。





 

事件类型: 警告
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5773
日期:  2008-4-9
事件:  19:16:58
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
所有接收位置被暂时禁用,因为 MessageBox 数据库或配置数据库不可用。当这些数据库可用时,接收位置将被自动启用。



 

事件类型: 警告
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5410
日期:  2008-4-9
事件:  19:16:58
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
出现错误,需要终止 BizTalk 服务。最常见的原因如下:
 1) 内存意外不足。
 或
 2) 无法连接到其中一个 BizTalk 数据库或该连接丢失。
 该服务将在 1 分钟内关闭并自动重新启动。如果该出错数据库仍然无法使用,将重复此过程。
 
 错误消息: [DBNETLIB][ConnectionRead (recv()).]一般性网络错误。请检查网络文档。
 错误源: 
 
 BizTalk 主机名: BizTalkServerApplication
 Windows 服务名: BTSSvc$BizTalkServerApplication




初步分析,是由于网络引起的!可能是数据库重启,或都网络闪断引起!
正在与管理员联系...

 

posted @ 2008-04-14 16:57 西煞魄工人 阅读(106) | 评论 (0)编辑


 又是奇怪的错误!

在生产环境下安装BTS组件,部署不使用VS2005进行部署,而是直接使用BizTalk Admin工具进行!





开始测试。

当接收到指定的消息后,BTS就报错!


事件类型: 错误
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5719
日期:  2008-3-31
事件:  11:46:29
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
执行接收管道时出错:“Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”,源:“XML 拆装器”,接收端口:“R_OA_NS_MSG”,URI:“FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE”,原因: 无法从程序集 <EIAC.OA.NotificationSystem.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=faf62f0e1206ebb8> 加载文档规范 <EIAC.OA.NotificationSystem.Schemas.NotificationData_XML>。请验证已部署此文档规范的架构并且该架构位于全局程序集缓存中。





 

事件类型: 错误
事件来源: BizTalk Server 2006
事件种类: BizTalk Server 2006
事件 ID: 5753
日期:  2008-3-31
事件:  11:46:29
用户:  N/A
计算机: GDEIAC-BIZ01
描述:
接收位置“R_OA_NS_MSMQ_Message”(URI 为“FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE”)上的适配器“MSMQ”接收的消息已挂起。
 错误详细信息: 执行接收管道时出错:“Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”,源:“XML 拆装器”,接收端口:“R_OA_NS_MSG”,URI:“FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE”,原因: 无法从程序集 <EIAC.OA.NotificationSystem.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=faf62f0e1206ebb8> 加载文档规范 <EIAC.OA.NotificationSystem.Schemas.NotificationData_XML>。请验证已部署此文档规范的架构并且该架构位于全局程序集缓存中。  
 消息 ID:  {1403920C-8604-4B05-AFBA-7372E4B2220C}
 实例 ID: {E461A125-C380-497C-9152-CB60EC744B88}




查询GAC




检查Assembly目录




 都很正常呀!!!!奇怪了!!





解决:

重启了一下服务器,上现的现象就没有了!非常奇怪!找不到一个很好的解释。




自己的猜测:

由于我为这个流程单独创建了一个Host Instance,而Receive Adapter仍然用的是BizTalkApplicationHost,而这个默认的Host也需要Restart一下,才能加载到新注册的Dll 。





 

posted @ 2008-03-31 12:44 西煞魄工人 阅读(140) | 评论 (2)编辑