SAP函数大荟萃

1 . 函数WS_UPLOAD 
    功能﹕将TXT文件转换成SAP中的内表定义的数据表格文件
    注意﹕1 函数将按参数 data_tab 的实际参数(假设为 table1) table1 定                                                                 
            义的各个字段的长度来依次将TXT文件间隔开﹐并依次将对应的值付给table1的
            字段,table中的各个字段必须为C 型
          2 TXT文件中﹐各个字段值之间不能有空格
   事例: ZBC400_JOHN_26

2 . 函数TH_POPUP
     功能: 向函数入口参数 client , user决定的用户发送信息(信息为入口参数 message 决
           定的信息)
     事例﹕ZBC_LSL_017

3. 函数   HELP_VALUES_GET_WITH_TABLE
     功能﹕弹出用户所需要的信息﹐让用户选择﹐并把选种的信息付给输入框﹐相当与建立起
           SEARCH HELP
     注意: 1 tables 的参数 fields , valuetab 需要固定的内表结构
           2 importing 的参数 select_value 有高﹐低两个值﹐即用户选种的值付给相应的
             输入框的最小值﹐最大值
           3 tables 的参数 fields , valuetab 的实际参数(假设为 tab_field, field_value) 
             tab_field, field_value 的付值,其tab_field 内表中﹐有且仅有一个字段的 
             selectflag = ‘X’ 
      事例﹕ ZPP000293

4 . 函数 Z_UDARBID 
         功能﹕根据工单号﹐当前工作中心代号﹐读出上一工作中心代号﹐上一工作中心名称﹐
               下一工作中心代号﹐下一工作中心名称
         事例﹕ZPP000224_EDIT
         说明﹕取得上下组别的函数更正确的函数 z_udarbid_change(可以解决组别
                                                            循环问题) 
         示例﹕ZBAK_ZPP000222_LSL

5 . 函数 Z_COLORANDSIZE 
         功能﹕根据该物料的组态﹐得出该物料的颜色尺码.
         注意﹕入口参数 IP_SPRAS = ‘E’ 表示本厂款号﹐’M’表示客户款号

6 . 函数 Z_PRINTTITLE 
        功能 ﹕打印标准报表头 
        事例﹕ ZBC_LSL_777

7 . 函数 Z_PAGECHANGE 
        功能﹕许多记录时﹐进行翻叶操作

8 . 函数READ_TEXT
        功能﹕读取内文
        假设﹕FORM get_pitext USING pn LIKE thead-tdname .     
              REFRESH tabline.
  CALL FUNCTION 'READ_TEXT'
       EXPORTING
            client         = sy-mandt
            id             = '0006'
            language       = 'M'
            object         = 'VBBK'
            name           = pn
            archive_handle = 0
       IMPORTING
            headers        = thead
       TABLES
            lines          = tabline
       EXCEPTIONS
            not_found      = 2.
注意﹕ 1  tabline 必须为固定格式, headers 的实际参数必须为 thead
          name 的实际参数必须为thead-tdname 形式,靠它来确定取谁的内      
          文
2 client , language , archive_handle 的入口值基本固定如上
3 id 为 va03à转到à表头à内文à(双击要读取的内文项)àgotoàheader
text id 既是参数 id 的值
text object 既是参数 object 的值
事例﹕ZPP000220
            
