首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server存储过程的SAP功能模块

SQL Server存储过程的SAP功能模块
EN

Stack Overflow用户
提问于 2018-10-25 22:59:33
回答 1查看 1.3K关注 0票数 1

我正在尝试将SAP进程(由BODS实现)转换为Server (SSIS)。

该过程用于增量更改(每15分钟一次),该对象在SAP中称为“0FI_AP_4”。我想要实现一个SSIS包( Server存储过程)来做同样的事情。

在BODS中实现这个包的人已经不在了,我对SAP或BODS一无所知。

我可以看到这个包的数据源名是“BWFID_GET_FIAP_ITEM”,这是一个函数模块。

我需要知道哪个SAP表是由这个包填充的,还是由函数模块“BWFID_GET_FIAP_ITEM”填充的。

如何才能找到这个包实现的过程?

或者如何找到这个功能模块的源表和目标表?

我可以使用SQL Server中的openquery或opensql调用这个函数模块,并访问SAP表的结果吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-01 11:44:40

假设您的退休同事指定RFC FM作为BODS工作的来源。

你需要做两件事

  1. 分析在FM中做了什么,输入了什么以及返回了什么。对于这种在SAP中使用SE37 tcode,它是相当简单和不言自明的。
  2. 分析BODS作业本身所做的工作,如何将从RFC返回的数据映射到生成的Server表,以及是否进行任何转换

根据FM的实现,将所有FM逻辑转移到SQL过程的任务可能是巨大的,因此,为了尽量减少您的工作量,您可以只在SQL中实现映射/代码,其余的所有FM逻辑都直接调用。下面是您可以使用的VBScript代码示例

代码语言:javascript
复制
Function Connect_RFC ()
  dim retcd

  Set funcControl = CreateObject ("SAP.Functions")
  set objconnection=funcControl.connection

  objconnection.ApplicationServer = "sap.bods.server.com"   
  objconnection.System="B06"    
  objconnection.Client="403"    
  objconnection.User="boqas"        
  objconnection.Password="x3x33"
  objconnection.Language"'PT"
  objconnection.tracelevel=6
  objconnection.SystemNumber="01"

  retcd = objconnection.Logon(0, True)    ' Calling logon method

  if retcd = False Then
    msgbox "retcd = FALSE"
  end if

  set tab_handle = funcControl.Add( "BWFID_GET_FIAP_ITEM" )
  tab_handle.call
  set TDATA = tab_handle.tables ("T_INPUT")   ' input table parameter for FM

  if retcd = True then
    Connect_RFC = True
  else
    Connect_RFC = False
  end if
End Function

此外,查看的SAP BW来源组件,可以从SSIS设计器调用RFC模块。这个简单的指南深入研究SAP体系结构也将帮助您找到解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52999236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档