9 . 函数 Z_CURR_TO_CHAR .
        功能﹕把 curr 型的数据转化成 char 型的数据﹐转化后的数据仍然 
              按 curr 型数据显示 (“###,###,###.##”)并可以在char型数  
              前后添加固定个特殊字符 
                 (“**12,111,456.23”, ”**********12.45”)
     假设 p_curr 为 CURR 型﹐ p_char = ‘*’
CALL FUNCTION 'Z_CURR_TO_CHAR'
     EXPORTING
          p_curr_i        = p_curr
      *   p_char_i        = p_char
      *   p_num_i         = 2
      *   p_bore_i        = 
      *   p_nums_i        = 20
    IMPORTING
          p_char_o        = t_chr
     EXCEPTION
          no_p_curr_i     = 1
          curr_type_wrong = 2
          not_bore_i      = 3
          OTHERS          = 4.
  说明﹕
      p_curr  : 必须输入参数﹐不能超过15个长度,被转化的参数
      p_char  : 可线参数﹐须添加的特殊字符
      p_num_I : 可线参数﹐当参数p_nums_I为空时有效﹐要添加的特殊字符                
                的个数                
      p_bore_I: 可线参数﹐决定是在前/后添加特殊字符,bà前﹐eà后﹐默
                认为 b,只能输入b/e 否则函数不转化
      p_nums_I: 可线参数﹐决定转化成固定个字符长度的﹐若参数p_char_I
                 有值﹐则不足位时补特殊字符﹐若参数p_char_I为空时﹐
                 该参数无效﹐若该参数输入值﹐则参数p_num_I 无效。
      p_char_o: 转化后的数据
 若执行该函数 sy-subrc 之值如下﹕
          1à没用输入参数p_curr_I .
          2à参数p_curr_I过长﹐或p_nums_I为空﹐p_num_I为负数
          3à参数p_bore_I 不是输入’e’/’b’(大小写不区分) 
事例﹕ZBC_Z_CURR_TO_CHAR

8.函数  Z_COLORANDSIZE_MATNR 
  功能 ﹕根据物料的款号得出该物料的特性值 (如C10019-EYEDE 的对应的A,C,D 的颜色说
         明﹐39.5﹐41.5 的尺码大小﹐见 TC : CT03 ) 放与一个内表中)
  CALL FUNCTION 'Z_COLORANDSIZE_MATNR'
     EXPORTING
          p_matnr  = p_matnr
          p_spras  = 'Z1'
   TABLES
          t_tab    = it
     EXCEPTIONS
          no_matnr = 1
          no_data  = 2
          OTHERS   = 3.
 说明﹕
       p_matnr : 必要入口参数﹐需要取得特性的物料的款号
       p_spras : 语言码﹐默认为 ‘M’  
       it      : 为内表﹐P_matnr 的各特性值便放与次表中﹐该表结构固定﹐   
                 字段如下﹕
                  name   字符型 (= ‘COLOR’ 表示颜色特性﹐= ‘SIZE’ 表示
                                   尺码特性)
                  atwrt  特性码 (如 D,E,F,39.4,41.5)
                  atwtb  特性值说明﹐即通常所说的颜色﹐尺码
       执行后 sy-subrc = 1 表示 参数 p_matnr 为空
                       = 2 表示 该 物料没用特性值
                       = 3 表示其它错误
     获得结果比函数Z_COLORANDSIZE 更广

  9.函数WS_DOWNLOAD
     功能﹕将内表中的数据转化成特定的文件
           见范例 zbc400_lsl_file_change

  10. 函数WS_UPLOAD
      功能﹕将指定文件中的数据转化成内表中的数据
           见范例 zbc400_lsl_file_change




         有其它客户在更新该数据表
 CALL FUNCTION 'ENQUEUE_ECMERKM'           
          EXPORTING
*         MODE_RCTMV     = 'E'
          mandt              = sy-mandt
          atnam              = p_lock_atnam
*         X_ATNAM          = ' '
*         _SCOPE           = '2'
*         _WAIT            = ' '
*         _COLLECT         = ' '
     EXCEPTIONS
          foreign_lock  = 1
          system_failure = 2
          OTHERS     = 3.
 说明﹕ mandt ﹕ 使用的数据端口
        atnam ﹕ 被锁定的记录(可以确定唯一一条记录)

12 函数EQUEUE_ECMERKM
   功能﹕对自己锁定的记录进行解锁,常用于对数据表中数据进行更新操作之 
          前﹐通常与 加锁函数联合起来用
           CALL FUNCTION 'DEQUEUE_ECMERKM'
                 EXPORTING
*                    mode_rctmv = 'E'
                     mandt      = sy-mandt
                     atnam      =  p_ulock_atnam
*                    X_ATNAM    = ' '
*                    _SCOPE     = '3'
*                   _SYNCHRON   = ' '
*                   _COLLECT    = ' '
                 EXCEPTIONS
                     OTHERS     = 1.
说明﹕ mandt ﹕ 使用的数据端口
       atnam ﹕ 需要解锁的记录(可以确定唯一一条记录)

13 .函数  TH_POPUT
   说明﹕该函数是向 SAP 用户发送信息
  CALL FUNCTION 'TH_POPUP'           "向用户发送信息
         EXPORTING
              CLIENT         = BIT-MANDT
              USER           = BIT-BNAME
              MESSAGE        = MES
              MESSAGE_LEN    = LEN     "要发送的信息的长度可截断部分信息
              CUT_BLANKS     = ' '
         EXCEPTIONS
              USER_NOT_FOUND = 1.
  参数﹕client ------客户端口
        user--------用户名(接收者)
        message—需要发送的信息(通常用变量储存)
        message_len: 发送的信息截取的长度(若长度<mes的长度﹐则多余信
                    息被截掉)
  其中客户端口﹐用户名常常放与一内表中﹐内表结构必须为结构uinfo 
  见示例 zbc400_lsl_send_message

14 .图形显示函数﹕GRAPH_2D(二维平面图), GRAPH_3D(三维立体图)
CALL FUNCTION 'GRAPH_2D'
     EXPORTING
          mail_allow = 'X'
          titl       = l_title
     TABLES
          data      = t_graph.
    
  参数﹕ title : 图形的标题
         data:  存放数据的内表
  GRAPH_3D 函数用法同 GRAPH_2D .
  示例﹕ZBAK_ZPP000222_LSL

15 .函数CS_WHERE_USED_MAT(逆查BOM)
   说明﹕取的物料的上层物料
                CALL FUNCTION 'CS_WHERE_USED_MAT'  
             EXPORTING
               datub                      = sy-datum
               datuv                      = sy-datum
               matnr                      = t_afru-matnr
*             POSTP                       = ' '
*             RETCODE_ONLY                = ' '
*             STLAN                       = ' '
               werks                      = '1000'
*        IMPORTING
*             TOPMAT                      =
             TABLES
                  wultb                   = ltb
                  equicat                 = equicat
                  kndcat                  = kndcat
                  matcat                  = matcat
                  stdcat                  = stdcat
                  tplcat                  = tplcat
             EXCEPTIONS
                  call_invalid                = 1
                  material_not_found          = 2
                  no_where_used_rec_found     = 3
                  no_where_used_rec_selected  = 4
                  no_where_used_rec_valid     = 5
                  OTHERS                      = 6.
         参数﹕datub:  当前日期
               datuv:  当前日期
               matnr:  要找回上层BOM物料的物料
               werks:  工厂通常取’1000’ 
               wultb:  所有的上层BOM物料存放在该表中(该表结构固定)
               equicat:  固定结构﹐一定要
               kndcat :  固定结构﹐一定要
               matcat:  固定结构﹐一定要 
               stdcat : 固定结构﹐一定要
               tplcat : 固定结构﹐一定要
  示例:   ZBAK_ZPP000222_LSL

BOM 展开函数(顺查BOM)
16 .只展开 BOM 的函数
  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
   EXPORTING
      capid = pm_capid   “应用程序 一般为 PP01 
      datuv = pm_datuv   “通常为系统的当前日期 
      mtnrv = pm_mtnrv   “要展开BOM 的物料
      mehrs = 'X'        “ x 表示多层展开﹐space 表示只展开第一层
      werks = pm_werks   “ 通常为 1000
   IMPORTING
      topmat = selpool
      dstst  = dstst_flg
   TABLES
      stb = stb          “展开的 BOM 存放在该内表
      matcat = matcat    “下面含有组件的物料存放在该内表


17 .展开与特性相关的特定款号的 BOM 
   CALL FUNCTION 'CS_BOM_EXPL_ KND_V1'
   EXPORTING
      capid = pm_capid   “应用程序 一般为 PP01 
      datuv = pm_datuv   “通常为系统的当前日期 
      mtnrv = pm_mtnrv   “要展开BOM 的物料
      cuobj = vbap_wa-cuobj “与特性相关的组态
      mehrs = 'X'        “ x 表示多层展开﹐space 表示只展开第一层
      werks = pm_werks   “ 通常为 1000
   IMPORTING
      topmat = selpool
      dstst  = dstst_flg
   TABLES
      stb = stb          “展开的 BOM 存放在该内表
      matcat = matcat    “下面含有组件的物料存放在该内表

范例见系统报表程序 RCS12001

1 说明﹕内表 stb, matcat 结构固定, 输出参数 selpool , dstst_flg 固定,
      其固定结构如下:
 内表:
   DATA: BEGIN OF stb OCCURS 1000.
         INCLUDE STRUCTURE stpox.
   DATA: END OF stb.
   DATA: BEGIN OF matcat OCCURS 50.
         INCLUDE STRUCTURE cscmat.
   DATA: END OF matcat.
  输出参数:
     DATA: BEGIN OF selpool.
           INCLUDE STRUCTURE cstmat.
      DATA: END OF selpool.
      DATA: dstst_flg LIKE csdata-xfeld.

  2 说明﹕内表 stb 中的数据按第一层顺序号排序﹐如第一层组件下还有BOM, 
          则其BOM显示在其下面﹐并依次分层(下面BOM 也按顺序号排列) 
         stb 下的重要字段说明如下﹕
           stufe : 在整个 BOM 中的层次 
             tdidx : 对应 matcat-index ﹐标志直属哪个物料下的 BOM
             ojtxb : 上层物料的物料说明
             ojtxp : 本身物料说明
             idnrk : 组件名(即物料)
             stlkn : 在各自 BOM 中的顺序号
             matkl : 该物料群组
             mtart : 物料类型 (成品﹐半成品﹐原料)
           matcat 下的重要字段 (表matcat 存放下面还有BOM 的物料)
           matnr : 物料号
             index : 顺序号


函数 : SO_NEW_DOCUMENT_SEND_API1
 功能﹕向SAP 用户的收信箱中发送Email(内容存与内表中)
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
      EXPORTING
           document_data = email_send
           document_type = 'RAW'
            put_in_outbox = 'X'
           put_in_outbox = ''
      TABLES
           object_content = it_data
           receivers     = email_rece.
说明﹕document_data  : 发送Email 之属性
      object_content : 发送之内容
      receivers      : 收件者

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi是一种广泛使用的编程语言,具有强大的集成开发环境(IDE),可以用于开发各种软件应用程序。在使用Delphi调用SAP(Systems, Applications, and Products in Data Processing)接口函数的过程中,我们首先需要创建一个SAP连接,然后使用该连接来调用我们所需的接口函数。 首先,我们需要确保已经安装了相应的SAP RFC(Remote Function Call)库,并在Delphi中导入相关的扩展包。然后,我们需要通过创建一个RFC连接对象来建立与SAP系统的通信。在连接对象中,我们需要提供SAP系统的相关信息,比如SAP服务器的主机名、系统编号、客户端号码等。 一旦我们成功建立了与SAP系统的连接,我们就可以开始调用SAP接口函数了。我们可以使用RFC连接对象的CallFunction方法来调用函数,在调用时需要提供接口函数的名称以及相应的参数。在调用成功后,我们可以通过获取返回的结果数据来处理和使用。 在调用SAP接口函数时,我们需要确保提供正确的函数参数和参数类型,以及正确的数据格式。我们可以使用Delphi提供的相关功能来进行参数类型转换和数据格式处理。 在调用函数之前,我们还需要考虑如何处理和处理潜在的错误和异常。我们可以使用Delphi提供的异常处理机制来捕获和处理可能出现的错误,以确保程序的稳定性和可靠性。 综上所述,使用Delphi调用SAP接口函数需要先建立与SAP系统的连接,然后通过RFC连接对象调用相应的接口函数,并处理返回的结果数据和潜在的错误和异常。这样可以实现Delphi与SAP系统的集成,实现数据的交互和共享。 ### 回答2: Delphi是一种编程语言,可以用于调用SAP的接口函数SAP是一种集成的企业资源计划软件,它提供了各种接口函数,可以与其他系统进行数据交换和集成。 在Delphi中调用SAP接口函数,首先需要通过SAP提供的API文档了解接口函数的参数和返回值。然后,在Delphi中创建一个新的项目或使用现有的项目,在项目中引入SAP的相关库文件和命名空间。 接下来,可以使用Delphi的相关语法,如函数调用、变量声明等,来调用SAP的接口函数。根据接口函数的参数要求,可以在Delphi代码中传入需要的参数,并接收返回值。 在调用SAP接口函数时,需要确保Delphi和SAP的连接是正常的。可以通过设置连接参数,如SAP系统的用户名、密码、连接字符串等来确保连接成功。 在调用SAP接口函数之前,可能需要进行一些前期准备工作。例如,可能需要创建SAP连接对象、打开连接、连接到具体的SAP系统等。 调用SAP接口函数后,可以根据返回值来进行相应的处理。根据接口函数的返回值类型,可以使用条件语句、循环语句等来判断并处理返回结果。 在调用SAP接口函数时,还需要注意异常处理。如果在调用过程中发生了错误或异常,可以使用Delphi提供的异常处理机制来捕获和处理异常,以防止程序崩溃或不稳定。 总之,通过Delphi调用SAP接口函数可以实现与SAP系统的数据交换和集成。这样可以方便地在Delphi程序中使用SAP的功能和数据,提高系统的灵活性和扩展性。 ### 回答3: 使用Delphi调用SAP接口函数需要以下步骤: 1. 在Delphi中设置与SAP接口通信的环境。这可以通过使用SAP提供的相关库文件来完成。通常,这些库文件可以作为一个包被导入到Delphi项目中。 2. 使用SAP提供的函数或类来建立与SAP服务器的连接。这些函数或类可以通过指定SAP服务器的IP地址、端口号、用户名和密码来建立连接。 3. 一旦连接建立,可以通过调用相应的SAP函数或方法来执行所需的操作。这些操作可能包括读取或写入SAP系统的数据,调用SAP的业务逻辑函数或者执行其他与SAP相关的任务。 4. 在调用SAP函数或方法之前,可能需要根据SAP接口的要求设置相应的输入参数。这些参数通常是一个结构体或一个数组,其中包含了传递给SAP函数的数据。 5. 当SAP函数执行完成后,可能会返回一个结果,这可以是一个结构体或一个值。根据需要,可以解析结果并进一步处理。 6. 最后,使用SAP提供的功能来关闭与SAP服务器的连接,并释放相关的资源,以确保程序的完整性和安全性。 需要注意的是,具体的调用方式和步骤可能因为SAP接口的版本和特性而有所不同。因此,在进行Delphi调用SAP接口函数的实际操作前,应该先详细阅读SAP的相关文档,并了解其具体的接口规范和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值